Tämä tarina on oikeastaan jatkoa aikaisemmalle jutuille ja liittyy hyvin paljon Home Assistantiin, sähkön kulutuksen seurantaan ja myös edellisessä kirjoituksessa olleeseen ESPHome -firmikseen.
Minä en ole tullut hankkineeksi mitään valmista mittausanturia, jolla voisin seurata kotini sähkönkulutusta. Olen ratkaissut tämän siten, että olen itse tehnyt tällaisen pulssianturin käyttäen ESP8266 -pohjaista mikrokontrolleria, LM393 Light Sensor -valoanturia (ei ole maksettu mainos) sekä firmiksenä ESPHomea. HUOM! Valoanturin tulee olla malliltaan nimen omaan fotodiodi, eikä LDR -moduuli. Alla olevassa kytkentäkuvassa on LDR -moduuli.
Tämä kombinaatio lukee sähkömittarin pulssia ja muuntaa sen sitten hetkelliseksi- ja vuorokautiseksi kulutukseksi eli ESPHomessa on käytössä pulse_meter
- ja total_daily_energy
-komponentit, joiden avulla laskenta tapahtuu. Lisäksi tarvitaan tarvitaan myös tieto omasta sähkömittarista, että kuinka paljon yksi pulssi on watteina, minulla yksi pulssi = yksi watti.
Muut kulutukset kuten tunti-, vuorokausi-, kuukausi- ja vuosikulutukset lasketaan käyttäen Home Assistantin omaa energia -laskentaa. Toki näissä kulutusseurannoissa voisi käyttää myös Home Assistantin utility_meter
-ominaisuutta, mutta tämä on kuitenkin aika lailla turhaa, koska Home Assistantin oma energia -laskenta hoitaa nämä hyvin ja säilyttää myös historiatiedot pidemmältä ajalta.
Valoanturin kytkentä mikrokontrolleri -korttiin Link to heading
Aluksi siis kytkentään valoanturi mikrokontrolleriin seuraavasti :
Kuva: valoanturin kytkentä
Eli pinnien kytkentä tapahtuu seuraavasti:
GND — GND
3V3 — VCC
D4 — D0
Firmwaren kääntäminen Link to heading
Seuraavaksi palataan edellisen tarinan asiaan eli käännetään mikrokontrollerille uusi firmware käyttäen ESPHomea. Tätä varten meidän tarvitsee tehdä asetustiedosto firmistä varten.
Aluksi mennään ESPHomen hakemistoon, joka oli luotu home
-hakemistoon eli annetaan komento
cd esphome
Seuraavaksi tehdään firmiksen asetustiedosto seuraavalla komennolla
nano nodemcu-powerconsumption.yaml
Tämän jälkeen kopioidaan tiedostoon seuraavat rivit
esphome:
name: nodemcu-powerconsumption
platform: ESP8266
board: nodemcuv2
wifi:
ssid: "wifi-verkon ssid"
password: "wifi-verkon salasana"
# Enable fallback hotspot (captive portal) in case wifi connection fails
ap:
ssid: "el-sensor Fallback Hotspot"
password: "tähän jokin salasana"
captive_portal:
# Enable logging
logger:
# Enable Home Assistant API
api:
# Enable OTA updates
ota:
# Enable web-server
web_server:
port: 80
# Sensorit
sensor:
- platform: total_daily_energy
name: "Total Daily Energy" # Vuorokauden kokonaiskulutus
power_id: power1
- platform: pulse_meter
pin: D6
unit_of_measurement: 'kW'
name: 'Power Consumption Momentary' # Hetkellinen kulutus per kW
filters:
- multiply: 0.06
id: power1
total:
unit_of_measurement: 'kWh'
name: 'Total Consumption' # Kokonaiskulutus
accuracy_decimals: 3
filters:
- multiply: 0.001 # (1/1000 pulses per kWh)
- platform: wifi_signal
name: "WiFi Signal strenght" # Wifi-verkon signaalin vahvuus
update_interval: 60s
# Mikrokontrollerin kellonaika, jotta mm. vrk-kulutuksen laskenta onnistuu
time:
- platform: sntp
id: sntp_time
binary_sensor:
- platform: gpio
pin: D4
device_class: light
name: 'Pulse Measurement' # Tämä kertoo, että pulssimittaus on päällä
id: light_detect
filters:
- delayed_off: 60ms
text_sensor:
- platform: wifi_info
ip_address:
name: 'IP-address' # Mikrokontrollerin IP-osoite
ssid:
name: 'SSID' # Mikrokontrollerin wifi-verkko, johon se on yhdistetty
Osa näistä sensoreista, kuten wifi-verkon signaalin vahvuus, mikrokontrollerin IP-osoite tai wifi-verkko, ovat sellaisia, että niitä ei välttämättä tarvitse, mutta minulle ne ovat vähän kuin “nice to know” -tietoa.
Tämän jälkeen, kun asetukset ovat kunnossa, pitää mikrokontrolleri -kortti yhdistää tietokoneeseen USB-kaapelilla. Seuraavaksi voidaan sitten antaa komento esphome run nodemcu-powerconsumption.yaml
, joka aluksi kääntää firmiksen ja sen jälkeen lataa sen mikrokontrolleri -kortille. Annetaan kuitenkin aluksi nämä käskyt erillisenä, jolloin ne ovat seuraavat
esphome compile nodemcu-powerconsumption.yaml
esphome upload nodemcu-powerconsumption.yaml
Eli ensimmäisenä käännetään firmis compile
-käskyllä ja tässä menee hetki aikaa riippuen tietokoneen nopeudesta. Kun kääntäminen on valmis, niin seuraavaksi annetaan käsky upload
, joka lataa käännetyn firmiksen mikrokontrollerille. Minulla tuli tässä yhteydessä alla oleva näkymä
Kuva: firmwaren lataus mikrokontrollerille
Eli tässä vaiheessa, kun käännetään firmistä ensimmäisen kerran, ladataan se USB-väylän kautta, eli valitaan nro 1. Tämän jälkeen, kun firmis on ladattu kortille, voidaan kortti irrottaa USB-väylästä ja laittaa se sähkömittarin yhteyteen pulssia lukemaan.
Laitteen yhdistäminen Home Assistantiin Link to heading
Lopuksi mennään vielä Home Assistantin puolelle, joka yleensä löytää nämä ESPHome -laitteet automaattisesti, kuten minulla
Kuva: Home Assistant löytää ESPHome-laitteen
Viimeisenä vielä yhdistetään Total Daily Energy
-sensori Home Assistantin energia -osioon, kuten alla
Kuva: Home Assistantin energia -osio
Jaa tämä: