Ubisys LD6 – Der LED-Controller, der (fast) alles kann

Illustration: Ein rotes Zebra sitzt verheddert in einem bunten RGB-LED-Band, während ein schwarzer Drache ruhig daneben steht und einen Ubisys LD-6 LED-Controller hält. Im Hintergrund leuchten abstrakte RGB-Farben.

Manchmal stolpert man über Hardware, bei der man kurz innehält und denkt: „Moment. Das kann doch nicht alles in diesem kleinen Ding drinstecken… oder?“ Genau so ein Moment war es, als der Ubisys LD6 auf meinem Tisch landete.

Der LD6 ist ein Zigbee-basiertes LED-Dimm- und Steuer-Modul, das mit nur 10 mm Bauhöhe daherkommt und sich dadurch perfekt in Zwischendecke oder kleine Gehäuse integrieren lässt. Und trotz seiner zierlichen Erscheinung ist er einer der mächtigsten LED-Controller, die ich bisher ausprobiert habe.

Wir reden hier nicht von einem 0815 „RGB-Streifen an/aus“-Ding. Das Gerät kann mehr. Viel mehr.


Was macht den Ubisys LD6 so besonders?

Wenn man das Datenblatt durchgeht (ja, ich lese sowas freiwillig – keine Scham), fallen einige Punkte sofort positiv auf:

  • 6 LED-Ausgänge → du kannst also zwei komplette RGB-Stripes oder einen RGBWW-Stripe an einem einzigen Modul betreiben, aber auch sechs einzelne LED Stripes sind möglich usw..
  • Nennstrom-Ausgang pro Kanal: 6 A → das ist schon echt ordentlich.
  • Max. Gesamtstrom: 12 A über alle Kanäle kombiniert.
  • Eingebaute Schutzfunktionen:
    • Ausgangsschutz
    • Kurzschlussschutz
    • Übertemperaturschutz
    • Überlastschutz
    • Überspannungsschutz
    • Überstromschutz

Das bedeutet: Das Ding brennt dir nicht einfach weg, nur weil du mal eine LED-Leiste zu enthusiastisch verlängert hast. (Du weißt, was ich meine.)

Und jetzt kommt der wirklich nerdige Teil: Der LD6 hat drei Eingänge für Taster oder Sensoren, inklusive 3,3V Ausgang – perfekt für I2C-Sensoren wie:

  • Temperatur
  • Luftfeuchtigkeit
  • Umgebungslicht
  • Präsenzsensoren
  • oder sogar einen kleinen ESP, wenn du es übertreiben willst

Damit kannst du theoretisch ein autonomes Lichtsystem aufbauen, das Helligkeit und Farbe dynamisch an die Umgebung anpasst.

Für rund 40€ ist das absurd gut. Du findest den übrigens im Ubisys Store auf Amazon (bezahlter Link).

Ubisys LD6 LED Controller

Kleine Schwächen – aber nichts Dramatisches

Kein Gerät ist perfekt, und beim LD6 gibt es zwei Punkte, die man ehrlich erwähnen muss:

1. Nicht direkt in Zigbee2MQTT integriert

Das bedeutet: Man bekommt keine schöne einfache UI, sondern wird erst einmal mit sehr vielen Datenpunkten erschlagen. Wirklich sehr vielen. Ich dachte kurz, ich hätte versehentlich ein Smart-Home-Kraftwerk eingefügt.

2. Die Klemmen sind… nennen wir es „sportlich“

Extrem kleine Steckklemmen mit noch kleineren Entriegelungsöffnungen.
Wenn du dicke Drähte hast oder unruhige Hände: Viel Spaß.

Anschlussklemmen des Ubisys LD6

Verbesserungsvorschlag

Ich würde mir Schraubklemmen oder moderne Hebelklemmen wünschen. Bei zigbee2mqtt ist die Community gefragt.


Praxis: Die Default-Einstellungen in Zigbee2MQTT

Beim ersten Setup ist mir Folgendes aufgefallen:

  • Rot und Grün waren vertauscht.
  • Es gibt so viele Datenpunkte, dass einem kurz schwindelig wird.

Beides lässt sich lösen, es ist nur… ein Moment des Sortierens.

Die gute Nachricht: Wer schon einmal mit Ubisys gearbeitet hat, kennt das.
Beispiel: Mein Artikel „Ubisys C4 – Der Taster-Flüsterer im Zigbee-Dschungel“ zeigt ein ähnliches Prinzip der Flexibilität.

Oder für die Freunde der DIN-Schiene: Ubisys D1-R im Test – Premium Zigbee DIN-Schienen Dimmer

Der LD6 reiht sich dort zwischen „Ultra flexibel“ und „Macht alles, aber erklärt wenig“ ein.


Würde ich den Ubisys LD6 kaufen?

Würde? Werde!

Das hier ist der funktionellste LED-Controller, den ich bisher in der Hand hatte.
Klein, leistungsstark, flexibel, fair bepreist.

Ja, die Klemmen könnten besser sein.
Ja, Zigbee2MQTT braucht noch etwas Liebe.

Aber das ist ein Preis, den ich gerne bezahle.

Und sobald Zigbee2MQTT ein offizielles Template integriert hat, wird das hier einer der besten Allround-LED-Controller im Zigbee-Bereich.


Fazit

Der Ubisys LD6 ist ein Gerät für Leute, die mehr wollen als nur „Strippe bunt machen“.

Er richtet sich an alle, die sagen:

„Ich möchte meine LED-Beleuchtung richtig kontrollieren – und nicht nur an/aus drücken.“

Wenn du gerne tüftelst, Sensoren liebst und es magst, wenn Hardware smart statt nur smart-home-kompatibel ist, dann ist der LD6 ein absoluter Geheimtipp.

Und der Preis? ~40€*. Da lohnt es sich kaum, selbst etwas zu bauen. Falls du dir jetzt auch denkst „will ich haben“, dann findest hier den Ubisys LD6 auf Amazon (bezahlter Link).

Testbericht: Ubisys C4 – Der Taster-Flüsterer im Zigbee-Dschungel

Zeraphys steht zufrieden vor einem Lichtschalter, aus dem das Wort „Zigbee“ strahlt – Symbolbild für erfolgreiche Smart-Home-Integration.

Stell dir vor, du hast vier stinknormale Taster an der Wand. So unscheinbare kleine Klickfreunde, die weder WLAN haben, noch ein Bluetooth-Selbstbewusstsein. Der Ubisys C4 nimmt diese vier alten Kameraden, wirft sie in einen Topf aus Zigbee-Magie, Routing-Fähigkeiten und einer Prise deutscher Ingenieurskunst und zack – dein Haus gehorcht dir auf Fingerdruck.


Was ist der Ubisys C4?

Kurz gesagt: Der C4 ist ein Zigbee-Eingangsmodul, das vier Taster oder Schalter in Zigbee-Signale verwandelt. Und nicht nur so: „Ich mach Licht an.“ Nein, der C4 ist eher:

„Ich mache Licht an, dimme es, rufe Szene 7 auf, fahre die Jalousien halb runter, starte den Beamer, senke den Altar und öffne die Tür zur Erkenntnis.“ (Ungefähr.)

Ubisys C4 Modul

Technisch bedeutet das:

  • 4 Eingänge (z. B. Taster an der Wand)
  • Jeder Eingang kann anders konfiguriert werden
  • Das Ding ist gleichzeitig ein Zigbee Router – also Mesh-Buff für dein Netzwerk
  • Zigbee 3.0 zertifiziert und damit ziemlich kompatibel

Oder wie Ubisys es ausdrückt: Professionelle Gebäudeautomation.

Wie ich es ausdrücke: Der Typ in der Smart-Home-Bar, der weiß, wie man ernsthaft arbeitet.


Warum sollte man das wollen?

Du hast bestimmt schon diese smarten Funk-Taster gesehen, die nach zwei Monaten aussehen, als hätte sie jemand aus Kaugummi recycelt. Oder die mit Knopfzellen mitten in der Nacht sterben wie NPCs ohne Backup.

Der Ubisys C4 sagt: Nichts da. Richtige Verkabelung. Richtiger Strom. Richtige Zuverlässigkeit.

Und: Er wohnt Unterputz. Man sieht ihn nicht. Er ist wie Batman. Nur nützlicher.


Konfiguration: Hier wird’s deep

Jeder der vier Eingänge kann…

  • On/Off schalten
  • Dimmen
  • Szenen abrufen
  • Rolläden steuern
  • Und das alles mit Kurz / Lang / Doppel / Halten / Tap-Dance, wenn du willst

Man kann dieses Gerät komplett auf:
„Ich drücke einmal → Wohnzimmer fährt in Filmabend-Modus“

oder auf:
„Ich tippe zweimal → Das Haus denkt, ich bin Gott.“

Im Alltag

Wenn du einmal alles eingestellt hast:

  • Läuft
  • Stürzt nicht ab
  • Vergisst nie, wer es ist

Was ich damit sagen will:

Das Ding ist kein „Smart Home Gadget“. Das Ding ist eine Infrastruktur-Entscheidung.

Einmal eingebaut und sauber konfiguriert, läuft der C4 wie ein stoischer Klosterbruder, der den ganzen Tag Schalter-Gebete in Zigbee übersetzt.

Datenpunkte des Ubisys C4

Für wen ist der C4?

Für dich, wenn:

  • du keine hässlichen Batterie-Funktaster willst
  • du echte Wandschalter behalten willst
  • dein Zigbee Mesh kräftiger werden soll
  • du Spaß daran hast, Dinge absurd präzise einzurichten

Nicht für dich, wenn:

  • du „Smart Home“ als „Ich schraub mal schnell was an die Wand“ verstehst
  • du denkst, Konfiguration sollte weniger als 3 Klicks dauern

Fazit

Der Ubisys C4 ist wie ein Schweizer Taschenmesser, aber jemand hat es so lange optimiert, bis es ISO9001 zertifiziert war.

  • Er ist mächtig.
  • Er ist verlässlich.
  • Er will respektvoll konfiguriert werden.

Und wenn du ihn einmal verstanden hast… fühlt sich dein Haus plötzlich wie dein Haus an.

Bewertung:
⭐️⭐️⭐️⭐️⭐️ für Smarthome-Nerds
⭐️⭐️ für „Ich will nur, dass das Licht angeht“-Menschen


Positives & Negatives

Positiv:

  • Das Gehäuse ist mit nur 11 mm extrem flach. Zum Vergleich: Ein Shelly 1PM* hat rund 16 mm Tiefe – und das ist in der UP-Dose der Unterschied zwischen „entspannt reinschieben“ und „ich drücke hier seit 10 Minuten und nichts bewegt sich mehr“.
  • Im Lieferumfang liegen WAGO-Steckklemmen* bei. WAGO ist Smart-Home-Weihrauch. Wer WAGO beilegt, möchte dass du glücklich bist.
  • Unfassbar viele Konfigurationsmöglichkeiten – und zwar wirklich. Siehe z. B. die Übersicht in Zigbee2MQTT: https://www.zigbee2mqtt.io/devices/C4.html#ubisys-c4
    Man kann sich darin verlieren. Aber auf die schöne Art.

Negativ:

  • Keine Anschlussterminals, sondern feste Anschlusskabel, die in jeder UP-Dose gefühlt zu lang sind. Und es sind verzinnte Litzen – wenn man die kürzt, muss man sie neu verzinnen oder Aderendhülsen aufpressen. Also: Crimpzange (bezahlter Link) raus, Kaffee holen, Geduld einpacken.
Ubisys C4 Anschlusskabel

Fazit (mit Wunsch an die Zukunft)

Der Ubisys C4 ist ein mächtiger kleiner Zauberkasten. Super flach, super flexibel, super nerdig konfigurierbar. Aber: Anschlussterminals statt fest verbauter Kabel wären eine Verbesserung, die den Einbau spürbar entspannen würde.


Und nun die große Frage: Hätten nicht vier einfache Taster-Events gereicht?

