[gelöst] Daten von ESP8266 NodeMCU in Openhab

Moderatoren: seppy, udo1toni

Jojo
Beiträge: 206
Registriert: 5. Mär 2019 21:13
Answers: 2
Wohnort: Ingolstadt

[gelöst] Daten von ESP8266 NodeMCU in Openhab

Beitrag von Jojo »

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
--

Gruß

Jojo

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

Re: Daten von ESP8266 NodeMCU in Openhab

Beitrag von udo1toni »

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:

Code: Alles auswählen

Number ESP_Temperature "ESP8266 Temperatur [%.1f°]" { channel="mqtt:broker:9497e89b:Out" }
Das REGEX (wenn Du denn eines brauchst) gehört dann in das Thing 9497e89b in den Channel Out.
openHAB4.1.2 stable in einem Debian-Container (bookworm) (Proxmox 8.1.5, LXC), mit openHABian eingerichtet

Jojo
Beiträge: 206
Registriert: 5. Mär 2019 21:13
Answers: 2
Wohnort: Ingolstadt

Re: Daten von ESP8266 NodeMCU in Openhab

Beitrag von Jojo »

Servus udo1toni,

Danke für die Hilfe. Ich kann das erst später oder morgen probieren. Ich lasse dich wissen was rauskam!


Gruß
Jojo
--

Gruß

Jojo

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

Re: Daten von ESP8266 NodeMCU in Openhab

Beitrag von udo1toni »

:)
openHAB4.1.2 stable in einem Debian-Container (bookworm) (Proxmox 8.1.5, LXC), mit openHABian eingerichtet

Jojo
Beiträge: 206
Registriert: 5. Mär 2019 21:13
Answers: 2
Wohnort: Ingolstadt

Re: Daten von ESP8266 NodeMCU in Openhab

Beitrag von Jojo »

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
--

Gruß

Jojo

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

Re: Daten von ESP8266 NodeMCU in Openhab

Beitrag von udo1toni »

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:

Code: Alles auswählen

08:21:31.729 [INFO ] [smarthome.event.ChannelTriggeredEvent] - mqtt:broker:9497e89b:Out triggered 23.00
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.
openHAB4.1.2 stable in einem Debian-Container (bookworm) (Proxmox 8.1.5, LXC), mit openHABian eingerichtet

Jojo
Beiträge: 206
Registriert: 5. Mär 2019 21:13
Answers: 2
Wohnort: Ingolstadt

Re: Daten von ESP8266 NodeMCU in Openhab

Beitrag von Jojo »

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:
Bildschirmfoto 2019-03-08 um 07.33.51.png
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

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

Re: Daten von ESP8266 NodeMCU in Openhab

Beitrag von udo1toni »

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:

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" ]
     }
}
Das ergäbe dann für das Item folgende Konfiguration:

Code: Alles auswählen

Number ESP_Temperature "ESP8266 Temperatur [%.1f°C]" { channel="mqtt:topic:embedded:ESP8266:ch1" }
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:

Code: Alles auswählen

Thing mqtt:topic:9497e89b:ESP8266 "ESP8266" (mqtt:broker:9497e89b) @ MQTT {
         Channels:
         Type number : ch1 "Temperatur" [ stateTopic="/home/data/out" ]
     }
Denn sähe das Item dazu so aus:

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.1.5, LXC), mit openHABian eingerichtet

Jojo
Beiträge: 206
Registriert: 5. Mär 2019 21:13
Answers: 2
Wohnort: Ingolstadt

Re: Daten von ESP8266 NodeMCU in Openhab

Beitrag von Jojo »

TADAAAAAA :mrgreen:
Bildschirmfoto 2019-03-10 um 07.58.42.png
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

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

Re: Daten von ESP8266 NodeMCU in Openhab

Beitrag von udo1toni »

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.
Alle Bridge/Thing-Definitionen sind so aufgebaut, hat man einmal das Prinzip verstanden, kann man sich die Konfiguration recht gut herleiten. Schlüsselworte für Parameter kann man evtl. über die REST-API-Doku nachschlagen, falls man nicht die offizielle Dokumentation konsultieren möchte. Die Doku ist in Paper UI beim Binding verlinkt; das gilt für alle Addons.
openHAB4.1.2 stable in einem Debian-Container (bookworm) (Proxmox 8.1.5, LXC), mit openHABian eingerichtet

Antworten