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

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:

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+3e kirjeposti), jos kiinnostaa, niin voi pistää sähköpostia blogin osoitteeseen. 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ä).

torstai 23. joulukuuta 2021

Telia 6rd IPv6 putken konffaus pfSense palomuuriin

Telian tarjoma 6rd putken asetukset on tarjolla Option-212 parametrissä DHCP4 vastauksen mukana. Esim Asuksen RT-purkit osaa suoraan konffata 6rd putken dhcp option-212 vastauksen pohjalta, mutta pfSense palomuuri ei osaa kyseistä kenttää kysyä ja parsia ainakaan nykyisessä firmiksessä. Mutta pienoisella manuaalityöllä sekin tieto on kyllä kaiveltavissa.

Ensin pitää enabloida ssh shelli "System / Advanced / Admin Access / Enable Secure Shell" ja loggaa roottina palomuurin sisälle.

Luo filesysteemiin kaksi tiedostoa (esim. vi-editorilla):

/etc/dhclient.script && chmod a+x /etc/dhclient.script
#!/bin/sh
echo $new_option_212 >/tmp/6rd-212.log
/etc/dhclient.conf
request subnet-mask, broadcast-address, time-offset, routers, domain-name, domain-name-servers, host-name, option-212;
script "/etc/dhclient.script";
Jonka jälkeen voimme sivusta kutsua dhcpclienttia joka kysyy option-212sen operaattorilta (minulla WAN on igb0).
# dhclient -c /etc/dhclient.conf igb0
# cat /tmp/6rd-212.log
e:26:20:1:20:3:f4:0:0:0:0:0:0:0:0:0:0:0:54:fb:ff:fe
Tästä logirivistä saamme tarvittavat 6rd parametrit yhteyden luomiseksi. Lisätietoa: https://datatracker.ietf.org/doc/html/rfc5969#section-7.1.1 (hex-to-decimal konversio seuraaville kentille: 1,2,19,20,21,22)
e:26:20:1:20:3:f4:0:0:0:0:0:0:0:0:0:0:0:54:fb:ff:fe
0x0e    = 14               (6RD IPv4 Prefix length)
0x26    = 38               (6RD Prefix mask)
0x20... = 2001:2003:f400:: (6RD Prefix)
0x54... = 84.251.255.254   (6RD Border relay)
DHCP palauttaa aina julkisen ipv4 osoitteen pohjalta hieman eri arvot, mutta tuota seuraamalla voit laskea omasta replystäsi tarvitsemasi arvot. Ja pistää ne pfSensen 6rd asetuksiin WAN interfaceen.

Sen lisäksi kävin muuttamassa Monitor IP:n osoittamaan googlen IPv6 nimipalvelinta, niin pystyy paremmin seuraamaan, että onko interface pystyssä.

Tuon kaiken jälkeen ping6 testit toimii iloisesti ja halutessaan voi lisätä vielä IPv6 osoitteen vaikka LAN interfaceen. Valitsemalla "IPv6 Configuration Type":n arvoksi "Track Interface" ja valitaan WAN trackattavaksi interfaceksi. Sekä voit halutessasi tarjota IPv6 osoitteita myös LAN verkollesi.

Ubiquitin Edgerouterille löytyy myös 6rd ohjeistus täältä: https://github.com/kauppine/edgerouter-telia6rd

tiistai 20. heinäkuuta 2021

Home Assistant - Gluehome lukkointegraatio

Olen aikaisemmin Glue-lukko aihetta jo sivunnut aikaisemmassa blogipostauksessa: http://omakotikotitalomme.blogspot.com/2019/09/glue-alylukon-rajapintojen-tutkimista.html

Keväällä Glue muutti mobile applikaation kokonaan ja vanha API urli lakkasi toimimasta. Nopeasti vilkaisin uuden appiksenkin sisälle, ja siellä oli https://mobile.gluehome.com/api/ urli käytössä ja nopealla vilkaisulla löytyi myös mqtt broker hittejä, mikä olisi lupaavaa, jos semmoinen rajapinta joskus aukeasti. Mutta onneksi ei tarvinnut ruveta tarkemmin appiksen toimintaa penkomaan, kun internetistä löytyi uusi semi-official API, kun Homebridgelle oli julkaistu toteutus GlueHome integraatioille (https://github.com/GlueHome/homebridge-plugin). Joten samaa esimerkkiä seuraten voi curlilla tai HA:lla lukkoa komentaa.