Man könnte meinen: „Vier Taster, vier Datenpunkte, fertig. Jeder meldet single, double, hold – Case closed, Feierabend, Kaffee trinken.“

Theoretisch ja. Praktisch ist der C4 aber nicht in der Welt der Consumer-Smart-Buttons unterwegs, sondern im Universum der professionellen Gebäudeautomation. Und dort gelten andere Naturgesetze:

  • Dinge sollen direkt miteinander sprechen können (Stichwort: Binding), ohne dass ein Smart Home Server mitliest.
  • Jede Taste kann mehr als nur klicken – Szenen, Level-Dimming, Jalousien, komplexe Sequenzen.
  • Und ganz ehrlich: Der C4 ist eher „Vier Eingänge, die sich wie 128 verschiedene Eingabetypen verhalten können und dabei noch unterschiedliche Geräte simultan ansprechen“.

Deshalb wirkt das Gerät manchmal so, als würde man eine Kaffeemaschine benutzen, die auch Webserver hosten kann.

Aber:
Wenn du einfach nur Taster-Events willst, bekommst du sie trotzdem – nur eingebettet in eine Struktur, die eigentlich viel, viel mehr kann.

Kurz gesagt:
Ja, vier simple Events hätten technisch gereicht – aber dann wäre der C4 nicht der C4, sondern einfach irgendein Funktaster.

Und irgendein Funktaster ist langweilig.

Der C4 ist der Typ, der im Smart Home sagt: „Wir machen das richtig, oder wir machen’s gar nicht.“ 😄


Kaufe ich mir den?

Jain. Funktional ist der C4 absolut stark und eine echte Alternative zum Shelly i4* – gerade wenn man Wert auf echte, kabelgebundene Taster legt und nicht auf batteriebetriebene Knopfzellen-Drama-Buttons. Aber: Was ich mir wirklich wünschen würde, wäre eine DIN-Schienen-Variante für den Sicherungskasten.

Warum? Weil ein zentralisiertes Smart Home einfach schöner zu warten ist. Du weißt, wo alles sitzt. Du musst später nicht überlegen:

„Habe ich jetzt im Flur, im Wohnzimmer, hinter der Kaffeemaschine oder in diesem kryptischen 68mm UP-Dosen-Goblinloch das gute Stück verbaut?“

Preislich liegt der C4 mit rund 60€ in einem Bereich, der völlig okay ist: nicht billig, nicht überteuert – eher „fair für das, was er kann“.

Aber bis Ubisys vielleicht irgendwann die C4-DIN-Edition ankündigt, bleibt es ein kleiner Traum von ordentlicher Schrankästhetik und wohlig sortierten Leitungen.


Wo kaufen

Und wenn der C4 für dich genau das richtige Modul ist – also wenn du sagst: Ja, ich will echte Taster, echtes Zigbee, echtes Smart Home ohne Batteriedrama – dann schau mal im Ubisys Store auf Amazon (bezahlter Link) vorbei.

Ubisys D1-R im Test – Premium Zigbee DIN-Schienen Dimmer

Zebra-Avatar enttäuscht mit Zigbee-Dimmer neben Zeraphys, der zufrieden den Ubisys D1-R hält, im Wohn- und Smart-Home-Setup.

Ich durfte für diesen Beitrag vier Smart-Home-Geräte von Ubisys (bezahlter Link) testen – darunter den Ubisys D1-R, einen Zigbee-Dimmer für die Hutschiene, um welchen es in diesem Beitrag gehen wird. Schon beim Auspacken wird klar: Das ist kein typisches Bastelmodul, sondern Profi-Hardware für alle, die Smart-Home ernst meinen.


Erster Eindruck & Einbindung

Der Ubisys D1-R präsentiert sich als leichtes, aber hochwertiges DIN-Schienenmodul. Das Gehäuse wirkt robust und durchdacht, nichts klappert – eindeutig professionelle Hardware. Der Dimmer benötigt eine TE (Teilungseinheit) im Schaltschrank und passt damit platztechnisch genau wie ein klassischer Sicherungsautomat und hat mit einer Belastbarkeit von 500VA ordentlich power.

Einbindung ins Smart Home

Die Einrichtung war in beiden Fällen völlig problemlos:

  • Zigbee2MQTT: per Sonoff Zigbee USB-Stick sofort erkannt und eingebunden
  • Ubisys Gateway G1: ebenfalls ohne Hürden, sauber ins System integriert

Nach dem Pairing erscheinen in ioBroker bzw. Zigbee2MQTT auffallend viele Datenpunkte – deutlich mehr als bei Shelly (bezahlter Link), Tuya & Co.


Zigbee-Datenpunkte des Ubisys D1-R

Besonders spannend: Der Ubisys D1-R verfügt über eine integrierte Verbrauchsmessung und liefert über den Datenpunkt load_power die aktuell anliegende Last in Watt.

Der Ubisys D1-R liefert extrem viele Infos und Einstellmöglichkeiten über Zigbee.

Ubisys D1 Datenpunkte innerhalb von ioBroker
DatenpunktBeschreibung
ballast_minimum_levelMindest‑Dimmwert, der von der angeschlossenen Last sichtbar umgesetzt werden kann (z. B. bei LEDs, die erst über einer Schwelle reagieren).
ballast_maximum_levelMaximaler Dimmwert der Last – bei kleineren LED‑Leistungen durch Senkung besserer Regelbereich über 0–100 %.
mode_phase_controlAuswahl des Dimmverfahrens: „automatic“, „forward“ (Leading Edge) oder „reverse“ (Trailing Edge).
load_powerAktueller Verbrauch
energyGesamter Verbrauch

Eine umfangreiche PDF mit technischen Details findet Ihr hier: ubisys-d1-technical-reference.pdf und die zigbee2mqtt Dokumentation ist ebenfalls sehr ausführlich, daher verzichte ich darauf, dies hier noch mal zu wiederholen.


Testaufbau

Für den Praxistest kamen vier verschiedene Leuchtmittel zum Einsatz, alle mit den Werkseinstellungen des Ubisys D1-R, ohne vorherige Optimierung:

  • No‑Name LED 9,5 W
  • Osram LED 8,5 W
  • Kodak LED 5 W
  • CMI Halogen 42 W (klassisch, nicht LED)

Damit sollte sichtbar werden, wie sich der Dimmer ohne Anpassung je nach Lasttyp verhält.

Dimmverhalten – Praxistest mit vier Leuchtmitteln

Ich habe den Ubisys D1-R mit vier unterschiedlichen Leuchtmitteln getestet – alle im Werkszustand des Dimmers, ohne zusätzliche Anpassungen.

LeuchtmittelVerhalten beim StartFlackernErreichte sichtbare Max-Helligkeit
No-Name LED 9,5 Wab ~2 %Bei unter 2%bereits bei ~20 %
Osram LED 8,5 Wab ~13 %kein Flackernbei ~35 %
Kodak LED 5 Wab ~10 %ab ~12 % flackerfreierst bei ~55 %
CMI Halogen 42 Wab ~2 % leichtes Glimmenkein Flackernbei ~100 %

🔎 Fazit dieser Tests: Bei LED‑Lasten wird die volle Helligkeit bereits deutlich unter 100 % erreicht. Der Dimmer ist ab Werk auf größere Lasten ausgelegt.

Optimierung möglich

Durch Anpassung der Datenpunkte ballast_maximum_level und ballast_minimum_level lässt sich das Dimmverhalten spürbar verbessern.

In meinen Tests funktionierte z.B. folgender Wert gut (Beispielwerte):

  • Osram LED 8,5 W: ballast_minimum_level = 38 und ballast_maximum_level = 75

Damit wird die Regelung über den gesamten Bereich von 0–100 % sichtbar und sauber – insbesondere bei LEDs mit anspruchsvollerem Treiber.

🛠️ Praxis-Tipp zur Einstellung

Warum ist diese Anpassung nötig?

LED-Lampen besitzen einen internen Treiber, der oft erst bei einer bestimmten Mindestleistung sauber arbeitet. Der Ubisys D1-R ist für sehr vielfältige Lasten ausgelegt – dadurch kann der Standardbereich bei kleinen LED-Leistungen nicht optimal passen.

Mit den beiden Parametern erklärst du dem Dimmer:

  • wie früh er sichtbares Licht erzeugen soll (ballast_minimum_level)
  • wann die maximale Helligkeit real erreicht wird (ballast_maximum_level)

Je besser diese Werte auf die Lampe abgestimmt sind, desto linearer, flackerfreier und sanfter dimmt der D1-R.

🔧 Schritt-für-Schritt

  1. brightness auf 100 % setzen
  2. ballast_maximum_level schrittweise reduzieren
  3. Sobald eine sichtbare Helligkeitsveränderung eintritt → optimalen Bereich erreicht

💡 Empfehlung: Je nach verwendeter Lampe sollte man etwas testen, um den idealen Bereich zu finden.


Updates

In meinem Test zeigte sich: Alle Ubisys-Geräte waren bereits auf dem neuesten Stand, daher konnte der OTA-Updateprozess selbst nicht praktisch getestet werden.
Die Funktion ist jedoch vollständig integriert und transparent einsehbar.


Fazit – Ubisys D1-R

Der Ubisys D1-R ist ein Dimmer für alle, die Smart Home nicht als Spielzeug, sondern als dauerhafte Infrastruktur betrachten.

Was begeistert:

  • hochwertige Hardware
  • extrem viele Datenpunkte für maximale Kontrolle
  • einfache Einbindung in Zigbee (Zigbee2MQTT & Ubisys Gateway)
  • präzises Dimmen nach kurzer Optimierung
  • integrierte Verbrauchsmessung
  • schneller und kompetenter Support mit direktem Zugriff auf technische Dokumente

Was besser geht:

  • Datenpunkt-Dokumentation – aktuell nur auf englisch
  • keine Beschaltungshilfe am Gerät (z. B. Stromlaufplan auf dem Gehäuse, wie Shelly es macht)
  • Basic-Einstellungen könnten direkt in der Anleitung angegeben werden

Gerade Nerds und Optimierungs-Enthusiasten werden den D1-R lieben.
Wer jedoch einfach nur „Dimmer rein, fertig“ erwartet, könnte ohne Doku schnell frustriert sein.

🏁 Empfehlung: Ubisys könnte mit besserer Kommunikation und einer öffentlich zugänglichen Dokumentation viel stärker in den B2C‑Markt wachsen. Denn das Produkt liefert – es braucht nur bessere Erklärungen.

Ubisys D1R Dimmer

Preis & Positionierung

Mit rund 140 € ist der Ubisys D1-R kein Schnäppchen – er liegt preislich klar im Premium-Segment.
Im Vergleich: Einen Shelly-Dimmer für die DIN-Schiene bekommt man bereits für etwa 50–60 €.

Allerdings setzen Shelly & Co. auf WLAN oder LAN, während der D1-R ein echtes Zigbee-Gerät mit feinster Laststeuerung ist. Shelly punktet dafür mit einer intuitiven App und Weboberfläche, wodurch Einstellungen auch ohne tiefes Smart-Home-Know-how schnell erledigt sind.

Kurz gesagt:
Shelly ist komfortabler, Ubisys ist präziser.

Der D1-R richtet sich klar an Anwender, die bereit sind, für Zuverlässigkeit, Langzeitbetrieb und professionelle Konfigurierbarkeit mehr zu investieren.

Für wen ist der Ubisys D1-R geeignet?

✅ Für smarte Hausinstallationen auf DIN-Schiene ✅ Für alle, die LED-Dimmen ernst nehmen (und es optimieren wollen) ✅ Für diejenigen, die lokale Steuerung ohne Cloud bevorzugen ✅ Für Home-Assistant- / ioBroker- / Zigbee2MQTT-Nerds ✅ Für Menschen, die technische Feinjustierung lieben ✅ Für alle, die keine Sorge vor Ausfällen haben wollen und Wert auf langfristige Stabilität legen

