Kommunikation - ESP8266 mit openHAB

Einrichtung der openHAB Umgebung und allgemeine Konfigurationsthemen.

Moderatoren: seppy, udo1toni

Bachforelle
Beiträge: 8
Registriert: 21. Jan 2026 13:24
Answers: 0

Kommunikation - ESP8266 mit openHAB

Beitrag von Bachforelle »

Hallo liebes Forum!

Mein Name ist Till, 31 Jahre, komme aus Schwäbisch Hall und bin begeisterter openHAB-Einsteiger :)
Ich bin komplett neu hier im Forum und auch komplett neu in der Hausautomation/openHAB, habe aber einen elektrotechnischen Hintergrund.

Ich habe einen Raspberry Pi 4 (4GB) mit openHABIAN am Laufen und habe es bereits geschafft, zwei "Shelly 1 mini Gen3" Bausteine über MQTT (via Mosquitto) einzubinden und an- sowie auszuschalten -> Da kam schon mal Freude auf :D

Mein nächster Meilenstein wäre folgender:
Über einen ESP8266 (mit ESPEasy) würde ich gerne einen digitalen Eingang einlesen und als Status an openHAB senden.
Da mir leider noch die Ahnung/Erfahrung fehlt (ich komme aus der µC-Ecke), weiß ich nicht, wie ich das angehen könnte :?
Kann ich den Zustand des Pins als boolsche Variable oder sonstwie speichern?

Der Hintergrund ist der: An dem besagten Pin soll später ein Reed-Kontakt eines Garagentors angeschlossen werden, welcher den Pin
auf Masse zieht (in ESPEasy ist der Pullup aktiviert). So soll erkannt werden, ob das Tor ganz geöffnet wurde.

Was bereits funktioniert:
Über ESP-Easy habe ich MQTT konfiguriert (IP und Port vom Raspberry), den ESP8266 als "ESP_Easy" benannt, unter Task Settings den Namen "garagelinks" vergeben und unten bei Values den Wert "state" angelegt. Dazu dann noch einen Schalter auf Eingang D6 konfiguriert.
Über das Programm MQTT.fx kann ich auch den "Kanal" oder das Topic (?) subscriben und sehe sehr schön die beiden Schaltzustände "1" und "0" wenn ich den Pin auf Masse brücke.

Das Topic lautet dabei dann (in MQTT.fx) so: ESP_Easy/garagelinks/state

Bitte nehmt es mir nicht übel, wenn ich da noch nicht so recht durchblicke .
Aber ich wäre sehr dankbar, wenn mir jemand erklären könnte, wie ich das - am einfachsten - bewerkstellige.

Ich danke Euch allen schon mal im Voraus!
Beste Grüße

Benutzeravatar
lenschith
Beiträge: 336
Registriert: 11. Dez 2020 22:36
Answers: 1

Re: Kommunikation - ESP8266 mit openHAB

Beitrag von lenschith »

wenn ich dich richtig verstehe funktioniert ja MQTT generell schon mal und wenn du im MQTT Explorer die 1 und 0 schon siehst musst du nur noch ein MQTT Thing mit entsprechenden Channel und Item anlegen.

Code: Alles auswählen

channels:
  - id: contact
    type: contact
    label: "Status Kontakt"
    config:
      stateTopic: ESP_Easy/garagelinks/state/
      open: "1"    # Wenn eine "1" empfangen wird -> OPEN
      closed: "0"  # Wenn eine "0" empfangen wird -> CLOSED
so in der Art denke ich.

Gruß Lenschi
openHAB5.1.2 in einem Docker Container auf RPI5-8GB, AVM: Fritz!Box 7590 - SMART301/302 - Comet, SMART200/210, SMART440, Alexa, Shelly, Tasmota, ESP Easy, WLED

Benutzeravatar
udo1toni
Beiträge: 15622
Registriert: 11. Apr 2018 18:05
Answers: 253
Wohnort: Darmstadt

Re: Kommunikation - ESP8266 mit openHAB

Beitrag von udo1toni »

Da ist am Ende ein Slash zu viel (das stateTopic muss ESP_Easy/garagelinks/state lauten)
openHAB5.1.2 stable in einem Debian-Container (trixie, OpenJDK 21 headless runtime - LXC, 4 Kerne, 3 GByte RAM)
Hostsystem Proxmox VE 9.1.5 - AMD Ryzen 5 3600 6 Kerne, 12 Threads - 64 GByte RAM - ZFS Pools: Raid Z1, 3 x 20 TB HDD -> 40 TByte und Raid Z0-Mirrored 4 x 1 TByte NVMe -> 2 TByte

