Vielen Dank für den Test.
Damit ist klar, dass bei deinem Shelly alles funktioniert wie erwartet, nicht jedoch bei meinem.
Das hilft schon mal weiter.
Johann
Vielen Dank für den Test.
Damit ist klar, dass bei deinem Shelly alles funktioniert wie erwartet, nicht jedoch bei meinem.
Das hilft schon mal weiter.
Johann
Dein Skript verändert, so dass kein Zugriff auf das Relais erfolgt, aber die Events ausgegeben werden.
//Abchaltzeit in Sekunden, bei einer kurzen oder langen Taster Betätigung.
let zeitKurz = 3;
let zeitLang = 10;
Shelly.call("Switch.SetConfig", {id: 0,config: {in_mode: "detached"}});
Shelly.call("Input.SetConfig", {id: 0,config: {type: "button"}});
function Check(event){
let info = event.info;
print(JSON.stringify(info));
/*
if(event.info.id === 0 && event.info.event === "single_push"){
Shelly.call("Switch.Set",{id: 0, on: true, toggle_after: zeitKurz});
}else if(event.info.id === 0 && event.info.event === "long_push"){
Shelly.call("Switch.Set",{id: 0, on: true, toggle_after: zeitLang});
}else if(event.info.id === 0 && event.info.event === "double_push"){
Shelly.call("Switch.Set",{id: 0, on: false});
}else{
return true;
}
*/
}
Shelly.addEventHandler(Check);
Alles anzeigen
liefert folgende Debug-Ausgabe:
{"ts":1659121590.190000,"event":"btn_down","id":0,"component":"input:0"} 21:06:30.204
{"ts":1659121590.280000,"event":"btn_up","id":0,"component":"input:0"} 21:06:30.303
{"ts":1659121590.690000,"event":"single_push","id":0,"component":"input:0"} 21:06:30.732
{"ts":1659121590.770000,"state":true,"event":"toggle","id":0,"component":"switch:0"} 21:06:30.809
{"ts":1659121600.770000,"state":false,"event":"toggle","id":0,"component":"switch:0"} 21:06:40.794
Toggle Switch (die letzten beiden Log-Zeilen) erfolgt also ohne Scripting Befehl mit Relais im Modus detached.
Das is für mich so nicht OK.
Grüße Johann
laut API Dokumentation :
detached: the state of the input doesn't affect the state of the switch.
Was für mich heißt, dasy der Button nicht mehr auf das Relais einwirkt.
Aber genau das passiert im beschriebenen Szenario.
Ich stimme dir zu, daß man die Events im Skript registrieren kann, aber das gelingt völlig unabhäng von 'detached'.
Insofern kann bin ich von deiner Aussage "Das ist kein Bug sondern so gewollt," noch nicht wirklich überzeugt.
Aber besten Dank für Mitwirkung bei der Klärung des Themas.
Grüße Johann
Besten Dank für den Hinweis.
Nach Betätigen des Taster liegt die Uptime bei
uptime | 2624173 |
Es ist davon auszugehen, daß kein Reset erfolgt.
Hilfreich wäre, wenn jemand das erwähnte Szenario nachstellen könnte und das beschriebene Verhalten bestätigt oder eben nicht bestätigt.
Grüße Johann
Hallo zusammen,
vielleicht habe ich auch was falsch verstanden, aber ich denke das Verhalten wie nachfolgend beschrieben ist bei Shelly 1 Plus Firmware 0.10.3 fehlerhaft.
Das Szenario "Input.Mode = Button und Relais type = Detached" funktioniert nicht wie erwartet.
Bei Betätigen des Taster wird das Relais dennoch angesteuert.
Das Szenario "Input.Mode= Switch und Relais type = Detached" hingegen funktioniert wie erwartet.
Das Betätigen des Schalters/Tasters ändert den Zustand des Relais nicht.
So habe ich es bisher gemacht und ja ich finde es umständlich.
Da Javascript in den Scripten wohl eine zunehmende Bedeutung haben wird , war dies eher als Anregung gedacht den Dateifilter im Forum anzupassen.
Johann
Die Skripte für die neuen Shellies werden mit Javascript gecodet.
Leider ist es nicht möglich eine *.js Datei hochzuladen.
Das wäre sehr hilfreich.
Vielleicht lässt sich das ohne größeren Aufwand umsetzen.
Grüße Johann
Das Blinken sollte nach Ablauf der von dir parametrierten Zeit von Auto_off beginnen.
Durch Anpassen von defaultFlashCounter kann man die Anzahl der Blink-Perioden ändern.
defaultFlashTime bestimmt die Puls-Dauer beim Blinken, die Pause ist fest auf 1 Sekunden festgelegt.
let CONFIG = {
defaultFlashCounter : 3,
defaultFlashTime : 5,
Gruß Johann
Hallo Lötauge,
shelly 1pm hatte ich noch nicht getestet mit dem Script, sondern nur den shelly 1p.
Mit 1.0.2.0 wird auch shelly 1pm unterstützt.
Gruß Johann
Hallo Lötauge,
a.) hast du das korrigierte Script V 1.0.1.0 verwendet ?
b.) ich habe das Script für Shelly 1 Plus freigegeben (siehe Header vomScript)
Dieser Log-Eintrag zeigt mir, dass es kein Shelly 1 Plus sein kann, richtig ?
{"ts":1656269094.200000,"apower":2,"event":"power_update","id":0,"component":"switch:0"} 20:44:54.213
Genau dieser Event scheint falsch ausgewertet zu werden, da er die Variable switchState auf undefined setzt.
Grüße Johann
Treppenlichtschalter deaktivieren sich nach einer eingestellten Zeitdauer. (Leuchtphase)
Es kann passieren, dass man hierbei im Dunkeln auf der Treppe steht.
Hilfreich wäre es, wenn der Automat durch Blinken des Lichtes deutlich macht, dass in Kürze das Licht ausgeht. (Blinkphase)
Dann hätte man noch die Möglichkeit innerhalb der verbleibenden Zeit, den nächsten Taster zu erreichen
und könnte so den Treppenlichtschalter erneut aktivieren.
Genaus das versucht das vorliegende Skript. Es erweitert die Auto_OFF Funktion von Shelly.
Bedingungen:
Relay-Type : Momentary oder Detached
Timer.Auto_OFF : enabled
Timer.Auto_off_delay >3 Sekunden
Wird der Taster während der Leuchtphase betätigt, wird das Licht ausgeschaltet.
Wird der Taster während der Blinkphase betätigt, führt dies zum Retriggern von Auto_OFF.
Vielleicht ist das Skript auch für Andere hilfreich.
Aktuelle Version : 1.0.2.0 :
Freigabe für folgende Hardware : Shelly 1P, Shelly 1PM
Bug-Fix: Preconditions without brackets
Bug-Fix: event detection of state
Feature : possible values for Relay-Type: Momentary or Detached
Grüße Johann
Wie vermutet.
Schön das es jetzt funktioniert!
Da hatte wohl vorher ein Plus2 die selbe IP.
Die IP .32 war immer frei, das habe ich mit einem Ping geprüft.
Das Löschen des Browser-Caches war die Lösung, warum auch immer.
Johann
Wenn Shelly die IP-Adresse 192.168.178.32 erhält, unabhängig davon ob per DHCP oder statisch Einstellung , tritt das beschriebene Problem auf.
Meine Vermutung, daß die statisch Einstellung die Ursache für das Fehlerverhalten sein könnten, bestätigt sich somit nicht.
Letztendlich nach vielen Versuchen war die Lösung, den Cache meines Firefox-Browsers komplett zu löschen.
Besten Dank Allen für die Unterstützung
Johann
Sorry Stefan , hab ich vergessen.
Sollte das aktuellste Image sein.
Firmware version: 0.10.2
Firmware build ID: 20220531-140150/0.10.2-g8a2ef01
Habe gerade noch Folgendes festgestellt:
Das passiert auch ohne statische IP-Adresse im Shelly . Wenn ich meinem Router sage, er soll für den Shelly die 192.168.178.32 fest zuordnen, zeigt sich dasselbe Fehlerbild.
Die 192.168.178.32 war als statische IP-Adresse für den Shelly geplant.
Gruß Johann
Sobald eine statische IP-Adresse verwendet wird, verschwinden die meisten Menu-Buttons.
Z.B. ist der Button für Scripting nicht mehr verfügbar.
Dies scheint ein Bug zu sein oder täusche ich mich ?
Johann
Die Triggerzeit lässt sich im WEB_UI verfolgen und wird mit deiner Methode nicht zurückgesetzt.
Mein Plan war einen zentralen Ablüfter über verschiedene Trigger für eine festgelegt Zeit T zu aktivieren:
Wenn während der aktiven Phase (Ablüfter EIN) ein Trigger erneut auftritt, sollte die Zeitdauer für das Einschalten retriggert, also auf T zurückgesetzt und damit die Gesamt-Einschaltdauer verlängert werden.
Mit dem Timer "Auto ON" gelingt dies nicht, da dieser vom Zustand des Relais getriggert wird und nicht vom Switch/Eingang.
Folgender Ansatz brachte die Lösung: (Einschalt T=60 Sekunden)
In der WEB-API Beschreibung steht hierzu: "Since v1.7.0 Shelly devices support "local" action URLs."
Damit kann Shelly über die Actions sich selbst adressieren.
Wenn man hier die absolute IP-Adresse vewendet (z.b. 192.168.178.26) funkioniert der beschriebene Mechanismus nicht mehr.
Die Verwendung von "localhost" ist also zwingend geboten.