⚠️ Weniger geeignet für: „Plug & Play“-Erwartung ohne Konfiguration – Nutzer, die einfach nur „Licht an, Licht aus“ wollen – Installationen, bei denen keine Optimierung möglich oder gewünscht ist

Kurz: Ein Dimmer für Perfektionisten – nicht für Minimalisten.

Insgesamt überzeugt der Ubisys D1-R durch Profi‑Qualität, hervorragende Zigbee‑Integration und enorme Flexibilität – ein Premium‑Dimmer für Leute, die Technik nicht nur nutzen, sondern beherrschen wollen.


Persönliche Einschätzung

Ich würde den Ubisys D1-R sehr gerne dauerhaft selbst nutzen — die Technik begeistert mich, das Dimmergebnis ist top und die Zuverlässigkeit spricht für den Profiansatz.
Allerdings liegt der Preis mit rund 140 € für meinen privaten Einsatz aktuell eher über meiner Schmerzgrenze.

Für Installationen, bei denen man nie wieder an Ausfälle denken möchte, ist der D1-R sein Geld trotzdem wert — nur eben nicht die günstigste Lösung für jede einzelne Lampe im Haus.


Und wenn du jetzt auch einen haben willst, dann schau mal in den Ubisys Store von Amazon (bezahlter Link)

Falls du weitere Interessante Artikel zum Thema Smart Home lesen willst, schau mal in der passenden Kategorie „Smart Home“ vorbei.

Shelly Power Strip 4 Gen4 im Test – Smart-Home-Steckdosenleiste mit Matter, Zigbee und MQTT

Zebra-Avatar hält begeistert die Shelly Power Strip 4 Gen4 hoch und zeigt darauf, im Hintergrund Symbole von Matter, Zigbee, WLAN und Bluetooth.

Die neue Shelly Power Strip 4 Gen4 bringt frischen Wind in den Smart-Home-Markt: Vier Schuko-Steckdosen, jede einzeln schaltbar und mit Energiemessung versehen, dazu Matter Unterstützung, Zigbee-Repeater-Funktion und natürlich die bekannte Shelly-App. Klingt fast nach eierlegender Wollmilchsau – aber wie schlägt sich die Leiste im Alltag?

Shelly Power Strip 4 Gen4 mit zwei eingesteckten Geräten, LED-Ringe in grün leuchtend.

Einrichtung & Protokolle

  • Shelly App: Egal ob Zigbee oder Matter – die Einrichtung verlief schnell und problemlos. Einziger Haken: Nach einem Protokoll-Wechsel zeigte die App das Gerät als offline und beim erneuten Hinzufügen meldete sie teils „bereits mit anderem Konto verknüpft“ oder „kein anerkanntes Shelly Gerät“. Erst ein Neustart der App und erneutes hinzufügen brachte Abhilfe.
  • Matter über Alexa-App: QR-Code scannen, den Anweisungen folgen – einfacher geht es nicht. Jede Steckdose wird als eigenes Gerät erkannt, zusätzlich die gesamte Leiste als „Master“. Besonders komfortabel: Nach Rückkehr von Zigbee zurück zu Matter blieb die Alexa-Einbindung bestehen. Leider wird in der Alexa-App kein Verbrauch angezeigt.
  • Firmwarewechsel Zigbee: Vorwarnung: „After switching the firmware, all settings will be reset except for the Wi-Fi configuration.“ Praktisch bedeutet das: Vorher entscheiden, welches Protokoll man dauerhaft nutzen möchte. Irritierend: Nach dem Wechsel blieb die Meldung „Connecting to Shelly“ stehen – Ursache war eine neue IP, die Oberfläche hat hier kein Timeout. Es heißt also, trotzt Meldung, prüfen ob der Strip nicht doch eine neue IP bekommen hat.
  • zigbee2mqtt: Aktuell ist der Strip noch nicht vollständig unterstützt (Energiemessung fehlt), aber Schalten einzelner Kanäle funktioniert bereits. Nach Problemen mit dem Status „joined“ half nur Neu-Einbindung per App über Bluetooth – später erkannte zigbee2mqtt den Strip wieder korrekt.

MQTT & ioBroker

  • ioBroker Shelly-Adapter: Fehlermeldung im Log trotz unveränderter Client-ID – hier fehlt noch Support für den Power Strip.
  • Generischer MQTT-Adapter: Verbindung möglich, Daten kamen als JSON-Blob an. Ein direktes Schalten über JSON funktionierte jedoch nicht. Fazit: Für den MQTT-Einsatz ist es aktuell noch zu früh.
  • Es gibt einen Fork der den Strip rudimentär unterstützt, dieser befindet sich allerdings im Alpha Stadium. https://github.com/MeisterQ/ioBroker.shelly

Funktionen & Bedienung

  • Physische Taster: Zum Glück echte Drucktaster statt Touch-Sensoren – zuverlässig und haptisch angenehm. Über Taster 1+4 lässt sich per Druckdauer auch ein Selbsttest, Reboot oder Werksreset starten, jeweils mit optischem Feedback durch LED-Blinkmuster.
  • LED-Ring: Praktisch als Last-Indikator – ohne Last grün, ab ~2,1 kW gelb/orange, ab ~2,5 kW rot. Bei Überlast schaltet die Steckdose ab, die App zeigt „Überstrom“. Danach lässt sie sich problemlos wieder einschalten.
  • LED-Anpassungen: Nachtmodus (LEDs aus in einstellbarem Zeitfenster) und einstellbare Grundhelligkeit. Farbanzeige ist global für alle Steckdosen – in der Werbung wirkte es individueller, tatsächlich ist es ein Shared-Setting.
Shelly Power Strip 4 Gen4 mit farbigen LED-Ringen in blau und rot.

Sicherheit & Schutzfunktionen

  • Schutzfunktionen in der App: Maximaler Leistungsschutz, Spannungsschutz und Stromschutz können individuell eingestellt werden – ideal für empfindliche Geräte.
  • Im Belastungstest blieb die Gehäusetemperatur mit rund 30 °C absolut unkritisch.
  • Die interne Überstromabschaltung funktionierte zuverlässig mit klarer Warnmeldung in der App.
  • Auffälligkeit: Der Power Strip erkennt fälschlicherweise Stromausfälle und setzt dann den unter „Output“ eingestellten Status. Abhilfe schaffte es, die Einstellung „Output settings“ auf „Restore last known state of output/relay“ zu setzen – damit ließ sich das Verhalten sogar umkehren, wenn zuvor „Turn OFF“ gewählt war. Da aber tatsächlich kein Stromausfall und keine Spannungsschwankung vorlagen, handelt es sich um einen klaren Bug. Eigentlich sollte diese Option nur das Verhalten nach echten Stromausfällen regeln.

Nachtrag:
Nach ein paar Tagen Dauerbetrieb hat sich das Problem auf mysteriöse Weise in Luft aufgelöst. Kein Firmware-Update, keine geänderte Einstellung, keine Opfergabe an die Smart-Home-Götter – und plötzlich läuft alles stabil. Offenbar hat die Leiste beschlossen, sich selbst zu reparieren oder einfach den Bug zu vergessen.

Nachtrag 2: Und es ist wieder da. Der Shelly Support will den Strip bei sich prüfen. Ich halte euch auf dem laufenden.

Thermografieaufnahme der Shelly Power Strip 4 Gen4 mit 22,9 Grad Celsius.

Design & Verarbeitung

  • Kompakt, optisch unauffällig – macht auch auf Tisch oder Regal eine gute Figur.
  • Rückseite mit Klebefläche und Wandhalterungen. Allerdings nur für horizontale Montage vorgesehen; eine Möglichkeit für vertikale Befestigung fehlt.
Rückseite der Shelly Power Strip 4 Gen4 mit Matter-Label und Wandhalterungen.

Messungen & Auffälligkeiten

  • Energiemessung pro Steckdose verfügbar. Ein leichter Spannungsabfall von Steckdose 1 zu Steckdose 4 (< 1 V) wurde festgestellt, im normalen Betrieb irrelevant.
  • Abweichungen der Messwerte zwischen den Steckdosen sind gering und im Alltag ohne Bedeutung.

Update: Eigenverbrauchsmessung

Inzwischen wurde auch der Eigenverbrauch der Shelly Power Strip 4 Gen4 gemessen. Alle Werte wurden ohne angeschlossene Verbraucher aufgenommen.

Mit deaktivierten LED-Ringen:

  • Alle Steckdosen aus: 0,7 W
  • 1 Steckdose an: 1,1 W
  • 2 Steckdosen an: 1,6 W
  • 3 Steckdosen an: 2,0 W
  • 4 Steckdosen an: 2,5 W

Mit aktiven LED-Ringen:

  • 1 Steckdose an: 1,2 W
  • 2 Steckdosen an: 1,8 W
  • 3 Steckdosen an: 2,3 W
  • 4 Steckdosen an: 2,8 W

Die Leuchtfarbe der LEDs hatte dabei keinen Einfluss auf den Verbrauch. Selbst bei allen aktiv geschalteten Steckdosen bleibt der Eigenverbrauch mit unter 3 Watt erfreulich gering.


Fazit

Für MQTT- und ioBroker-Integration ist es momentan noch zu früh – die Adapter brauchen Updates. Wer hingegen Matter oder die Shelly-App nutzt, erhält eine extrem vielseitige und hochwertig verarbeitete Smart-Home-Steckdosenleiste. Die Schutzfunktionen, Energiemessung und der LED-Lastindikator sind praxisnah umgesetzt.

Im Preisbereich um die 60 € liegt sie gleichauf mit vier einzelnen Zigbee-Steckdosen (z. B. von NOUS), bietet aber zusätzlich Matter und mehr. Damit ist die Shelly Power Strip 4 Gen4 aktuell die stärkste Lösung, die ich im Smart-Home-Bereich gesehen habe – und eine spannende Investition für alle Nerds, die mehr als nur simples Schalten wollen.


Noch mehr Shelly Zauber? Dann schaue dir auch meinen Beitrag „Shelly Direktverknüpfung“ an.

Hisense per MQTT steuern: So zähmst du deinen Vidaa-Fernseher endlich lokal

Vergleich: Normale Nutzer mit Fernbedienung vs. Zebra mit Terminal – Hisense Fernseher per MQTT steuern

Hast du einen Hisense-TV mit Vidaa-Betriebssystem? Und hast du dir auch schon mal gedacht: „Warum zur Hölle kann ich das Ding nicht einfach per MQTT steuern wie ein anständiges Smart-Home-Gerät?!“ Willkommen im Club. Doch nach Wochen voller Sackgassen, verschlüsselten Geheimnissen und mysteriösen Ports habe ich es geschafft – und du kannst es jetzt auch. Mit „Hisense MQTT“ steuerst du deinen Fernseher wie ein echter Nerd. Lokal. Sicher. Und komplett ohne Cloud.

⚠️ Spoiler: Es ist ein Ritt durch verschlüsselte MQTT-Server, zertifikatsgeschützte Verbindungen und Bash-Magie. Aber hey – das ist Prokrastinerd.de, nicht Mama’s Plug & Play Blog.


Schritt 1: Teste alles mit dem MQTT Explorer

Dein Fernseher muss für die Einrichtung an sein, eine feste IP-Adresse haben und Wake on LAN (WoL) muss aktiviert sein

Bevor du dir die Finger im Terminal wund tippst, teste, ob dein Fernseher überhaupt auf MQTT hört. Verwende dafür MQTT Explorer.

Einstellungen:

  • Broker: IP deines Hisense-TVs
  • Port: 36669
  • Encryption (TLS): Aktivieren ✅
  • Validate certificate: Deaktivieren ❌
  • Client Certificate & Key (unter Advanced):
    • Zertifikat: rcm_certchain_pem.cer
    • Schlüssel: rcm_pem_privkey.pkcs8

Die nötigen Dateien findest du hier: GitHub

Wenn der Explorer sich verbindet, dann sende das folgende Topic (HomeAssistant kannst du austauschen, das ist deine zukünftige Client-ID für den Fernseher):
/remoteapp/tv/ui_service/HomeAssistant/actions/gettvstate