Bachforelle
Beiträge: 8
Registriert: 21. Jan 2026 13:24
Answers: 0

Re: Kommunikation - ESP8266 mit openHAB

Beitrag von Bachforelle »

Guten Abend zusammen und allerbesten Dank für Eure Rückmeldungen!

Habe es soeben nochmals versucht, jedoch ohne Erfolg.

Meine Vorgehensweise:
1.) Zunächst unter Things einen MQTT-Broker für den ESP erstellen.
2.) Danach ein Generic MQTT Thing erstellen.
Hier als Bridge den soeben erstellten MQTT-Broker wählen.
3.) In diesem angelegten Thing den Reiter "Channels" anwählen.
Über "Add channel" einen Kanal hinzufügen.

4.) Im Channel unter MQTT State Topic "ESP_Easy/garagelinks/state" eintragen.
-> Speichern.

5.) Jetzt, da es an das Item geht, hört es bei mir auf.

Wie muss ich hier weitermachen?

Schönen Abend und 1000 Dank schon mal!

Beste Grüße

Benutzeravatar
lenschith
Beiträge: 336
Registriert: 11. Dez 2020 22:36
Answers: 1

Re: Kommunikation - ESP8266 mit openHAB

Beitrag von lenschith »

!! ich dachte du hast schon erfolgreich MQTT am laufen und verwendest das schon bei deine Shelly Geräte??
Man muss nur einen MQTT Broker (mosquitto) installieren, dort senden alle MQTT Geräte hin und openHAB holt sich hier die topics ab und können verwendet werden

So gehst du vor:
Channel-Verknüpfung: Bleib in deinem Thing im Reiter Channels. Unter dem Channel, den du gerade erstellt hast (mit dem Topic ESP_Easy/garagelinks/state), findest du den Button "Add Link to Item...".

Item erstellen:
  • Wähle im folgenden Menü "Create a new Item".
  • Name: Ein eindeutiger Bezeichner ohne Leerzeichen, z. B. Garagentor_Links_Zustand.
  • Type: Je nachdem, was der Channel sendet. Wenn es nur 0/1 oder OPEN/CLOSED ist, nimm Contact - so hast du das vorher im Channel festgelegt.
  • Profile: Lass dies auf "Default".
  • Abschluss: Klicke auf "Link".
Warum das Ganze? Das Thing und der Channel sind nur die "Technik". Das Item ist das, was du später in deiner Visualisierung (Main UI / Sitemap) siehst und in Regeln (Rules) verwendest.

Ein paar hilfreiche Links für die Vertiefung:
https://www.openhab.org/addons/bindings/mqtt/
https://www.openhab.org/docs/tutorial/t ... imple.html
https://www.debacher.de/wiki/OpenHAB-In ... Grundlagen

Gruß Lenschi
openHAB5.1.2 in einem Docker Container auf RPI5-8GB, AVM: Fritz!Box 7590 - SMART301/302 - Comet, SMART200/210, SMART440, Alexa, Shelly, Tasmota, ESP Easy, WLED

Bachforelle
Beiträge: 8
Registriert: 21. Jan 2026 13:24
Answers: 0

Re: Kommunikation - ESP8266 mit openHAB

Beitrag von Bachforelle »

Guten Morgen Lenschi,

vielen lieben Dank für Deine Hilfe!
Ja, die Shellys habe ich mit Hilfe eines halbwegs brauchbaren Tutorials hinbekommen -> alles verstanden habe ich hier noch nicht.
(Mehr oder weniger habe ich das nur stupide nachgemacht und mich gefreut, dass sie funktionieren).

Ich habe es nun genau so gemacht, wie von Dir beschrieben.
Aber wie kann ich nun in openHAB sehen, dass der Zustand von 0->1 oder 1->0 wechselt?

Wenn ich in das erstellte Item reinklicke, sehe ich oben nur "NULL" -> s. angehängtes Bild.

Müsste ich da nicht den aktuellen Wert sehen?

Beste Grüße!
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.

Benutzeravatar
lenschith
Beiträge: 336
Registriert: 11. Dez 2020 22:36
Answers: 1

Re: Kommunikation - ESP8266 mit openHAB

