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

[Bug] Warning in Home Assistant because of MQTT entity naming guideline #1066

Closed
1 task
CantConAnHonestJohn opened this issue Aug 2, 2023 · 21 comments
Closed
1 task
Assignees
Labels
bug Something isn't working fixed dev fixed

Comments

@CantConAnHonestJohn
Copy link

Platform

ESP32

Assembly

I did the assebly by myself

nRF24L01+ Module

nRF24L01+ plus

Antenna

external antenna

Power Stabilization

nothing

Connection picture

  • I will attach/upload an Image of my wiring

Version

0.6.9

Github Hash

I don't know

Build & Flash Method

AhoyDTU Webinstaller

Setup

  • MQTT is enabled

Debug Serial Log output

No response

Error description

Is anyone else with multiple inverters in ahoy seeing the corresponding warning in Home Assistant to this article:
https://developers.home-assistant.io/blog/2023-057-21-change-naming-mqtt-entities/

@CantConAnHonestJohn CantConAnHonestJohn added the bug Something isn't working label Aug 2, 2023
@princuser
Copy link

I got the same message. I've ESP8266 Board with version 0.6.9. From Home Assistant version 2024.2.0 it is no longer supported (see https://developers.home-assistant.io/blog/2023-057-21-change-naming-mqtt-entities/).
Uploading Screenshot_20230803_000813_Home Assistant.jpg…

@rmayergfx
Copy link

rmayergfx commented Aug 2, 2023

it´s also on the single inverter setup with 0.7.21.
@lumapu
how to fix?
https://developers.home-assistant.io/blog/2023-057-21-change-naming-mqtt-entities/
grafik

@CantConAnHonestJohn CantConAnHonestJohn changed the title [Bug] Warning in Home Assistant with multiple inverters because of MQTT entity naming guideline [Bug] Warning in Home Assistant because of MQTT entity naming guideline Aug 3, 2023
@lumapu
Copy link
Owner

lumapu commented Aug 3, 2023

ich kann das ganze noch nicht ganz verstehen, skizziere aber mal was ich meine Verstanden zu haben:
Homeassistant hätte gerne, dass die Entitäten generisch benannt sind und nicht nach dem Gerät. Das würde im Screenshot Beispiel bedeuten, dass es nicht sensor.tsun_m800_ch2_yieldtotal heißt, sondern sensor.inverter_ch2_yieldtotal.
Was ich nicht verstehe, wie Homeassistant dann auf einen spezifischen Wechselrichter zugreifen will, da ja die Entitäten nicht mehr eindeutig sind.

Das hier habe ich noch gefunden, allerdings ist auch das Beispiel hier sehr dürftig. Hat einer von euch ein Beispiel eines anderen Geräts für mich - zB. Sonoff / Shelly oä.?
https://developers.home-assistant.io/blog/2022/07/10/entity_naming/

@Neelixx
Copy link

Neelixx commented Aug 3, 2023

Hier noch ein Beispiel für einen HM-600:
Liste der betroffenen Entitäten:

sensor.hm600_p_ac
sensor.hm600_temp
sensor.hm600_ch2_p_dc
sensor.hm600_ch1_u_dc
sensor.hm600_efficiency
sensor.hm600_ch1_p_dc
sensor.hm600_yieldday
sensor.hm600_ch2_u_dc
sensor.hm600_q_ac
sensor.hm600_ch2_yieldtotal
sensor.hm600_pf_ac
sensor.hm600_alarm_mes_id
sensor.hm600_ch1_i_dc
sensor.hm600_ch1_yieldday
sensor.hm600_ch1_yieldtotal
sensor.hm600_ch2_i_dc
sensor.hm600_i_ac
sensor.hm600_ch2_irradiation
sensor.hm600_u_ac
sensor.hm600_yieldtotal
sensor.hm600_ch1_irradiation
sensor.hm600_ch2_yieldday
sensor.hm600_p_dc
sensor.hm600_f_ac

Mehr erfahren:
https://developers.home-assistant.io/blog/2023-057-21-change-naming-mqtt-entities/

@nexulm
Copy link

nexulm commented Aug 3, 2023

Hallo,
bei mir "natürlich" das selbe Verhalten.
Meine Lösung/Workaround sieht wie folgt aus:
Einstellungen => Geräte & Dienste => Entitäten

Nun die entsprechende(n) Entität(en) raussuchen, z.B. bei mir sensor.hm1500_ch3_p_dc
Vorher:
image

  1. Zahnrad => Einstellungen
    image
  2. Namensfeld editieren (hier: miniPV vorangestellt)
    image

Nachher:
image

