Eenvoudige logging met Raspberry

Kijk hier voor datalog programma's en handleidingen.
Gebruikersavatar
janus
Site Admin
Site Admin
Berichten: 12369
Lid geworden op: 04 mar 2009, 22:39
Installatie Land: Ander
Locatie: Ten zuiden van antwerpen
Sponsor ons: Afbeelding
Contacteer:

Re: Eenvoudige logging met Raspberry

Bericht door janus » 24 mei 2016, 18:12

Ik doe dat met een ftp programma filezilla om precies te zijn.
link
Via putty kan het ook, via mail heb ik nog nooit van gehoord. (wat natuurlijk niet wil zeggen dat het niet kan)

Over een paar minuten staat de file hier online
www.zonstraal.be/ZonstraalPi.py

Lukt het niet dan moeten we maar even via een chat programma verder.
.
Mijn wens is: "Dat ook in de toekomst de zon voor iedereen gratis op mag komen."

Gelieve geen technische vragen via pb Klik voor Uitleg

Gebruikersavatar
mechanik
junior lid
Berichten: 13
Lid geworden op: 09 jul 2013, 20:31
Installatie Land: België

Re: Eenvoudige logging met Raspberry

Bericht door mechanik » 24 mei 2016, 19:23

met filezilla lukte het me niet om met de raspberry te verbinden ... dus bedacht ik een alternatief en via putty weet ik nog niet welke commando's ik daarvoor moet gebruiken ...
en ik vrees inderdaad dat we via chat zullen moeten verder gaan, kan dat eventueel morgen in de loop van de voormiddag?

Gebruikersavatar
mechanik
junior lid
Berichten: 13
Lid geworden op: 09 jul 2013, 20:31
Installatie Land: België

Re: Eenvoudige logging met Raspberry

Bericht door mechanik » 25 mei 2016, 21:06

we hebben het eindelijk aan de praat gekregen, eerst zaten we met het probleem dat er iets was met het script een indented error, dan wat problemen met de permissies in de root folder van de raspberry en dan nog een klein php probleempje ....
maar Janus, hartelijk bedankt voor de assistentie ... :-)
mensen die het even willen bewonderen http://81.164.44.143/gauge.php
tot mijn grote verbazing logt de raspberry direct de 2 GSC meters terwijl ik maar 1 +S0 pool gebruik er de 2 negatieve met elkaar verbonden zijn en aangesloten op de ground pin van de Gpio

Gebruikersavatar
janus
Site Admin
Site Admin
Berichten: 12369
Lid geworden op: 04 mar 2009, 22:39
Installatie Land: Ander
Locatie: Ten zuiden van antwerpen
Sponsor ons: Afbeelding
Contacteer:

Re: Eenvoudige logging met Raspberry

Bericht door janus » 26 mei 2016, 09:28

Omdat ik toch weer met het script bezig was en inmiddels ook iets meer ervaring hebt, ben ik verder gegaan om alles in een rrd database op te slaan.
Daarvan kunnen gemakkelijk grafiekjes gemaakt worden.
Dan gaat het er ongeveer zo uitzien:
Knipsel.PNG
Je hebt niet voldoende permissies om de bijlagen van dit bericht te bekijken.
.
Mijn wens is: "Dat ook in de toekomst de zon voor iedereen gratis op mag komen."

Gelieve geen technische vragen via pb Klik voor Uitleg

Gebruikersavatar
janus
Site Admin
Site Admin
Berichten: 12369
Lid geworden op: 04 mar 2009, 22:39
Installatie Land: Ander
Locatie: Ten zuiden van antwerpen
Sponsor ons: Afbeelding
Contacteer:

Re: Eenvoudige logging met Raspberry

Bericht door janus » 27 mei 2016, 21:29

Inmiddels draait het script ook voor de 2 kwh tellers van Mechanik.
.
Mijn wens is: "Dat ook in de toekomst de zon voor iedereen gratis op mag komen."

Gelieve geen technische vragen via pb Klik voor Uitleg

