TaloLoggerCont - loggeri, visualisointi ja kanta Docker-containereissa

olammi

Tulokas
Terve pitkästä aikaa!

Hieman pidemmän hiljaiselon jälkeen rakensin tLPi-tyyppisen default-konfiguraation Docker-containereissa majailevaa loggeri-visualisointi-kantakokonaisuutta varten.
Docker Hub:ssa on kaksi minun repositoriota, joissa ylläpidän olammi/talologger ja olammi/talologgergraph -imaget. Näiden käyttämiseksi julkaisin taloLoggerCont-nimisen docker-compose-paketin, jolla noilla konteilla saadaan esimerkkiloggeri helposti aikaan.

https://olammi.iki.fi/sw/taloLoggerCont/

Näitä containereita voi toki hyödyntää osittain tai muunneltuna. taloLoggerCont:in on vain tarkoitus olla helppo esimerkki loggerin aikaansaamiseksi eri kantavaihtoehdoilla.

Samassa tohinassa myös taloLoggeriin ja ...Graphiin pienet lisäykset:

taloLogger v1.8a:
* Added Fronius Solar API datasource.

taloLoggerGraph v1.2e:
* Added Chart Series Counter type 3.

Lisätty siis tuki Froniuksen aurinkovoimalainvertterin lokitukselle sekä kumulatiivisiin kulutuskuvaajiin uusi tyyppi, jossa laskurin arvo ei olekaan nouseva vaan kannassa on mittausvälin laskurin muutos.
 
testasin ROCK Pi 4 (Rockchip RK3399) / Bookworm, ei työpöytää
asennusohjelma meni kerralla ilman ensimmäistäkään virheilmoitusta
heti reboot'in jälkeen nousi jaloilleen
 

Liitetiedostot

  • WhatsApp-Kuva 2023-09-25 klo 12.31.54.jpg
    WhatsApp-Kuva 2023-09-25 klo 12.31.54.jpg
    125,1 KB · Lukukerrat: 227
Viimeksi muokannut moderaattori:
Terve pitkästä aikaa!

Hieman pidemmän hiljaiselon jälkeen rakensin tLPi-tyyppisen default-konfiguraation Docker-containereissa majailevaa loggeri-visualisointi-kantakokonaisuutta varten.
Docker Hub:ssa on kaksi minun repositoriota, joissa ylläpidän olammi/talologger ja olammi/talologgergraph -imaget. Näiden käyttämiseksi julkaisin taloLoggerCont-nimisen docker-compose-paketin, jolla noilla konteilla saadaan esimerkkiloggeri helposti aikaan.

https://olammi.iki.fi/sw/taloLoggerCont/

Näitä containereita voi toki hyödyntää osittain tai muunneltuna. taloLoggerCont:in on vain tarkoitus olla helppo esimerkki loggerin aikaansaamiseksi eri kantavaihtoehdoilla.

Samassa tohinassa myös taloLoggeriin ja ...Graphiin pienet lisäykset:

taloLogger v1.8a:
* Added Fronius Solar API datasource.

taloLoggerGraph v1.2e:
* Added Chart Series Counter type 3.

Lisätty siis tuki Froniuksen aurinkovoimalainvertterin lokitukselle sekä kumulatiivisiin kulutuskuvaajiin uusi tyyppi, jossa laskurin arvo ei olekaan nouseva vaan kannassa on mittausvälin laskurin muutos.
Tämä on mahtava systeemi, itsellä on pyörinyt Niben logittajana vuosia.

Nyt pohdinnassa on ollut, että laittaisin ha-päähän mqtt-brokerin vastaanottamaan Niben anturidataa. Projekti on vielä jäänyt, kun tuo vanha Talologgerpi ei helposti asentunut uuteen Raspbianiin, mutta tämä julkaisu johtaa kyllä siihen, että asia tulee lähiviikkoina etenemään!

Mahtavaa työtä Olammi tämän osalta!
 
