Shelly Plus H&T goes Homematic - mit der Originalfirmware

  • ©2022 Stefan K. (alias 66er) - ausführlicher Hinweis dazu am Ende der Anleitung

    Alle Rechte vorbehalten!


    Entwickelt und getestet auf ShellyPlus-H&T-Firmware:

    plushtprod1 und 0.11.0-beta1


    Hallo liebe Homematic-Freunde. :)

    Heute geht es um die Einbindung des ShellyPlus-H&T in die Homematic.

    Diese Kopplung ermöglicht uns Homematicern, ein virtuelles Abbild des ShellyPlus-H&T in der Homematic-Welt zur Verfügung zu haben und somit alle Informationen als Trigger für Programme in der Homematic zur Verfügung zu haben.

    Das Ganze funktioniert natürlich wie immer ohne Fremdfirmware. ;)

    techn. Voraussetzungen:

    • kompatibel mit den Homematic-Systemen CCU2, CCU3, Charly, sowie allen Ablegern wie RaspberryMatic .

    • installiertes Addon CUxD in aktueller Version

      (Das Wissen um den Umgang CUxD, wie z.B. Geräte anlegen, setze ich an dieser Stelle voraus, sonst "explodiert" diese Anleitung. Danke für's Verständnis.)

    Ich möchte Euch an dieser Stelle empfehlen, vor der Umsetzung mal einen Blick in diesen Thread zu werfen:

    (Auch die übrigen angepinnten Themen sind übrigens zum Lesen empfohlen, gerade auch für Neueinsteiger ;))

    Und nun geht's los. :)

    __________________________________________________________________________________

    ©2022 Stefan K. (alias 66er) - ausführlicher Hinweis dazu am Ende der Anleitung

    Alle Rechte vorbehalten!

  • ©2022-2024 Stefan K. (alias 66er) - ausführlicher Hinweis dazu am Ende der Anleitung

    Alle Rechte vorbehalten!


    Über die Umsetzung habe ich mir vorab einige Gedanken gemacht und mich für die folgenden Weg entschieden, um zB. Heizkreise in 1 Gerät abzubilden.

    Dafür habe ich mich an meiner eigenen aktuellen Steuerung unserer Infrarotheizung orientiert. Die Lösung bietet alle Werte, also Temperatur und Luftfeuchte und optional die Batteriekapazität (%) in einem CUxD-Schalter an. Diesen kann man dann nutzen, um z.B. in meinem Fall den Schaltzustand des Shelly1 je Heizkreis zu visualsieren

    Es stehen 3 Varianten zur Verfügung:

    1. (Quick & Dirty) Übernahme der Werte für Temperatur und Luftfeuchte
    2. zusätzlich mit Batteriezustand (%)
    3. wie 2., zusätzlich mit Offset für Temperatur und Luftfeuchte

    Die Umsetzung:

    Wir brauchen je ShellyPlus-H&T 1 Kanal eines vorhandenen oder neu anzulegenden

    CUxD Gerätetyps (40) 16 Kanal Universalsteuerung als Schalter:

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

    Wie schon geschrieben nutzen wir je ShellyPlus-H&T 1 Kanal, können also mit dem angelegten Gerät maximal 16 ShellyPlus-H&T virtuell darstellen.

    Erstmalig bieten sich 3 Möglichkeiten der weiteren Umsetzung.


    Variante 1 (Quick & Dirty ^^ )

    Aufgrund eines neuen Syntax-Features von Allterco kommt diese Variante ohne zyklisch laufendes (Abfrage-)Skript aus. :thumbup:

    Das entlastet die Auslastung der CCUx. Die Werte für Temperatur und Luftfeuchte werden vom ShellyPlus-H&T direkt selbst in die Systemvariablen geschrieben. Das sieht dann so aus:


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

    Da ich aber weiß. dass Ihr den Komfort der autom. angelegten Variablen schätzen gelernt habt, gibt es für diese Variante ein kleines Skript, welches Ihr nur 1-malig unter "Skript testen" ausführen müßt. Entsprechend dem von Euch anzupassenden Setup werden dann die 2 Variablen wie gewohnt angelegt und dem Schaltkanal automatisch zugeordnet.

    Das Skript:

    Es muß nur der Kanalname hinter var shplhtname angepasst werden!

    Das Skript sollte dann unter Skript testen diese Ausgabe auswerfen:

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

    Und wenn alles passt sind die Variablen nun angelegt und im Device wie oben dargestellt sichtbar. :)


    Werteübermittlung vom Shelly in die Variablen:

    Dafür bedienen wir uns der Hilfe der Webhooks samt neuem Feature (Danke an Allterco :thumbup: ) dass es uns erlaubt sofort einen Datenpunkt in die URL zu packen. 8)

    Für die Temperatur legen wir im ShellyPlus-H&T folgenden WEBHOOK an :

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

    Der Code:

    Code
    http://192.168.1.93:8181/66er.exe?Antwort=dom.GetObject("ShellyPlusHT_Testboard_Temperatur").State($temperature)

    IP-Adresse der CCUx und den Kanalnamen an Eure Installation anpassen!

    Für die Luftfeuchte legen wir im ShellyPlus-H&T folgenden WEBHOOK an :

    Der Inhalt kann nicht angezeigt werden, da Sie keine Berechtigung haben, diesen Inhalt zu sehen.
    Code
    http://192.168.1.93:8181/66er.exe?Antwort=dom.GetObject("ShellyPlusHT_Testboard_Luftfeuchte").State($humidity)

    IP-Adresse der CCUx und den Kanalnamen an Eure Installation anpassen!

    Und schon werden gemäß Euren Einstellungen hier ...

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

    ... bei entsprechender Werteänderung die aktualisierten Werte in die Homematic übertragen und dort angezeigt. :)

    Das war's schon für Variante 1. :thumbup:

    Viel Spass damit.


    __________________________________________________________________________________

    ©2022 Stefan K. (alias 66er) - ausführlicher Hinweis dazu am Ende der Anleitung

    Alle Rechte vorbehalten!

  • ©2022 Stefan K. (alias 66er) - ausführlicher Hinweis dazu am Ende der Anleitung

    Alle Rechte vorbehalten!


    Variante 2 (mit Batteriestatus )

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

    Hinweis:

    Durch die Skriptabfrage verringert sich die Batterielaufzeit!

    Wer sich für diese Variante entscheidet, geht grundsätzlich wie in Variante 1 beschrieben vor.

    Ausnahme: Das einmalige Ausführen des obigen Skriptes entfällt!

    Die Variablen werden durch ein anderes, zyklisch aufzurufendes Skript erstellt und zugewiesen. ;)

    Aktualisierung:

    Temperatur und Luftfeuchte werden wie in Variante 1 durch die Webhooks aktualisiert. (dadurch können nach dem Anlegen der Variablen beim 1. Aufruf die Werte zunächst auf "0" stehen bis der ShellyPlus-H&T zum ersten Mal eine geänderte Tempertur oder Luftfeuchte überträgt!)

    Die Webhooks werden zwingend benötigt, da durch sie das Aktualisierungsprogramm getriggert wird!

    Das Programm:

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

    Fehlt wie immer zum guten Schluss das Skript:

    Immer dann, wenn sich nun der Temperaturwert oder die Luftfeuchte ändert, wird nun auch der Batteriezustand aktualisiert.

    Viel Spass damit. :) :thumbup:

    ____________________________________________________________

    Die Anleitung inkl. der Skripte und Bilder unterliegt dem Urheberrecht. Wer gegen das Urheberrecht verstößt (z.B. Bilder oder Texte unerlaubt kopiert und auf anderen Webseiten publiziert), macht sich gem. §§ 106 ff UrhG strafbar, kann zudem kostenpflichtig abgemahnt werden und muss Schadensersatz leisten (§ 97 UrhG).


    © 2022 Stefan K. (alias 66er)

    Alle Rechte vorbehalten


    ____________________________________________________________

  • ©2022 Stefan K. (alias 66er) - ausführlicher Hinweis dazu am Ende der Anleitung

    Alle Rechte vorbehalten!


    Variante 3 ( mit Offset für Temperatur und Luftfeuchte )


    Für diese Variante geht Ihr für das Einbinden in die Homematic-Umgebung vor wie bei Variante 2.

    Allerdings benötigt Ihr abweichend (Umsetzung bitte in dieser Reihenfolge ! )

    • das neue Skript V3.x.x, welches Ihr nach Anpassung und Aufwecken des ShellyPlus H&T einmalig unter "Skript testen" ausführt (dadurch werden weitere, benötigte (Hilfs-)Systemvariablen auf der Homematic angelegt
    • anschließend muß das Aktualisierungsprogramm geändert werden, sodass als Trigger (WENN) die neuen temporären Systemvariablen genutzt werden. Das sieht dann so aus:


      Der Inhalt kann nicht angezeigt werden, da Sie keine Berechtigung haben, diesen Inhalt zu sehen.
    • Im nächsten Schritt sind die Webhooks (siehe Variante 1) für Variante 3 anzupassen:

      IP-Adresse der CCUx und den Kanalnamen an Eure Installation anpassen!


      für die Temperatur:
    Code
    http://192.168.1.93:8181/66er.exe?Antwort=dom.GetObject("ShellyPlusHT_Testboard_Temperatur-temp").State($temperature)

    für die Luftfeuchte:

    Code
    http://192.168.1.93:8181/66er.exe?Antwort=dom.GetObject("ShellyPlusHT_Testboard_Luftfeuchte").State($humidity)

    Bei jeder Übertragung werden nun die vom ShellyPlus H&T übertragenen Werte um den im Setup des Skriptes festgelegten Offset angepasst und in den Variablen hinterlegt. :) :thumbup:

    Diese Offset-Funktion existiert aktuell zum Zeitpunkt der Publizierung in der Shelly-Firmware des Plus H&T noch nicht. 8)

    Fehlt Euch noch das Skript:


    © 2022 Stefan K. (alias 66er)

    Alle Rechte vorbehalten


    ____________________________________________________________


  • ©2022 Stefan K. (alias 66er) - ausführlicher Hinweis dazu am Ende der Anleitung

    Alle Rechte vorbehalten!


    Changelog zu Variante 3:


    V3.1.0 | 26.07.2022

    Erstpublizierung

    (mit Batteriestatus und OFFSET für Temperatur und Luftfeuchte)

    ____________________________________________________________________

    Changelog zu Variante 2:


    V2.0.0 | 21.07.2022

    Erstpublizierung

    (mit Batteriestatus)

    ____________________________________________________________________

    Changelog zu Variante 1:


    V1.0.0 | 20.07.2022

    Erstpublizierung

  • Dieses Thema enthält einen weiteren Beitrag, der nur für registrierte Benutzer sichtbar ist.