Wenn das klappt, sollte dein Fernseher eine Pin anzeigen. Dann direkt folgendes Topic senden:
/remoteapp/tv/ui_service/HomeAssistant/actions/authenticationcode

Payload:
{"authNum": 1234}

Hat das geklappt? Glückwunsch. Dein TV kann MQTT.


Schritt 2: Debian LXC vorbereiten (alternativ einen Linux-Server oder Raspberry Pi)

Richte dir einen LXC-Container mit Debian 12 ein, z. B. in Proxmox. Gib ihm eine feste IP (Wir verwenden hier 192.168.0.84).

Dann brauchen wir Zugriff um die Zertifikate hochladen zu können.
Also:

nano /etc/ssh/sshd_config

Ergänze oder ändere:

PermitRootLogin yes

(Du kannst das nach dem Hochladen der Zertifikat-Dateien wieder auf „no“ setzen.)

mkdir /etc/mqtt_certs/

Zertifikate per SFTP hochladen, z. B. mit WinSCP.


Infografik zur MQTT-Verbindung zwischen Hisense Fernseher und Linux-Client mit Python, Zertifikaten und Zebra-Avatar

Schritt 3: Python-Umgebung einrichten

mkdir -p /opt/hisense-mqtt
cd /opt/hisense-mqtt
apt update
apt install python3.10-venv -y

🧠 Was ist venv?
venv steht für „virtual environment“. Es erstellt ein isoliertes Python-Umfeld, sodass deine installierten Pakete (wie paho-mqtt) nicht mit dem System-Python oder anderen Projekten kollidieren. Nerds nennen es „sauberes Python“.

python3 -m venv venv
source venv/bin/activate
pip install paho-mqtt

Jetzt erstellen wir eine Python Datei:

nano hisense.py

Inhalt:

import ssl
import argparse
import paho.mqtt.client as mqtt
from paho.mqtt.client import CallbackAPIVersion
import time

# Argumente aus der Kommandozeile parsen
parser = argparse.ArgumentParser(description="Sende MQTT-Befehl an Hisense-TV")
parser.add_argument("--topic", required=True, help="MQTT Topic")
parser.add_argument("--payload", required=True, help="MQTT Payload")
args = parser.parse_args()

# Verbindungskonfiguration
BROKER = "192.168.0.180"
PORT = 36669
USERNAME = "hisenseservice"
PASSWORD = "multimqttservice"
CLIENT_ID = "HomeAssistant"

# Callback bei erfolgreicher Verbindung
def on_connect(client, userdata, flags, reasonCode, properties):
    print(f"[INFO] Verbindungscode: {reasonCode}")
    if reasonCode == mqtt.MQTT_ERR_SUCCESS:
        print(f"[INFO] Verbunden – sende an Topic '{args.topic}': {args.payload}")
        client.publish(args.topic, args.payload)
    else:
        print("[ERROR] Verbindung fehlgeschlagen")

# Callback nach erfolgreicher Veröffentlichung
def on_publish(client, userdata, mid, reasonCode, properties):
    print("[INFO] Nachricht veröffentlicht – beende...")
    client.disconnect()

# MQTT-Client erstellen mit TLS-Optionen
client = mqtt.Client(
    client_id=CLIENT_ID,
    protocol=mqtt.MQTTv311,
    transport="tcp",
    userdata=None,
    clean_session=True,
    reconnect_on_failure=True,
    callback_api_version=CallbackAPIVersion.VERSION2
)

# Login setzen
client.username_pw_set(USERNAME, PASSWORD)

# TLS konfigurieren (Zertifikate nutzen, aber keine Validierung)
client.tls_set(
    ca_certs=None,
    certfile="/etc/mqtt_certs/rcm_certchain_pem.cer",
    keyfile="/etc/mqtt_certs/rcm_pem_privkey.pkcs8",
    tls_version=ssl.PROTOCOL_TLSv1_2,
    cert_reqs=ssl.CERT_NONE
)
client.tls_insecure_set(True)

# Callbacks zuweisen
client.on_connect = on_connect
client.on_publish = on_publish

# Verbindung herstellen und starten
print("[INFO] Stelle Verbindung her...")
client.connect(BROKER, PORT, keepalive=60)
client.loop_start()

# Warten, bis Nachricht gesendet und Verbindung beendet wurde
while client.is_connected():
    time.sleep(0.1)

client.loop_stop()

Test:

python hisense.py --topic "/remoteapp/tv/remote_service/HomeAssistant/actions/sendkey" --payload "KEY_MUTE"

Ist dein Fernseher jetzt lautlos? Super, dann hat alles geklappt!


Schritt 4: Komfortabler Zugriff per Bash

Bevor du dich fragst, warum dein Fernseher auf alle MQTT-Kommandos brav reagiert – aber nicht von allein angeht: Das liegt daran, dass Power On per MQTT nicht vorgesehen ist. Der Fernseher schläft im Deep Sleep – MQTT? Hört er nicht mehr.
Lösung: Du musst ihn via Wake-on-LAN (WoL) aus dem Dornröschenschlaf wecken.

apt install wakeonlan
wakeonlan 00:11:22:33:44:55 # Deine MAC-Adresse anpassen

Damit wir nicht immer erst in die virtuelle Umgebung wechseln müssen, basteln wir uns ein Script, welches das für uns übernimmt.

nano /usr/local/bin/hisense-send

Inhalt:

#!/bin/bash
cd /opt/hisense-mqtt || exit 1
source venv/bin/activate
python hisense.py "$@"

Dann ausführbar machen:

chmod +x /usr/local/bin/hisense-send

Test:

/usr/local/bin/hisense-send --topic "/remoteapp/tv/remote_service/HomeAssistant/actions/sendkey" --payload "KEY_MUTE"

Erneut sollte dein Fernseher lautlos bzw. wieder laut sein.

Optional: PATH erweitern, damit du einfach hisense-send ... tippen kannst:

export PATH="$PATH:/usr/local/bin"


Bonus: Integration mit ioBroker, HomeAssistant, Node-RED, usw.

Damit du von anderen Systemen aus deinen Hisense per MQTT steuern kannst, richte SSH-Zugriff ohne Passwort ein.

Auf dem System welches die Befehle senden soll, führe folgendes aus:

systemctl start ssh
ssh-keygen -t rsa -b 4096
ssh-copy-id root@192.168.0.84

Dann kannst du z. B. in Node-RED einen exec-Node verwenden:

ssh root@192.168.0.84 /usr/local/bin/hisense-send --topic "/remoteapp/tv/remote_service/HomeAssistant/actions/sendkey" --payload "KEY_MUTE"

Alternativ: sudo -u iobroker ssh-keygen & ssh-copy-id für User „iobroker“.
Dies war in meinem Fall nötig, damit die Node-RED, Blockly usw. den Befehl senden konnten.


Alternativen & Empfehlungen

Falls dir das Ganze zu nerdig ist – oder du einfach ein Backup willst, wenn der MQTT-Weg mal wieder zickt – hier zwei Optionen mit Sternchen:

  • 🛒 Hisense Fernseher mit Vidaa gibt’s z. B. hier bei Amazon (bezahlter Link)
  • 🛒 Zigbee-Infrarot-Bridge – die kann klassische IR-Fernbedienungen ersetzen und lässt sich mit ioBroker oder Zigbee2MQTT kombinieren. hier bei Amazon (bezahlter Link)

MQTT-Tastenbefehle für den Hisense TV

Wenn dein Fernseher erfolgreich gekoppelt wurde, kannst du über das folgende Topic Tasteneingaben senden:

Topic: /remoteapp/tv/remote_service/HomeAssistant/actions/sendkey

Steuerung & Navigation:

KEY_POWER    # Gerät ein-/ausschalten (nur wenn aktiv)
KEY_OK           # Bestätigen
KEY_UP           # Pfeil hoch
KEY_DOWN    # Pfeil runter
KEY_LEFT        # Pfeil links
KEY_RIGHT     # Pfeil rechts
KEY_HOME     # Startbildschirm
KEY_MENU     # Menü öffnen
KEY_RETURNS # Zurück
KEY_EXIT         # Beenden / Zurück ins Hauptmenü

Lautstärke & Ton:

KEY_VOLUMEUP          # Lauter
KEY_VOLUMEDOWN   # Leiser
KEY_MUTE                   # Stumm

Mediensteuerung:

KEY_PLAY              # Wiedergabe
KEY_PAUSE            # Pause
KEY_STOP              # Stopp
KEY_FORWARDS    # Vorspulen
KEY_BACK              # Zurückspulen

Zahlenfeld & Untertitel:

KEY_0 bis KEY_9  # Zahlentasten 0–9
KEY_SUBTITLE     # Untertitel ein-/ausblenden

Weitere Befehle findest du hier: GitHub


Fazit

Es ist kein Plug & Play – aber dafür ist es nerdy, offline, lokal und genial. Mit ein bisschen Zertifikatsakrobatik und Bash-Bastelei kannst du deinem Fernseher endlich Manieren beibringen – ganz ohne Cloud, App oder offizielle API. Hisense per MQTT steuern ist nicht nur ein Befehl, sondern eine Lebenseinstellung. 😎


📎 Noch Fragen, Feedback oder eigene Hacks? Schreib mir oder poste auf nerdculture.de/@GrayTheZebra – oder natürlich in den Kommentaren!

Shelly Direktverknüpfung – lokale Automationen ohne Cloud (mit Beispiel)

Illustration eines magischen Zebras im Zauberer-Outfit, das mit einem Zauberstab zwei Shelly-Geräte miteinander verknüpft. Zwischen den Geräten fliegen leuchtende Symbole – Symbolbild für Shelly Direktverknüpfung ohne Cloud.

In vielen Smart-Home-Setups sind Shelly-Geräte per ioBroker, Home Assistant oder über die Shelly Cloud vernetzt. Was aber viele nicht wissen: Shellys können direkt miteinander kommunizieren – ohne Cloud, ohne Zentrale, rein lokal. Das nennt sich Shelly Direktverknüpfung und ermöglicht schnelle, zuverlässige Automationen.

In diesem Artikel zeige ich dir, wie du zwei Shelly-Geräte direkt miteinander verknüpfst. Bei einem Tasterdruck auf Gerät A wird ein Ausgang auf Gerät B umgeschaltet. Einfach, elegant und ganz ohne Zusatzsoftware.


Was ist eine Shelly Direktverknüpfung?

Eine Shelly Direktverknüpfung ist eine lokale Automation zwischen zwei oder mehr Shelly-Geräten, die direkt über HTTP oder MQTT kommunizieren – ohne Cloud, Server oder Smart-Home-Zentrale. Das Ganze funktioniert mithilfe von Shelly Skripten (basierend auf JavaScript).

Im Vergleich zu klassischen Smart-Home-Systemen wie KNX ist Shelly:

SystemVorteileNachteile
ShellyEinfach konfigurierbar, kostengünstig, flexibelWeniger Echtzeitfähig, abhängig vom WLAN
KNXStabil, normiert, kabelgebunden, extrem zuverlässigTeuer, aufwendige Einrichtung, proprietäres ETS-Tool

Tipp: Eine gute Einführung zu KNX gibt’s z. B. bei Wikipedia


Voraussetzungen

  • 2x Shelly-Geräte mit Skriptunterstützung (z. B. Shelly Plus, Pro oder Gen2-Modelle wie Shelly 1PM, 2PM etc.) – z. B. Shelly 2PM bei Amazon (bezahlter Link)
  • Beide Geräte im selben lokalen Netzwerk
  • Statische IPs empfohlen (z. B. 192.168.1.10 und 192.168.1.11)
  • Auf dem „Sender“ muss ein Taster konfiguriert sein

Hinweis: Der Detached-Modus ist empfohlen, damit das Skript die volle Kontrolle über das Relaisverhalten hat. Alternativ können auch Modi wie „Toggle“ oder „Edge“ verwendet werden – dabei wird das lokale Relais jedoch zusätzlich zum Skript ausgelöst, was je nach Anwendungsfall erwünscht oder störend sein kann. (Input im Detached-Modus)