Tuo containeriin laittaminen mahdollistaa erilaisten softariippuvuuksien piilottamisen ja helpottaa jonkin verran järjestelmän tekohengittelyä vanhalla Python-versiolla. TaloLoggerPi:n kanssa tie muuttui aika kuoppaiseksi. Nyt tuo julkaistu ympäristö tarjoaa ja sisältää aika hyvin perustoiminnallisuuden. Samoin versionostot menevät tämän kanssa kivuttomammin, kun ei tarvitse kuin päivittää kontit ja päivitetty toiminnallisuus tulee ajoon samalla datalla ja konfiguraatiolla.

Seuraava vastaan tuleva asia on, että miten tuonne loggerikontin sisään saadaan erilaiset sarjaportit, OneWiret ja GPIO:t näkymään ja toimimaan. Koitan tehdä tästä ohjeistusta tuonne FAQ:hun ja ongelmien ilmaantuessa toki päivitetään noita kontteja tukemaan toimintaa.
 
Päivitys julkaistu.
* taloLoggerCont v1.0b
* olammi/talologger:1.0.1

Highlights:
* Rasberry Pi:ssä GPIO:n saa toimimaan nyt lokitukseen kontissa. Vaatii tuoreimman olammi/talologger-kontin (versio 1.0.1) + FAQ:ssa kuvatun rivin kontin parametreihin.
* 32-bittiseen ARM:iin ei ole virallista MariaDB-konttia. Lisätty esimerkki composetiedostosta toisella MySQL-konttivaihtoehdolla armhf-ympäristöön (esim. 32-bittinen Rasbian).
* Lisätty FAQ:hun sarjaporttien ja OWFS:n käytöstä.
 
törmäsin pieneen ongelmaan kun aiemmin luin owfs'ällä w1 modulin tyyliin
@OWFS:OWFS = w1:1:/app/w1/28-00000470c155/w1_slave

en muistanut heti että w1 lukeminen vaati onewire.py tiedostoon seuraavan muutoksen
se oli muitaakseni @repomiehen ehdottama muutos jota olen menestyksekkäästi käyttänyt pitkään

muutos:
onewire.py 133 riviltä eteenpäin niin lukee w1 modulin
******************
self.Debug("Received oneWire data: " + repr(data))

tempOutput = data.find('t=')
if tempOutput != -1:
tempString = data.strip()[tempOutput+2:]
data = str(float(tempString) / 1000.0)

data = handleOWData(data, type)
return data
*******************

nyt vaan en onnistu tuonne konttiin muutosta tekemään, ei anna muuttaa
olisiko vinkkiä kuinka, nanolla tulee vain uusi tyhjä tiedosto

SHELL modulilla taasen muita ongelmia desimaalien kanssa w1 luettaessa, sillä muutoin toimii

W1 moduli ei tietty olisi pahitteeksi, no hieman päällekäinen OWFS kanssa
 
Viimeksi muokannut moderaattori:
Kontin sisään on mahdollista viedä ulkoa tiedosto ennen käynnistystä (volume mount). Tässä kuitenkin näkemykseni mukaan on kyseessä aika ruma jesarirautalankapaikka. Rautalankapaikka on vieläpä hieman huonosti koodattu/rikki, mutta tässä kohden taitaa toimia kuitenkin, koska w1-data on hyvänlaatuista (eikä sisällä datan alussa esim. spaceja tai rivinvaihtoja).

Nykyisellä taloLoggerin toiminnallisuudella olisi mahdollista tehdä ensin SHELL-moduulilla luku ja päälle VIRTUAL-mittapisteellä tuo 1000:lla jako. Lisäksi vielä STOREFILTER, jos ei halua sen välituloksen menevän talteen.

W1-moduulin sijasta voisi ehkä olla joku FILE-moduuli, johon yhdistyy OWFS ja REGEXPit ja vielä kerrointa päälle. Tai lisää SHELL-moduuliin mahdollisuuden operoida tulosta (esim. jakaa tonnilla).
 
