# -*- coding: utf-8 -*-

import time, RPi.GPIO as GPIO
#from threading import Timer
import sys
import os
from sqlite3 import dbapi2 as sqlite
import FreeSolRaspi_Helper

Version= "0.95"

Plattform=FreeSolRaspi_Helper.Plattform_Konfiguration()

def Interrupt1(channel):
    global Counter1
    input_value = GPIO.input(22)
    Counter1 = Counter1 + 1
    
    #print(str(Counter1))

# S0-Interrupt einrichten
# Kommando Pinout oder: https://raspberrypi.stackexchange.com/questions/12966/what-is-the-difference-between-board-and-bcm-for-gpio-pin-numbering
GPIO.setmode(GPIO.BCM) #Hier Nummernsystem GPIO15, nicht die Nummern der reihe nach am Stecker (das wäre BOARD)
GPIO.setup(22, GPIO.IN, pull_up_down = GPIO.PUD_DOWN)
    
GPIO.add_event_detect(22, GPIO.FALLING, callback=Interrupt1, bouncetime = 200)


# Datenbank öffnen
FreeSolRaspi_Helper.InitialisiereDB(Plattform.db_filename)

# Datenbank normal öffnen
con = sqlite.connect(Plattform.db_filename) #Erzeugt auch das DB-File, falls sie nicht existiert
cur = con.cursor()

Counter1 = 0

#print("start")
# Jede Minute den Counter abspeichern    
z_alt = ''
while True:
    time.sleep(0.1) # Dieser Befehl erzeugt 100 ms keine CPU Last
    z = time.strftime("%M")
    if z != z_alt:
        S0 = Counter1
        Counter1 = 0
        date = time.strftime("%Y-%m-%d %H:%M:%S")
        #print("Wert", date, S0)
        with con: 
            cur.execute("INSERT INTO SolarS0 (date, S0) VALUES (?,?)", (date, S0))
            con.commit()        
        z_alt = z


