ESO (Energijos skirstymo operatorius) jau keletą metų diegia išmanius elektros skaitiklius Sagemcom T211.
Naudodami NB IoT duomenų perdavimo technologiją (Bitė) jie gali realiu laikų gauti įvairius skaitiklių duomenis bei juos konfigūruoti (pvz. perjungti iš vieno tarifo apskaitos į dviejų). Toks apskaitos būdas leido atsirasti su momentinėmis (biržos) elektros kainomis susijusius planus.
Taip pat dar labiau elektros tiekėjas gali kontroliuoti vartotojus. Pvz. gaminant ir/ar vartojant daugiau galios nei priklauso gaunamas perspėjamas, ar net skaičiuojamos baudos. Tad gali būti toks atvejis, kai nėra tinkamai apribota saulės elektrinės galia ir tiekiama į tinklą daugiau nei suderinta ir už kiekviena kWh teks primokėti daugiau nei ji kainuoja 🙂
Kiek žinau yra net nuotolinė galimybė atjungti vartotoją (viduje galingas kontaktorius) 🙂
Ir vartotojams yra kažkiek privalumų, pvz. nebereikia eiti nurašyti skaitiklio parodymų. Tokie realaus laiko duomenys naudingi vartotojui reaktyvios galios kompensavimui (juridiniams), gaminamos ar naudojamos galios ribojimui, duomenų analizei.
ESO teikia bandomąją paslaugą vartotojams norintiems nuskaityti duomenis iš išmaniojo elektros skaitiklio per P1 sąsają.
Senokai buvo noras nuskaityti duomenis iš P1 sąsajos.
P1 sąsajos įjungimas
Visų pirmą užsakiau šią paslaugą. Tai galima atlikti prisijungus prie savitarnos: eikite į skiltį ,,Objektai“ ir pasirinkite objektą, kuriame norite aktyvuoti P1 sąsają. Tai atlikę, pasirinkite skirtuką ,,Objekte esantys skaitikliai’ ir spauskite ,,Užsakyti P1 sąsajos paslaugą“ su reikiamais parametrais.
Galima pasirinkti iš trijų duomenų rinkinių (Standartinis, išplėstinis ir maksimalus) bei duomenų atidavimo periodą (1, 3, 10, 60s). Gali būti, kad ateityje dalis ar visi rinkiniai bus mokami. Duomenų profilių aprašymas pateiktas čia.
Įjungus skaitiklio P1 sąsaja ekrane ties P1 atsiranda trikampio simbolis.
ESO taip pat pateikia P1 sąsajos įrenginio montavimo instrukcijas. Kadangi apskaitos spinta yra metalinė, o atstumas iki mano WiFi prieigos taško gan nemažas, norėdamas turėti patikimą ryšį, išvedžiau P1 sąsaja laidu į išorę ir nuskaitymo įrenginį patalpinau hermetiškoje dėžutėje ant tvoros. Nors kabelio su RJ12 6P6C kištukais ilgis gavosi apie 3 metrus, viskas veikė gan gerai.
P1 sąsaja
P1 sąsaja yra vienkrypktė, galvaniškai izoliuota, gan artimą UART ir periodiškai ten siuntinėja duomenys iš skaitiklio. Pagal specifikaciją P1 jungtis tiekia 5V įtampa iki 250 mA srovę. Tai leidžia maitinti negalingus nuskaitymo įrenginius. Duomenys perduodami DSMR (Dutch Smart Meter Requirements) protokolu, kuris yra tekstinis (ASCI naudojamas pas mus) arba dvejetainis (HDLC/DLMS kuris gali būti užšifruotas).
P1 sąsajos nuskaitymo įrenginys
Yra daug projektų P1 sąsajos nuskaitymas. Populiariausi sprendimai naudojantys ESP8266. Daug kas teigia, kad ESP32 netinkamas norint patikimai maitinti iš P1 sąsajos (DSMR4 ir senesni), nes tam nepakanka galios, nors DSMR5 galios kaip ir turėtų užtekti.
Pirktiniai sprendimai
Iš nuperkamų P1 nuskaitymų sprendimų, labiausiai dėmesį patraukė toliau išvardinti:
HomeWizzard P1 Meter
Kaina: €24.95 + siuntimas.
ESP8266 pagrindu.
Labai trumpas kabelis su kištuku (gal 5 cm).
Neaišku kaip palaiko ESO skaitiklius. Kai kurie skundžiasi, kad neveikia prie neigiamų temperatūrų.
SlimmeLezer+
Kaina: €24.95 + PVM + kopusas (€4.25) + siuntimas
ESP8266 pagrindu.
RJ12 lizdas, ir pridedamas 50 cm kabelis.
Neaišku kaip palaiko ESO skaitiklius.
Smart Meter WiFi Gateway
Kaina: €29.95 + siuntimas
Pagal aprašymą naudojamas ESP32. Nesu tikras ar užtenka maitinimo iš P1 porto.
Integruotas 50 cm kabelis su kištuku.
Teigiama, kad suderinamas su Lietuvos skaitikliais. Šitą būtų įdomiausia išbandyti.
Savadarbis ESP8266 pagrindu
Visi gamykliniai sprendimai nepatiko, nes gedimo atveju vėl reikės pirkti, gali būti sunku pritaikyti ESO duoemų formatui, todėl nusprendžiau daryti savo nuskaitymo įrenginį.
Aparatinei daliai realizuoti pasirinkau P1 Port Thingie projektą.
Schema yra gana paprasta: P1 TX linijos (5 kontaktas) 5V signalas yra invertuojamas ir verčiamas į 3.3V signalą tranzistoriaus pagalba ir paduodamas į ESP8266 MCU UART0 RX kontaktą. P1 duomenų prašymo (angl. request) linija (2 kontaktas) prijungta prie 5V, tam kad duomenys būtų siunčiami nuolat. P1 5V maitinimo įtampa (1 kontaktas) keičiama į 3.3V ir maitinamas mikrovaldiklis.
Ištikrųjų schemą norėtųsi šiek tiek patobulinti:
- numatyti papildomą 5V padavimą (programavimui)
- RX linijos prijungimas pasirenkamas prijungimas per 0R ( RX0 D21 (GPIO3) kaip dabar ir RX2 D7 (GPIO13) kaip SlimmeLezer+)
- numatyti tranzistoriaus apėjimą
- pridėti daugiau maitinimo kondensatorių.
- numatyti RTS prijungimą prie GPIO5 ar GPIO12 per 200R
Projekte galima naudoti ESP-12F (su PCB antena) arba ESP-07 (su keramine antena ir galimybe prijungti išorinę anteną) modulį.
Užsakiau PCB kurias pagamino pramoniniu būdu. Pasidariau didesnį PCB kiekį, tad visiems norintiems galėsiu padovanoti PCB.
Programinio kodo užprogramavimui naudojama FTDI plokštė. Norint programuoti ESP modulį sulitavus visus komponentus, būtina sujungti J1 jungties (P1 porte) TX liniją (J1 jungties 5 kontaktas) su GND (J1 jungties 6 kontaktas)! Kitaip ESP_RX linija visad bus prijungta prie GND ir nepriims duomenų iš programavimo sąsajos. Taip pad dažniausiai neužtenka maitinimo iš FTDI programavimo plokštės ir reikia prijungti papildomą išorinį maitinimą.
Programinė dalis
Tasmota su skriptu
Visų pirma išbandžiau Tasmota programinį kodą (speciali tasmota-scripting FW versija su skriptinimo galimybe). Parašytas skriptas naudojant Tasmota Smart Meter Interface modulį, pritaikant ESO duomenų formatui. Surinkti duomenys per WiFi sąsaja siunčiami MQTT protokolu į vietinį Home Assistant serverį. Deja, pastebėjau, kad įsivelia klaidingų duomenų, kur prarandamas vienas ar kitas skaitmuo, kas sukėlė įtarimą, kad nenaudojamas kontrolinių sumų tikrinimas.