Wenn nun HA neu gestartet wird ist die Fehlermeldung in HA für diese Entität weg. Selbe Vorgehensweise für alle anderen erkannten Entitäten. Voila.
Ist für mich nicht unbedingt ein Ahoy bug!?! Lässt sich zumindest sehr einfach beheben. Eine TOPIC Änderung - wenn dies denn in meinen Fall helfen würde - habe ich ausgeschlossen, da dann wieder alle Abhängigkeiten inkl. Berechnungen, Automatiserungen, ... überprüft werden müssten.

@rmayergfx
Copy link

rmayergfx commented Aug 3, 2023

Die Meldung vom Home Assistant Team ist doch eindeutig:

Bitte informiere den Betreuer der Softwareanwendung, die die betroffenen Entitäten bereitstellt, um dieses Problem zu beheben.

Ich habe es gerade nochmals bei mir geprüft, und ich muss feststellen, das nur die Entitäten betroffen sind, die automatisch ausgelesen wurden.
z.B.
sensor.tsun_m800_ch1_irradiation

grafik

Da ich diesen Wert überhaupt nicht aktiv überwache hat er auch keinen Namen von mir bekommen.

Und jetzt wird es spannend, denn ich hatte schon einmal in einem anderen Thread gefragt woher MQTT die Info TSUN bezieht.
Das ist irgendwo in der Firmware codiert, denn mein Topic ist "M800"
grafik

Der Name jedoch TSUN_M800
grafik

Ganz seltsam finde ich das hier:
grafik
Den TSUN hat nichts mit Hoymiles zu tun.

Ich denke das ist es, was die Entwickler von Home Assistant bemängeln, da es je nach Geräteklasse dann zu doppelten Einträgen kommen kann.
Zum Vergleich ein manuell von mir in der mqtt.yaml angelegter Sensor:
grafik
Ich denke es würde schon reichen wenn man den Unterstrich entfernt, damit sind die Namen nicht mehr identisch....

@nexulm
Copy link

nexulm commented Aug 3, 2023

ich kann das ganze noch nicht ganz verstehen, skizziere aber mal was ich meine Verstanden zu haben: Homeassistant hätte gerne, dass die Entitäten generisch benannt sind und nicht nach dem Gerät. Das würde im Screenshot Beispiel bedeuten, dass es nicht sensor.tsun_m800_ch2_yieldtotal heißt, sondern sensor.inverter_ch2_yieldtotal. Was ich nicht verstehe, wie Homeassistant dann auf einen spezifischen Wechselrichter zugreifen will, da ja die Entitäten nicht mehr eindeutig sind.

Das hier habe ich noch gefunden, allerdings ist auch das Beispiel hier sehr dürftig. Hat einer von euch ein Beispiel eines anderen Geräts für mich - zB. Sonoff / Shelly oä.? https://developers.home-assistant.io/blog/2022/07/10/entity_naming/

Beim Shelly 3EM sieht es bei mir so aus:
image

Beim Tasmota SM dann so:
image

Hilft das?

@rmayergfx
Copy link

rmayergfx commented Aug 3, 2023

Hier gibt es ein Topic dazu:
https://community.home-assistant.io/t/psa-mqtt-name-changes-in-2023-8/598099

The change states that MQTT should not provide the device name in the entity names that are attached to the device. So if your upstream MQTT provider is supplying a device name inside the entity name, they should stop providing that information. They should only provide the device name to the device, not the entity.

Daher gibt es auch bei mir nur das Problem mit automatisch erstellten Entitäten.
grafik

@nexulm
Copy link

nexulm commented Aug 3, 2023

...und hier noch hier eine Quelle wie der Bugfix im EMS-ESP32 Projekt erfolgreich gelöst wurde.
emsesp/EMS-ESP32#1035

Hiermit habe ich nun eine Entität weniger, die auffällt. Bin zuversichtlich, dass mit dem nächsten Ahoy-Update dies auch für alle Entitäten aus der DTU der Fall sein wird. ;-)

lumapu added a commit that referenced this issue Aug 4, 2023
* attempt to fix homeassistant auto discovery #1066
@lumapu
Copy link
Owner

lumapu commented Aug 4, 2023

bitte mit neuer Version prüfen, ob ich es richtig verstanden habe

@nexulm
Copy link

nexulm commented Aug 4, 2023

