Your cart is currently empty!
Watts Live ind i MQTT og Home Assistant
- Forudsætning og good-to-know
- Opsætning af BLE characteristics
- Få data ind i Home Assistant
- Too long, did not read (for nørderne)
Forudsætning og good-to-know
MQTT opsætning med Watts Live enheden er desværre ret teknisk, men de bør være i gang med at optimere dette flow. De fleste der opsætter det, kommer til at udfordre sig selv på nogle teknologier, de nok aldrig har arbejdet med før. Heriblandt er der eksempelvis brugt Bluetooth Low Energy (BLE). MEN!.. hvis du følger denne guide, så burde det være ret nemt!
Link til deres guide: https://watts.zendesk.com/hc/da/articles/10271861655580-Brug-Watts-Live-sammen-med-Home-Assistant
1. nRF Connect
Hop ind i din telefons app store og hent nRF Connect appen. Denne skal vi bruge til at kommunikere med Watts Live enheden.
2. BLE
Uden at gå for meget i detaljer, så findes der BLE services og BLE characteristics. De kan generelt kendes ud fra at have et UUID ligesom dette: fdcc2493-61be-421b-972c-d0be66b3d4a6
En service (MQTT) kan have mange characteristics (hostname, port, username og password).
Du kan aflæse (READ) og skrive (WRITE) til characteristics, men hver characteristic har en type såsom tekst (TEXT) og tal (UINT16). Det er vigtigt under opsætningen, at du vælger de rigtige typer, for ellers vil opsætningen fejle.
READ ligner en pil ned og WRITE ligner en pil op. Tænk på download og upload.
3. Sluk/genstart af Watts Live
For at genstarte Watts Live enheden, skal du tage den ud af din elmåler og vente indtil LEDerne stopper med at lyse. De må hverken blinke eller være tændt. Dette kan godt tage op til 5 minutter (dog omkring 2-3 minutter ud fra mine tests).
Du skal i alt genstarte din Watts Live enhed to gange.
4. MQTT information
Du kan bruge hvilken som helst MQTT broker såsom Mosquitto eller HiveMQ, men Watts Live understøtter desværre ikke SSL/TLS certifikater. Watts Live understøtter username og password, så du er i det mindste lidt sikret!
Dit Watts Live data findes under dette topic: watts/SERIENUMMER/measurement
SERIENUMMER
kan du (desværre) kun finde på det fysiske produkt eller boksens omslag. I mit MQTT Explorer program til Windows, får jeg bare alt lortet serveret på et sølvfad, uden at skulle vælge hvilke topics jeg vil subscribe til. Alternativt kan man hos mange brokere og i mange programmer bare subscribe på #
, hvilket burde give det samme.
SERIENUMMER er IKKE det samme som det serienummer du kan se i appen.
Opsætning af BLE characteristics
Start med at tage din Watts Live ud af elmåleren. Vent indtil alle LEDer stopper med at lyse. Sæt den derefter i elmåleren igen, hvorefter LEDerne begynder at blinke igen.
Åbn nRF Connect applikationen på din telefon og tryk på Scan oppe i højre hjørne. På listen burde du nu finde Watts Live, hvorefter du kan trykke på Connect:
Du er nu inde på en ny skærm, hvor du kan se de forskellige services. Find den der har dette UUID:
a2e1ea9b-01e8-4fe5-9b99-35e9cb44d4b6
Udvid den ved at trykke på hele rækken, hvorefter der burde komme en masse characteristics frem (4 i mit tilfælde). Disse characteristics er hostname, port, username og password:
8143af58-b9b8-47ca-911d-ad3564f10d0b
– Hostname – TEXT (tekst)
c0175553-1ffd-4eb5-99ca-dc271f4ca050
– Port – UINT16 (tal)
41b6703a-0bac-46b4-a0fa-273f5bf641dc
– Username – TEXT (tekst)
a59394ed-b929-41a9-81ab-8a16eec6a28c
– Password – TEXT (tekst)
Kan du huske, jeg nævnte at typerne var vigtige? De skal nemlig vælges nu, når du skal til at WRITE dine oplysninger.
Hvis din MQTT broker ikke kræver et login, så skal du bare ignorere username og password. Du behøver ikke skrive en tom streng eller lignende.
I nRF Connect skal du blot klikke på pil op (WRITE) ud fra hver characteristic og så udfylde dem med dine oplysninger. Det kunne ligne noget i denne stil for hostname:
Og for port:
Bemærk at jeg har valgt TEXT for hostname og UINT 16 for port.
Så skal du bare klikke på Send, og så bliver værdierne skrevet direkte til din Watts Live enhed.
Du kan med fordel trykke på pil ned (READ), for at sende et “BLE request” der anmoder om, hvad enheden har gemt for den characteristic. nRF Connect har lidt svært ved at konvertere en UINT 16 om til et normalt tal, så du ser måske et hexadecimal tal i stedet for.
Nu skal du egentligt bare genstarte din Watts Live enhed. Tag strømmen fra, vent til LEDerne stopper med at lyse og sæt den til igen. Hop ind i din yndlings MQTT explorer og se dine nye fantastiske værdier:
Få data ind i Home Assistant
Watts teamet har været så rar at inkludere et par templates til sensors, så man kan hive dataen ud af MQTT og ind i sensors:
mqtt:
- sensor: &watts_sensor
name: Positive Active Energy
device:
name: Watts Live (SERIAL_NUMBER)
identifiers: SERIAL_NUMBER
device_class: energy
state_class: total
unit_of_measurement: Wh
state_topic: watts/SERIAL_NUMBER/measurement
value_template: "{{ value_json.positive_active_energy }}"
unique_id: positive_active_energy
- sensor:
<< : *watts_sensor
name: Negative Active Energy
device_class: energy
state_class: total
unit_of_measurement: Wh
value_template: "{{ value_json.negative_active_energy }}"
unique_id: negative_active_energy
- sensor:
<< : *watts_sensor
name: Positive Reactive Energy
device_class: energy
state_class: total
unit_of_measurement: varh
value_template: "{{ value_json.positive_reactive_energy }}"
unique_id: positive_reactive_energy
- sensor:
<< : *watts_sensor
name: Negative Reactive Energy
device_class: energy
state_class: total
unit_of_measurement: varh
value_template: "{{ value_json.negative_reactive_energy }}"
unique_id: negative_reactive_energy
- sensor:
<< : *watts_sensor
name: Positive Active Power
device_class: power
state_class: measurement
unit_of_measurement: W
value_template: "{{ value_json.positive_active_power }}"
unique_id: positive_active_power
- sensor:
<< : *watts_sensor
name: Negative Active Power
device_class: power
state_class: measurement
unit_of_measurement: W
value_template: "{{ value_json.negative_active_power }}"
unique_id: negative_active_power
- sensor:
<< : *watts_sensor
name: Positive Active Power L1
device_class: power
state_class: measurement
unit_of_measurement: W
value_template: "{{ value_json.positive_active_power_l1 }}"
unique_id: positive_active_power_l1
- sensor:
<< : *watts_sensor
name: Positive Active Power L2
device_class: power
state_class: measurement
unit_of_measurement: W
value_template: "{{ value_json.positive_active_power_l2 }}"
unique_id: positive_active_power_l2
- sensor:
<< : *watts_sensor
name: Positive Active Power L3
device_class: power
state_class: measurement
unit_of_measurement: W
value_template: "{{ value_json.positive_active_power_l3 }}"
unique_id: positive_active_power_l3
- sensor:
<< : *watts_sensor
name: Negative Active Power L1
device_class: power
state_class: measurement
unit_of_measurement: W
value_template: "{{ value_json.negative_active_power_l1 }}"
unique_id: negative_active_power_l1
- sensor:
<< : *watts_sensor
name: Negative Active Power L2
device_class: power
state_class: measurement
unit_of_measurement: W
value_template: "{{ value_json.negative_active_power_l2 }}"
unique_id: negative_active_power_l2
- sensor:
<< : *watts_sensor
name: Negative Active Power L3
device_class: power
state_class: measurement
unit_of_measurement: W
value_template: "{{ value_json.negative_active_power_l3 }}"
unique_id: negative_active_power_l3
- sensor:
<< : *watts_sensor
name: Positive Reactive Power
device_class: reactive_power
state_class: measurement
unit_of_measurement: var
value_template: "{{ value_json.positive_reactive_power }}"
unique_id: positive_reactive_power
- sensor:
<< : *watts_sensor
name: Negative Reactive Power
device_class: reactive_power
state_class: measurement
unit_of_measurement: var
value_template: "{{ value_json.negative_reactive_power }}"
unique_id: negative_reactive_power
- sensor:
<< : *watts_sensor
name: Voltage L1
device_class: voltage
state_class: measurement
unit_of_measurement: V
value_template: "{{ value_json.voltage_l1 }}"
unique_id: voltage_l1
- sensor:
<< : *watts_sensor
name: Voltage L2
device_class: voltage
state_class: measurement
unit_of_measurement: V
value_template: "{{ value_json.voltage_l2 }}"
unique_id: voltage_l2
- sensor:
<< : *watts_sensor
name: Voltage L3
device_class: voltage
state_class: measurement
unit_of_measurement: V
value_template: "{{ value_json.voltage_l3 }}"
unique_id: voltage_l3
- sensor:
<< : *watts_sensor
name: Current L1
device_class: current
state_class: measurement
unit_of_measurement: A
value_template: "{{ value_json.current_l1 }}"
unique_id: current_l1
- sensor:
<< : *watts_sensor
name: Current L2
device_class: current
state_class: measurement
unit_of_measurement: A
value_template: "{{ value_json.current_l2 }}"
unique_id: current_l2
- sensor:
<< : *watts_sensor
name: Current L3
device_class: current
state_class: measurement
unit_of_measurement: A
value_template: "{{ value_json.current_l3 }}"
unique_id: current_l3
Jeg bruger desværre en lidt anden måde at sætte MQTT sensors op, så jeg har eksempelvis dette i min configuration.yaml fil:
mqtt:
sensor: !include mqtt_sensor.yaml
Og i min mqtt_sensor.yaml fil har jeg så været nødt til at tilføje state_topic: watts/SERIAL_NUMBER/measurement
for hver eneste:
- name: Positive Active Power
device_class: power
state_class: measurement
unit_of_measurement: W
state_topic: watts/MIT ID HER SOM TEKST/measurement
value_template: "{{ value_json.positive_active_power }}"
unique_id: positive_active_power
- name: Negative Active Power
device_class: power
state_class: measurement
unit_of_measurement: W
state_topic: watts/MIT ID HER SOM TEKST/measurement
value_template: "{{ value_json.negative_active_power }}"
unique_id: negative_active_power
Hvis nogen ved hvordan man benytter sig af “variabler” ligesom i deres eksempel, så skriv gerne!
Genstart Home Assistant efter du har fået værdierne ind, så burde du nu få en masse sensors med værdierne i:
Derefter kan du lave en ny sensor, som tæller værdien op løbende, hvor du så kan tilføje den til Energy tabben i Home Assistant, hvor du kan få bonuspoint, hvis du har sat Energi Data Service op til at trække prisen i samme omgang:
template:
- sensor:
- name: "Watts Live lifetime consumption"
unit_of_measurement: "Wh"
state: "{{ states('sensor.positive_active_power') }}"
state_class: "total_increasing"
device_class: "energy"
Disclaimer: Jeg er ikke 100% sikker på, det er sådan det fungerer, hvis man har solceller, inverter og så videre. Hvis nogen ved mere om det, så prik gerne til mig.
Watts har også lavet deres egne Apex Charts grafer og sensors, som du kan bruge eller drage inspiration fra. Dem finder du i deres guide og kan eksempelvis se sådan her ud:
Too long, did not read (for nørderne)
- Genstart din Watts Live enhed og vent indtil LEDerne slukker, før du kobler den til igen
- Forbind til den med nRF Connect eller lignende og find servicen
a2e1ea9b-01e8-4fe5-9b99-35e9cb44d4b6
- Skriv værdierne til disse characteristics (undlad username og password, hvis du ikke har det):
8143af58-b9b8-47ca-911d-ad3564f10d0b
– Hostname – TEXT (tekst)c0175553-1ffd-4eb5-99ca-dc271f4ca050
– Port – UINT16 (tal)41b6703a-0bac-46b4-a0fa-273f5bf641dc
– Username – TEXT (tekst)a59394ed-b929-41a9-81ab-8a16eec6a28c
– Password – TEXT (tekst)
- Genstart din Watts Live enhed
31 svar til “Watts Live ind i MQTT og Home Assistant”
-
tak for vejledning. Virkede indtil Template sensor som jeg ikke kan få til at virke med den template. Så jeg bruger watts vejl. og beskrivelse for tidligere versioner.
Er der en oversætter for hvad de enkelte sensore er oversat til dansk f.eks. Negativ Activ Energy og Positiv Active Energy ?-
Hmm hvilken fejl får du med min sensor? Hvis du ikke har gjort præcis ligesom mig, hvor du har en !include mqtt_sensor.yaml (eller andet filnavn), så vil det fejle, ja. Jeg ved desværre ikke om der findes et form for katalog over de enkelte sensorer, men det meste burde give mening synes jeg.
-
Er det sådan en beskrivelse her du leder efter? https://watts.zendesk.com/hc/da/articles/10367439587996
-
Lige nøjagtigt!
Tak.
-
-
-
Sikkert et dumt spørgsmål, men forbinder den til HA via. Bluetooth? Kræver det så, at ens HA er tæt på Watts måleren?
Jeg kører det på en Raspberry pi 3 som har indbygget BT. -
Det var så et dumt spørgsmål. Der står jo direkte på deres side: Watts Live Echelon kræver en 2.4GHz WiFi forbindelse ved måleren
-
Haha, ingen dumme spørgsmål her. Korrekt at den hopper på via WiFi og sender MQTT dataen over WiFi. Bluetooth bruges udelukkende til MQTT opsætningen, mig bekendt.
-
-
Tak for en super fin guide, som gjorde det ganske nemt at få det hele sat op.
Jeg har dog et problem med at få min “total_increasing” template sensor til at virke ordentligt.
Som i dit eksempel benytter jeg state fra “sensor.positive_active_power”, men min nye sensor “Watts Live lifetime consumption” sensor tæller ikke kun op som jeg ville have forventet, nej den tæller lige så meget nedad.Eksempel: 0.306 – 0.304 – 0.302 – 0.309 – 0.332
Har nogen oplevet noget af det samme og evt. kender til en løsning?
-
Jeg oplever lidt i samme stil, desværre. Jeg har måske misforstået hvordan den her sensor virker. Hvis det er den der overhovedet skal bruges. Værdierne burde ændre sig, men den skal være total_increasing fordi der “bagved” så bliver talt op. Tror jeg. Jeg har lige prøvet at ændre den til kWh (og divideret nummeret med 1000), så må vi se om det hjælper herfra. Tallet i energi tabben er i hvert fald stukket heeelt af!
-
Jeg bruger positive_active_energy som sensor i energisektionen. Det fungerer og den tæller op i løbet af dagen.
Se evt. https://watts.zendesk.com/hc/da/articles/10367439587996-
Det var lige præcis dét jeg også fik fundet frem til, efter at have læst Watts egen beskrivelse af mqqt payloads. Energy Dashboard skal altså bare have positive_active_energy direkte ind. Da jeg har behov for at få oprettet individuelle sensorer på daglig , ugentlig, månedlig og årlig forbrug, har jeg blot lavet en række utility_meter sensorer ved siden af. Det virker perfekt, så alt er godt nu.. 🙂
-
Hej Peter,
Vil du dele koden til de sensorer for daglig, ugentlig og månedlig forbrug?
-
-
-
-
Nu findes der jo ingen dumme spørgsmål har jeg læst længere oppe, så… 🙂
Det hostname der skal skrives i Watts modulet, er det adressen på ens Home Assistant?
Jeg går ud fra at det er der man installerer MQTT?-
Det er hvor end du rammer din (typisk) port 1883. Du kan installere din MQTT broker hvor du har lyst, og så prøve at ramme den med MQTT Explorer eller lignende værktøjer. Hvis du tilgår HA på 192.168.1.123:8123, og du har installeret Mosquitto inde i HA, så er der en god chance for at hostname blot er 192.168.1.123 – altså samme som din HA.
-
-
danskhomeassistantgruppe rabat koden virker ikke mere
-
Korrekt – tak fordi du mindede mig om det. Den udløb desværre i dag.
-
Man kan få 20% indtil d.24/9 her: https://watts.zendesk.com/hc/da/articles/10271861655580-Brug-Watts-Live-sammen-med-Home-Assistant
Tilbud:
I denne uge kører vi tilbud på Watts Live med 20% med rabatkoden:
wattslive20
Gældende til og med: 24. september 2023
https://shop.watts.dk/
-
-
-
Hej!
Jeg havde det indtryk at data fra el-måleren var krypteret med to unikke nøgler som skulle rekvireres fra forsyningsselskabet.
Skal disse nøgler ikke også konfigureres i Watts modulet?-
Jo, men den del foregår i selve opsætningen af Watts Live modulet. Du kan se nærmere omkring krypteringsnøglerne her: https://shop.watts.dk/netselskaber/
-
-
Ahh, så man skal bruge Watts App’en til den del af opsætningen? Egentlig sjovt at de ikke har lavet BT opsætningen via App’en også, de kunne have fået et væsentlig bedre (mindre kompliceret) UI setup på den måde.
-
Yes, lige præcis. Jeg er under den opfattelse at MQTT opsætningen bliver forbedret, da de bare skulle have det ud på markedet hurtigst muligt (som jo er forståeligt). Det tager nu ellers ikke mange minutter at gøre det på denne måde, men det er lidt besværligt.
-
-
Tak for guiden.
Det er noget af det mere avancerede jeg har lavet i HA, men det lykkedes til sidst 🙂
Jeg gik selv i “fælden” med din sensor til at tælle op og missede at Watts linker til følgende side, hvor de nævner at bruge positive_active_energy i HA energytrackeren: https://watts.zendesk.com/hc/da/articles/10367439587996
-
Til dem der kommer i samme situation som mig:
For et års tid siden rekvirerede jeg krypteringsnøgle via email hos Radius, disse blev tilsendt efterfølgende fra Kamstrup. Jeg fik tilsendt gpk60 og gpk61 nøglerne og disse har virket fint på mit hjemmelavede HAN modul.
Efter skift til Watts Live har der været lidt problemer med at få det til at virke, indtil jeg blev oplyst at det var gpk11 nøglen jeg skulle bruge, denne kan rekvireres via dette link, “https://encryptionkey.azurewebsites.net/encryption-key”Håber det kan spare andre for nogle spildte timer. :o)
-
Hi alle sammen,
my written Danish is a bit weak sorry for that.
First thanks for the guide! I got my reader yesterday and love it.
The only thing I can not get to work is the authenticated MQTT access.
Anyone had similar issues?
I chose the text format and the username + password but I can see in my Mosquito logs that the access gets denied. All other devices connect seamlessly with the same username/ password. Once I switch to unauthorized it works and I can see my Watts data coming in. Any ideas? I tried to push both username and password multiple times to the reader but no success.
Tak!-
Hmm not really sure about that, to be honest. Does your username or password contain any unusual characters? Is the encoding set to UTF-8?
-
Thanks for getting back to me so quickly!
No unusual characters, just numbers and letters, but its 39 chars long. I ensured the UTF-8 format.
Maybe I hit some char limit.-
Hmm I just spoke to Watts about it, and the character limit is 64. I was worried it might be 32. They don’t have a good suggestion what it could be. Can you connect to your MQTT instance using the username and password using something like MQTT Explorer?
-
Hey Morten,
sorry for the late reply.
I had ensured with MQTT Explorer that my credentials worked as expected and also recently had added a Ulanzi clock (which I can highly recommend ;)) via MQTT.
Long story short, I created a new MQTT user with no capital letter and a shorter password and that did the trick 🙂
The energy reader works now as expected and I love it. Next plan is to add some solar panels to my roof and a battery storage. You don’t happen to have some experience with that? 🙂
I also wanna start reading out my fjernvame somehow but not sure if there is a similar Watts reader for that.
Thanks again!!
-
-
-
-
-
Watts giver 30% rabat på modulet i weekenden 25-26 november, se detaljer i Watts appen
-
Mange tak for en fantastisk og nem at forstå guide.
Med hensyn til variabler i separat folder ser det ud til at jeg har fundet en løsning.Så for dem som ikke har fået det til at virke endnu i en separat folder eller er ved at sæt det op for første gang. Så var det det her jeg gjorde:
I configuration yaml skrev jeg følgende:
mqtt: !include mqtt_sensor.yaml
I stedet for:
mqtt:
sensor: !include mqtt_sensor.yamlI mqtt_sensor.yaml copy pastede jeg bare alt den konfiguration fra Watts live dokumentationen pånær MQTT:
Her er de 2 første sensor’ere som eksempel(serial nr skal selvfølgelig udskiftet):
– sensor: &watts_sensor
name: Positive Active Energy
device:
name: Watts Live (SERIAL_NUMBER)
identifiers: SERIAL_NUMBER1
device_class: energy
state_class: total
unit_of_measurement: Wh
state_topic: watts/SERIAL_NUMBER/measurement
value_template: “{{ value_json.positive_active_energy }}”
unique_id: positive_active_energy
– sensor:
<< : *watts_sensor
name: Negative Active Energy
device_class: energy
state_class: total
unit_of_measurement: Wh
value_template: "{{ value_json.negative_active_energy }}"
unique_id: negative_active_energy -
Kan se den ikke beholder mellemrum hvis linjen starter med mellemrum når jeg slår kommentaren op, så her er config igen hvor * bliver brugt som mellemrum, så der hvor der er * skifter man det bare ud med mellemrum(pånær den her *watts_sensor):
**- sensor: &watts_sensor
******name: Positive Active Energy
******device:
********name: Watts Live (11D1045220005661)
********identifiers: 11D1045220005661
******device_class: energy
******state_class: total
******unit_of_measurement: Wh
******state_topic: watts/11D1045220005661/measurement
******value_template: “{{ value_json.positive_active_energy }}”
******unique_id: positive_active_energy
**- sensor:
******<< : *watts_sensor
******name: Negative Active Energy
******device_class: energy
******state_class: total
******unit_of_measurement: Wh
******value_template: "{{ value_json.negative_active_energy }}"
******unique_id: negative_active_energy
Skriv et svar