MQTT integration med Home assistant verkar felaktig och fyller loggen

Hej.

Jag har ett problem med att integrationen med Home Assistant över MQTT inte riktigt verkar fungera.
Det är så att det kommer attribut som inte känns igen och det fyller loggen med rader.
Detta i sin tur innebär att jag måste rensa loggarna och starta om servern för att den skall fungera med jämna mellanrum.

Logger: homeassistant.helpers.template
Source: helpers/template.py:2209
First occurred: October 25, 2023 at 11:09:00 (126068 occurrences)
Last logged: 11:07:45

Template variable warning: ‘dict object’ has no attribute ‘csL3’ when rendering ‘{{value_json.csL3}}’
Template variable warning: ‘dict object’ has no attribute ‘csL2’ when rendering ‘{{value_json.csL2}}’
Template variable warning: ‘dict object’ has no attribute ‘csL1’ when rendering ‘{{value_json.csL1}}’
Template variable warning: ‘dict object’ has no attribute ‘bW’ when rendering ‘{{value_json.bW}}’
Template variable warning: ‘dict object’ has no attribute ‘bWh’ when rendering ‘{{value_json.bWh}}’

Som det verkar så är så att dessa värden är konfigurerade som sensorer men inte kommer med i själva statusmeddelandet och då säger Home Assistant till, detta är en feature som kommer att generera fel så småningom om jag förstår saker rätt.

Nedan har jag inkluderat loggar från MQTT integrationen med kommentarer, vill gärna få detta löst då det börjar bli problematiskt med alla omstarter.

Typiskt statusmeddelande

{“m”:“HAN”,“t”:“2023-10-26T10:24:15+0100”,“W”:3010,“Wh”:36934916,“Ph”:4,“Rh”:6215767,“Qh”:2983327,“P”:0,“R”:1416,“Q”:0,“L1”:821,“P1”:0,“R1”:494,“Q1”:0,“I1”:4.100,“U1”:231.800,“L2”:1140,“P2”:0,“R2”:580,“Q2”:0,“I2”:5.500,“U2”:230.600,“L3”:1047,“P3”:0,“R3”:342,“Q3”:0,“I3”:4.800,“U3”:230.100,“sec”:1698312258,“dW”:-16}

Exempel på konfiguration som skickas:
Message 159 received on homeassistant/sensor/csL1_0cbf1e79cf58/config at 11:43:

{
“uniq_id”: “csL1_0cbf1e79cf58”,
“obj_id”: “csL1_0cbf1e79cf58”,
“name”: “Currently ChangeScore L1”,
“dev_cla”: “power”,
“stat_t”: “currently/one/0cbf1e79cf58/state”,
“unit_of_meas”: “kW”,
“val_tpl”: “{{value_json.csL1}}”
}
QoS: 0 - Retain: true
Message 158 received on homeassistant/sensor/csL2_0cbf1e79cf58/config at 11:43:
{
“uniq_id”: “csL2_0cbf1e79cf58”,
“obj_id”: “csL2_0cbf1e79cf58”,
“name”: “Currently ChangeScore L2”,
“dev_cla”: “power”,
“stat_t”: “currently/one/0cbf1e79cf58/state”,
“unit_of_meas”: “kW”,
“val_tpl”: “{{value_json.csL2}}”
}
QoS: 0 - Retain: true
Message 157 received on homeassistant/sensor/csL3_0cbf1e79cf58/config at 11:43:
{
“uniq_id”: “csL3_0cbf1e79cf58”,
“obj_id”: “csL3_0cbf1e79cf58”,
“name”: “Currently ChangeScore L3”,
“dev_cla”: “power”,
“stat_t”: “currently/one/0cbf1e79cf58/state”,
“unit_of_meas”: “kW”,
“val_tpl”: “{{value_json.csL3}}”
}
Message 161 received on homeassistant/sensor/bWh_0cbf1e79cf58/config at 11:43:
{
“uniq_id”: “bWh_0cbf1e79cf58”,
“obj_id”: “bWh_0cbf1e79cf58”,
“name”: “Currently imps”,
“dev_cla”: “energy”,
“stat_cla”: “total_increasing”,
“stat_t”: “currently/one/0cbf1e79cf58/state”,
“unit_of_meas”: “Wh”,
“val_tpl”: “{{value_json.bWh}}”
}
QoS: 0 - Retain: true
Message 160 received on homeassistant/sensor/blink_0cbf1e79cf58/config at 11:43:
{
“uniq_id”: “blink_0cbf1e79cf58”,
“obj_id”: “blink_0cbf1e79cf58”,
“name”: “Currently Blink Power”,
“dev_cla”: “power”,
“stat_t”: “currently/one/0cbf1e79cf58/state”,
“unit_of_meas”: “W”,
“val_tpl”: “{{value_json.bW}}”
}

