Ga naar inhoud


Meter uitlezen 24/7 met Raspberry, hoe moet dat continu?


Aanbevolen berichten

Geplaatst:

is ook een ander programma dan je initieel postte. hier heb je een continue while loop (p1_teller == 0 en je wijzigt nooit zijn waarde). En er is nu ook een ser.readline om je seriele poort te lezen.

 

De laatste regels van je programma doen trouwens niks. Je komt nooit zover gezien je in een loop zit en bij afbreken (control-C) gewoon je code stopt. Ik hoop/vermoed dat python dan zo vriendelijk is om zelf de open file-handle naar je seriele poort te sluiten.

Het vorige programma is van een andere poster, niet van mij.

 

Dat ik de loop continue heb gezet was omdat ik de waardes uit mijn meter

continue wilde uitlezen (24/7), het progje stopte eerst na een aantal regels.

Groet, Con. Gloeiende, gloeiende, een beetje humor moet kunnen, anders ga je maar ergens anders heen..
Sinds november 2023 glasvezel via Solcon (voor het laatst).

Internet/PC: modem/router Fritzbox en TP-Link accesspoint, switch (8), switch (4)

PC: Intel Nuc i7 met W11. Laptop Thinkpad met W11.

Asus Gigabyte Home Assistant, 20 Shelly's en 2 ESP-tjes en Zigbee.


  • Reacties 76
  • Aangemaakt
  • Laatste reactie

Beste reacties in dit onderwerp

Beste reacties in dit onderwerp

Geplaatste afbeeldingen

Geplaatst: (aangepast)

Het vorige programma is van een andere poster, niet van mij.

 

Dat ik de loop continue heb gezet was omdat ik de waardes uit mijn meter

continue wilde uitlezen (24/7), het progje stopte eerst na een aantal regels.

 

Wat wil je specifiek met die data doen? Het continue uitlezen gaat niet echt nuttige data opleveren als je bv. grafieken wil maken; dan heb je een tijdsbasis nodig. Je kan dat oplossen door er een pauze in te steken, bv. time.sleep(300) om 5 minuten te wachten. Zo kan je gegevens bewaren met een tijdsinterval van 5 minuten. Die kan je dan bv. via RRD in een database steken en makkelijk grafiekjes maken.

 

Lukt het draaien via nohup na de aanpassingen?

aangepast door bunbun
Geplaatst: (aangepast)

Vreemd ik heb de loop gewijzigd in "while p1_teller <20:" en nu blijft het doorlopen;

 

pi@raspberrypi ~ $ python 1.py
Control-C om te stoppen
                       Gebruikt     geleverd         huidig
     Datum         tijd         dal       piek      dal      piek   verbruik geleverd
2013-07-15 21:55:49 185754 136070 37018 83030      660      0
2013-07-15 21:55:59 185754 136072 37018 83030      660      0
2013-07-15 21:56:09 185754 136074 37018 83030      660      0
2013-07-15 21:56:19 185754 136076 37018 83030      660      0
2013-07-15 21:56:29 185754 136078 37018 83030      660      0
2013-07-15 21:56:39 185754 136079 37018 83030      660      0
2013-07-15 21:56:49 185754 136081 37018 83030      660      0
2013-07-15 21:56:59 185754 136083 37018 83030      1390      0
2013-07-15 21:57:09 185754 136086 37018 83030      790      0
2013-07-15 21:57:19 185754 136088 37018 83030      790      0
2013-07-15 21:57:29 185754 136090 37018 83030      790      0
2013-07-15 21:57:39 185754 136092 37018 83030      790      0
2013-07-15 21:57:49 185754 136094 37018 83030      780      0
2013-07-15 21:57:59 185754 136097 37018 83030      780      0
2013-07-15 21:58:09 185754 136099 37018 83030      770      0
2013-07-15 21:58:19 185754 136101 37018 83030      710      0
2013-07-15 21:58:29 185754 136103 37018 83030      710      0
2013-07-15 21:58:39 185754 136105 37018 83030      700      0
2013-07-15 21:58:49 185754 136107 37018 83030      710      0
2013-07-15 21:58:59 185754 136109 37018 83030      700      0
2013-07-15 21:59:09 185754 136111 37018 83030      710      0
2013-07-15 21:59:19 185754 136113 37018 83030      710      0
2013-07-15 21:59:29 185754 136115 37018 83030      710      0
2013-07-15 21:59:39 185754 136117 37018 83030      710      0
2013-07-15 21:59:49 185754 136119 37018 83030      710      0
2013-07-15 21:59:59 185754 136121 37018 83030      710      0
^CSeriele poort /dev/ttyUSB0 kan niet gelezen worden. Aaaaaaaaarch.
[1]+  Exit 1                  nohup ./1.py 2>&1
pi@raspberrypi ~ $
 