esphome-p1reader projektas
Kadangi Tasmota sprendimas iškreipinėjo duomenis, pradėjau ieškoti kito sprendimo. Išbandžiau psvanstrom/esphome-p1reader projektą. Viskas kaip ir veikė, bet gan prastai palaikė ESO skaitiklių standartą (nevisus laukus priėmė, blogi verčių daugikliai ir t.t.). Panagrinėjus projektą, pasirodė, kad reikia gan daug darbo norint pilnai pritaikyti.
ESPHome DSMR komponentas
Atradau, kad ESPHome turi visai neblogą DSMR Component. Nusprendžiau ir jį išbandyti. Tam reikėjo sudaryti atitinkamą yaml failą. Komponentas nepalaiko kai kurių ESO duomenų laukų pilnai (pvz. power_factor_l1/2/3), bet pagrindinius laukus puikiai dekoduoja.

Dekoduotus duomenis šiuo atveju perduodu į Home Assistant serverį per API (su unikalių raktu), ne per MQTT.
Išvados
DSMR standarto naudojimas (versijos, įgyvendinimas, klaidos) skiriasi tarp šalių ir pritaikyti kitų sprendimus Lietuvos ESO formatui paprastai nepavyksta. Kolkas geriausiai man veikia ESPHome DSMR komponentas.
Iš duomenų galima pasakyti, kad tikrai nesu gaminantis vartotojas 🙂
Kolkas duomenis naudoju tik analizės tikslais, tačiau ateityje gali būti, kad panaudosiu ir galios ribojimo valdymui.







Sveikas, puikus traipnis. Ir šiaip smagu rasti info apie tokius dalykus lietuviškai.
Susidomėjau ir pats pats nusiskaityti skaitiklio duomenis. Gal dar yra pas jus užsilikus kokia viena PCB?
Sveiki.
Yra dar nesurinktų PCB, kurias galiu padovanoti 🙂
Sveiki, ar dar turit PCB?
Sveiki.
Taip, dar turiu 🙂
Ar galėčiau vieną ar du įsigyti?
Žinoma, parašiau email.