MQTT Anbindung Daten empfangen

Einrichtung der openHAB Umgebung und allgemeine Konfigurationsthemen.

Moderatoren: seppy, udo1toni

nubbler
Beiträge: 9
Registriert: 1. Okt 2023 17:33
Answers: 0

MQTT Anbindung Daten empfangen

Beitrag von nubbler »

Hallo zusammen,

leider stelle ich mich gerade bei MQTT zeimlich doof an. Ich habe einen Wechselrichter wo ich nicht so einfach an die Daten rankomme und einen kleinen umweg nehmen muss da die möglichkeiten sehr eingeschränkt sind.
Was ich jedoch geschafft habe ist, das die Daten in openHab vorliegen.

Plan ist nun, in openWB die Daten über MQTT abholen. Der MQTT Broker läuft auf dem openhab Raspi. Ich komme leider überhaupt nicht damit klar wie ich das nun genau konfigurieren muss.

Unter System MQTT-Brücken habe ich den MQTT Broker vom openhab raspi konfiguriert (IP, User, Passwort.). Präfix "openWB/" und ClientID "openWB"
DAnn unter Konfiguration ein MQTT Gerät mit Wechselrichter Komponente hinzugefügt.
Hieraus ergeben sich dann die beiden Topics für Leistung und erzeugte Energie. So weit, so gut:
openWB/set/pv/7/get/power
openWB/set/pv/7/get/exported

Unter openHab dann den Broker angelegt (der funktioniert soweit da er schon Daten von anderen Geräten empfängt).
Aber das Thing mit dem Channel und Item kriege ich nicht hin damit openWB die Daten empfängt.
Ich bin mir aber auch nicht sicher wo das Topic genau hin muss. Im Channel unter MQTT State Topic? Oder MQTT Commant Topic? Oder doch im Thing unter Availability Topic?

Im MQT Explorer werden die Topics auch nicht sichtbar. Braucht es eine Rule damit die Daten gesendet werden? Oder passiert das automatisch wenn die Items verknüpft werden?
Oder werden die Daten im MQTT Explorer erst sichtbar wenn openWB diese abfragt und es stimmt dort etwas in der Konfiguration nicht?