W1 toimii SHELL-modulilla..........joten ok........hapokasta minulle eikä varmasti mikään tyylipuhdas mutta tällä takoo lukemaa
SHELL1:LOCATION = /usr/bin/awk
SHELL1: PARAMETERS = -F= '/t=/ {printf "%.03f", $2/1000}' /app/w1/28-00000470c155/w1_slave
@SHELL1:REGEXP = ^\s*(?P<w1>[0-9\.\-]+).*$
 
Viimeksi muokannut moderaattori:
Tai sitten jotain tällaista:
Koodi:
SHELL1:LOCATION = /bin/cat
SHELL1:PARAMETERS = /app/w1/28-00000470c155/w1_slave
@SHELL1:REGEXP = ^.*t=(?P<w1raw>[0-9\.\-]+).*$
@MEASURE = w1raw:SHELL1.w1raw
@VIRTUAL = w1:1:float(%_w1raw_%) / 1000.0
@STOREFILTER = MYSQLDB:w1
 
Sainpa vihdoin itsekin aikaiseksi modernisoida oman talologger-raspin tähän cont-versioon. Pohjalla uusin raspbian lite, ainoa ero tuohon dokumentaatioon oli, että käynnistyskäskyssä ei pitänyt olla viivaa välissä, vaan muotoa "docker compose..."

Hetki meni miettiessä miksei sarjayhteys pelaa ennenkuin hoksasin tarjota sen adapterin graafikontin sijasta sinne logikonttiin... :D
 
Julkaistu taloLogger v1.8b:
* Lisätty Zigbee-sensorilokitus deCONZ REST-API:n kautta.
* Korjattu tallettuvien tietojen järjestys siten, että esim. tiedostotallenteeseen tulevat kentät määritellyssä järjestyksessä (aiemmin oli vähän satunnaisuutta).

Julkaistu päivitetyt konttiversiot Docker Hubiin (+ taloLoggerCont v1.0c):
* versionosto taloLogger v1.8b:hen
* lisätty dialEye v1.0b talologger-konttiin
* kosmeettisia korjauksia
 
  • Tykkää
Reaktiot: tk-
Minkälainen homma olisi lukea tuo HomeWizard P1 talologgerilla? Ainakin laitteen rest-rajapinta on yksinkertainen, tuolla P1-han -keskustelussa on sekä laitteen antama json että allekirjoittaneen shellylle tekemä skriptiräpellys mikä lukee tiedot jsonista.

Ajatuksena olisi löytää helppo keino välittää tiedot mqtt:lle. Ha-integraatio tuohon toki on olemassa myös, ja sillä tuo olisi toki tehtävissä. Mutta mietin menisikö samalla vaivalla Niben tietojen siirron kanssa.
 
Tuskin kovin iso homma. Vaikeintahan näissä on saada joku testisetti aikaan, jos ei itsellä ole laitetta. Ja API-dokumentaatio auttaa, jos mahdollista - jos ei ole, niin kyllähän aika paljon aina voi arvailla ja kokeilla. Eli, jos esim. tunneloimalla tai muuten saa sen API:n testikäyttöön kehityksen ajaksi, niin luultavasti hyvinkin nopea homma.
 
Julkaistu taloLogger v1.8c:
* Lisätty tuki HomeWizard Energy API.

Julkaistu päivitetty konttiversio olammi/talologger Docker Hubiin (+ taloLoggerCont v1.0d):
* versionosto taloLogger v1.8c:hen
 
  • Tykkää
Reaktiot: tk-
Julkaistu taloLogger v1.8c:
* Lisätty tuki HomeWizard Energy API.

Julkaistu päivitetty konttiversio olammi/talologger Docker Hubiin (+ taloLoggerCont v1.0d):
* versionosto taloLogger v1.8c:hen
Suurkiitos! Toimii juuri niin helposti ja varmasti kuin aina ennenkin. Teho toki tallentuu kantaan watteina, tuossa graafissa akselin luettavuuden parantamiseksi muutettu kilowateiksi. Samalla logittuu talteen mittarilukema myös vaikkei tuossa näykään.


