[gelöst] Daten von ESP8266 NodeMCU in Openhab
-
- Beiträge: 206
- Registriert: 5. Mär 2019 21:13
- Wohnort: Ingolstadt
[gelöst] Daten von ESP8266 NodeMCU in Openhab
Servus,
ich versuche verzweifelt die Temperaturdaten von meiner ESP8266 auf meiner Sitemap anzeigen zu lassen.
was geht:
- die Daten werden richtig ausgelesen
- sie laufen über Mosquitto auch zum Raspberry und sind dort via Konsolenbefehl abrufbar
- über Paper Ui habe ich sowohl das MQTT Binding als auch die REGEX Transformation installiert
- in der Openhab Console kommt auch was an: 08:21:31.729 [INFO ] [smarthome.event.ChannelTriggeredEvent] - mqtt:broker:9497e89b:Out triggered 23.00
- aber mein item : Number ESP_Temperature "ESP8266 Temperatur [%.1f°]" { mqtt="<[broker:/home/data/out:state:REGEX((.*?))]"} zeigt nur -°
wenn ich "broker" durch 9497e89b ersetze ändert sich nichts.
Kann mir jemand helfen ?
Fehlen noch Info´s ?
Vielen Dank schonmal
Jojo
ich versuche verzweifelt die Temperaturdaten von meiner ESP8266 auf meiner Sitemap anzeigen zu lassen.
was geht:
- die Daten werden richtig ausgelesen
- sie laufen über Mosquitto auch zum Raspberry und sind dort via Konsolenbefehl abrufbar
- über Paper Ui habe ich sowohl das MQTT Binding als auch die REGEX Transformation installiert
- in der Openhab Console kommt auch was an: 08:21:31.729 [INFO ] [smarthome.event.ChannelTriggeredEvent] - mqtt:broker:9497e89b:Out triggered 23.00
- aber mein item : Number ESP_Temperature "ESP8266 Temperatur [%.1f°]" { mqtt="<[broker:/home/data/out:state:REGEX((.*?))]"} zeigt nur -°
wenn ich "broker" durch 9497e89b ersetze ändert sich nichts.
Kann mir jemand helfen ?
Fehlen noch Info´s ?
Vielen Dank schonmal
Jojo
--
Gruß
Jojo
Gruß
Jojo
- udo1toni
- Beiträge: 14032
- Registriert: 11. Apr 2018 18:05
- Wohnort: Darmstadt
Re: Daten von ESP8266 NodeMCU in Openhab
Es gibt nicht "das" MQTT Binding es gibt MQTT2 und MQTT1. (abgesehen von ein paar anderen, die noch drum herum dümpeln) Vermutlich hast Du MQTT2 installiert. Das Item versuchst Du aber an MQTT1 zu koppeln.
Das passende Item zum MQTT2 Channel sähe so aus:
Das REGEX (wenn Du denn eines brauchst) gehört dann in das Thing 9497e89b in den Channel Out.
Das passende Item zum MQTT2 Channel sähe so aus:
Code: Alles auswählen
Number ESP_Temperature "ESP8266 Temperatur [%.1f°]" { channel="mqtt:broker:9497e89b:Out" }
openHAB4.1.2 stable in einem Debian-Container (bookworm) (Proxmox 8.2.2, LXC), mit openHABian eingerichtet
-
- Beiträge: 206
- Registriert: 5. Mär 2019 21:13
- Wohnort: Ingolstadt
Re: Daten von ESP8266 NodeMCU in Openhab
Servus udo1toni,
Danke für die Hilfe. Ich kann das erst später oder morgen probieren. Ich lasse dich wissen was rauskam!
Gruß
Jojo
Danke für die Hilfe. Ich kann das erst später oder morgen probieren. Ich lasse dich wissen was rauskam!
Gruß
Jojo
--
Gruß
Jojo
Gruß
Jojo
- udo1toni
- Beiträge: 14032
- Registriert: 11. Apr 2018 18:05
- Wohnort: Darmstadt
Re: Daten von ESP8266 NodeMCU in Openhab
openHAB4.1.2 stable in einem Debian-Container (bookworm) (Proxmox 8.2.2, LXC), mit openHABian eingerichtet
-
- Beiträge: 206
- Registriert: 5. Mär 2019 21:13
- Wohnort: Ingolstadt
Re: Daten von ESP8266 NodeMCU in Openhab
moin,
geht leider nicht.
ich habe aber auch kein Thing ...
Wie musste das Ding denn aussehen ? ( ich finde gerade nichts passendes )
edit: ich hätte gedacht ich brauche REGEX um aus dem Topic die Temperatur zu extrahieren ?
Dankbare Grüße
Jojo
geht leider nicht.
ich habe aber auch kein Thing ...
Wie musste das Ding denn aussehen ? ( ich finde gerade nichts passendes )
edit: ich hätte gedacht ich brauche REGEX um aus dem Topic die Temperatur zu extrahieren ?
Dankbare Grüße
Jojo
--
Gruß
Jojo
Gruß
Jojo
- udo1toni
- Beiträge: 14032
- Registriert: 11. Apr 2018 18:05
- Wohnort: Darmstadt
Re: Daten von ESP8266 NodeMCU in Openhab
Du hast das MQTT Binding über Paper UI installiert. Welches MQTT Binding? Version 1 oder Version 2?
Ich gehe davon aus, dass Du das MQTT2 Binding eingerichtet hast. Warum? Diese Zeile:
gibt es nur bei v2 Bindings.
Mindestens hast Du also eine Bridge angelegt (der Name der Bridge wäre 9497e89b).
Die Bridge ist ebenfalls ein Thing.
Der Normalfall wäre allerdings, unterhalb der Bridge (mindestens) ein Thing anzulegen und dort den/die Channel zu definieren. In der Channel Definition kann auch eine Transformation angegeben werden, da Du aber gar nichts transformierst, ist das auch nicht nötig.
In Paper UI kann man nachschauen, wie die exakte Adresse des Channels lautet. Diese Adresse gibt man dann als Channel in der Item Definition an, um den Channel und das Item zu verlinken.
Ich gehe davon aus, dass Du das MQTT2 Binding eingerichtet hast. Warum? Diese Zeile:
Code: Alles auswählen
08:21:31.729 [INFO ] [smarthome.event.ChannelTriggeredEvent] - mqtt:broker:9497e89b:Out triggered 23.00
Mindestens hast Du also eine Bridge angelegt (der Name der Bridge wäre 9497e89b).
Die Bridge ist ebenfalls ein Thing.
Der Normalfall wäre allerdings, unterhalb der Bridge (mindestens) ein Thing anzulegen und dort den/die Channel zu definieren. In der Channel Definition kann auch eine Transformation angegeben werden, da Du aber gar nichts transformierst, ist das auch nicht nötig.
In Paper UI kann man nachschauen, wie die exakte Adresse des Channels lautet. Diese Adresse gibt man dann als Channel in der Item Definition an, um den Channel und das Item zu verlinken.
openHAB4.1.2 stable in einem Debian-Container (bookworm) (Proxmox 8.2.2, LXC), mit openHABian eingerichtet
-
- Beiträge: 206
- Registriert: 5. Mär 2019 21:13
- Wohnort: Ingolstadt
Re: Daten von ESP8266 NodeMCU in Openhab
Guten morgen und vielen Dank erstmal,
ich bin beeindruckt von der Freundlichkeit und Hilfsbereitschaft hier!
Es ist laut Paper UI "binding Mqtt 2.4.0"
Bridge höre ich in Bezug auf das Thema zum ersten mal, ich habe ein Binding ( eben MQTT con David Graeff ) und bei Configuration/Services auch 2 x irgendwas von MQTT stehen ( embedded Broker und System Broker connection ) beides aber ohne sinngebende Eiträge
Ich habe ein Thing: Das Paper UI gibt mir beim Item keine Möglichkeit den Channel einzugeben, das habe ich über den Raspi ( sudo nano etc/ ..... ) mit deiner Zeile erledigt.
ich bin beeindruckt von der Freundlichkeit und Hilfsbereitschaft hier!
Es ist laut Paper UI "binding Mqtt 2.4.0"
Bridge höre ich in Bezug auf das Thema zum ersten mal, ich habe ein Binding ( eben MQTT con David Graeff ) und bei Configuration/Services auch 2 x irgendwas von MQTT stehen ( embedded Broker und System Broker connection ) beides aber ohne sinngebende Eiträge
Ich habe ein Thing: Das Paper UI gibt mir beim Item keine Möglichkeit den Channel einzugeben, das habe ich über den Raspi ( sudo nano etc/ ..... ) mit deiner Zeile erledigt.
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.
--
Gruß
Jojo
Gruß
Jojo
- udo1toni
- Beiträge: 14032
- Registriert: 11. Apr 2018 18:05
- Wohnort: Darmstadt
Re: Daten von ESP8266 NodeMCU in Openhab
Normalerweise legt man im MQTT Binding eine Verbindung zum Broker an. Beim embedded Boker wird eine solche Verbindung evtl. automatisch erzeugt, da bin ich nicht sicher, da ich den embedded Broker bisher nicht genutzt habe.
Der Broker hat einen Channel Publish Trigger, dieser Channel ist bereits mit einem Item verlinkt (der ausgefüllte Punkt zeigt dies an). Auf der rechten Seite kannst Du über den Stift sehen, wie der Channel konfiguriert ist, weiterhin kannst Du mit den hoch/runter Pfeilen die Ansicht erweitern, dann erscheint auch ein Punkt, mit dem Du weitere Items verlinken kannst; ebenso werden die bereits verlinkten Items angezeigt.
Da Du das Item über eine Textdatei erzeugt hast, kannst Du über Paper UI hier nichts ändern, falls Du das Item aus der Textdatei entfernst, sollte das jedoch wieder möglich sein.
Der saubere Weg ist allerdings, den Channel nicht im Broker anzulegen, sondern manuell ein MQTT generic Thing zu erzeugen: Configuration -> Things -> plus-Symbol -> MQTT binding -> ADD MANUALLY (oder MANUALLY ADD THING, beide Links bewirken das selbe) -> generic MQTT Thing
Hier sinnvolle Daten eintragen (Name, Thing ID, Broker aus der Liste auswählen) und anschließend dem Thing einen Channel hinzufügen (wenn man das Thing anzeigt wieder das plus-Symbol).
Alternativ kannst Du natürlich die Konfiguration auch über ein Textfile machen, in diesem Fall ist es eine *.things Datei, nennen wir sie der Einfachheit halber ./things/mqtt.things:
Das ergäbe dann für das Item folgende Konfiguration:
Die obige Variante definiert allerdings den Broker ebenfalls in der Things Datei, Du müsstest also zuerst den vorhandenen Broker entfernen (und vorher den Channel, und davor die Links zum Channel)
Alternativ kannst Du die schon vorhandene Bridge verwenden, dann sieht das thingsfile etwas anders aus:
Denn sähe das Item dazu so aus:
Der Broker hat einen Channel Publish Trigger, dieser Channel ist bereits mit einem Item verlinkt (der ausgefüllte Punkt zeigt dies an). Auf der rechten Seite kannst Du über den Stift sehen, wie der Channel konfiguriert ist, weiterhin kannst Du mit den hoch/runter Pfeilen die Ansicht erweitern, dann erscheint auch ein Punkt, mit dem Du weitere Items verlinken kannst; ebenso werden die bereits verlinkten Items angezeigt.
Da Du das Item über eine Textdatei erzeugt hast, kannst Du über Paper UI hier nichts ändern, falls Du das Item aus der Textdatei entfernst, sollte das jedoch wieder möglich sein.
Der saubere Weg ist allerdings, den Channel nicht im Broker anzulegen, sondern manuell ein MQTT generic Thing zu erzeugen: Configuration -> Things -> plus-Symbol -> MQTT binding -> ADD MANUALLY (oder MANUALLY ADD THING, beide Links bewirken das selbe) -> generic MQTT Thing
Hier sinnvolle Daten eintragen (Name, Thing ID, Broker aus der Liste auswählen) und anschließend dem Thing einen Channel hinzufügen (wenn man das Thing anzeigt wieder das plus-Symbol).
Alternativ kannst Du natürlich die Konfiguration auch über ein Textfile machen, in diesem Fall ist es eine *.things Datei, nennen wir sie der Einfachheit halber ./things/mqtt.things:
Code: Alles auswählen
Bridge mqtt:broker:embedded "Embedded Broker" @ "MQTT" [
host="localhost",
clientID="openHAB2"
] {
Thing topic ESP8266 "ESP8266" @ "MQTT" {
Channels:
Type number : ch1 "Temperatur" [ stateTopic="/home/data/out" ]
}
}
Code: Alles auswählen
Number ESP_Temperature "ESP8266 Temperatur [%.1f°C]" { channel="mqtt:topic:embedded:ESP8266:ch1" }
Alternativ kannst Du die schon vorhandene Bridge verwenden, dann sieht das thingsfile etwas anders aus:
Code: Alles auswählen
Thing mqtt:topic:9497e89b:ESP8266 "ESP8266" (mqtt:broker:9497e89b) @ MQTT {
Channels:
Type number : ch1 "Temperatur" [ stateTopic="/home/data/out" ]
}
Code: Alles auswählen
Number ESP_Temperature "ESP8266 Temperatur [%.1f°C]" { channel="mqtt:topic:9497e89b:ESP8266:ch1" }
openHAB4.1.2 stable in einem Debian-Container (bookworm) (Proxmox 8.2.2, LXC), mit openHABian eingerichtet
-
- Beiträge: 206
- Registriert: 5. Mär 2019 21:13
- Wohnort: Ingolstadt
Re: Daten von ESP8266 NodeMCU in Openhab
TADAAAAAA
Der erste nicht ( ESP8266 Temperatur )
ABER: in Code 1 fehlen offensichtlich die Anführungszeichen um das MQTT, kann das sein? Ich habe über die Console Fehlermeldungen erhalten und die eingefügt, dann war es besser
DAAAAAANNNNNKKKKKKEEEE
Gruß
Jojo
Der zweite Weg über die Textfiles funktioniert ( ESP8266 Temperatur 2 )Der erste nicht ( ESP8266 Temperatur )
ABER: in Code 1 fehlen offensichtlich die Anführungszeichen um das MQTT, kann das sein? Ich habe über die Console Fehlermeldungen erhalten und die eingefügt, dann war es besser
DAAAAAANNNNNKKKKKKEEEE
Gruß
Jojo
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.
--
Gruß
Jojo
Gruß
Jojo
- udo1toni
- Beiträge: 14032
- Registriert: 11. Apr 2018 18:05
- Wohnort: Darmstadt
Re: Daten von ESP8266 NodeMCU in Openhab
Ja, die Anführungszeichen hinter dem @ ... Die Konfiguration ist eigentlich total logisch aufgebaut...
- Es gibt die Schlüsselworte Bridge oder Thing, um eine Bridge oder ein Thing anzulegen.
- Danach kommt das zuständige Binding in Kleinbuchstaben
- Davon mit Doppelpunkt getrennt die Art, was da nun erzeugt wird
- Davon mit Doppelpunkt getrennt der Teil der UID, welcher das anzulegende Gerät (Bridge oder Thing) bezeichnet.
- Nach einem Leerzeichen folgt ein Label .
- Label stehen immer in Anführungszeichen.
- Danach kommt ein @ und ein weiteres Label, welches die Location setzt. Die Location ist dabei dafür zuständig, wo Thing/Bridge in Paper UI Control auftauchen.
- Für Thing und Bridge sind die Label sowie das @ optional. Wird kein Label gesetzt, verwendet openHAB den UID-Teil und die Location OTHER als default.
- Danach folgen alle Konfigurationsparameter in eckigen Klammern, mit Komma getrennt.
- Parameter können ebenfalls optional sein; die Reihenfolge der Parameter ist irrelevant.
- Anschließend können Kind-Elemente in geschweiften Klammern definiert werden.
- Unterhalb der Bridge können Things als Kind-Elemente definiert werden.
- Wird ein Thing als Kind-Element einer Bridge oder eines anderen Thing definiert, so wird das Binding nicht angegeben; die Doppelpunkte zwischen Art und UID-Teil entfallen.
- Unterhalb eines Thing können Channel als Kind-Elemente definiert werden.
- Das Schlüsselwort Channels: ist optional
- Man kann ein Thing auch separat definieren, dann muss das Binding, die Art, Die Bridge sowie der UID-Teil mit Doppelpunkten angegeben werden. Nach dem Label kommt in Klammern dann das Eltern-Thing/die Eltern-Bridge.
openHAB4.1.2 stable in einem Debian-Container (bookworm) (Proxmox 8.2.2, LXC), mit openHABian eingerichtet