Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Feature Request: MQTT-Analyse zur Minimierung & Angleichung Topics von AhoyDTU/OpenDTU #1212

Open
knickohr opened this issue Oct 10, 2023 · 12 comments
Assignees
Labels
enhancement New feature or request

Comments

@knickohr
Copy link

knickohr commented Oct 10, 2023

Ich habe mal ein bißchen mit MQTT rumgespielt und das analysiert. Dabei sind mit ein paar Punkte sauer aufgestoßen :

Erst mal. Ahoy hat mit 14 Invertern knapp 1000 !!! Topics 😵

  • Warum sind die Alarm-Messages retained ? Gibt’s dazu einen besonderen Grund ?
  • Schön wäre es wenn man die Alarme in einen 4er-Päckchen zusammen fassen könnte. Also code, start, end und string in einem JSON. Macht das etwas übersichtlicher und gleich mal über 500 Messages weniger.
  • Das last_success kommt mir noch zu oft. Es reicht eine einzige Message pro abgefragten Inverter, vor allem bei nicht antwortenden Invertern.
  • Ebenso kann man die HW-Infos, FW-Infos und die GridProfile-Infos jeweils in einem JSON zusammen fassen.
  • Auch die Inverterbezogenen Werte, wurde ja schon in der Wunschliste angeregt, optional auswählbar in ein JSON reinpacken.

Ich bin mir sicher ich finde noch ein paar mehr Topics die mir durch die Lappen gingen 😅

(Wird weiter editiert, Geduld junger Padawan)

@stefan123t
Copy link
Collaborator

@knickohr ich warte ganz geduldig, versprochen 😇 aber könntest Du dabei bitte auch überprüfen ob wir die MQTT Topics von Ahoy & OpenDTU gleichzeitig irgendwie vereinheitlichen können ?
Dann wären so tolle Dinge wie Dashboards und andere Auswertungen aus dem HomeAssistant, IOBroker, NodeRed oder was auch immer für beide Projekte von Nutzen.

@knickohr
Copy link
Author

knickohr commented Oct 10, 2023

Nun, das ist (leider) in einem Satz gesagt : Ein Projekt muß seine Topics ändern.

Schon allein die Baumstruktur ist nicht identisch 😕

Hoffnung bringt vielleicht wenn beide Projekte auf die JSON-Payloads optional umstellen. Dann wäre der passende Zeitpunkt beide Parteien an einem gemeinsamen Tisch zu zerren und es festzulegen 😉

@lumapu @tbnobody

@lumapu lumapu self-assigned this Nov 9, 2023
@lumapu lumapu added the enhancement New feature or request label Nov 9, 2023
lumapu added a commit that referenced this issue Nov 11, 2023
* changed MqTT alarm topic, removed retained flag #1212
* reduce last_success MQTT messages (#1124)
@stefan123t
Copy link
Collaborator

Die MQTT Topics von AhoyDTU sind im UserManual: https://github.com/lumapu/ahoy/blob/main/User_Manual.md
und die MQTT Topics von OpenDTU sind hier dokumentiert: https://tbnobody.github.io/OpenDTU-docs/firmware/mqtt_topics/

Müsste man mal nebeneinander stellen und mit nem diff vergleichen, was vergleichbar ist

@stefan123t
Copy link
Collaborator

stefan123t commented Jan 7, 2024

Anbei der Vergleich der beiden dokumentierten MQTT Topics.
@knickohr kannst Du ggf. die beiden Tabellen bzw. die Topics überprüfen anhand einer aktuellen Version,
falls Du sowohl AhoyDTU als auch OpenDTU irgendwo am Laufen hast ?

@knickohr
Copy link
Author

knickohr commented Jan 7, 2024

Auf die Schnelle habe ich noch den fehlenden undokumentierten Topic für Ahoy gefunden :

ctrl/power/[id] mit Payload 0/1
Schaltet den Inverter soft aus/ein, also ohne dieses Startgedöns, er ist sofort online

dis_night_comm gibt es als General nicht mehr, der heißt jetzt wieder alt : comm_disabled. Hier wird der Status von Night behaviour ausgegeben, also od die DTU nachts noch mit den Invertern kommuniziert.
Für die einzelnen Inverter gibt es weiterhin den dis_night_comm, das die Einstellung ausgibt.

General
comm_dis_ts fehlt auch noch
Timestamp, wann die DTU offline gegangen ist, nicht verwechseln mit comm_stop, das ist die „Sonnenuhr“

Total
total/Q_AC ist auch nicht in der Liste

@stefan123t stefan123t changed the title MQTT-Analyse MQTT-Analyse zur Minimierung & Angleichung Topics von AhoyDTU/OpenDTU Jan 7, 2024
@stefan123t
Copy link
Collaborator

@knickohr habe Deine Anmerkungen oben eingearbeitet.
Hier noch der Hinweis auf die Diskussion Max. Leistung aller WRs zusammen anpassen #1608
tbnobody/OpenDTU#1608 (comment)

Hier wäre eine Zusammenfassung mehrerer Wechselrichter oder Inverter zu einem / mehreren PV-Pools sinnvoll.
Damit könnte man dann auch das Power Limit je Inverter / PV-Pool für einen gewissen Zeitraum vorgeben.
Z.B.

  • der Batterie Pool von Sonnenuntergang bis Sonnenaufgang mit 150 W Grundlast
  • der restliche Zoo an PV-Panelen & Invertern bis zu einem max. Einspeisung von 600W / 800W je nachdem was der Gesetzgeber gerade für richtig befindet.
  • man könnte auch den aktuellen Verbrauch (von einem SML / Shelly 3EM Pro) zu einem oder mehreren PV-Pools gegenrechnen für eine Nulleinspeisung / Zero-Export Control.

@knickohr
Copy link
Author

knickohr commented Jan 7, 2024

Ja, korrekt, das sollte aber dann direkt in der DTU passieren und nicht außerhalb. Ich möchte in Zukunft die ganze Power-Limit Gedöns nur noch innerhalb der DTU gesteuert sehen. Einzig allein die Vorgabe des Limits, keine Nulleinspeisung wo sich das Limit andauernd ändert, könnten wir per MQTT übergeben. Ansonsten nur noch lesende Ausgaben über MQTT bezüglich Limit.

@knickohr
Copy link
Author

knickohr commented Jan 7, 2024

Vorschlag :

Das Ganze immer als JSON, außer der letzte Punkt.

  • Die ganzen General und Total in einem Topic
  • Alarmdaten als Topic
  • (Noch nicht vorhandene) Gridprofile als ein Topic
  • Die Inverterdaten als Topic, wobei ich die Firmware und Hardwareinfos da raus lassen würde. Vielleicht zu den Gridprofilen dazu ?
  • Die schreibbaren MQTT-Topics würde ich einzeln lassen

Dann hätten wir 3 inverterspezifische Topics, je nach Anzahl der Inverter entsprechend Vielfaches davon. Wobei 2 ja nur einmal abgefragt werden. Aktualisierung sobald neue Daten vorhanden.

Das General mit dem Total würde einmal die Minute reichen.

wären bei meinen 16 Invertern dann insgesamt 54 Topics, wobei sich nur 17 zeitlich wiederholen. Im Gegensatz zu aktuell über 1000 Topics.

Da OpenDTU doch nicht ganz so unterschiedlich erscheint, müßte man sich nur auf die Namensgebung einigen. Hat Ahoy oder OpenDTU keinen entsprechenden Wert würde ich dafür einen leeren Wert (Platzhalter) senden.

Ach ja, und bitte die Heuristikdaten mit in die Radio-Statistik aufnehmen 😉

lumapu added a commit that referenced this issue Feb 13, 2024
* fixed authentication with empty token #1415
* added new setting for future function to send log via MqTT
* combined firmware and hardware version to JSON topics (MqTT) #1212
@knickohr
Copy link
Author

Das sieht schon mal gar nicht schlecht aus 👍

Auch wenn jetzt die HW und Firmware-Infos als JSON kommen, müssen sie nicht retained sein. Oder ist das so wichtig ? 😉

mqtt-retained.txt

@lumapu
Copy link
Owner

lumapu commented Mar 2, 2024

wenn sie nicht retained sind, dann verschwinden sie nach kurzer zeit für immer oder?

@knickohr
Copy link
Author

knickohr commented Mar 2, 2024

Der Broker hält sie halt nicht vor. Genau genommen werden sie einfach nur raus geplärrt. Der Client muß sie dann einsammeln und selbst speichern.

Bei retained werden die Werte im Broker gespeichert. Und jedesmal wenn sich ein Client subscribed, bekommt er sie vor die Nase gepfeffert.

@knickohr
Copy link
Author

knickohr commented Jun 2, 2024

JSON-Payload ist mit der 0.8.123 optional auswählbar 👍

@stefan123t stefan123t changed the title MQTT-Analyse zur Minimierung & Angleichung Topics von AhoyDTU/OpenDTU Feature Request: MQTT-Analyse zur Minimierung & Angleichung Topics von AhoyDTU/OpenDTU Oct 29, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

3 participants