[NodeRed] Schaltzustand ShellyPlus 1 und 1PM aus MQTT extrahieren und Aktion auslösen

  • Hallo Shelly Freunde,

    wie viele Andere von Euch experimentiere ich mit unseren neuen Spielzeugen und wegen des Wegfalls von COIOT auch mit MQTT.

    Dabei setze ich aktuell den ioBroker "internen" MQTT-Adapter ein.

    Der Inhalt kann nicht angezeigt werden, da Sie keine Berechtigung haben, diesen Inhalt zu sehen.

    Zwar nicht ganz im Stil des JSON-Parsens, aber als MQTT-Einsteiger erfolgreich, habe ich einen leichten Weg gefunden, den Schaltstatus auszulesen und verwendbar zu machen.

    Im Flow endet dies in der Ausgabe eines Debug-Nodes. Stattdessen kann man natürlich einfach z.B. einen eMail-Node oder einen "ioBroker-out"-Node setzen, um weitere Aktionen auszuführen. ;)

    Hier nun der Flow:

    Der Inhalt kann nicht angezeigt werden, da Sie keine Berechtigung haben, diesen Inhalt zu sehen.

    Die einzelnen Nodes:

    MQTT in

    Der Inhalt kann nicht angezeigt werden, da Sie keine Berechtigung haben, diesen Inhalt zu sehen.

    (Topic anpassen!)



    Node Switch

    Der Inhalt kann nicht angezeigt werden, da Sie keine Berechtigung haben, diesen Inhalt zu sehen.

    (nicht ändern!)

    Node Change

    Der Inhalt kann nicht angezeigt werden, da Sie keine Berechtigung haben, diesen Inhalt zu sehen.

    Im 2. Change-Node ersetzt Ihr einfach eingeschaltet durch ausgeschaltet.

    Statt des Debug-Node setzt Ihr einen passenden Node für Euer Vorhaben. ;)

    Viel Spass damit. :) :thumbup:

    Wenn ich das Parsen im Griff habe, lasse ich es Euch wissen. :D

  • Parsen mache ich mit dem Function-Node, z.B.:

    Code
    msg.payload = msg.payload["uptime"];
    return msg;

    Den msg. können unterschiedliche Namen gegeben werden.

    Um zu ermitteln, was bei welchem Topic bei Node Red ankommt, einfach einen Debug-Node hinter den MQTT-In setzen und rechts oben den Bug (Käfer) anklicken. Durch anklicken der Ausgabe kann man dann auch ggf. ein direktes Topic ermitteln, welches das Parsen überflüssig machen kann. Eventuell zwischen MQTT-In und den Debug-Node den json-Node klemmen, um mit dem Debug-Node eine, bzw. eine bessere Ausgabe zu erhalten. Ich habe mich damit noch nicht richtig befasst und muss selbst noch probieren.

    bei der Plus-Serie wurden die Topics geändert und man kommt nicht mehr per topic

    shellies/[shelly-Präfix]/relay/0

    direkt an den Schaltzustand, bzw. per

    shellies/[shelly-Präfix]/input/0

    an den SW-Zustand?

    Gehört das Thema nicht eher in den Bereich "Node Red"?

  • 1. Welcher Node ist der "Function Node"? :/

    2. Wie Du siehst, den Debug-Node kenne und nutze ich schon. 8o

    3. Genau. Die States liegen alle in einem verschachtelten JSON. :thumbup:

    4. Für mich nicht, da dieser MQTT-Server direkt Teil vom ioBroker ist. ;)

    Und wie gesagt, bin absoluter MQTT-Anfänger und für Anregungen dankbar, gleichzeitig ein wenig stolz nach einigen Stunden diese funktionierende Lösung erarbeitet zu haben. 8)

  • Dieses Thema enthält 20 weitere Beiträge, die nur für registrierte Benutzer sichtbar sind.