Echter de toevoeging "#!/usr/bin/env python" aan het begin geeft foutmeldingen.
aangepast door Con

Groet, Con. Gloeiende, gloeiende, een beetje humor moet kunnen, anders ga je maar ergens anders heen..
Sinds november 2023 glasvezel via Solcon (voor het laatst).

Internet/PC: modem/router Fritzbox en TP-Link accesspoint, switch (8), switch (4)

PC: Intel Nuc i7 met W11. Laptop Thinkpad met W11.

Asus Gigabyte Home Assistant, 20 Shelly's en 2 ESP-tjes en Zigbee.

Geplaatst:

 

Vreemd ik heb de loop gewijzigd in "while p1_teller <20:" en nu blijft het doorlopen;

 

pi@raspberrypi ~ $ python 1.py
Control-C om te stoppen
                       Gebruikt     geleverd         huidig
     Datum         tijd         dal       piek      dal      piek   verbruik geleverd
2013-07-15 21:55:49 185754 136070 37018 83030      660      0
2013-07-15 21:55:59 185754 136072 37018 83030      660      0
2013-07-15 21:56:09 185754 136074 37018 83030      660      0
2013-07-15 21:56:19 185754 136076 37018 83030      660      0
2013-07-15 21:56:29 185754 136078 37018 83030      660      0
2013-07-15 21:56:39 185754 136079 37018 83030      660      0
2013-07-15 21:56:49 185754 136081 37018 83030      660      0
2013-07-15 21:56:59 185754 136083 37018 83030      1390      0
2013-07-15 21:57:09 185754 136086 37018 83030      790      0
2013-07-15 21:57:19 185754 136088 37018 83030      790      0
2013-07-15 21:57:29 185754 136090 37018 83030      790      0
2013-07-15 21:57:39 185754 136092 37018 83030      790      0
2013-07-15 21:57:49 185754 136094 37018 83030      780      0
2013-07-15 21:57:59 185754 136097 37018 83030      780      0
2013-07-15 21:58:09 185754 136099 37018 83030      770      0
2013-07-15 21:58:19 185754 136101 37018 83030      710      0
2013-07-15 21:58:29 185754 136103 37018 83030      710      0
2013-07-15 21:58:39 185754 136105 37018 83030      700      0
2013-07-15 21:58:49 185754 136107 37018 83030      710      0
2013-07-15 21:58:59 185754 136109 37018 83030      700      0
2013-07-15 21:59:09 185754 136111 37018 83030      710      0
2013-07-15 21:59:19 185754 136113 37018 83030      710      0
2013-07-15 21:59:29 185754 136115 37018 83030      710      0
2013-07-15 21:59:39 185754 136117 37018 83030      710      0
2013-07-15 21:59:49 185754 136119 37018 83030      710      0
2013-07-15 21:59:59 185754 136121 37018 83030      710      0
^CSeriele poort /dev/ttyUSB0 kan niet gelezen worden. Aaaaaaaaarch.
[1]+  Exit 1                  nohup ./1.py 2>&1
pi@raspberrypi ~ $
 
Echter de toevoeging "#!/usr/bin/env python" aan het begin geeft foutmeldingen.

 

In het laatste programma dat je gepost hebt verhoog je ook nergens je teller, dat stuk code staat in commentaar. Voeg p1_teller = p1_teller +1 eens toe aan het einde van je loop (of haal die block uit commentaar).