# Create/fetch <api-key> with glue <user>:<pass> according to plugin README:
curl --location --request POST 'https://user-api.gluehome.com/v1/api-keys' --header 'Content-Type: application/json' -u <user>:<pass> --data-raw '{ "name": "My Test Key", "scopes": ["events.read", "locks.read", "locks.write"] }'

# Fetch <lock-id> using created <api-key>
curl -L -H "Authorization: Api-Key <api-key>"  https://user-api.gluehome.com/v1/locks

# Test operation <op>=lock/unlock on <lock-id> 
curl -L -H "Authorization: Api-Key <api-key>" -H 'Content-Type: application/json' -d '{"type":"<op>"}' https://user-api.gluehome.com/v1/locks/<lock-id>/operations

Ylläolevilla esimerkeillä voi testata lukon toimintaa, ja samalla voit luoda/pistää talteen oman lukkosi <api-key> ja <lock-id>. Niitä tarvitaan Home Assistantin puolella kun editoit secrets.yaml ja configuration.yaml tiedostoja.

secrets.yaml:
glue_command_on: "curl -L -H 'Authorization: Api-Key ApiAvain' -H 'Content-Type: application/json' -d '{\"type\":\"lock\"}' https://user-api.gluehome.com/v1/locks/123456/operations"
glue_command_off: "curl -L -H 'Authorization: Api-Key ApiAvain' -H 'Content-Type: application/json' -d '{\"type\":\"unlock\"}' https://user-api.gluehome.com/v1/locks/123456/operations"

glue_resource: "https://user-api.gluehome.com/v1/locks/123456"
glue_auth: "Api-Key ApiAvain"
configuration.yaml:
switch varasto_ovi:
- platform: command_line
  switches:
    varasto_lock:
      friendly_name: "Varaston Ovi"
      command_on: !secret glue_command_on
      command_off: !secret glue_command_off
sensor varaston_ovi:
  - platform: rest
    resource: !secret glue_resource
    name: varasto_lock
    method: GET
    headers:
      Authorization: !secret glue_auth
    json_attributes:
      - description
      - batteryStatus
      - lastLockEvent
      - connectionStatus
    value_template: "OK"
  - platform: template
    sensors:
      varasto_lock_last_event:
        friendly_name: Last varasto lock event
        value_template: "{{ state_attr('sensor.varasto_lock', 'lastLockEvent')['eventType'] }}"
      varasto_lock_battery:
        friendly_name: Varasto lock battery
        value_template: "{{ state_attr('sensor.varasto_lock', 'batteryStatus') }}"

Ja HA:n restartin jälkeen lukko löytyy switchinä Overview näytöllä;



sunnuntai 2. elokuuta 2020

HP Elitebook 8560w Bluetooth 4.0 päivitysprojekti