Gebruikersavatar
janus
Site Admin
Site Admin
Berichten: 12369
Lid geworden op: 04 mar 2009, 22:39
Installatie Land: Ander
Locatie: Ten zuiden van antwerpen
Sponsor ons: Afbeelding
Contacteer:

Re: Eenvoudige logging met Raspberry

Bericht door janus » 23 apr 2019, 18:44

Na drie jaar kan ik het nu zelf eens uittesten. :lol:

Ik heb het wegschrijven naar de tekst bestanden er maar uitgehaald, de grafiek is immers voldoende.

Vandaag zag het er zo uit.
opbrengst_dag.png
Zal later de scripts opnieuw uploaden.

Het aansluitschema is de volgende:

RPI_kwh_meter.jpg
Je hebt niet voldoende permissies om de bijlagen van dit bericht te bekijken.
.
Mijn wens is: "Dat ook in de toekomst de zon voor iedereen gratis op mag komen."

Gelieve geen technische vragen via pb Klik voor Uitleg

Gebruikersavatar
joker5689
Senior lid
Berichten: 169
Lid geworden op: 17 jun 2018, 16:34
Installatie Land: België
Locatie: Alveringem

Re: Eenvoudige logging met Raspberry

Bericht door joker5689 » 26 apr 2019, 12:59

Beste Janus,

Ik zou deze ook wel willen uittesten. ;-)
Welke scripts heb je hiervoor nodig?

Hartelijk dank
12 X LG315N1K-A5 (Neon 2 Black) - 12 X SolarEdge optimizer P370 - SolarEdge SE3000H omvormer
Plaatsing ZZO 155° - Helling 45° - Regio Alveringem

Gebruikersavatar
janus
Site Admin
Site Admin
Berichten: 12369
Lid geworden op: 04 mar 2009, 22:39
Installatie Land: Ander
Locatie: Ten zuiden van antwerpen
Sponsor ons: Afbeelding
Contacteer:

Re: Eenvoudige logging met Raspberry

Bericht door janus » 26 apr 2019, 21:26

Heb je al een Raspberry en een kWh meter met pulscontact?
.
Mijn wens is: "Dat ook in de toekomst de zon voor iedereen gratis op mag komen."

Gelieve geen technische vragen via pb Klik voor Uitleg

Gebruikersavatar
joker5689
Senior lid
Berichten: 169
Lid geworden op: 17 jun 2018, 16:34
Installatie Land: België
Locatie: Alveringem

Re: Eenvoudige logging met Raspberry

Bericht door joker5689 » 26 apr 2019, 21:40

Ja ik heb één raspberry in mijn bezit.
En volgende kWh meter: Finder 7E.13.8.230.0010
12 X LG315N1K-A5 (Neon 2 Black) - 12 X SolarEdge optimizer P370 - SolarEdge SE3000H omvormer
Plaatsing ZZO 155° - Helling 45° - Regio Alveringem

Gebruikersavatar
janus
Site Admin
Site Admin
Berichten: 12369
Lid geworden op: 04 mar 2009, 22:39
Installatie Land: Ander
Locatie: Ten zuiden van antwerpen
Sponsor ons: Afbeelding
Contacteer:

Re: Eenvoudige logging met Raspberry

Bericht door janus » 26 apr 2019, 21:59

Ik werk nu met het volgende script in de home/pi map "ZonstraalPi.py

Code: Selecteer alles

#!/usr/bin/env python2.7  
"""
Zeer simpele logging voor 2kwh meters met so contact door J.Bakker
Deze versie stop bij zonsondergang dmv de astral functie
Meer info zie zonstraalbe/forum
Zie ook http://raspi.tv/2013/how-to-use-interrupts-with-python-on-the-raspberry-pi-and-rpi-gpio
Thanks to Erwin for help :-)
"""
import RPi.GPIO as GPIO 
import time
import csv
from datetime import datetime,date
import sys
import os
import astral
import rrdtool

Benissa = astral.Location(info=("Benissa ", "Europe", 38.7036,
                                  -0.03410, "Europe/Madrid"))
Benissa.solar_depression = "civil"