Das Beispiel: Taster schaltet Relais

Schematische Darstellung einer Shelly Direktverknüpfung: Ein Eingabegerät mit Skript sendet per HTTP-Befehl ein Signal an ein Relais auf einem zweiten Shelly-Gerät.

Ziel:

Ein Taster an Shelly A (Input 0) soll den zweiten Ausgang von Shelly B toggeln (also ein-/ausschalten).

Schritt 1: Taster richtig konfigurieren

Auf dem Shelly A:

  • Gehe zu Inputs → Input 0
  • Modus: Detached
  • Button type: Momentary

Schritt 2: Script einfügen

Navigiere auf die Weboberfläche vom Shelly A zu Scripts → Add new script. Gib dem Script einen Namen, z. B. toggle_remote_output, und füge folgenden Code ein:

Shelly.addEventHandler(function (event) {
  if (event.component === "input:0" && event.info.event === "single_push") {
    Shelly.call("HTTP.GET", {
      url: "http://192.168.1.11/rpc/Switch.Toggle?id=1"
    });
  }
});

Hinweis: id=1 steht für den zweiten Relaisausgang. Wenn du den ersten schalten willst, nutze id=0.

Schritt 3: Script aktivieren & testen

  • Speichern
  • Auf „Enable“ klicken
  • Jetzt den Taster betätigen – das Relais am zweiten Shelly sollte sofort schalten

Weiteres Beispiel: Temperaturgesteuerte Lüftersteuerung

Mit dem Shelly Add-On (bezahlter Link) und einem DS18B20-Temperatursensor lassen sich einfache Klima-Automatiken realisieren:

Ziel:

Wenn die Temperatur über 26 °C steigt, wird der Lüfter (an einem Shelly Plug oder Relais) eingeschaltet. Sinkt sie unter 24 °C, geht er wieder aus.

Shelly Script:

Timer.setInterval(10000, function () {
  let temp = Shelly.getComponentStatus("temperature:0").tC;
  if (temp > 26) {
    Shelly.call("HTTP.GET", { url: "http://192.168.1.11/rpc/Switch.Set?id=0&on=true" });
  } else if (temp < 24) {
    Shelly.call("HTTP.GET", { url: "http://192.168.1.11/rpc/Switch.Set?id=0&on=false" });
  }
});

Hinweis: Der Temperatursensor muss korrekt unter „Temperature → temperature:0“ erkannt werden.


Alternativen zur Shelly Direktverknüpfung

Wenn du lieber komplexe Logiken, Logging oder Visualisierung brauchst:

SystemVorteileNachteile
ioBrokerExtrem flexibel, viele Adapter, VisualisierungKomplexer Einstieg, mehr Wartung
Home AssistantBenutzerfreundlich, große CommunityHardware nötig, YAML-Konfiguration
MQTT-onlySchneller, leichtgewichtigKein Frontend, alles manuell

Trotzdem: Für einfache Aufgaben wie Taster → Relais ist Shelly Direktverknüpfung oft die einfachste und robusteste Lösung.


Fazit

Die Shelly Direktverknüpfung ist eine schlanke, direkte Methode, um Geräte lokal miteinander zu vernetzen. Ohne Cloud, ohne Zentrale – aber mit voller Kontrolle. Ideal für alle, die ihr Smart Home einfach und lokal betreiben wollen.

👉 Du willst mehr als nur „per App schalten“? Dann wirf einen Blick auf „Echtes Smart Home – Automatisierung statt Fernbedienung“ – dort zeige ich, warum echte Automatisierung so viel mehr kann als Fernbedienungs-Klickerei.

Weitere Beispiele wie Long-Press-Szenen usw. folgen im nächsten Teil. Wenn du spezielle Anwendungsfälle oder Wunsch-Skripte hast, schreib sie gern in die Kommentare – ich greife sie gern in zukünftigen Beiträgen auf.

Zigbee, Z-Wave, WLAN, what MATTERs – Vor- und Nachteile der Smart-Home-Übertragungsprotokolle

Zebra-Avatar in Denkerpose mit Symbolen für Zigbee, Z-Wave, WLAN, Matter, ioBroker und Home Assistant – Smart-Home-Protokolle im Vergleich

Das Smart Home boomt – aber mit welchem Übertragungsprotokoll? Zigbee, Z-Wave, WLAN oder Matter: Jedes hat seine Stärken und Schwächen. Wer ein zuverlässiges, sicheres und zukunftssicheres Smart Home aufbauen möchte, sollte wissen, worauf er sich einlässt.


Zigbee – Der Platzhirsch im Smart Home

Zigbee ist eines der am weitesten verbreiteten Funkprotokolle für Smart-Home-Geräte. Es arbeitet im 2,4-GHz-ISM-Band, ähnlich wie WLAN und Bluetooth, und nutzt ein Mesh-Netzwerk: Netzstrombetriebene Geräte (z. B. Steckdosen) fungieren als Repeater, wodurch das Netz mit jedem neuen Gerät stabiler wird.

✅ Vorteile

  • Stabiles Mesh-Netzwerk: Je mehr Geräte, desto besser die Reichweite.
  • Sehr energieeffizient: Perfekt für batteriebetriebene Sensoren (Temperatur, Fensterkontakte).
  • Breite Gerätevielfalt: Von günstigen Tuya-Sensoren (bezahlter Link) bis zu hochwertigen Philips Hue Lampen (bezahlter Link).
  • Lokale Steuerung möglich: Mit Gateways wie Zigbee2MQTT völlig ohne Cloud.

❌ Nachteile

  • Kanalüberschneidungen mit WLAN:
    Zigbee nutzt Kanäle von 11 bis 26, die sich mit WLAN (2,4 GHz) überschneiden.
    • WLAN-Kanal 1 überlappt stark mit Zigbee-Kanal 11–15
    • WLAN-Kanal 6 überlappt mit Zigbee 16–20
    • WLAN-Kanal 11 überlappt mit Zigbee 21–24
      Lösung: Zigbee am besten auf Kanal 25 oder 26 setzen (weniger Störungen, aber kürzere Reichweite) und WLAN auf Kanal 1 oder 6 fixieren.
  • Viele Implementierungen: Tuya, Ikea, Hue – nicht immer voll kompatibel.
  • Gateway nötig: Ohne Zigbee-Bridge oder Stick geht es nicht.

📌 Tipp: Ein Sonoff Zigbee 3.0 USB Stick (bezahlter Link) in Kombination mit Zigbee2MQTT oder Home Assistant ist eine günstige und flexible Lösung.


Z-Wave – Der Profi für stabile Installationen

Z-Wave ist das Premium-Protokoll für smarte Gebäude. Es funkt im sub-GHz-Band (868 MHz in Europa), wodurch es kaum von WLAN, Zigbee oder Bluetooth gestört wird. Der Fokus liegt auf Zuverlässigkeit und Kompatibilität – ideal für eine dauerhafte Hausinstallation.

✅ Vorteile

  • Kaum Störungen: 868 MHz ist fast ungenutzt, dadurch sehr stabile Funkverbindungen – auch durch dicke Wände.
  • Profi-Mesh: Jeder netzbetriebene Aktor fungiert als Repeater. Mit 5–10 Aktoren hast du ein extrem stabiles Netz.
  • Strenge Zertifizierung: Geräte sind fast immer untereinander kompatibel – anders als bei Zigbee, wo Hersteller oft eigene Lösungen kochen.
  • Lokale Steuerung ohne Cloud: Z-Wave ist von Haus aus lokal, keine Server in China nötig.
  • Sinnvoll bei fest verbauten Aktoren: Vor allem bei Hutschienen-Aktoren oder Unterputzmodulen, die jahrelang zuverlässig laufen müssen.

❌ Nachteile

  • Teurer: Ein Z-Wave-Aktor kostet oft 2–3× mehr als ein Zigbee-Pendant.
  • Weniger Gerätevielfalt: Gerade bei günstigen Sensoren hinkt Z-Wave hinterher.
  • Langsamere Datenrate: Für Sensoren ideal, aber nicht für Video- oder Audioübertragung.
  • Gateway nötig: Auch Z-Wave braucht einen Stick oder Hub (z. B. Aeotec Z-Stick 7 (bezahlter Link)).

Shelly und Z-Wave – warum das Sinn macht

Shelly war bisher vor allem für WLAN-Relais bekannt, doch es gibt inzwischen Z-Wave-Modelle, und die machen gerade bei Hutschienen-Aktoren extrem Sinn:

  • Hohe Zuverlässigkeit: Ein Shelly Pro 1PM auf WLAN kann bei WLAN-Ausfällen Probleme machen, während ein Shelly Qubino Wave 1 über Z-Wave unabhängig vom Heimnetz stabil weiterarbeitet.
  • Kein WLAN-Gefrickel: In Schaltschränken ist der WLAN-Empfang oft schlecht – Z-Wave hat dank 868 MHz eine deutlich bessere Reichweite.
  • Ideal für sicherheitsrelevante Funktionen: Heizungssteuerung, Pumpen oder smarte Rollläden profitieren von der garantierten lokalen Z-Wave-Kommunikation.
  • Einfache Integration: Shelly Z-Wave-Geräte funktionieren problemlos in Z-Wave-Hubs wie Home Assistant, ioBroker oder Fibaro.

👉 Beispiel: Shelly Wave Pro 1PM (bezahlter Link) – ideal für Hutschienenmontage.


WLAN – Einfach, aber nicht immer smart

Viele günstige Geräte (z. B. Shelly-Relais (bezahlter Link) oder Tasmota-Module) setzen auf klassisches WLAN. Der Vorteil: Du brauchst kein zusätzliches Gateway.

✅ Vorteile

  • Keine zusätzliche Hardware: Direkt mit dem Router verbunden.
  • Hohe Bandbreite: Perfekt für Kameras oder Video-Türklingeln.
  • Viele DIY-Möglichkeiten: ESP8266/ESP32-basierte Module sind günstig und flashbar.

❌ Nachteile

  • Hoher Energieverbrauch: Batteriebetriebene Sensoren sind mit WLAN keine gute Idee.
  • Belastet dein Heimnetz: Viele WLAN-Geräte können billige Router an ihre Grenzen bringen.
  • Cloud-Pflicht bei Billig-Geräten: Viele günstige Hersteller speichern Daten in der Cloud – ein Risiko für Datenschutz und Stabilität.

Matter – Kein eigenes Funkprotokoll, aber der Zukunfts-Standard

Matter wird oft missverstanden: Es ist kein Funkprotokoll wie Zigbee oder Z-Wave, sondern ein gemeinsamer Applikations-Layer für Smart-Home-Geräte. Es läuft über bestehende Übertragungswege wie WLAN, Ethernet oder Thread (eine Zigbee-ähnliche Mesh-Technik).

✅ Vorteile

  • Herstellerübergreifend: Google, Apple, Amazon, Philips – alle ziehen (theoretisch) an einem Strang.
  • Lokale Steuerung: Matter setzt auf lokale Kommunikation statt auf Cloud-Zwang.
  • Zukunftssicher: Updates und Zertifizierungen sollen langfristig für stabile Kompatibilität sorgen.

❌ Nachteile

  • Noch jung: Viele Geräte sind noch buggy oder benötigen Firmware-Updates.
  • Nicht alles wird Matter: Alte Zigbee- und Z-Wave-Geräte lassen sich nur über Bridges einbinden.
  • Thread-Hardware nötig: Matter über Thread braucht neue Chips.

Mehr Infos findest du auf der offiziellen Matter-Seite.


Junger Zebra-Avatar spielt mit Bausteinen, auf denen Logos von Zigbee, Z-Wave, Matter, ioBroker und Home Assistant zu sehen sind

KNX und Loxone – Die Königsdisziplin für fest installierte Smart Homes

