NEWS
Skript wird bei Änderung eines States x-ausgeführt
-
Hallo zusammen,
in der letzten Zeit hatte ich beobachtet, das bei Aktivierung bzw. Deaktivierung meiner Alarmfunktion (ioBroker State schaltet HM-Sirene) diese mehrfach die Signaltöne für den Statuswechsel ausgegeben hat. Heute habe ich mich dann mal hingesetzt und nach der Ursache geforscht. Dazu habe ich neue Skripte und Objekte angelegt.
Folgendes ist mir aufgefallen:
Bei der ersten Ausführung des simplen Skriptes ist noch alles in Ordnung. Nach dem zweiten/dritten Mal wird das Skript mehrfach ausgeführt - und mit jedem mal Ändern des Zustandes des States noch einmal mehr wie zuvor ... das erklärt dann auch vielfachen Signaltöne der Sirenen - die Funksignale dazu kommen entsprechend oft.
Starte ich den javascript-Adapter durch, beginnt das ganze wieder von vorne.
Aktuell bin ich etwas ratlos, das JS Adapter steht auf debug, wirft aber nichts dazu aus. Der Rest im System scheint auch sauber zu laufen.
Ich habe dann noch parallel eine frische Umgebung in Containern gestartet: ein Master, ein Slave und Redis - hier kann ich das Verhalten nicht reproduzieren ... es muss also an meiner Produktiven Umgebung liegen. Die Versionen sind Identisch.
Grundsätzlich habe Ich ja schon länger vor alles auf eine frische Installation umzuziehen (also kein Backup, sondern Copy + Paste) - aber verstehen würde ich das ganze doch gerne
Hat jemand von euch eine Idee?
Noch ein paar Infos am Rande:
- ioBroker 2.1.1 läuft als Mulithostsystem im Docker-Container (macvlan)
- Repo: latest
- Object --> file / States --> redis
- node -v = 10.18.0
- npm -v = 6.13.4
-
@darkiop
Gibt es ein Skript, das diesen Datenpunkt setzt ? Wie sieht es aus ? -
@paul53 Ja, ich erstelle alle meine DPs über eine Funktion.
Das Skript zur Erstellung ist aber zu 99% deaktiviert - das starte ich nur einmal durch wenn ich etwas an meiner DP Struktur ändere.
function erstelleDPs() { createState('Alarmanlage.Status', false, {name: "Alarmanlage.Status", type: "boolean"}); } erstelleDPs();
-
@darkiop
Kein weiteres Skript, das den Wert des Datenpunktes setzt ? -
@paul53 Ich geh nochmal auf die Suche - aber aktuell habe ich eigentlich alle Skripte die diesen DP betreffen aus.
-
@paul53 Ich hab da tatsächlich noch was gefunden. Deine Vermutung war richtig.
Deaktiviere ich dieses, schaut es gut aus ... Allerdings würde ich behaupten dass das auch mal funktioniert hatte - nutzte ich eine Zeitlang um via TinyMatic auf Android den DP steuern zu können.
-
@darkiop sagte in Skript wird bei Änderung eines States x-ausgeführt:
dass das auch mal funktioniert hatte
Das glaube ich nicht. Bei einer wechselseitigen Beeinflussung sollte man in mind. einem Trigger den Ursprung des Triggers auswerten. (Forum-Suche "Ursprung")