Danke dir für diesen mega schnellen Bugfix. Leider funktioniert er bei mir leider nicht wie gehofft. Nach DTU Update v0.7.22 und HomeAssistant Neustart erhalte ich noch immer zahlreiche fehlerhaften Entitäten als Fehler. :-(
Die Änderung hat noch nicht gegriffen!?!
Oder muss hier noch der MQTT broker (mosquitto) neugestartet werden oder etwas anderes (Stichwort: cache)?

image

@lumapu
Copy link
Owner

lumapu commented Aug 4, 2023

hast du vorher die alten Daten gelöscht? Sieht irgendwie noch nicht geändert bei dir aus, so sollte es jetzt sein:

{
    "name": "CH1_YieldDay",
    "stat_t": "esp32/HMS2000.1/ch1/YieldDay",
    "unit_of_meas": "Wh",
    "uniq_id": "123456789012_ch1_YieldDay",
    "dev": {
        "name": "HMS2000.1",
        "ids": "123456789012",
        "mdl": "HMS2000.1",
        "cu": "http://10.20.3.40",
        "mf": "Hoymiles"
    },
    "dev_cla": "energy",
    "stat_cla": "total_increasing"
}

@nexulm
Copy link

nexulm commented Aug 4, 2023

Du hast natürlich Recht. :-(
Der Bugfix funktioniert. :-)
Ich vermisse allerdings nach löschen und neu hinzufügen die Gesamt "nicht" ChX Werte aus der Übersicht:
image

@lumapu
Copy link
Owner

lumapu commented Aug 4, 2023

die sollten auch da sein, allerdings als eigenes Gerät mit deinem Ahoy-DTU Namen

Edit: freut mich und danke für den sofortigen Test

Screenshot_2023-08-04-19-36-32-24_3aea4af51f236e4932235fdada7d1643.jpg

@nexulm
Copy link

nexulm commented Aug 4, 2023

Genau dieses eigene Geräte hatte ich auch gelöscht, ist jetzt aber im ersten Schritt nicht neuangelegt worden. Reboot der DTU oder HomeAssistant hat auch noch nicht gefruchtet.
Woran könnte das dann noch liegen?
Starten den MQTT Broker nochmal neu, wobei es sich dabei eher "dummes" rumprobieren handelt.
Edit:
Neustart des Broker hat nichts gebracht. Entfernen des MQTT Gerätes aus HA und neu hinzufügen leider auch nichts. Das Gerät fehlt weiterhin!?!

@lumapu
Copy link
Owner

lumapu commented Aug 4, 2023

hast du in Ahoy im den Einstellungen unter MqTT auf send gedrückt?

@rmayergfx
Copy link

Der Workaround funktioniert, aber damit verliert man leider auch bei allen Sensoren die Historie!

@lumapu
Copy link
Owner

lumapu commented Aug 4, 2023

hmm. Gibt es bessere Vorschläge? Ich denke HA hat hier inkompatible Änderungen gemacht.

@nexulm
Copy link

nexulm commented Aug 4, 2023

hast du in Ahoy im den Einstellungen unter MqTT auf send gedrückt?

Ja, mehrfach. Es wurde weder ein weiteres Device Ahoy-DTU wie ich es früher (vor dem löschen) hatte noch die fehlenden Werte aufgenommen.
ABER
Verrückt ist, dass ich ein Downgrade auf v0.7.21 gemacht habe, wieder auf "send" gedrückt habe und siehe da, es wurde zwar weiterhin kein weiteres Device Ahoy-DTU angelegt, aber die übergeordneten Werte Yield Day, ... wurden wieder (diesmal auf dem vorhanden Device) mitgesendet.
Nach dem Update auf v0.7.22 habe ich nun alle wieder alle Werte ohne die Namens-Fehlermeldungen. Perfekt. :-)

@nexulm
Copy link

nexulm commented Aug 4, 2023

Der Workaround funktioniert, aber damit verliert man leider auch bei allen Sensoren die Historie!

Sieht bei mir aber plausibel aus, nur kurze Unterbrechung (kaum wahrnehmbar) zwischen 19:15 und 19:45 Uhr beim Update der DTU und der Reboots.
image

image

Beim letzten Screenshot sieht man auch schön die fehlenden Werte von Yield Day und Power P_DC ab ca. 19:10 Uhr. Die anderen Werte werden brav auch mit v0.7.22 erfasst und visualisiert.

@lumapu lumapu added the fixed dev fixed label Aug 4, 2023
@nexulm
Copy link

nexulm commented Aug 5, 2023

Der Bug kann aus meiner Sicht geschlossen werden. Mit v0.7.23 habe ich wieder alle Werte verfügbar. MQTT AhoyDTU löschen und einmalig "send" in der Weboberfläche unter MQTT hat bei mir wieder alle Entitäten hergestellt. Nach einem HA Reboot sind dann auch die Warnungen bezgl. MQTT entity naming guideline Geschichte. :-)
Vielen Dank für den schnellen Bugfix vom Bugfix. ;-)
Auch ist die History OK.
Als Beispiel der Hauptkanal, der mit v0.7.22 gestern Abend nach Update nicht ging und mit v0.7.23 mit Update von heute morgen wieder unauffällig funktioniert. :-)
image

Demgegenüber noch ein exemplarische Screenshot aus Ch1 wo die Werte immer (nur durch Updates/Resets kurzzeitig unterbrochen) mit v0.7.22 und v0.7.23 weiter erfasst werden.
image

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working fixed dev fixed
Projects
None yet
Development

No branches or pull requests

6 participants