
- 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
Skriv et svar