NEWS
Tasmota POWER State abfragen ergibt immer 'Wahr'
-
Hallo zusammen,
Ich habe das Problem, dass ich den Zustand eines Tasmota-Schalters abfragen möchte, aber egal, wie der POWER-Status des Schalters ist, Blockly falls ermittelt immer Wahr.
Der eigentliche Zustand ist false
{ "_id": "sonoff.0.DVES_9DBC22.POWER", "common": { "type": "boolean", "role": "switch", "read": true, "write": true, "storeMap": true, "name": "DVES_9DBC22 POWER" }, "native": {}, "type": "state", "from": "system.adapter.sonoff.0", "user": "system.user.admin", "ts": 1698153505301, "acl": { "object": 1636, "state": 1636, "owner": "system.user.admin", "ownerGroup": "system.group.administrator" } }
Ich prüfe das mit folgendem Testskript:
Debug-Ausgabe:
javascript.0 2023-10-25 10:14:25.645 info script.js.Testskripte.Prüfe_Schalterzustand: Testskript: Wahr
Ich habe schon alles Mögliche ausprobiert: mit Konvertierung nach Logikwert, ohne Konvertierung, Object ohne Vergleich und mit Vergleich mit wahr...
Ich dachte, ich hätte Blockly allmählich verstanden, aber scheinbar doch noch nicht...
Was mache ich falsch?LG Achim
-
@achim-kaluza
Nicht so kompliziert denken
"Wert" bekommst du bei den Triggern, dort "Object" und danach auf "Wert" ändern.
"Wert" enthält entweder true oder false. Wenn er also "wahr" ist --> "mache", sonst eben... -
@sborg said in Tasmota POWER State abfragen ergibt immer 'Wahr':
"Wert" bekommst du bei den Triggern, dort "Object" und danach auf "Wert" ändern.
Danke für die Antwort. In meinem Fall ist der Trigger jedoch der Wert eines Temperatursensors. Wenn der sich ändert, soll der Zustand eines Tasmota-Schalters geprüft werden. Steht der auf "Wahr", soll er nach "False" umgeschaltet werden.
Ich habe aber das Problem, dass das Skript den Schalter bei jeder Temperaturänderung auf "False" umschaltet, obwohl er schon lange auf "False" steht. Das Abfragen des Schalterzustands will mir nicht gelingen. Die Zustandsabfrage ermittelt immer "Wahr".Also das komplette Skript sieht so aus:
-
@achim-kaluza
Du musst nicht das gesamte Objekt in einen Logikwert wandeln, sondern nur dessen Wert lesen.
Objekt nach Logikwert ergibt immer "wahr", da das Objekt ja existiert. -
@codierknecht said in Tasmota POWER State abfragen ergibt immer 'Wahr':
Du musst nicht das gesamte Objekt in einen Logikwert wandeln, sondern nur dessen Wert lesen.
Objekt nach Logikwert ergibt immer "wahr", da das Objekt ja existiert.Danke! Das war's! Ich dachte eigentlich, dass ich das auch schon erfolglos probiert hatte, aber offensichtlich nicht. Jetzt weiß ich Bescheid.
LG Achim
-
Kleiner Tipp noch
Gib dem Ding einen vernünftigen Namen (in den Tasmota Einstellungen) ,
macht die Identifikation in den Objekten einfacher. -
@haselchen sagte in Tasmota POWER State abfragen ergibt immer 'Wahr':
Kleiner Tipp noch
Gib dem Ding einen vernünftigen Namen (in den Tasmota Einstellungen) ,
macht die Identifikation in den Objekten einfacher.Tipp 2: Nimm immer Textfelder für die Datenpunkte:
Das finde ich lesbarer
-
Das musst Du @Achim-Kaluza schreiben, nicht mir
-
@haselchen said in Tasmota POWER State abfragen ergibt immer 'Wahr':
Gib dem Ding einen vernünftigen Namen (in den Tasmota Einstellungen) ,
macht die Identifikation in den Objekten einfacher.Meinst du so?
Das hatte ich bereits gemacht.
-
@bananajoe said in Tasmota POWER State abfragen ergibt immer 'Wahr':
@haselchen sagte in Tasmota POWER State abfragen ergibt immer 'Wahr':
Tipp 2: Nimm immer Textfelder für die Datenpunkte:Das habe ich nicht verstanden. Was meinst du mit Textfelder?
Was ist denn der Unterschied zwischen den beiden Arten, ein Objekt zu referenzieren?
Und warum gibt es diese beiden Alternativen?
Ist das nicht das Gleiche?
Und wofür brauche ich das?
Ich dachte die Attribute sind vorgegeben.
Aber ich will hier keinen Grundkurs in Blockly anfangen. Ich bin gerade dabei mir die Informationen zusammenzusuchen. Habe mir auch schon einige Skripte angeschaut. Eindrucksvoll, was man mit Blockly alles machen kann. Ich bin neu in ioBroker und in Blockly. Ich verwendete bis jetzt das Projekt Solaranzeige und hab mir die Erweiterungen und Funktionen in PHP selbst programmiert. Nachdem ich aber viel über ioBroker gelesen hatte, wollte ich es ausprobieren. Inzwischen habe ich in knapp einer Woche alle Funktionen, Dashboards etc., die ich in Solaranzeige implementiert hatte, nach ioBroker migriert und mehr. Wobei die meiste Zeit damit draufging, ioBroker, influx, Grafana in Docker zu installieren. Jetzt bin ich aber fast so weit, dass ich mein altes PV-Monitoring-System anschalten kann.
Danke für die Tipps!
LG Achim -
@achim-kaluza Überall wo du diesen grünen Objekt ID hats kannst du auch ein Textfeld reinziehen mit dem Pfad des Datenpunktes:
Zum einen finde ich das Lesbarer. Zum anderen kannst du dir so den Namen des Datenpunktes zusammenbauen aus Text:
So kannst du zum Beispiel am Anfang des Skriptes den Grundpfad definieren und später im Skript nutzt du es immer zusammengebaut.
So muss ich wenn ich zum Beispiel einen Echo austausche bei mir den nur einmal oben im Kopf ändern und der Rest passt dann wieder
-
@bananajoe said in Tasmota POWER State abfragen ergibt immer 'Wahr':
So muss ich wenn ich zum Beispiel einen Echo austausche bei mir den nur einmal oben im Kopf ändern und der Rest passt dann wieder
Habe ich verstanden. Ein guter Tipp! Werde ich beherzigen, danke!