Wer sein Smart Home nicht nur nachrüsten, sondern professionell und dauerhaft installieren möchte, kommt an KNX und Loxone kaum vorbei. Beide Systeme setzen nicht auf Funk, sondern auf drahtgebundene Bus-Systeme – ideal für Neubauten oder größere Sanierungen.

✅ Vorteile

  • Maximale Zuverlässigkeit: Kabelgebundene Bus-Systeme sind immun gegen Funkstörungen.
  • Sehr lange Lebensdauer: KNX gilt als Industriestandard und läuft oft jahrzehntelang stabil.
  • Unabhängig vom Internet: Keine Cloud, keine Ausfälle durch Router-Probleme.
  • Unendliche Erweiterbarkeit: Besonders KNX ist extrem modular und unterstützt hunderte Hersteller.

❌ Nachteile

  • Teuer und komplex: Sowohl KNX als auch Loxone sind nichts für „Plug & Play“.
  • Planung notwendig: Perfekt für Neubauten, aber im Altbau oft aufwendig.
  • Weniger Bastelspaß: KNX ist hochstandardisiert, Loxone stark an eigene Hardware gebunden.

KNX oder Loxone?

  • KNX ist der offene Industriestandard mit enormer Gerätevielfalt und langer Historie.
  • Loxone ist eher ein komplettes System aus einer Hand, leichter zu konfigurieren, aber weniger flexibel.

👉 Wer ernsthaft baut oder saniert, sollte überlegen, eine KNX-Busleitung vorzusehen – selbst wenn sie erst Jahre später genutzt wird.


Fazit: Welches Protokoll passt zu dir?

  • Viele günstige Sensoren und Bastelprojekte? → Zigbee.
  • Stabile Profi-Installationen (z. B. Hutschiene, Rollläden)? → Z-Wave, vor allem mit Shelly-Qubino-Aktoren.
  • Einfaches Basteln ohne Gateway? → WLAN (aber am besten lokal mit MQTT).
  • Zukunftssicher und herstellerübergreifend? → Matter.

Am Ende gibt es kein „One fits all“. Die meisten Smart Homes sind Mischsysteme: Zigbee oder Z-Wave für Sensoren, WLAN für komplexe Geräte, Matter für neue Anschaffungen, KNX/Loxone für Neubauprojekte. Die eigentliche Magie entsteht aber erst durch Smart-Home-Zentralen wie ioBroker oder Home Assistant. Diese Systeme fungieren als Brücke zwischen den Protokollen und ermöglichen es, Zigbee-Lampen, Z-Wave-Rollläden, WLAN-Kameras und sogar KNX-Aktoren in einem einzigen Automatisierungssystem zu vereinen – inklusive komplexer Regeln, Dashboards und Cloud-freier Steuerung.

Licht automatisch einschalten beim PC-Start – So geht’s mit ioBroker und Home Assistant

Technisch aufgeräumter Schreibtisch mit PowerShell-Code auf dem Bildschirm und eingeschalteter Schreibtischlampe – Symbolbild für Lichtautomatisierung beim PC-Start.

Licht automatisch einschalten beim PC-Start – genau das ist das Ziel dieses Beitrags. Wenn dein PC hochfährt, soll automatisch das Licht am Schreibtisch angehen? Klingt erstmal wie Magie – ist aber mit PowerShell, ioBroker oder Home Assistant in wenigen Minuten realisierbar. In diesem Beitrag zeige ich dir Schritt für Schritt, wie du genau das umsetzt. Alles lokal, ohne Cloud, dafür mit extra Nerd-Faktor und ein paar praktischen PowerShell-Tricks.


Was du brauchst, um beim PC-Start das Licht automatisch einzuschalten

  • Einen Windows-PC mit PowerShell (ab Windows 10)
  • Eine smarte Lampe oder Steckdose (z. B. Tapo Nano Smart WLAN Steckdose (bezahlter Link) oder Philips Hue (bezahlter Link))
  • Eine laufende ioBroker- oder Home Assistant-Installation
  • Einen gemeinsamen Netzwerkzugang
Aufgeräumter Technik-Arbeitsplatz mit drei Monitoren, PowerShell-Code und Smart-Home-Zubehör – der PC wird gestartet und das Licht geht automatisch an.
Beim Start des PCs aktiviert ein PowerShell-Skript automatisch das Licht – so einfach kann Smart Home mit ioBroker oder Home Assistant sein.

Variante 1: Beim PC-Start das Licht automatisch einschalten mit ioBroker

ioBroker vorbereiten

  1. Stelle sicher, dass der web-Adapter in ioBroker läuft.
  2. Aktiviere die Simple-API (Standardport ist meist 8087).
  3. Lege einen Datenpunkt für dein Licht an, z. B. licht.schreibtisch.on (Typ: Boolean).

PowerShell-Skript auf dem Windows-PC

Erstelle z. B. in C:\Scripts\light-on.ps1 folgendes Skript – kommentiert, damit du weißt, was was macht:

# URL zur ioBroker-Simple-API, um das Licht einzuschalten
$ioBrokerUrl = "http://192.168.0.100:8087/set/licht.schreibtisch.on?value=true"

try {
    # HTTP-Request an ioBroker senden
    Invoke-WebRequest -Uri $ioBrokerUrl -UseBasicParsing
    Write-Output "Lichtsignal an ioBroker gesendet."
} catch {
    # Falls etwas schiefgeht, gib den Fehler aus
    Write-Error "Fehler beim Senden des Signals: $_"
}

Hinweis: Wenn du Authentifizierung in ioBroker aktiviert hast, brauchst du einen Auth-Header (Basic Auth oder Token).

Autostart einrichten (mit ExecutionPolicy!)

Windows blockiert standardmäßig das Ausführen von PowerShell-Skripten – außer du erlaubst es explizit. Dazu nutzt du ExecutionPolicy Bypass, und zwar so:

So geht’s mit Verknüpfung im Autostart-Ordner:

  1. Erstelle eine Verknüpfung zu powershell.exe.
  2. Gib bei Ziel folgendes ein:
powershell.exe -ExecutionPolicy Bypass -File "C:\Scripts\light-on.ps1"

  1. Schieb die Verknüpfung in den Autostart-Ordner:

Pfad: C:\Users\<DEINNAME>\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup

Oder über die Aufgabenplanung:

  • Öffne „Aufgabenplanung“ (taskschd.msc)
  • Neue Aufgabe → Trigger: „Beim Start“ oder „Bei Anmeldung“
  • Aktion: powershell.exe
  • Argumente: -ExecutionPolicy Bypass -File "C:\Scripts\light-on.ps1"

So umgehst du elegant die Blockade, ohne dein System unsicher zu machen.


Variante 2: Home Assistant – Licht automatisch einschalten beim PC-Start per REST API

Vorbereitung

  1. Erstelle ein Long-Lived Access Token in deinem Home Assistant-Profil.
  2. Finde die entity_id deiner Lampe (z. B. light.schreibtisch).

PowerShell-Skript

# Dein Home Assistant Token – sicher aufbewahren!
$token = "DEIN_LONG_TOKEN"

# URL zum REST-API-Endpunkt zum Einschalten von Licht
$uri = "http://192.168.0.101:8123/api/services/light/turn_on"

# Header mit Authentifizierung
$headers = @{ Authorization = "Bearer $token" }

# JSON-Daten: Welche Lampe soll eingeschaltet werden?
$body = @{ entity_id = "light.schreibtisch" } | ConvertTo-Json

# Anfrage senden
Invoke-RestMethod -Uri $uri -Headers $headers -Method Post -Body $body -ContentType 'application/json'

Auch dieses Skript kannst du wie oben beschrieben beim Systemstart ausführen lassen.


Bonus: Weitere Ideen zum Licht beim PC-Start

  • Sanftes Aufdimmen: In ioBroker per Script oder in HA per transition-Attribut
  • Präsenz-Erkennung: Kombiniere das mit Bewegungssensor oder Smartphone-Präsenz
  • Mehrere PCs: Unterschiedliche Trigger-Datenpunkte für unterschiedliche Nutzer

Fehlerquellen und Tipps für die Licht-Automatisierung

  • Firewall: Stelle sicher, dass dein ioBroker vom PC aus erreichbar ist
  • ExecutionPolicy: Immer mit -ExecutionPolicy Bypass starten, wenn du Skripte automatisierst
  • Netzwerk: Beide Geräte müssen sich im gleichen Netz befinden (keine VLANs o. ä. dazwischen)
  • API-Schutz: Wenn du von außen zugreifst, nutze Tokens und sichere Ports

Fazit: Licht automatisch einschalten beim PC-Start lohnt sich

„Licht automatisch einschalten beim PC-Start“ ist keine Hexerei, sondern mit ein paar Zeilen PowerShell und etwas Smart-Home-Magie schnell gemacht. Egal ob du ioBroker oder Home Assistant nutzt – dein PC wird zum echten Smart-Home-Mitbewohner.

Genau solche Automatismen machen ein echtes Smart Home aus: Du musst nichts mehr selbst schalten oder daran denken – dein System erledigt es einfach für dich. Wenn dich das Thema interessiert, schau unbedingt in meinen Beitrag Echtes Smart Home: Automatisierung statt Fernbedienung.


Automatisierungen werden nicht nur im Smart Home spannend. Auch Künstliche Intelligenz denkt in Mustern und Abläufen – und kann ähnliche Routinen im Alltag übernehmen. Mehr dazu im großen KI-Überblick

Shelly Gen 3 VS Gen 4 – Lohnt sich das Upgrade?

Einleitung

Shelly hat mit der vierten Generation seiner beliebten Smart-Home-Relais ein großes Upgrade veröffentlicht. Die wichtigsten Neuerungen: Matter-Zertifizierung, Apple HomeKit-Unterstützung und Multi-Protokoll-Konnektivität (WLAN, Bluetooth & Zigbee). Doch wer gewinnt beim Duel Shelly Gen 3 VS Gen 4?

Doch was genau unterscheidet Shelly Gen 3 von Shelly Gen 4? Lohnt sich ein Upgrade, oder kannst du weiterhin auf die bewährten Gen 3-Modelle setzen? In diesem Beitrag findest du alle Unterschiede im Detail!

Shelly Relais

Die wichtigsten Neuerungen von Shelly Gen 4

Multi-Protokoll-Konnektivität: WLAN, Bluetooth & Zigbee

Während Shelly Gen 3 nur WLAN & Bluetooth bot, ist Gen 4 zusätzlich mit Zigbee 3.0 ausgestattet. Dadurch kannst du Shelly Gen 4 nicht nur ins WLAN einbinden, sondern auch in ein Zigbee-Mesh – perfekt für größere Smart-Home-Setups!

💡 Zigbee-Repeater-Funktion: Shelly Gen 4 erweitert dein Zigbee-Netzwerk automatisch, indem er als Mesh-Knoten agiert.


Matter-Zertifizierung – Zukunftssicher für dein Smart Home

Shelly Gen 4 ist offiziell Matter-zertifiziert. Das bedeutet, dass du dein Smart-Home-System herstellerübergreifend steuern kannst – egal ob über Google Home, Amazon Alexa oder Apple HomeKit.

💡 Matter sorgt für bessere Kompatibilität: Du kannst Shelly Gen 4 direkt in Matter-fähige Systeme einbinden, ohne Cloud-Zwang!


Offizielle Apple HomeKit-Unterstützung

Ein großer Schritt nach vorne: Shelly Gen 4 funktioniert jetzt mit Apple HomeKit. Du kannst deine Shelly-Geräte mit der Apple Home-App oder per Siri steuern – ohne Umwege über Drittanbieter-Integrationen.

📌 Shelly Gen 3 funktioniert nicht mit Apple HomeKit, während Gen 4 diese Unterstützung von Haus aus mitbringt.


Verbesserte Energieeffizienz & optimierte Antennen

  • Geringerer Stromverbrauch: Shelly Gen 4 benötigt weniger als 1 W (statt bis zu 1.2 W bei Gen 3).
  • Bessere WLAN- & Bluetooth-Reichweite: Die Antennen wurden für stabilere Verbindungen optimiert.

