NEWS
[ungelöst geschlossen] Unerklärliches Ausschalten b. Blockly
-
Habe ein einfaches Blockly geschrieben bei dem eine Steckdose geschalten werden soll. Aus einem mir nicht ersichtlichen Grund wird nach dem richtigen auslösen der Funktion (alles auf true) innerhalb von Millisekunden die Schaltung wieder zurückgenommen (2 mal sogar)
Hier das Blockly
Hier das Protokoll
2024-01-11 03:00:11.422 - info: web.0 (10634) <== Disconnect system.user.admin from ::ffff:192.168.178.20 flot 2024-01-11 03:00:29.810 - error: javascript.0 (10388) script.js.Batterie_Tibberkanal_Netzladen: true 2024-01-11 03:00:29.811 - error: javascript.0 (10388) script.js.Batterie_Tibberkanal_Netzladen: true 2024-01-11 03:00:29.812 - error: javascript.0 (10388) script.js.Batterie_Tibberkanal_Netzladen: true 2024-01-11 03:00:29.812 - error: javascript.0 (10388) script.js.Batterie_Tibberkanal_Netzladen: true 2024-01-11 03:00:29.869 - info: fritzdect.0 (1151) DECT ID: 116570243229 identified for command (state) : true 2024-01-11 03:00:29.988 - info: fritzdect.0 (1151) DECT ID: 116570243229 identified for command (state) : false 2024-01-11 03:00:30.025 - info: fritzdect.0 (1151) DECT ID: 116570243229 identified for command (state) : false 2024-01-11 03:02:09.810 - warn: javascript.0 (10388) script.js.Batterie_Netzladen: -0.01599999999999996 2024-01-11 03:02:09.810 - warn: javascript.0 (10388) script.js.Batterie_Netzladen: true 2024-01-11 03:02:09.811 - info: javascript.0 (10388) script.js.Batterie_Netzladen: 0 2024-01-11 03:02:09.811 - info: javascript.0 (10388) script.js.Batterie_Netzladen: 0 2024-01-11 03:02:09.821 - info: fritzdect.0 (1151) DECT ID: 116570243229 identified for command (state) : true 2024-01-11 03:02:29.809 - error: javascript.0 (10388) script.js.Soyo_inteligent_schalten: false
Hat jemand eine Idee woran das liegt?
-
@peter-c Hast Du es schon mit "aktualisiere" statt "Steuere" für die Fritzdect Dose probiert... ?
Ansonsten Könntest Du Dir testweise ein Script schreiben, welches als Trigger "state" der fritzdect überwacht, und über "ursprung" schauen, wer den Wert auf False setzt...
EDIT: Gehst Du Direkt auf den Datenpunkt "state" der Fritzbox, oder über ein Alias?
-
@martinp Danke für den Tip. Nutze eigentlich immer aktualisiere da das bei anderen Scripts für andere Fritzboxsteckdosen funktioniert hat. Aber ich mach das mal.
Ja ich gehe über ein Alias.
-
@martinp sagte in Unerklärliches Ausschalten bei einfachem Blockly:
Hast Du es schon mit "aktualisiere" statt "Steuere" für die Fritzdect Dose probiert... ?
Warum sollte man direkt bestätigte Werte setzen, wenn eine Instanz (fritzdect.0) damit noch etwas tun soll? Dann wird nichts mehr passieren!
-
@peter-c Bei meiner Fritzdect ist hat über iobroker/objects ein Setzen von state auch Bestand, wenn der Bestätigt - Haken gesetzt wird ...
Schaue doch mal, was passiert, wenn Du auch über iobroker/objects des state änderst...
-
@martinp sagte in Unerklärliches Ausschalten bei einfachem Blockly:
Bei meiner Fritzdect ist hat über iobroker/objects ein Setzen von state auch Bestand, wenn der Bestätigt - Haken gesetzt wird ...
- Das wäre gegen das Grundkonzept vom ioBroker
- und widerspricht dem Code: https://github.com/foxthefox/ioBroker.fritzdect/blob/c285b8acfa0050b5acd49432481b4766428c4f59/main.js#L358
-
@Peter-c
Du könntest mal mitloggen, wer denn da den Status wieder zurücksetzt.https://forum.iobroker.net/topic/70481/blockly-for-dummies-starthilfe-und-tipps/6
Ich zitiere mal:
Steuere
Diesen Baustein verwendet man, um Datenpunkte zu verändern die einem Adapter "gehören", um z.B. eine Lampe oder einen Schalter zu schalten.
Im Detail wird damit eine Änderung "ohne Bestätigung" (Ackknowledge) geschrieben. Diese fehlende Bestätigung ist für den Adapter die Veranlassung, etwas zu tun.
Die allermeisten Adapter reagieren nicht, wenn hier eine Änderung per "Aktualisiere" (mit Bestätigung) geschrieben wird.
Das gilt im Übrigen auch für Alias-Datenpunkte, die auf den "echten" DP eines Adapters verweisen.Aktualisiere
Dieser Baustein wird zur Änderung eigener Datenpunkte verwendet, die Du unterhalb von0_userdata.0
selbst angelegt hast.
Hierbei wird "mit Bestätigung" geschrieben. Damit wird verhindert, dass der Wert im Objektbaum in rot dargestellt wird. In den meisten Fällen also eine lediglich kosmetische Sache. -
@codierknecht Ja da mach ich mal.
-
@codierknecht Ist Ursprung eine selbst generierte Variable?
-
@haus-automatisierung Ich habe es aus dem objects Baum händisch einmal mit "bestätigt", und einmal ohne ausgelöst ...
Funktionierte augenscheinlich erstmal beides ...
Dem Adapter scheinen die Experimente aber nicht behagt zu haben - aktuell kann ich "state" gar nicht mehr manipulieren.
Interessant - auch nach Neustart des Adapters kriege ich den State nicht mehr manipuliert
EDIT: Noch ein Experiment
Ohne gesetzten "Bestätigt" Haken (false->true)
javascript.0 2024-01-11 13:19:38.384 info script.js.Spielwiese.Test: Ursprung der Änderung: system.adapter.admin.0Status: true fritzdect.0 2024-01-11 13:19:38.384 info DECT ID: 087610202315 identified for command (state) : true
Mit gesetztem "Bestätigt" Haken (true->false) Genau das Verhalten ...
javascript.0 2024-01-11 13:22:39.925 info script.js.Spielwiese.Test: Ursprung der Änderung: system.adapter.admin.0Status: false javascript.0 2024-01-11 13:22:52.171 info script.js.Spielwiese.Test: Ursprung der Änderung: system.adapter.fritzdect.0Status: true
-
@peter-c - nein das Ding holt man sich aus dem Trigger - Menu
Erkennt man am kleinen vorangestellten Winkel-Pfeil
-
@martinp Alles klar, danke
-
@codierknecht kann ich das so in mein bestehendes Blockly einbauen oder sollte es separat laufen?
-
@peter-c
Kannst Du so einbauen -
@peter-c sagte: in mein bestehendes Blockly einbauen oder sollte es separat laufen?
Das ist egal. Besser ein ausführliches Debug-Log mit Trigger auf "wurde aktualisiert":
-
@paul53 Ich gehe mal davon aus das dieses Script die Umwandlung des Blockly darüber ist.
Hab es als neues Script angelegt, den ID Wert des Datenpunktes eingegeben und das Script gestartet.
War das so richtig?
Nur ist alles in dem Script rot. -
@peter-c sagte: Script die Umwandlung des Blockly darüber ist.
Es ist eine Erweiterung der Log-Ausgabe.
@peter-c sagte in Unerklärliches Ausschalten bei einfachem Blockly:
Hab es als neues Script angelegt, den ID Wert des Datenpunktes eingegeben und das Script gestartet.
War das so richtig?Ja.
-
@peter-c Du musst das als XML in (d)ein Blockly-Script importieren. Du hast das XML in ein neues JavaScript importiert. Das funktioniert so natürlich nicht...
Bitte mit den Grundlagen beschäftigen
-
@peter-c sagte: Nur ist alles in dem Script rot.
Du hast es vollständig in Blockly importiert: Exakt den kompletten Text in Code tags?
-
@peter-c said in Unerklärliches Ausschalten bei einfachem Blockly:
@martinp Danke für den Tip. Nutze eigentlich immer aktualisiere da das bei anderen Scripts für andere Fritzboxsteckdosen funktioniert hat. Aber ich mach das mal.
Ja ich gehe über ein Alias.
Hier nutzt Du nicht "aktualisiere" ...