sun = Benissa.sun(date.today(), local=True)
sunrise = sun['sunrise'].replace(tzinfo=None)
sunset = sun['sunset'].replace(tzinfo=None)

for k in ["dawn", "sunrise", "noon", "sunset", "dusk"]:
		print "%7s %s" % (k, sun[k])

	

now = datetime.now().replace(microsecond=0)

GPIO.setmode(GPIO.BCM) 
minute_puls = 0 

# GPIO 19+26 set up as input. It is pulled up to stop false signals  
GPIO.setup(19, GPIO.IN, pull_up_down=GPIO.PUD_UP)  
GPIO.setup(26, GPIO.IN, pull_up_down=GPIO.PUD_UP)
time_stamp = time.time()

# variable 
power1 = 0  # pulsen
power2 = 0  # pulsen
power = 0  # pulsen
watt1 = 0   # Watt  (pulsen * 30)
watt2 = 0   # Watt  (pulsen * 30)
watt = 0   # Watt  (pulsen * 30)
totaal1 = 0 # totaal aantal pulsen.
totaal2 = 0 # totaal aantal pulsen.
totaal = 0 # totaal aantal pulsen.




# the call back function 
def cb(channel):
    global power1
    power1 = power1 + 1   
    global totaal1
    totaal1 = totaal1 + 1
    

def cd(channel):
    global power2
    power2 = power2 + 1
    global totaal2
    totaal2 = totaal2 + 1

# schrijf log naar een txt file 
#w' for only writing (an existing file will be erased)
#'a' opens the file for appending; any data written to the file is automatically added to the end.  
def Write_log_txt():
    cf = open("/home/pi/zonstraal/log.txt","w") 
    cf.writelines("P=%04.1f" %watt + "\n"+ "Wh=%05.0f" %totaal) 
    cf.close()

# schrijf log naar een CSV file     
def Write_log_csv():
    cf = open("/home/pi/zonstraal/datalog.csv","a") 
    writer = csv.writer(cf,dialect='excel-tab') 
    writer.writerow((today.year,"/",format ("%.2d" %today.month),"/",format ("%.2d" %today.day),"-",
    format ("%.2d" %currentHour),":",format ("%.2d" %currentMinute),":", format ("%.2d" %currentSecond), " ",
    format ("W= %05.0f" %watt)," ", format("Wh= %05.0f" %totaal)))
    cf.close()  
    #print ("log geschreven")  # Uncomment for debugging.

# toont iedere minuut data in terminal 
def Toon_data():
    print ("Watt: %iW") % watt  # Uncomment for debugging.
    print ("Watthour: %iW") % totaal  # Uncomment for debugging.
    
# register the call back for pin interrupts
GPIO.add_event_detect(19, GPIO.FALLING, callback=cb, bouncetime=100)
GPIO.add_event_detect(26, GPIO.FALLING, callback=cb, bouncetime=100)
    
while True:
    
    today = date.today()
    currentTime = time.asctime()
    currentSecond = time.localtime().tm_sec
    currentMinute = time.localtime().tm_min
    currentHour = time.localtime().tm_hour


    

    if not currentMinute % 2 == 0:       # voorkomt meerdere log writings zolang de minuut loopt
        minute_puls = 0 
    if currentMinute % 2 == 0 and minute_puls == 0:
        totaal = totaal1 + totaal2
        power = power1 + power2 
        line = "%i, %.0f" % (time.time(),power)
        watt = power * 30   # this line calculates a power value in watts from the number of pulses, my meter is 1000 pulses per kWh.
        #Write_log_txt()     # comment for only csv.
        #Write_log_csv()     # comment for only txt.
        Toon_data()         # comment for not displaying data in terminal.      
        data = "N:%.0f:%.0f" % (watt, totaal) # insert data into round-robin-database
        rrdtool.update(
        "%s/opbrengst.rrd" % (os.path.dirname(os.path.abspath(__file__))),
        data)
        minute_puls = 1
        power = 0
        power1 = 0
        power2 = 0
    if  now > sunset : break
    else :  
        time.sleep(0.1) # tegen overbelasting van de cpu 
    