Technische Detailunterschiede – Shelly Gen 3 vs. Shelly Gen 4

Shelly 1 Gen 3 vs. Shelly 1 Gen 4

Der Shelly 1 Gen 4 bietet Matter, Zigbee und eine bessere Antenne.

FeatureShelly 1 Gen 3Shelly 1 Gen 4
ChipESP-Shelly-C38FESP-Shelly-C68F
Multi-ProtokollWLAN, BluetoothWLAN, Bluetooth, Zigbee
Matter-Zertifiziert❌ Nein✅ Ja
Apple HomeKit❌ Nein✅ Ja
Power Consumption<1.2 W<1 W
KlemmenfarbeSchwarzGrau
Abmessungen (H x B x T)37 x 42 x 16 mm37 x 42 x 16 mm

👉 Jetzt kaufen: Shelly 1 Gen 3 auf Amazon (bezahlter Link)


Shelly 1PM Gen 3 vs. Shelly 1PM Gen 4

📌 Shelly 1PM Gen 4 bietet Matter, Zigbee und eine effizientere Verbrauchsmessung.

FeatureShelly 1PM Gen 3Shelly 1PM Gen 4
ChipESP-Shelly-C38FESP-Shelly-C68F
Multi-ProtokollWLAN, BluetoothWLAN, Bluetooth, Zigbee
Matter-Zertifiziert❌ Nein✅ Ja
Apple HomeKit❌ Nein✅ Ja
Power Consumption<1.2 W<1 W
KlemmenfarbeSchwarzGrau
Abmessungen (H x B x T)37 x 42 x 16 mm37 x 42 x 16 mm

👉 Jetzt kaufen: Shelly 1PM Gen 3 auf Amazon


Shelly 1 Mini Gen 3 vs. Shelly 1 Mini Gen 4

📌 Shelly 1 Mini Gen 4 ist Matter-fähig und bietet eine verbesserte Funkreichweite.

FeatureShelly 1 Mini Gen 3Shelly 1 Mini Gen 4
ChipESP-Shelly-C38FESP-Shelly-C68F
Multi-ProtokollWLAN, BluetoothWLAN, Bluetooth, Zigbee
Matter-Zertifiziert❌ Nein✅ Ja
Apple HomeKit❌ Nein✅ Ja
Power Consumption<1.2 W<1 W
KlemmenfarbeSchwarzGrau
Abmessungen (H x B x T)32 x 35 x 11 mm32 x 35 x 11 mm

👉 Jetzt kaufen: Shelly 1 Mini Gen 3 auf Amazon (bezahlter Link)


Fazit: Shelly Gen 3 oder 4 – Was ist die bessere Wahl?

Hast du bereits Shelly Gen 3?
→ Kein zwingendes Upgrade nötig, es sei denn, du brauchst Zigbee oder Matter.

Willst du Apple HomeKit nutzen?
Dann ist Shelly Gen 4 alternativlos, da Shelly Gen 3 kein HomeKit unterstützt.

Bist du neu im Smart Home?
Greife direkt zu Shelly Gen 4, weil du damit für Matter & Zigbee gerüstet bist.

Brauchst du eine stabile Verbindung mit Zigbee?
→ Shelly Gen 4 agiert als Zigbee-Repeater, während Gen 3 nur WLAN & Bluetooth kann.

Shellys bei Amazon kaufen (bezahlter Link)


Matter benötigt zwingend IPv6. Wie du IPv6 unter Proxmox einrichtest, erfährst du hier.


Was denkst du? Lohnt sich für dich ein Upgrade auf Shelly Gen 4? Schreib es in die Kommentare!

WaterMeV2 – Smarter Feuchtigkeitssensor mit ESP8266 & OLED-Display

Einleitung

Der WaterMeV2 – Feuchtigkeitssensor mit ESP8266 und OLED-Display kann die Bodenfeuchtigkeit in Echtzeit überwachen und die Daten direkt per MQTT an dein Smart Home System senden. Dieses Upgrade unseres vorherigen WaterMe Sensors bietet Verbesserungen in der Hardware und Software, eine optimierte Reset-Funktion sowie ein ansprechendes Gehäuse, das du kostenlos auf meinem Cults3D-Account herunterladen kannst (hier klicken).

WaterMeV2 Gehäuse

Vorteile von WaterMev2

  • Echtzeitüberwachung der Bodenfeuchtigkeit
  • Anbindung an MQTT für Smart Home Integration
  • WiFi-Manager für einfache WLAN-Konfiguration
  • OLED-Display für lokale Anzeige
  • 5-Sekunden-Reset-Taster für eine einfache Neukonfiguration
  • Kostenloses 3D-gedrucktes Gehäuse zum Schutz der Hardware

Benötigte Komponenten

Für dieses Projekt benötigst du folgende Komponenten (mit Affiliate-Links):

Aufbau der Hardware

Der Aufbau ist einfach und erfordert nur wenige Kabelverbindungen:

  1. ESP8266 mit dem OLED-Display verbinden:
    • SDA → D2 (GPIO4)
    • SCL → D1 (GPIO5)
    • VCC → 3.3V
    • GND → GND
  2. Feuchtigkeitssensor anschließen:
    • Signal → A0 (Analog-Pin)
    • VCC → 3.3V
    • GND → GND
  3. Taster für den Reset:
    • Ein Pin an GPIO0 (D3)
    • Der andere Pin an GND

Software – Der Code von WaterMev2

Der folgende Code enthält alle wichtigen Funktionen für den Sensor:

1. Bibliotheken und Variablen

#include <ESP8266WiFi.h>
#include <PubSubClient.h>
#include <WiFiManager.h>
#include <ESP8266WebServer.h>
#include <NTPClient.h>
#include <WiFiUdp.h>
#include <SSD1306Wire.h>
#include <LittleFS.h>
#include <ArduinoJson.h>

#define SENSOR_PIN A0
#define RESET_PIN 0
#define RESET_TIME 5000

Hier laden wir alle wichtigen Bibliotheken und definieren die Pins für den Sensor und den Reset-Taster.

2. Reset-Funktion mit 5-Sekunden-Haltezeit

void checkResetButton() {
    if (digitalRead(RESET_PIN) == LOW) {
        if (!buttonPressed) {
            buttonPressStart = millis();
            buttonPressed = true;
        }
        if (millis() - buttonPressStart >= RESET_TIME) {
            Serial.println("Reset-Taster 5 Sekunden gehalten! Setze WiFiManager-Einstellungen zurück...");
            WiFiManager wifiManager;
            wifiManager.resetSettings();
            delay(1000);
            WiFi.disconnect(true);
            delay(1000);
            ESP.restart();
        }
    } else {
        buttonPressed = false;
    }
}

Diese Funktion sorgt dafür, dass der WiFiManager nur zurückgesetzt wird, wenn der Taster mindestens 5 Sekunden gedrückt wird. Dadurch wird ein versehentliches Zurücksetzen verhindert.

3. Verbindung zum WLAN mit WiFiManager

void setup_wifi() {
    WiFiManager wifiManager;
    wifiManager.setTimeout(180);
    if (!wifiManager.autoConnect("WaterMev2")) {
        ESP.restart();
    }
}

Der WiFiManager ermöglicht eine einfache Einrichtung des WLANs über einen Access Point.

4. Sensor-Daten auslesen und per MQTT senden

void updateSensorData() {
    int sensorValue = analogRead(SENSOR_PIN);
    float moisture = map(sensorValue, 1024, 0, 0, 100);
    client.publish("WaterMev2/feuchtigkeit", String(moisture).c_str());
}

Hier wird die Feuchtigkeit gemessen und an den MQTT-Server gesendet.

5. Loop-Funktion mit Reset-Check

void loop() {
    server.handleClient();
    checkResetButton();
    updateSensorData();
    delay(30000);
}

Die loop()-Funktion überprüft den Taster und aktualisiert die Sensordaten alle 30 Sekunden.

6. Vollständiger Code

#include <ESP8266WiFi.h>
#include <PubSubClient.h>
#include <WiFiManager.h>  // WiFiManager Library für AP-Konfiguration
#include <ESP8266WebServer.h>
#include <time.h>        // Für configTime()
#include <SSD1306Wire.h>        // legacy: #include "SSD1306.h"
#include <LittleFS.h>
#include <ArduinoJson.h>
 
#define SENSOR_PIN A0  // Sensor an A0 angeschlossen
#define RESET_PIN 0  // GPIO0 (D3 beim ESP8266)
#define RESET_TIME 5000  // Zeit in Millisekunden (5 Sekunden)

unsigned long buttonPressStart = 0;
bool buttonPressed = false;

unsigned long previousMillis = 0;  // Speichert den Zeitpunkt des letzten MQTT-Sendevorgangs
const long interval = 30000;       // Zeitintervall für das Senden der MQTT-Daten
 
bool resetActive = false; // verhindert, dass andere Funktionen das Display während Reset stören

char mqtt_server[40] = "";
char mqtt_port[6] = "";
char mqtt_user[40] = "";
char mqtt_pass[40] = "";
char mqtt_topic_prefix[40] = "WaterMe"; // Benutzerdefiniertes Präfix
char ntp_server[40] = "pool.ntp.org";  // Standard NTP Server
 
WiFiClient espClient;
PubSubClient client(espClient);
ESP8266WebServer server(80);
SSD1306Wire display(0x3c, SDA, SCL);
 
void saveConfig() {
    Serial.println("Speichere Konfiguration in LittleFS...");
    File configFile = LittleFS.open("/config.json", "w");
    if (!configFile) {
        Serial.println("Fehler beim Speichern der Konfiguration!");
        return;
    }

    DynamicJsonDocument doc(128);
    doc["mqtt_server"] = mqtt_server;
    doc["mqtt_port"] = mqtt_port;
    doc["mqtt_user"] = mqtt_user;
    doc["mqtt_pass"] = mqtt_pass;
    doc["mqtt_topic_prefix"] = mqtt_topic_prefix;
    doc["ntp_server"] = ntp_server;

    serializeJson(doc, configFile);
    configFile.close();
    Serial.println("Konfiguration gespeichert.");
}

void loadConfig() {
    Serial.println("Lade Konfiguration aus LittleFS...");

    File configFile = LittleFS.open("/config.json", "r");
    if (!configFile) {
        Serial.println("Keine gespeicherte Konfiguration gefunden.");
        return;
    }

    DynamicJsonDocument doc(128);
    DeserializationError error = deserializeJson(doc, configFile);
    if (error) {
        Serial.println("Fehler beim Lesen der Konfigurationsdatei!");
        return;
    }

    strlcpy(mqtt_server, doc["mqtt_server"] | "", sizeof(mqtt_server));
    strlcpy(mqtt_port, doc["mqtt_port"] | "", sizeof(mqtt_port));
    strlcpy(mqtt_user, doc["mqtt_user"] | "", sizeof(mqtt_user));
    strlcpy(mqtt_pass, doc["mqtt_pass"] | "", sizeof(mqtt_pass));
    strlcpy(mqtt_topic_prefix, doc["mqtt_topic_prefix"] | "", sizeof(mqtt_topic_prefix));
    strlcpy(ntp_server, doc["ntp_server"] | "", sizeof(ntp_server));

    Serial.println("Konfiguration geladen.");
}
 
