Shelly, Homematic und ioBroker

  • Hallo Homematic-Gemeinde,

    dieser Beitrag soll aufzeigen, wie man als Betreiber eines zusätzlichen ioBroker alle Shelly-Daten in Homematic als Alternative zu den Homematic-Skripten bekommt.

    (Natürlich wird das wohl auch mit anderen Hausautomationssystemen möglich sein. Ich kann mich aber nur auf meine eigene Smarthome-Umgebung beziehen. ;) )

    Warum sollte man nun den Weg über ioBroker gehen, wo es doch schon für (fast) alle Shelly Kopplungen via Skript gibt? :/

    • Die zyklischen Abfragen mittels Skript erzeugen auf dem Homematic-System Last, die bei häufiger Aktualisierung und vielen zu aktualisierenden Shelly zu Verzögerungen auf der Homematic führen kann.

      Ich habe knapp unter 100 Shelly in Homematic eingebunden und das System läuft insgesamt stabil. Nun ist aber im Laufe der Zeit der ioBroker primär zur Visualisierung dazugekommen. Und dabei habe ich festgestellt, dass sich die Werte, die man dann ja im ioBroker eh schon hat, hier mit einfachsten NodeRed-Flows nach Homematic portieren lassen.
    • Vorteile:

      - Zyklisches Aktualisieren via Skript entfällt --> Entlastung der CCU

      - sich ändernde Daten werden annähernd in Echtzeit in Homematic aktualisiert

    Wie immer gilt:

    1.000 Wege führen nach Rom

    Es steht natürlich jedem frei, eigene andere Wege in einem eigenen Thread vorzustellen. ;)

  • Voraussetzungen:

    Homematic und ioBroker

    Die Daten werden i.d.R. über den Shelly-Adapter in den ioBroker portiert:

    • Hierzu braucht man für Shelly der 1. Generation entweder 1 COIOT/COAP-Instanz oder 1 MQTT-Instanz
    • Shelly der 2.Generation unterstützen COAP ncht mehr. Folglich braucht man 1 MQTT-Instanz . Diese kann aber problemlos von Shelly beider Generationen gemeinsam genutzt werden.

    Shelly Adapter Instanzen.PNG

    Da neue Shelly nicht immer zeitnah im Shelly Adapter nachgepflegt werden, bietet sich als Alternative der ioBroker interne MQTT-Adapter an.

    MQTT.PNG

    Nachteil:
    Bei Gen.2 Geräten muß man die Daten selbst extrahieren wozu ich hier schon ein kleines Howto geschrieben habe:

    66er
    25. September 2021 um 14:51

    Zu guter Letzt braucht man noch eine Instanz des NodeRed Adapter zum Erstellen der Flows (= Programme bei Homematic ;) )

    Node red Instanz.PNG


  • 66er 11. September 2022 um 10:07

    Hat das Thema geschlossen.
  • Daten aus ioBroker in Homematic-Systemvariablen schreiben

    Ob die Daten nun per COAP/COIOT oder MQTT vom Shelly in den ioBroker kommen, spielt keine Rolle.

    Wird der Shelly-Adapter genutzt, stehe alle relevanten Datenpunkte zum "Direktzugriff" zur Verfügung.

    Beim MQTT Adapter muß der Antwortstring erst geparst (zerlegt) werden. Ein Beispiel mit Howto ist im vorigen Beitrag bereits verlinkt.

    Hier nun mal ein Beispiel für einen simplen Wertetransfer in Homematic-Variablen:

    Für Gen1-Shelly stellt auch der MQTT-Adapter die Daten per "Direktzugriff" zur Verfügung. Von daher macht es keinen Unterschied, ausser, dass man den datenpunkt aus dem Shelly-Adapter nehmen muß.

    Dieser Flow ...

    Temp-Addon.PNG

    ... überträgt bei Werteänderung die 2 Temperaturwerte des oberen Addons und die Temperatur und Luftfeuchte des unteren Addon in die zugehörigen Homematic-Systemvariablen.

    Um die Funktion zu testen, setzt Ihr zunächst in Homematic das zugehörige Aktualisierungsprogramm auf inaktiv.

    Programm deaktivieren.PNG

    Anschließend sollten bei jeder übertragenen Werteänderung sich die Werte auch im Flow und auch in der Homematic-Systemvariablen aktualsieren.

    Bei Gen. 2 Geräten ist der Aufwand etwas größer. Allerdings ist das nur beim ersten Anlegen treffend. Weitere Daten lassen sich dann durch Kopieren eines Flows und Anpassen der Datenpunkte sehr schnell umsetzen.

    In diesem Beispiel ...

    Plus2PM Nodered.PNG

    .. wird zunächst der JSON-String von ShellyPlus2PM nach den benötigten Werten geparst und in der letzten Spalte des Flows in eigene Datenpunkte des MQTT-Adapters geschrieben. Die Behanghöhe wird mit dem untersten Node in die Systemvariable der Homematic geschrieben.


    Ich habe Euer Interesse geweckt ? :/

    Hier eine komplette Abhandlung über MQTT und NodeRed im ioBroker zu schreiben, würde den Rahmen sprengen. Einige Beispiele inkl. der Möglichkeit die Flows direkt zu importieren findet Ihr hier:

    IoBroker Vorlagen

    Ansonsten macht bei Fragen einfach ein neue Thema auf. :) :thumbup:

    Schönen Sonntag noch.