tiistai 25. lokakuuta 2022

Elenia Aidon RJ12-kotiautomaatioliitynnän HAN portin lukeminen

Elenia julkaisi tuossa hiljattain, että heidän Aidon sähkömittareiden RJ12 portin avausta voi pyytää ilmaiseksi asiakaspalvelusta.

https://www.elenia.fi/tulevaisuuden-energia/sahkonkulutuksen-mittausuudistus/tietoa-mittausuudistuksesta
https://www.elenia.fi/files/8ce06662fedee10d57bd390e9863a685f73bbb27/elenia-rj12-kotiautomaatioliitynta-21092022-4.pdf

Seskon suosituksessa lukee: "Edellä 1 momentin 3 kohdassa tarkoitetusta asiakasrajapinnasta on saatava RJ12-liittimen välityksellä ASCII-merkkimuotoista tiedonsiirtotapaa noudattaen 10 sekunnin välein tai tiheämmin ainakin sähköverkosta otetun sähkön jasähköverkkoon syötetyn sähkön virran, pätötehon, loistehon ja jännitteen tehollisarvot vaihekohtaisesti sekä mittauslaitteiston kumulatiivinen sähköenergialukema minuutin välein tai tiheämmin, kun verkonhaltija on aktivoinut rajapinnan loppukäyttäjän pyynnöstä" (https://sesko.fi/wp-content/uploads/2022/01/Suositus_SK_13-1_H1_asiakasrajapinta_final_2021dec.pdf)

Joten pistin sähköpostia asiakaspalveluun ja 10 päivän päästä sieltä tuli ilmoitus, että portti on aktivoitu. Yllätys sitten olikin, että luvatun ASCII datan sijasta sieltä portista tuli ulos binääridataa. Vielä ei ole Elenian asiakaspalvelu vastannut, että ovatko vahingossa enabloineet EFS (binääri ulostulon) eikä EFS2 (ASCII ulostulo). Tai tarkoituksella eivät seuraa Seskon suositusta ASCII datasta (tai eivät ole päivittäneet tänä vuonna asennettuun Aidon mittariin uusinta softaversiota). Edit: "asiakaspalvelu@elenia.fi" vastasi minulle sähköpostilla: "Pahoittelut, näissä asiakkaan lisälaitteissa täytyisi olla laitevalmistajaan yhteydessä." Eli eivät tunnustaneet aktivoineensa väärää profiilia minulle (ja eivät muuttaneet sitä asciiksi), vaan vyöryttivät mokansa laitevalmistajan syyksi (sinälläään ihan sama minulle, kun sain tuon binäärimuotoisenkin toimimaan).

Piirtelyn custom piirilevyn ja 3d printattavan koteloinnin, johon pystyy Wemos D1 Minin asentamaan, johon ESPHomella asennetaan lukusofta, jonka sitten liittää langattomasti vaikka Home Assistanttiin.

Tarvittava softa ASCII muotoiselle datalle:
https://github.com/psvanstrom/esphome-p1reader
Conffaus Wemos D1 minin mukaan:
https://github.com/psvanstrom/esphome-p1reader/tree/main#running-on-smartyreader-p1

Semmoinen huomio käyttäjiltä on tullut vastaan, että osassa mittareista, inverted true pitääkin olla inverted false, joten jos tuntuu, että data näyttää väärältä, niin kannattaa kokeilla kyseisen lipun kääntämistä toiseen asentoon.

Ja binääri-muotoiselle löysin toteutuksen internetin syövereistä ja tein sille custom branchin:
https://github.com/rainisto/esphome-p1reader/tree/Elenia_Aidon_v1.2_binary

Joten riippuen, että antaako mittarisi ulos ASCIIta tai binääria, niin joudut valitsemaan kumman firmiksen laitteeseen flashaat. Itse flashasin ekana ASCII version, ja jos ulostulo näyttää tältä, niin silloin mittarisi sylkee binääriä ulos (tai inverted arvo väärinpäin):

Ja sitten, kun olin asentanut binaari branchin itselleni, niin esphomen logi näytti paremmalta:

Sitten vain tein dashboardin HA:lle seuraavaa esimerkkiä seuraten (https://gist.github.com/endor-force/3c9fdf95535423157fa52609ba42d738). Data näyttää kiltisti päivittyvän 10 sekunnin välein, joten kaiken kaikkiaan varsin onnistunut DIY projekti.

Minulla on muutama ylimääräinen koteloitu lukija (rj12 kaapelin kanssa) rakennettuna hyllyssä (25e+5e kirjeposti), jos kiinnostaa, niin voi pistää sähköpostia blogin osoitteeseen, pikkuisesta sumup storestani: https://p1reader.sumupstore.com/tuote/koteloitu-p1-reader-rj12-kaapeli tai viestiä tori.fi:n kautta: hhttps://www.tori.fi/recommerce/forsale/item/2035004. Sillä disclaimerillä, että sinun pitää olla tuttu Linuxin kanssa, että osaat ESPHomen flashata laitteeseen (laite tulee ilman firmistä, kun oman verkon ssid ja salasana määritellään flashauksen yhteydessä).

Oheinen ohjeistus voi kanssa helpottaa käyttöönottoa: https://tim.jyu.fi/view/users/vesal/oma/talo/talo/aidon

40 kommenttia:

  1. Kiitos mielenkiintoisesta postauksesta. Millainen siitä tekemästäsi piirilevystä tuli? Lueskelin noiden linkkien takaa, niin ilmeisesti aina data pin 5:sen signaali pitää NPN-transistorilla invertoida?

    VastaaPoista
    Vastaukset
    1. Suoraan seurasin gitissä olevan scheman ohjetta, eli BC547 ja 10k ja 4.7k vastuksilla. Tosin piirtelin vielä tuosta yhden uuden variaation (joka saapuu varmaan marraskuun aikana), jonne lisäsin kytkimen RX pinnille flashausta helpottamaan.

      Poista
  2. Suomessa käytössä EFS2 (Ascii) riippumatta mittalaitevalmistajasta, joten tässä on verkkoyhtiö aktivoinut portin väärälle dataprofiilille

    VastaaPoista
    Vastaukset
    1. Juu, noh "asiakaspalvelu@elenia.fi" vastasi minulle sähköpostilla: "Pahoittelut, näissä asiakkaan lisälaitteissa täytyisi olla laitevalmistajaan yhteydessä." Eli eivät tunnustaneet aktivoineensa väärää profiilia minulle, ja eivät muuttaneet sitä asciiksi.

      Poista
  3. Hieno projekti. Jos tuosta portista saa vain hetkellistä lukemaa, niin miten tuo dashboard onnistui? Tallennat tiedot johonkin 10s välein?

    VastaaPoista
    Vastaukset
    1. Tulee sieltä kumulatiivistakin dataa hetkellisen datan lisäksi. Mutta siis, minun ei tarvi erikseen tallennella mitään, vaan toi home assistantin dashboard integraatio tekee kaiken tallennuksen automaattisesti minun puolestani luultavasti jonnekin HA:n sisäiseen tietokantaan.

      Poista
  4. Hyvä että olit tehny blogi-postauksen. Muuten olisin facebookin kautta joutunut kyselemään :) Testauksen pariin pääsen aikaisintaa 2 viikon kuluttua, kun mittari on vaihdettu..

    Ilmeisesti tuossa binääridatassa ja asciissa ei ole mitää funktionaalista eroa? Esim, että binääridataa saisi tihemmän tms..

    VastaaPoista
    Vastaukset
    1. Juu, ei ole eroa, sama data samalla tiheydellä.

      Poista
    2. Elenian spostiasiakaspalvelu on vähän hitaampaa näemmä :) Laitoin keskiviikkona spostia ja tänään vähän ennen kahdeksaa kyllästyin odottamaan ja koitin soittaa sinne. Puhelimessa HAN-portin enablointi onnistui alle minuutissa.
      Ascii dataa pukkaa ja kaikki toimii.

      Poista
  5. Hei, sinulta ostamani mokkula toimii hyvin eilen uusitun mittarin kanssa. Elenian asiakaspalveluun soittamalla sain portin päälle heti. Puhelimeen vastannut asiakaspalvelija joutui kyllä toteamaan, ettei itse tiedä tästä asiasta mitään, mutta kollegan avulla hoitui kuntoon siinä odotellessa. ASCII:na tulee data.

    VastaaPoista
  6. Toinen kappale toimikin kuten piti.. Binäärinä täälläkin tulee data mittarilta mutta samapa tuo kunhan tulee. HA Dashboard lisäys vaihetehoineen on kyllä hyvä.

    VastaaPoista
  7. Moi, saako tuo virtansa HAN kautta vai tarvitseeko erillisen virtalähteen?

    VastaaPoista
    Vastaukset
    1. Itse itselleni Elenia ohjeessa olikin "RJ12-liitynnässä on koskettimessa 1 jännitteen syöttö (5 volttia), jossa on ylivirtasuojaus. Suurin sallittu
      virta on 250 mA ja jos se ylittyy, lakkaa liitynnän toiminta. Tämän jälkeen mittari kokeilee ajoittain, onko
      liitynnästä otettava virta palannut sallitulle tasolle. Jos asiakkaan laite ottaa virtaa enemmän kuin 250 mA,
      asiakas tarvitsee oman virtalähteen"

      Poista
    2. Saa virtansa HAN portin kautta, wemos d1 vie about 70mA, joten ei ole vaaraa ylittyä.

      Poista
  8. Kiitos, pakettisi tuli hienosti perille! Yksi avunpyyntö kun ei millään nouse verkkoon. Ohjeessa sanotaan, että secrets.yaml fileeseen laitetaan wifi_ssid:
    wifi_password: . Laitetaanko nämä mihin muotoon? wifi_ssid: home vai wifi_ssid: vai jotain muuta? En saa millään nousemaan verkkoon :(

    VastaaPoista
    Vastaukset
    1. tuolta jäikin nuo "<>" merkit pois "wifi_ssid: "

      Poista
    2. ilman hakasulkuja. Eli "wifi_ssid: ssidnimi" ja "wifi_password: salasana"

      Poista
    3. Kiitos. Vika olikin itsessäni ja en tajunut ssid:ssä erotella isoja kirjaimia. Toimii! :)

      Poista
  9. Kiitos, todella hyvin valmistettu kokonaisuus. Itsellä pieni ongelma flashauksessa, olisiko mitään vinkkiä mitä mahdollisesti jää huomaamatta? Vaikuttaisi siltä kuin ESPHome ei löytäisi moduulia usb:stä ensimmäisellä flashauksella, vaan yrittää suoraan verkosta: "Error resolving IP address of esp-p1reader.local. Is it connected to WiFi?". Kokeilin kahdella eri usb-kaapelillakin joita olen käyttänyt muissa flashaus-puuhissa, joten datalinjat pitäisi olla kytketty. Moduuli näkyy myös "lsusb" komennolla kytkettynä "QinHeng Electronics CH340 serial converter" nimellä.

    VastaaPoista
    Vastaukset
    1. yleensä kannataa katsoa esim dmesgillä että tuleeko ttyUSB0 näkyviin, ja sitten tarkistaa onko kyseisellä käyttäjällä oikeus kyseiseen deviceen (käyttäjän pitää olla dialout groupissa, muuten sillä ole oikeuksia USB porttiin). Esim Ubuntu:
      Need to give access to the serial ports.
      Just add your user to the dialout group by command: “sudo usermod -a -G dialout UserinNimiTähän ” and restart the system.

      Poista
    2. Kiitos suuresti avusta, nyt sain kaiken toimimaan. Kyseessä oli tällä kertaa ttyUSB0 konflikti brltty kanssa, vinkin ansiosta pääsin jäljille.

      Poista
    3. brltty on tosiaan aika yleinen konflikti ongelma grouppi oikeuksien lisäksi.

      Poista
  10. Toimiiko tämä myös Landis & Gyr E360 mittarin kanssa?

    VastaaPoista
    Vastaukset
    1. Sitä varmaan joudut kysymään omalta sähköyhtiöltäsi, että enabloivatko he HAN portin noista, ja nopeasti googlaamalla noissa on firmis ainakin muutama vuosi sitten ollut buginen ( http://e-logger.se/forum/index.php?topic=2014.0 ). Mulla on tainnut kaikki minulta lukijan ostaneet Aidonin käyttäjiä, mutta jos seuraavat standardia, niin teoriassa voisi toimia, mutta ei ole takuita.

      Poista
    2. Yksi käyttäjistä raportoi Landis & Gyr:n toimivaksi, ei maininnut mallinumeroa ja sanoi, että puski binääriä.

      Poista
  11. Kiitos tästä.
    Ainoa vika muutamat menetetyt yöunet HA kanssa, mutta tunkkaaminen on toisaalta aina virkistävää ja saipa kotiautomaation etenemisen nytkähtämään kunnolla liikkeelle.

    VastaaPoista
  12. Jos HAN-portin data näyttää kuten tuossa ylhäällä purppurataustalla "_h\x..." niin tod. näk. syy on, että sarjamuotoinen data on nurin päin, eli ykkönen on nolla ja nolla ykkönen. Asian saa korjattua, käyttämällä invertoivaa optoerotinta tai transistoria/fettiä.

    VastaaPoista
    Vastaukset
    1. Täsmennys: Tässä Aidon data on ASCII-muotoista.

      Poista
  13. Nopeasti onnistui aktivointi tänään puhelimessa, sille vahva suositus. Mutta binääriä puskee. Kiitoksia, että siitä varoitettiin täällä. Kyllä meinasi hiukset lähteä päästä tätä selvittäessä.

    VastaaPoista
    Vastaukset
    1. Jaa eipäs auttanut binäärifirmis. Vaatineeko tuon optoerottimen

      Poista
    2. Vaati git clonen oikeaoppisen käytön...

      Poista
    3. hienoa, että rupesi pelittämään :)

      Poista
  14. Täällä tänään sulta hankittu palikka laitettu käyttöön. Elenian Aidonin 7534 mittariin. Oli hieman hankaluuksia kun ei meinannut mikään toimia kunnolla, mutta loppujen lopuksi oli ASCII-muotosta ja vaati "inverted: true" asetuksen pois kommentoinin ESPhomesta.

    VastaaPoista
    Vastaukset
    1. Tosiaan flashäys herjaa inverted : true ja Number: 3 riveistä, ei hyväksy niitä. esphome versio 2023:12:9. Kun otti pois onnistui.

      Mietin vaan mikä merkitys on esphome dashboardilla?
      Ja voisiko p1readerin usb-portin kautta kytkeä lukijan piuhalla LANiin? Ainakin saa näin testimielessä luettua Aidon-mittaria läppärille, kun veistää koloa koteloon usb-piuhaa varten. Mun mittarilla kun ei ole wifiä käytössä. Vielä.

      Poista
    2. Juu, tosta mun tekemässä kotelossa on usb portti tarkoituksella blockattu, kun jos syöttää virtaa kahdesta suunnasta yhtäaikaa niin voi tulla wemoksesta savut pihalle, ja tuossa versiossa on usb portin debuggi disabloitu, joten ei onnistui tuolla open source palikalla. Toki kukaan ei estä tekemästä omaa kooditoteutusta usb yli.

      Poista
    3. Kiitos nopeasta vastauksesta. En onneksi ehtinyt savuihin asti.

      Poista
  15. Kiitos, lukija toimii hyvin Aidon 7410P mittarissa. Aktivoitu profiili oli ASCIIta ja yaml-tiedostoissa inverted-arvo piti olla False. Wifi-asetuksista säädin "use_address" arvoa, koska itselläni IoT-laitteet ovat omassa hiekkalaatikossaan ja eri VLANissa pyörivä palvelin ei muuten saanut siihen yhteyttä. En käytä Home Assistantia, joten luen arvot suoraan omaan kantaan käyttäen aioesphomeapi-koodia pohjana.

    VastaaPoista
  16. Kiitos, lukija tuli nopeasti perille. Mittari on Landis Gyr E360 ja se puski ASCIItä, inverted-arvo False eli käytin psvanstromin koodeja ja muokkasin niitä pikkuisen "vesal":n sivun perusteella. Aluksi kortti ei näkynyt Ubuntussa, mutta toisella USB-piuhalla alkoi toimia. Sitten tuli ongelma, ettei esphome nähnyt korttia. Komento sudo apt remove brltty ja boottaus ratkaisivat ongelman. Inverted-arvo Truella mittari ilmestyi Home Assistanttiin, mutta kaikki entiteetit olivat "Tuntematon". Falsella dataa alkoi ilmestyä ja nyt pääsenkin jo rakentamaan automaatioita.

    VastaaPoista
  17. I recently had a new Elenia Aidon 7534 meter installed and purchased this p1 reader. For me what worked was flashing the https://github.com/psvanstrom/esphome-p1reader (ASCII version) and using the "uart: - inverted: false."
    Now all the data flows into Home Assistant nicely.
    Thanks!

    VastaaPoista