void setup_wifi() {
    Serial.println("Starte WiFiManager...");

    uint8_t mac[6];
    WiFi.macAddress(mac);

    char hostname[32];
    snprintf(hostname, sizeof(hostname), "WaterMe_%02X%02X%02X", mac[3], mac[4], mac[5]);

    WiFiManager wifiManager;
    wifiManager.setTimeout(180); // 3 Minuten warten statt unendlich

    //wifiManager.resetSettings();

    WiFiManagerParameter custom_mqtt_server("server", "MQTT Server", mqtt_server, 40);
    WiFiManagerParameter custom_mqtt_port("port", "MQTT Port", mqtt_port, 6);
    WiFiManagerParameter custom_mqtt_topic("topic", "MQTT Topic Prefix", mqtt_topic_prefix, 40);
    WiFiManagerParameter custom_ntp_server("ntp_server", "NTP Server", ntp_server, 40);
 
    wifiManager.addParameter(&custom_mqtt_server);
    wifiManager.addParameter(&custom_mqtt_port);
    wifiManager.addParameter(&custom_mqtt_topic);
    wifiManager.addParameter(&custom_ntp_server);

    if (!wifiManager.autoConnect(hostname)) {
        Serial.println("Fehlgeschlagen! Neustart in 5 Sekunden...");
        delay(5000);
        ESP.restart();
    }

    WiFi.hostname(hostname);

    strncpy(mqtt_server, custom_mqtt_server.getValue(), sizeof(mqtt_server) - 1);
    strncpy(mqtt_port, custom_mqtt_port.getValue(), sizeof(mqtt_port) - 1);
    strncpy(mqtt_topic_prefix, custom_mqtt_topic.getValue(), sizeof(mqtt_topic_prefix) - 1);
    strncpy(ntp_server, custom_ntp_server.getValue(), sizeof(ntp_server) - 1);
    saveConfig();
    Serial.println("WLAN verbunden!");
    Serial.print("IP-Adresse: ");
    Serial.println(WiFi.localIP());
}
 
void handleRoot() {
    Serial.println("Web-Oberfläche aufgerufen");
    String htmlContent = "<!DOCTYPE html><html><head><meta charset='UTF-8'><title>WaterMe Einstellungen</title>"
                         "<style>"
                         "body { font-family: Arial, sans-serif; margin: 40px; background-color: #333; color: #fff; }"
                         "h1 { color: #fff; }"
                         "form { background-color: #222; padding: 20px; border-radius: 8px; box-shadow: 0 0 10px 0 rgba(0,0,0,0.5); }"
                         "label { display: block; margin-top: 20px; margin-bottom: 5px; color: #ccc; }"
                         "input[type='text'], input[type='submit'] { width: 100%; padding: 8px; margin-top: 5px; border: 1px solid #555; border-radius: 4px; }"
                         "input[type='text'] { background-color: #555; color: #ddd; }"
                         "input[type='submit'] { background-color: #008CBA; color: white; cursor: pointer; }"
                         "input[type='submit']:hover { background-color: #005f7a; }"
                         "</style>"
                         "</head><body>"
                         "<h1>WaterMe Einstellungen</h1>"
                         "<form action='/save' method='POST'>"
                         "<label for='server'>MQTT Server:</label> <input type='text' id='server' name='server' value='" + String(mqtt_server) + "'><br>"
                         "<label for='port'>MQTT Port:</label> <input type='text' id='port' name='port' value='" + String(mqtt_port) + "'><br>"
                         "<label for='user'>MQTT Benutzer:</label> <input type='text' id='user' name='user' value='" + String(mqtt_user) + "'><br>"
                         "<label for='pass'>MQTT Passwort:</label> <input type='password' id='pass' name='pass' value='" + String(mqtt_pass) + "'><br>"
                         "<label for='topic'>MQTT Topic Prefix:</label> <input type='text' id='topic' name='topic' value='" + String(mqtt_topic_prefix) + "'><br>"
                         "<label for='ntp_server'>NTP Server:</label> <input type='text' id='ntp_server' name='ntp_server' value='" + String(ntp_server) + "'><br>"
                         "<input type='submit' value='Speichern'>"
                         "</form></body></html>";
    server.send(200, "text/html", htmlContent);
}
 
void handleSave() {
    Serial.println("Speichere neue Einstellungen...");
    if (server.hasArg("server")) strncpy(mqtt_server, server.arg("server").c_str(), sizeof(mqtt_server) - 1);
    if (server.hasArg("port")) strncpy(mqtt_port, server.arg("port").c_str(), sizeof(mqtt_port) - 1);
    if (server.hasArg("user")) strlcpy(mqtt_user, server.arg("user").c_str(), sizeof(mqtt_user));
    if (server.hasArg("pass")) strlcpy(mqtt_pass, server.arg("pass").c_str(), sizeof(mqtt_pass));
    if (server.hasArg("topic")) strncpy(mqtt_topic_prefix, server.arg("topic").c_str(), sizeof(mqtt_topic_prefix) - 1);
    if (server.hasArg("ntp_server")) strncpy(ntp_server, server.arg("ntp_server").c_str(), sizeof(ntp_server) - 1);
    saveConfig();
    server.send(200, "text/html", "<html><body><h1>Gespeichert! Neustart...</h1></body></html>");
    delay(3000);
    ESP.restart();
}
 
void checkResetButton() {
    static int lastSecondsLeft = -1;

    if (digitalRead(RESET_PIN) == LOW) {
        if (!buttonPressed) {
            buttonPressStart = millis();
            buttonPressed = true;
            resetActive = true;
            lastSecondsLeft = -1;
        }

        unsigned long heldTime = millis() - buttonPressStart;
        int secondsLeft = (RESET_TIME - heldTime) / 1000;

        if (secondsLeft != lastSecondsLeft && heldTime < RESET_TIME) {
            lastSecondsLeft = secondsLeft;

            display.clear();
            display.setFont(ArialMT_Plain_16);
            display.setTextAlignment(TEXT_ALIGN_CENTER_BOTH);
            display.drawString(display.getWidth() / 2, 20, "Reset in");
            display.setFont(ArialMT_Plain_24);
            display.drawString(display.getWidth() / 2, 44, String(secondsLeft));
            display.display();
        }

        if (heldTime >= RESET_TIME) {
            display.clear();
            display.setFont(ArialMT_Plain_16);
            display.setTextAlignment(TEXT_ALIGN_CENTER_BOTH);
            display.drawString(display.getWidth() / 2, 28, "RESET!");
            display.display();
            delay(1000);

            Serial.println("Reset-Taster 5 Sekunden gehalten! Setze WiFiManager-Einstellungen zurück...");
            WiFiManager wifiManager;
            wifiManager.resetSettings();
            delay(500);
            WiFi.disconnect(true);
            delay(500);
            ESP.restart();
        }

    } else {
        if (buttonPressed) {
            buttonPressed = false;
            resetActive = false;

            // <<< Hier neu ergänzen:
            previousMillis = millis() - interval;  
            // <<< Dadurch wird beim nächsten loop() direkt aktualisiert!
        }
    }
}

void setup() {
    pinMode(RESET_PIN, INPUT_PULLUP);
    Serial.begin(115200);
    Serial.println("WaterMe startet...");

    if (!LittleFS.begin()) {
        Serial.println("LittleFS-Fehler");
    } else {
        loadConfig();
    }

    // *** Display direkt am Anfang initialisieren und "AP" anzeigen ***
    display.init();
    display.flipScreenVertically();
    display.clear();
    display.setFont(ArialMT_Plain_24);
    display.setTextAlignment(TEXT_ALIGN_CENTER_BOTH);
    display.drawString(display.getWidth() / 2, 28, "AP");
    display.display();
    delay(500);  // Kurze Verzögerung (optional), damit man es sicher sieht

    setup_wifi();
 
    if (strlen(mqtt_server) > 0 && strlen(mqtt_port) > 0) {
        client.setServer(mqtt_server, atoi(mqtt_port));
        Serial.println("MQTT-Konfiguration geladen.");
    } else {
        Serial.println("MQTT-Daten fehlen! Webinterface zur Konfiguration nutzen.");
    }
 
    server.on("/", handleRoot);
    server.on("/save", HTTP_POST, handleSave);
    server.begin();
    Serial.println("Webserver gestartet!");
    Serial.print("Rufe auf: http://");
    Serial.println(WiFi.localIP());

    // Sofortiges erstes Update erzwingen
    previousMillis = millis() - interval;
    handleMQTTAndDisplayUpdate(millis());

    // Sommerzeitregel für Mitteleuropa: letzte So im März + Okt
    configTime("CET-1CEST,M3.5.0/2,M10.5.0/3", ntp_server);

    Serial.print("Warte auf Zeit...");
    time_t now = time(nullptr);
    while (now < 100000) {
        delay(100);
        Serial.print(".");
        now = time(nullptr);
    }
    Serial.println(" Zeit empfangen.");
}
 
void reconnect() {
    static unsigned long lastReconnectAttempt = 0;
    uint8_t mac[6];
    WiFi.macAddress(mac);
    char clientId[32];
    snprintf(clientId, sizeof(clientId), "WaterMe_%02X%02X%02X", mac[3], mac[4], mac[5]);

    if (!client.connected() && millis() - lastReconnectAttempt > 5000) {
        lastReconnectAttempt = millis();
        Serial.print("Verbindungsversuch mit MQTT-Broker als ");
        Serial.println(clientId);

        if (client.connect(clientId, mqtt_user, mqtt_pass)) {
            Serial.println("MQTT-Verbindung hergestellt!");
        } else {
            Serial.print("MQTT-Verbindung fehlgeschlagen, Fehlercode: ");
            Serial.print(client.state());
            Serial.println(" - Neuer Versuch in 5 Sekunden...");
        }
    }
}

void loop() {
    checkResetButton();

    if (resetActive) {
        return;
    }

    server.handleClient();

    if (!client.connected()) {
        reconnect();
    }
    client.loop();

    handleMQTTAndDisplayUpdate(millis());
}

void handleMQTTAndDisplayUpdate(unsigned long currentMillis) {
    if (resetActive) return;

    if (currentMillis - previousMillis >= interval) {
        previousMillis = currentMillis;
        if (!client.connected()) {
            reconnect();
        }
        updateSensorData();
    }
}

void updateSensorData() {
    if (resetActive) return;
    int sensorValue = analogRead(SENSOR_PIN);
    float moisture = map(sensorValue, 1024, 0, 0, 100);

    time_t now = time(nullptr);
    struct tm *timeinfo = localtime(&now);
    char buffer[20];
    strftime(buffer, sizeof(buffer), "%H:%M:%S", timeinfo);
    String timestamp = String(buffer);

    updateDisplay(moisture, timestamp);
    sendMQTTData(moisture, timestamp);
}

void updateDisplay(float moisture, String timestamp) {
    Serial.println("Aktualisiere Display...");
    Serial.print("Feuchtigkeit: "); Serial.println(moisture);
    Serial.print("Timestamp: "); Serial.println(timestamp);

    String text = String(moisture, 0) + "%";
    display.clear();
    display.setFont(ArialMT_Plain_24);
    display.setTextAlignment(TEXT_ALIGN_CENTER_BOTH);
    display.drawString(display.getWidth() / 2, 28, text);
    display.drawLine(0, 42, 128, 42);
    display.setFont(ArialMT_Plain_16);
    display.drawString(display.getWidth() / 2, 54, timestamp);
    display.display();
}

void sendMQTTData(float moisture, const String& timestamp) {
    char topic[50], message[50];

    snprintf(topic, sizeof(topic), "%s/feuchtigkeit", mqtt_topic_prefix);
    snprintf(message, sizeof(message), "%.2f", moisture);
    client.publish(topic, message);

    snprintf(topic, sizeof(topic), "%s/timestamp", mqtt_topic_prefix);
    client.publish(topic, timestamp.c_str());
}

Gehäuse zum 3D-Drucken

Damit die Elektronik geschützt ist, kannst du dir ein passendes Gehäuse für WaterMev2 kostenlos auf meinem Cults3D-Account herunterladen: Hier geht’s zum Gehäuse.

WaterMeV2 Gehäuse mit ESP8266 und OLED Display

Fazit

Mit dem WaterMeV2 – Feuchtigkeitssensor mit ESP8266 und OLED-Display kannst du ganz einfach Werte überwachen und in dein Smart Home System integrieren. Dank der MQTT-Integration kannst du die Daten bequem weiterverarbeiten und mit dem OLED-Display behältst du stets den Überblick. Baue dein eigenes WaterMeV2 jetzt nach und lade dir das passende Gehäuse herunter!


Hast du Fragen oder Verbesserungsvorschläge? Schreib sie in die Kommentare!