Geplaatst:

Wat wil je specifiek met die data doen? Het continue uitlezen gaat niet echt nuttige data opleveren als je bv. grafieken wil maken; dan heb je een tijdsbasis nodig. Je kan dat oplossen door er een pauze in te steken, bv. time.sleep(300) om 5 minuten te wachten. Zo kan je gegevens bewaren met een tijdsinterval van 5 minuten. Die kan je dan bv. via RRD in een database steken en makkelijk grafiekjes maken.

 

Lukt het draaien via nohup na de aanpassingen?

Ik heb sinds kort zonnepanelen en dan ben je nieuwsgierig en wil je alles zien.

Reden voor mij om het te proberen met een Rasberry maar dan beginnen de

(mijn) problemen pas. Eerst een piepklein beetje gewend raken aan Linux,

daarna Python proberen te snappen, vervolgens alles op de achtergrond laten

draaien en als laatste een en ander inzichtelijk maken met Excel.

 

Nu de eerste 2 heb ik min of meer een beetje overwonnen. Voor Excel draai

ik mijn hand niet om (heb even een hele grote broek aan) maar dat op de

achtergrond een scriptje laten draaien is een grote hobbel blijkbaar.

 

Dat ik erg veel (overdreven wellicht) gegevens binnenhaal is waar maar ik kan

later altijd kiezen om deelgegevens te gebruiken en las dat voldoende is de

uitleesfrequentie terugdraaien. Beter "mee"- als "om" verlegen zeggen we dan maar.

 

Ik ga nog eens rustig met "nohup" aan de gang en zal precies analiseren

wat voor een foutmeldingen ik krijg op zowel de orto- als de onorthodoxe manier.

 

Op voorhand bedankt voor je geduld.

Groet, Con. Gloeiende, gloeiende, een beetje humor moet kunnen, anders ga je maar ergens anders heen..
Sinds november 2023 glasvezel via Solcon (voor het laatst).

Internet/PC: modem/router Fritzbox en TP-Link accesspoint, switch (8), switch (4)

PC: Intel Nuc i7 met W11. Laptop Thinkpad met W11.

Asus Gigabyte Home Assistant, 20 Shelly's en 2 ESP-tjes en Zigbee.

Geplaatst:

Herinner me mijn 1e stappen in de unix-wereld (meer dan 20 jaar geleden) dus snap wel dat het een aanpassing is.

Als je nog vragen hebt stuur je maar een pm.

Geplaatst:

Dat je je hierin vastbijt en je er voor gaat is tof en goed. Daar geen kwaad woord over.

 

Echter volgens mij pak je het beetje verkeerd aan denk ik zelf.

 

Je hebt twee opties voor het uitlezen en loggen van deze gegevens.

 

a) Een 'daemon' (achtergrond programma) dat continue je poort polled en zelf alles regelt.

B) Een simpel programma dat enkel de seriele port probed en de waardes uit spuugt.

 

Methode a is wat jij zelf beetje toepast (en is wat meer werk, je moet immers een python of iets dergelijks in elkara doktoren dat dat allemaal voor je regelt, mag niet crashen of als het wel crasht dan moet hij toch alles netjes weg schrijven zonder dat je je hele 'database' kwijt raakt. Als dit eenmaal draait wil je zoiets in rc.local draaien, of zelfs iets met een eigen startup script.

 

Echter wordt methode veel vaker toegpast, zeker voor monitoring toepassingen. Het enige wat je scriptje dan hoeft te doen:

* Open seriele poort

* Lees waardes

* Voer corrigierende berekeningen uit (zou even niet eens kunnen bedenken wat, is niet echt nodig meestal)

* print waardes naar de output

* sluit seriele poort en ruim dingen die opgeruimd moeten worden nodig.

 

Vervolgens heb je dan b.v. het volgende in je cronjob staan:

* */5 * * * /usr/local/bin/myscript.py >> /var/energydb/meterstanden.txt

 

Wat er dan gebeurd, is door de >> wordt het bestand niet overschreven, maar elke keer 1 regel toegevoegd.

Vervolgens elke keer als je dit bestand importeert in je spreadsheet naar keuze, wil je het bestand zodat de eerst volgende meeting weer netjes 0 is. Vaak doe je dit geautomatiseerd en komt geen spreadsheet programma bij te kijken. Zoals hier boven al genoemt munin of nagios. Wat die dan doen, voeren elke xxx minuten je bestandje uit, verweken de output en slaan dit op in een database voor grafiekjes enzo. Dus eigenlijk 2 programma's om te doen wat 1 doet. Ook zouden ze het meterstanden.txt bestand b.v. kunnen inlezen en resetten na het inlezen hiervan. Mogelijkheden genoeg.

 

Wat jij doet in a gaat prima hoor, maar is een heel stuk lastiger en kost je een heleboel meer werk, vooral als je het toch alleen naar een spreadsheet wil sturen onnodig. Daar komt ook nog is boven op dat je de CLI moet leren, wat ook nog eens best lastig is als je het nog nooit gedaan hebt :)

