Elenia Aidon-mittari
1. Taustaa
Elenia vaihtaa uusia Aidon-älymittareita vanhojen mittareiden tilalle. Uuden mittarin ansiosta Elenian Aina palvelun sivuilta löytyy myös AinaLab
josta sitten näkee 5 min tarkkuudella (tosin puoli tuntia myöhässä) sekä netottamattoman kulutuksen että tuotannon (esimerkiksi aurinkosähkö). Halutessaan vaihekohtaisesti.
Jos kulutusta ja verkkoon menevää tuotantoa haluaa seurata mittarista reaaliaikaisemmin, tarvitaan mittariin liittää laite joka lukee siinä olevaa RJ12-porttia.
Ennen kuin näitä laiteita on valmiina kaupallisesti saatavilla, tarvitsee itse askarrella. Fyysisen laitteen voi tilata esimerkiksi ohjeilla:
Tämän lisäksi tarvitaan omaan tietokoneeseen asennelle ohjelmia, jolla tuo "laite" saadaan toimimaan omassa WLAN-kotiverkossa
Python
: ohjelmointikieli, jonka varaan moni muu työkalu perustuuESPHome
: Python sovellus, joka osaa konfiguroida (fläshätä) laitteen ja sitten myös lukea sitä ja antaa tietoa vaikka HomeAssistant-järjestelmällep1reader
: ESPHomen moduli joka keskustelee laitteen kanssa
Nämä ohjeet edellyttävät että osaat antaa komentoriviltä (Ubuntu tai Windows, joku muu saa lisätä Mac) mainittuja komentoja.
Pyydä Elenialta Aidonin uusi mittari ja sitten pyydä kytkemään HAN-portti päälle ASCII-datalla. HAN-portti on se, johon laite liitetään RJ12 kaapelilla.
Mulla nähtävästi kuitenkin tuli binääri pyynnöistä huolimatta.
2. Asentaminen
2.1 Python
Aloita asentamalla Python jos sitä ei ole:
2.1.1 Ubuntu
sudo apt update && sudo apt upgrade -y
sudo apt install software-properties-common -y
sudo add-apt-repository ppa:deadsnakes/ppa
sudo apt install python3.10
sudo update-alternatives --install /usr/bin/python python /usr/bin/python3.10 1
sudo update-alternatives --config python
sudo apt install python3.10-venv
Katso onko oikea versio
python -- version
Sitten Pythonin paketinhallinta
sudo apt install python3-pip
Tee vaikka oma hakemisto ha
ja siirry sinne
mkdir ha
cd ha
Tehdään virtuaaliympäristö ja vaihdetaan sinne
python3 -m venv venv
source venv/bin/activate
2.1.2 Windows
Lataa ja asenna uusin Windows installer (64 bit)
Tarvittaessa lisää PATH-ympäristömuuttujaan se mihin Pythonin asensit ja sen scripts-hakemisto.
2.2 ESPHome
Seuraavaksi asennetaan ESPHome antamalla komentoriviltä:
pip3 install wheel
pip3 install esphome
Katso että ESPHome toimii:
esphome version
Esphome Dashboard:
pip install tornado esptool
esphome dashboard .
Mene selaimessa osoitteeseen localhost:6052
3. Piirikortti ja flashääminen
Hanki tuolla mainittu kortti ja mikrokontrolleri (Wenos D1 mini lite) (Kiitoksia Jonni :-):
ja lue ohjeet. Alla omat kokemukset ja ohjeet "suomennettuna"
3.1 Omat ohjeet
Lue ohjeet: https://github.com/psvanstrom/esphome-p1reader ja myös https://github.com/rainisto/esphome-p1reader/tree/Elenia_Aidon_v1.2_binary jos sattuu olemaan binääridata
Hae tiedostot (binääristä dataa varten)
git clone https://github.com/rainisto/esphome-p1reader.git .
Tai ihan
wget https://raw.githubusercontent.com/rainisto/esphome-p1reader/Elenia_Aidon_v1.2_binary/p1reader.h
wget https://raw.githubusercontent.com/rainisto/esphome-p1reader/Elenia_Aidon_v1.2_binary/p1reader.yaml
Luo uusi tiedosto secrets.yaml
ja sisällöksi:
wifi_ssid: <wifi verkon nimi>
wifi_password: <wifi verkon salasana>
fallback_password: <tähän voit laittaa mitä haluat>
encryption_key: <avain joka on tehty HA:ta varten>
hass_api_password: <the Home Assistant API password>
ota_password: <salasana Wifin yli flashaamista varten>
ja ota tuo <avain joka on tehty HA:ta varten>
osoitteesta:
https://esphome.io/components/api.html#configuration-variables. Muista että väkäsiä ei kirjoiteta ja isoilla ja pienillä kirjaimilla on eroa.
Muokkaa p1reader.yml-tiedostoa:
esphome:
name: esp-p1reader
platform: ESP8266
board: d1_mini
...
api:
password: !secret hass_api_password
encryption:
key: !secret encryption_key
...
uart:
id: uart_bus
rx_pin:
number: 3
inverted: true
baud_rate: 115200
Hakemiston pitäisi näyttää tässä vaiheessa suurinpiirtein seuraavalta:
p1reader.h p1reader.yaml secrets.yaml
Laita mikrocontrolleri USB-porttiin kiinni ja anna komento
esphome run p1reader.yaml
Voit kokeilla onnistuiko
esphome logs p1reader.yaml
Sitten ota kortti irti USBista ja laita koteloon ja liitä Aidonin mittariin RJ12-kaapelilla.
4. Kytkeminen
Kytke esp-p1reader Aidon mittariin RJ12 johdolla
Katso reitittimen kytketyistä laitteista näkyykö siellä
esp-p1reader
- jos ei näy, ei ole verkon kantaman päässä tai flashaaminen on epäonnistunut
- jos näkyy, voit jatkaa
katso saatko logia
esphome logs p1reader.yaml
5. HomeAssistant
5.1 Asentaminen Hyper-V
- tulossa
5.2 Editori
Kannattaa laittaa lisäosa:
eli kun HA on käynissä, menee sillä selaimella tuonne ja asentaa. Laita ruksi niin, että se näytetään vasemmassa palkissa.
5.3 p1readerin lisääminen
p1reader näytti lisääntyvän HA:han automaattisesti, kunhan vain hyväksyi sen.
5.4 Käyttöliittymiä
Käyttöliittymä jossa näkyy tämänhetkinen tehon suunta ja toinen näyttö jolla voi verrata miten teho muuttuu nollaushetkeen:
Aloita lisäämällä configuration.yaml
tiedostoon viennin ja tuonnin eroa kuvaava laskuri (sensori) vienti_minus_tuonti
sekä nollattua tehoeroa kuvaava laskuri vt_ero
. Lisäksi "muuttuja" johon nollausarvo tallennetaan viimeisin_teho
:
input_number:
viimeisin_teho:
name: Viimeisin teho
max: 20
min: -20
initial: -0.730
sensor:
- platform: template
sensors:
vienti_minus_tuonti:
friendly_name: "Vienti-Tuonti"
unit_of_measurement: "kW"
value_template: "{{'{:.3f}'.format(states('sensor.momentary_active_export') | float - states('sensor.momentary_active_import') | float) }}"
vt_ero:
friendly_name: "Ero nollaushetkeen"
unit_of_measurement: "kW"
value_template: "{{'{:.3f}'.format(states('sensor.vienti_minus_tuonti') | float - states('input_number.viimeisin_teho') | float) }}"
Muokkaaminen onnistuu sillä aiemmin lisätyllä Studio Codella avaamalla vasemmasta palkista.
Sitten lisää scripts.yaml
tiedostoon nollauskoodi:
set_viimeisin_teho:
alias: Set Viimeisin Teho
sequence:
- service: input_number.set_value
target:
entity_id: input_number.viimeisin_teho
data_template:
value: "{{ states('sensor.vienti_minus_tuonti') | float }}"
Tee sähkömittaria varten oma käyttöliittymä (kojelauta, dashboard)
Asetukset
Kojelaudat
Lisää koejelauta
Valitse hyvä nimi (esim Aidon tai Sähkömittari) ja kuvake ja
Luo
Ilmestyy vasempaan palkkiin, sinne menee oletuksen kaikki...
Avaa uusi ja paina oikeassa nurkassa kolmea pistettä ja
Muokkaa käyttöliittymää
Valitse
Aloita tyhjällä kojelaudalla
jaOta hallintaan
Paina oikeasta reunasta kolmea pistettä ja valitse
{} Raaka kofigurointieditointi
Laita sisällöksi esim seuraava pohja:
title: Sähkömittari views: - path: default_view title: Home cards: - type: vertical-stack cards: - type: vertical-stack cards: - type: gauge name: Vienti-tuonti entity: sensor.vienti_minus_tuonti max: 5 min: -5 needle: true unit: kW severity: green: 0.04 yellow: -0.04 red: -5 - type: gauge name: Ero nollaushetkeen entity: sensor.vt_ero max: 5 min: -5 needle: true unit: kW severity: green: 0.04 yellow: -0.04 red: -5 - type: entity-button show_name: true show_icon: false entity: input_number.viimeisin_teho name: Nollaa ero tap_action: action: call-service service: script.set_viimeisin_teho
Muokkaa tarvittaessa ja Tallenna
Sulje ruksista.
Voit nyt muokata myös jonkin verran visuaalisestikin.
Tee vielä toinen näkymä Aidon
:
title: Aidon
views:
- path: default_view
title: Home
cards:
- type: energy-date-selection
- type: energy-usage-graph
- type: vertical-stack
cards:
- type: horizontal-stack
cards:
- type: gauge
name: Vienti-tuonti
entity: sensor.vienti_minus_tuonti
max: 5
min: -5
needle: true
unit: kW
severity:
green: 0.04
yellow: -0.04
red: -5
- type: gauge
name: Hetkellinen tuonti
entity: sensor.momentary_active_import
max: 10
unit: kW
- type: gauge
name: Hetkellinen vienti
entity: sensor.momentary_active_export
max: 10
unit: kW
- type: horizontal-stack
cards:
- type: gauge
name: In 1
entity: sensor.momentary_active_import_phase_1
max: 5
unit: kW
- type: gauge
name: In 2
entity: sensor.momentary_active_import_phase_2
max: 5
unit: kW
- type: gauge
name: In 3
entity: sensor.momentary_active_import_phase_3
max: 5
unit: kW
- type: horizontal-stack
cards:
- type: gauge
name: Out 1
entity: sensor.momentary_active_export_phase_1
max: 5
unit: kW
- type: gauge
name: Out 2
entity: sensor.momentary_active_export_phase_2
max: 5
unit: kW
- type: gauge
name: Out 3
entity: sensor.momentary_active_export_phase_3
max: 5
unit_of_measure: kW
- type: vertical-stack
cards:
- type: history-graph
title: Vienti-Tuonti
hours_to_show: 24
show_names: false
entities:
- sensor.vienti_minus_tuonti
- type: vertical-stack
cards:
- type: history-graph
title: Tuonti/Vienti
hours_to_show: 24
entities:
- entity: sensor.momentary_active_import
name: Tuonti
- entity: sensor.momentary_active_export
name: Vienti
- type: history-graph
title: Tuonti
hours_to_show: 24
entities:
- entity: sensor.momentary_active_import_phase_1
name: L1
- entity: sensor.momentary_active_import_phase_2
name: L2
- entity: sensor.momentary_active_import_phase_3
name: L3
- type: history-graph
title: Vienti
hours_to_show: 24
entities:
- entity: sensor.momentary_active_export_phase_1
name: L1
- entity: sensor.momentary_active_export_phase_2
name: L2
- entity: sensor.momentary_active_export_phase_3
name: L3
6. Jatkokehitystä
title: Sähkömittari
views:
- path: default_view
title: Home
cards:
- type: vertical-stack
cards:
- type: vertical-stack
cards:
- type: gauge
name: Vienti-tuonti
entity: sensor.vienti_minus_tuonti
max: 5
min: -5
needle: true
unit: kW
severity:
green: 0.04
yellow: -0.04
red: -5
- type: vertical-stack
cards:
- type: vertical-stack
cards:
- type: gauge
name: Energiaero nollaushetkeen
entity: sensor.vt_energia_ero
max: 5
min: -5
needle: true
unit: kWh
severity:
green: 0.04
yellow: -0.04
red: -5
- type: markdown
content: >
{% set t =
as_timestamp(states('input_datetime.seuraava_energia_ero_time'))
- now().timestamp()%} {% set th = t/3600 %} {% set p =
states('sensor.vienti_minus_tuonti')|float %} {% set dw =
states('sensor.vt_energia_ero')|float %} {% set np = dw/th+p
%} {% set np = dw/th+p %} {% set vari = "red" if (np < 0) else
"lime" %} {% set verbi = "Säästä" if (np < 0) else "Tuhlaa" %}
Nollattu {{
(as_timestamp(states('input_datetime.viimeisin_energia_ero_time')))
| timestamp_custom('%H:%M', local=true) }}, seuraava nollaus
{{ t | timestamp_custom('%M:%S kuluttua.', local=false) }}
<br> {{'Nykyteholla tulisi **%.3f kWh**.' |
format(dw+p*t/3600) }} <font color="{{vari}}">{{verbi}}{{'
**%.3f kW.**' | format(np) }}</font>
- type: vertical-stack
cards:
- type: vertical-stack
cards:
- type: gauge
name: Tehoero nollaushetkeen
entity: sensor.vt_ero
max: 5
min: -5
needle: true
unit: kW
severity:
green: 0.04
yellow: -0.04
red: -5
- type: entity-button
show_name: true
show_icon: false
entity: input_number.viimeisin_teho_ero
name: Nollaa ero
tap_action:
action: call-service
service: script.set_viimeisin_teho_ero
- id: "1685642916376"
alias: Nollaa netotus
description: Aloittaa uuden tunnin netotukseen
trigger:
- platform: time_pattern
minutes: 0
condition: []
action:
- service: script.set_viimeisin_energia_ero
data: {}
mode: single
# Loads default set of integrations. Do not remove.
default_config:
# Load frontend themes from the themes folder
frontend:
themes: !include_dir_merge_named themes
# Text to speech
tts:
- platform: google_translate
automation: !include automations.yaml
script: !include scripts.yaml
scene: !include scenes.yaml
input_number:
viimeisin_teho_ero:
name: Viimeisin tehoero
max: 20
min: -20
initial: 0
viimeisin_energia_ero:
name: Viimeisin energiaero
max: 2000
min: -2000
initial: 0
input_datetime:
viimeisin_energia_ero_time:
name: Viimeisin energiaero aika
has_date: true
has_time: true
seuraava_energia_ero_time:
name: Seuraava energiaero aika
has_date: true
has_time: true
sensor:
- platform: template
sensors:
vienti_minus_tuonti:
friendly_name: "Vienti-Tuonti teho"
unit_of_measurement: "kW"
value_template: "{{'{:.3f}'.format(states('sensor.momentary_active_export') | float - states('sensor.momentary_active_import') | float) }}"
# value_template: "{{ (states('sensor.momentary_active_export') | float - states('sensor.momentary_active_import') | float) | round(4) }}"
vienti_minus_tuonti_energia:
friendly_name: "Vienti-Tuonti energia"
unit_of_measurement: "kW"
value_template: "{{'{:.3f}'.format(states('sensor.cumulative_active_export') | float - states('sensor.cumulative_active_import') | float) }}"
# value_template: "{{ (states('sensor.momentary_active_export') | float - states('sensor.momentary_active_import') | float) | round(4) }}"
vt_ero:
friendly_name: "Ero nollaushetkeen"
unit_of_measurement: "kW"
value_template: "{{'{:.3f}'.format(states('sensor.vienti_minus_tuonti') | float - states('input_number.viimeisin_teho_ero') | float) }}"
vt_energia_ero:
friendly_name: "Energian ero nollaushetkeen"
unit_of_measurement: "kWh"
value_template: "{{'{:.3f}'.format(states('sensor.vienti_minus_tuonti_energia') | float - states('input_number.viimeisin_energia_ero') | float) }}"
local_time:
value_template: "{{ now().strftime('%H:%M:%S') }}"
seuraava_energia_ero_time_diff_format:
value_template: "{{ (as_timestamp(states('input_datetime.seuraava_energia_ero_time')) - now().timestamp() ) | timestamp_custom('%H:%M:%S', local=false) }}"
viimeisin_energia_ero_time_format:
value_template: "{{ (as_timestamp(states('input_datetime.viimeisin_energia_ero_time'))) | timestamp_custom('%H:%M', local=true) }}"
set_viimeisin_teho_ero:
alias: Set Viimeisin Tehoero
sequence:
- service: input_number.set_value
target:
entity_id: input_number.viimeisin_teho_ero
data_template:
value: "{{ states('sensor.vienti_minus_tuonti') | float }}"
set_viimeisin_energia_ero:
alias: Set Viimeisin Energiaero
sequence:
- service: input_number.set_value
target:
entity_id: input_number.viimeisin_energia_ero
data_template:
value: "{{ states('sensor.vienti_minus_tuonti_energia') | float }}"
- service: input_datetime.set_datetime
target:
entity_id: input_datetime.viimeisin_energia_ero_time
data:
timestamp: "{{ now().timestamp() }}"
- service: input_datetime.set_datetime
target:
entity_id: input_datetime.seuraava_energia_ero_time
data:
timestamp: "{{ now().timestamp() + 3600 }}"
7. Sekalaisia muistiinpanoja:
docker run --rm -p 6052:6052 -e ESPHOME_DASHBOARD_USE_PING=true -v e:\ha:/config -it ghcr.io/esphome/esphome
7.1 Lähteitä
- https://lampopumput.info/foorumi/threads/p1-han-liit%C3%A4nt%C3%A4portti.35073/
- http://omakotikotitalomme.blogspot.com/2022/10/elenian-aidon-rj12-kotiautomaatioliityn.html
- https://www.zuidwijk.com/product/slimmelezer-plus/
- https://www.wemos.cc/en/latest/d1/d1_mini.html
- https://www.elenia.fi/tulevaisuuden-energia/sahkonkulutuksen-mittausuudistus/tietoa-mittausuudistuksesta
- https://www.elenia.fi/files/8ce06662fedee10d57bd390e9863a685f73bbb27/elenia-rj12-kotiautomaatioliitynta-21092022-4.pdf
- https://www.elenia.fi/files/5b4d7492d2125ed79a8f1424cd5c4539ba360090/aidonfd-rj12-han-interface-en-v17a.pdf
- https://github.com/psvanstrom/esphome-p1reader/tree/main
- https://esphome.io/guides/getting_started_command_line.html
- https://forecast.solar/
- Youtube video dashboradien tekemisestä
- https://github.com/banny310/hoymiles-dtu-homeassistant-addon
- https://github.com/wasilukm/hoymiles-mqtt
- https://github.com/ChrisPolewiak/Home-Assistant/blob/main/Hoymiles/hoymiles_dtu_stats.py
7.1.2 IVT:
- ivt: https://rago600.sourceforge.net (Rego 800, 2.21.0)
- https://www.lviraty.fi/ivt-kayttoohjeet
- https://github.com/peterarandis/H60-OS
- https://husdata.se/
- https://husdata.se/docs/h60-manual/modbus-tcp-integrations/
- https://online.husdata.se/h-docs/C35.pdf
- https://husdata.se/produkt/h66-wifi-gateway/
- https://husdata.se/docs/heat-pump-installation/35-rego-800-ivt-bosch-2007-2017/rego-800-installation/
- https://husdata.se/docs/h60-manual/home-assistant-integration/setup-home-assistant-for-h60/
- https://www.maalampofoorumi.fi/index.php?topic=3023.80
- https://www.maalampofoorumi.fi/index.php?topic=1043.160
- https://husdata.se/wp-content/uploads/2015/11/H1-Manual-10.184.pdf
- https://portal.husdata.se/datalog.asp
- https://www.theseus.fi/bitstream/handle/10024/42254/Raisanen_Mikko-Pekka.pdf;jsessionid=5BD6FDE93864BACDD08094C925F8AD79?sequence=1
Vikoja:
ei pääse iPadillä https://portal.husdata.se/datalog.asp, ei jatka siitä Captah-kohdasta
https://portal.husdata.se/datalog.asp yksikkönä % pitäisi olla Hz
0208 33 Hold Warm Water stop temp 2.00 C
0212 34 Hold Warm Water start temp 49.00 C
Varmaan väärät rekisterit koska ei ole samaa mieltä pumpun kanssa2204 30 Hold Room sensor influence 50.00
Väärä kerroin, pitäisi näyttää 5.0CFAA 40 Input Power consumption 0 Watt
Watit ei toimiei voi säätää vedn lämpötilan säästö/mukavuus
ei voi pistää lisäkäyttövesi
7.1.3 HA
- https://github.com/kosmosnautti/ha-fmi-radar
- https://www.home-assistant.io/integrations/sensor.rest
- https://www.makeuseof.com/tailscale-vpn-access-home-assistant-server-remotely/, muista laittaa
:8123
osoitteen perään kun haluat katsoa HA remotena - https://www.porssari.fi
- https://github.com/edwardtfn/home-assistant-sun-card
7.1.6 Shelly
- https://shelly-api-docs.shelly.cloud/gen1/#common-http-api
- https://lampopumput.info/foorumi/threads/wifi-shelly-rele-ohjaamaan-vanhahkoa-boileria.34026/
- https://www.shelly.com/documents/developers/ddd_communication.pdf
- https://github.com/Spot-hinta-fi/Shelly/blob/main/Scripts/Shelly-Minimal_water_heating.js?fbclid=IwAR0FnIHLUMDEvNTqCL1uTwmh4yjKm_C0WT7cG08wWgdfEh82nWE5BhZPsrc
7.1.7 Tuya
7.1.8 BestWay Lay-Z Spa
- https://antanaitis.lt/2022/09/07/wi-fi-on-your-lay-z-spa-make-it-easy-to-remote-control/
- https://github.com/cdpuk/ha-bestway
- https://github.com/visualapproach/WiFi-remote-for-Bestway-Lay-Z-SPA
- https://oshwlab.com/visualapproach/bestway-wireless-controller-2
- wiring
- lämmitin
- #0005426933, Lay-Z-SPa Miami AirJet, 60001
- https://support.bestway.eu/fi-fi/product/1060001XXX22
- Does not work: https://github.com/visualapproach/WiFi-remote-for-Bestway-Lay-Z-SPA/issues/533
7.1.9 Harvia
- https://community.home-assistant.io/t/harvia-sauna-remote-control/397324/38
- https://github.com/RubenHarms/ha-harvia-xenio-wifi/tree/main/custom_components/harvia_sauna
- https://www.lakkapaa.com/fi/sauna/harvia-mobiilikaynnistys-sahkokiukaille-u-fs-sy-shelly-cloud-etakaynnistys/p/9120053865904/?gad_source=1&gclid=CjwKCAjw9IayBhBJEiwAVuc3flhukE809U6VoF5F2DYvH_VNr1TKUA5g858KoU0ExRCFMezRETJtRxoC-hwQAvD_BwE
- Harvia Xenio
7.1.11 Muuta
8. Mittauksia
8.1 Saunan kiuas
19.2 20.7 22.0 23.1 24.8
8.2 Tiskikone
- 1.6 kWh, välillä yli 2.3 kW, kesto yli 2h
323 2-4 2 7 4 8 2.9 5.8 4 8 3 5 3 6 3 7
308 0-4 3 6 4 10 3.3 6.3 4 10 3 5 3 6 3 8
293 0-4 2 6 3 8 3.0 5.8 3 9 3 5 3 6 3 7
291 0-4 2 5 3 7 2.8 5.6 3 7 3 5 2 6 2 7
9. Bestway SPA
These are the current permissions for this document; please modify if needed. You can always modify these permissions from the manage page.