NEWS
Sonoff adapter zeigt null nicht an
-
Hallo, Allerseits
bin neu hier und fuchse mich gerade in ioBroker ein. Läuft eigentlich alles soweit ganz gut. Habe auch schon einige scripts an Laufen gebracht. Wollte mir auch eine Warn-email schicken, falls der Temperatursensor für unsere Kühltruhe ausfällt... sprich der Temperatur Wert im Tasmota broker wird null (nicht value 0) Das zeigt Tasmota an,
wird aber im ioBroker nicht übernommen... hier bleibt nur der letzte gültige Temperaturwert sichtbar...
Hab schon alle Zustandswerte durch; mixed funzt auch nicht. Null wird zwar gesendet, aber im Sonoff ioBroke adapter nicht übernommen... somit kann ich den auch im script nicht triggern....
weiß mir keine Rat mehr, ich hoffe ihr könnt mir helfen und ich hab mich verständlich ausgedrückt.
Dafür schon mal Danke!!
Matthias
-
Kannst du nicht den Zeitstempel abfragen ? Wenn der älter ist als XY -> Nachricht
-
@matthias-greiner-petter (null) als Wert im iobroker = undefined. Das heißt wenn Du (null) eines Wertes abfragen willst, musst Du abfragen, ob der Wert "undefined" ist. Wenn ein Sonoff Adapter das anders interpretiert - dann musst Du damit leben, oder Du nimmst halt keinen Adapter, der Dir die Werte interpretiert, sondern Dir das unverfälscht ausgibt, was das Gerät schickt. Dann musst aber auf MQTT umsteigen. Doch bevor jetzt die Sonoff- Adapter Fans wieder über mich herfallen, ja man muss mit JSON umgehen können.
-
Guten Morgen und erstmal vielen Dank an Alle. Hab ich mir fast gedacht, das das evtl. nur über "pures" MQTT geht. Hatte ich auch schon implementiert, weiß aber (noch) nicht wie ich an die Datenpunkte komme... Abkopplung geht ja wie im Sonoff...
Matthias -
@matthias-greiner-petter du könntest einen Alias erstellen, in dem Du einzelne interessante Werre direkt abspaltes oder sogar das Ergebnis Dir als treue oder false direkt ausgeben läßt oder Du benutzt die von Dir präferierte Logikmaschine
-
Hallo, mickym, ok, vielen Dank, das probier ich dann gleich aus. Hab erstmal den mqtt pur mit ner kleinen js routine ans Laufen gebracht... (Datenpunkt manuell erzeugt) Hier funzt dann der Wert (null)... hiesse aber alle übrigen Datenpunkt auch neu anlegen...
Alias anlegen... (wäre erstmal wieder was Neues) ok, dann erstmal vielen Dank!! hat sehr geholfen -
@matthias-greiner-petter falls Du Node-red benutzt habe ich einen fertigen Subflow, der dir alle Datenpunkte anlegt. Die Frage ist halt, ob du wirklich jeden Datenpunkt einzeln brauchst oder Du Dir bei Bedarf einzelne Werte extrahierst.
-
Die übrigen Datenpunkte kommen vom Stromzähler, da der mit am esp hängt. Wäre halt jetzt nur noch Fleissarbeit... Das Prinzip funzt ja jetzt Dank Deiner Hilfe. MQTT pur hat ja was... Node-red? nein benutze ich (noch) nicht...
LG Matthias -
@mickym
Alias hat insofern nix gebracht, da der Sonoff Wert übernommen wird (also eben nicht null, sondern nur der letzte Temp-Wert....) -
Mit einem alias kannst du den Wert direkt rausziehen, indem du die Konvertierung nutzt. Du musst halt den Pfad richtig angeben.
JSON.parse(val).temperature
Bei Dir ist der Pfad halt länger zur Temperatur
-
Hab jetzt mal Deine Anregung versucht umzusetzen...
"common": {
"name": "Temp1",
"desc": "Manuell erzeugt",
"role": "state",
"type": "mixed",
"read": true,
"write": true,
"alias": {
"id": "sonoff.0.Stromzaehler.AM2301_Temperature",
"write": "JSON.parse(val).sonoff.0.Stromzaehler.AM2301_Temperature"
}
},
"type": "state",
"native": {},
"_id": "alias.0.Temp1",
"acl": {
"object": 1636,
"state": 1636,
"owner": "system.user.admin",
"ownerGroup": "system.group.administrator"
},...funzt aber noch nicht ganz... oder muss statt write read gesetzt werden...
lG Matthias
-
Also - das funktioniert ich habe es gerade mal simuliert.
Ich habe nur mal den JSON - wäre übrigens erleichternd, wenn Du sowas auch in code-tags hier posten würdest in einen selbsterstellten Datenpunkt geschrieben:
{ "Time": "2022-10-31T21:41:00", "AM2301": { "Temperature": null, "Humidity": null, "DewPoint": null } }
dieser JSON steht nun unter userdata - im DP Punkt aktuell:
bei Dir ist es halt der Datenpunkt im tele Ast unter mqtt.
Dann erstellst Du einen Alias Datenpunkt unter alias.0. Ich habe den mal bei mir Temperatur genannt.
Man sieht, dass der auf den Originaldatenpunkt verweist:
Als ersten definiert man den als nur lesbar und nicht beschreibbar:
unter Alias hast Du dann einen neuen Tab
da trägst Du den Pfad zu Originaldatenpunkt und die gepostete Konvertierungsfunktion ein:
-
@mickym
ja, so gehts noch ein kleines 2. Problemchen: beim aktuellen ioBroker kann ich nix löschen (keine scripts, keine Datenpunkte etc.) scheint mit dem downgrade auf die 6.1.12 er Version zu gehen, die ist aber wieder in anderen Punkten problematisch gibts da ein work around?
Matthias -
@matthias-greiner-petter Hmm, wahrscheinlich müssen da die Systemjungs ran. Aber ich habe kein Problem mit dem Löschen und benutze den aktuellen admin 6.2.23. Allerdings habe ich auch keine Benutzerverwaltung aktiv. Sprich bei mir gibts keine Einschränkungen.
Ich hätte kein Downgrade gemacht. Ich würde lieber aktuelle version nehmen und mal die Leute fragen, die sich mit dem System besser auskennen, wie @thomas-braun
-
@matthias-greiner-petter sagte in Sonoff adapter zeigt null nicht an:
gibts da ein work around?
Der aktuelle Admin 6.2.23 sollte das Problem nicht mehr haben.
Ist über den stable-Kanal verfügbar. System aktuell halten! -
@thomas-braun
Danke für die Info, genauso ist es. Hab gerade auf 6.2.23 aktualisiert.
Matthias -
@mickym
soweit ich das jetzt verstanden habe, bezieht sich Dein workaround auf den MQTT Adapter... unter dem sonoff läuft es dann doch noch nicht... ich probiers mal weiter...
Matthias -
stable: 6.2.23 for 20 days
Im Zuge der regelmäßigen Systempflege hätte der also schon längst auf deinem System wohnen müssen.
-
@matthias-greiner-petter Nochmal der sonoff Adapter ist ein Adapter der Daten interpretiert - deshalb bist Du auf Gedeih und Verderb angewiesen, was der macht. Das was wir hier machen - ist die Originaldaten zu bearbeiten. Wenn Du am Verhalten des Sonoff Adapters was ändern willst - dann musst Du dort ein Issue aufmachen. Das ist aber genau der Grund warum ich diese Adapter nicht mag.
Ich bin gerade dabei mein NodeRed Flow zu überarbeiten - der erstellt Dir die Datenpunkte einzeln, aber eben aus dem MQTT und interpretiert nichts.
-
@mickym
weshalb ich auch tatsächlich wechseln werde. Ist mir wesentlich sympatischer. Ich versuche mir die ganzen Dinge tatsächlich autodidaktisch beizubringen... und Deine Hilfe war eine Große! Nochmals vielen Dank auch für Deine Geduld. Ist halt auch nicht die einzige Baustelle... das gibts ja dann noch Pyton für den ehemaligen shop meiner Frau und LISP für autocad und wordpress für die HP... aber das hält halt jung... (bin Jahrgang 1959)
einen schönen Restfeiertag
Matthias