[Anleitung] - Shelly mit FHEM und MQTT2

  • [Anleitung] - Shelly mit FHEM und MQTT2



    Vorwort: Es gibt mehrere Wege um Shelly´s in FHEM einzubinden. Hier wird der Weg über den FHEM internen MQTT2 Server genutzt und beschrieben. In dieser Anleitung gehe ich davon aus, dass ein gewisses FHEM Grundwissen vorhanden ist. Hinzu ist diese Anleitung für die originale Firmware von Shelly. Mit Tasmota z.B. wäre der Weg allerdings fast der gleiche.


    Übersicht (Praxis Beispiele - LINK)

    1. MQTT2 Server anlegen

    2. MQTT im Shelly aktivieren und einstellen

    3. FHEM - neuen Shelly speichern

    4. FHEM - attr wählen

    - Infos zu den Templates



    1. MQTT2 Server in FHEM einrichten (FHEM MQTT2 Commandref)

    Kurz, ohne irgendwelche speziellen Einstellungen:

    define MQTT2_FHEM_Server MQTT2_SERVER 1883 global


    Info: Ich selber würde den MQTT2 Server auf JEDEN FALL mit einem User/Passwort versehen.



    2. MQTT im Shelly aktivieren und einstellen

    Nachdem ein beliebiger Shelly erfolgreich in dein Netzwerk verbunden wurde (via App oder Webinterface), müssen wir dem Shelly nun den MQTT Server mitteilen. Diese Option findest du im Webinterface (http://IPdesShellys/) unter: Internet & Security -> Advanced – Developer Settings -> Enable action execution via MQTT. Sobald dieses Häckchen gesetzt ist, gibt es neue Optionen im gleichen Menü. Hier müssen eigentlich nur folgende Einstellungen gesetzt werden:

    - Username (Benutzer zum authentifizieren am MQTT2 Server von FHEM)

    - Password (Passwort zum authentifizieren am MQTT2 Server von FHEM)

    - Server (IP-Adresse:PORT deines MQTT2 Servers/Fhem Servers)

    Der Rest kann so bleiben wie er ist. Man kann natürlich noch Optionen verändert, dies ist aber nicht notwendig.

    Anbei ein paar Bilder:

    Capture+_2019-07-16-10-33-35.png Capture+_2019-07-16-10-34-44.png Capture+_2019-07-16-10-35-10.png



    3. FHEM - neuen Shelly speichern

    Nun gehst du in deine FHEM Web Oberfläche. Der Shelly sollte sich nach kurzer Zeit oder einem Neustart, direkt melden. Zu sehen ist dies am „?“ bei „Save config“. Hier nun speichern und die Seite aktualisieren.

    fhem_save.jpg



    4. FHEM - attr wählen

    Nun siehst du in FHEM den Punkt „MQTT“ in deiner Raumleiste, auf der linken Seite. Dort befindet sich auch das neue Gerät. Ein Shelly meldet sich immer mit Namen wie: „shelly1pm-B1D951“. Anschließend gehst du einfach in das neue DEVICE hinein und wählst das entsprechende Template. In diesem Beispiel ist das ein Shelly1PM. Dies wäre dann das Template „A_10b_shelly1_w_energy_meassuring“. Nach der Wahl des Templates nur noch auf set und der Shelly ist eingerichtet.

    fhem_attrTemp.jpg


    Am Ende kann er kann so oder so ähnlich in FHEM aussehen. Das ist abhängig von der Version des aktuellen Templates. Du kannst das natürlich auch selber noch auf deine Bedürfnisse anpassen.

    fhem_wz_deckenlicht.jpg


    Wenn du ein paar Geräte gesammelt hast, könnte es so aussehen. In Verbindung mit alexa-fhem ist es auch möglich alle Geräte zu steuern. "Alexa, färbe Wohnzimmer türkis", würde alle meine LED Stripes im Wohnzimmer einschalten und entsprechen einstellen.

    fhem_uebersicht.jpg



    INFOS zu den Templates:

    -  Es gibt für jeden (mir bekannten) Shelly ein fertiges Template. Man muss diese nicht nutzen. Jeder der sich ein wenig mit FHEM auskennt, kann es natürlich manuell machen. Ich persönlich nutze gerne die Templates, da diese alles einstellen, wie ich das gerne hätte. Der kleine grüne Punkt z.B. neben der Lampe, leitet einen bei einem Klick, direkt auf das jeweilige Webinterface des Shellys. Hinzu würde der Punkt rot sein, wenn der Shelly offline wäre.


    - Diese Templates gibt es aktuell:

    A_10_shelly1

    A_10b_shelly1_w_energy_meassuring

    A_10a_shellyplug

    A_11b_shelly2_roller

    A_11b1a_shelly25_roller_invert_0

    A_11b1b_shelly25_roller_invert_1

    A_11a_shelly2_split

    A_14a_shelly4pro_split

    A_14b_shelly4pro_unified

    A_15_shellybulb

    A_16_shellyht

    A_17_shelly2rgbw_color

    A_17a_shelly2rgbw_4w_split


    Bei Fragen einfach an mich wenden. Ich werde versuchen, diese Anleitung nach und nach weiter aus zu bauen und ein FAQ zu erstellen. Das lebt natürlich von Euren Fragen ;)


    Gruß,

    Kai

    Prime-SmartHome-Soloutions

    Selbstständiger SmartHome Berater. Von der Beratung bis hin zur Einrichtung

    :thumbup: Bei Fragen, einfach via PN melden :thumbup:

    Edited 6 times, last by 87insane ().

  • Hier müssen eigentlich nur folgende Einstellungen gesetzt werden:

    - Username (Benutzer zum authentifizieren am MQTT2 Server von FHEM)

    - Password (Passwort zum authentifizieren am MQTT2 Server von FHEM)

    - Server (IP Adresse deines MQTT2 Servers/Fhem Servers)

    Der Rest kann so bleiben wie er ist. Man kann natürlich noch Optionen verändert, dies ist aber nicht notwendig.

    Top Anleitung! Der Teufel liegt im Detail: unter -Server sollte es heißen


    "(IP Adresse deines MQTT2 Servers/Fhem Servers:Port deines MQTT2 Servers)"


    Wer sich das Bild nicht ansieht kann Probleme bekommen!


    Gruß

    Verwendete Hardware: Raspberry 3B +, Hoffentlich bald alle Shellys | Verwendete Software: Raspbian Buster, Linux Debian, Tasmota (Nur bei Sonoff - Shelly = Original), Fhem Hausautomation. | Projekte: Heizungsteuerung, Alarmanlage, Gartenbewässerung, Licht-, Gerätesteuerung - alle auf je 1 Raspberry, Fernsteuerung über VPN (Synology NAS).


    Verlange nie etwas von Anderen was du nicht selbst bereit bist zu tun!

  • Danke!


    Hab es so übernommen bzw. angepasst. Hatte echt gedacht, ich hab alles drin. Guter Hinweis.

    Bei jeder arbeit, die man oft macht, lässt man die Kleinigkeiten aufgrund von "das sollte klar sein" weg. Das trifft natürlich nicht immer auf jeden zu.


    Gerne mehr Infos oder Wünsche :) Danke, danke!

    Prime-SmartHome-Soloutions

    Selbstständiger SmartHome Berater. Von der Beratung bis hin zur Einrichtung

    :thumbup: Bei Fragen, einfach via PN melden :thumbup:

  • Hallo, super Anleitung nur bei funkts nicht so richtig. Ich habe alles nach dieser Beschreibung konfiguriert aber leider meldet sich kein Shelly automatisch bei Fhem an. Ich habe shelly switch 2.5 und shelly H&T. Könnte ich etwas übersehen haben?

    Danke

    sG

  • 1. Wenn ich das richtig sehe, verzichtest du auf den global Parameter. Meine rawDefinitiio:

    Code
    1. defmod MQTT2 MQTT2_SERVER 1883 global
    2. attr MQTT2 alias MQTT2
    3. attr MQTT2 icon mqtt_broker


    2. Hast Du das autocreate device aktiviert?

    Z.B.:

    Code
    1. defmod autocreate autocreate
    2. attr autocreate alias autocreate
    3. attr autocreate autosave 1
    4. attr autocreate device_room 99_%TYPE
    5. attr autocreate filelog /log/%TYPE/%NAME-%Y-%m.log
    6. attr autocreate room 99_FHEM
    7. attr autocreate weblink 1
    8. attr autocreate weblink_room 99_LOGFILES

    Wenn das alles nicht hilft, solltest du uns die Shelly settings posten.

    Code
    1. http://[<httpuser>:<httppassword>@]<IP des Shelly>/settings

    ggf. mit jsonformatter aufhübschen.


    LG


    Gernot

  • Hallo,


    in meinem System gibt es schon einen MQTT Eintrag


    defmod Mosquitto MQTT 127.0.0.1:1883


    Kann ich das einfach durch dem


    define Mosquitto MQTT2_SERVER 1883 global


    ersetzen? Oder vergurke ich dadurch das ganze System


    (Ich habe einen ganzen Schwung MQTT_DEVICE in meinem System)

    Sorry, ich habe noch nicht so viel Ahnung von FHEM

  • Hallo StealthAngle,


    der MQTT2_SERVER ersetzt den mosquito MQTT Broker.
    Da Dein Mosquitto Broker auf dem gleichen Rechner, wie Fhem läuft, brauchst Du nur diesen nur zu beenden und dafür zu sorgen, dass er bei dem Systemstart nicht mehr gestartet wird.

    Danach übernimmt der MQTT2_SERVER die Funktion des Brokers.

    Mit aktiviertem autocreate werden zu allen eingehenden Messages zu den Topics automatisch die entsprechenden MQTT2_DEVICE angelegt. Nachdem Du diesen devices ein entsprechendes Template zugeordnet hast, sollten diese auch aufbereitet angezeigt und bedienbar sein.

  • Danke supernova1963 - für deine schnelle Antwort.


    Ich persönlich würde seit Implementierung des MQTT2 Servers in FHEM, immer umstellen. Habe bisher noch keine negativen Erfahrungen machen können.

    Prime-SmartHome-Soloutions

    Selbstständiger SmartHome Berater. Von der Beratung bis hin zur Einrichtung

    :thumbup: Bei Fragen, einfach via PN melden :thumbup:

  • Grundsätzlich gebe ich Dir vollkommen Recht. MQTT-Quellen in FHEM integrieren geht mit dem MQTT2-Server wirklich kinderleicht und funktioniert einwandfrei.


    Ein klein wenig aufpassen sollte man nur bei einer großen Anzahl an MQTT-Quellen. Ich habe zur Zeit ca. 50 MQTT-Geräte in FHEM integriert (davon 40 Shellys und 10 D1Mini's mit ca. 80 DS18B20-Sensoren). Damit hatte ich meinen RasPi 3+ etwas überflutet und war ständig bei 100% Auslastung. Nachdem ich die MQTT-Zykluszeiten etwas erhöht hatte (60s) und im MQTT2-Server die raw-Daten abgeschaltet hatte geht es jetzt wieder. Die CPU-Auslastung liegt jetzt wieder bei 50-85%.

    Grüße Bernd


    Mein "Smarthome":

    FHEM als "Master" (Cloud-Free :)) mit über 40 Shellys (1, 1PM, 2, 2.5, 4Pro, RGBW2, PlugS, alle mit Original-FW), 13x Sonoff (mit Tasmota-FW), 12x Blitzwolf/Gosund (mit Tasmota-FW), 80x One-Wire Temp-Sensoren (über D1-Mini mit Tasmota-FW), 7x Modbus (Hutschienenzähler), 31x Intertechno 433MHz (Rolladen-Aktoren), etc. ...

  • Mal davon ausgegangen, die events sinnvoll begrenzt zu haben, sollte locker klappen. Auf meinem raspi habe ich dazu sogar noch 433/868mhz am laufen. Wandlung von IR zu RF und verknüpfte befehle dahinter.


    Da muss was krum gewesen sein. Da würde aber wirklich nur eine detail konfig helfen.


    Für fhem habe ich genau einen raspi 3. dieser steuert von thermostaten (868 MHz) über simple umwandlung oder aber auch mqtt geräte. Will nur kurz verdeutlichen, dass es laufen sollte. Da alles sequenziell durch läuft, muss die flut bewältigt werden. Geräte erstmal einbinden und schauen was man will. Danach die events resuzieren auf das was man braucht. Selebst ein "event-on-change .*" in 99% der geräte sorgt für geschmeidigkeit. Bei den wenigsten braucht man mehr. Danach kann man noch weiter gehen und nur noch nehmen was man braucht. Ich muss unbedingt mal alle Geräte im detail durch zählen. 😁 danke für die Idee.


    Soll nicht eingebildet klingen. Denke aber wir würden hier noch so einige ideen vereinen können :) super Themen für die fhem FAQ. Danke!

    Prime-SmartHome-Soloutions

    Selbstständiger SmartHome Berater. Von der Beratung bis hin zur Einrichtung

    :thumbup: Bei Fragen, einfach via PN melden :thumbup:

  • Ja, event-on-change habe ich bei den meisten schon gesetzt. Bisher habe ich einfach immer nur dazu gebaut ohne großartig darüber nachzudenken.


    Da ich in meinem (großen) Haus nach und nach so ziemlich alles in FHEM erfassen/automatisieren möchte kommt da schnell Einiges zusammen.


    Mit den richtigen Optimierungen ist da bestimmt noch einiges drin.

    Grüße Bernd


    Mein "Smarthome":

    FHEM als "Master" (Cloud-Free :)) mit über 40 Shellys (1, 1PM, 2, 2.5, 4Pro, RGBW2, PlugS, alle mit Original-FW), 13x Sonoff (mit Tasmota-FW), 12x Blitzwolf/Gosund (mit Tasmota-FW), 80x One-Wire Temp-Sensoren (über D1-Mini mit Tasmota-FW), 7x Modbus (Hutschienenzähler), 31x Intertechno 433MHz (Rolladen-Aktoren), etc. ...

  • Hallo Bernd,


    es fällt mir schwer zu glauben, dass die „Nachrichtenflut“ von 50 nur Geräten den RPi3+ so sehr belasten.
    Hast Du denn vorher analysiert wer oder was diese Systemlast erzeugt. Auf Systemebene zeigt Dir z.B. "top" die größten Lasterzeuger an. Sollte tatsächlich fhem ganz oben stehen, hilft "apptime count all" in der Fhem Befehlszeile dabei das/die verursachenden Module in Fhem herauszufinden. Noch detaillierter zeigt "strace [PID von Fhem]" auf Systemebene an, was passiert.


    lg


    Gernot

  • Guten Morgen zsm


    MQTT2 Server ist einfach genial - nimmt einem viel Arbeit ab! Bin auch gerade am umstellen von MQTT auf MQTT2. Man muss nur aufpassen das man die selben Namen nimmt wie bei "Vorgängermodell" sonst gibt es Probleme bei den Schaltungen / Steuerungen!

    Grundsätzlich gebe ich Dir vollkommen Recht. MQTT-Quellen in FHEM integrieren geht mit dem MQTT2-Server wirklich kinderleicht und funktioniert einwandfrei.


    Ein klein wenig aufpassen sollte man nur bei einer großen Anzahl an MQTT-Quellen.


    Da muss ich auch mal meinen Senf dazu geben!


    Am Anfang dachte ich auch ein Raspi reicht völlig aus - falsch gedacht! Neben hoher Auslastung kamen auch Ausfälle hinzu.

    Zur Erklärung: Es lief 433 / 868 mhz über CUNX und diverse Sonoffs verschiedener Varianten - Ediplugs über WLAN darauf. War eine tolle Sache da z.B. die EQ MAX Tür/Fensterkontakte sowohl für die Steuerung der Heizkörperthermostate (ich weis die haben eine Fensteroffenfunktion, da sie aber nur an 1 Thermostat gebunden werden können und ich in einem Raum mehrere Thermostate und vor allem mehrere Heizzonen habe ist das für mich keine Option!) als auch als Alarmgeber genutzt werden können. Kurz und gut - die Sache Heizung, Alarmanlage und Schalter-, Zeitsteuerung war nicht zu regeln mit einem Raspberry.

    Jetzt nutze ich 4 der kleinen Helferlein (Signatur) und die Verbindung untereinander läuft dank RFHEM und MQTT (2) optimal und schon sehr lange ohne Ausfälle oder Störungen.

    Also lieber nochmal 50 Euros investiert als ellenlange Fehlersuche.


    Der grösste Störfaktor sitzt seit der Umstellung auf einzelne Raspis vor dem PC! 8o


    Gruß

    Verwendete Hardware: Raspberry 3B +, Hoffentlich bald alle Shellys | Verwendete Software: Raspbian Buster, Linux Debian, Tasmota (Nur bei Sonoff - Shelly = Original), Fhem Hausautomation. | Projekte: Heizungsteuerung, Alarmanlage, Gartenbewässerung, Licht-, Gerätesteuerung - alle auf je 1 Raspberry, Fernsteuerung über VPN (Synology NAS).


    Verlange nie etwas von Anderen was du nicht selbst bereit bist zu tun!

  • @Germot,

    Genau all das habe ich gemacht und ganz oben in "top" standen die MQTT-Geräte.


    Da ich mich in den Tiefen von FHEM nicht so gut auskenne habe ich einen Beitrag im FHEM-Forum erstellt "FHEM 100% Auslastung" incl. logs, etc. Die Analyse hat dann freundlicherweise Rudolf König selbst vorgenommen und mir entsprechende Empfehlungen gegeben. Außerdem hat er eine neue Testversion vom MQTT2-Server bereit gestellt, die ich noch testen muß.

    Grüße Bernd


    Mein "Smarthome":

    FHEM als "Master" (Cloud-Free :)) mit über 40 Shellys (1, 1PM, 2, 2.5, 4Pro, RGBW2, PlugS, alle mit Original-FW), 13x Sonoff (mit Tasmota-FW), 12x Blitzwolf/Gosund (mit Tasmota-FW), 80x One-Wire Temp-Sensoren (über D1-Mini mit Tasmota-FW), 7x Modbus (Hutschienenzähler), 31x Intertechno 433MHz (Rolladen-Aktoren), etc. ...

  • Hallo StealthAngle,


    der MQTT2_SERVER ersetzt den mosquito MQTT Broker....

    Danke für die Info. Hat gut geklappt :)


    Alle meine Shellys erscheinen jetzt unter MQTT2_DEVICE


    Könnt Ihr mir jetzt noch sagen, wie ich aus dem Eintrag


    MQTT2-shellyswitch25_C4B71A


    z.B.


    Markise_Terasse


    mache?


    Wie ich also die Shellys mit einem sprechenden Namen versehe, so wie im Beispiel das Deckenlicht?


    Vielen Dank

  • rename MQTT2-shellyswitch25_C4B71A Markise_Terasse


    in Eingabezeile Fhem

    Verwendete Hardware: Raspberry 3B +, Hoffentlich bald alle Shellys | Verwendete Software: Raspbian Buster, Linux Debian, Tasmota (Nur bei Sonoff - Shelly = Original), Fhem Hausautomation. | Projekte: Heizungsteuerung, Alarmanlage, Gartenbewässerung, Licht-, Gerätesteuerung - alle auf je 1 Raspberry, Fernsteuerung über VPN (Synology NAS).


    Verlange nie etwas von Anderen was du nicht selbst bereit bist zu tun!

  • uff...hier ist ja was passiert.


    Da ich nur am Handy sitze, kurz.



    Das bezüglich mqtt2 test bekam ich mit. Allerdings nahm rudolf kaum deinen raspi auseinander. Hier wurden entscheidene hinweise von supernova1963 gegeben. Klar kann ich mir mehrere autos mit 800ps kaufen. Aber ich sollte sie zumindest auf der strecke halten können. Ich habe noch immer nicht gezählt aber ich hab, wie schon erwähnt auch x Geräte. Alles auf wirklich nur einem raspi 3. finde das event on change beispiel relativ gut, da ich ja auch nicht überall licht anlasse, nur weil ich überall licht hätte. Ist eben eine kleine bedarfs Analyse.


    Zur umbenennung der shelly. Bedenke das die topics weiterhin gleich rein kommen. Seit der letzten firmware kann man das direkt umbenennen. Macht es ggf. einfacher wenn man verschachtelungen hat. Ich selber habe nur aliase für die Geräte. Belasse es auch bei den topics. Liegt aber an der Vielzahl, der Geräte. Würde ich jetzt neu anfangen, würde ich die topics umbenennen. Streng nach etage_raum_was_ist_es. Aber eben immer so das auch regex passen würde auf einfache art und weise. Regex zb geht immer aber man muss es sich ja nicht unnötig kompliziert machen.


    Würde an der stelle aber gerne noch etwas hinzufügen: ich finde es super das sich hier alle damit auseinander setzen. Allerdings sollten alle auch ein wenig googlen oder ins wiki sehen. Tatsächlich wird das garnicht gern gesehen, dass zb ich hier ne Art anfänger Hilfe mit betreibe. Kann es in so fern nachvollziehen, da man sich die Lösungen auch ein wenig erarbeiten sollte. Das schöne daran ist das mam am ende echt stolz ist und auch versteht wie die dinge laufen. Alleine aus sicht der sicherheit ist das schon wichtig (in meinen Augen).

    Jeder sollte wissen was ein list device ist. Jeder sollte die Grundfunktionen kennen sollte dem nicht so sein -> nutzt die (ungern gesehene) hilfe und schreibt das als Frage in den jeweiligen Bereich. Die FAQ im fhem bereich ist ein wenig gewachsen aber man braucht sich auch nicht schämen. Besser wir erfassen alles als zu wenig. Mir ist es auch egal ob mein name drüber steht. Darf gern jemand anderes drüber stehen ;)


    Geht mir darum, dass ich mir ein wenig Sorgen mache. Zum einen ob man die Posts nicht ein wenig eindämmen und lenken kann und zum anderen um die Benutzer, die es "einfach mal so" einrichten. Wir reden über angreifbare infrastrukturen .... Da wird am ende die als sicherheit gedachte kontaktschaltung zu einem risiko. Also besser eine frage zu viel -> dafür aber sicherheit und zusätzliche inspirstion 😄

    Prime-SmartHome-Soloutions

    Selbstständiger SmartHome Berater. Von der Beratung bis hin zur Einrichtung

    :thumbup: Bei Fragen, einfach via PN melden :thumbup: