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

MQTT Auto Discovery Unterstützung (ESP8266) #85

Merged
merged 4 commits into from
Jul 6, 2022

Conversation

KG3RK3N
Copy link
Contributor

@KG3RK3N KG3RK3N commented Jul 2, 2022

Hallo zusammen,

erstmal einen großen Dank für eure tolle Arbeit hier, hat bisher wunderbar mit meinem HM-1500 funktioniert.
Da ich Home Assistant nutze und dort bei der Menge an Sensoren das ganze recht umfangreich werden würde, dachte ich mir das ich mal MQTT Auto Discovery implementiere. Auch um deutlich schneller weitere Inverter dann einbinden zu können.

Ich habe es nun so umgesetzt, das sobald die Inverter verfügbar sind die entsprechenden MQTT Nachrichten versendet werden. Einmalig pro Inverter.
Hier ein kleiner Einblick in den MQTT Explorer:
image

Sobald HASS das ganze empfängt, wird direkt mein Inverter als Gerät erkannt:
image

Und hier ein kleiner Ausschnitt von den Sensoren (sind beim HM-1500 ja ein paar 😄)
image

Habt ein bisschen nachsehen beim Review vom Code, das ist das erste mal das ich auf einem ESP8266 aktiv entwickle. Und auch C/C++ ist nicht mein täglich Brot 😃 Bin aber für konstruktive Kritik immer zu haben.

@KG3RK3N KG3RK3N marked this pull request as ready for review July 4, 2022 18:19
@lumapu
Copy link
Owner

lumapu commented Jul 4, 2022

Danke für deinen Beitrag!
Ich habe noch nicht verstanden welchen Vorteil mir das ganze bringt. Sobald ein Inverter Daten liefert werden doch bei aktiviertem MQTT die Nachrichten rausgeschickt und beim Broker automatisch als Objekte angelegt.
Um wie viel steigt die Codegröße für die neue Library und deren Aufrufe? Wird hier JSON über MQTT verschickt?

Gibt es noch andere, die solch ein Feature benötigen?

@wenzlaff
Copy link

wenzlaff commented Jul 4, 2022

Für Nutzer von homeassistant ist das sehr nützlich. Ohne mqtt auto dicovery müssten alle Werte der Inverter mühevoll manuell in der Konfiguration hinzugefügt werden.
Vielen Dank für die Implementierung!

@moormob
Copy link

moormob commented Jul 5, 2022

Ja, für Homeassistant sehr nützlich, Danke. Die state_class Parameter wären auch noch relevant (total_increasing für die yields) damit es auch entsprechend in der Energieübersicht eingetragen werden kann.

@KG3RK3N
Copy link
Contributor Author

KG3RK3N commented Jul 6, 2022

@lumapu
Wie @moormob und @wenzlaff bereits sagten ist es für Home Assistant Nutzer ein riesen Vorteil, da erst dadurch Home Assistant das Gerät und die dazugehören Werte erkennt. Ansonsten müsste jeder einzelne wert per Konfiguration definiert werden.

Ja es wird json verschickt. Das passiert einmalig beim Start, sobald der Inverter verfügbar ist. Bzgl der Codegröße müsste ich nochmal nachschauen.
Falls das ein Problem darstellen sollte, könnte ich das aber auch anpassen sodass man es in der config file erst aktivieren muss damit es kompiliert und aktiviert wird.

@moormob
Stimmt, werde ich nochmal ergänzen.

@lumapu
Copy link
Owner

lumapu commented Jul 6, 2022

danke für die Erläuterungen, ich wollte nur sichergehen, dass es nichts proprietäres ist und auch der Allgemeinheit einen Vorteil bringt.

Weiß einer warum die Objekte nicht automatisch angelegt werden beim ersten eintreffen? Hängt es damit zusammen, dass ein Gerät per Autodiscover gleich zu Beginn Preis gibt was alles möglich wäre und nicht nach und nach weitere Felder anlegt?

@KG3RK3N
Copy link
Contributor Author

KG3RK3N commented Jul 6, 2022

Um wie viel steigt die Codegröße für die neue Library und deren Aufrufe?

Vorher:
Sketch uses 370225 bytes (35%) of program storage space. Maximum is 1044464 bytes.

Mein Branch:
Sketch uses 375801 bytes (35%) of program storage space. Maximum is 1044464 bytes.

Weiß einer warum die Objekte nicht automatisch angelegt werden beim ersten eintreffen? Hängt es damit zusammen, dass ein Gerät per Autodiscover gleich zu Beginn Preis gibt was alles möglich wäre und nicht nach und nach weitere Felder anlegt?

Den technischen Hintergrund kenne ich leider nicht, kann ich mir aber gut vorstellen. Zusätzlich dazu das in der Discovery Message ja noch einige weitere Attribute sind welche den Wert beschreiben um den es geht.

@moormob
Die state_class Werte sind nun auch mit drin und sind nun auch in der Energieübersicht verfügbar.

@Stiffler0210
Copy link

Wie bekomme ich denn das ganze so fertig auf den ESP installiert? Hab auch das Problem dass ich den Ahoy nicht finden kann...

@stefan123t
Copy link
Collaborator

@Stiffler0210 bitte die Anleitung README.md befolgen und entweder das bin unter Releases flashen bzw. selber mit platformio bauen und hochladen. Bitte keine anderen Issues / PR high-jacken wir haben einen Discord Chat!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

6 participants