#!/usr/bin/env /usr/bin/python3

"""
PVService.py
12.10.2022
"""

# PACKAGES
import logging
from logging.handlers import RotatingFileHandler
import time
import mysql.connector
from mysql.connector import errorcode
import datetime
from mylib2 import *
from os.path import *
import json
# import socket
# import base64
import random
import requests
from libShelly import *

# KONSTANTEN
PVEIN = 115

# KLASSEN UND FUNKTIONEN

# hhmm -> hh:mm
def tminhhmm (tmin):
    return ('{}:{}'.format(int(tmin)//60, int(tmin)%60))

# Einspeisung
class Einspeisung():

    def __init__(self, id):
        self.id = id

    def __str__(self):
        return(str(self.id))

    def werte(self):
        ret, res = shelly.http_get(self.id, "/rpc/Switch.GetStatus?id=0", logger=logger)
        logger.debug('ret: {}, res:{}'.format(ret, res))
        # logger.debug(res.get('aenergy').get('by_minute')[1])
        if ret:
            homedb.connect()
            homedb.log_value('PVOU', '{}'.format(res.get('aenergy').get('by_minute')[1]), '')
        return

# <<< START ---------------------------------------------------------------
# logging
logger = startlogging('pvsv', logging.DEBUG)

# Initialisieren
# Datenbank
prz = prozess('PV', 120)
logger.info('===== START ===== pid:{}'.format(prz.pid))
homedb = mydb()
mail = Mail('PVServer <pvserver@muehmel-net.de>', 'PVServerLog <log.pvserver@muehmel-net.de>')
mail.send('PVServer: START', 'PVServer: Prozess neu gestartet')

shelly = Shelly('192.168.168.')
pveinspeisung = Einspeisung(115)

while True:  # immer
    prz.start(False)
    pveinspeisung.werte()
    # wms = aktualisieren()
    prz.sleep(60)
# while
# ENDE