Tulinpas tuossa hankkineeksi edullisesti Elitebook 8560w läppärin huutonetistä (https://support.hp.com/lv-en/document/c02843496). Koneessa 2gen i7 4core prosari, levy päivitetty teran SSD:ksi ja max RAM on 32GB (lähinnä ton läppärin hankin siksi, että tohon sai muistia kivasti). Ainoa isompi puute tuossa koneessa on, että koneen sisäinen bluetooth on 2.1 versiota, johon ei ole olemassa Win10 ajuria.

Hetken vietettyäni aikaa googlen hakukoneessa, kunnes löysin tämän: https://h30434.www3.hp.com/t5/Notebook-Hardware-and-Upgrade-Questions/bluetooth-4-0-module/td-p/5590026

Ebaystä löysin 8470p:sta purkuosana Puolasta edullisesti juuri edellisessä linkissä mainitun BT 4.0 moduulin ja kun kirje saapui viikossa (ja QR-koodin alla on numerosarja, eli on 4.0 moduuli), niin rupesin asennuspuuhiin.

Takakansi irti ja kuva vanhasta moduulista. Toimimattoman BT 2.1 moduulin tunnistaa siitä että QR-koodin alla ei ole numerosarjaa.

Vanhan kaapelin varovainen irroitus ja liittäminen uuteen moduuliin. Oli aika helppo plug and play operaatio.
Ja kun koneen seuraavan kerran boottasi, niin BT4.0 toimii iloisesti, joten voi taas käyttää BT vastamelukuulokkeita yms laitteita.


perjantai 6. maaliskuuta 2020

DIY: Amiga Flashfloppy flashaus FDD-UDD U144K

Tilasinpas itselleni Amigaan halppisversion (pari euroa edullisempi kuin normi versio) Gotekista ilman näyttöä (kun yleensä heitän kolmen numeron näytön menemään ja pistän oled näytön tilalle). Mutta yllätyksekseni postiluukusta tipahtikin Gotek, jossa oli täysin eri pcb kuin mihin olin tottunut.

Onneksi en ollut ainoa joka moiseen on törmännyt: https://github.com/keirf/FlashFloppy/issues/232

Tuota githubin issueta tavaamalla onnistuin lopulta flashaamaan FlashFloppy firmiksen Gotekkiin sisään. Tässä vähän toivottavasti selkeämpiä kuvia (jossa pinnit kirjoitettu auki), jos joku muukin moisen ongelman eteen joutuu.

Tarvittava rauta: kahden euron stm32 flasheri ebaysta, esim hakusanalla "st link v2"
Tarvittava softa, jos haluaa Windowsissa flashata: https://www.st.com/en/development-tools/stsw-link004.html

Tässä pinnit kirjoitettuna auki, jonka jälkeen ST-link v2 on helppo kiinnittää oikeisiin pinneihin. Kirjoitin tuohon myös miten ne mappaantuu normaaliin Gotekkiin.

Itse kytkin NRST signaalin virtaliittimen GND napaan automaattisen flashauksen aloittamiseksi dupont kaapelilla. Ei tarvi kuin hetkellisesti koskea, että käy resetissä kun on automatic flashing moden käynnistänyt, jolloin flashfloppy flashaantui iloisesti paikoillen. Ja OLED näyttöön ilmestyi tuttu FlashFloppy teksti.

lauantai 25. tammikuuta 2020

DIY: solder paste stencil kokeilu

Bongasin, että maailmalla ihmiset olivat tehneet itselleen solder paste stencilejä (juotostina sapluuna) Silhouette- ja Laser-leikkureilla. Joten siitä se idea sitten lähti. Bongasin Lidl:stä muutaman metrin rullan blackboardfilmiä (liitutaulutarraa) vitosella, joka riittää sitten yli sataan stenciliin, jolloin yksittäisen stencilin hinnaksi jää sen 5 senttiä.

Minulla löytyy nurkista Silhouette Cameo 3 leikkuri sekä laser & cnc kaiverrin. Molemmilla varmaan olisi sopivalla materiaalilla onnistunut stencilin teko. Mutta Cameolla testasin kun se leikkaa iloisesti tuota tarramateriaalia.

Otin piirilevystäni (Commodore Amiga 500 lisämuistipalikka) sopivan gerberin ulos seuraavaa ohjetta noudattaen: https://www.autodesk.com/products/eagle/blog/getting-started-solder-paste-stencils/. Ja siitä sitten convertoin leikkurin ymmärtämään muotoon.


Leikkuri leikkasi materiaalin aika nätisti ja se pysyi ehjänä vaikka reikien väli on alle millimetrin.


Vanhalla luottokortilla vetelin juotostinamassan sapluunan yli. Ja lopulta viimeisessä kuvassa muistipiiri kiinni nätisti levyssä kuumennuksen jälkeen. Paljon siistimpi jälki kuin niissä joita olin tehnyt ennen sapluunan käyttöä.

perjantai 6. joulukuuta 2019

Rex 9268 External kernal cartridge klooni - Commore 64 DIY

DL2DW suunnitteli REX9628 Extern_kernal cartridge kortin. Ja vanhana Commodore fanina, tein sitten itsellenikin muutaman ihan vaan mielenkiinnosta.

Lisätietoa ja gerberit, jos haluaa itsekin tehdä: https://github.com/rainisto/REX-9628-Extern-Kernal-II-8

Kuukauden verran kun odotteli osia kiinasta, niin pääsi vihdoin kolvailemaan kasaan.

Kone boottasi kernaliin joka dip kytkimille oli valittu. Semmoinen ominaisuus tuossa on, osa muistissa on käyttämättömissä jos ei koneen sisältä CPU:n pinnistä 28 lue HIRAM signaalia (sen voi halutessaan liittää kortin CS reikään).

Samoin Sven on tehnyt oman version samasta kortista täällä: https://github.com/svenpetersen1965/REX-9628-Extern-Kernal-8

lauantai 30. marraskuuta 2019

Suurennuslasivalaisimen modaus (E27->LED)

Minulta löytyy anopilta saatu E27 kantainen suurennuslasivalaisin viime vuosituhannelta, jonka hehkulamppu lämpenee 100+ asteiseksi ja joka ei valaise kunnolla. Joten otin projektiksi modata sen nykyaikaan kirkkailla 12V ledeillä. Ekana meinasin banggoodista tilata BlackFriday kunniaksi uuden led pohjaisen suurennuslasivalaisimen, mutta checkoutissa heidän systeeminsä jumitti, joten saivat pitää tunkkinsa kun ei raha kelvannut. Joten päädyin parantamaan anopin lahjoitusta.

Ensiksi purin E27 kannan ja jätin virtakytkimen jäljelle:

Purin yhden 220V->12V virtalähteen ja pistin sen vanhan E27 koteloinnin sisällä. Ja asentelin sopivasti rullassa leikattavaa 12V ledinauhaa suurennuslasin ympärille ja yhden suiron vielä takaosaan.

Ja lopputulos on parempi kuin hyvä, lamppu ei lämpene ja valotehoa on enemmän kuin kuva antaa ymmärtää (moninkertaisesti verrattuna vanhaan). Vihdoinkin vanhat ja raihnaiset silmäni näkee kolvata tuossa valossa. Onnistunut modaus, osien hinta alle 10e.

Amiga RM550C-D lisämuistin patterikellon korjausmodaus

Poistin surullisen kuuluisan vuotavan Varta-akun Amigan lisämuistikortilta:

Ja siirtin yhden vastuksen yläpuolelta levyn alapuolelle, että sain tilaa CR2032 nappiparisto pidikkeelle, johon asensin LIR2032:n (lithiumakku). Asentamalla LIR:n CR:n sijasta vältyin lisäämästä latauksen estoon diodia, ja ladattava nappiparisto on kuitenkin vain alle 2e kipale:

Ja systestillä sai kellon resetoitua ja pysyy ajassa koneen käynnistyksien jälkeenkin. Joten onnistunut korjausoperaatio ja ladattavan nappipariston ansiosta kellon pitäisi pysyä ajassa vielä monta vuotta.
Edit: LIR2032 jatkuva lataus ei googlaamisella ole välttämättä suoraan hyvä tuolla, joten pistän varmaan eteen latauksen eston, niin voi käyttää myös perus CR2032sia ja ei ole räjähdysvaaraa.

Tässä kuva kolvauksen jälkeen kun plus navan eteen on pistettu 300Ohm vastus ja 1N4148 diodi. Samalla käänsin pidikettä vähän lisää, niin mahtuu vielä paremmin Amigan sisään.

maanantai 25. marraskuuta 2019

Home Assistant - Open source automaatio - Osa 4

Tykkäisin saada lämpömittareista myös mukavan näköistä käppyrää näkymään Grafanan puolelle. Joten muokkasin vähän yhtä olemassa olevaa kikkaretta joka MQTT ESP8266 onewire dallas mittareista pisti dataa eteenpäin Grafanan tietokantaan. Lisäsin koodinpätkän, joka myös kuuntelee myös homeassistant ja zigbee2mqtt mittarien MQTT jonoja.

https://github.com/rainisto/home-monitoring-grafana

Tuon MQTT bridgen avulla kaikista MQTT lämpömittareista menee data eteenpäin InfluxDB kantaan, josta grafanalla voi tehdä haluamansa näköisiä kuvaajia. Tässä esimerkkinä muutaman huoneen yhteisnäkymä:

Samalla voi configuroida Home Assisteantin hakemaan halumansa graafin HA:n desktop näkymään. Ohjeistus, jota seurasin löytyy täältä: https://community.home-assistant.io/t/complete-guide-on-setting-up-grafana-influxdb-with-home-assistant-using-official-docker-images/42860

configuration.yaml tiedostoon lisätään:

camera:
  - platform: generic
    name: Grafana Temperature
    still_image_url: 'http://192.168.1.8:3000/render/d-solo/xkTBiwMZz/home-assistant-dashboard?orgId=1&from=now-1d&to=now&panelId=4&width=1000&height=500&tz=Europe%2FHelsinki'
    username: homeassistant
    password: homeassistant
Ja ha:n rebootin jälkeen lisätään Picture Entity Card:

Ja lopulta grafana käppyrä näkyy suoraan home assistantin ruudulla, joten Grafana integraatio valmis.