try: 
    trigger()
         
      
except KeyboardInterrupt:
  print "  Quit" 
  # Reset GPIO settings
  GPIO.cleanup()
Dan het js script om de data naar de rdd database te schrijven.
opbrengst.js

Code: Selecteer alles

#!/bin/bash
cd /home/pi/

rrdtool graph /var/www/html/opbrengst_dag.png   \
--title="opbrengst-dag"                 \
 --slope-mode                                \
 --watermark "`date`"                        \
 --x-grid MINUTE:30:HOUR:1:MINUTE:60:1:%H   \
 -X 0                                     \
 --right-axis-label 'Watt'      \
 --right-axis 0.20:0                        \
 --right-axis-format %2.0lf         \
 -s 'midnight'+6h -e 'now'                   \
 -v Wh                                     \
DEF:watt=opbrengst.rrd:watt:AVERAGE          \
CDEF:scaled_watt=watt,5,*                  \
DEF:totaal=opbrengst.rrd:totaal:AVERAGE   \
LINE1:scaled_watt#0000FF:"vermogen"               \
GPRINT:watt:LAST:"watt%6.0lf W"         \
GPRINT:watt:MAX:"               Maximum vandaag%6.0lf %sW" \
COMMENT:"\\n"                              \
CDEF:totaldag=totaal,1.0,*            \
VDEF:value_sum=totaldag,TOTAL                 \
LINE2:value_sum#00FF00:"opbrengst dag"      \
GPRINT:value_sum:"Totaal %6.0lf Wh"        

 
rrdtool graph /var/www/html/opbrengst_week.png   \
--title="opbrengst-week"                 \
 --slope-mode                                \
 --watermark "`date`"                        \
 -s 'midnight - 1 week' -e 'now'             \
 -X 0 \
 --right-axis-label 'Wh'      \
 --right-axis 1.0:0                        \
 --right-axis-format %2.0lf         \
 -v Wh                                        \
DEF:totaal=opbrengst.rrd:totaal:AVERAGE     \
CDEF:opbrengstpd=totaal,86400,*       \
CDEF:opbrengstpw=opbrengstpd,7,*                 \
CDEF:scaled_opbrengst=opbrengstpd,1.0,*                  \
AREA:scaled_opbrengst#00FF00:"opbrengst week"               \
CDEF:totalopbrengst=totaal,1.0,*                  \
VDEF:value_sum=totalopbrengst,TOTAL                 \
GPRINT:value_sum:"Totaal %6.0lf Wh"
Ik laat dat via een cronjob elke 15min draaien.

Verder moet de rdd database nog aangemaakt worden.
Dat script zal ik later plaatsen.
.
Mijn wens is: "Dat ook in de toekomst de zon voor iedereen gratis op mag komen."

Gelieve geen technische vragen via pb Klik voor Uitleg

Gebruikersavatar
joker5689
Senior lid
Berichten: 169
Lid geworden op: 17 jun 2018, 16:34
Installatie Land: België
Locatie: Alveringem

Re: Eenvoudige logging met Raspberry

Bericht door joker5689 » 26 apr 2019, 22:17

Alvast bedankt morgen ga ik hiermee aan de slag. µ£
12 X LG315N1K-A5 (Neon 2 Black) - 12 X SolarEdge optimizer P370 - SolarEdge SE3000H omvormer
Plaatsing ZZO 155° - Helling 45° - Regio Alveringem

Gebruikersavatar
janus
Site Admin
Site Admin
Berichten: 12369
Lid geworden op: 04 mar 2009, 22:39
Installatie Land: Ander
Locatie: Ten zuiden van antwerpen
Sponsor ons: Afbeelding
Contacteer:

Re: Eenvoudige logging met Raspberry

Bericht door janus » 26 apr 2019, 23:38

Voor de rdd database

Code: Selecteer alles