Geplaatst: (aangepast)

Het is helemaal gelukt, het uitlezen van mijn "slimme" meter en het keurig netjes

omzetten van het telegram naar een "spatie"-seperate-file en gaat nu ook gewoon

door nadat ik ben uitgelogd. Vooral mede dankzij "bunbun".

 

De volgende stap is met RRDtool aan de gang en als dat allemaal werkt een tweede

Raspberry om mijn zonnepanelen uit te lezen. Maar zover ben ik nog lang niet . . . . 

 

Want een slimme meter kan mijn verbruik niet meer tonen als je zonnepanelen hebt.

Dus gewoon een belachelijke oerstomme meter. Ach, het leven is nu eenmaal tobben.

aangepast door Con

Groet, Con. Gloeiende, gloeiende, een beetje humor moet kunnen, anders ga je maar ergens anders heen..
Sinds november 2023 glasvezel via Solcon (voor het laatst).

Internet/PC: modem/router Fritzbox en TP-Link accesspoint, switch (8), switch (4)

PC: Intel Nuc i7 met W11. Laptop Thinkpad met W11.

Asus Gigabyte Home Assistant, 20 Shelly's en 2 ESP-tjes en Zigbee.

Geplaatst:

Waarom een 2de pie? 1 pie is 'sterk genoeg' om beide werkzaamheden te verichten. Makkelijk zelfs.

Omdat de inverter 8 meter van mijn meterkat (Raspberry) zit en dat zal

te lang zijn voor de converterkabel (RS323>usb).

 

Voorts zit naast de inverter ook mijn Remeha ketel die ik dan ook mooi

kan monitoren (laat dat nou globaal dezelfde kabel zijn)

Groet, Con. Gloeiende, gloeiende, een beetje humor moet kunnen, anders ga je maar ergens anders heen..
Sinds november 2023 glasvezel via Solcon (voor het laatst).

Internet/PC: modem/router Fritzbox en TP-Link accesspoint, switch (8), switch (4)

PC: Intel Nuc i7 met W11. Laptop Thinkpad met W11.

Asus Gigabyte Home Assistant, 20 Shelly's en 2 ESP-tjes en Zigbee.

Geplaatst:

Seriele kabels heb ik vele tientallen meters lang gehad... (En gewoon prima werken uiteraard)

Wat je kan doen is een CAT5/6/7 kabel leggen naar de lokatie met de andere meter en de ketel. Dan kan je minimaal 3, maar waarschijnlijk veel meer, seriele verbindingen maken tussen de twee lokaties.

Want.. Als de meter "TX only" is, dan heb je maar 2 aders nodig. Een daarvan is GND (pin 5 op de 9 polige connector). Als je nu meerdere seriele verbindingen gaat gebruiken dan zal je zien dat aan de raspberry kant alle GND aansluitingen bij elkaar komen.. Dus je kan de GND meerdere keren gebruiken, dus als je TX only devices gebruikt kan je er minimaal 7 op aansluiten, of zelfs 8 als de kabel afscherming heeft, welke kan dienen als GND ... :)

“Success is not final, failure is not fatal: it is the courage to continue that counts.” ~ Winston Churchill

