MQTT von "anderen" Quellen empfangen

Einrichtung der openHAB Umgebung und allgemeine Konfigurationsthemen.

Moderatoren: seppy, udo1toni

Antworten
oekonomy
Beiträge: 12
Registriert: 13. Mai 2021 17:51
Answers: 0

MQTT von "anderen" Quellen empfangen

Beitrag von oekonomy »

Hallo MQTT-Fans,

leider bin ich nicht fündig geworden bei diesen zwei Punkten:
1. Wie man sich MQTT Daten "schön" anschaut auf dem PI (MQTTFX gibts wohl nicht mehr)
2. Wie ich Daten aus dem Broker auslesen kann, die selbstständig zu dem Broker gesendet werden.

Was geht: Ich bekomme von einem Wechselrichter über MQTT Daten gesendet, siehe Bild
MQTT.png
.

Ich steh auf dem Schlauch wie ich das auslesen soll. (Bei den tasmotas bekomme ich das hin)
stat und cmnd scheinen nicht zu funktionieren...

Vielen Dank für einen Denkanstoß
Enrico
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.

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

Re: MQTT von "anderen" Quellen empfangen

Beitrag von udo1toni »

Also, zu 1.: mqtt.fx gibt es weiterhin. Allerdings ist das Produkt in der aktuellen Version kommerziell und nur für Windows/MacOS verfügbar.
Es gibt diverse andere Produkte, die kostenlos verfügbar sind. Ich nutze mqtt spy, welches unter Java 8 läuft.
Ich habe bisher noch nicht ausprobiert, ob es auch unter aktuellen Java Versionen läuft...

Zu 2.: Ich denke, da herrscht ein grundsätzliches Missverständnis.

Der Broker ist, wie der Name bereits sagt, ein Vermittler. Er selbst speichert den Payload eines Topics nur, wenn dieses mit dem Retain Flag gesendet wurde. Ansonsten werden Nachrichten nur weitergeleitet.
Wenn ein Client ein Topic publisht, prüft der Broker, ob es Clients gibt, welche auf dieses Topic subscribed sind. Ist das der Fall, leitet der Broker das Payload unter dem Topic an die Clients weiter.
Subscribed ein Client ein Topic, so prüft der Broker, ob das Topic mit Retain empfangen wurde. Ist das der Fall, liefert es das gespeicherte Payload aus.

Wenn Du in openHAB ein Topic empfangen willst, trägst Du das Topic unter stateTopic ein. Den Type setzt Du abhängig vom erwarteten Payload. Mehr musst Du nicht tun, um etwas zu empfangen.
Willst Du etwas senden, setzt Du das passende Topic als commandTopic ein. Mehr musst Du nicht tun.

Tasmota nutzt eine sehr durchdachte Topic Struktur. Diese ist aber nicht grundsätzlich so in mqtt definiert, das ist eine reine Tasmota-Definition.
Das prefix definiert die drei Typen von Topics,
stat ist ausgehend als Reaktion auf ein Ereignis.
cmnd ist eingehend und wird als Ereignis gewertet (wird also immer eine Message unter dem prefix stat nach sich ziehen).
tele ist ausgehend, aber ereignisunabhängig. Stattdessen wird tele zyklisch gesendet (streng genommen ist der Zyklus natürlich auch ein Ereignis :) ).

Der Wechselrichter verwendet eine andere Topic Struktur. Aber die relevanten Topics stehen ja nun im Klartext da, es reicht also, diese in einzelnen Channels als stateTopic einzutragen. Da alle Topics Zahlen liefern, nimmst Du Number Channel dafür.
openHAB4.3.5 stable in einem Debian-Container (bookworm) (Proxmox 8.4.1, LXC), mit openHABian eingerichtet

oekonomy
Beiträge: 12
Registriert: 13. Mai 2021 17:51
Answers: 0

Re: MQTT von "anderen" Quellen empfangen

Beitrag von oekonomy »

*hochroterKopf* ;o)

na das hätte ich ja auch mal probieren können - das Topic lautet (falls das problem noch mal jemand hat, wie im Bild oben zu sehen:)

solaranzeige/wr1/ac_scheinleistung


Vielen Dank!@udo1toni

Antworten