NEWS
Shellys ("Alt und Plus") über MQTT Adapter
-
@hotspot_2 Du kannst doch über eine Change Node direkt auf die stable Eigenschaft prüfen. Poste einfach Dein komplettes Objekt, das rauskommt in codetags. Wie gesagt mach debug Nodes dran und kopiere den Pfad auf die Eigenschaft die untersuchen willst.
-
{"mac":"A8032ABD5E90","restart_required":false,"time":"21:57","unixtime":1680206255,"uptime":8,"ram_size":235508,"ram_free":163804,"fs_size":458752,"fs_free":172032,"cfg_rev":5,"kvs_rev":0,"schedule_rev":0,"webhook_rev":0,"available_updates":{"stable":{"version":"0.14.1"}}}
Hab noch einen Plus 1 gefunden der noch keine aktuelle Firmware hat ;-). So sieht es dann aus.
Anderes Thema noch: Habe gerade Fehlermeldungen dieser Art gefunden im Protokoll:
Read-only state "0_userdata.0.shellies.sonstiges.gefahrenmelder.2.event_cnt" has been written without ack-flag with value "0"
Ich schreibe aber nichts (meine ich zumindest) ich lese nur aus. Was habe ich da denn falsch gemacht?
-
@hotspot_2 sagte in Shellys ("Alt und Plus") über MQTT Adapter:
Read-only state "0_userdata.0.shellies.sonstiges.gefahrenmelder.2.event_cnt" has been written without ack-flag with value "0"
Ich schreibe aber nichts (meine ich zumindest) ich lese nur aus. Was habe ich da denn falsch gemacht?Na freilich schreibst Du mit Node-Red rein - wahrscheinlich hast Du in der iobroker-Out Type command drin und nicht value.
-
@hotspot_2 sagte in Shellys ("Alt und Plus") über MQTT Adapter:
{"mac":"A8032ABD5E90","restart_required":false,"time":"21:57","unixtime":1680206255,"uptime":8,"ram_size":235508,"ram_free":163804,"fs_size":458752,"fs_free":172032,"cfg_rev":5,"kvs_rev":0,"schedule_rev":0,"webhook_rev":0,"available_updates":{"stable":{"version":"0.14.1"}}}
Hab noch einen Plus 1 gefunden der noch keine aktuelle Firmware hat ;-). So sieht es dann aus.
Anderes Thema noch: Habe gerade Fehlermeldungen dieser Art gefunden im Protokoll:
Read-only state "0_userdata.0.shellies.sonstiges.gefahrenmelder.2.event_cnt" has been written without ack-flag with value "0"
Ich schreibe aber nichts (meine ich zumindest) ich lese nur aus. Was habe ich da denn falsch gemacht?
dann solltest zum Vergleich auch das Objekt reinschreiben, wenn kein Update verfügbar ist. Hast Du das mit dem Pfad kopieren gecheckt?
-
@mickym Jupp, das war es.
-
@mickym Ok, hier der Vergleich wenn kein Update verfügbar ist.
``
{"mac":"441793CFA490","restart_required":false,"time":"20:38","unixtime":1680201504,"uptime":172817,"ram_size":234796,"ram_free":161160,"fs_size":458752,"fs_free":102400,"cfg_rev":13,"kvs_rev":0,"schedule_rev":0,"webhook_rev":0,"available_updates":{}} -
@hotspot_2 Wenns beschreibbar soll musst Du writeable eintragen - kannst DU nachträglich noch unter common eintragen
-
@hotspot_2 sagte in Shellys ("Alt und Plus") über MQTT Adapter:
@mickym Ok, hier der Vergleich.
{"mac":"441793CFA490","restart_required":false,"time":"20:38","unixtime":1680201504,"uptime":172817,"ram_size":234796,"ram_free":161160,"fs_size":458752,"fs_free":102400,"cfg_rev":13,"kvs_rev":0,"schedule_rev":0,"webhook_rev":0,"available_updates":{}}
Sag ich doch leeres Objekt.
-
@mickym Ja, aber wenn nur eine Beta da ist steht oben dann steht statt stable beta drin. Und ich würde gerne nur ein true auf meinem Objekt haben wollen wenn es eine neue stable version gibt.
-
@hotspot_2 sagte in Shellys ("Alt und Plus") über MQTT Adapter:
@mickym Ja, aber wenn nur eine Beta da ist steht oben dann steht statt stable beta drin. Und ich würde gerne nur ein true auf meinem Objekt haben wollen wenn es eine neue stable version gibt.
Dann prüfst Du halt nur auf stable. Du hast doch Inject Nodes mit dem Du alles ausprobieren kannst. Ich versuch mal ein Video zu machen, damit Du lernst sowas selbst zu simulieren.
Das Video ist zu groß.
-
-
@hotspot_2 Du kannst das nur ziemlich verkürzen, wenn Du Dich an das Vorgehen hälst. Man kann es zwar auch so wie Du machen - in dem Du auf Existenz des Schlüssel prüfst.
-
@mickym Ah, jetzt habe ich es gesehen. Das mit dem "JSON" Node. Das probiere ich gleich mal aus.
-
@hotspot_2 NEIN. Die JSON Node ist für was anders da.
-
@hotspot_2 Du sollst das Objekt als Debug Node darstellen:
Dann kopierst Du den Pfad zu der Eigenschaft den Du untersuchen willst . Diesen kopierst Du in der Switch Node DORT rein, welche Eigenschaft des Nachrichtenobjektes untersucht werden soll.
Also
payload.available_updates.stable
ist die Eigenschaft die Du untersuchen willst:
mit den Inject Nodes testest Du.
Ok der Switch war falsch - weil Du auf Existenz prüfst und das ist null oder nicht null:
Fazit: Also ganz verkehrt war die Existenz des Schlüssels nicht, aber man kann ohne die Change Node davor auskommen.
Also in deinem alten Flow - hätte man sich die Change Node wie folgt sparen können:
-
@mickym Ist es richtig das wenn kein Inhalt in available_updates steht das dann available_updates.stable undefinded ist?
-
@hotspot_2 richtig Da ist ja nichts drin. in dem Objekt. Ja und wenn etwas nicht definiert ist - also das Objekt leer ist, dann ist es undefined. Und undefined = null
Wie gesagt Deine ursprünglicher Switch war auch nicht schlecht:
-
@mickym Das ist jetzt komisch.
-
Zeig Dir gleich noch eine Möglichkeit - wie Du das mit einer ChangeNode hinbekommst. Wenn Du Dich etwas mit JS auskennst, dann kennst Du diese Methode über JSONATA
In der Change Node prüfst Du also ebenfalls ab ob
diese Eigenschaft true ist . wenn ja gib true aus, sonst false:
-
@hotspot_2 sagte in Shellys ("Alt und Plus") über MQTT Adapter:
@mickym Das ist jetzt komisch.
Warum in diesem Fall hast Du die payload auf das Objekt available_updates gesetzt. Diese 1. Change NOde muss raus.