Geplaatst: (aangepast)

Helder, maar zover ben ik nog lang niet.

 

Eerst RRDtools snappen, ik denk een hobbel van een maand.

Ik zoek eigenlijk naar een kant en klaar eenvoudig concept wat

ik kan editen (ik steel graag, lees: vind het wiel niet graag uit).

 

Daarna geen 2e PI erbij maar kabeltje leggen. Maar eerst maar

eens grafieken genereren. . . en dat allemaal op mijn leeftijd . . .

 

Maar ik ga ervoor.

 

Dank beiden voor de input. (scheelt me toch weer 80 euries)

aangepast door Con

Groet, Con. Gloeiende, gloeiende, een beetje humor moet kunnen, anders ga je maar ergens anders heen..
Sinds november 2023 glasvezel via Solcon (voor het laatst).

Internet/PC: modem/router Fritzbox en TP-Link accesspoint, switch (8), switch (4)

PC: Intel Nuc i7 met W11. Laptop Thinkpad met W11.

Asus Gigabyte Home Assistant, 20 Shelly's en 2 ESP-tjes en Zigbee.

Geplaatst: (aangepast)

RRDtools komt met een verzameling aan voorbeelden als ik mij goed herinner. De maker heeft een uitstekende website: http://oss.oetiker.ch/rrdtool/ met een uitgebreide documentatie sectie...

 

Trouwens, een mooi en veel goedkoper alternatief is een BeagleBone Black..Veel meer directe IO beschikbaar, en draait ook gewoon Linux....

aangepast door Big fellow

“Success is not final, failure is not fatal: it is the courage to continue that counts.” ~ Winston Churchill

Geplaatst: (aangepast)

RRDtools komt met een verzameling aan voorbeelden als ik mij goed herinner. De maker heeft een uitstekende website: http://oss.oetiker.ch/rrdtool/ met een uitgebreide documentatie sectie...

 

Trouwens, een mooi en veel goedkoper alternatief is een BeagleBone Black..Veel meer directe IO beschikbaar, en draait ook gewoon Linux....

Inderdaad het wordt allemaal zéér uitgebreid uitgelegd maar het moet wel tot mij doordringen.

Ben gisteren stapje voor stapje de tut gaan volgen bij dr Oetker . . . en warempel een grafiek,

wat zeg ik . . . . 3 grafieken en nu maar verder doorgronden, het is wel heftige stuf.

Om in chronlogische volgorde te blijven moet je ook nog iets weten van binair, octaal en

hexadecimaal, dan heb ik het nog niet over de Unix "jaartelling . . . . .(1-1-1970)".

Één voordeel, ik heb er allemaal oooooooit eens van gehoord. Het is nog net geen Japans.

 

Ik zal even schuin kijken naar Beaglebone maar hou me wel even vast aan RRD anders

moet ik weer het diepe in en ik krijg onderhand watervrees :D .

 

edit. Oops BeagleBone Black is een ander boardje, dat gaat het dan niet worden, ik denk nu

op de helft te zijn en veel ingangen heb ik nu niet nodig, desnoods nog een USB-hubje erbij.

aangepast door Con

Groet, Con. Gloeiende, gloeiende, een beetje humor moet kunnen, anders ga je maar ergens anders heen..
Sinds november 2023 glasvezel via Solcon (voor het laatst).

Internet/PC: modem/router Fritzbox en TP-Link accesspoint, switch (8), switch (4)

PC: Intel Nuc i7 met W11. Laptop Thinkpad met W11.

Asus Gigabyte Home Assistant, 20 Shelly's en 2 ESP-tjes en Zigbee.

Maak een account aan of log in om te reageren

Je moet een lid zijn om een reactie te kunnen achterlaten

Account aanmaken

Registreer voor een nieuwe account in onze community. Het is erg gemakkelijk!

Registreer een nieuwe account

Inloggen

Heb je reeds een account? Log hier in.

Nu inloggen
  • Wie is er online   0 leden

    • Er zijn geen geregistreerde gebruikers deze pagina aan het bekijken
×
×
  • Nieuwe aanmaken...