rrdtool create opbrengst.rrd --step 120 \
DS:watt:GAUGE:300: 0:u \
DS:totaal:DERIVE:600:0:u \
RRA:AVERAGE:0.5:1:315360 \
RRA:MIN:0.5:1:315360 \
RRA:MAX:0.5:1:315360 
Deze bewaard de data 3 jaar met een resolutie van 5 min.
.
Mijn wens is: "Dat ook in de toekomst de zon voor iedereen gratis op mag komen."

Gelieve geen technische vragen via pb Klik voor Uitleg

Gebruikersavatar
joker5689
Senior lid
Berichten: 169
Lid geworden op: 17 jun 2018, 16:34
Installatie Land: België
Locatie: Alveringem

Re: Eenvoudige logging met Raspberry

Bericht door joker5689 » 27 apr 2019, 18:57

Vandaag al wat resultaat geboekt.
De kWh meter succesvol aangesloten op de raspberry.
rbp.JPG
Ook de scripts werden op de raspberry geplaatst.
rbp files.JPG
Nu had ik graag ook die grafiek gezien. Zoals in jou voorbeeld hierboven.
Ik veronderstel dat er op de raspberry nog een webservertje moet lopen? Om die pagina met grafiek tevoorschijn te toveren.
In het bestand opbrengst.js zag ik dat volgende bestanden nodig zijn.
rrdtool graph /var/www/html/opbrengst_dag.png
rrdtool graph /var/www/html/opbrengst_week.png

Waar komen deze bestand vandaan?
Je hebt niet voldoende permissies om de bijlagen van dit bericht te bekijken.
12 X LG315N1K-A5 (Neon 2 Black) - 12 X SolarEdge optimizer P370 - SolarEdge SE3000H omvormer
Plaatsing ZZO 155° - Helling 45° - Regio Alveringem

Gebruikersavatar
janus
Site Admin
Site Admin
Berichten: 12369
Lid geworden op: 04 mar 2009, 22:39
Installatie Land: Ander
Locatie: Ten zuiden van antwerpen
Sponsor ons: Afbeelding
Contacteer:

Re: Eenvoudige logging met Raspberry

Bericht door janus » 27 apr 2019, 19:05

Die bestanden worden aangemaakt als het script draait.

Je kan ze direct in de map
/var/www/html/ bekijken of ze in een webpagina zetten.
bv index.php

Code: Selecteer alles

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="NL"  >
<head>
  <meta http-equiv="content-type" content="text/html; charset=utf-8" />
  <meta name="robots" content="index, follow" />
  <meta name="keywords" content="Temperatur Finca" />
  <meta name="author" content="Janus" />
  <meta name="description" content="Temperatuur  barometer vochtigheid" />
  
  <title>Test RPI</title>
 </head>

	<body>


		<p style="text-align: center;"><img src="/images/raspberry.jpg"  alt="Raspberry" /></p>
		
		<H1 style="text-align: center;"> Test Raspberry </H1>
		<p style="text-align: center;">Raspberry Pi B+ meldt:</p>
<H4 style="text-align: center;">

<?php
echo "Het is  " . date("l j F Y H:i:s"). "<br>";
?>

</H4>					
	
<p style="text-align: center;"><img src="/opbrengst_dag.png" border="0" alt="opbrengst dag" height="400" width="800"/></p>
<p style="text-align: center;"><img src="/opbrengst_week.png" border="0" alt="opbrengst week" height="400" width="800"/></p>



	</body>
	
</html>
.
Mijn wens is: "Dat ook in de toekomst de zon voor iedereen gratis op mag komen."

Gelieve geen technische vragen via pb Klik voor Uitleg

Gebruikersavatar
janus
Site Admin
Site Admin
Berichten: 12369
Lid geworden op: 04 mar 2009, 22:39
Installatie Land: Ander
Locatie: Ten zuiden van antwerpen
Sponsor ons: Afbeelding
Contacteer:

Re: Eenvoudige logging met Raspberry

Bericht door janus » 27 apr 2019, 21:49

.
Mijn wens is: "Dat ook in de toekomst de zon voor iedereen gratis op mag komen."

Gelieve geen technische vragen via pb Klik voor Uitleg

Plaats reactie