Denna konfiguration verkar inte generera någon varning men då är å andra sidan I2 med i statusmeddelandet.

Message 23 received on homeassistant/sensor/I2_0cbf1e79cf58/config at 11:51:
{
“uniq_id”: “I2_0cbf1e79cf58”,
“obj_id”: “I2_0cbf1e79cf58”,
“name”: “Currently I2”,
“dev_cla”: “current”,
“stat_t”: “currently/one/0cbf1e79cf58/state”,
“unit_of_meas”: “A”,
“val_tpl”: “{{value_json.I2}}”
}

För att förvirra saker ytterligare verkar det som dessa konfigurationer inte genererar någon varning (vad jag kan se):

Message 44 received on homeassistant/sensor/csR_0cbf1e79cf58/config at 11:51:
{
“uniq_id”: “csR_0cbf1e79cf58”,
“obj_id”: “csR_0cbf1e79cf58”,
“name”: “Currently ChangeScore R”,
“dev_cla”: “reactive_power”,
“stat_t”: “currently/one/0cbf1e79cf58/state”,
“unit_of_meas”: “var”,
“val_tpl”: “{{value_json.csR}}”
}
QoS: 0 - Retain: true
Message 43 received on homeassistant/sensor/csBLINK_0cbf1e79cf58/config at 11:51:
{
“uniq_id”: “csBLINK_0cbf1e79cf58”,
“obj_id”: “csBLINK_0cbf1e79cf58”,
“name”: “Currently ChangeScore BLINK”,
“dev_cla”: “power”,
“stat_t”: “currently/one/0cbf1e79cf58/state”,
“unit_of_meas”: “kW”,
“val_tpl”: “{{value_json.csBLINK}}”
}
QoS: 0 - Retain: true
Message 42 received on homeassistant/sensor/csW_0cbf1e79cf58/config at 11:51:
{
“uniq_id”: “csW_0cbf1e79cf58”,
“obj_id”: “csW_0cbf1e79cf58”,
“name”: “Currently ChangeScore Total”,
“dev_cla”: “power”,
“stat_t”: “currently/one/0cbf1e79cf58/state”,
“unit_of_meas”: “kW”,
“val_tpl”: “{{value_json.csW}}”
}

EDIT:
Ser sensorerna csL1, csL2 och csL3 registrerade som entities i Home assistant också.
image

Hej Marco,
du har varit med så länge med Currently One att vi hunnit sluta använda (och registrera) ChangeScore sensor.cs*_deviceId.
I nuläget kommer jag inte på något bättre än manuell delete av sensorerna (som är discovery-registrerade med retain-flaggan satt till true. I

står det Delete the sensor by sending an empty message.

mosquitto_pub -h 127.0.0.1 -p 1883 -t "homeassistant/binary_sensor/garden/config" -m ''

vilket då skulle bli

mosquitto_pub\
 -h 127.0.0.1\
 -p 1883\
 -t homeassistant/sensor/csBLINK_3c690779cf58/config\
 -r\
 -m ''

för att ta bort csBLINK. Upprepa för csL1, csL2, csL3, csR, csR1, csR2, csR3 och csW med ditt deviceId.

Tack så mycket för svaret!

Jag har nu lyssnat igenom alla meddelanden och försökt ta bort dessa retained messages.
Tricket var att ange de tomma som retained också, det missade jag först men såg det när du skrev ditt kommando.

Tack ännu en gång, nu vet jag hur jag skall lösa eventuella problem om jag hittar flera (vilket jag gjorde när jag började ta bort dessa konfigurationer).

2 Likes

Tjena! Jag har varit med ett tag också, men inte förrän nu fått upp HA hemma.

Jag har alltså samma fel i loggarna. Hur tar jag bort detta? jag är inte helt med på var jag ska skicka dessa meddelanden. Kör jag dem på nåt sätt i terminalen ine i HA? eller kan jag på nåt sätt använda den MQTT explorer jag fått upp? helt ny på den också, så en superpedagogisk förklaring? @ola_stopgap

En annan sak som hände mig med HA, var att jag klyddade till min HA, och återställde den från backup. Efter det kom inte currently upp. Lite felsökning idag visade att currently av nån anledning tappat bort MQTT inställningarna. Hur kan det komma sig?

HIttade nu i MQTT Explorer att jag i homeassistant/sensor/ finns ett gäng topics. Det går ju att trycka på dessa och trycka delete. Är det vad jag vill för de du skrev ovan? Du får gärna bekräfta innan jag faktiskt gör det. Orkar inte klydda till mer =)