Ich bin gerade etwas lost :(

oh73
Beiträge: 302
Registriert: 7. Mär 2021 14:49
Answers: 1

Re: MQTT Anbindung Daten empfangen

Beitrag von oh73 »

du schreibst für mich etwas verwirrend,
das die Daten in openHab vorliegen.
ja, wie liegen die Daten vor? als mqtt Daten oder was?

welcher Wechselrichter?
Plan ist nun, in openWB die Daten über MQTT abholen
abholen geht nur wenn der Wechselrichter die Daten auch über mqtt sendet!
Im MQT Explorer werden die Topics auch nicht sichtbar.
wenn im MQTT Explorer keine Daten ankommen, dann sendet der Wechselrichter wahrscheinlich nichts.
deshalb die Frage , welcher Wechselrichter? kannst du da Einstellungen für MQTT vornehmen?

ich würde sagen, erst wenn am MQTT Explorer was ankommt kann man weiter machen mit dem Thing für openhab.
OH 4.3.0 auf HP 26o G1 Dm Mini Pc mit MX_Linux

nubbler
Beiträge: 9
Registriert: 1. Okt 2023 17:33
Answers: 0

Re: MQTT Anbindung Daten empfangen

Beitrag von nubbler »

ok, das war vielleicht viel Info auf einmal.

Ganz vereinfacht:

- Ich habe ein Item, dessen Wert ich per MQTT bereit stellen möchte. openWB soll sich diesen Wert von openHab abholen.
- MQTT Broker ist in openhab eingerichtet und funktioniert soweit, da ich hier bereits andere MQTT Daten nach openhab einlese.
- Ich bekomme es nur nicht hin ein Item von openHab über MQTT nach openWB zu bringen. Ich habe aktuell keinen Ansatz woran das liegt. openWB erwartet die Daten unten einem bestimmten Topic. Ob nun in openWB etwas falsch konfiguriert ist oder in openHab ist die Frage. Zunächst würde es mir glaube ich helfen, wenn ich das Prinzip verstehen würde wie man ein Item über MQTT rausbringt. Im MQTT THing einfach einen Kanal mit dem Toic erstellen und das entsprechende Item da verknüpfen? Oder muss etwas getan werden damit der Wert vom Item dann auch versendet wird? Oder reagiert das ganze nur wenn ein MQTT Client die Daten anfrägt? Wann erscheinen die Daten im MQTT explorer? Ich glaube ein einfaches Beispiel würde weiterhelfen um den Fehler zu finden.....

oh73
Beiträge: 302
Registriert: 7. Mär 2021 14:49
Answers: 1

Re: MQTT Anbindung Daten empfangen

Beitrag von oh73 »

openWB kenne ich nicht,

aber wenn ich das richtig verstehe willst du erst mal einen Item Wert nach openWB senden?

senden hab ich noch nicht ausprobiert, nur empfange!
aber wenn man nach 'mqtt mit openhab senden' googelt findet man so einiges.

trotz dem könnte es helfen wenn man wüsste um welchen Wechselrichter es sich handelt?
wie kommen die Daten vom Wechselrichter nach openWB?
OH 4.3.0 auf HP 26o G1 Dm Mini Pc mit MX_Linux

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

Re: MQTT Anbindung Daten empfangen

Beitrag von udo1toni »

Das mqtt Binding ist eigentlich ganz einfach zu konfigurieren.
Du legst die Bridge an (das ist die Verbindung zum Broker.
Anschließend legst Du ein generic mqtt Thing an, welches Du der Bridge zuordnest (irgendwie logisch... das ist ja die Verbindung zum mqtt Bus).
De mThing verpasst Du für jedes Topic, auf dem Du publishen willst einen Channel, hier also zwei Channel.
Es gibt in jedem Channeltypen zwei Topics, und zwar das stateTopic und das commandTopic.

Die Namen der Topics sind in dem Sinne gewählt, dass openHAB "der Boss" ist, das heißt, ein stateTopic liefert den aktuellen Status an openHAB, openHAB verwendet das commandTopic, um einen Befehl an mqtt zu senden.

Um die Daten direkt weiterzuleiten, verlinkst Du die Channel mit den Items und setzt dabei im Link zu mqtt das Profile auf "follow". Das bedeutet: empfängt das Item über einen anderen Weg einen Status, so wird dieser Status als Befehl an den mqtt Channel weitergeleitet, der in der Fulge auf dem commandTopic den Status als Payload sendet.

Allerdings ist openHAB fast sicher der totale overkill, wenn Du es nur für diese Aufgabe verwenden willst. (nicht, dass es nicht funktionieren würde... ist nur wie mit Torpedos auf Goldfische schießen).
openHAB5.0.0 stable in einem Debian-Container (bookworm) (Proxmox 9.0.3, LXC)

nubbler
Beiträge: 9
Registriert: 1. Okt 2023 17:33
Answers: 0

Re: MQTT Anbindung Daten empfangen

Beitrag von nubbler »

ok, also ich habe gerade herausgefunden das ich bei openWB mit geirrt habe! Ich dachte ich kann dort den auf openHab laufenden Broker konfigurieren. Es läuft dort aber ein eigener Broker, und mit diesem muss man anscheinend arbeiten...

Ich habe somit in openHab den Broker von openWB konfiguriert. Das Funktioniert auch soweit und ich kann die Daten von openWB auslesen und in Items bringen.

Nur das schreiben der Daten für meinen Wechselrichter funktioniert leider immer noch nicht. openWB gibt mir hier z.B. ein Topic vor:
openWB/set/pv/7/get/power

Ich habe ein MQTT Thing für den openWB Broker angelegt.
Channels zum Daten auslesen funktionieren soweit (z.B.: MQTT State Topic "openWB/bat/2/get/soc" zeigt den Ladestand der Batterie)
Ein Channel mit schreiben der Wechselrichter Leistung (Dann unter MQTT Command Topic "openWB/set/pv/7/get/power" eintragen funktioniert nicht)

Daher die Frage: WO muss das Topic in openHab genau eingetragen werden damit er den Item Wert sendet?
Vorgabe von openWB ist "Alle Daten sind als gültiges JSON zu senden!" Eventuell liegt es daran, aber wie stelle ich das an?

Zum Wechselrichter:
Das ist ein alter Sunnyboy von SMA aus 2009. Da komme ich nur per Bluetooth an die Daten ran (leider kein LAN/Modbus vorhanden). Dafür läuft SBFSpot auf einem raspi welcher die Daten per MQTT an openhab sendet. Dieser Weg Funktioniert. Jetzt soll nur das Item über den openWB-MQTT-Broker wieder raus :-).

nubbler
Beiträge: 9
Registriert: 1. Okt 2023 17:33
Answers: 0

Re: MQTT Anbindung Daten empfangen

Beitrag von nubbler »

udo1toni hat geschrieben: 1. Okt 2023 22:32 Um die Daten direkt weiterzuleiten, verlinkst Du die Channel mit den Items und setzt dabei im Link zu mqtt das Profile auf "follow". Das bedeutet: empfängt das Item über einen anderen Weg einen Status, so wird dieser Status als Befehl an den mqtt Channel weitergeleitet, der in der Fulge auf dem commandTopic den Status als Payload sendet.

Allerdings ist openHAB fast sicher der totale overkill, wenn Du es nur für diese Aufgabe verwenden willst. (nicht, dass es nicht funktionieren würde... ist nur wie mit Torpedos auf Goldfische schießen).
"follow" hatte ich nicht gesetzt, danke für den Hinweis.

Nein, openHab habe ich natürlich hier sowieso am laufen und wird für viele andere Dinge verwendet (KNX/Hue usw.). Nur MQTT ist komplett neu für mich, habe aber schon viel gelernt.

Unsere Posts haben sich knapp überschnitten. Funktionieren tut es leider immer noch nicht. Vermutlich weil openWB die Daten als JSON möchte?

nubbler
Beiträge: 9
Registriert: 1. Okt 2023 17:33
Answers: 0

Re: MQTT Anbindung Daten empfangen

Beitrag von nubbler »

HEUREKA! ok, es lag glaube ich wirklich am "follow". Ich musste nur das auslesen über SFBSpot neu anstoßen damit das Item einen neuen Wert empfängt (ist ja grade dunkel draußen und passiert daher nicht automatisch).

Vielen lieben Dank an euch beide!

nubbler
Beiträge: 9
Registriert: 1. Okt 2023 17:33
Answers: 0

Re: MQTT Anbindung Daten empfangen

Beitrag von nubbler »

EIne Frage habe ich dann doch noch:

Die Daten liegen im Item wie folgt vor:
z.B.
Total: 89970.479
Power: 4123

Die Anforderung von openWB ist: "PV-Leistung in Watt als Zahl mit oder ohne Nachkommastellen (Float, Integer) und einem Punkt als Dezimaltrennzeichen"

Daher dachte ich, das es mit dem Punkt so passt. Nun sehe ich aber, das openWB die Werte so einliest:
Total: 89,970 kWh
Power: 0,004 kWh

Es ist also immer um 3 Stellen verschoben. Im Channel ist als outgoing value format %f angegeben.

Was muss man ändern damit die Daten richtig ankommen?

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

Re: MQTT Anbindung Daten empfangen

Beitrag von udo1toni »

Du musst nur Units of Measurement nutzen :)
Aber an diesem Punkt ist es nicht mehr egal, wie die Daten in openHAB hinein kommen. Es ist jetzt Zeit, über das zweite verwendete Binding zu sprechen :)
openHAB5.0.0 stable in einem Debian-Container (bookworm) (Proxmox 9.0.3, LXC)

Antworten