4 kanałowy wskaźnik poboru energii elektrycznej jest praktycznie tym samym co HomeAssistant - 1 kanałowy miernik energii lecz w tym przypadku pomiar jest dokonywany na 4 CT Clamp. Pomiar jest dokonywany poprzez przełączanie pomiędzy jednym z czterech kanałów , dokonania pomiaru i przełączeniu się na następny. Z tego powodu jest to nie płynny pomiar gdyż miernik musi przełączyć się 4 razy aby dokonać ponownie pomiaru na każdym z obwodów.
Kontrolerem jest ESP8266 i zasilany może być prądem 5V bezposrednio przez mini-USB lub prądem 12V przez dedykowane złącze.
Do poprawnej pracy wymagane jest posiadanie czterech CT Clamp które muszą być założone na odseparowaną ale odizolowaną linie / kabel dodatni L
Urządzenie zostało zaprogramowane przez ESPHome , i na stronie https://esphome.io/ znajdziecie więcej pomocy
Przykładowy kod:
substitutions:
update_time: never
disp_name: Ring
ic1Volts: "240"
esphome:
name: mainspower
platform: ESP8266
board: d1_mini
logger:
level: DEBUG
# Enable Home Assistant API
api:
encryption:
key: ""
captive_portal:
web_server:
port: 80
ota:
- platform: esphome
password: ""
wifi:
networks:
- ssid:
password:
- ssid:
password:
time:
- platform: homeassistant
id: homeassistant_time
#.......................................
#...Below script sets up PIN A and B ...
#......then tells CT# to update.........
#.......................................
interval:
- interval: 15s
then:
- script.execute: readCTs
script:
- id: readCTs
then:
# A B CT
# 0 0 1
# 1 0 3
# 0 1 2
# 1 1 4
# setup for CT1 A=0 B=0 - ct1Amps
- output.turn_off: pinA
- output.turn_off: pinB
- delay: 2s
- component.update: ct1Amps
- delay: 500ms
- component.update: ct1Watts
- delay: 500ms
# setup for CT2 A=0 B=1 - ct2Amps
- output.turn_off: pinA
- output.turn_on: pinB
- delay: 2s
- component.update: ct2Amps
- delay: 500ms
- component.update: ct2Watts
- delay: 500ms
# setup for CT3 A=1 B=0 - ct3Amps
- output.turn_on: pinA
- output.turn_off: pinB
- delay: 2s
- component.update: ct3Amps
- delay: 500ms
- component.update: ct3Watts
- delay: 500ms
# setup for CT4 A=1 B=1 - ct4Amps
- output.turn_on: pinA
- output.turn_on: pinB
- delay: 2s
- component.update: ct4Amps
- delay: 500ms
- component.update: ct4Watts
- delay: 500ms
switch:
- platform: restart
name: "Restart"
output:
- platform: gpio
pin: D1
id: pinB
- platform: gpio
pin: D2
id: pinA
sensor:
- platform: wifi_signal
name: "wifi_signal"
update_interval: 1min
- platform: uptime
name: "uptime"
id: Uptime
update_interval: 1min
- platform: adc
pin: A0
id: adc_sensor
# attenuation: 11db #esp32 only
- platform: ct_clamp
sensor: adc_sensor
name: ct1Amps
id: ct1Amps
unit_of_measurement: A
accuracy_decimals: 5
sample_duration: 200ms
update_interval: ${update_time}
filters:
- calibrate_linear:
# Measured value of 0 maps to 0A
# - 0 -> 0
- 0.0002 -> 0.00
# Known load: 5.706A
# Raw AC Value in logs: 0.011A
# - 0.011 -> 5.700
# - 0.00995 -> 3.8
- 0.018 -> 12.5
- platform: ct_clamp
sensor: adc_sensor
name: ct2Amps
id: ct2Amps
unit_of_measurement: A
accuracy_decimals: 5
sample_duration: 200ms
update_interval: ${update_time}
filters:
- calibrate_linear:
# Measured value of 0 maps to 0A
# - 0 -> 0
- 0.0001 -> 0.00
# Known load: 5.706A
# Raw AC Value in logs: 0.011A
# - 0.011 -> 5.700
# - 0.00995 -> 3.8
- 0.018 -> 12.5
- platform: ct_clamp
sensor: adc_sensor
name: ct3Amps
id: ct3Amps
unit_of_measurement: A
accuracy_decimals: 5
sample_duration: 200ms
update_interval: ${update_time}
filters:
- calibrate_linear:
# Measured value of 0 maps to 0A
- 0.0001 -> 0.00
# - 0.0002 -> 0.00
# Known load: 5.706A
# Raw AC Value in logs: 0.011A
# - 0.011 -> 5.700
# - 0.00995 -> 3.8
- 0.018 -> 12.5
- platform: ct_clamp
sensor: adc_sensor
name: ct4Amps
id: ct4Amps
unit_of_measurement: A
accuracy_decimals: 5
sample_duration: 200ms
update_interval: ${update_time}
filters:
- calibrate_linear:
# Measured value of 0 maps to 0A
# - 0 -> 0
- 0.0002 -> 0.00
# Known load: 5.706A
# Raw AC Value in logs: 0.011A
# - 0.011 -> 5.700
# - 0.00935 -> 3.8
- 0.018 -> 12.5
#Watts per channel
- platform: template
name: ${disp_name} CT1 Watts
id: ct1Watts
lambda: return id(ct1Amps).state * ${ic1Volts};
accuracy_decimals: 0
unit_of_measurement: W
icon: "mdi:flash-circle"
update_interval: ${update_time}
- platform: template
name: ${disp_name} CT2 Watts
id: ct2Watts
lambda: return id(ct2Amps).state * ${ic1Volts};
accuracy_decimals: 0
unit_of_measurement: W
icon: "mdi:flash-circle"
update_interval: ${update_time}
- platform: template
name: ${disp_name} CT3 Watts
id: ct3Watts
lambda: return id(ct3Amps).state * ${ic1Volts};
accuracy_decimals: 0
unit_of_measurement: W
icon: "mdi:flash-circle"
update_interval: ${update_time}
- platform: template
name: ${disp_name} CT4 Watts
id: ct4Watts
lambda: return id(ct4Amps).state * ${ic1Volts};
accuracy_decimals: 0
unit_of_measurement: W
icon: "mdi:flash-circle"
update_interval: ${update_time}
#Total Amps
- platform: template
name: ${disp_name} Total Amps
id: totalAmps
# Edit below to add all 3 phases for total Amps
lambda: return id(ct1Amps).state + id(ct2Amps).state + id(ct3Amps).state;
accuracy_decimals: 2
unit_of_measurement: A
icon: "mdi:flash"
update_interval: 15s
#Total Watts
- platform: template
name: ${disp_name} Total Watts
id: totalWatts
lambda: return id(totalAmps).state * ${ic1Volts};
accuracy_decimals: 1
unit_of_measurement: W
icon: "mdi:flash-circle"
update_interval: 15s
#kWh
- platform: total_daily_energy
name: ${disp_name} Total kWh
power_id: totalWatts
filters:
- multiply: 0.001
unit_of_measurement: kWh
Tak zaprogramowane urządzenie pozwala na dostęp do danych poprzez jego adres IP
a po integracji z Home Assistant uzyskujemy dostęp do tych samych danych.
Integracja z Home Assistant pozwala na tworzenie "kafelków" do monitorowania wskazań, ale otwiera także drogę do dalszej automatyzacji.
Jedną z fajnych opcji jest pogląd na dane historyczne
Urządzenie możemy włożyć do obudowy wydrukowanej na drukarce 3D i zamocować w bezpiecznym miejscu.
UWAGA !!! Urządzenie ( CT Clamp ) wymaga fizycznego dostępu do kabla L bez konieczności jego rozłączania, niemniej nie będzie działać przy założeniu na cały przewód, przykładowo przedłużacz.
Osobiście mam zainstalowane jest w rozdzielni - dlatego jest to rozwiązanie dla ludzi mogących i wiedzących jak postępować z przewodami energetycznymi.