Beitrag von lenschith »

was siehst du im MQTT.fx kommen im Mosquitto Daten an?
was siehst du denn im LogViewer am openHAB wenn du den ESP schaltest? kommt da was an.
Den findest du unter den Entwickler Tool -> LogViewer
openHAB5.1.2 in einem Docker Container auf RPI5-8GB, AVM: Fritz!Box 7590 - SMART301/302 - Comet, SMART200/210, SMART440, Alexa, Shelly, Tasmota, ESP Easy, WLED

Bachforelle
Beiträge: 8
Registriert: 21. Jan 2026 13:24
Answers: 0

Re: Kommunikation - ESP8266 mit openHAB

Beitrag von Bachforelle »

Im LogViewer sehe ich Folgendes: Also die 4 gelben Einträge, pro Schalten ein Eintrag.
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.

Bachforelle
Beiträge: 8
Registriert: 21. Jan 2026 13:24
Answers: 0

Re: Kommunikation - ESP8266 mit openHAB

Beitrag von Bachforelle »

Hier ein besserer Auszug des Eintrags: Kommt openHAB hier mit dem Datentyp nicht zurecht?
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.

Benutzeravatar
udo1toni
Beiträge: 15622
Registriert: 11. Apr 2018 18:05
Answers: 253
Wohnort: Darmstadt

Re: Kommunikation - ESP8266 mit openHAB

Beitrag von udo1toni »

Ganz langsam und der Reihe nach...

Schritt 1: mqtt Broker installieren (z.B. mosquitto)
Schritt 2: beteiligte Hardware mit dem Broker verbinden - den ESP
Schritt 3: mit einem mqtt Sniffer (mqtt.fx, mqtt Explorer o.ä.) prüfen, ob Nachrichten im Broker ankommen.

Ich gehe davon aus, dass diese drei Schritte bereits erfolgt sind (jedenfalls habe ich Dein erstes Posting so gelesen)

Schritt 4: openHAB mit dem mqtt Broker verbinden, so wie zuvor schon ESP und mqtt.fx. Im Fall von openHAB läuft das über das mqtt Binding.
Schritt 4a: mqtt Binding installieren :)
Schritt 4b: mqtt Bridge anlegen (das ist die Verbindung zum Broker) - Die Bridge muss online angezeigt werden, wenn der Broker gestoppt wird, muss die Bridge offline anzeigen.
Schritt 5: Generic mqtt Thing anlegen und dabei darauf achten, dass dieses Thing über die Bridge aus Schritt 4b kommunizieren kann.
Schritt 5a: im neuen Thing einen Channel anlegen. Da es hier um einen Schaltkontakt geht, ist der korrekte Channel type contact. Das stateTopic korrekt setzen (wie in mqtt.fx bereits ermittelt) und onValue und offValue definieren. Diese beiden Parameter müssen die Strings für die beiden Zustände enthalten. Liefert das Topic eine Payload von 0, wenn der Kontakt offen ist, muss für den offValue auch eine 0 eingetragen werden.
Liefert das Topic eine Payload von 1, wenn der Kontakt geschlossen ist, muss für den onValue auch eine 1 eingetragen werden.
Schritt 5b: Falls es hier Probleme gibt, kannst Du auch erst mal einen string Channel anlegen und mit einem String Item verlinken. String kann mit jedem Inhalt umgehen, so dass das Statusupdate des Channels auf jeden Fall sichtbar sein muss.
Schritt 6: Verlinke den Channel mit einem Contact Item.
Schritt 7: Öffne das openHAB Log aus dem Entwicklerbereich der Main UI.
Schritt 8: Schließe den Kontakt, so dass mqtt.fx die 1 meldet. Der Status des Contact Items muss daraufhin auf CLOSED wechseln, was im Log zu sehen sein muss.

Bitte NICHT die Option isCommand anhaken. Diese hat hier nichts zu suchen.
openHAB5.1.2 stable in einem Debian-Container (trixie, OpenJDK 21 headless runtime - LXC, 4 Kerne, 3 GByte RAM)
Hostsystem Proxmox VE 9.1.5 - AMD Ryzen 5 3600 6 Kerne, 12 Threads - 64 GByte RAM - ZFS Pools: Raid Z1, 3 x 20 TB HDD -> 40 TByte und Raid Z0-Mirrored 4 x 1 TByte NVMe -> 2 TByte

Antworten