Ja, det bör det vara. Det är också så att om du råkar ta bort nån topic för mycket (som fortfarande används), så kommer Currently One publicera dem igen (config med retain true), så borde inte vara hela världen.

Tjena! Nu har jag kollat lite mer i loggen, och har två såna meddelanden kvar, som jag inte kan få bort genom att deleta MQTT topics med MQTT explorer, av den enkla anledning att de inte finns där. Hur får jag bort dessa två? Jag är ganska säker på att de inte var där efter att jag rensade ut de andra.

2023-11-28 23:02:12.563 WARNING (MainThread) [homeassistant.helpers.template] Template variable warning: ‘dict object’ has no attribute ‘bW’ when rendering ‘{{value_json.bW}}’

2023-11-28 23:02:12.563 WARNING (MainThread) [homeassistant.helpers.template] Template variable warning: ‘dict object’ has no attribute ‘bWh’ when rendering ‘{{value_json.bWh}}’

Hej,
dessa två sensorer (bW, bWh) är för de som kör med LED-pulsens BLINK, så din enhet skickar kanske inte med dem i alla/något mqtt-meddelande.
BLINK and HAN combined
Fixas i firmware 2.2.7.6 och senare,

  • do not discover-publish sensor.bW and bWh if HAN mode only

url: https://collector.currently.cloud/firmware/one/device-2.2.7.6-esp32v1.bin
md5: 1d8738a37ecb179dca72fb0cb25f4daa

Fick oxå detta felet i loggen trots att jag bara ägt/använt enheten i någon vecka men jag har testat blink+han läget och sedan stängt av det igen, löste det genom att plocka bort meddelandena från mqtt servern med hjälp av MQTT explorer

1 Like

Har gett mig på att försöka sätta upp Home Assistant på en Pi 4 för att integrera med Currently One. Egentligen pga ett missförstånd att den då automatiskt skulle identifiera olika apparater (utan att behöva lägga till dem manuellt, som i t.ex. Edna) :laughing:. Hursomhelst kan jag nog säkert ha kul med detta och alla andra smart hem prylar jag redan har.

Hursomhelst, har lite problem med integrationen av Currently One (CO). Allt verkar funka förutom att CO verkar droppa anslutningen i princip på en gång. Se bild. Beror det på avståndet/signalstyrka månntro, eller något annat?

Hej,
min första misstanke är att du inte fått till credentials när Currently One kopplar sig mot din MQTT-broker.
Kolla inlägget på tråden Vad innebär MQTT broker? - #14 by ola_stopgap
så att du fått rätt format
[user:pass@]host[:port]
i webbinterfacet.
Om det ändå inte funkar, kolla din enhets loggar längst ned i webbinterfacet, där borde synas nån ledtråd.

Hälsningar
Ola på Currently

Hej igen,

Den verkar ju få över data faktiskt så jag undrar om det är såhär den “ska” fungera? Dvs den etablerar inte en stadig session á la TCP…eller?

Hej,
Currently One (klienten) etablerar en långvarig session över TCP, och gör automatiskt reconnect vid behov. På den sessionen skriver den mqtt-meddelanden vid varje telegram från elmätaren alt. varje gång blinkfrekvensen (trefas-effekten) ändras.
När jag tittar i min broker-logg ser jag att klienten är connectad över 1h innan den kopplar om efter timeout.

Hälsningar Ola

Har hittat orsaken nu, det är HAs egen supervisor som kollar att tjänsten lever :laughing: (därav också den avvikande IP-adressen från övriga LANet). Så allt funkar som det ska verkar det som…nu gäller det bara att få till identifiering av appliances :smiling_face_with_tear:. Off topic - känner du till någon add-on som kan göra detta automatiskt utifrån MQTT datat?