Näyttökuva 2024-1-31 kello 12.41.14.png
 
Viimeksi muokattu:
Suurkiitos! Toimii juuri niin helposti ja varmasti kuin aina ennenkin. Teho toki tallentuu kantaan watteina, tuossa graafissa akselin luettavuuden parantamiseksi muutettu kilowateiksi. Samalla logittuu talteen mittarilukema myös vaikkei tuossa näykään.


Kiitoksia vaan itsellesi testirajapinnan tarjoamisesta. Näiden ominaisuuksien koodaaminen on aina helpompaa, nopeampaa ja mielekkäämpää, kun on todellinen rajapinta, jota vasten testata tekelettään.
 
docker container oli kyllä totaalisen uutta itselle.
Tietokannan sain jo vaihdettua MySQL:ksi. Nyt haluaisin hieman vanhaan kopioitua tietokantaa ottaa käyttöön. Aiemmat ohjeeni eivät nyt auta, koska homma tyssää jo siihen, että ilmeisesti MySQL/MariaDB ovat myös docker containerissa..?

virhettä siis tulee yrittäessäni mennä vanhaan tyyliin mysql:ään.
sudo mysql

Mitä polkua pitkin nyt pitää mennä tai käynnistää mysql, että voin luoda taulun mysql:ssä ja luoda lisää käyttäjiä create user / grant select on ?


Erikseen asensin MariaDB:n ja se toimii, mutta en saa talologgerin tietokantaa sinne näkyviin tietokantalistauksiin.
Talologger tekee taulunsa tänne ./vol/db_data_mysql ja mysql on täällä /var/lib/mysql

.yml on kyllä asetettu alla oleva määritelmä, mutta ei talologgerin tauluja näy mysql:ssä vaikka itse talologger toimii ja kirjoittaa tauluun.
volumes:
- ./vol/db_data_mysql:/var/lib/mysql
 
Viimeksi muokattu:
Kannattaa katsoa sieltä docker määrityksestä mitä tiedostoja/hakemistoja on yhteisiä. Muutokset ei tule muistaaksi mukaan pelkällä restart:illa vaan vaatii kai "compose up" jotta se ihan toimii. Ajat varmaankin raspberry:ssä tuota ? ne kopioidut tiedostot löytyy jonkun moun pointin takaa jos pitää niitä etsiä. Mulla oli vaikeuksia saada talologgergraph taustakuva ( se ghb_process) muutetua omaksi tuon container mappauksena kanssa, piti hiukan etsiä :-)
 
Hei. Saisinko apua.
Minulla oli pitkään toiminut talologger Raspissani. Se toimi vuosia erittäin hyvin mutta se valitettavsti kuoli, enkä saa siitä aikanaan tekemääni kopitakaan toimimaan. Nyt yritän saada tehtyä talologgerCont:ia. Sain Dockeripaketin ladattua ja se tuntuisi toimivan. Latasin talologgercont paketin ja yritän tehdä ohjesivun mukaiset komennot. Homma tyssää komentoon docker -compose up -d. Bash herjaa docker -compose not found. Mitä en ole huomannut.
 
Vastaan itselleni. Tiedostopääte piti muuttaa *.yaml. Homma meni puihin kun tuli ilmoitus failed to Copyright: httpReadSeeker jne. Onpas hankalaa verrattuna aiemman talologgerin lataukseen verrattuna. Samoin influxdb ja grafanan lataukset tuntuvat hakalammilta tai sitten en vain enää ymmärrä mitään ohjeista, varsinkin kun niitä on netti pullollaan. Mikä niistä todella toimii? Vanha talologger systeemini käytti niitä ja haluaisin, että saisin ne toimimaan tässä uudessa.
 
Takaisin
Ylös Bottom