From 59cce028af2224fd3ab866e69101d0367a359a8a Mon Sep 17 00:00:00 2001 From: upgrade_script Date: Sat, 30 Dec 2023 14:30:22 +0100 Subject: [PATCH 01/15] Konfig Datei auf xml umgestellt MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit die bisherigen Konfigurationsdateien im .txt Format wurden auf eine einzige xml Datei umgestellt. Das Skript ist abwärtskompatibel und wandelt beim ersten Ausführen die bisherigen Konfigurationsdateien in die xml Datei um --- .crontabs/crontab-root-initial | 19 + .lib/CaravanPiFilesClass.py | 833 ++++++++++++++------------- .lib/_alt/CaravanPiFilesClass-old.py | 507 ++++++++++++++++ {temp => defaults}/testColor | 0 html/dimensions.php | 0 html/fill-levels.php | 0 html/gas-scale.php | 0 html/ledtest.php | 0 html/position.php | 0 html/writeGasScaleCalibration.py | 0 10 files changed, 964 insertions(+), 395 deletions(-) create mode 100644 .crontabs/crontab-root-initial create mode 100644 .lib/_alt/CaravanPiFilesClass-old.py rename {temp => defaults}/testColor (100%) mode change 100644 => 100755 html/dimensions.php mode change 100644 => 100755 html/fill-levels.php mode change 100644 => 100755 html/gas-scale.php mode change 100644 => 100755 html/ledtest.php mode change 100644 => 100755 html/position.php mode change 100644 => 100755 html/writeGasScaleCalibration.py diff --git a/.crontabs/crontab-root-initial b/.crontabs/crontab-root-initial new file mode 100644 index 0000000..5396f4e --- /dev/null +++ b/.crontabs/crontab-root-initial @@ -0,0 +1,19 @@ +# crontab root +# +# min hour dayofmonth month dayofweek(0=Sonntag) command +# +# beim Neustart Skript fuer Sensor starten +# @reboot python3 /home/pi/CaravanPi/pir/pir.py 120 1 > /home/pi/CaravanPi/.log/pir.log 2>&1 + +# Backup Image starten (Sonntags) +# 01 03 * * 0 /usr/local/bin/backup.sh > /home/pi/CaravanPi/.log/backup.log 2>&1 +# 05 20 * * * /usr/local/bin/backup.sh > /home/pi/CaravanPi/.log/backup.log 2>&1 +# +# Backup Dateien starten +# @reboot sleep 300 && /home/pi/CaravanPi/backup/backup-caravanpi.sh > /home/pi/CaravanPi/.log/backup-caravanpi.log 2>&1 +# 01 02 * * * /home/pi/CaravanPi/backup/backup-caravanpi.sh > /home/pi/CaravanPi/.log/backup-caravanpi.log 2>&1 +# +# Logrotate starten +@reboot sleep 300 && logrotate /etc/logrotate.conf +00 05 * * * logrotate /etc/logrotate.conf + diff --git a/.lib/CaravanPiFilesClass.py b/.lib/CaravanPiFilesClass.py index 1a12d8c..3a19ba5 100644 --- a/.lib/CaravanPiFilesClass.py +++ b/.lib/CaravanPiFilesClass.py @@ -3,12 +3,22 @@ # filesClass.py # # liest und schreibt Werte aus den und in die default files +# +# 2023-12 Umbau zur Nutzung eines xml Files anststt vieler Konfigurationsdateien +# dabei soll die "Abwaertskompatibilitaet" erhalten bleiben. +# dieser Kompatibilitaetscode (mit COMPATIBILITY CODE markiert) kann spaeter entfernt werden +# Coding wurde unterstuetzt von ChatGPT4 # -#Since this class is not initialized via __init__, the functions do not contain a fist parameter self +# Die Parameter test und screen in den Schreibfunktionen sind mit der Einfuehrung der xml Struktur +# obsolet geworden und sind lediglich aus Kompatibilitaetsgruednen noch da. # #------------------------------------------------------------------------------- -import sys +# import sys +import xml.etree.ElementTree as ET +import os +import shutil +import xml.dom.minidom class CaravanPiFiles: @@ -16,21 +26,91 @@ class CaravanPiFiles: # global variables # ----------------------------------------------- - # files - fileCaravanPiDefaults = "/home/pi/CaravanPi/defaults/caravanpiDefaults" - fileAdjustments = "/home/pi/CaravanPi/defaults/adjustmentPosition" - fileDimensions = "/home/pi/CaravanPi/defaults/dimensionsCaravan" - # the gas cylinder number is appended to the file name specified here - fileGasScale = "/home/pi/CaravanPi/defaults/gasScaleDefaults" - # the tank number is appended to the file name specified here - fileTanks = "/home/pi/CaravanPi/defaults/tankDefaults" - fileVoltage = "/home/pi/CaravanPi/defaults/voltageDefaults" - fileTestColor = "/home/pi/CaravanPi/temp/testColor" + xml_file_path = "/home/pi/CaravanPi/defaults/caravanpiConfig.xml" + + # ----------------------------------------------- + # COMPATIBILITY CODE - Anfang + # ----------------------------------------------- + # Mapping for caravanpiDefaults file + mappings = { + "caravanpiDefaults": [ + "countGasScales", + "countTanks", + "write2MariaDB", + "send2MQTT", + "MQTTserver", + "MQTTport", + "MQTTuser", + "MQTTpassword", + ], + "adjustmentPosition": [ + "adjustX", + "adjustY", + "adjustZ", + "toleranceX", + "toleranceY", + "approximationX", + "approximationY", + "distRight", + "distFront", + "distAxis" + ], + "dimensionsCaravan": [ + "lengthOverAll", + "widthOverAll", + "lengthBody" + ], + "gasScaleDefaults": [ + "emptyWeight", + "fullWeight", + "pin_dout", + "pin_sck", + "strChannel", + "refUnit" + ], + "tankDefaults": [ + "level1", + "level2", + "level3", + "level4" + ], + "voltageDefaults": [ + "level1", + "level2", + "level3" + ], + "testColor": [ + "color" + ] + } + # ----------------------------------------------- + # COMPATIBILITY CODE - Ende + # ----------------------------------------------- + + def __init__(self): + # COMPATIBILITY CODE - Pruefen, ob alte Dateien in das xml File migriert werden muessen + self.check_create_xml() + self.migrate_old_configs() + + def format_xml(element, level=0): + indent = "\n" + level*" " + if len(element): + if not element.text or not element.text.strip(): + element.text = indent + " " + if not element.tail or not element.tail.strip(): + element.tail = indent + for elem in element: + format_xml(elem, level+1) + if not elem.tail or not elem.tail.strip(): + elem.tail = indent + else: + if level and (not element.tail or not element.tail.strip()): + element.tail = indent # --------------------------------------------------------------------------------------------- # CaravanPiDefaults # - # content of file + # meaning of data fields # adjustment X X value, if caravan is in horizontal position # adjustment Y Y value, if caravan is in horizontal position # adjustment Z Z value, if caravan is in horizontal position @@ -43,56 +123,42 @@ class CaravanPiFiles: # distance axis Distance of the sensor from the axis in longitudinal direction # ---------------------------------------------------------------------------------------------- - def readCaravanPiDefaults(): - try: - file = open(CaravanPiFiles.fileCaravanPiDefaults) - - # Überschrift Anzahl Waagen - file.readline().strip() - strAnzahlWaagen = file.readline().strip() - # Überschrift Anzahl Tanks - file.readline().strip() - strAnzahlTanks = file.readline().strip() - - file.close() - - anzWaagen = int(strAnzahlWaagen) - anzTanks = int(strAnzahlTanks) - - return(anzWaagen, anzTanks) - except: - # Lesefehler - print ("readAdjustment: The file ", CaravanPiFiles.fileCaravanPiDefaults, " could not be read. unprocessed Error:", sys.exc_info()[0]) - return(0,0,0,0,0,0,0,0,0,0) - - def writeCaravanPiDefaults(test, screen, anzWaagen, anzTanks): - try: - strAnzahlWaagen = '{:.0f}'.format(anzWaagen) - strAnzahlTanks = '{:.0f}'.format(anzTanks) - - if test == 1: - file = open(CaravanPiFiles.fileCaravanPiDefaults+"_test", 'w') - else: - file = open(CaravanPiFiles.fileCaravanPiDefaults, 'w') + def readCaravanPiDefaults(self): + tree = ET.parse(self.xml_file_path) + root = tree.getroot() + defaults_element = root.find("caravanpiDefaults") + if defaults_element is not None: + return ( + defaults_element.find("countGasScales").text if defaults_element.find("countGasScales") is not None else None, + defaults_element.find("countTanks").text if defaults_element.find("countTanks") is not None else None, + defaults_element.find("write2MariaDB").text if defaults_element.find("write2MariaDB") is not None else None, + defaults_element.find("send2MQTT").text if defaults_element.find("send2MQTT") is not None else None, + defaults_element.find("MQTTserver").text if defaults_element.find("MQTTserver") is not None else None, + defaults_element.find("MQTTport").text if defaults_element.find("MQTTport") is not None else None, + defaults_element.find("MQTTuser").text if defaults_element.find("MQTTuser") is not None else None, + defaults_element.find("MQTTpassword").text if defaults_element.find("MQTTpassword") is not None else None + ) + else: + return None + + def writeCaravanPiDefaults(self, countGasScales, countTanks, write2MariaDB, send2MQTT, MQTTserver, MQTTport, MQTTUser, MQTTpassword): + tree = ET.parse(self.xml_file_path) + root = tree.getroot() + defaults_element = root.find("caravanpiDefaults") + if defaults_element is None: + defaults_element = ET.SubElement(root, "caravanpiDefaults") - file.write("Anzahl Waagen\n") - file.write(strAnzahlWaagen + "\n") - file.write("Anzahl Tanks\n") - file.write(strAnzahlTanks + "\n") - - file.close() - - if screen == 1: - print("Anzahl Waagen: ",strAnzahlWaagen) - print("Anzahl Tanks: ",strAnzahlTanks) - - return 0 - except: - print("writeAdjustments: The file ", CaravanPiFiles.fileCaravanPiDefaults, " could not be written - unprocessed Error:", sys.exc_info()[0]) - raise - return -1 - + for key, value in [("countGasScales", countGasScales), ("countTanks", countTanks), ("write2MariaDB", write2MariaDB), ("send2MQTT", send2MQTT), ("MQTTserver", MQTTserver), ("MQTTport", MQTTport), ("MQTTUser", MQTTUser), ("MQTTpassword", MQTTpassword)]: + element = defaults_element.find(key) + if element is None: + element = ET.SubElement(defaults_element, key) + element.text = str(value) + + # Formatieren des XML-Baums vor dem Speichern + format_xml(root) + # Schreiben der formatierten XML-Daten in die Datei + tree.write(self.xml_file_path) # --------------------------------------------------------------------------------------------- # adjustmentPosition @@ -110,89 +176,44 @@ def writeCaravanPiDefaults(test, screen, anzWaagen, anzTanks): # distance axis Distance of the sensor from the axis in longitudinal direction # ---------------------------------------------------------------------------------------------- - def readAdjustment(): - try: - file = open(CaravanPiFiles.fileAdjustments) - - strAdjustX = file.readline().strip() - strAdjustY = file.readline().strip() - strAdjustZ = file.readline().strip() - strtoleranceX = file.readline().strip() - strtoleranceY = file.readline().strip() - strApproximationX = file.readline().strip() - strApproximationY = file.readline().strip() - strDistRight = file.readline().strip() - strDistFront = file.readline().strip() - strDistAxis = file.readline().strip() - - file.close() - - adjustX = float(strAdjustX) - adjustY = float(strAdjustY) - adjustZ = float(strAdjustZ) - toleranceX = float(strtoleranceX) - toleranceY = float(strtoleranceY) - approximationX = float(strApproximationX) - approximationY = float(strApproximationY) - distRight = float(strDistRight) - distFront = float(strDistFront) - distAxis = float(strDistAxis) - - return(adjustX, adjustY, adjustZ, toleranceX, toleranceY, approximationX, approximationY, distRight, distFront, distAxis) - except: - # Lesefehler - print ("readAdjustment: The file ", CaravanPiFiles.fileAdjustments, " could not be read. unprocessed Error:", sys.exc_info()[0]) - return(0,0,0,0,0,0,0,0,0,0) - - def writeAdjustment(test, screen, adjustX, adjustY, adjustZ, toleranceX, toleranceY, approximationX, approximationY, distRight, distFront, distAxis): - try: - strAdjustX = '{:.6f}'.format(adjustX) - strAdjustY = '{:.6f}'.format(adjustY) - strAdjustZ = '{:.6f}'.format(adjustZ) - strtoleranceX = '{:.6f}'.format(toleranceX) - strtoleranceY = '{:.6f}'.format(toleranceY) - strApproximationX = '{:.6f}'.format(approximationX) - strApproximationY = '{:.6f}'.format(approximationY) - strDistRight = '{:.0f}'.format(distRight) - strDistFront = '{:.0f}'.format(distFront) - strDistAxis = '{:.0f}'.format(distAxis) - - if test == 1: - file = open(CaravanPiFiles.fileAdjustments+"_test", 'w') - else: - file = open(CaravanPiFiles.fileAdjustments, 'w') + def readAdjustment(self): + tree = ET.parse(self.xml_file_path) + root = tree.getroot() + adjustment_element = root.find("adjustmentPosition") + if adjustment_element is not None: + return ( + adjustment_element.find("adjustX").text if adjustment_element.find("adjustX") is not None else None, + adjustment_element.find("adjustY").text if adjustment_element.find("adjustY") is not None else None, + adjustment_element.find("adjustZ").text if adjustment_element.find("adjustZ") is not None else None, + adjustment_element.find("toleranceX").text if adjustment_element.find("toleranceX") is not None else None, + adjustment_element.find("toleranceY").text if adjustment_element.find("toleranceY") is not None else None, + adjustment_element.find("approximationX").text if adjustment_element.find("approximationX") is not None else None, + adjustment_element.find("approximationY").text if adjustment_element.find("approximationY") is not None else None, + adjustment_element.find("distRight").text if adjustment_element.find("distRight") is not None else None, + adjustment_element.find("distFront").text if adjustment_element.find("distFront") is not None else None, + adjustment_element.find("distAxis").text if adjustment_element.find("distAxis") is not None else None + ) + else: + return None + + def writeAdjustment(self, adjustX, adjustY, adjustZ, toleranceX, toleranceY, approximationX, approximationY, distRight, distFront, distAxis): + tree = ET.parse(self.xml_file_path) + root = tree.getroot() + adjustment_element = root.find("adjustmentPosition") + if adjustment_element is None: + adjustment_element = ET.SubElement(root, "adjustmentPosition") - file.write(strAdjustX + "\n") - file.write(strAdjustY + "\n") - file.write(strAdjustZ + "\n") - file.write(strtoleranceX + "\n") - file.write(strtoleranceY + "\n") - file.write(strApproximationX + "\n") - file.write(strApproximationY + "\n") - file.write(strDistRight + "\n") - file.write(strDistFront + "\n") - file.write(strDistAxis) - - file.close() - - if screen == 1: - print("adjustX: ",strAdjustX) - print("AdjustY: ",strAdjustY) - print("AdjustZ: ",strAdjustZ) - print("toleranceX: ",strtoleranceX) - print("toleranceY: ",strtoleranceY) - print("ApproximationX: ",strApproximationX) - print("ApproximationY: ",strApproximationY) - print("DistRight: ",strDistRight) - print("DistFront: ",strDistFront) - print("DistAxis: ",strDistAxis) - - - return 0 - except: - print("writeAdjustments: The file ", CaravanPiFiles.fileAdjustments, " could not be written - unprocessed Error:", sys.exc_info()[0]) - raise - return -1 + for key, value in [("adjustX", adjustX), ("adjustY", adjustY), ("adjustZ", adjustZ), ("toleranceX", toleranceX), ("toleranceY", toleranceY), ("approximationX", approximationX), ("approximationY", approximationY), ("distRight", distRight), ("distFront", distFront), ("distAxis", distAxis)]: + element = adjustment_element.find(key) + if element is None: + element = ET.SubElement(adjustment_element, key) + element.text = str(value) + + # Formatieren des XML-Baums vor dem Speichern + format_xml(root) + + # Schreiben der formatierten XML-Daten in die Datei + tree.write(self.xml_file_path) # --------------------------------------------------------------------------------------------- # dimensions @@ -203,53 +224,37 @@ def writeAdjustment(test, screen, adjustX, adjustY, adjustZ, toleranceX, toleran # length body legth of the body of the caravan without drawbar # ---------------------------------------------------------------------------------------------- - def readDimensions(): - try: - file = open(CaravanPiFiles.fileDimensions) - - strLengthOverAll = file.readline().strip() - strWidth = file.readline().strip() - strLengthBody = file.readline().strip() - - file.close() - - lengthOverAll = float(strLengthOverAll) - lengthBody = float(strLengthBody) - width = float(strWidth) - - return(lengthOverAll, width, lengthBody) - except: - # Lesefehler - print ("readDimensions: The file ", CaravanPiFiles.fileDimensions, " could not be read. unprocessed Error:", sys.exc_info()[0]) - return(0,0,0) - - def writeDimensions(test, screen, lengthOverAll, width, lengthBody): - try: - strLengthOverAll = '{:.0f}'.format(lengthOverAll) - strWidth = '{:.0f}'.format(width) - strLengthBody = '{:.0f}'.format(lengthBody) - - if test == 1: - file = open(CaravanPiFiles.fileDimensions+"_test", 'w') - else: - file = open(CaravanPiFiles.fileDimensions, 'w') - - file.write(strLengthOverAll + "\n") - file.write(strWidth + "\n") - file.write(strLengthBody) - - file.close() - - if screen == 1: - print("lengthOverAll: ",strLengthOverAll) - print("width: ",strWidth) - print("lengthBody: ",strLengthBody) - - return 0 - except: - print("writeDimensions: The file ", CaravanPiFiles.fileDimensions, " could not be written - unprocessed Error:", sys.exc_info()[0]) - raise - return -1 + def readDimensions(self): + tree = ET.parse(self.xml_file_path) + root = tree.getroot() + dimensions_element = root.find("dimensionsCaravan") + if dimensions_element is not None: + return ( + dimensions_element.find("lengthOverAll").text if dimensions_element.find("lengthOverAll") is not None else None, + dimensions_element.find("width").text if dimensions_element.find("width") is not None else None, + dimensions_element.find("lengthBody").text if dimensions_element.find("lengthBody") is not None else None + ) + else: + return None + + def writeDimensions(self, lengthOverAll, width, lengthBody): + tree = ET.parse(self.xml_file_path) + root = tree.getroot() + dimensions_element = root.find("dimensionsCaravan") + if dimensions_element is None: + dimensions_element = ET.SubElement(root, "dimensionsCaravan") + + for key, value in [("lengthOverAll", lengthOverAll), ("width", width), ("lengthBody", lengthBody)]: + element = dimensions_element.find(key) + if element is None: + element = ET.SubElement(dimensions_element, key) + element.text = str(value) + + # Formatieren des XML-Baums vor dem Speichern + format_xml(root) + + # Schreiben der formatierten XML-Daten in die Datei + tree.write(self.xml_file_path) # --------------------------------------------------------------------------------------------- @@ -262,77 +267,44 @@ def writeDimensions(test, screen, lengthOverAll, width, lengthBody): # pin_sck GPIO Pin HX711 SCK # channel Channel at HX711, only A or B # refUnit reference unit as divisor for HX711 values + # # ---------------------------------------------------------------------------------------------- - def readGasScale(gasCylinderNumber): - try: - filename = CaravanPiFiles.fileGasScale + '{:.0f}'.format(gasCylinderNumber) - file = open(filename) - - strEmptyWeight = file.readline().strip() - strFullWeight = file.readline().strip() - strPinDout = file.readline().strip() - strPinSck = file.readline().strip() - strChannel = file.readline().strip() - strRefUnit = file.readline().strip() - - file.close() - - emptyWeight = float(strEmptyWeight) - fullWeight = float(strFullWeight) - pin_dout = int(strPinDout) - pin_sck = int(strPinSck) - refUnit = float(strRefUnit) - - # print ("Leergewicht Flasche >>", strEmptyWeight, "<< >>", emptyWeight, "<<") - # print ("max Gasgewicht >>", strFullWeight, "<< >>", fullWeight, "<<") - # print ("Pin DOUT >>", strPinDout, "<< >>", pin_dout, "<<") - # print ("Pin SCK >>", strPinSck, "<< >>", pin_sck, "<<") - # print ("Channel >>", strChannel, "<<") - # print ("Ref Unit >>", strRefUnit, "<< >>", refUnit, "<<") - - return(emptyWeight, fullWeight, pin_dout, pin_sck, strChannel, refUnit) - except: - # Lesefehler - print ("readGasScale: The file ", filename, " could not be read. unprocessed Error:", sys.exc_info()[0]) - return(0,0,0,0,"",0) - - def writeGasScale(gasCylinderNumber, test, screen, emptyWeight, fullWeight, pin_dout, pin_sck, strChannel, refUnit ): - try: - strEmptyWeight = '{:.0f}'.format(emptyWeight) - strFullWeight = '{:.0f}'.format(fullWeight) - strPinDout = '{:.0f}'.format(pin_dout) - strPinSck = '{:.0f}'.format(pin_sck) - strRefUnit = '{:.9f}'.format(refUnit) - - filename = CaravanPiFiles.fileGasScale + '{:.0f}'.format(gasCylinderNumber) - if test == 1: - file = open(filename+"_test", 'w') - else: - file = open(filename, 'w') - - file.write(strEmptyWeight + "\n") - file.write(strFullWeight + "\n") - file.write(strPinDout + "\n") - file.write(strPinSck + "\n") - file.write(strChannel + "\n") - file.write(strRefUnit) - - file.close() - - if screen == 1: - print("emptyWeight: ",strEmptyWeight) - print("fullWeight: ",strFullWeight) - print("Pin dout: ",strPinDout) - print("Pin sck: ",strPinSck) - print("Channel: ",strChannel) - print("Reference Unit: ",strRefUnit) - - return 0 - except: - print("writeGasScale: The file ", filename, " could not be written - unprocessed Error:", sys.exc_info()[0]) - raise - return -1 + def readGasScale(self, gasCylinderNumber): + tree = ET.parse(self.xml_file_path) + root = tree.getroot() + gas_scale_element = root.find(f"gasScaleDefaults{gasCylinderNumber}") + if gas_scale_element is not None: + return ( + gas_scale_element.find("emptyWeight").text if gas_scale_element.find("emptyWeight") is not None else None, + gas_scale_element.find("fullWeight").text if gas_scale_element.find("fullWeight") is not None else None, + gas_scale_element.find("pin_dout").text if gas_scale_element.find("pin_dout") is not None else None, + gas_scale_element.find("pin_sck").text if gas_scale_element.find("pin_sck") is not None else None, + gas_scale_element.find("strChannel").text if gas_scale_element.find("strChannel") is not None else None, + gas_scale_element.find("refUnit").text if gas_scale_element.find("refUnit") is not None else None + ) + else: + return None + + def writeGasScale(self, gasCylinderNumber, test, screen, emptyWeight, fullWeight, pin_dout, pin_sck, strChannel, refUnit): + tree = ET.parse(self.xml_file_path) + root = tree.getroot() + gas_scale_element = root.find(f"gasScaleDefaults{gasCylinderNumber}") + if gas_scale_element is None: + gas_scale_element = ET.SubElement(root, f"gasScaleDefaults{gasCylinderNumber}") + + # Create or update each configuration item + for key, value in [("emptyWeight", emptyWeight), ("fullWeight", fullWeight), ("pin_dout", pin_dout), ("pin_sck", pin_sck), ("strChannel", strChannel), ("refUnit", refUnit)]: + element = gas_scale_element.find(key) + if element is None: + element = ET.SubElement(gas_scale_element, key) + element.text = str(value) + + # Formatieren des XML-Baums vor dem Speichern + format_xml(root) + + # Schreiben der formatierten XML-Daten in die Datei + tree.write(self.xml_file_path) # --------------------------------------------------------------------------------------------- @@ -347,61 +319,39 @@ def writeGasScale(gasCylinderNumber, test, screen, emptyWeight, fullWeight, pin_ # liter level 4 amount of water in the tank at level 4 # ---------------------------------------------------------------------------------------------- - def readFillLevels(tankNumber): - try: - filename = CaravanPiFiles.fileTanks + '{:.0f}'.format(tankNumber) - file = open(filename) - - strLevel1 = file.readline().strip() - strLevel2 = file.readline().strip() - strLevel3 = file.readline().strip() - strLevel4 = file.readline().strip() - - file.close() - - level1 = float(strLevel1) - level2 = float(strLevel2) - level3 = float(strLevel3) - level4 = float(strLevel4) - - return(level1, level2, level3, level4) - except: - # Lesefehler - print ("readFillLevels: The file ", filename, " could not be read. unprocessed Error:", sys.exc_info()[0]) - return(0,0,0) - - def writeFillLevels(tankNumber, test, screen, level1, level2, level3, level4): - try: - strLevel1 = '{:.0f}'.format(level1) - strLevel2 = '{:.0f}'.format(level2) - strLevel3 = '{:.0f}'.format(level3) - strLevel4 = '{:.0f}'.format(level4) - - filename = CaravanPiFiles.fileTanks + '{:.0f}'.format(tankNumber) - if test == 1: - file = open(filename+"_test", 'w') - else: - file = open(filename, 'w') - - file.write(strLevel1 + "\n") - file.write(strLevel2 + "\n") - file.write(strLevel3 + "\n") - file.write(strLevel4) - - file.close() - - if screen == 1: - print("Fill Level 1 liter: ",strLevel1) - print("Fill Level 2 liter: ",strLevel2) - print("Fill Level 3 liter: ",strLevel3) - print("Fill Level 4 liter: ",strLevel4) - - return 0 - except: - print("writeFillLevels: The file ", filename, " could not be written - unprocessed Error:", sys.exc_info()[0]) - raise - return -1 + def readFillLevels(self, tankNumber): + tree = ET.parse(self.xml_file_path) + root = tree.getroot() + tank_element = root.find(f"tankDefaults{tankNumber}") + if tank_element is not None: + return ( + tank_element.find("level1").text if tank_element.find("level1") is not None else None, + tank_element.find("level2").text if tank_element.find("level2") is not None else None, + tank_element.find("level3").text if tank_element.find("level3") is not None else None, + tank_element.find("level4").text if tank_element.find("level4") is not None else None + ) + else: + return None + + def writeFillLevels(self, tankNumber, test, screen, level1, level2, level3, level4): + tree = ET.parse(self.xml_file_path) + root = tree.getroot() + tank_element = root.find(f"tankDefaults{tankNumber}") + if tank_element is None: + tank_element = ET.SubElement(root, f"tankDefaults{tankNumber}") + + # Create or update each configuration item + for key, value in [("level1", level1), ("level2", level2), ("level3", level3), ("level4", level4)]: + element = tank_element.find(key) + if element is None: + element = ET.SubElement(tank_element, key) + element.text = str(value) + + # Formatieren des XML-Baums vor dem Speichern + format_xml(root) + # Schreiben der formatierten XML-Daten in die Datei + tree.write(self.xml_file_path) # --------------------------------------------------------------------------------------------- # wide Voltage Level @@ -414,55 +364,37 @@ def writeFillLevels(tankNumber, test, screen, level1, level2, level3, level4): # voltage level 3 Battery 100% # ---------------------------------------------------------------------------------------------- - def readVoltageLevels(): - try: - filename = CaravanPiFiles.fileVoltage - file = open(filename) - - strLevel1 = file.readline().strip() - strLevel2 = file.readline().strip() - strLevel3 = file.readline().strip() - - file.close() - - level1 = float(strLevel1) - level2 = float(strLevel2) - level3 = float(strLevel3) - - return(level1, level2, level3) - except: - # Lesefehler - print ("readVoltageLevels: The file ", filename, " could not be read. unprocessed Error:", sys.exc_info()[0]) - return(0,0,0) - - def writeVoltageLevels(test, screen, level1, level2, level3): - try: - strLevel1 = '{:.0f}'.format(level1) - strLevel2 = '{:.0f}'.format(level2) - strLevel3 = '{:.0f}'.format(level3) - - filename = CaravanPiFiles.fileVoltage - if test == 1: - file = open(filename+"_test", 'w') - else: - file = open(filename, 'w') - - file.write(strLevel1 + "\n") - file.write(strLevel2 + "\n") - file.write(strLevel3) - - file.close() - - if screen == 1: - print("Voltage Level 1 25% : ",strLevel1) - print("Voltage Level 2 50% : ",strLevel2) - print("Voltage Level 3 100% : ",strLevel3) - - return 0 - except: - print("writeVoltageevels: The file ", filename, " could not be written - unprocessed Error:", sys.exc_info()[0]) - raise - return -1 + def readVoltageLevels(self): + tree = ET.parse(self.xml_file_path) + root = tree.getroot() + voltage_element = root.find("voltageDefaults") + if voltage_element is not None: + return ( + voltage_element.find("level1").text if voltage_element.find("level1") is not None else None, + voltage_element.find("level2").text if voltage_element.find("level2") is not None else None, + voltage_element.find("level3").text if voltage_element.find("level3") is not None else None + ) + else: + return None + + def writeVoltageLevels(self, level1, level2, level3): + tree = ET.parse(self.xml_file_path) + root = tree.getroot() + voltage_element = root.find("voltageDefaults") + if voltage_element is None: + voltage_element = ET.SubElement(root, "voltageDefaults") + + for key, value in [("level1", level1), ("level2", level2), ("level3", level3)]: + element = voltage_element.find(key) + if element is None: + element = ET.SubElement(voltage_element, key) + element.text = str(value) + + # Formatieren des XML-Baums vor dem Speichern + format_xml(root) + + # Schreiben der formatierten XML-Daten in die Datei + tree.write(self.xml_file_path) # --------------------------------------------------------------------------------------------- @@ -472,36 +404,147 @@ def writeVoltageLevels(test, screen, level1, level2, level3): # color Color to show for testing LEDs # ---------------------------------------------------------------------------------------------- - def readTestColor(): - try: - file = open(CaravanPiFiles.fileTestColor) - strColor = file.readline().strip() - file.close() - - return(strColor) - except: - # Lesefehler - print ("readTestColor: The file ", CaravanPiFiles.fileTestColor, " could not be read. unprocessed Error:", sys.exc_info()[0]) - return("") - - def writeTestColor(test, screen, color): - try: - if color == "-2" or color == "-1" or color == "0" or color == "1" or color == "2": - if test == 1: - file = open(CaravanPiFiles.fileTestColor+"_test", 'w') - else: - file = open(CaravanPiFiles.fileTestColor, 'w') - - file.write(color) - file.close() - - if screen == 1: - print("color: ",color) - - return 0 - else: - return -2 - except: - print("writeTestColor: The file ", CaravanPiFiles.fileTestColor, " could not be written - unprocessed Error:", sys.exc_info()[0]) - raise - return -1 + def readTestColor(self): + tree = ET.parse(self.xml_file_path) + root = tree.getroot() + test_color_element = root.find("testColor") + if test_color_element is not None: + return test_color_element.find("color").text if test_color_element.find("color") is not None else None + else: + return None + + def writeTestColor(self, color): + tree = ET.parse(self.xml_file_path) + root = tree.getroot() + test_color_element = root.find("testColor") + if test_color_element is None: + test_color_element = ET.SubElement(root, "testColor") + + color_element = test_color_element.find("color") + if color_element is None: + color_element = ET.SubElement(test_color_element, "color") + color_element.text = str(color) + + # Formatieren des XML-Baums vor dem Speichern + format_xml(root) + + # Schreiben der formatierten XML-Daten in die Datei + tree.write(self.xml_file_path) + + + # ----------------------------------------------- + # COMPATIBILITY CODE - Anfang bis Dateiende + # ----------------------------------------------- + + # --------------------------------------------------------------------------------------------- + # check_create_xml + # Prüfen, ob es schon ein xml File gibt. Falls nein, dieses anlegen. + # ---------------------------------------------------------------------------------------------- + def check_create_xml(self): + # Create XML file if it doesn't exist + if not os.path.exists(self.xml_file_path): + root = ET.Element("CaravanPiConfigurations") + tree = ET.ElementTree(root) + tree.write(self.xml_file_path) + + # --------------------------------------------------------------------------------------------- + # migrate_old_configs + # Ueberfuehren der alten Konfigurationsdateien in das neue xml File. + # ---------------------------------------------------------------------------------------------- + def migrate_old_configs(self): + # List of old configuration files + old_files = [ + "/home/pi/CaravanPi/defaults/caravanpiDefaults", + "/home/pi/CaravanPi/defaults/adjustmentPosition", + "/home/pi/CaravanPi/defaults/dimensionsCaravan", + "/home/pi/CaravanPi/defaults/gasScaleDefaults1", + "/home/pi/CaravanPi/defaults/gasScaleDefaults2", + "/home/pi/CaravanPi/defaults/gasScaleDefaults3", + "/home/pi/CaravanPi/defaults/gasScaleDefaults4", + "/home/pi/CaravanPi/defaults/tankDefaults1", + "/home/pi/CaravanPi/defaults/tankDefaults2", + "/home/pi/CaravanPi/defaults/tankDefaults3", + "/home/pi/CaravanPi/defaults/tankDefaults4", + "/home/pi/CaravanPi/defaults/voltageDefaults", + "/home/pi/CaravanPi/defaults/testColor", + ] + for file in old_files: + if os.path.exists(file): + self.migrate_file(file) + + # --------------------------------------------------------------------------------------------- + # migrate_file + # Ueberfuehren einer alten Konfigurationsdatei + # ---------------------------------------------------------------------------------------------- + + def migrate_file(self, file_path): + # Check if the file exists, if not, exit the function + if not os.path.exists(file_path): + print(f"File not found: {file_path}") + return + + # Extract the base name and number (if any) from the file name + file_name = os.path.basename(file_path) + # Assuming the number is at the end of the file name and is one digit + if file_name[-1].isdigit(): + base_name = file_name[:-1] + number = file_name[-1] + else: + base_name = file_name + number = "" + + # Create "_alt" directory if it does not exist + alt_dir = os.path.join(os.path.dirname(file_path), "_alt") + if not os.path.exists(alt_dir): + os.makedirs(alt_dir) + + # Spezialfall fuer caravanpiDefaults, da diese Ueberschriften enthaelt + if base_name == "caravanpiDefaults": + self.migrate_caravanpi_defaults(file_path) + return + + # Choose the mapping based on the base name + mapping = self.mappings.get(base_name, []) + + tree = ET.parse(self.xml_file_path) + root = tree.getroot() + # Adjust the XML element name to include the number for gasScaleDefaults and tankDefaults + config_element_name = f"{base_name}{number}" if number else base_name + config_element = ET.SubElement(root, config_element_name) + + with open(file_path, 'r') as file: + for index, line in enumerate(file): + value = line.strip() + key = mapping[index] if index < len(mapping) else f"unknown{index}" + ET.SubElement(config_element, key).text = value + + tree.write(self.xml_file_path) + + # Move the original file to the "_alt" directory + shutil.move(file_path, os.path.join("/home/pi/CaravanPi/defaults/_alt", os.path.basename(file_path))) + + + def migrate_caravanpi_defaults(self, file_path): + tree = ET.parse(self.xml_file_path) + root = tree.getroot() + defaults_element = ET.SubElement(root, "caravanpiDefaults") + + with open(file_path, 'r') as file: + for line in file: + line = line.strip() + if "Anzahl Waagen" in line: + key = "countGasScales" + continue # Skip to the next iteration to read the value + elif "Anzahl Tanks" in line: + key = "countTanks" + continue # Skip to the next iteration to read the value + elif line: # Check if line is not empty + ET.SubElement(defaults_element, key).text = line + + # Setting additional fields to empty + for additional_key in ["write2MariaDB", "send2MQTT", "MQTTserver", "MQTTport", "MQTTuser", "MQTTpassword"]: + ET.SubElement(defaults_element, additional_key).text = "" + + tree.write(self.xml_file_path) + shutil.move(file_path, os.path.join(os.path.dirname(file_path), "/home/pi/CaravanPi/defaults/_alt", os.path.basename(file_path))) + diff --git a/.lib/_alt/CaravanPiFilesClass-old.py b/.lib/_alt/CaravanPiFilesClass-old.py new file mode 100644 index 0000000..1a12d8c --- /dev/null +++ b/.lib/_alt/CaravanPiFilesClass-old.py @@ -0,0 +1,507 @@ +#!/usr/bin/python3 +# coding=utf-8 +# filesClass.py +# +# liest und schreibt Werte aus den und in die default files +# +#Since this class is not initialized via __init__, the functions do not contain a fist parameter self +# +#------------------------------------------------------------------------------- + +import sys + +class CaravanPiFiles: + + # ----------------------------------------------- + # global variables + # ----------------------------------------------- + + # files + fileCaravanPiDefaults = "/home/pi/CaravanPi/defaults/caravanpiDefaults" + fileAdjustments = "/home/pi/CaravanPi/defaults/adjustmentPosition" + fileDimensions = "/home/pi/CaravanPi/defaults/dimensionsCaravan" + # the gas cylinder number is appended to the file name specified here + fileGasScale = "/home/pi/CaravanPi/defaults/gasScaleDefaults" + # the tank number is appended to the file name specified here + fileTanks = "/home/pi/CaravanPi/defaults/tankDefaults" + fileVoltage = "/home/pi/CaravanPi/defaults/voltageDefaults" + fileTestColor = "/home/pi/CaravanPi/temp/testColor" + + # --------------------------------------------------------------------------------------------- + # CaravanPiDefaults + # + # content of file + # adjustment X X value, if caravan is in horizontal position + # adjustment Y Y value, if caravan is in horizontal position + # adjustment Z Z value, if caravan is in horizontal position + # tolerance X deviation in X direction, which is still considered horizontal + # tolerance Y deviation in Y direction, which is still considered horizontal + # approximation X at which deviation from the horizontal the LEDs should flash + # approximation Y at which deviation from the horizontal the LEDs should flash + # distance right distance of the sensor from the right side + # distance front distance of the sensor from the front side + # distance axis Distance of the sensor from the axis in longitudinal direction + # ---------------------------------------------------------------------------------------------- + + def readCaravanPiDefaults(): + try: + file = open(CaravanPiFiles.fileCaravanPiDefaults) + + # Überschrift Anzahl Waagen + file.readline().strip() + strAnzahlWaagen = file.readline().strip() + # Überschrift Anzahl Tanks + file.readline().strip() + strAnzahlTanks = file.readline().strip() + + file.close() + + anzWaagen = int(strAnzahlWaagen) + anzTanks = int(strAnzahlTanks) + + return(anzWaagen, anzTanks) + except: + # Lesefehler + print ("readAdjustment: The file ", CaravanPiFiles.fileCaravanPiDefaults, " could not be read. unprocessed Error:", sys.exc_info()[0]) + return(0,0,0,0,0,0,0,0,0,0) + + def writeCaravanPiDefaults(test, screen, anzWaagen, anzTanks): + try: + strAnzahlWaagen = '{:.0f}'.format(anzWaagen) + strAnzahlTanks = '{:.0f}'.format(anzTanks) + + if test == 1: + file = open(CaravanPiFiles.fileCaravanPiDefaults+"_test", 'w') + else: + file = open(CaravanPiFiles.fileCaravanPiDefaults, 'w') + + file.write("Anzahl Waagen\n") + file.write(strAnzahlWaagen + "\n") + file.write("Anzahl Tanks\n") + file.write(strAnzahlTanks + "\n") + + file.close() + + if screen == 1: + print("Anzahl Waagen: ",strAnzahlWaagen) + print("Anzahl Tanks: ",strAnzahlTanks) + + return 0 + except: + print("writeAdjustments: The file ", CaravanPiFiles.fileCaravanPiDefaults, " could not be written - unprocessed Error:", sys.exc_info()[0]) + raise + return -1 + + + + # --------------------------------------------------------------------------------------------- + # adjustmentPosition + # + # content of file + # adjustment X X value, if caravan is in horizontal position + # adjustment Y Y value, if caravan is in horizontal position + # adjustment Z Z value, if caravan is in horizontal position + # tolerance X deviation in X direction, which is still considered horizontal + # tolerance Y deviation in Y direction, which is still considered horizontal + # approximation X at which deviation from the horizontal the LEDs should flash + # approximation Y at which deviation from the horizontal the LEDs should flash + # distance right distance of the sensor from the right side + # distance front distance of the sensor from the front side + # distance axis Distance of the sensor from the axis in longitudinal direction + # ---------------------------------------------------------------------------------------------- + + def readAdjustment(): + try: + file = open(CaravanPiFiles.fileAdjustments) + + strAdjustX = file.readline().strip() + strAdjustY = file.readline().strip() + strAdjustZ = file.readline().strip() + strtoleranceX = file.readline().strip() + strtoleranceY = file.readline().strip() + strApproximationX = file.readline().strip() + strApproximationY = file.readline().strip() + strDistRight = file.readline().strip() + strDistFront = file.readline().strip() + strDistAxis = file.readline().strip() + + file.close() + + adjustX = float(strAdjustX) + adjustY = float(strAdjustY) + adjustZ = float(strAdjustZ) + toleranceX = float(strtoleranceX) + toleranceY = float(strtoleranceY) + approximationX = float(strApproximationX) + approximationY = float(strApproximationY) + distRight = float(strDistRight) + distFront = float(strDistFront) + distAxis = float(strDistAxis) + + return(adjustX, adjustY, adjustZ, toleranceX, toleranceY, approximationX, approximationY, distRight, distFront, distAxis) + except: + # Lesefehler + print ("readAdjustment: The file ", CaravanPiFiles.fileAdjustments, " could not be read. unprocessed Error:", sys.exc_info()[0]) + return(0,0,0,0,0,0,0,0,0,0) + + def writeAdjustment(test, screen, adjustX, adjustY, adjustZ, toleranceX, toleranceY, approximationX, approximationY, distRight, distFront, distAxis): + try: + strAdjustX = '{:.6f}'.format(adjustX) + strAdjustY = '{:.6f}'.format(adjustY) + strAdjustZ = '{:.6f}'.format(adjustZ) + strtoleranceX = '{:.6f}'.format(toleranceX) + strtoleranceY = '{:.6f}'.format(toleranceY) + strApproximationX = '{:.6f}'.format(approximationX) + strApproximationY = '{:.6f}'.format(approximationY) + strDistRight = '{:.0f}'.format(distRight) + strDistFront = '{:.0f}'.format(distFront) + strDistAxis = '{:.0f}'.format(distAxis) + + if test == 1: + file = open(CaravanPiFiles.fileAdjustments+"_test", 'w') + else: + file = open(CaravanPiFiles.fileAdjustments, 'w') + + file.write(strAdjustX + "\n") + file.write(strAdjustY + "\n") + file.write(strAdjustZ + "\n") + file.write(strtoleranceX + "\n") + file.write(strtoleranceY + "\n") + file.write(strApproximationX + "\n") + file.write(strApproximationY + "\n") + file.write(strDistRight + "\n") + file.write(strDistFront + "\n") + file.write(strDistAxis) + + file.close() + + if screen == 1: + print("adjustX: ",strAdjustX) + print("AdjustY: ",strAdjustY) + print("AdjustZ: ",strAdjustZ) + print("toleranceX: ",strtoleranceX) + print("toleranceY: ",strtoleranceY) + print("ApproximationX: ",strApproximationX) + print("ApproximationY: ",strApproximationY) + print("DistRight: ",strDistRight) + print("DistFront: ",strDistFront) + print("DistAxis: ",strDistAxis) + + + return 0 + except: + print("writeAdjustments: The file ", CaravanPiFiles.fileAdjustments, " could not be written - unprocessed Error:", sys.exc_info()[0]) + raise + return -1 + + # --------------------------------------------------------------------------------------------- + # dimensions + # + # content of file + # length over all length of the caravan over all + # width width of the caravan over all + # length body legth of the body of the caravan without drawbar + # ---------------------------------------------------------------------------------------------- + + def readDimensions(): + try: + file = open(CaravanPiFiles.fileDimensions) + + strLengthOverAll = file.readline().strip() + strWidth = file.readline().strip() + strLengthBody = file.readline().strip() + + file.close() + + lengthOverAll = float(strLengthOverAll) + lengthBody = float(strLengthBody) + width = float(strWidth) + + return(lengthOverAll, width, lengthBody) + except: + # Lesefehler + print ("readDimensions: The file ", CaravanPiFiles.fileDimensions, " could not be read. unprocessed Error:", sys.exc_info()[0]) + return(0,0,0) + + def writeDimensions(test, screen, lengthOverAll, width, lengthBody): + try: + strLengthOverAll = '{:.0f}'.format(lengthOverAll) + strWidth = '{:.0f}'.format(width) + strLengthBody = '{:.0f}'.format(lengthBody) + + if test == 1: + file = open(CaravanPiFiles.fileDimensions+"_test", 'w') + else: + file = open(CaravanPiFiles.fileDimensions, 'w') + + file.write(strLengthOverAll + "\n") + file.write(strWidth + "\n") + file.write(strLengthBody) + + file.close() + + if screen == 1: + print("lengthOverAll: ",strLengthOverAll) + print("width: ",strWidth) + print("lengthBody: ",strLengthBody) + + return 0 + except: + print("writeDimensions: The file ", CaravanPiFiles.fileDimensions, " could not be written - unprocessed Error:", sys.exc_info()[0]) + raise + return -1 + + + # --------------------------------------------------------------------------------------------- + # gas scale + # + # content of file + # empty weight weight of the empty gas cylinder + # full weight weight of the full gas cylinder + # pin_dout GPIO Pin HX711 DOUT / DT + # pin_sck GPIO Pin HX711 SCK + # channel Channel at HX711, only A or B + # refUnit reference unit as divisor for HX711 values + # ---------------------------------------------------------------------------------------------- + + def readGasScale(gasCylinderNumber): + try: + filename = CaravanPiFiles.fileGasScale + '{:.0f}'.format(gasCylinderNumber) + file = open(filename) + + strEmptyWeight = file.readline().strip() + strFullWeight = file.readline().strip() + strPinDout = file.readline().strip() + strPinSck = file.readline().strip() + strChannel = file.readline().strip() + strRefUnit = file.readline().strip() + + file.close() + + emptyWeight = float(strEmptyWeight) + fullWeight = float(strFullWeight) + pin_dout = int(strPinDout) + pin_sck = int(strPinSck) + refUnit = float(strRefUnit) + + # print ("Leergewicht Flasche >>", strEmptyWeight, "<< >>", emptyWeight, "<<") + # print ("max Gasgewicht >>", strFullWeight, "<< >>", fullWeight, "<<") + # print ("Pin DOUT >>", strPinDout, "<< >>", pin_dout, "<<") + # print ("Pin SCK >>", strPinSck, "<< >>", pin_sck, "<<") + # print ("Channel >>", strChannel, "<<") + # print ("Ref Unit >>", strRefUnit, "<< >>", refUnit, "<<") + + return(emptyWeight, fullWeight, pin_dout, pin_sck, strChannel, refUnit) + except: + # Lesefehler + print ("readGasScale: The file ", filename, " could not be read. unprocessed Error:", sys.exc_info()[0]) + return(0,0,0,0,"",0) + + def writeGasScale(gasCylinderNumber, test, screen, emptyWeight, fullWeight, pin_dout, pin_sck, strChannel, refUnit ): + try: + strEmptyWeight = '{:.0f}'.format(emptyWeight) + strFullWeight = '{:.0f}'.format(fullWeight) + strPinDout = '{:.0f}'.format(pin_dout) + strPinSck = '{:.0f}'.format(pin_sck) + strRefUnit = '{:.9f}'.format(refUnit) + + filename = CaravanPiFiles.fileGasScale + '{:.0f}'.format(gasCylinderNumber) + if test == 1: + file = open(filename+"_test", 'w') + else: + file = open(filename, 'w') + + file.write(strEmptyWeight + "\n") + file.write(strFullWeight + "\n") + file.write(strPinDout + "\n") + file.write(strPinSck + "\n") + file.write(strChannel + "\n") + file.write(strRefUnit) + + file.close() + + if screen == 1: + print("emptyWeight: ",strEmptyWeight) + print("fullWeight: ",strFullWeight) + print("Pin dout: ",strPinDout) + print("Pin sck: ",strPinSck) + print("Channel: ",strChannel) + print("Reference Unit: ",strRefUnit) + + return 0 + except: + print("writeGasScale: The file ", filename, " could not be written - unprocessed Error:", sys.exc_info()[0]) + raise + return -1 + + + # --------------------------------------------------------------------------------------------- + # filling levels + # + # level 1 is the smallest amount of water, level 4 is the largest amount of water in the tank + # + # content of file + # liter level 1 amount of water in the tank at level 1 + # liter level 2 amount of water in the tank at level 2 + # liter level 3 amount of water in the tank at level 3 + # liter level 4 amount of water in the tank at level 4 + # ---------------------------------------------------------------------------------------------- + + def readFillLevels(tankNumber): + try: + filename = CaravanPiFiles.fileTanks + '{:.0f}'.format(tankNumber) + file = open(filename) + + strLevel1 = file.readline().strip() + strLevel2 = file.readline().strip() + strLevel3 = file.readline().strip() + strLevel4 = file.readline().strip() + + file.close() + + level1 = float(strLevel1) + level2 = float(strLevel2) + level3 = float(strLevel3) + level4 = float(strLevel4) + + return(level1, level2, level3, level4) + except: + # Lesefehler + print ("readFillLevels: The file ", filename, " could not be read. unprocessed Error:", sys.exc_info()[0]) + return(0,0,0) + + def writeFillLevels(tankNumber, test, screen, level1, level2, level3, level4): + try: + strLevel1 = '{:.0f}'.format(level1) + strLevel2 = '{:.0f}'.format(level2) + strLevel3 = '{:.0f}'.format(level3) + strLevel4 = '{:.0f}'.format(level4) + + filename = CaravanPiFiles.fileTanks + '{:.0f}'.format(tankNumber) + if test == 1: + file = open(filename+"_test", 'w') + else: + file = open(filename, 'w') + + file.write(strLevel1 + "\n") + file.write(strLevel2 + "\n") + file.write(strLevel3 + "\n") + file.write(strLevel4) + + file.close() + + if screen == 1: + print("Fill Level 1 liter: ",strLevel1) + print("Fill Level 2 liter: ",strLevel2) + print("Fill Level 3 liter: ",strLevel3) + print("Fill Level 4 liter: ",strLevel4) + + return 0 + except: + print("writeFillLevels: The file ", filename, " could not be written - unprocessed Error:", sys.exc_info()[0]) + raise + return -1 + + + # --------------------------------------------------------------------------------------------- + # wide Voltage Level + # + # level 1 is the smallest amount of voltage, level 3 is the largest amount of voltage + # + # content of file + # voltage level 1 battery 25% + # voltage level 2 battery 50% + # voltage level 3 Battery 100% + # ---------------------------------------------------------------------------------------------- + + def readVoltageLevels(): + try: + filename = CaravanPiFiles.fileVoltage + file = open(filename) + + strLevel1 = file.readline().strip() + strLevel2 = file.readline().strip() + strLevel3 = file.readline().strip() + + file.close() + + level1 = float(strLevel1) + level2 = float(strLevel2) + level3 = float(strLevel3) + + return(level1, level2, level3) + except: + # Lesefehler + print ("readVoltageLevels: The file ", filename, " could not be read. unprocessed Error:", sys.exc_info()[0]) + return(0,0,0) + + def writeVoltageLevels(test, screen, level1, level2, level3): + try: + strLevel1 = '{:.0f}'.format(level1) + strLevel2 = '{:.0f}'.format(level2) + strLevel3 = '{:.0f}'.format(level3) + + filename = CaravanPiFiles.fileVoltage + if test == 1: + file = open(filename+"_test", 'w') + else: + file = open(filename, 'w') + + file.write(strLevel1 + "\n") + file.write(strLevel2 + "\n") + file.write(strLevel3) + + file.close() + + if screen == 1: + print("Voltage Level 1 25% : ",strLevel1) + print("Voltage Level 2 50% : ",strLevel2) + print("Voltage Level 3 100% : ",strLevel3) + + return 0 + except: + print("writeVoltageevels: The file ", filename, " could not be written - unprocessed Error:", sys.exc_info()[0]) + raise + return -1 + + + # --------------------------------------------------------------------------------------------- + # testColor + # + # content of file + # color Color to show for testing LEDs + # ---------------------------------------------------------------------------------------------- + + def readTestColor(): + try: + file = open(CaravanPiFiles.fileTestColor) + strColor = file.readline().strip() + file.close() + + return(strColor) + except: + # Lesefehler + print ("readTestColor: The file ", CaravanPiFiles.fileTestColor, " could not be read. unprocessed Error:", sys.exc_info()[0]) + return("") + + def writeTestColor(test, screen, color): + try: + if color == "-2" or color == "-1" or color == "0" or color == "1" or color == "2": + if test == 1: + file = open(CaravanPiFiles.fileTestColor+"_test", 'w') + else: + file = open(CaravanPiFiles.fileTestColor, 'w') + + file.write(color) + file.close() + + if screen == 1: + print("color: ",color) + + return 0 + else: + return -2 + except: + print("writeTestColor: The file ", CaravanPiFiles.fileTestColor, " could not be written - unprocessed Error:", sys.exc_info()[0]) + raise + return -1 diff --git a/temp/testColor b/defaults/testColor similarity index 100% rename from temp/testColor rename to defaults/testColor diff --git a/html/dimensions.php b/html/dimensions.php old mode 100644 new mode 100755 diff --git a/html/fill-levels.php b/html/fill-levels.php old mode 100644 new mode 100755 diff --git a/html/gas-scale.php b/html/gas-scale.php old mode 100644 new mode 100755 diff --git a/html/ledtest.php b/html/ledtest.php old mode 100644 new mode 100755 diff --git a/html/position.php b/html/position.php old mode 100644 new mode 100755 diff --git a/html/writeGasScaleCalibration.py b/html/writeGasScaleCalibration.py old mode 100644 new mode 100755 From 3ea21c1f4b8a10e1d15f4040196c17421e5eb52c Mon Sep 17 00:00:00 2001 From: upgrade_script Date: Sat, 30 Dec 2023 14:46:54 +0100 Subject: [PATCH 02/15] Update CHANGELOG.md --- CHANGELOG.md | 24 +++++++++++++++++++++++- 1 file changed, 23 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 359ecf3..5fa1bc8 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -6,7 +6,29 @@ In dieser Datei werde ich alle relevanten Änderungen am CaravanPi dokumentieren --- -## V 1.1 - Fehlerkorrekturen und Erweiterungen (noch in Arbeit) +## v2.0 Einführung MariaDB, Grafana, neues Backup, Configs per xml (noch in Arbeit) + +- **Konfiguration per xml Datei** + Bisher wurden für die Konfiguration der CaravnaPi Skripte Testdateien verwendet. Diese enthielten nur die Werte, nicht aber die Felderklärungen. Das machte das Lesen der Konfigurationsdateien praktisch unmöglich. Nun wurden diese Textdateien durch eine xml Datei ersetzt, in der alle Konfigurationen enthalten sind. Die xml Datei ist besser lesbar (Optimierung noch ausstehend, dass die xml datei mit Zeilenumbrüchen geschrieben wird). + Die Lese und Schreibskripte sind abwärtskompatibel. Werden alte Konfigurationsdateien gefunden, so werden diese in die xml Datei umgewandelt und in einem _alt Verzeichnis gesichert. + +- **Backup Skript ersetzt** + CaravanPi hatte bisher ein eigenes backup Skript. Dieses habe ich durch ein eigenes Repository ersetzt. + Fortan wird https://github.com/spitzlbergerj/Raspberry-Pi-Backup-Cloud genutzt. + Noch offen: Dokumentation der Sicherung der MariaDB + +- **Einführung einer Datenbank zur Speicherung der Sensorwerte** + +- **Einführung von Grafana zur Darstellung der Sensorwerte als Verlauf** + +- **Überwachung der Landstrom-Versorgung und der Bordbatterie-Versorgung** + +- **Integration der Überwachung einer Liontron Litium Batterie** + +- **Dokumentation der Internet-Verbindung über eine Starlink-Antenne** + + +## V 1.1 - Fehlerkorrekturen und Erweiterungen ### Hinzugefügt (Added) From 7f8392943d7fc58fa510152deeca9d37ed4d40dd Mon Sep 17 00:00:00 2001 From: upgrade_script Date: Sun, 31 Dec 2023 14:00:49 +0100 Subject: [PATCH 03/15] =?UTF-8?q?Schreiben=20in=20MariaDB,=20senden=20an?= =?UTF-8?q?=20MQTT=20Broker,=20Systemzust=C3=A4nde?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Die CaravanPiFilesClass wurde ergänzt um Funktionen zum Schreiben in eine mariaDB und zum Senden an einen MQTT Broker. Die zugehören Anmeldedaten werden aus der Config-xml gelesen. Im Verzeichnis raspberryPi wurde ein Skript erstellt, dass Systemzustände ausliest, damit diese in eine Datei/Datenbank/MQTT Broker geschrieben/gesendet werden können --- .gitignore | 3 + .lib/CaravanPiFilesClass.py | 349 +++++++++++++++--- .../backup-caravanpi.sh | 0 climate/climate2file.py | 28 +- raspberryPi/systemStat2file.py | 136 +++++++ testMariaDB.py | 19 + testxmlconfig.py | 21 ++ 7 files changed, 492 insertions(+), 64 deletions(-) rename {backup => backup-obsolet}/backup-caravanpi.sh (100%) create mode 100644 raspberryPi/systemStat2file.py create mode 100644 testMariaDB.py create mode 100644 testxmlconfig.py diff --git a/.gitignore b/.gitignore index a9ee12b..7a0c795 100644 --- a/.gitignore +++ b/.gitignore @@ -12,6 +12,9 @@ logrotate.status .lib/hx711pySJJSJJSJJSJJ/* .lib/*pyc +# ignoriere defaults/_allt, das durch abwaerttskompatibilitaet entsteht +defaults/_alt/ + # Verzeichnis log (Loggig Daten) # Verzeichnis anlegen !.log/ diff --git a/.lib/CaravanPiFilesClass.py b/.lib/CaravanPiFilesClass.py index 3a19ba5..22d4638 100644 --- a/.lib/CaravanPiFilesClass.py +++ b/.lib/CaravanPiFilesClass.py @@ -18,7 +18,10 @@ import xml.etree.ElementTree as ET import os import shutil -import xml.dom.minidom +import mysql.connector +from mysql.connector import Error +import paho.mqtt.client as mqtt +import datetime class CaravanPiFiles: @@ -28,6 +31,22 @@ class CaravanPiFiles: xml_file_path = "/home/pi/CaravanPi/defaults/caravanpiConfig.xml" + values_file_path = "/home/pi/CaravanPi/values/" + + write2file = None + + write2MariaDB = None + MariaDBhost = None + MariaDBuser = None + MariaDBpasswd = None + MariaDBdatabase = None + + send2MQTT = None + MQTTbroker = None + MQTTport = None + MQTTuser = None + MQTTpassword = None + # ----------------------------------------------- # COMPATIBILITY CODE - Anfang # ----------------------------------------------- @@ -36,9 +55,14 @@ class CaravanPiFiles: "caravanpiDefaults": [ "countGasScales", "countTanks", + "write2file", "write2MariaDB", + "MariaDBhost", + "MariaDBuser", + "MariaDBpasswd", + "MariaDBdatabase", "send2MQTT", - "MQTTserver", + "MQTTbroker", "MQTTport", "MQTTuser", "MQTTpassword", @@ -87,40 +111,66 @@ class CaravanPiFiles: # COMPATIBILITY CODE - Ende # ----------------------------------------------- + # --------------------------------------------------------------------------------------------- + # __init__ + # + # wird jedesmal aufgerufen, wenn die Class erzeugt wird + # prüft, ob die Umstellung auf XML Datei noch zu machen ist + # setzt die globalen Variablen zur MariaDB und zum XML Versand + # ---------------------------------------------------------------------------------------------- + def __init__(self): # COMPATIBILITY CODE - Pruefen, ob alte Dateien in das xml File migriert werden muessen self.check_create_xml() self.migrate_old_configs() + # COMPATIBILITY CODE Ende + + # lesen der CaravanPiDefaults und setzen der Class globalen Parameter + self.update_settings() + + # --------------------------------------------------------------------------------------------- + # update_settings + # + # setzt die globalen Variable + # Funktion sollte in jeder Schreibfunktion für Sensorwerte aufgerufen werden, damit das + # Schreiben der MariaDB und das Senden der MQTT Telegramme veranlasst wird, falls neu gesetzt + # ---------------------------------------------------------------------------------------------- + def update_settings(self): + # Aktualisiert die Klassenattribute basierend auf der XML-Datei + defaults = self.readCaravanPiDefaults() + if defaults: + _, _, self.write2file, self.write2MariaDB, self.MariaDBhost, self.MariaDBuser, self.MariaDBpasswd, self.MariaDBdatabase, self.send2MQTT, self.MQTTbroker, self.MQTTport, self.MQTTuser, self.MQTTpassword = defaults - def format_xml(element, level=0): - indent = "\n" + level*" " - if len(element): + # --------------------------------------------------------------------------------------------- + # format_xml + # + # formatiert die XML, so dass diese besser lesbar wird + # ---------------------------------------------------------------------------------------------- + def format_xml(self, element, level=0): + indent = "\n" + level * " " + if len(element): # Wenn das Element Kinder hat if not element.text or not element.text.strip(): element.text = indent + " " if not element.tail or not element.tail.strip(): element.tail = indent - for elem in element: - format_xml(elem, level+1) - if not elem.tail or not elem.tail.strip(): - elem.tail = indent - else: + for sub_element in element: + self.format_xml(sub_element, level + 1) + if not element.tail or not element.tail.strip(): + element.tail = indent + else: # Wenn das Element keine Kinder hat if level and (not element.tail or not element.tail.strip()): element.tail = indent + # ========================================================================================================================================================= + # + # Schreiben und Lesen der Default Werte + # + # ========================================================================================================================================================= + + # --------------------------------------------------------------------------------------------- # CaravanPiDefaults # - # meaning of data fields - # adjustment X X value, if caravan is in horizontal position - # adjustment Y Y value, if caravan is in horizontal position - # adjustment Z Z value, if caravan is in horizontal position - # tolerance X deviation in X direction, which is still considered horizontal - # tolerance Y deviation in Y direction, which is still considered horizontal - # approximation X at which deviation from the horizontal the LEDs should flash - # approximation Y at which deviation from the horizontal the LEDs should flash - # distance right distance of the sensor from the right side - # distance front distance of the sensor from the front side - # distance axis Distance of the sensor from the axis in longitudinal direction # ---------------------------------------------------------------------------------------------- def readCaravanPiDefaults(self): @@ -128,38 +178,60 @@ def readCaravanPiDefaults(self): root = tree.getroot() defaults_element = root.find("caravanpiDefaults") if defaults_element is not None: + write2file = defaults_element.find("write2file").text == '1' if defaults_element.find("write2file") is not None else False + write2MariaDB = defaults_element.find("write2MariaDB").text == '1' if defaults_element.find("write2MariaDB") is not None else False + send2MQTT = defaults_element.find("send2MQTT").text == '1' if defaults_element.find("send2MQTT") is not None else False + mqtt_port = defaults_element.find("MQTTport").text if defaults_element.find("MQTTport") is not None else None + + # Konvertierung von MQTTport in int, wenn vorhanden + try: + mqtt_port = int(mqtt_port) if mqtt_port is not None else None + except ValueError: + print("MQTTport konnte nicht in eine Ganzzahl umgewandelt werden.") + mqtt_port = None + return ( defaults_element.find("countGasScales").text if defaults_element.find("countGasScales") is not None else None, defaults_element.find("countTanks").text if defaults_element.find("countTanks") is not None else None, - defaults_element.find("write2MariaDB").text if defaults_element.find("write2MariaDB") is not None else None, - defaults_element.find("send2MQTT").text if defaults_element.find("send2MQTT") is not None else None, - defaults_element.find("MQTTserver").text if defaults_element.find("MQTTserver") is not None else None, - defaults_element.find("MQTTport").text if defaults_element.find("MQTTport") is not None else None, + write2file, + write2MariaDB, + defaults_element.find("MariaDBhost").text if defaults_element.find("MariaDBhost") is not None else None, + defaults_element.find("MariaDBuser").text if defaults_element.find("MariaDBuser") is not None else None, + defaults_element.find("MariaDBpasswd").text if defaults_element.find("MariaDBpasswd") is not None else None, + defaults_element.find("MariaDBdatabase").text if defaults_element.find("MariaDBdatabase") is not None else None, + send2MQTT, + defaults_element.find("MQTTbroker").text if defaults_element.find("MQTTbroker") is not None else None, + mqtt_port, defaults_element.find("MQTTuser").text if defaults_element.find("MQTTuser") is not None else None, defaults_element.find("MQTTpassword").text if defaults_element.find("MQTTpassword") is not None else None ) else: return None - def writeCaravanPiDefaults(self, countGasScales, countTanks, write2MariaDB, send2MQTT, MQTTserver, MQTTport, MQTTUser, MQTTpassword): + def writeCaravanPiDefaults(self, countGasScales, countTanks, write2file, write2MariaDB, MariaDBhost, MariaDBuser, MariaDBpasswd, MariaDBdatabase, send2MQTT, MQTTbroker, MQTTport, MQTTuser, MQTTpassword): tree = ET.parse(self.xml_file_path) root = tree.getroot() defaults_element = root.find("caravanpiDefaults") if defaults_element is None: defaults_element = ET.SubElement(root, "caravanpiDefaults") - for key, value in [("countGasScales", countGasScales), ("countTanks", countTanks), ("write2MariaDB", write2MariaDB), ("send2MQTT", send2MQTT), ("MQTTserver", MQTTserver), ("MQTTport", MQTTport), ("MQTTUser", MQTTUser), ("MQTTpassword", MQTTpassword)]: + # Konvertierung der booleschen Werte in "0" oder "1" + write2file = '1' if write2file else '0' + write2MariaDB = '1' if write2MariaDB else '0' + send2MQTT = '1' if send2MQTT else '0' + + for key, value in [("countGasScales", countGasScales), ("countTanks", countTanks), ("write2file", write2file), ("write2MariaDB", write2MariaDB), ("MariaDBhost", MariaDBhost), ("MariaDBuser", MariaDBuser), ("MariaDBpasswd", MariaDBpasswd), ("MariaDBdatabase", MariaDBdatabase), ("send2MQTT", send2MQTT), ("MQTTbroker", MQTTbroker), ("MQTTport", MQTTport), ("MQTTuser", MQTTuser), ("MQTTpassword", MQTTpassword)]: element = defaults_element.find(key) if element is None: element = ET.SubElement(defaults_element, key) element.text = str(value) # Formatieren des XML-Baums vor dem Speichern - format_xml(root) + self.format_xml(root) # Schreiben der formatierten XML-Daten in die Datei - tree.write(self.xml_file_path) - + tree.write(self.xml_file_path, encoding='utf-8', xml_declaration=True) + # --------------------------------------------------------------------------------------------- # adjustmentPosition # @@ -210,10 +282,10 @@ def writeAdjustment(self, adjustX, adjustY, adjustZ, toleranceX, toleranceY, app element.text = str(value) # Formatieren des XML-Baums vor dem Speichern - format_xml(root) + self.format_xml(root) # Schreiben der formatierten XML-Daten in die Datei - tree.write(self.xml_file_path) + tree.write(self.xml_file_path, encoding='utf-8', xml_declaration=True) # --------------------------------------------------------------------------------------------- # dimensions @@ -251,10 +323,10 @@ def writeDimensions(self, lengthOverAll, width, lengthBody): element.text = str(value) # Formatieren des XML-Baums vor dem Speichern - format_xml(root) + self.format_xml(root) # Schreiben der formatierten XML-Daten in die Datei - tree.write(self.xml_file_path) + tree.write(self.xml_file_path, encoding='utf-8', xml_declaration=True) # --------------------------------------------------------------------------------------------- @@ -301,10 +373,10 @@ def writeGasScale(self, gasCylinderNumber, test, screen, emptyWeight, fullWeight element.text = str(value) # Formatieren des XML-Baums vor dem Speichern - format_xml(root) + self.format_xml(root) # Schreiben der formatierten XML-Daten in die Datei - tree.write(self.xml_file_path) + tree.write(self.xml_file_path, encoding='utf-8', xml_declaration=True) # --------------------------------------------------------------------------------------------- @@ -348,10 +420,10 @@ def writeFillLevels(self, tankNumber, test, screen, level1, level2, level3, leve element.text = str(value) # Formatieren des XML-Baums vor dem Speichern - format_xml(root) + self.format_xml(root) # Schreiben der formatierten XML-Daten in die Datei - tree.write(self.xml_file_path) + tree.write(self.xml_file_path, encoding='utf-8', xml_declaration=True) # --------------------------------------------------------------------------------------------- # wide Voltage Level @@ -391,10 +463,11 @@ def writeVoltageLevels(self, level1, level2, level3): element.text = str(value) # Formatieren des XML-Baums vor dem Speichern - format_xml(root) + self.format_xml(root) # Schreiben der formatierten XML-Daten in die Datei - tree.write(self.xml_file_path) + tree.write(self.xml_file_path, encoding='utf-8', xml_declaration=True) + # --------------------------------------------------------------------------------------------- @@ -426,15 +499,193 @@ def writeTestColor(self, color): color_element.text = str(color) # Formatieren des XML-Baums vor dem Speichern - format_xml(root) + self.format_xml(root) # Schreiben der formatierten XML-Daten in die Datei - tree.write(self.xml_file_path) + tree.write(self.xml_file_path, encoding='utf-8', xml_declaration=True) + + + # ========================================================================================================================================================= + # + # Schreiben und Lesen der jeweils aktuellen Sensor Werte + # + # ========================================================================================================================================================= + + def climateWrite(self, chip_id, device, temperature, pressure, humidity): + try: + sensorId = "BME280-" + str(chip_id) + "-" + str(device) + + if self.write2file: + print("Datei schreiben") + dateiName = self.values_file_path + sensorId + file = open(dateiName, 'a') + str_from_time_now = datetime.datetime.now().strftime("%Y%m%d%H%M%S") + strTemperature = '{:.1f}'.format(temperature) + strPressure = '{:.1f}'.format(pressure) + strHumidity = '{:.1f}'.format(humidity) + file.write("\n"+ sensorId + " " + str_from_time_now + " " + strTemperature + " " + strPressure + " " + strHumidity) + file.close() + + if self.write2MariaDB: + print("Datenbank schreiben") + + # Datenbank öffnen + connection = self.create_db_connection() + + # Daten in die Tabelle schreiben + table_columns = ['sensor_id', 'zeitstempel', 'temperatur', 'luftdruck', 'luftfeuchtigkeit'] + table_values = (sensorId, "", temperature, pressure, humidity) + self.insert_into_table(connection, 'klimasensor', table_columns, table_values) + + # Datenbank schließen + connection.close() + + if self.send2MQTT: + print("senden an MQTT") + + # MQTT Connection öffnen + client = self.create_mqtt_connection() + + # Daten versenden + subtopics = ['temperatur', 'luftdruck', 'luftfeuchtigkeit'] + values = (temperature, pressure, humidity) + self.send_mqtt_messages(client, 'klimasensor', sensorId, subtopics, values) + + # Datenbank schließen + client.disconnect() + + return 0 + except Error as e: + # Fehler + print ("Die Sensordaten konnten nicht geschrieben/gesendet werden: Fehler: '{e}'") + return -1 + + + + # ========================================================================================================================================================= + # + # Datenbank Funktionen MariaDB + # + # ========================================================================================================================================================= + # --------------------------------------------------------------------------------------------- + # create_db_connection + # Datenbank Verbindung aufbauen + # ---------------------------------------------------------------------------------------------- - # ----------------------------------------------- + def create_db_connection(self): + # zunächst die Defaultwerte in der Default xml lesen + self.update_settings() + + connection = None + try: + connection = mysql.connector.connect( + host=self.MariaDBhost, + user=self.MariaDBuser, + passwd=self.MariaDBpasswd, + database=self.MariaDBdatabase + ) + print("MariaDB connection successful") + except Error as e: + print(f"MariaDB - The error '{e}' occurred") + + return connection + + # --------------------------------------------------------------------------------------------- + # execute_query + # beliebige SQL Querys ausführen + # ---------------------------------------------------------------------------------------------- + + def execute_query(self, connection, query, data): + cursor = connection.cursor() + try: + cursor.execute(query, data) + connection.commit() + print("Query successful") + except Error as e: + print(f"The error '{e}' occurred") + + # --------------------------------------------------------------------------------------------- + # insert_into_table + # Einfügen von Daten in eine beliebige Tabelle + # Struktur und Werte werden als Tupel übergeben + # Achtung: Falls eine Spalte zeitstempel in columns vorkommt, wird automatisch CURRENT_TIMESTAMP eingefügt. + # in diesem Fall muss schon beim Aufruf an der richtigen Stelle in values ein Wert, z.B. none, vorhanden sein + # ---------------------------------------------------------------------------------------------- + + def insert_into_table(self, connection, table_name, columns, values): + # Stellen Sie sicher, dass Subtopics und Values die gleiche Länge haben + if len(columns) != len(values): + raise ValueError("Spalten und Values müssen die gleiche Anzahl von Elementen haben.") + + # Überprüfen, ob 'zeitstempel' in den Spalten ist und CURRENT_TIMESTAMP einsetzen + timestamp_index = None + if "zeitstempel" in columns: + timestamp_index = columns.index("zeitstempel") + columns = [col for col in columns if col != "zeitstempel"] # 'zeitstempel' aus den Spalten entfernen + values = tuple(value for i, value in enumerate(values) if i != timestamp_index) # entsprechenden Wert entfernen + + # Erstellen der SQL-Abfrage + columns_string = ', '.join(columns + (["zeitstempel"] if timestamp_index is not None else [])) + values_string = ', '.join(['%s'] * len(values) + (["CURRENT_TIMESTAMP"] if timestamp_index is not None else [])) + query = f"INSERT INTO {table_name} ({columns_string}) VALUES ({values_string})" + + # Ausführen der Abfrage + self.execute_query(connection, query, values) + + + # ========================================================================================================================================================= + # + # MQTT Funktionen + # + # ========================================================================================================================================================= + + # --------------------------------------------------------------------------------------------- + # create_mqtt_connection + # MQTT Verbindung aufbauen + # ---------------------------------------------------------------------------------------------- + + def create_mqtt_connection(self): + # zunächst die Defaultwerte in der Default xml lesen + self.update_settings() + + client = None + try: + client = mqtt.Client() + client.tls_set() # Aktiviere TLS ohne spezifische Zertifikate + client.username_pw_set(self.MQTTuser,self.MQTTpassword) + client.connect(self.MQTTbroker, self.MQTTport, 60) + + print("MQTT connection successful") + + except Error as e: + print(f"MQTT - The error '{e}' occurred") + + return client + + # --------------------------------------------------------------------------------------------- + # send_mqtt_messages + # Senden von Daten an einen MQTT Broker + # Struktur und Werte werden als Tupel übergeben + # ---------------------------------------------------------------------------------------------- + + def send_mqtt_messages(self, mqtt_client, typtopic, sensortopic, subtopics, values): + base_topic = "CaravanPi" + + # Stellen Sie sicher, dass Subtopics und Values die gleiche Länge haben + if len(subtopics) != len(values): + raise ValueError("Subtopics und Values müssen die gleiche Anzahl von Elementen haben.") + + # Senden jeder Nachricht + for subtopic, value in zip(subtopics, values): + topic = f"{base_topic}/{typtopic}/{sensortopic}/{subtopic}" + mqtt_client.publish(topic, value) + print("MQTT send successful", topic, value) + + + # ========================================================================================================================================================= # COMPATIBILITY CODE - Anfang bis Dateiende - # ----------------------------------------------- + # ========================================================================================================================================================= # --------------------------------------------------------------------------------------------- # check_create_xml @@ -541,8 +792,14 @@ def migrate_caravanpi_defaults(self, file_path): elif line: # Check if line is not empty ET.SubElement(defaults_element, key).text = line - # Setting additional fields to empty - for additional_key in ["write2MariaDB", "send2MQTT", "MQTTserver", "MQTTport", "MQTTuser", "MQTTpassword"]: + # Setting additional fields to empty or false + for additional_key in ["write2file"]: + ET.SubElement(defaults_element, additional_key).text = "1" + + for additional_key in ["write2MariaDB", "send2MQTT"]: + ET.SubElement(defaults_element, additional_key).text = "0" + + for additional_key in ["MariaDBhost", "MariaDBuser", "MariaDBpasswd", "MariaDBdatabase", "MQTTbroker", "MQTTport", "MQTTuser", "MQTTpassword"]: ET.SubElement(defaults_element, additional_key).text = "" tree.write(self.xml_file_path) diff --git a/backup/backup-caravanpi.sh b/backup-obsolet/backup-caravanpi.sh similarity index 100% rename from backup/backup-caravanpi.sh rename to backup-obsolet/backup-caravanpi.sh diff --git a/climate/climate2file.py b/climate/climate2file.py index bde3ec5..afc7af3 100644 --- a/climate/climate2file.py +++ b/climate/climate2file.py @@ -35,6 +35,13 @@ from ctypes import c_byte from ctypes import c_ubyte +# ----------------------------------------------- +# CaravanPi File/MARIADB/MQTT library einbinden +# ----------------------------------------------- +sys.path.append('/home/pi/CaravanPi/.lib') +from CaravanPiFilesClass import CaravanPiFiles + + DEVICE1 = 0x76 # Default device I2C address DEVICE2 = 0x77 # Second device I2C address DEVICE = DEVICE1 # for compatibility reasons @@ -169,23 +176,6 @@ def readBME280All(addr=DEVICE): return temperature/100.0,pressure/100.0,humidity -def write2file(chip_id, device, temperature, pressure, humidity): - try: - sensorId = "BME280-" + str(chip_id) + "-" + str(device) - dateiName = "/home/pi/CaravanPi/values/" + sensorId - file = open(dateiName, 'a') - str_from_time_now = datetime.datetime.now().strftime("%Y%m%d%H%M%S") - strTemperature = '{:.1f}'.format(temperature) - strPressure = '{:.1f}'.format(pressure) - strHumidity = '{:.1f}'.format(humidity) - file.write("\n"+ sensorId + " " + str_from_time_now + " " + strTemperature + " " + strPressure + " " + strHumidity) - file.close() - return 0 - except: - # Schreibfehler - print ("Die Datei konnte nicht geschrieben werden.") - return -1 - def main(): global DEVICE, DEVICE1, DEVICE2 @@ -208,7 +198,9 @@ def main(): print ("Pressure : ", pressure, "hPa") print ("Humidity : ", humidity, "%") else: - write2file(chip_id, DEVICE, temperature, pressure, humidity) + # Erstellen einer Instanz der CaravanPi Library + cplib = CaravanPiFiles() + cplib.climateWrite(chip_id, DEVICE, temperature, pressure, humidity) else: print('Invalid arguments. Script will be terminated.') diff --git a/raspberryPi/systemStat2file.py b/raspberryPi/systemStat2file.py new file mode 100644 index 0000000..7fea8b6 --- /dev/null +++ b/raspberryPi/systemStat2file.py @@ -0,0 +1,136 @@ +#!/usr/bin/python3 +# coding=utf-8 +# systemStat2file.py +# +# zyklische Abfrage einiger Systemwerte +# Intervall 5 Minuten (oder laut Parameter) +# Bei CPU Temperaturen über 75°C wird das Intervall auf 30 Sekunden verkürzt +# +# Aufruf-Parameter +# systemStat2file.py -f +# -h display guide +# -f write values to file +# -s display values on screen +# +# erzeugt mit Hilfe von ChatGPT 4 +#------------------------------------------------------------------------------- + +import os +import time +import sys +import argparse +import subprocess + +def get_cpu_temperature(): + with open("/sys/class/thermal/thermal_zone0/temp", "r") as file: + temp = float(file.read()) / 1000 + return temp + +def get_gpu_temperature(): + try: + gpu_temp_output = subprocess.check_output(['/usr/bin/vcgencmd', 'measure_temp']).decode() + gpu_temp = float(gpu_temp_output.split('=')[1].split("'")[0]) + return gpu_temp + except Exception as e: + print(f"Fehler beim Auslesen der GPU-Temperatur: {e}") + return None + +def get_cpu_usage(): + with open('/proc/stat', 'r') as f: + lines = f.readlines() + cpu_times = lines[0].split()[1:5] + cpu_times = list(map(int, cpu_times)) + idle_time = cpu_times[3] + total_time = sum(cpu_times) + + time.sleep(1) + + with open('/proc/stat', 'r') as f: + lines = f.readlines() + cpu_times_2 = lines[0].split()[1:5] + cpu_times_2 = list(map(int, cpu_times_2)) + idle_time_2 = cpu_times_2[3] + total_time_2 = sum(cpu_times_2) + + idle_delta = idle_time_2 - idle_time + total_delta = total_time_2 - total_time + + cpu_usage = 100.0 * (1 - idle_delta / total_delta) + return cpu_usage + +def get_ram_usage(): + with open("/proc/meminfo", "r") as f: + lines = f.readlines() + total_memory = int(lines[0].split()[1]) + free_memory = int(lines[1].split()[1]) + used_memory = total_memory - free_memory + return (used_memory / total_memory) * 100 + +def get_disk_usage(): + disk_usage = os.popen("df -h | awk '$NF==\"/\"{print $(NF-1)}'").readline().strip() + return disk_usage + +def get_network_traffic(interface='eth0'): + net_stats = os.popen(f"cat /sys/class/net/{interface}/statistics/rx_bytes").readline().strip() + net_stats_mb = int(net_stats) / (1024 ** 2) + return net_stats_mb + +def get_process_count(): + process_count = os.popen("ps -e | wc -l").readline().strip() + return process_count + +def get_system_uptime(): + with open("/proc/uptime", "r") as f: + uptime_seconds = float(f.readline().split()[0]) + return uptime_seconds + +def main(): + parser = argparse.ArgumentParser(description='Systemstatistiken überwachen') + parser.add_argument('-i', '--interval', type=int, default=300, + help='Intervall in Sekunden für regelmäßige Abfragen (Standard: 300 Sekunden)') + parser.add_argument('-s', '--screen', action='store_true', + help='Aktiviert die Ausgabe auf dem Bildschirm') + parser.add_argument('-f', '--file', action='store_true', + help='(Abwärtskompatibilität) Keine Funktion') + + args = parser.parse_args() + + normal_interval = args.interval + high_temp_interval = 30 # Abfrageintervall bei hoher Temperatur: 30 Sekunden + interval = normal_interval + + try: + while True: + cpu_temp = get_cpu_temperature() + gpu_temp = get_gpu_temperature() + cpu_usage = get_cpu_usage() + ram_usage = get_ram_usage() + disk_usage = get_disk_usage() + net_traffic = get_network_traffic() + process_count = get_process_count() + system_uptime = get_system_uptime() + + if args.screen: + print(f"CPU-Temperatur: {cpu_temp:.2f}°C") + print(f"GPU-Temperatur: {gpu_temp:.2f}°C") + print(f"CPU-Auslastung: {cpu_usage:.2f}%") + print(f"RAM-Auslastung: {ram_usage:.2f}%") + print(f"Speicherplatz: {disk_usage}") + print(f"Netzwerkauslastung: {net_traffic:.2f} MB") + print(f"Anzahl laufender Prozesse: {process_count}") + print(f"Systemlaufzeit: {system_uptime:.2f} Sekunden") + + # Anpassung des Intervalls basierend auf der CPU-Temperatur + if cpu_temp > 75 and interval != high_temp_interval: + interval = high_temp_interval + elif cpu_temp <= 75 and interval != normal_interval: + interval = normal_interval + + time.sleep(interval) + except KeyboardInterrupt: + if args.screen: + print("\nProgramm wurde durch Benutzer unterbrochen. Beende...") + sys.exit(0) + +if __name__ == "__main__": + main() diff --git a/testMariaDB.py b/testMariaDB.py new file mode 100644 index 0000000..705c1ee --- /dev/null +++ b/testMariaDB.py @@ -0,0 +1,19 @@ +#! /usr/bin/python3 +# coding=utf-8 +#------------------------------------------------------------------------------- + +import sys +# Importieren der angepassten CaravanPiFiles Klasse +from CaravanPiFilesClass import CaravanPiFiles + +def main(): + # Erstellen einer Instanz der Klasse + cp_files = CaravanPiFiles() + + # MariaDB verbinden und Ausgabe der Ergebnisse + cp_files.climateWrite("4711", "0815", 23, 68, 34) + + + +if __name__ == "__main__": + main() diff --git a/testxmlconfig.py b/testxmlconfig.py new file mode 100644 index 0000000..2d4d27b --- /dev/null +++ b/testxmlconfig.py @@ -0,0 +1,21 @@ +#! /usr/bin/python3 +# coding=utf-8 +#------------------------------------------------------------------------------- + +import sys +# Importieren der angepassten CaravanPiFiles Klasse +from CaravanPiFilesClass import CaravanPiFiles + +def main(): + # Erstellen einer Instanz der Klasse + cp_files = CaravanPiFiles() + + # Lesen der Konfigurationen und Ausgabe der Ergebnisse + print("CaravanPiDefaults:", cp_files.readCaravanPiDefaults()) + print("Adjustment:", cp_files.readAdjustment()) + print("Dimensions:", cp_files.readDimensions()) + print("Voltage Levels:", cp_files.readVoltageLevels()) + print("Test Color:", cp_files.readTestColor()) + +if __name__ == "__main__": + main() From 2abd71a547430243f61cce10fbc15ef61778a225 Mon Sep 17 00:00:00 2001 From: upgrade_script Date: Tue, 2 Jan 2024 17:07:59 +0100 Subject: [PATCH 04/15] zentrale Sensorwert Verarbeitung (File,DB,MQTT) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit in der CaravnPiFiles Class wurde eine zentrale Funktion geschaffen, die zukünftig alle Schreib Vorgänge für Sensorwerte übernimmt. Die Funktion gibt am Bildschirm aus, schreibt die Werte in ein File, fügt sie in die Datenbank ein und sendet sie per MQTT. Bereinigungen im Verzeichnis der Klimasensorenverarbeitung. Härten der entsprechenden Funktionen dort --- .lib/CaravanPiFilesClass.py | 81 +++-- bottleFramework/README.md | 22 ++ circuit-board/{Readme.md => README.md} | 0 climate/README.md | 9 +- .../BME680-indoor-air-quality.py} | 0 climate/{ => beispiel-skripte}/bme280.py | 0 .../{ => beispiel-skripte}/bme680-read-all.py | 0 .../climateBME6802file.py} | 0 climate/climate2file.py | 308 ++++++++++-------- defaults/adjustmentPosition | 10 - defaults/caravanpiConfig.xml | 70 ++++ defaults/caravanpiDefaults | 4 - defaults/dimensionsCaravan | 3 - defaults/gasScaleDefaults1 | 6 - defaults/gasScaleDefaults2 | 6 - defaults/tankDefaults1 | 4 - defaults/tankDefaults2 | 4 - defaults/testColor | 1 - defaults/voltageDefaults | 3 - raspberryPi/systemStat2file.py | 136 -------- raspberrypi/systemstat2file.py | 148 +++++++++ 21 files changed, 469 insertions(+), 346 deletions(-) create mode 100644 bottleFramework/README.md rename circuit-board/{Readme.md => README.md} (100%) rename climate/{indoor-air-quality.py => beispiel-skripte/BME680-indoor-air-quality.py} (100%) rename climate/{ => beispiel-skripte}/bme280.py (100%) rename climate/{ => beispiel-skripte}/bme680-read-all.py (100%) rename climate/{climateAir2file.py => beispiel-skripte/climateBME6802file.py} (100%) delete mode 100644 defaults/adjustmentPosition create mode 100644 defaults/caravanpiConfig.xml delete mode 100644 defaults/caravanpiDefaults delete mode 100644 defaults/dimensionsCaravan delete mode 100644 defaults/gasScaleDefaults1 delete mode 100644 defaults/gasScaleDefaults2 delete mode 100644 defaults/tankDefaults1 delete mode 100644 defaults/tankDefaults2 delete mode 100644 defaults/testColor delete mode 100644 defaults/voltageDefaults delete mode 100644 raspberryPi/systemStat2file.py create mode 100644 raspberrypi/systemstat2file.py diff --git a/.lib/CaravanPiFilesClass.py b/.lib/CaravanPiFilesClass.py index 22d4638..3a21bb2 100644 --- a/.lib/CaravanPiFilesClass.py +++ b/.lib/CaravanPiFilesClass.py @@ -511,55 +511,92 @@ def writeTestColor(self, color): # # ========================================================================================================================================================= - def climateWrite(self, chip_id, device, temperature, pressure, humidity): + + def handle_sensor_values(self, toScreen, sensor_name, sensor_id, value_identifiers, sensor_values): + # Funktion zum Verarbeiten der ermittelten Sensorwerte + # Die Werte werden per print ausgegeben, falls toScreen auf true steht + # Falls die zentrale Konfig das Schreiben in die MariaDB vorsieht, so wird das angestossen + # Falls MQTT Messages versandt werden sollen, so wird dies angestossen + # + # sensor_values: ein Tupel mit den konkreten Sensorwerten + # value_identifiers: eine Liste mit den Feldbezeichnern fuer die Sensorwerte. + + try: - sensorId = "BME280-" + str(chip_id) + "-" + str(device) + # sind beide Listen/Tupel gleich lang? + if len(sensor_values) != len(value_identifiers): + raise ValueError("Die Tupel fuer Werte und Bezeichner sind unterschiedlich lang") + # Bildschirmausgabe + if toScreen: + print(f"{datetime.datetime.now():%Y%m%d%H%M%S} - {sensor_name} - {sensor_id}") + for identifier, value in zip(value_identifiers, sensor_values): + print(f"{identifier}: {value}") + + # Schreiben in die Datei if self.write2file: print("Datei schreiben") - dateiName = self.values_file_path + sensorId - file = open(dateiName, 'a') - str_from_time_now = datetime.datetime.now().strftime("%Y%m%d%H%M%S") - strTemperature = '{:.1f}'.format(temperature) - strPressure = '{:.1f}'.format(pressure) - strHumidity = '{:.1f}'.format(humidity) - file.write("\n"+ sensorId + " " + str_from_time_now + " " + strTemperature + " " + strPressure + " " + strHumidity) - file.close() + self.write_to_file(sensor_id, sensor_values) + # Schreiben in die MariaDB if self.write2MariaDB: print("Datenbank schreiben") - # Datenbank öffnen + # Datenbank oeffnen connection = self.create_db_connection() # Daten in die Tabelle schreiben - table_columns = ['sensor_id', 'zeitstempel', 'temperatur', 'luftdruck', 'luftfeuchtigkeit'] - table_values = (sensorId, "", temperature, pressure, humidity) - self.insert_into_table(connection, 'klimasensor', table_columns, table_values) + table_columns = ['sensor_id', 'zeitstempel'] + table_values = (sensor_id, None) + self.insert_into_table(connection, sensor_name, table_columns + value_identifiers, table_values + sensor_values) - # Datenbank schließen + # Datenbank schliessen connection.close() if self.send2MQTT: print("senden an MQTT") - # MQTT Connection öffnen + # MQTT Connection oeffnen client = self.create_mqtt_connection() # Daten versenden - subtopics = ['temperatur', 'luftdruck', 'luftfeuchtigkeit'] - values = (temperature, pressure, humidity) - self.send_mqtt_messages(client, 'klimasensor', sensorId, subtopics, values) + self.send_mqtt_messages(client, sensor_name, sensor_id, value_identifiers, sensor_values) - # Datenbank schließen + # Datenbank schliessen client.disconnect() - + return 0 except Error as e: # Fehler print ("Die Sensordaten konnten nicht geschrieben/gesendet werden: Fehler: '{e}'") return -1 + + + + + # ========================================================================================================================================================= + # + # Ausgabe in die Werte Datei + # + # ========================================================================================================================================================= + + # --------------------------------------------------------------------------------------------- + # write_to_file + # Schreiben der Sensorwerte in eine Datei + # ---------------------------------------------------------------------------------------------- + def write_to_file(self, filename, sensor_values): + # Vollstaendiger Dateipfad + file_path = os.path.join(self.values_file_path, filename) + + # Erstellen des Zeitstempels + timestamp = datetime.datetime.now().strftime("%Y%m%d%H%M%S") + + # Erstellen der Zeile fuer die Ausgabe + output_line = f"{filename} {timestamp} " + " ".join(map(str, sensor_values)) + "\n" + # Schreiben in die Datei + with open(file_path, 'a') as file: + file.write(output_line) # ========================================================================================================================================================= @@ -678,7 +715,7 @@ def send_mqtt_messages(self, mqtt_client, typtopic, sensortopic, subtopics, valu # Senden jeder Nachricht for subtopic, value in zip(subtopics, values): - topic = f"{base_topic}/{typtopic}/{sensortopic}/{subtopic}" + topic = f"{base_topic}/{typtopic}" + (f"/{sensortopic}" if sensortopic else "") + f"/{subtopic}" mqtt_client.publish(topic, value) print("MQTT send successful", topic, value) diff --git a/bottleFramework/README.md b/bottleFramework/README.md new file mode 100644 index 0000000..bd0a5f4 --- /dev/null +++ b/bottleFramework/README.md @@ -0,0 +1,22 @@ +# BottleFramework + +Das sog. bottleFramework stellt einen Webservice zur Verfügung, der es erlaubt, durch aufrufen bestimmter Webadressen Funktionen auszulösen. + +Im CaravanPi wird das BottleFramework genutzt um Konfigurationsarbeiten anzustoßen + +## Definierte Websites + +### http://:8089/ConfigSite/positionCalibration + + cmdstring = 'python3 /home/pi/CaravanPi/position/setupPositionDefaults.py'; + + +### http://:8089/ConfigSite/gasScaleCalibration": + cmdstring = 'python3 /home/pi/CaravanPi/gas-weight/setupGasscaleDefaults.py'; + +### http://:8089/ConfigSite/LEDtest": + pid = CaravanPiFunctions.process_running("position2file.py") + +### http://:8089/ConfigSite/MMtest": + +Anzeige einer Testnachricht auf dem MagicMirror diff --git a/circuit-board/Readme.md b/circuit-board/README.md similarity index 100% rename from circuit-board/Readme.md rename to circuit-board/README.md diff --git a/climate/README.md b/climate/README.md index 83b3eee..30ec385 100644 --- a/climate/README.md +++ b/climate/README.md @@ -1,10 +1,13 @@ # CaravanPi -System for measuring and displaying various values in caravans and motor homes, including climate values, filling levels and levelling data. Magic Mirror is used for presentation. +System zur Messung und Anzeige verschiedener Werte in Wohnwagen und Reisemobilen, u.a. Klimawerte, Füllstände und Niveaudaten. Magic Mirror wird für die Präsentation verwendet. # Climate sensors -I use the Bosch BME280 to determine the temperature, the air pressure and the pleasure humidity. The sensor determines these data reliably in the smallest space. I use two of these sensors. One monitors the interior of the caravan, one monitors the exterior. I am still looking for a suitable location for the sensor. +Ich verwende den Bosch BME280 zur Bestimmung der Temperatur, des Luftdrucks und der Luftfeuchtigkeit. Der Sensor ermittelt diese Daten zuverlässig auf kleinstem Raum. Ich verwende zwei dieser Sensoren. Einer überwacht den Innenraum des Wohnwagens, einer den Außenbereich. Dort habe ich ihn auf dem Dach, allerdings beschattet durch eine Antennenplattform, angebracht. ## I2C Bus Extender -The BME280 I use can be addressed via the I2C bus. Since I want to place the two sensors optimally in and on the caravan (e.g. far away from heat sources like Raspberry or refrigerator), I2C bus extenders are necessary. As cable I use a Cat6 cable. +Der von mir verwendete BME280 kann über den I2C-Bus angesprochen werden. Da ich die beiden Sensoren optimal im und am Wohnwagen platzieren möchte (z.B. weit weg von Wärmequellen wie Raspberry oder Kühlschrank), sind I2C Bus Extender notwendig. Als Kabel verwende ich ein Cat6 Kabel. + +# BME280 bzw. BME680 +Im Verzeichnis beispielskripte finden sich Skripte, die statt dem BME280 den BME680 verwenden, der neben den Werten des BME280 auch noch einen Luftqualitätswert ausgibt. diff --git a/climate/indoor-air-quality.py b/climate/beispiel-skripte/BME680-indoor-air-quality.py similarity index 100% rename from climate/indoor-air-quality.py rename to climate/beispiel-skripte/BME680-indoor-air-quality.py diff --git a/climate/bme280.py b/climate/beispiel-skripte/bme280.py similarity index 100% rename from climate/bme280.py rename to climate/beispiel-skripte/bme280.py diff --git a/climate/bme680-read-all.py b/climate/beispiel-skripte/bme680-read-all.py similarity index 100% rename from climate/bme680-read-all.py rename to climate/beispiel-skripte/bme680-read-all.py diff --git a/climate/climateAir2file.py b/climate/beispiel-skripte/climateBME6802file.py similarity index 100% rename from climate/climateAir2file.py rename to climate/beispiel-skripte/climateBME6802file.py diff --git a/climate/climate2file.py b/climate/climate2file.py index afc7af3..7c2b3f2 100644 --- a/climate/climate2file.py +++ b/climate/climate2file.py @@ -26,10 +26,14 @@ # Author : Josef Spitzlberger # Date : 21/08/2019 # +# Date: 02.01.2024 +# Verbesserung bei der Parameterverarbeitung +# Anpassung an neue zentrale Funktionen in der Class CaravanPiFiles +# Formatierung der Funktion #-------------------------------------- import smbus import time -import datetime +import argparse import sys from ctypes import c_short from ctypes import c_byte @@ -47,162 +51,178 @@ DEVICE = DEVICE1 # for compatibility reasons -bus = smbus.SMBus(1) # Rev 2 Pi, Pi 2 & Pi 3 uses bus 1 - # Rev 1 Pi uses bus 0 +bus = smbus.SMBus(1) # Rev 2 Pi, Pi 2 & Pi 3 uses bus 1 + # Rev 1 Pi uses bus 0 def getShort(data, index): - # return two bytes from data as a signed 16-bit value - return c_short((data[index+1] << 8) + data[index]).value + # return two bytes from data as a signed 16-bit value + return c_short((data[index+1] << 8) + data[index]).value def getUShort(data, index): - # return two bytes from data as an unsigned 16-bit value - return (data[index+1] << 8) + data[index] + # return two bytes from data as an unsigned 16-bit value + return (data[index+1] << 8) + data[index] def getChar(data,index): - # return one byte from data as a signed char - result = data[index] - if result > 127: - result -= 256 - return result + # return one byte from data as a signed char + result = data[index] + if result > 127: + result -= 256 + return result def getUChar(data,index): - # return one byte from data as an unsigned char - result = data[index] & 0xFF - return result + # return one byte from data as an unsigned char + result = data[index] & 0xFF + return result def readBME280ID(addr=DEVICE): - # Chip ID Register Address - REG_ID = 0xD0 - (chip_id, chip_version) = bus.read_i2c_block_data(addr, REG_ID, 2) - return (chip_id, chip_version) + # Chip ID Register Address + REG_ID = 0xD0 + try: + (chip_id, chip_version) = bus.read_i2c_block_data(addr, REG_ID, 2) + return (chip_id, chip_version) + except Exception as e: + print(f"Fehler beim Lesen von BME280 ID an Adresse {addr}: {e}") + return (None, None) def readBME280All(addr=DEVICE): - # Register Addresses - REG_DATA = 0xF7 - REG_CONTROL = 0xF4 - REG_CONFIG = 0xF5 - - REG_CONTROL_HUM = 0xF2 - REG_HUM_MSB = 0xFD - REG_HUM_LSB = 0xFE - - # Oversample setting - page 27 - OVERSAMPLE_TEMP = 2 - OVERSAMPLE_PRES = 2 - MODE = 1 - - # Oversample setting for humidity register - page 26 - OVERSAMPLE_HUM = 2 - bus.write_byte_data(addr, REG_CONTROL_HUM, OVERSAMPLE_HUM) - - control = OVERSAMPLE_TEMP<<5 | OVERSAMPLE_PRES<<2 | MODE - bus.write_byte_data(addr, REG_CONTROL, control) - - # Read blocks of calibration data from EEPROM - # See Page 22 data sheet - cal1 = bus.read_i2c_block_data(addr, 0x88, 24) - cal2 = bus.read_i2c_block_data(addr, 0xA1, 1) - cal3 = bus.read_i2c_block_data(addr, 0xE1, 7) - - # Convert byte data to word values - dig_T1 = getUShort(cal1, 0) - dig_T2 = getShort(cal1, 2) - dig_T3 = getShort(cal1, 4) - - dig_P1 = getUShort(cal1, 6) - dig_P2 = getShort(cal1, 8) - dig_P3 = getShort(cal1, 10) - dig_P4 = getShort(cal1, 12) - dig_P5 = getShort(cal1, 14) - dig_P6 = getShort(cal1, 16) - dig_P7 = getShort(cal1, 18) - dig_P8 = getShort(cal1, 20) - dig_P9 = getShort(cal1, 22) - - dig_H1 = getUChar(cal2, 0) - dig_H2 = getShort(cal3, 0) - dig_H3 = getUChar(cal3, 2) - - dig_H4 = getChar(cal3, 3) - dig_H4 = (dig_H4 << 24) >> 20 - dig_H4 = dig_H4 | (getChar(cal3, 4) & 0x0F) - - dig_H5 = getChar(cal3, 5) - dig_H5 = (dig_H5 << 24) >> 20 - dig_H5 = dig_H5 | (getUChar(cal3, 4) >> 4 & 0x0F) - - dig_H6 = getChar(cal3, 6) - - # Wait in ms (Datasheet Appendix B: Measurement time and current calculation) - wait_time = 1.25 + (2.3 * OVERSAMPLE_TEMP) + ((2.3 * OVERSAMPLE_PRES) + 0.575) + ((2.3 * OVERSAMPLE_HUM)+0.575) - time.sleep(wait_time/1000) # Wait the required time - - # Read temperature/pressure/humidity - data = bus.read_i2c_block_data(addr, REG_DATA, 8) - pres_raw = (data[0] << 12) | (data[1] << 4) | (data[2] >> 4) - temp_raw = (data[3] << 12) | (data[4] << 4) | (data[5] >> 4) - hum_raw = (data[6] << 8) | data[7] - - #Refine temperature - var1 = ((((temp_raw>>3)-(dig_T1<<1)))*(dig_T2)) >> 11 - var2 = (((((temp_raw>>4) - (dig_T1)) * ((temp_raw>>4) - (dig_T1))) >> 12) * (dig_T3)) >> 14 - t_fine = var1+var2 - temperature = float(((t_fine * 5) + 128) >> 8); - - # Refine pressure and adjust for temperature - var1 = t_fine / 2.0 - 64000.0 - var2 = var1 * var1 * dig_P6 / 32768.0 - var2 = var2 + var1 * dig_P5 * 2.0 - var2 = var2 / 4.0 + dig_P4 * 65536.0 - var1 = (dig_P3 * var1 * var1 / 524288.0 + dig_P2 * var1) / 524288.0 - var1 = (1.0 + var1 / 32768.0) * dig_P1 - if var1 == 0: - pressure=0 - else: - pressure = 1048576.0 - pres_raw - pressure = ((pressure - var2 / 4096.0) * 6250.0) / var1 - var1 = dig_P9 * pressure * pressure / 2147483648.0 - var2 = pressure * dig_P8 / 32768.0 - pressure = pressure + (var1 + var2 + dig_P7) / 16.0 - - # Refine humidity - humidity = t_fine - 76800.0 - humidity = (hum_raw - (dig_H4 * 64.0 + dig_H5 / 16384.0 * humidity)) * (dig_H2 / 65536.0 * (1.0 + dig_H6 / 67108864.0 * humidity * (1.0 + dig_H3 / 67108864.0 * humidity))) - humidity = humidity * (1.0 - dig_H1 * humidity / 524288.0) - if humidity > 100: - humidity = 100 - elif humidity < 0: - humidity = 0 - - return temperature/100.0,pressure/100.0,humidity - + # Register Addresses + REG_DATA = 0xF7 + REG_CONTROL = 0xF4 + REG_CONFIG = 0xF5 + + REG_CONTROL_HUM = 0xF2 + REG_HUM_MSB = 0xFD + REG_HUM_LSB = 0xFE + + # Oversample setting - page 27 + OVERSAMPLE_TEMP = 2 + OVERSAMPLE_PRES = 2 + MODE = 1 + + try: + # Oversample setting for humidity register - page 26 + OVERSAMPLE_HUM = 2 + bus.write_byte_data(addr, REG_CONTROL_HUM, OVERSAMPLE_HUM) + + control = OVERSAMPLE_TEMP<<5 | OVERSAMPLE_PRES<<2 | MODE + bus.write_byte_data(addr, REG_CONTROL, control) + + # Read blocks of calibration data from EEPROM + # See Page 22 data sheet + cal1 = bus.read_i2c_block_data(addr, 0x88, 24) + cal2 = bus.read_i2c_block_data(addr, 0xA1, 1) + cal3 = bus.read_i2c_block_data(addr, 0xE1, 7) + + # Convert byte data to word values + dig_T1 = getUShort(cal1, 0) + dig_T2 = getShort(cal1, 2) + dig_T3 = getShort(cal1, 4) + + dig_P1 = getUShort(cal1, 6) + dig_P2 = getShort(cal1, 8) + dig_P3 = getShort(cal1, 10) + dig_P4 = getShort(cal1, 12) + dig_P5 = getShort(cal1, 14) + dig_P6 = getShort(cal1, 16) + dig_P7 = getShort(cal1, 18) + dig_P8 = getShort(cal1, 20) + dig_P9 = getShort(cal1, 22) + + dig_H1 = getUChar(cal2, 0) + dig_H2 = getShort(cal3, 0) + dig_H3 = getUChar(cal3, 2) + + dig_H4 = getChar(cal3, 3) + dig_H4 = (dig_H4 << 24) >> 20 + dig_H4 = dig_H4 | (getChar(cal3, 4) & 0x0F) + + dig_H5 = getChar(cal3, 5) + dig_H5 = (dig_H5 << 24) >> 20 + dig_H5 = dig_H5 | (getUChar(cal3, 4) >> 4 & 0x0F) + + dig_H6 = getChar(cal3, 6) + + # Wait in ms (Datasheet Appendix B: Measurement time and current calculation) + wait_time = 1.25 + (2.3 * OVERSAMPLE_TEMP) + ((2.3 * OVERSAMPLE_PRES) + 0.575) + ((2.3 * OVERSAMPLE_HUM)+0.575) + time.sleep(wait_time/1000) # Wait the required time + + # Read temperature/pressure/humidity + data = bus.read_i2c_block_data(addr, REG_DATA, 8) + pres_raw = (data[0] << 12) | (data[1] << 4) | (data[2] >> 4) + temp_raw = (data[3] << 12) | (data[4] << 4) | (data[5] >> 4) + hum_raw = (data[6] << 8) | data[7] + + #Refine temperature + var1 = ((((temp_raw>>3)-(dig_T1<<1)))*(dig_T2)) >> 11 + var2 = (((((temp_raw>>4) - (dig_T1)) * ((temp_raw>>4) - (dig_T1))) >> 12) * (dig_T3)) >> 14 + t_fine = var1+var2 + temperature = float(((t_fine * 5) + 128) >> 8); + + # Refine pressure and adjust for temperature + var1 = t_fine / 2.0 - 64000.0 + var2 = var1 * var1 * dig_P6 / 32768.0 + var2 = var2 + var1 * dig_P5 * 2.0 + var2 = var2 / 4.0 + dig_P4 * 65536.0 + var1 = (dig_P3 * var1 * var1 / 524288.0 + dig_P2 * var1) / 524288.0 + var1 = (1.0 + var1 / 32768.0) * dig_P1 + if var1 == 0: + pressure=0 + else: + pressure = 1048576.0 - pres_raw + pressure = ((pressure - var2 / 4096.0) * 6250.0) / var1 + var1 = dig_P9 * pressure * pressure / 2147483648.0 + var2 = pressure * dig_P8 / 32768.0 + pressure = pressure + (var1 + var2 + dig_P7) / 16.0 + + # Refine humidity + humidity = t_fine - 76800.0 + humidity = (hum_raw - (dig_H4 * 64.0 + dig_H5 / 16384.0 * humidity)) * (dig_H2 / 65536.0 * (1.0 + dig_H6 / 67108864.0 * humidity * (1.0 + dig_H3 / 67108864.0 * humidity))) + humidity = humidity * (1.0 - dig_H1 * humidity / 524288.0) + if humidity > 100: + humidity = 100 + elif humidity < 0: + humidity = 0 + + return temperature/100.0,pressure/100.0,humidity + except Exception as e: + print(f"Fehler beim Lesen von BME280 all: {e}") + return None, None, None def main(): - global DEVICE, DEVICE1, DEVICE2 - if len(sys.argv) == 1: # keine weiteren Argumente -> address = 0x76 und schreiben in ein File - DEVICE = DEVICE1 - chip_id, chip_version = readBME280ID(DEVICE) - temperature,pressure,humidity = readBME280All(DEVICE) - write2file(chip_id, DEVICE, temperature, pressure, humidity) - elif len(sys.argv) == 2 or len(sys.argv) == 3: # address gemaess Parameter - if sys.argv[1] == "76": - DEVICE = DEVICE1 - elif sys.argv[1] == "77": - DEVICE = DEVICE2 - chip_id, chip_version = readBME280ID(DEVICE) - temperature,pressure,humidity = readBME280All(DEVICE) - if len(sys.argv) == 3 and sys.argv[2] == "0": - print ("Chip ID :", chip_id) - print ("Version :", chip_version) - print ("Temperature : ", temperature, "C") - print ("Pressure : ", pressure, "hPa") - print ("Humidity : ", humidity, "%") - else: - # Erstellen einer Instanz der CaravanPi Library - cplib = CaravanPiFiles() - cplib.climateWrite(chip_id, DEVICE, temperature, pressure, humidity) - else: - print('Invalid arguments. Script will be terminated.') + global DEVICE + + # ArgumentParser-Objekt erstellen + parser = argparse.ArgumentParser(description='Lesen des Klimasensors und Verarbeiten der Sensorwerte') + parser.add_argument('-i', '--i2c', type=str, choices=['76', '77'], default='76', + help='I2C Bus Adresse (76 or 77)') + parser.add_argument('-f', '--file', action='store_true', + help='schreiben in ein File - obsoloet durch globale xml Konfiguration') + parser.add_argument('-s', '--screen', action='store_true', + help='ausgeben am Bildschirm') + + # Argumente parsen + args = parser.parse_args() + + # DEVICE entsprechend des Arguments setzen + if args.i2c == '76': + DEVICE = DEVICE1 + elif args.i2c == '77': + DEVICE = DEVICE2 + + # Sensordaten lesen + chip_id, chip_version = readBME280ID(DEVICE) + temperature, pressure, humidity = readBME280All(DEVICE) + + # Sensorwerte verarbeiten + # Erstellen einer Instanz der CaravanPi Library + cplib = CaravanPiFiles() + cplib.handle_sensor_values( + args.screen, # Anzeige am Bildschirm? + "klimasensor", # sensor_name = Datenbankname + "BME280-" + str(chip_id) + str(DEVICE), # sensor_id = Filename und Spalte in der Datenbank + ["temperatur", "luftdruck", "luftfeuchtigkeit"], # Liste Spaltennamen + (temperature, pressure, humidity) # Tupel Sensorwerte + ) if __name__=="__main__": - main() + main() diff --git a/defaults/adjustmentPosition b/defaults/adjustmentPosition deleted file mode 100644 index 2f53bb4..0000000 --- a/defaults/adjustmentPosition +++ /dev/null @@ -1,10 +0,0 @@ -0.000000 -0.784532 -9.257478 -0.200000 -0.200000 -0.250000 -0.250000 -140 -10 -20 \ No newline at end of file diff --git a/defaults/caravanpiConfig.xml b/defaults/caravanpiConfig.xml new file mode 100644 index 0000000..e7adf91 --- /dev/null +++ b/defaults/caravanpiConfig.xml @@ -0,0 +1,70 @@ + + + 1 + 1 + 1 + 1 + 1 + localhost + caravanpi + fd3eMLnnO3E7MFXphAUGusLM21vF0TwvJO9uvjvd + CaravanPiValues + fbaaeb99.ala.us-east-1.emqxsl.com + 8883 + NodeRED-MQTT + 2yDxhXpAYVmhZY4VePLQYhu7hjLFFcnfkfNsRfLE + + + 0.000000 + 0.784532 + 9.257478 + 0.200000 + 0.200000 + 0.250000 + 0.250000 + 140 + 10 + 20 + + + 7800 + 2300 + 6200 + + + 3800 + 6000 + 23 + 24 + A + -219.123529412 + + + 0 + 8000 + 16 + 12 + A + 54.266798419 + + + 10 + 20 + 30 + 40 + + + 8 + 11 + 15 + 17 + + + 12.0 + 12.15 + 12.3 + + + -2 + + \ No newline at end of file diff --git a/defaults/caravanpiDefaults b/defaults/caravanpiDefaults deleted file mode 100644 index e42a390..0000000 --- a/defaults/caravanpiDefaults +++ /dev/null @@ -1,4 +0,0 @@ -Anzahl Waagen -1 -Anzahl Tanks -1 diff --git a/defaults/dimensionsCaravan b/defaults/dimensionsCaravan deleted file mode 100644 index 80b29ae..0000000 --- a/defaults/dimensionsCaravan +++ /dev/null @@ -1,3 +0,0 @@ -7800 -2300 -6200 \ No newline at end of file diff --git a/defaults/gasScaleDefaults1 b/defaults/gasScaleDefaults1 deleted file mode 100644 index 5ca6b11..0000000 --- a/defaults/gasScaleDefaults1 +++ /dev/null @@ -1,6 +0,0 @@ -3800 -6000 -23 -24 -A --219.123529412 diff --git a/defaults/gasScaleDefaults2 b/defaults/gasScaleDefaults2 deleted file mode 100644 index a672ca5..0000000 --- a/defaults/gasScaleDefaults2 +++ /dev/null @@ -1,6 +0,0 @@ -0 -8000 -16 -12 -A -54.266798419 diff --git a/defaults/tankDefaults1 b/defaults/tankDefaults1 deleted file mode 100644 index 19f2acb..0000000 --- a/defaults/tankDefaults1 +++ /dev/null @@ -1,4 +0,0 @@ -10 -20 -30 -40 \ No newline at end of file diff --git a/defaults/tankDefaults2 b/defaults/tankDefaults2 deleted file mode 100644 index 79e9abc..0000000 --- a/defaults/tankDefaults2 +++ /dev/null @@ -1,4 +0,0 @@ -8 -11 -15 -17 \ No newline at end of file diff --git a/defaults/testColor b/defaults/testColor deleted file mode 100644 index 0605667..0000000 --- a/defaults/testColor +++ /dev/null @@ -1 +0,0 @@ --2 \ No newline at end of file diff --git a/defaults/voltageDefaults b/defaults/voltageDefaults deleted file mode 100644 index 9228bfd..0000000 --- a/defaults/voltageDefaults +++ /dev/null @@ -1,3 +0,0 @@ -12.0 -12.15 -12.3 \ No newline at end of file diff --git a/raspberryPi/systemStat2file.py b/raspberryPi/systemStat2file.py deleted file mode 100644 index 7fea8b6..0000000 --- a/raspberryPi/systemStat2file.py +++ /dev/null @@ -1,136 +0,0 @@ -#!/usr/bin/python3 -# coding=utf-8 -# systemStat2file.py -# -# zyklische Abfrage einiger Systemwerte -# Intervall 5 Minuten (oder laut Parameter) -# Bei CPU Temperaturen über 75°C wird das Intervall auf 30 Sekunden verkürzt -# -# Aufruf-Parameter -# systemStat2file.py -f -# -h display guide -# -f write values to file -# -s display values on screen -# -# erzeugt mit Hilfe von ChatGPT 4 -#------------------------------------------------------------------------------- - -import os -import time -import sys -import argparse -import subprocess - -def get_cpu_temperature(): - with open("/sys/class/thermal/thermal_zone0/temp", "r") as file: - temp = float(file.read()) / 1000 - return temp - -def get_gpu_temperature(): - try: - gpu_temp_output = subprocess.check_output(['/usr/bin/vcgencmd', 'measure_temp']).decode() - gpu_temp = float(gpu_temp_output.split('=')[1].split("'")[0]) - return gpu_temp - except Exception as e: - print(f"Fehler beim Auslesen der GPU-Temperatur: {e}") - return None - -def get_cpu_usage(): - with open('/proc/stat', 'r') as f: - lines = f.readlines() - cpu_times = lines[0].split()[1:5] - cpu_times = list(map(int, cpu_times)) - idle_time = cpu_times[3] - total_time = sum(cpu_times) - - time.sleep(1) - - with open('/proc/stat', 'r') as f: - lines = f.readlines() - cpu_times_2 = lines[0].split()[1:5] - cpu_times_2 = list(map(int, cpu_times_2)) - idle_time_2 = cpu_times_2[3] - total_time_2 = sum(cpu_times_2) - - idle_delta = idle_time_2 - idle_time - total_delta = total_time_2 - total_time - - cpu_usage = 100.0 * (1 - idle_delta / total_delta) - return cpu_usage - -def get_ram_usage(): - with open("/proc/meminfo", "r") as f: - lines = f.readlines() - total_memory = int(lines[0].split()[1]) - free_memory = int(lines[1].split()[1]) - used_memory = total_memory - free_memory - return (used_memory / total_memory) * 100 - -def get_disk_usage(): - disk_usage = os.popen("df -h | awk '$NF==\"/\"{print $(NF-1)}'").readline().strip() - return disk_usage - -def get_network_traffic(interface='eth0'): - net_stats = os.popen(f"cat /sys/class/net/{interface}/statistics/rx_bytes").readline().strip() - net_stats_mb = int(net_stats) / (1024 ** 2) - return net_stats_mb - -def get_process_count(): - process_count = os.popen("ps -e | wc -l").readline().strip() - return process_count - -def get_system_uptime(): - with open("/proc/uptime", "r") as f: - uptime_seconds = float(f.readline().split()[0]) - return uptime_seconds - -def main(): - parser = argparse.ArgumentParser(description='Systemstatistiken überwachen') - parser.add_argument('-i', '--interval', type=int, default=300, - help='Intervall in Sekunden für regelmäßige Abfragen (Standard: 300 Sekunden)') - parser.add_argument('-s', '--screen', action='store_true', - help='Aktiviert die Ausgabe auf dem Bildschirm') - parser.add_argument('-f', '--file', action='store_true', - help='(Abwärtskompatibilität) Keine Funktion') - - args = parser.parse_args() - - normal_interval = args.interval - high_temp_interval = 30 # Abfrageintervall bei hoher Temperatur: 30 Sekunden - interval = normal_interval - - try: - while True: - cpu_temp = get_cpu_temperature() - gpu_temp = get_gpu_temperature() - cpu_usage = get_cpu_usage() - ram_usage = get_ram_usage() - disk_usage = get_disk_usage() - net_traffic = get_network_traffic() - process_count = get_process_count() - system_uptime = get_system_uptime() - - if args.screen: - print(f"CPU-Temperatur: {cpu_temp:.2f}°C") - print(f"GPU-Temperatur: {gpu_temp:.2f}°C") - print(f"CPU-Auslastung: {cpu_usage:.2f}%") - print(f"RAM-Auslastung: {ram_usage:.2f}%") - print(f"Speicherplatz: {disk_usage}") - print(f"Netzwerkauslastung: {net_traffic:.2f} MB") - print(f"Anzahl laufender Prozesse: {process_count}") - print(f"Systemlaufzeit: {system_uptime:.2f} Sekunden") - - # Anpassung des Intervalls basierend auf der CPU-Temperatur - if cpu_temp > 75 and interval != high_temp_interval: - interval = high_temp_interval - elif cpu_temp <= 75 and interval != normal_interval: - interval = normal_interval - - time.sleep(interval) - except KeyboardInterrupt: - if args.screen: - print("\nProgramm wurde durch Benutzer unterbrochen. Beende...") - sys.exit(0) - -if __name__ == "__main__": - main() diff --git a/raspberrypi/systemstat2file.py b/raspberrypi/systemstat2file.py new file mode 100644 index 0000000..871d07d --- /dev/null +++ b/raspberrypi/systemstat2file.py @@ -0,0 +1,148 @@ +#!/usr/bin/python3 +# coding=utf-8 +# systemStat2file.py +# +# zyklische Abfrage einiger Systemwerte +# Intervall 5 Minuten (oder laut Parameter) +# Bei CPU Temperaturen über 75°C wird das Intervall auf 30 Sekunden verkürzt +# +# Aufruf-Parameter +# systemStat2file.py -f +# -h display guide +# -f write values to file +# -s display values on screen +# -i Intervall Abfrageintervall in Sekunden default = 300 +# +# erzeugt mit Hilfe von ChatGPT 4 +#------------------------------------------------------------------------------- + +import os +import time +import sys +import argparse +import psutil +import subprocess + + +# ----------------------------------------------- +# CaravanPi File/MARIADB/MQTT library einbinden +# ----------------------------------------------- +sys.path.append('/home/pi/CaravanPi/.lib') +from CaravanPiFilesClass import CaravanPiFiles + + +def get_cpu_temperature(): + # CPU-Temperatur lesen (Raspberry Pi spezifisch) + try: + temp = psutil.sensors_temperatures().get('cpu_thermal', [])[0].current + return temp + except Exception as e: + print(f"Fehler beim Auslesen der CPU-Temperatur: {e}") + return None + +def get_gpu_temperature(): + try: + gpu_temp_output = subprocess.check_output(['/usr/bin/vcgencmd', 'measure_temp']).decode() + gpu_temp = float(gpu_temp_output.split('=')[1].split("'")[0]) + return gpu_temp + except Exception as e: + print(f"Fehler beim Auslesen der GPU-Temperatur: {e}") + return None + +def get_cpu_usage(): + try: + return psutil.cpu_percent(interval=1) + except Exception as e: + print(f"Fehler beim Auslesen der CPU-Auslastung: {e}") + return None + +def get_ram_usage(): + try: + return psutil.virtual_memory().percent + except Exception as e: + print(f"Fehler beim Auslesen der RAM-Auslastung: {e}") + return None + +def get_disk_usage(): + try: + return psutil.disk_usage('/').percent + except Exception as e: + print(f"Fehler beim Auslesen der Festplatten-Auslastung: {e}") + return None + +def get_network_traffic(interface='eth0'): + try: + net_io = psutil.net_io_counters(pernic=True) + traffic = net_io.get(interface, None) + if traffic: + return traffic.bytes_recv / (1024 ** 2) + else: + return 0 + except Exception as e: + print(f"Fehler beim Auslesen des Netzwerkverkehrs: {e}") + return None + +def get_process_count(): + try: + return len(psutil.pids()) + except Exception as e: + print(f"Fehler beim Auslesen der Prozessanzahl: {e}") + return None + +def get_system_uptime(): + try: + return time.time() - psutil.boot_time() + except Exception as e: + print(f"Fehler beim Auslesen der System-Uptime: {e}") + return None + +def main(): + parser = argparse.ArgumentParser(description='Systemstatistiken überwachen') + parser.add_argument('-i', '--interval', type=int, default=300, + help='Intervall in Sekunden für regelmäßige Abfragen (Standard: 300 Sekunden)') + parser.add_argument('-f', '--file', action='store_true', + help='Ausgabe in ein File - obsoloet durch globale xml Konfiguration') + parser.add_argument('-s', '--screen', action='store_true', + help='Ausgabe am Bildschirm') + + args = parser.parse_args() + + normal_interval = args.interval + high_temp_interval = 30 # Abfrageintervall bei hoher Temperatur: 30 Sekunden + interval = normal_interval + + try: + while True: + cpu_temp = get_cpu_temperature() + gpu_temp = get_gpu_temperature() + cpu_usage = get_cpu_usage() + ram_usage = get_ram_usage() + disk_usage = get_disk_usage() + net_traffic = get_network_traffic() + process_count = get_process_count() + system_uptime = get_system_uptime() + + # Erstellen einer Instanz der CaravanPi Library + cplib = CaravanPiFiles() + cplib.handle_sensor_values( + args.screen, # Anzeige am Bildschirm? + "raspberrypi", # sensor_name = Datenbankname + "raspberrypi", # sensor_id = Filename und Spalte in der Datenbank + ["cpu_temp", "gpu_temp", "cpu_usage", "ram_usage", "disk_usage", "net_traffic", "process_count"], # Liste Spaltennamen + (cpu_temp, gpu_temp, cpu_usage, ram_usage, disk_usage, net_traffic, process_count) # Tupel Sensorwerte + ) + + # Anpassung des Intervalls basierend auf der CPU-Temperatur + if cpu_temp > 75 and interval != high_temp_interval: + interval = high_temp_interval + elif cpu_temp <= 75 and interval != normal_interval: + interval = normal_interval + + time.sleep(interval) + except KeyboardInterrupt: + if args.screen: + print("\nProgramm wurde durch Benutzer unterbrochen. Beende...") + sys.exit(0) + +if __name__ == "__main__": + main() From c050937d153a35ef476f88238e87a98bc480220e Mon Sep 17 00:00:00 2001 From: upgrade_script Date: Tue, 2 Jan 2024 17:22:44 +0100 Subject: [PATCH 05/15] =?UTF-8?q?Fehlerzust=C3=A4nde?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Fehlerzustände werden nun mit ERROR oder WARNING deutlich in den Bildschirmausgaben bzw. Logdaten Einträgen markiert --- .lib/CaravanPiFilesClass.py | 10 +++++----- CHANGELOG.md | 10 +++++++++- climate/climate2file.py | 4 ++-- raspberrypi/systemstat2file.py | 18 +++++++++--------- 4 files changed, 25 insertions(+), 17 deletions(-) diff --git a/.lib/CaravanPiFilesClass.py b/.lib/CaravanPiFilesClass.py index 3a21bb2..98580ac 100644 --- a/.lib/CaravanPiFilesClass.py +++ b/.lib/CaravanPiFilesClass.py @@ -187,7 +187,7 @@ def readCaravanPiDefaults(self): try: mqtt_port = int(mqtt_port) if mqtt_port is not None else None except ValueError: - print("MQTTport konnte nicht in eine Ganzzahl umgewandelt werden.") + print("ERROR - MQTTport konnte nicht in eine Ganzzahl umgewandelt werden.") mqtt_port = None return ( @@ -568,7 +568,7 @@ def handle_sensor_values(self, toScreen, sensor_name, sensor_id, value_identifie return 0 except Error as e: # Fehler - print ("Die Sensordaten konnten nicht geschrieben/gesendet werden: Fehler: '{e}'") + print ("ERROR - Die Sensordaten konnten nicht geschrieben/gesendet werden: Fehler: '{e}'") return -1 @@ -624,7 +624,7 @@ def create_db_connection(self): ) print("MariaDB connection successful") except Error as e: - print(f"MariaDB - The error '{e}' occurred") + print(f"ERROR - MariaDB - Fehler aufgetreten: '{e}'") return connection @@ -640,7 +640,7 @@ def execute_query(self, connection, query, data): connection.commit() print("Query successful") except Error as e: - print(f"The error '{e}' occurred") + print(f"ERROR - MariaDB - Fehler aufgetreten: '{e}'") # --------------------------------------------------------------------------------------------- # insert_into_table @@ -696,7 +696,7 @@ def create_mqtt_connection(self): print("MQTT connection successful") except Error as e: - print(f"MQTT - The error '{e}' occurred") + print(f"ERROR - MQTT - Fehler aufgetreten: '{e}'") return client diff --git a/CHANGELOG.md b/CHANGELOG.md index 5fa1bc8..dc22c5d 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -6,7 +6,7 @@ In dieser Datei werde ich alle relevanten Änderungen am CaravanPi dokumentieren --- -## v2.0 Einführung MariaDB, Grafana, neues Backup, Configs per xml (noch in Arbeit) +## v2.0 Einführung MariaDB, Grafana, neues Backup, Configs per xml (noch in Arbeit - development branch) - **Konfiguration per xml Datei** Bisher wurden für die Konfiguration der CaravnaPi Skripte Testdateien verwendet. Diese enthielten nur die Werte, nicht aber die Felderklärungen. Das machte das Lesen der Konfigurationsdateien praktisch unmöglich. Nun wurden diese Textdateien durch eine xml Datei ersetzt, in der alle Konfigurationen enthalten sind. Die xml Datei ist besser lesbar (Optimierung noch ausstehend, dass die xml datei mit Zeilenumbrüchen geschrieben wird). @@ -18,8 +18,16 @@ In dieser Datei werde ich alle relevanten Änderungen am CaravanPi dokumentieren Noch offen: Dokumentation der Sicherung der MariaDB - **Einführung einer Datenbank zur Speicherung der Sensorwerte** + Die Sensorwerte können nun nicht nur in Files abgelegt werden, sondern auch in einer MariaDB. Die Zugangsdaten zur MariaDB werden in der XML abgelgt. Der Connect und die Schreibvorgänge in die Datenbank übernehmen zentrale Funktionen in der CaravanPiFiles Class. + +- **Einführung des Sendes der Sensorwerte per MQTT** + Die Sensorwerte können nun per MQTT Messages versandt werden. Im Moment ist die Ansteuerung eines Cloud MQTT Servers vorgesehen, der für den Login User und passwort benötigt und ein Login mit TLS ohne Clientzertifikate erlaubt. Dies sind z.B. die Cloud MQTT Broker von EMQX und HiveMQ, die beide kostenfreie Accounts anbieten. Den Connect und die Sendevorgänge an den Broker übernehmen zentrale Funktionen in der CaravanPiFiles Class. + +- **allgemeine Bereinigung und Härtung der vorhandenen Funktionen** + Alle vorhandenen Skripte zur Ermittlung der Sensorwerte wurden überprüft, optimiert und insbesondere gehärtet, so dass Fehlersituationen in den Skripten abgefangen und behandelt werden, ohne die Funktionen zum Absturz zu bekommen. Das regelmäßige überprüfen der Log-Daten auf Fehlerzustände ist daher wichtiger geworden. Alle Fehlerzustände werden mit einem einleitenden ERROR kenntlicher gemacht. - **Einführung von Grafana zur Darstellung der Sensorwerte als Verlauf** + Neben der Datenbank MariaDB und der Datenbank-Managementsoftware phpmyadmin kommt nun Grafana zur grafischen Darstellung der Sensorwerte und deren Verlauf zum Einsatz. - **Überwachung der Landstrom-Versorgung und der Bordbatterie-Versorgung** diff --git a/climate/climate2file.py b/climate/climate2file.py index 7c2b3f2..68e8345 100644 --- a/climate/climate2file.py +++ b/climate/climate2file.py @@ -81,7 +81,7 @@ def readBME280ID(addr=DEVICE): (chip_id, chip_version) = bus.read_i2c_block_data(addr, REG_ID, 2) return (chip_id, chip_version) except Exception as e: - print(f"Fehler beim Lesen von BME280 ID an Adresse {addr}: {e}") + print(f"ERROR - Fehler beim Lesen von BME280 ID an Adresse {addr}: {e}") return (None, None) def readBME280All(addr=DEVICE): @@ -185,7 +185,7 @@ def readBME280All(addr=DEVICE): return temperature/100.0,pressure/100.0,humidity except Exception as e: - print(f"Fehler beim Lesen von BME280 all: {e}") + print(f"ERROR - Fehler beim Lesen von BME280 all: {e}") return None, None, None def main(): diff --git a/raspberrypi/systemstat2file.py b/raspberrypi/systemstat2file.py index 871d07d..ba6405b 100644 --- a/raspberrypi/systemstat2file.py +++ b/raspberrypi/systemstat2file.py @@ -37,7 +37,7 @@ def get_cpu_temperature(): temp = psutil.sensors_temperatures().get('cpu_thermal', [])[0].current return temp except Exception as e: - print(f"Fehler beim Auslesen der CPU-Temperatur: {e}") + print(f"Error - Fehler beim Auslesen der CPU-Temperatur: {e}") return None def get_gpu_temperature(): @@ -46,28 +46,28 @@ def get_gpu_temperature(): gpu_temp = float(gpu_temp_output.split('=')[1].split("'")[0]) return gpu_temp except Exception as e: - print(f"Fehler beim Auslesen der GPU-Temperatur: {e}") + print(f"Error - Fehler beim Auslesen der GPU-Temperatur: {e}") return None def get_cpu_usage(): try: return psutil.cpu_percent(interval=1) except Exception as e: - print(f"Fehler beim Auslesen der CPU-Auslastung: {e}") + print(f"Error - Fehler beim Auslesen der CPU-Auslastung: {e}") return None def get_ram_usage(): try: return psutil.virtual_memory().percent except Exception as e: - print(f"Fehler beim Auslesen der RAM-Auslastung: {e}") + print(f"Error - Fehler beim Auslesen der RAM-Auslastung: {e}") return None def get_disk_usage(): try: return psutil.disk_usage('/').percent except Exception as e: - print(f"Fehler beim Auslesen der Festplatten-Auslastung: {e}") + print(f"Error - Fehler beim Auslesen der Festplatten-Auslastung: {e}") return None def get_network_traffic(interface='eth0'): @@ -79,21 +79,21 @@ def get_network_traffic(interface='eth0'): else: return 0 except Exception as e: - print(f"Fehler beim Auslesen des Netzwerkverkehrs: {e}") + print(f"Error - Fehler beim Auslesen des Netzwerkverkehrs: {e}") return None def get_process_count(): try: return len(psutil.pids()) except Exception as e: - print(f"Fehler beim Auslesen der Prozessanzahl: {e}") + print(f"Error - Fehler beim Auslesen der Prozessanzahl: {e}") return None def get_system_uptime(): try: return time.time() - psutil.boot_time() except Exception as e: - print(f"Fehler beim Auslesen der System-Uptime: {e}") + print(f"Error - Fehler beim Auslesen der System-Uptime: {e}") return None def main(): @@ -141,7 +141,7 @@ def main(): time.sleep(interval) except KeyboardInterrupt: if args.screen: - print("\nProgramm wurde durch Benutzer unterbrochen. Beende...") + print("\nWARNING - Programm wurde durch Benutzer unterbrochen. Beende...") sys.exit(0) if __name__ == "__main__": From 2753ba4c286c600293cae3181b4976584ee0810d Mon Sep 17 00:00:00 2001 From: upgrade_script Date: Tue, 2 Jan 2024 18:01:49 +0100 Subject: [PATCH 06/15] =?UTF-8?q?dokumentstion=20erg=C3=A4nzt?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .gitignore | 3 ++ defaults/README.md | 93 ++++++++++++++++++++++++------------ defaults/caravanpiConfig.xml | 6 +-- 3 files changed, 69 insertions(+), 33 deletions(-) diff --git a/.gitignore b/.gitignore index 7a0c795..cf97899 100644 --- a/.gitignore +++ b/.gitignore @@ -3,6 +3,9 @@ # ignoriere logrotate Steuerung logrotate.status +# ignoriere .git-sensible-backup +.git-sensible-backup + # ignoriere fremde libraries .lib/__pycache__ .lib/__pycache__/* diff --git a/defaults/README.md b/defaults/README.md index d92e9ca..e905f18 100644 --- a/defaults/README.md +++ b/defaults/README.md @@ -1,34 +1,42 @@ # CaravanPi -System for measuring and displaying various values in caravans and motor homes, including climate values, filling levels and levelling data. Magic Mirror is used for presentation. - -# defaults - -A whole series of sensors must be adjusted before use. It is therefore almost impossible to mount the 3-axis position sensor absolutely horizontally. The compensation values are stored in files in this directory. In addition, values such as the empty weight of the gas cylinder are stored in this directory. - -## Correction values position sensor (adjustmentPosition) - -- adjustment X - - X value, if caravan is in horizontal position -- adjustment Y - - Y value, if caravan is in horizontal position -- adjustment Z - - Z value, if caravan is in horizontal position -- tolerance X - - deviation in X direction, which is still considered horizontal -- tolerance Y - - deviation in Y direction, which is still considered horizontal -- approximation X - - at which deviation from the horizontal the LEDs should flash -- approximation Y - - at which deviation from the horizontal the LEDs should flash -- distance right - - distance of the sensor from the right side -- distance front - - distance of the sensor from the front side -- distance axis - - distance of the sensor from the axis in longitudinal direction +System zur Messung und Anzeige verschiedener Werte in Wohnwagen und Reisemobilen, u.a. Klimawerte, Füllstände und Niveaudaten. Magic Mirror wird für die Präsentation verwendet. + +# Konfigurationswerte + +Eine ganze Reihe von Sensoren muss vor dem Einsatz justiert werden. Es ist zum Beispiel fast unmöglich, den 3-Achsen-Positionssensor im Bezug zum Caravan absolut waagerecht zu montieren. Die Kompensationswerte werden in einer xml Datei in diesem Verzeichnis gespeichert. Außerdem werden in dieser xml Werte wie das Leergewicht der Gasflasche gespeichert, die Abmessungen des Wohnwagens und eine ganze Reihe von Konfigurationswerten für den CaravanPi an sich. + + +## allgemeine Konfiguration - caravanpiDefaults + +countGasScales + Anzahl Gasflaschenwaagen + +countTanks + Anzahl Tanks + +write2file + sind die Wertze Dateien im Verzeichnis values zu schreiben? 0 = nein, 1 = ja + +write2MariaDB + sollen die Werte in die Datenbank geschriebenwerden? 0 = nein, 1 = ja -## dimensions of the carvan or motor home (dimensions) +send2MQTT + sollen die Werte per MQTT versandt werden? 0 = nein, 1 = ja + +MariaDBhost +MariaDBuser +MariaDBpasswd +MariaDBdatabase + Anmeldeinformationen für die Datenbank + +MQTTbroker +MQTTport +MQTTuser +MQTTpassword + Anmeldeinformationenfür den MQTT Broker + + +## Abmessungen des Wohnwagens oder Wohnmobils - length over all - length of the caravan over all @@ -37,7 +45,7 @@ A whole series of sensors must be adjusted before use. It is therefore almost im - lenght body - legth of the body of the caravan without drawbar -## gas scale and gas cylinder (gasScaleDefaults1) +## Gaswaage und Gasflasche (gasScaleDefaults1) - tare - value from gas scale without a gas cylinder @@ -45,3 +53,28 @@ A whole series of sensors must be adjusted before use. It is therefore almost im - weight of the empty gas cylinder - full weight - weight of the full gas cylinder + +## Bedeutung einger Konfigurationswerte + +- adjustX + - X-Wert, wenn der Wohnwagen in horizontaler Position steht +- adjustY + - Y-Wert, wenn der Wohnwagen in horizontaler Position steht +- adjustZ + - Z-Wert, wenn der Wohnwagen in horizontaler Position steht +- toleranceX + - Abweichung in X-Richtung, die noch als horizontal angesehen wird +- toleranceY + - Abweichung in Y-Richtung, die noch als horizontal gilt +- approximationX + - bei welcher Abweichung von der Horizontalen sollen die LEDs blinken +- approximation Y + - bei welcher Abweichung von der Horizontalen die LEDs blinken sollen +- distRight + - Abstand des Sensors von der rechten Seite +- distFront + - Abstand des Sensors von der Frontseite +- distAxis + - Abstand des Sensors von der Achse in Längsrichtung + + diff --git a/defaults/caravanpiConfig.xml b/defaults/caravanpiConfig.xml index e7adf91..90be7e2 100644 --- a/defaults/caravanpiConfig.xml +++ b/defaults/caravanpiConfig.xml @@ -7,12 +7,12 @@ 1 localhost caravanpi - fd3eMLnnO3E7MFXphAUGusLM21vF0TwvJO9uvjvd + dasGeheimePasswort CaravanPiValues - fbaaeb99.ala.us-east-1.emqxsl.com + MQTTBrokerWebAdresse 8883 NodeRED-MQTT - 2yDxhXpAYVmhZY4VePLQYhu7hjLFFcnfkfNsRfLE + dasGeheimePasswort 0.000000 From 4eca609040aa3aadcfe390a3b1e5d35b457e08e3 Mon Sep 17 00:00:00 2001 From: upgrade_script Date: Tue, 2 Jan 2024 18:15:50 +0100 Subject: [PATCH 07/15] behandlung von sensiblen Daten um Passworte etc, die z.B. in der xml Datei in meiner Entwiclungsumgebung vorhanden sind, nicht auf github hochzuladen, habe ich git hooks angelegt --- .git_hooks/post-commit | 17 +++++++++++++++++ .git_hooks/pre-commit | 34 ++++++++++++++++++++++++++++++++++ .gitignore | 2 +- 3 files changed, 52 insertions(+), 1 deletion(-) create mode 100755 .git_hooks/post-commit create mode 100755 .git_hooks/pre-commit diff --git a/.git_hooks/post-commit b/.git_hooks/post-commit new file mode 100755 index 0000000..561d268 --- /dev/null +++ b/.git_hooks/post-commit @@ -0,0 +1,17 @@ +#!/bin/sh + +# Pfad zu den Dateien und zum Backup-Verzeichnis +CONFIG_XML="defaults/caravanpiConfig.xml" +README_MD="defaults/README.md" +BACKUP_DIR=".git_sensible_backup" + +# Wiederherstellungsfunktion +restore_files() { + cp "$BACKUP_DIR/$(basename $1).backup" "$1" +} + +# Dateien nach dem Commit wiederherstellen +restore_files "$CONFIG_XML" +restore_files "$README_MD" + +exit 0 diff --git a/.git_hooks/pre-commit b/.git_hooks/pre-commit new file mode 100755 index 0000000..24ff6c8 --- /dev/null +++ b/.git_hooks/pre-commit @@ -0,0 +1,34 @@ +#!/bin/sh +# +# Sensible Daten sollen aus Dateien entfernt werden + +# Pfad zu den Dateien und zum Backup-Verzeichnis +CONFIG_XML="defaults/caravanpiConfig.xml" +README_MD="defaults/README.md" +BACKUP_DIR=".git_sensible_backup" + +# Backup-Funktion +backup_files() { + cp "$1" "$BACKUP_DIR/$(basename $1).backup" +} + +# Dateien vor der Bearbeitung sichern +backup_files "$CONFIG_XML" +backup_files "$README_MD" + +# Funktion, um die Dateien zu bearbeiten (wie zuvor) +update_files() { + sed -i 's/[^<]*<\/MariaDBpasswd>/dasGeheimePasswort<\/MariaDBpasswd>/' "$1" + sed -i 's/[^<]*<\/MQTTpassword>/dasGeheimePasswort<\/MQTTpassword>/' "$1" + sed -i 's/[^<]*<\/MQTTbroker>/MQTTBrokerWebAdresse<\/MQTTbroker>/' "$1" +} + +# Dateien aktualisieren +update_files "$CONFIG_XML" +update_files "$README_MD" + +# Fügen Sie die geänderten Dateien dem Commit hinzu +git add "$CONFIG_XML" +git add "$README_MD" + +exit 0 \ No newline at end of file diff --git a/.gitignore b/.gitignore index cf97899..61f7ae0 100644 --- a/.gitignore +++ b/.gitignore @@ -4,7 +4,7 @@ logrotate.status # ignoriere .git-sensible-backup -.git-sensible-backup +.git_sensible_backup # ignoriere fremde libraries .lib/__pycache__ From 7efee66e991319a906e7e783e4bafebf5305b57c Mon Sep 17 00:00:00 2001 From: upgrade_script Date: Tue, 2 Jan 2024 18:18:54 +0100 Subject: [PATCH 08/15] testcommit --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 6683180..31aeb98 100644 --- a/README.md +++ b/README.md @@ -11,6 +11,7 @@ - [Documentation (Wiki)](#wiki) - [To Do](#to-do) + ## Aktualisierungen / Change Log Details siehe / Please view [CHANGELOG.md](https://github.com/spitzlbergerj/CaravanPi/blob/master/CHANGELOG.md) From 0b9f4298f8c5f997c5fcdb6705cd28e06181cc5f Mon Sep 17 00:00:00 2001 From: upgrade_script Date: Wed, 3 Jan 2024 18:20:51 +0100 Subject: [PATCH 09/15] Flask Website ersetzt alle anderen MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Mit Flask werden alle bisherigen Webseiten rund um den CaravanPi zusammengeführt. Mit diesen Arbeiten ist begonnen. Ebenfalls begonnen ist die Arbeit am Skript gasScale2File.py --- .git_hooks/post-commit | 34 ++-- .lib/CaravanPiFilesClass.py | 20 ++- climate/README.md | 16 ++ climate/climate2file.py | 17 +- gas-weight/gasScale2file.py | 82 ++++----- html-flask/flask-main.py | 25 +++ html-flask/static/images/CaravanPi-Logo.png | 1 + html-flask/templates/check_database.html | 15 ++ html-flask/templates/index-flask.html | 183 ++++++++++++++++++++ 9 files changed, 322 insertions(+), 71 deletions(-) create mode 100644 html-flask/flask-main.py create mode 120000 html-flask/static/images/CaravanPi-Logo.png create mode 100644 html-flask/templates/check_database.html create mode 100644 html-flask/templates/index-flask.html diff --git a/.git_hooks/post-commit b/.git_hooks/post-commit index 561d268..e77de0b 100755 --- a/.git_hooks/post-commit +++ b/.git_hooks/post-commit @@ -1,17 +1,17 @@ -#!/bin/sh - -# Pfad zu den Dateien und zum Backup-Verzeichnis -CONFIG_XML="defaults/caravanpiConfig.xml" -README_MD="defaults/README.md" -BACKUP_DIR=".git_sensible_backup" - -# Wiederherstellungsfunktion -restore_files() { - cp "$BACKUP_DIR/$(basename $1).backup" "$1" -} - -# Dateien nach dem Commit wiederherstellen -restore_files "$CONFIG_XML" -restore_files "$README_MD" - -exit 0 +#!/bin/sh + +# Pfad zu den Dateien und zum Backup-Verzeichnis +CONFIG_XML="defaults/caravanpiConfig.xml" +README_MD="defaults/README.md" +BACKUP_DIR=".git_sensible_backup" + +# Wiederherstellungsfunktion +restore_files() { + mv "$BACKUP_DIR/$(basename $1).backup" "$1" +} + +# Dateien nach dem Commit wiederherstellen +restore_files "$CONFIG_XML" +restore_files "$README_MD" + +exit 0 diff --git a/.lib/CaravanPiFilesClass.py b/.lib/CaravanPiFilesClass.py index 98580ac..7a6269c 100644 --- a/.lib/CaravanPiFilesClass.py +++ b/.lib/CaravanPiFilesClass.py @@ -346,14 +346,22 @@ def readGasScale(self, gasCylinderNumber): tree = ET.parse(self.xml_file_path) root = tree.getroot() gas_scale_element = root.find(f"gasScaleDefaults{gasCylinderNumber}") + if gas_scale_element is not None: + empty_weight = gas_scale_element.find("emptyWeight") + full_weight = gas_scale_element.find("fullWeight") + pin_dout = gas_scale_element.find("pin_dout") + pin_sck = gas_scale_element.find("pin_sck") + str_channel = gas_scale_element.find("strChannel") + ref_unit = gas_scale_element.find("refUnit") + return ( - gas_scale_element.find("emptyWeight").text if gas_scale_element.find("emptyWeight") is not None else None, - gas_scale_element.find("fullWeight").text if gas_scale_element.find("fullWeight") is not None else None, - gas_scale_element.find("pin_dout").text if gas_scale_element.find("pin_dout") is not None else None, - gas_scale_element.find("pin_sck").text if gas_scale_element.find("pin_sck") is not None else None, - gas_scale_element.find("strChannel").text if gas_scale_element.find("strChannel") is not None else None, - gas_scale_element.find("refUnit").text if gas_scale_element.find("refUnit") is not None else None + float(empty_weight.text) if empty_weight is not None and empty_weight.text.isdigit() else None, + float(full_weight.text) if full_weight is not None and full_weight.text.isdigit() else None, + int(pin_dout.text) if pin_dout is not None and pin_dout.text.isdigit() else None, + int(pin_sck.text) if pin_sck is not None and pin_sck.text.isdigit() else None, + int(str_channel.text) if str_channel is not None and str_channel.text.isdigit() else None, + int(ref_unit.text) if ref_unit is not None and ref_unit.text.isdigit() else None ) else: return None diff --git a/climate/README.md b/climate/README.md index 30ec385..84ee78c 100644 --- a/climate/README.md +++ b/climate/README.md @@ -1,6 +1,22 @@ # CaravanPi System zur Messung und Anzeige verschiedener Werte in Wohnwagen und Reisemobilen, u.a. Klimawerte, Füllstände und Niveaudaten. Magic Mirror wird für die Präsentation verwendet. +# Python Skripte + +## climate2file.py +python3 /home/pi/CaravanPi/climate/climate2file.py [-h] [-i {76,77}] [-f] [-s] [-c] + +Lesen des Klimasensors und Verarbeiten der Sensorwerte + +optional arguments: + -h, --help show this help message and exit + -i {76,77}, --i2c {76,77} I2C Bus Adresse (76 (default) oder 77) + -f, --file schreiben in ein File - obsoloet durch globale xml Konfiguration + -s, --screen ausgeben am Bildschirm + -c, --check führt nur einen Funktionscheck des Sensors aus + + + # Climate sensors Ich verwende den Bosch BME280 zur Bestimmung der Temperatur, des Luftdrucks und der Luftfeuchtigkeit. Der Sensor ermittelt diese Daten zuverlässig auf kleinstem Raum. Ich verwende zwei dieser Sensoren. Einer überwacht den Innenraum des Wohnwagens, einer den Außenbereich. Dort habe ich ihn auf dem Dach, allerdings beschattet durch eine Antennenplattform, angebracht. diff --git a/climate/climate2file.py b/climate/climate2file.py index 68e8345..34ad68f 100644 --- a/climate/climate2file.py +++ b/climate/climate2file.py @@ -190,6 +190,7 @@ def readBME280All(addr=DEVICE): def main(): global DEVICE + DEVICE = DEVICE1 # ArgumentParser-Objekt erstellen parser = argparse.ArgumentParser(description='Lesen des Klimasensors und Verarbeiten der Sensorwerte') @@ -199,6 +200,8 @@ def main(): help='schreiben in ein File - obsoloet durch globale xml Konfiguration') parser.add_argument('-s', '--screen', action='store_true', help='ausgeben am Bildschirm') + parser.add_argument('-c', '--check', action='store_true', + help='Führt den Funktionstest des Sensors aus') # Argumente parsen args = parser.parse_args() @@ -209,8 +212,17 @@ def main(): elif args.i2c == '77': DEVICE = DEVICE2 - # Sensordaten lesen + # Sensorgrunddaten lesen chip_id, chip_version = readBME280ID(DEVICE) + + if args.check: + if (chip_id, chip_version) == (None, None): + return "Fehler" + else: + return f"OK - SensorID = {chip_id} - Sensorversion = {chip_version}" + + + # konkrete Werte lesen temperature, pressure, humidity = readBME280All(DEVICE) # Sensorwerte verarbeiten @@ -225,4 +237,5 @@ def main(): ) if __name__=="__main__": - main() + result = main() + print(result) \ No newline at end of file diff --git a/gas-weight/gasScale2file.py b/gas-weight/gasScale2file.py index 0dd2338..8e3965e 100644 --- a/gas-weight/gasScale2file.py +++ b/gas-weight/gasScale2file.py @@ -11,6 +11,7 @@ import datetime import RPi.GPIO as GPIO import getopt +import argparse # ----------------------------------------------- # Sensoren libraries aus CaravanPi einbinden @@ -19,19 +20,6 @@ from hx711 import HX711 from CaravanPiFilesClass import CaravanPiFiles -# ------------------------- -# call options -# ------------------------- -shortOptions = 'hg:' -longOptions = ['gasscale='] - -def usage(): - print ("---------------------------------------------------------------------") - print (sys.argv[0], "-h -g ") - print (" -h show this guide") - print (" -g nr number of gas scale cylinder (default 1)\n") - - def cleanAndExit(): print ("Cleaning...") @@ -70,62 +58,64 @@ def main(): emptyWeight = 0 fullWeight = 0 - try: - opts, args = getopt.getopt(sys.argv[1:], shortOptions, longOptions) - except getopt.GetoptError: - print("ERROR: options not correct") - usage() - sys.exit() + # ArgumentParser-Objekt erstellen + parser = argparse.ArgumentParser(description='Lesen der Gasflaschenwaage und Verarbeiten der Sensorwerte') + parser.add_argument('-g', '--gasscale', type=str, choices=['1', '2'], default='1', + help='Nr der Gasflaschenwaage (1 (default) oder 2)') + parser.add_argument('-s', '--screen', action='store_true', + help='ausgeben am Bildschirm') + parser.add_argument('-c', '--check', action='store_true', + help='Führt den Funktionstest der Gasflaschenwaage aus') + + # Argumente parsen + args = parser.parse_args() - for o, a in opts: - if o == "--help" or o == "-h": - print("HELP") - usage() - sys.exit() - elif o == "--gasscale" or o == "-g": - gasCylinderNumber = int(a) - - for a in args: - print("further argument: ", a) + gasCylinderNumber = int(args.gasscale) # ------------------------- # gpio warnings off # ------------------------- GPIO.setwarnings(False) + # Erstellen der Instanzen der Librarys + cplib = CaravanPiFiles() + # ------------------------- # read defaults # ------------------------- - (emptyWeight, fullWeight, pin_dout, pin_sck, channel, refUnit) = CaravanPiFiles.readGasScale(gasCylinderNumber) - print ("bisherige Werte:") - print ("Leergewicht Flasche: ", emptyWeight) - print ("max. Gas-Gewicht: ", fullWeight) - print ("Pin DOUT: ", pin_dout) - print ("Pin SCK: ", pin_sck) - print ("Channel: >>", channel, "<<") - print ("Reference Unit: ", refUnit) - - hx = HX711(pin_dout, pin_sck) - hx.set_reading_format("MSB", "MSB") + (emptyWeight, fullWeight, pin_dout, pin_sck, channel, refUnit) = cplib.readGasScale(gasCylinderNumber) + + if args.screen: + print ("bisherige Werte:") + print ("Leergewicht Flasche: ", emptyWeight) + print ("max. Gas-Gewicht: ", fullWeight) + print ("Pin DOUT: ", pin_dout) + print ("Pin SCK: ", pin_sck) + print ("Channel: >>", channel, "<<") + print ("Reference Unit: ", refUnit) + + # Erstellen der Instanzen der Librarys + hxlib = HX711(pin_dout, pin_sck) + hxlib.set_reading_format("MSB", "MSB") if channel == "A": - hx.set_reference_unit_A(refUnit) + hxlib.set_reference_unit_A(refUnit) elif channel == "B": - hx.set_reference_unit_B(refUnit) + hxlib.set_reference_unit_B(refUnit) else: print("invalid HX711 channel: ", channel) print("set channel to A") channel = "A" - hx.set_reference_unit_A(refUnit) + hxlib.set_reference_unit_A(refUnit) - hx.reset() + hxlib.reset() try: # read sensor if channel == "B": - weight = hx.get_weight_B(5) + weight = hxlib.get_weight_B(5) else: - weight = hx.get_weight_A(5) + weight = hxlib.get_weight_A(5) print ("aktuelle Messung Gaswaage: ", weight) diff --git a/html-flask/flask-main.py b/html-flask/flask-main.py new file mode 100644 index 0000000..b8032e9 --- /dev/null +++ b/html-flask/flask-main.py @@ -0,0 +1,25 @@ +from flask import Flask, render_template + +app = Flask(__name__) + +@app.route('/') +def home(): + # Startseite, von der aus die Checks gestartet werden + return render_template('index-flask.html') # Startseite mit einem Button oder automatischer Weiterleitung zu '/check_database' + +@app.route('/check_database') +def check_database(): + # Database-Check durchführen + result_database = True # Beispiel: Ergebnis des Checks + return render_template('check_database.html', result=result_database) + +@app.route('/check_mqtt') +def check_mqtt(): + # MQTT-Check durchführen + result_mqtt = True # Beispiel: Ergebnis des Checks + return render_template('check_mqtt.html', result=result_mqtt) + +# Weitere Routen für weitere Checks + +if __name__ == '__main__': + app.run(host='0.0.0.0', port=5000, debug=True) diff --git a/html-flask/static/images/CaravanPi-Logo.png b/html-flask/static/images/CaravanPi-Logo.png new file mode 120000 index 0000000..4171998 --- /dev/null +++ b/html-flask/static/images/CaravanPi-Logo.png @@ -0,0 +1 @@ +/home/pi/CaravanPi/images/CaravanPi-Logo.png \ No newline at end of file diff --git a/html-flask/templates/check_database.html b/html-flask/templates/check_database.html new file mode 100644 index 0000000..ddf5594 --- /dev/null +++ b/html-flask/templates/check_database.html @@ -0,0 +1,15 @@ + + + + Database Check + + + +

Database Check

+

Status: {{ 'ok' if result else 'nicht ok' }}

+ + diff --git a/html-flask/templates/index-flask.html b/html-flask/templates/index-flask.html new file mode 100644 index 0000000..f83a68f --- /dev/null +++ b/html-flask/templates/index-flask.html @@ -0,0 +1,183 @@ + + + + CaravanPi Websites + + + +
+
+
+
+
+
+ +
+ +
+ +
+ +
+ +

 

+

Hier finden Sie alle Websites zur Konfiguration und Bedienung des CaravanPi.

+

+ + + +

 

+

 

+

Weitere Infos zum Projekt CaravanPi finden Sie auf der CaravanPi-Website und auf github

+
+ + +
+ + + + + From 8da3528f7bf2c4bc65e89466060a2bad95dc3cf6 Mon Sep 17 00:00:00 2001 From: upgrade_script Date: Sat, 6 Jan 2024 15:03:39 +0100 Subject: [PATCH 10/15] =?UTF-8?q?diverse=20=C3=84nderungen,=20Flask=20Webs?= =?UTF-8?q?ites?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit weitere Härtung einiger pythonskripte, weiterer Aufbau der Flask Websites als Ersatz für die bisherigen Websites --- .gitignore | 5 +- .lib/CaravanPiFilesClass.py | 93 ++- .lib/hx711.py | 736 +++++++++--------- LED/LEDtest.py | 5 +- climate/climate2file.py | 10 +- defaults/caravanpiConfig.xml | 141 ++-- gas-weight/gasScale2file.py | 59 +- html-flask/checks_routes.py | 411 ++++++++++ html-flask/config_routes.py | 68 ++ html-flask/flask-main.py | 25 +- html-flask/static/css/caravanpi.css | 227 ++++++ .../static/images/CaravanPiDimensionen.png | Bin 0 -> 455227 bytes .../static/images/CaravanPiLagesensor.png | Bin 0 -> 522033 bytes .../images/icons/android-icon-144x144.png | Bin 0 -> 8829 bytes .../images/icons/android-icon-192x192.png | Bin 0 -> 12804 bytes .../images/icons/android-icon-36x36.png | Bin 0 -> 1446 bytes .../images/icons/android-icon-48x48.png | Bin 0 -> 1889 bytes .../images/icons/android-icon-72x72.png | Bin 0 -> 3441 bytes .../images/icons/android-icon-96x96.png | Bin 0 -> 5034 bytes .../images/icons/apple-icon-114x114.png | Bin 0 -> 6324 bytes .../images/icons/apple-icon-120x120.png | Bin 0 -> 6622 bytes .../images/icons/apple-icon-144x144.png | Bin 0 -> 8829 bytes .../images/icons/apple-icon-152x152.png | Bin 0 -> 9503 bytes .../images/icons/apple-icon-180x180.png | Bin 0 -> 12204 bytes .../static/images/icons/apple-icon-57x57.png | Bin 0 -> 2617 bytes .../static/images/icons/apple-icon-60x60.png | Bin 0 -> 2787 bytes .../static/images/icons/apple-icon-72x72.png | Bin 0 -> 3441 bytes .../static/images/icons/apple-icon-76x76.png | Bin 0 -> 3806 bytes .../images/icons/apple-icon-precomposed.png | Bin 0 -> 13378 bytes html-flask/static/images/icons/apple-icon.png | Bin 0 -> 13378 bytes .../static/images/icons/apple-touch-icon.png | Bin 0 -> 10080 bytes .../static/images/icons/browserconfig.xml | 2 + .../static/images/icons/favicon-16x16.png | Bin 0 -> 957 bytes .../static/images/icons/favicon-32x32.png | Bin 0 -> 1353 bytes .../static/images/icons/favicon-96x96.png | Bin 0 -> 5034 bytes html-flask/static/images/icons/favicon.ico | Bin 0 -> 1150 bytes html-flask/static/images/icons/manifest.json | 41 + .../static/images/icons/ms-icon-144x144.png | Bin 0 -> 8829 bytes .../static/images/icons/ms-icon-150x150.png | Bin 0 -> 9222 bytes .../static/images/icons/ms-icon-310x310.png | Bin 0 -> 27753 bytes .../static/images/icons/ms-icon-70x70.png | Bin 0 -> 3414 bytes html-flask/templates/_alt/check_1_wire.html | 148 ++++ html-flask/templates/_alt/check_apache.html | 148 ++++ html-flask/templates/_alt/check_final.html | 155 ++++ html-flask/templates/_alt/check_grafana.html | 148 ++++ html-flask/templates/_alt/check_hx711.html | 148 ++++ html-flask/templates/_alt/check_i2c.html | 148 ++++ .../templates/_alt/check_magicmirror.html | 148 ++++ html-flask/templates/_alt/check_mariadb.html | 149 ++++ html-flask/templates/_alt/checks.html | 147 ++++ html-flask/templates/check_base_template.html | 119 +++ html-flask/templates/check_database.html | 15 - html-flask/templates/config.html | 116 +++ .../templates/config_dimension_caravan.html | 156 ++++ html-flask/templates/index-flask.html | 97 +-- position/__pycache__/ledClass.cpython-37.pyc | Bin 2138 -> 0 bytes 56 files changed, 3033 insertions(+), 632 deletions(-) create mode 100644 html-flask/checks_routes.py create mode 100644 html-flask/config_routes.py create mode 100644 html-flask/static/css/caravanpi.css create mode 100644 html-flask/static/images/CaravanPiDimensionen.png create mode 100644 html-flask/static/images/CaravanPiLagesensor.png create mode 100644 html-flask/static/images/icons/android-icon-144x144.png create mode 100644 html-flask/static/images/icons/android-icon-192x192.png create mode 100644 html-flask/static/images/icons/android-icon-36x36.png create mode 100644 html-flask/static/images/icons/android-icon-48x48.png create mode 100644 html-flask/static/images/icons/android-icon-72x72.png create mode 100644 html-flask/static/images/icons/android-icon-96x96.png create mode 100644 html-flask/static/images/icons/apple-icon-114x114.png create mode 100644 html-flask/static/images/icons/apple-icon-120x120.png create mode 100644 html-flask/static/images/icons/apple-icon-144x144.png create mode 100644 html-flask/static/images/icons/apple-icon-152x152.png create mode 100644 html-flask/static/images/icons/apple-icon-180x180.png create mode 100644 html-flask/static/images/icons/apple-icon-57x57.png create mode 100644 html-flask/static/images/icons/apple-icon-60x60.png create mode 100644 html-flask/static/images/icons/apple-icon-72x72.png create mode 100644 html-flask/static/images/icons/apple-icon-76x76.png create mode 100644 html-flask/static/images/icons/apple-icon-precomposed.png create mode 100644 html-flask/static/images/icons/apple-icon.png create mode 100644 html-flask/static/images/icons/apple-touch-icon.png create mode 100644 html-flask/static/images/icons/browserconfig.xml create mode 100644 html-flask/static/images/icons/favicon-16x16.png create mode 100644 html-flask/static/images/icons/favicon-32x32.png create mode 100644 html-flask/static/images/icons/favicon-96x96.png create mode 100644 html-flask/static/images/icons/favicon.ico create mode 100644 html-flask/static/images/icons/manifest.json create mode 100644 html-flask/static/images/icons/ms-icon-144x144.png create mode 100644 html-flask/static/images/icons/ms-icon-150x150.png create mode 100644 html-flask/static/images/icons/ms-icon-310x310.png create mode 100644 html-flask/static/images/icons/ms-icon-70x70.png create mode 100644 html-flask/templates/_alt/check_1_wire.html create mode 100644 html-flask/templates/_alt/check_apache.html create mode 100644 html-flask/templates/_alt/check_final.html create mode 100644 html-flask/templates/_alt/check_grafana.html create mode 100644 html-flask/templates/_alt/check_hx711.html create mode 100644 html-flask/templates/_alt/check_i2c.html create mode 100644 html-flask/templates/_alt/check_magicmirror.html create mode 100644 html-flask/templates/_alt/check_mariadb.html create mode 100644 html-flask/templates/_alt/checks.html create mode 100644 html-flask/templates/check_base_template.html delete mode 100644 html-flask/templates/check_database.html create mode 100644 html-flask/templates/config.html create mode 100644 html-flask/templates/config_dimension_caravan.html delete mode 100644 position/__pycache__/ledClass.cpython-37.pyc diff --git a/.gitignore b/.gitignore index 61f7ae0..b0971e7 100644 --- a/.gitignore +++ b/.gitignore @@ -6,9 +6,10 @@ logrotate.status # ignoriere .git-sensible-backup .git_sensible_backup +# ignoriere alle python caches +__pycache__/ + # ignoriere fremde libraries -.lib/__pycache__ -.lib/__pycache__/* .lib/hx711py .lib/hx711py/* .lib/hx711pySJJSJJSJJSJJ diff --git a/.lib/CaravanPiFilesClass.py b/.lib/CaravanPiFilesClass.py index 7a6269c..9301ede 100644 --- a/.lib/CaravanPiFilesClass.py +++ b/.lib/CaravanPiFilesClass.py @@ -161,6 +161,19 @@ def format_xml(self, element, level=0): if level and (not element.tail or not element.tail.strip()): element.tail = indent + # --------------------------------------------------------------------------------------------- + # is_float + # + # prüft einen Stroing-Wert auf den Typ float + # ---------------------------------------------------------------------------------------------- + + def is_float(self, value): + try: + float(value) + return True + except ValueError: + return False + # ========================================================================================================================================================= # # Schreiben und Lesen der Default Werte @@ -177,22 +190,16 @@ def readCaravanPiDefaults(self): tree = ET.parse(self.xml_file_path) root = tree.getroot() defaults_element = root.find("caravanpiDefaults") + if defaults_element is not None: write2file = defaults_element.find("write2file").text == '1' if defaults_element.find("write2file") is not None else False write2MariaDB = defaults_element.find("write2MariaDB").text == '1' if defaults_element.find("write2MariaDB") is not None else False send2MQTT = defaults_element.find("send2MQTT").text == '1' if defaults_element.find("send2MQTT") is not None else False mqtt_port = defaults_element.find("MQTTport").text if defaults_element.find("MQTTport") is not None else None - # Konvertierung von MQTTport in int, wenn vorhanden - try: - mqtt_port = int(mqtt_port) if mqtt_port is not None else None - except ValueError: - print("ERROR - MQTTport konnte nicht in eine Ganzzahl umgewandelt werden.") - mqtt_port = None - return ( - defaults_element.find("countGasScales").text if defaults_element.find("countGasScales") is not None else None, - defaults_element.find("countTanks").text if defaults_element.find("countTanks") is not None else None, + int(defaults_element.find("countGasScales").text) if defaults_element.find("countGasScales") is not None and defaults_element.find("countGasScales").text.isdigit() else None, + int(defaults_element.find("countTanks").text) if defaults_element.find("countTanks") is not None and defaults_element.find("countTanks").text.isdigit() else None, write2file, write2MariaDB, defaults_element.find("MariaDBhost").text if defaults_element.find("MariaDBhost") is not None else None, @@ -201,7 +208,7 @@ def readCaravanPiDefaults(self): defaults_element.find("MariaDBdatabase").text if defaults_element.find("MariaDBdatabase") is not None else None, send2MQTT, defaults_element.find("MQTTbroker").text if defaults_element.find("MQTTbroker") is not None else None, - mqtt_port, + int(defaults_element.find("MQTTport").text) if defaults_element.find("MQTTport") is not None and defaults_element.find("MQTTport").text.isdigit() else None, defaults_element.find("MQTTuser").text if defaults_element.find("MQTTuser") is not None else None, defaults_element.find("MQTTpassword").text if defaults_element.find("MQTTpassword") is not None else None ) @@ -254,16 +261,16 @@ def readAdjustment(self): adjustment_element = root.find("adjustmentPosition") if adjustment_element is not None: return ( - adjustment_element.find("adjustX").text if adjustment_element.find("adjustX") is not None else None, - adjustment_element.find("adjustY").text if adjustment_element.find("adjustY") is not None else None, - adjustment_element.find("adjustZ").text if adjustment_element.find("adjustZ") is not None else None, - adjustment_element.find("toleranceX").text if adjustment_element.find("toleranceX") is not None else None, - adjustment_element.find("toleranceY").text if adjustment_element.find("toleranceY") is not None else None, - adjustment_element.find("approximationX").text if adjustment_element.find("approximationX") is not None else None, - adjustment_element.find("approximationY").text if adjustment_element.find("approximationY") is not None else None, - adjustment_element.find("distRight").text if adjustment_element.find("distRight") is not None else None, - adjustment_element.find("distFront").text if adjustment_element.find("distFront") is not None else None, - adjustment_element.find("distAxis").text if adjustment_element.find("distAxis") is not None else None + float(adjustment_element.find("adjustX").text) if adjustment_element.find("adjustX") is not None and self.is_float(adjustment_element.find("adjustX").text) else None, + float(adjustment_element.find("adjustY").text) if adjustment_element.find("adjustY") is not None and self.is_float(adjustment_element.find("adjustY").text) else None, + float(adjustment_element.find("adjustZ").text) if adjustment_element.find("adjustZ") is not None and self.is_float(adjustment_element.find("adjustZ").text) else None, + float(adjustment_element.find("toleranceX").text) if adjustment_element.find("toleranceX") is not None and self.is_float(adjustment_element.find("toleranceX").text) else None, + float(adjustment_element.find("toleranceY").text) if adjustment_element.find("toleranceY") is not None and self.is_float(adjustment_element.find("toleranceY").text) else None, + float(adjustment_element.find("approximationX").text) if adjustment_element.find("approximationX") is not None and self.is_float(adjustment_element.find("approximationX").text) else None, + float(adjustment_element.find("approximationY").text) if adjustment_element.find("approximationY") is not None and self.is_float(adjustment_element.find("approximationY").text) else None, + float(adjustment_element.find("distRight").text) if adjustment_element.find("distRight") is not None and self.is_float(adjustment_element.find("distRight").text) else None, + float(adjustment_element.find("distFront").text) if adjustment_element.find("distFront") is not None and self.is_float(adjustment_element.find("distFront").text) else None, + float(adjustment_element.find("distAxis").text) if adjustment_element.find("distAxis") is not None and self.is_float(adjustment_element.find("distAxis").text) else None ) else: return None @@ -292,7 +299,7 @@ def writeAdjustment(self, adjustX, adjustY, adjustZ, toleranceX, toleranceY, app # # content of file # length over all length of the caravan over all - # width width of the caravan over all + # width over all width of the caravan over all # length body legth of the body of the caravan without drawbar # ---------------------------------------------------------------------------------------------- @@ -302,21 +309,21 @@ def readDimensions(self): dimensions_element = root.find("dimensionsCaravan") if dimensions_element is not None: return ( - dimensions_element.find("lengthOverAll").text if dimensions_element.find("lengthOverAll") is not None else None, - dimensions_element.find("width").text if dimensions_element.find("width") is not None else None, - dimensions_element.find("lengthBody").text if dimensions_element.find("lengthBody") is not None else None + float(dimensions_element.find("lengthOverAll").text) if dimensions_element.find("lengthOverAll") is not None and self.is_float(dimensions_element.find("lengthOverAll").text) else None, + float(dimensions_element.find("widthOverAll").text) if dimensions_element.find("widthOverAll") is not None and self.is_float(dimensions_element.find("widthOverAll").text) else None, + float(dimensions_element.find("lengthBody").text) if dimensions_element.find("lengthBody") is not None and self.is_float(dimensions_element.find("lengthBody").text) else None ) else: return None - def writeDimensions(self, lengthOverAll, width, lengthBody): + def writeDimensions(self, lengthOverAll, widthOverAll, lengthBody): tree = ET.parse(self.xml_file_path) root = tree.getroot() dimensions_element = root.find("dimensionsCaravan") if dimensions_element is None: dimensions_element = ET.SubElement(root, "dimensionsCaravan") - for key, value in [("lengthOverAll", lengthOverAll), ("width", width), ("lengthBody", lengthBody)]: + for key, value in [("lengthOverAll", lengthOverAll), ("widthOverAll", widthOverAll), ("lengthBody", lengthBody)]: element = dimensions_element.find(key) if element is None: element = ET.SubElement(dimensions_element, key) @@ -348,20 +355,13 @@ def readGasScale(self, gasCylinderNumber): gas_scale_element = root.find(f"gasScaleDefaults{gasCylinderNumber}") if gas_scale_element is not None: - empty_weight = gas_scale_element.find("emptyWeight") - full_weight = gas_scale_element.find("fullWeight") - pin_dout = gas_scale_element.find("pin_dout") - pin_sck = gas_scale_element.find("pin_sck") - str_channel = gas_scale_element.find("strChannel") - ref_unit = gas_scale_element.find("refUnit") - return ( - float(empty_weight.text) if empty_weight is not None and empty_weight.text.isdigit() else None, - float(full_weight.text) if full_weight is not None and full_weight.text.isdigit() else None, - int(pin_dout.text) if pin_dout is not None and pin_dout.text.isdigit() else None, - int(pin_sck.text) if pin_sck is not None and pin_sck.text.isdigit() else None, - int(str_channel.text) if str_channel is not None and str_channel.text.isdigit() else None, - int(ref_unit.text) if ref_unit is not None and ref_unit.text.isdigit() else None + float(gas_scale_element.find("emptyWeight").text) if gas_scale_element.find("emptyWeight") is not None and self.is_float(gas_scale_element.find("emptyWeight").text) else None, + float(gas_scale_element.find("fullWeight").text) if gas_scale_element.find("fullWeight") is not None and self.is_float(gas_scale_element.find("fullWeight").text) else None, + int(gas_scale_element.find("pin_dout").text) if gas_scale_element.find("pin_dout") is not None and gas_scale_element.find("pin_dout").text.isdigit() else None, + int(gas_scale_element.find("pin_sck").text) if gas_scale_element.find("pin_sck") is not None and gas_scale_element.find("pin_sck").text.isdigit() else None, + gas_scale_element.find("strChannel").text if gas_scale_element.find("strChannel") is not None else None, + float(gas_scale_element.find("refUnit").text) if gas_scale_element.find("refUnit") is not None and self.is_float(gas_scale_element.find("refUnit").text) else None ) else: return None @@ -405,10 +405,10 @@ def readFillLevels(self, tankNumber): tank_element = root.find(f"tankDefaults{tankNumber}") if tank_element is not None: return ( - tank_element.find("level1").text if tank_element.find("level1") is not None else None, - tank_element.find("level2").text if tank_element.find("level2") is not None else None, - tank_element.find("level3").text if tank_element.find("level3") is not None else None, - tank_element.find("level4").text if tank_element.find("level4") is not None else None + float(tank_element.find("level1").text) if tank_element.find("level1") is not None and is_float(tank_element.find("level1").text) else None, + float(tank_element.find("level2").text) if tank_element.find("level2") is not None and is_float(tank_element.find("level2").text) else None, + float(tank_element.find("level3").text) if tank_element.find("level3") is not None and is_float(tank_element.find("level3").text) else None, + float(tank_element.find("level4").text) if tank_element.find("level4") is not None and is_float(tank_element.find("level4").text) else None ) else: return None @@ -450,9 +450,9 @@ def readVoltageLevels(self): voltage_element = root.find("voltageDefaults") if voltage_element is not None: return ( - voltage_element.find("level1").text if voltage_element.find("level1") is not None else None, - voltage_element.find("level2").text if voltage_element.find("level2") is not None else None, - voltage_element.find("level3").text if voltage_element.find("level3") is not None else None + float(voltage_element.find("level1").text) if voltage_element.find("level1") is not None and self.is_float(voltage_element.find("level1").text) else None, + float(voltage_element.find("level2").text) if voltage_element.find("level2") is not None and self.is_float(voltage_element.find("level2").text) else None, + float(voltage_element.find("level3").text) if voltage_element.find("level3") is not None and self.is_float(voltage_element.find("level3").text) else None ) else: return None @@ -630,7 +630,6 @@ def create_db_connection(self): passwd=self.MariaDBpasswd, database=self.MariaDBdatabase ) - print("MariaDB connection successful") except Error as e: print(f"ERROR - MariaDB - Fehler aufgetreten: '{e}'") diff --git a/.lib/hx711.py b/.lib/hx711.py index a16e3ac..0aa9e44 100644 --- a/.lib/hx711.py +++ b/.lib/hx711.py @@ -8,423 +8,433 @@ class HX711: - def __init__(self, dout, pd_sck, gain=128): - self.PD_SCK = pd_sck - - self.DOUT = dout - - # Mutex for reading from the HX711, in case multiple threads in client - # software try to access get values from the class at the same time. - self.readLock = threading.Lock() - - GPIO.setmode(GPIO.BCM) - GPIO.setwarnings(False) - GPIO.setup(self.PD_SCK, GPIO.OUT) - GPIO.setup(self.DOUT, GPIO.IN) - - self.GAIN = 0 - - # The value returned by the hx711 that corresponds to your reference - # unit AFTER dividing by the SCALE. - self.REFERENCE_UNIT = 1 - self.REFERENCE_UNIT_B = 1 - - self.OFFSET = 1 - self.OFFSET_B = 1 - self.lastVal = int(0) - - self.DEBUG_PRINTING = False - - self.byte_format = 'MSB' - self.bit_format = 'MSB' - - self.set_gain(gain) - - # Think about whether this is necessary. - time.sleep(1) - - - def convertFromTwosComplement24bit(self, inputValue): - return -(inputValue & 0x800000) + (inputValue & 0x7fffff) - - - def is_ready(self): - return GPIO.input(self.DOUT) == 0 - - - def set_gain(self, gain): - if gain is 128: - self.GAIN = 1 - elif gain is 64: - self.GAIN = 3 - elif gain is 32: - self.GAIN = 2 - - GPIO.output(self.PD_SCK, False) - - # Read out a set of raw bytes and throw it away. - self.readRawBytes() - - - def get_gain(self): - if self.GAIN == 1: - return 128 - if self.GAIN == 3: - return 64 - if self.GAIN == 2: - return 32 - - # Shouldn't get here. - return 0 - - - def readNextBit(self): - # Clock HX711 Digital Serial Clock (PD_SCK). DOUT will be - # ready 1us after PD_SCK rising edge, so we sample after - # lowering PD_SCL, when we know DOUT will be stable. - GPIO.output(self.PD_SCK, True) - GPIO.output(self.PD_SCK, False) - value = GPIO.input(self.DOUT) - - # Convert Boolean to int and return it. - return int(value) - - - def readNextByte(self): - byteValue = 0 - - # Read bits and build the byte from top, or bottom, depending - # on whether we are in MSB or LSB bit mode. - for x in range(8): - if self.bit_format == 'MSB': - byteValue <<= 1 - byteValue |= self.readNextBit() - else: - byteValue >>= 1 - byteValue |= self.readNextBit() * 0x80 - - # Return the packed byte. - return byteValue - - - def readRawBytes(self): - # Wait for and get the Read Lock, incase another thread is already - # driving the HX711 serial interface. - self.readLock.acquire() - - # Wait until HX711 is ready for us to read a sample. - while not self.is_ready(): - pass - - # Read three bytes of data from the HX711. - firstByte = self.readNextByte() - secondByte = self.readNextByte() - thirdByte = self.readNextByte() - - # HX711 Channel and gain factor are set by number of bits read - # after 24 data bits. - for i in range(self.GAIN): - # Clock a bit out of the HX711 and throw it away. - self.readNextBit() - - # Release the Read Lock, now that we've finished driving the HX711 - # serial interface. - self.readLock.release() - - # Depending on how we're configured, return an orderd list of raw byte - # values. - if self.byte_format == 'LSB': - return [thirdByte, secondByte, firstByte] - else: - return [firstByte, secondByte, thirdByte] - - - def read_long(self): - # Get a sample from the HX711 in the form of raw bytes. - dataBytes = self.readRawBytes() - - - if self.DEBUG_PRINTING: - print((dataBytes,)) - - # Join the raw bytes into a single 24bit 2s complement value. - twosComplementValue = ((dataBytes[0] << 16) | - (dataBytes[1] << 8) | - dataBytes[2]) - - if self.DEBUG_PRINTING: - print(("Twos: 0x%06x" % twosComplementValue)) - - # Convert from 24bit twos-complement to a signed value. - signedIntValue = self.convertFromTwosComplement24bit(twosComplementValue) - - # Record the latest sample value we've read. - self.lastVal = signedIntValue - - # Return the sample value we've read from the HX711. - return int(signedIntValue) - - - def read_average(self, times=3): - # Make sure we've been asked to take a rational amount of samples. - if times <= 0: - raise ValueError("HX711()::read_average(): times must >= 1!!") - - # If we're only average across one value, just read it and return it. - if times == 1: - return self.read_long() - - # If we're averaging across a low amount of values, just take the - # median. - if times < 5: - return self.read_median(times) - - # If we're taking a lot of samples, we'll collect them in a list, remove - # the outliers, then take the mean of the remaining set. - valueList = [] - - for x in range(times): - valueList += [self.read_long()] + def __init__(self, dout, pd_sck, gain=128): + self.error_status = False # Initialisiere den Fehlerstatus als False + + self.PD_SCK = pd_sck + + self.DOUT = dout + + # Mutex for reading from the HX711, in case multiple threads in client + # software try to access get values from the class at the same time. + self.readLock = threading.Lock() + + GPIO.setmode(GPIO.BCM) + GPIO.setwarnings(False) + GPIO.setup(self.PD_SCK, GPIO.OUT) + GPIO.setup(self.DOUT, GPIO.IN) + + self.GAIN = 0 + + # The value returned by the hx711 that corresponds to your reference + # unit AFTER dividing by the SCALE. + self.REFERENCE_UNIT = 1 + self.REFERENCE_UNIT_B = 1 + + self.OFFSET = 1 + self.OFFSET_B = 1 + self.lastVal = int(0) + + self.DEBUG_PRINTING = False + + self.byte_format = 'MSB' + self.bit_format = 'MSB' + + self.set_gain(gain) + + # Think about whether this is necessary. + time.sleep(1) + + + def convertFromTwosComplement24bit(self, inputValue): + return -(inputValue & 0x800000) + (inputValue & 0x7fffff) + + + def is_ready(self): + return GPIO.input(self.DOUT) == 0 + + + def set_gain(self, gain): + if gain == 128: + self.GAIN = 1 + elif gain == 64: + self.GAIN = 3 + elif gain == 32: + self.GAIN = 2 + + GPIO.output(self.PD_SCK, False) + + # Read out a set of raw bytes + raw_bytes = self.readRawBytes() + + # Überprüfen, ob ein Fehler aufgetreten ist + if raw_bytes == [None, None, None]: + self.error_status = True # Ein Fehler ist aufgetreten + + def get_gain(self): + if self.GAIN == 1: + return 128 + if self.GAIN == 3: + return 64 + if self.GAIN == 2: + return 32 + + # Shouldn't get here. + return 0 + + + def readNextBit(self): + # Clock HX711 Digital Serial Clock (PD_SCK). DOUT will be + # ready 1us after PD_SCK rising edge, so we sample after + # lowering PD_SCL, when we know DOUT will be stable. + GPIO.output(self.PD_SCK, True) + GPIO.output(self.PD_SCK, False) + value = GPIO.input(self.DOUT) + + # Convert Boolean to int and return it. + return int(value) + + + def readNextByte(self): + byteValue = 0 + + # Read bits and build the byte from top, or bottom, depending + # on whether we are in MSB or LSB bit mode. + for x in range(8): + if self.bit_format == 'MSB': + byteValue <<= 1 + byteValue |= self.readNextBit() + else: + byteValue >>= 1 + byteValue |= self.readNextBit() * 0x80 + + # Return the packed byte. + return byteValue + + + def readRawBytes(self): + # Wait for and get the Read Lock, incase another thread is already + # driving the HX711 serial interface. + self.readLock.acquire() + + start_time = time.time() # Speichert die Startzeit + + # Wait until HX711 is ready for us to read a sample. Max 5 Seconds + while not self.is_ready(): + if time.time() - start_time > 5: # Überprüfen, ob 5 Sekunden vergangen sind + print("Timeout: Sensor nicht bereit") + return [None, None, None] # Beendet die Funktion nach 5 Sekunden + time.sleep(0.1) # Eine kleine Pause, um das ständige Polling zu reduzieren + + # Read three bytes of data from the HX711. + firstByte = self.readNextByte() + secondByte = self.readNextByte() + thirdByte = self.readNextByte() + + # HX711 Channel and gain factor are set by number of bits read + # after 24 data bits. + for i in range(self.GAIN): + # Clock a bit out of the HX711 and throw it away. + self.readNextBit() + + # Release the Read Lock, now that we've finished driving the HX711 + # serial interface. + self.readLock.release() + + # Depending on how we're configured, return an orderd list of raw byte + # values. + if self.byte_format == 'LSB': + return [thirdByte, secondByte, firstByte] + else: + return [firstByte, secondByte, thirdByte] + + + def read_long(self): + # Get a sample from the HX711 in the form of raw bytes. + dataBytes = self.readRawBytes() + + + if self.DEBUG_PRINTING: + print((dataBytes,)) + + # Join the raw bytes into a single 24bit 2s complement value. + twosComplementValue = ((dataBytes[0] << 16) | + (dataBytes[1] << 8) | + dataBytes[2]) - valueList.sort() - - # We'll be trimming 20% of outlier samples from top and bottom of collected set. - trimAmount = int(len(valueList) * 0.2) - - # Trim the edge case values. - valueList = valueList[trimAmount:-trimAmount] - - # Return the mean of remaining samples. - return sum(valueList) / len(valueList) - - - # A median-based read method, might help when getting random value spikes - # for unknown or CPU-related reasons - def read_median(self, times=3): - if times <= 0: - raise ValueError("HX711::read_median(): times must be greater than zero!") - - # If times == 1, just return a single reading. - if times == 1: - return self.read_long() - - valueList = [] - - for x in range(times): - valueList += [self.read_long()] - - valueList.sort() - - # If times is odd we can just take the centre value. - if (times & 0x1) == 0x1: - return valueList[len(valueList) // 2] - else: - # If times is even we have to take the arithmetic mean of - # the two middle values. - midpoint = len(valueList) / 2 - return sum(valueList[midpoint:midpoint+2]) / 2.0 + if self.DEBUG_PRINTING: + print(("Twos: 0x%06x" % twosComplementValue)) + + # Convert from 24bit twos-complement to a signed value. + signedIntValue = self.convertFromTwosComplement24bit(twosComplementValue) + + # Record the latest sample value we've read. + self.lastVal = signedIntValue + + # Return the sample value we've read from the HX711. + return int(signedIntValue) + + + def read_average(self, times=3): + # Make sure we've been asked to take a rational amount of samples. + if times <= 0: + raise ValueError("HX711()::read_average(): times must >= 1!!") + + # If we're only average across one value, just read it and return it. + if times == 1: + return self.read_long() + + # If we're averaging across a low amount of values, just take the + # median. + if times < 5: + return self.read_median(times) + + # If we're taking a lot of samples, we'll collect them in a list, remove + # the outliers, then take the mean of the remaining set. + valueList = [] + + for x in range(times): + valueList += [self.read_long()] + + valueList.sort() + + # We'll be trimming 20% of outlier samples from top and bottom of collected set. + trimAmount = int(len(valueList) * 0.2) + + # Trim the edge case values. + valueList = valueList[trimAmount:-trimAmount] + + # Return the mean of remaining samples. + return sum(valueList) / len(valueList) - # Compatibility function, uses channel A version - def get_value(self, times=3): - return self.get_value_A(times) + # A median-based read method, might help when getting random value spikes + # for unknown or CPU-related reasons + def read_median(self, times=3): + if times <= 0: + raise ValueError("HX711::read_median(): times must be greater than zero!") + + # If times == 1, just return a single reading. + if times == 1: + return self.read_long() + + valueList = [] + + for x in range(times): + valueList += [self.read_long()] + + valueList.sort() + + # If times is odd we can just take the centre value. + if (times & 0x1) == 0x1: + return valueList[len(valueList) // 2] + else: + # If times is even we have to take the arithmetic mean of + # the two middle values. + midpoint = len(valueList) / 2 + return sum(valueList[midpoint:midpoint+2]) / 2.0 - def get_value_A(self, times=3): - return self.read_median(times) - self.get_offset_A() + # Compatibility function, uses channel A version + def get_value(self, times=3): + return self.get_value_A(times) - def get_value_B(self, times=3): - # for channel B, we need to set_gain(32) - g = self.get_gain() - self.set_gain(32) - value = self.read_median(times) - self.get_offset_B() - self.set_gain(g) - return value + def get_value_A(self, times=3): + return self.read_median(times) - self.get_offset_A() - # Compatibility function, uses channel A version - def get_weight(self, times=3): - return self.get_weight_A(times) + def get_value_B(self, times=3): + # for channel B, we need to set_gain(32) + g = self.get_gain() + self.set_gain(32) + value = self.read_median(times) - self.get_offset_B() + self.set_gain(g) + return value - def get_weight_A(self, times=3): - value = self.get_value_A(times) - value = value / self.REFERENCE_UNIT - return value + # Compatibility function, uses channel A version + def get_weight(self, times=3): + return self.get_weight_A(times) - def get_weight_B(self, times=3): - value = self.get_value_B(times) - value = value / self.REFERENCE_UNIT_B - return value - - # Sets tare for channel A for compatibility purposes - def tare(self, times=15): - self.tare_A(times) - - - def tare_A(self, times=15): - # Backup REFERENCE_UNIT value - backupReferenceUnit = self.get_reference_unit_A() - self.set_reference_unit_A(1) - - value = self.read_average(times) + def get_weight_A(self, times=3): + value = self.get_value_A(times) + value = value / self.REFERENCE_UNIT + return value - if self.DEBUG_PRINTING: - print(("Tare A value:", value)) - - self.set_offset_A(value) + def get_weight_B(self, times=3): + value = self.get_value_B(times) + value = value / self.REFERENCE_UNIT_B + return value - # Restore the reference unit, now that we've got our offset. - self.set_reference_unit_A(backupReferenceUnit) + + # Sets tare for channel A for compatibility purposes + def tare(self, times=15): + self.tare_A(times) + + + def tare_A(self, times=15): + # Backup REFERENCE_UNIT value + backupReferenceUnit = self.get_reference_unit_A() + self.set_reference_unit_A(1) + + value = self.read_average(times) - return value + if self.DEBUG_PRINTING: + print(("Tare A value:", value)) + + self.set_offset_A(value) + # Restore the reference unit, now that we've got our offset. + self.set_reference_unit_A(backupReferenceUnit) - def tare_B(self, times=15): - # Backup REFERENCE_UNIT value - backupReferenceUnit = self.get_reference_unit_B() - self.set_reference_unit_B(1) + return value - # for channel B, we need to set_gain(32) - backupGain = self.get_gain() - self.set_gain(32) - value = self.read_average(times) + def tare_B(self, times=15): + # Backup REFERENCE_UNIT value + backupReferenceUnit = self.get_reference_unit_B() + self.set_reference_unit_B(1) - if self.DEBUG_PRINTING: - print(("Tare B value:", value)) - - self.set_offset_B(value) + # for channel B, we need to set_gain(32) + backupGain = self.get_gain() + self.set_gain(32) - # Restore gain/channel/reference unit settings. - self.set_gain(backupGain) - self.set_reference_unit_B(backupReferenceUnit) - - return value + value = self.read_average(times) + if self.DEBUG_PRINTING: + print(("Tare B value:", value)) + + self.set_offset_B(value) - - def set_reading_format(self, byte_format="LSB", bit_format="MSB"): - if byte_format == "LSB": - self.byte_format = byte_format - elif byte_format == "MSB": - self.byte_format = byte_format - else: - raise ValueError("Unrecognised byte_format: \"%s\"" % byte_format) + # Restore gain/channel/reference unit settings. + self.set_gain(backupGain) + self.set_reference_unit_B(backupReferenceUnit) + + return value - if bit_format == "LSB": - self.bit_format = bit_format - elif bit_format == "MSB": - self.bit_format = bit_format - else: - raise ValueError("Unrecognised bitformat: \"%s\"" % bit_format) - + + def set_reading_format(self, byte_format="LSB", bit_format="MSB"): + if byte_format == "LSB": + self.byte_format = byte_format + elif byte_format == "MSB": + self.byte_format = byte_format + else: + raise ValueError("Unrecognised byte_format: \"%s\"" % byte_format) + if bit_format == "LSB": + self.bit_format = bit_format + elif bit_format == "MSB": + self.bit_format = bit_format + else: + raise ValueError("Unrecognised bitformat: \"%s\"" % bit_format) - # sets offset for channel A for compatibility reasons - def set_offset(self, offset): - self.set_offset_A(offset) + - def set_offset_A(self, offset): - self.OFFSET = offset - def set_offset_B(self, offset): - self.OFFSET_B = offset + # sets offset for channel A for compatibility reasons + def set_offset(self, offset): + self.set_offset_A(offset) - def get_offset(self): - return self.get_offset_A() + def set_offset_A(self, offset): + self.OFFSET = offset - def get_offset_A(self): - return self.OFFSET + def set_offset_B(self, offset): + self.OFFSET_B = offset - def get_offset_B(self): - return self.OFFSET_B + def get_offset(self): + return self.get_offset_A() + def get_offset_A(self): + return self.OFFSET - - def set_reference_unit(self, reference_unit): - self.set_reference_unit_A(reference_unit) + def get_offset_B(self): + return self.OFFSET_B - - def set_reference_unit_A(self, reference_unit): - # Make sure we aren't asked to use an invalid reference unit. - if reference_unit == 0: - raise ValueError("HX711::set_reference_unit_A() can't accept 0 as a reference unit!") - return - self.REFERENCE_UNIT = reference_unit + + def set_reference_unit(self, reference_unit): + self.set_reference_unit_A(reference_unit) - - def set_reference_unit_B(self, reference_unit): - # Make sure we aren't asked to use an invalid reference unit. - if reference_unit == 0: - raise ValueError("HX711::set_reference_unit_A() can't accept 0 as a reference unit!") - return + + def set_reference_unit_A(self, reference_unit): + # Make sure we aren't asked to use an invalid reference unit. + if reference_unit == 0: + raise ValueError("HX711::set_reference_unit_A() can't accept 0 as a reference unit!") + return - self.REFERENCE_UNIT_B = reference_unit + self.REFERENCE_UNIT = reference_unit + + def set_reference_unit_B(self, reference_unit): + # Make sure we aren't asked to use an invalid reference unit. + if reference_unit == 0: + raise ValueError("HX711::set_reference_unit_A() can't accept 0 as a reference unit!") + return - def get_reference_unit(self): - return get_reference_unit_A() + self.REFERENCE_UNIT_B = reference_unit - - def get_reference_unit_A(self): - return self.REFERENCE_UNIT - - def get_reference_unit_B(self): - return self.REFERENCE_UNIT_B - - - def power_down(self): - # Wait for and get the Read Lock, incase another thread is already - # driving the HX711 serial interface. - self.readLock.acquire() + def get_reference_unit(self): + return get_reference_unit_A() - # Cause a rising edge on HX711 Digital Serial Clock (PD_SCK). We then - # leave it held up and wait 100 us. After 60us the HX711 should be - # powered down. - GPIO.output(self.PD_SCK, False) - GPIO.output(self.PD_SCK, True) + + def get_reference_unit_A(self): + return self.REFERENCE_UNIT - time.sleep(0.0001) + + def get_reference_unit_B(self): + return self.REFERENCE_UNIT_B + + + def power_down(self): + # Wait for and get the Read Lock, incase another thread is already + # driving the HX711 serial interface. + self.readLock.acquire() - # Release the Read Lock, now that we've finished driving the HX711 - # serial interface. - self.readLock.release() + # Cause a rising edge on HX711 Digital Serial Clock (PD_SCK). We then + # leave it held up and wait 100 us. After 60us the HX711 should be + # powered down. + GPIO.output(self.PD_SCK, False) + GPIO.output(self.PD_SCK, True) + time.sleep(0.0001) - def power_up(self): - # Wait for and get the Read Lock, incase another thread is already - # driving the HX711 serial interface. - self.readLock.acquire() + # Release the Read Lock, now that we've finished driving the HX711 + # serial interface. + self.readLock.release() - # Lower the HX711 Digital Serial Clock (PD_SCK) line. - GPIO.output(self.PD_SCK, False) - # Wait 100 us for the HX711 to power back up. - time.sleep(0.0001) + def power_up(self): + # Wait for and get the Read Lock, incase another thread is already + # driving the HX711 serial interface. + self.readLock.acquire() - # Release the Read Lock, now that we've finished driving the HX711 - # serial interface. - self.readLock.release() + # Lower the HX711 Digital Serial Clock (PD_SCK) line. + GPIO.output(self.PD_SCK, False) - # HX711 will now be defaulted to Channel A with gain of 128. If this - # isn't what client software has requested from us, take a sample and - # throw it away, so that next sample from the HX711 will be from the - # correct channel/gain. - if self.get_gain() != 128: - self.readRawBytes() + # Wait 100 us for the HX711 to power back up. + time.sleep(0.0001) + # Release the Read Lock, now that we've finished driving the HX711 + # serial interface. + self.readLock.release() - def reset(self): - self.power_down() - self.power_up() + # HX711 will now be defaulted to Channel A with gain of 128. If this + # isn't what client software has requested from us, take a sample and + # throw it away, so that next sample from the HX711 will be from the + # correct channel/gain. + if self.get_gain() != 128: + self.readRawBytes() - def GPIOcleanup(self): - GPIO.cleanup() + + def reset(self): + self.power_down() + self.power_up() + + def GPIOcleanup(self): + GPIO.cleanup() # EOF - hx711.py diff --git a/LED/LEDtest.py b/LED/LEDtest.py index 76ee3f8..66237d4 100644 --- a/LED/LEDtest.py +++ b/LED/LEDtest.py @@ -58,7 +58,7 @@ # alle LEDs MCP #1 der Reihe nach jeweils blau, rot grün -print("der Reihe nach alle LED blau, dann rot, dann grün") +print("alle LED des MCP #1 der Reihe nach alle LED blau, dann rot, dann grün") mcp23017.write_byte_data (mcp1address,pinsAout,0x01) time.sleep(1) mcp23017.write_byte_data (mcp1address,pinsAout,0x00) @@ -95,6 +95,7 @@ time.sleep(1) # alle aus +print("alle LEDs aus") mcp23017.write_byte_data (mcp1address,pinsAout,0x00) mcp23017.write_byte_data (mcp1address,pinsBout,0x00) mcp23017.write_byte_data (mcp2address,pinsAout,0x00) @@ -102,6 +103,7 @@ time.sleep(1) # alle LEDs MCP #2 der Reihe nach jeweils blau, rot, grün +print("alle LED des MCP #2 der Reihe nach alle LED blau, dann rot, dann grün") mcp23017.write_byte_data (mcp2address,pinsAout,0x01) time.sleep(1) mcp23017.write_byte_data (mcp2address,pinsAout,0x00) @@ -153,6 +155,7 @@ # Blinkschleife while True: # alle LEDs aus + print("alle LEDs aus") mcp23017.write_byte_data (mcp1address,pinsAout,0x00) mcp23017.write_byte_data (mcp1address,pinsBout,0x00) mcp23017.write_byte_data (mcp2address,pinsAout,0x00) diff --git a/climate/climate2file.py b/climate/climate2file.py index 34ad68f..3eb52b8 100644 --- a/climate/climate2file.py +++ b/climate/climate2file.py @@ -217,9 +217,9 @@ def main(): if args.check: if (chip_id, chip_version) == (None, None): - return "Fehler" + return 1 else: - return f"OK - SensorID = {chip_id} - Sensorversion = {chip_version}" + return 0 # konkrete Werte lesen @@ -234,8 +234,10 @@ def main(): "BME280-" + str(chip_id) + str(DEVICE), # sensor_id = Filename und Spalte in der Datenbank ["temperatur", "luftdruck", "luftfeuchtigkeit"], # Liste Spaltennamen (temperature, pressure, humidity) # Tupel Sensorwerte - ) + ) + + return 0 if __name__=="__main__": result = main() - print(result) \ No newline at end of file + sys.exit(result) \ No newline at end of file diff --git a/defaults/caravanpiConfig.xml b/defaults/caravanpiConfig.xml index 90be7e2..9ec09af 100644 --- a/defaults/caravanpiConfig.xml +++ b/defaults/caravanpiConfig.xml @@ -1,70 +1,71 @@ - - - 1 - 1 - 1 - 1 - 1 - localhost - caravanpi - dasGeheimePasswort - CaravanPiValues - MQTTBrokerWebAdresse - 8883 - NodeRED-MQTT - dasGeheimePasswort - - - 0.000000 - 0.784532 - 9.257478 - 0.200000 - 0.200000 - 0.250000 - 0.250000 - 140 - 10 - 20 - - - 7800 - 2300 - 6200 - - - 3800 - 6000 - 23 - 24 - A - -219.123529412 - - - 0 - 8000 - 16 - 12 - A - 54.266798419 - - - 10 - 20 - 30 - 40 - - - 8 - 11 - 15 - 17 - - - 12.0 - 12.15 - 12.3 - - - -2 - - \ No newline at end of file + + + + 1 + 1 + 1 + 1 + 1 + localhost + caravanpi + dasGeheimePasswort + CaravanPiValues + MQTTBrokerWebAdresse + 8883 + NodeRED-MQTT + dasGeheimePasswort + + + 0.000000 + 0.784532 + 9.257478 + 0.200000 + 0.200000 + 0.250000 + 0.250000 + 140 + 10 + 20 + + + 7900.0 + 2300.0 + 6200.0 + + + 3800 + 6000 + 23 + 24 + A + -219.123529412 + + + 0 + 8000 + 16 + 12 + A + 54.266798419 + + + 10 + 20 + 30 + 40 + + + 8 + 11 + 15 + 17 + + + 12.0 + 12.15 + 12.3 + + + -2 + + diff --git a/gas-weight/gasScale2file.py b/gas-weight/gasScale2file.py index 8e3965e..6c6dada 100644 --- a/gas-weight/gasScale2file.py +++ b/gas-weight/gasScale2file.py @@ -21,11 +21,9 @@ from CaravanPiFilesClass import CaravanPiFiles -def cleanAndExit(): +def clean(): print ("Cleaning...") GPIO.cleanup() - print ("Bye!") - sys.exit() def write2file(gasCylinderNumber, wert, relativ): try: @@ -91,26 +89,35 @@ def main(): print ("max. Gas-Gewicht: ", fullWeight) print ("Pin DOUT: ", pin_dout) print ("Pin SCK: ", pin_sck) - print ("Channel: >>", channel, "<<") + print ("Channel: ", channel) print ("Reference Unit: ", refUnit) # Erstellen der Instanzen der Librarys hxlib = HX711(pin_dout, pin_sck) - hxlib.set_reading_format("MSB", "MSB") - if channel == "A": - hxlib.set_reference_unit_A(refUnit) - elif channel == "B": - hxlib.set_reference_unit_B(refUnit) - else: - print("invalid HX711 channel: ", channel) - print("set channel to A") - channel = "A" - hxlib.set_reference_unit_A(refUnit) + try: + if hxlib.error_status: + raise RuntimeError("Fehler bei der Initialisierung des HX711") - hxlib.reset() + if args.check: + # kein Fehler + clean() + return 0 + + hxlib.set_reading_format("MSB", "MSB") + + if channel == "A": + hxlib.set_reference_unit_A(refUnit) + elif channel == "B": + hxlib.set_reference_unit_B(refUnit) + else: + print("invalid HX711 channel: ", channel) + print("set channel to A") + channel = "A" + hxlib.set_reference_unit_A(refUnit) + + hxlib.reset() - try: # read sensor if channel == "B": weight = hxlib.get_weight_B(5) @@ -124,7 +131,6 @@ def main(): print ("aktuelle Messung Gaswaage: ", weight) - nettoWeight = weight - tare - emptyWeight nettoLevel = (nettoWeight/fullWeight) * 100 @@ -133,11 +139,20 @@ def main(): write2file(gasCylinderNumber, nettoWeight, nettoLevel) - except (KeyboardInterrupt, SystemExit): - cleanAndExit() + except RuntimeError as e: + print(f"ERROR - HX711 - Initialisierungsfehler: {e}") + clean() + return 1 + + except Error as e: + print(f"ERROR - HX711 - anderer Fehler: {e}") + clean() + return 1 - cleanAndExit() + clean() + return 0 -if __name__ == "__main__": - main() +if __name__=="__main__": + result = main() + sys.exit(result) \ No newline at end of file diff --git a/html-flask/checks_routes.py b/html-flask/checks_routes.py new file mode 100644 index 0000000..d8ae6f2 --- /dev/null +++ b/html-flask/checks_routes.py @@ -0,0 +1,411 @@ +# +# +# + +import os +import glob +import sys +import subprocess +import requests +import importlib.util +import smbus2 + +from flask import render_template +from time import sleep + +# ----------------------------------------------- +# CaravanPi File/MARIADB/MQTT library einbinden +# ----------------------------------------------- +sys.path.append('/home/pi/CaravanPi/.lib') +from CaravanPiFilesClass import CaravanPiFiles + + +# Globale Variable zur Speicherung der Ergebnisse +check_list = [ + {'name': 'Raspberry Pi', 'key': 'check_raspberrypi', 'run_check': True}, + {'name': 'MagicMirror', 'key': 'check_magicmirror', 'run_check': True}, + {'name': 'MariaDB', 'key': 'check_mariadb', 'run_check': True}, + {'name': 'Grafana', 'key': 'check_grafana', 'run_check': True}, + {'name': 'Apache Webserver', 'key': 'check_apache', 'run_check': True}, + {'name': '1-Wire Bus', 'key': 'check_1_wire', 'run_check': True}, + {'name': 'I2C Bus', 'key': 'check_i2c', 'run_check': True}, + {'name': 'Wägezelle HX711', 'key': 'check_hx711', 'run_check': True}, +] + +# Initialisiere check_results automatisch basierend auf check_list +check_results = {check['key']: {'result': None, 'color': None} for check in check_list} + +# Globale Variable mit den erwarteten I2C Bus Geräten +i2c_bus_number = 1 +i2c_expected_device_addresses = [0x15, 0x16, 0x35, 0x4c, 0x4d] # Hexadezimalwerte der Adressen 21, 22, 53, 76 und 77 + +# ========================================================================================================================================================= +# +# check Routinen +# +# ========================================================================================================================================================= + +# --------------------------------------------------------------------------------------------- +# Raspberry Pi Version +# ---------------------------------------------------------------------------------------------- + +def check_raspberrypi(): + try: + with open('/proc/cpuinfo', 'r') as f: + for line in f: + if line.startswith('Revision'): + revision = line.split(':')[1].strip() + return interpret_revision(revision) + except Exception as e: + return f"Fehler beim Auslesen: {e}" + +def interpret_revision(revision): + # Stand 2024-01-06 + # siehe https://github.com/raspberrypi/documentation/blob/develop/documentation/asciidoc/computers/raspberry-pi/revision-codes.adoc + pi_models = { + '900021': 'Raspberry Pi A+', + '900032': 'Raspberry Pi B+', + '900092': 'Raspberry Pi Zero', + '900093': 'Raspberry Pi Zero', + '9000c1': 'Raspberry Pi Zero W', + '9020e0': 'Raspberry Pi 3A+', + '920092': 'Raspberry Pi Zero', + '920093': 'Raspberry Pi Zero', + '900061': 'Raspberry Pi CM1', + 'a01040': 'Raspberry Pi 2B', + 'a01041': 'Raspberry Pi 2B', + 'a02082': 'Raspberry Pi 3B', + 'a020a0': 'Raspberry Pi CM3', + 'a020d3': 'Raspberry Pi 3B+', + 'a02042': 'Raspberry Pi 2B', + 'a21041': 'Raspberry Pi 2B', + 'a22042': 'Raspberry Pi 2B', + 'a22082': 'Raspberry Pi 3B', + 'a220a0': 'Raspberry Pi CM3', + 'a32082': 'Raspberry Pi 3B', + 'a52082': 'Raspberry Pi 3B', + 'a22083': 'Raspberry Pi 3B', + 'a02100': 'Raspberry Pi CM3+', + 'a03111': 'Raspberry Pi 4B', + 'b03111': 'Raspberry Pi 4B', + 'b03112': 'Raspberry Pi 4B', + 'b03114': 'Raspberry Pi 4B', + 'b03115': 'Raspberry Pi 4B', + 'c03111': 'Raspberry Pi 4B', + 'c03112': 'Raspberry Pi 4B', + 'c03114': 'Raspberry Pi 4B', + 'c03115': 'Raspberry Pi 4B', + 'd03114': 'Raspberry Pi 4B', + 'd03115': 'Raspberry Pi 4B', + 'c03130': 'Raspberry Pi 400', + 'a03140': 'Raspberry Pi CM4', + 'b03140': 'Raspberry Pi CM4', + 'c03140': 'Raspberry Pi CM4', + 'd03140': 'Raspberry Pi CM4', + '902120': 'Raspberry Pi Zero 2 W', + 'c04170': 'Raspberry Pi 5', + 'd04170': 'Raspberry Pi 5', + # Weitere Revisionsnummern können hier hinzugefügt werden + } + model = pi_models.get(revision, 'Unbekanntes Modell') + return f"{model} ({revision})" + + +# --------------------------------------------------------------------------------------------- +# MagicMirror über pm2 status +# ---------------------------------------------------------------------------------------------- + +def check_magicmirror(): + try: + # Führe das Kommando 'pm2 status' aus und erfasse die Ausgabe + result = subprocess.run(['pm2', 'status'], stdout=subprocess.PIPE, text=True) + + # Überprüfe jede Zeile der Ausgabe + for line in result.stdout.split('\n'): + if 'MagicMirror' in line and 'online' in line: + return True + + return False + + except Exception as e: + print(f"Ein Fehler ist aufgetreten: {e}") + return False + +# --------------------------------------------------------------------------------------------- +# MariaDB über den Aufbau einer Verbindung +# ---------------------------------------------------------------------------------------------- +def check_mariadb(): + try: + cplib = CaravanPiFiles() + connection = cplib.create_db_connection() + + # Überprüfen Sie, ob die Verbindung erfolgreich hergestellt wurde + if connection is not None: + connection.disconnect() # Schließen Sie die Verbindung, wenn sie erfolgreich hergestellt wurde + return True + else: + return False + + except Exception as e: + print(f"Ein Fehler ist aufgetreten: {e}") + return False + +# --------------------------------------------------------------------------------------------- +# Grafana über das Aufrufen der Website +# ---------------------------------------------------------------------------------------------- +def check_grafana(): + try: + # Verwende localhost, da das Skript auf demselben Gerät läuft + response = requests.get("http://localhost:3000/login") + if response.status_code == 200: + return True + else: + return False + except Exception as e: + print(f"Fehler beim Verbinden zu Grafana: {e}") + return False + +# --------------------------------------------------------------------------------------------- +# Apache Webserver über den Dienst +# ---------------------------------------------------------------------------------------------- +def check_apache(): + # Der Dienstname variiert je nach Distribution (z.B. 'httpd' oder 'apache2') + apache_service_name = 'apache2' # oder 'httpd' für andere Distributionen + + # Überprüfe, ob der Apache-Dienst existiert + try: + subprocess.run(['systemctl', 'is-active', '--quiet', apache_service_name], check=True) + return True + except subprocess.CalledProcessError: + print("Apache Webserver ist entweder nicht installiert oder nicht aktiv.") + return False + +# --------------------------------------------------------------------------------------------- +# 1-wire Bus prüfen +# ---------------------------------------------------------------------------------------------- +def check_1_wire(): + # Pfad, wo die 1-Wire-Geräte im Dateisystem erscheinen + base_dir = '/sys/bus/w1/devices/' + + try: + # Stelle sicher, dass der 1-Wire-Ordner existiert + if not os.path.exists(base_dir): + print("1-Wire-Ordner nicht gefunden. Ist der 1-Wire-Bus aktiviert?") + return False + + # Liste alle Geräte im 1-Wire-Bus auf + device_folders = glob.glob(base_dir + '28*') # 28* ist der übliche Präfix für DS18B20-Geräte + + if not device_folders: + print("Keine 1-Wire-Geräte gefunden.") + return False + + print(f"Gefundene 1-Wire-Geräte: {device_folders}") + return True + + except Exception as e: + print(f"Fehler beim Überprüfen des 1-Wire-Bus: {e}") + return False + +# --------------------------------------------------------------------------------------------- +# i2c und die erwarteten Geräte über smbus2 +# ---------------------------------------------------------------------------------------------- +def scan_i2c_bus(bus_number): + bus = smbus2.SMBus(bus_number) + device_addresses = [] + for device in range(128): + try: + bus.read_byte(device) + device_addresses.append(hex(device)) + except: # Gerät an dieser Adresse existiert nicht + continue + bus.close() + return device_addresses + +def check_i2c(): + found_devices = set(scan_i2c_bus(i2c_bus_number)) + expected_devices = set(i2c_expected_device_addresses) + + if found_devices == expected_devices: + return "OK" + elif found_devices.issubset(expected_devices): + missing_devices = expected_devices - found_devices + # return f"Fehler - folgende Devices fehlen: {', '.join(missing_devices)}" + return f"Fehler - nur folgende Devices gefunden: {', '.join(found_devices)}" + else: + extra_devices = found_devices - expected_devices + # return f"Fehler - unerwartete Devices gefunden: {', '.join(extra_devices)}" + return f"Fehler - unerwartete Devices gefunden" + +# --------------------------------------------------------------------------------------------- +# hx711 prüfen +# ---------------------------------------------------------------------------------------------- +def check_hx711(): + script_path = "/home/pi/CaravanPi/gas-weight/gasScale2file.py" + args = ["python3", "-u", script_path, "-g", "1", "-s", "-c"] + + try: + # Führe das externe Skript aus und erhalte den Rückgabestatus + result = subprocess.run(args, stdout=subprocess.PIPE, stderr=subprocess.PIPE, text=True) + + if result.returncode == 0: + print("HX711-Prüfung erfolgreich: ", result.stdout) + return True + else: + print("HX711-Prüfung fehlgeschlagen: ", result.stderr) + return False + + except Exception as e: + print(f"Fehler beim Ausführen des Skripts: {e}") + return False + +# --------------------------------------------------------------------------------------------- +# sind bestimmte python module installiert? +# ---------------------------------------------------------------------------------------------- + +def check_python_modul(module_name): + module_spec = importlib.util.find_spec(module_name) + return module_spec is not None + + """ + # Code Schnipsel + # falls Modul smbus installiert ist, bindes es ein + + smbus2 = None + + if is_module_installed('smbus2'): + smbus2 = importlib.import_module('smbus2') + print("Modul 'smbus2' erfolgreich importiert.") + else: + print("Modul 'smbus2' ist nicht installiert. Bitte installieren Sie es, um fortzufahren.") + + # Beispiel, wie das Modul verwendet wird, vorausgesetzt, es ist installiert + if smbus2: + # Hier können Sie Funktionen von smbus2 verwenden + pass + + """ +# +# alle Routen +# + +def register_checks_routes(app): + + @app.route('/checks') + def check_home(): + # Results zurücksetzen + global check_results + check_results = {check['key']: {'result': None, 'color': None} for check in check_list} + return render_template('check_base_template.html', title='Start der Checks', current_check='Start', check_list=check_list, check_results=check_results, next_check_route='route_check_raspberrypi') + + @app.route('/check_raspberrypi') + def route_check_raspberrypi(): + # Suchen des Raspberry Pi Check in der check_list + check_info = next((item for item in check_list if item['key'] == 'check_raspberrypi'), None) + + # Überprüfen, ob der Check ausgeführt werden soll + if check_info and check_info['run_check']: + # Check durchführen + result = check_raspberrypi() + check_results['check_raspberrypi']['result'] = result + check_results['check_raspberrypi']['color'] = 'green' + else: + # Ansonsten in results als nicht ausgeführt definieren + check_results['check_raspberrypi']['result'] = 'Nicht ausgeführt' + check_results['check_raspberrypi']['color'] = 'grey' + return render_template('check_base_template.html', title='Check Raspberry Pi', current_check='check_raspberrypi', check_list=check_list, check_results=check_results, next_check_route='route_check_magicmirror') + + @app.route('/check_magicmirror') + def route_check_magicmirror(): + # Suchen des MagicMirror-Check in der check_list + check_info = next((item for item in check_list if item['key'] == 'check_magicmirror'), None) + + # Überprüfen, ob der Check ausgeführt werden soll + if check_info and check_info['run_check']: + # Check durchführen + result = check_magicmirror() + check_results['check_magicmirror']['result'] = 'OK' if result else 'Fehler' + check_results['check_magicmirror']['color'] = 'green' if result else 'red' + else: + # Ansonsten in results als nicht ausgeführt definieren + check_results['check_magicmirror']['result'] = 'Nicht ausgeführt' + check_results['check_magicmirror']['color'] = 'grey' + + return render_template('check_base_template.html', title='Check MagicMirror', current_check='check_magicmirror', check_list=check_list, check_results=check_results, next_check_route='route_check_mariadb') + + @app.route('/check_mariadb') + def route_check_mariadb(): + check_info = next((item for item in check_list if item['key'] == 'check_mariadb'), None) + if check_info and check_info['run_check']: + result = check_mariadb() + check_results['check_mariadb']['result'] = 'OK' if result else 'Fehler' + check_results['check_mariadb']['color'] = 'green' if result else 'red' + else: + check_results['check_mariadb']['result'] = 'Nicht ausgeführt' + check_results['check_mariadb']['color'] = 'grey' + return render_template('check_base_template.html', title='Check MariaDB', current_check='check_mariadb', check_list=check_list, check_results=check_results, next_check_route='route_check_grafana') + + @app.route('/check_grafana') + def route_check_grafana(): + check_info = next((item for item in check_list if item['key'] == 'check_grafana'), None) + if check_info and check_info['run_check']: + result = check_grafana() + check_results['check_grafana']['result'] = 'OK' if result else 'Fehler' + check_results['check_grafana']['color'] = 'green' if result else 'red' + else: + check_results['check_grafana']['result'] = 'Nicht ausgeführt' + check_results['check_grafana']['color'] = 'grey' + return render_template('check_base_template.html', title='Check Grafana', current_check='check_grafana', check_list=check_list, check_results=check_results, next_check_route='route_check_apache') + + @app.route('/check_apache') + def route_check_apache(): + check_info = next((item for item in check_list if item['key'] == 'check_apache'), None) + if check_info and check_info['run_check']: + result = check_apache() + check_results['check_apache']['result'] = 'OK' if result else 'Fehler' + check_results['check_apache']['color'] = 'green' if result else 'red' + else: + check_results['check_apache']['result'] = 'Nicht ausgeführt' + check_results['check_apache']['color'] = 'grey' + return render_template('check_base_template.html', title='Check Apache Webserver', current_check='check_apache', check_list=check_list, check_results=check_results, next_check_route='route_check_1_wire') + + @app.route('/check_1_wire') + def route_check_1_wire(): + check_info = next((item for item in check_list if item['key'] == 'check_1_wire'), None) + if check_info and check_info['run_check']: + result = check_1_wire() + check_results['check_1_wire']['result'] = 'OK' if result else 'Fehler' + check_results['check_1_wire']['color'] = 'green' if result else 'red' + else: + check_results['check_1_wire']['result'] = 'Nicht ausgeführt' + check_results['check_1_wire']['color'] = 'grey' + return render_template('check_base_template.html', title='Check 1-Wire Bus', current_check='check_1_wire', check_list=check_list, check_results=check_results, next_check_route='route_check_i2c') + + @app.route('/check_i2c') + def route_check_i2c(): + check_info = next((item for item in check_list if item['key'] == 'check_i2c'), None) + if check_info and check_info['run_check']: + result = check_i2c() + check_results['check_i2c']['result'] = result + check_results['check_i2c']['color'] = 'green' if result == "OK" else 'red' + else: + check_results['check_i2c']['result'] = 'Nicht ausgeführt' + check_results['check_i2c']['color'] = 'grey' + return render_template('check_base_template.html', title='Check I2C Bus', current_check='check_i2c', check_list=check_list, check_results=check_results, next_check_route='route_check_hx711') + + @app.route('/check_hx711') + def route_check_hx711(): + check_info = next((item for item in check_list if item['key'] == 'check_hx711'), None) + if check_info and check_info['run_check']: + result = check_hx711() + check_results['check_hx711']['result'] = 'OK' if result else 'Fehler' + check_results['check_hx711']['color'] = 'green' if result else 'red' + else: + check_results['check_hx711']['result'] = 'Nicht ausgeführt' + check_results['check_hx711']['color'] = 'grey' + return render_template('check_base_template.html', title='Check Wägezelle HX711', current_check='check_hx711', check_list=check_list, check_results=check_results, next_check_route='route_check_final') + + + @app.route('/check_final') + def route_check_final(): + return render_template('check_base_template.html', title='Alle Checks abgeschlossen', current_check='Ende', check_list=check_list, check_results=check_results, next_check_route=None) diff --git a/html-flask/config_routes.py b/html-flask/config_routes.py new file mode 100644 index 0000000..4d2ea04 --- /dev/null +++ b/html-flask/config_routes.py @@ -0,0 +1,68 @@ +# +# +# + +import sys +from flask import Flask, render_template, request, redirect, url_for, flash + +# ----------------------------------------------- +# CaravanPi File/MARIADB/MQTT library einbinden +# ----------------------------------------------- +sys.path.append('/home/pi/CaravanPi/.lib') +from CaravanPiFilesClass import CaravanPiFiles + +cplib = CaravanPiFiles() + + + +def register_config_routes(app): + + @app.route('/configs', methods=['GET', 'POST']) + def config_home(): + return render_template('config.html') + + + + @app.route('/config_dimension_caravan', methods=['GET', 'POST']) + def config_dimension_caravan(): + + if request.method == 'POST': + if 'cancel' in request.form: + return redirect(url_for('config_home')) # Leitet um zur `/configs`-Route + + if 'submit' in request.form: + # Daten aus dem Formular extrahieren + lengthOverAll = request.form.get('lengthOverAll') + widthOverAll = request.form.get('widthOverAll') + lengthBody = request.form.get('lengthBody') + + print(lengthOverAll, widthOverAll, lengthBody) + + # Konvertierung der Daten in die richtigen Typen (z.B. in float) + try: + lengthOverAll = float(lengthOverAll) if lengthOverAll else None + widthOverAll = float(widthOverAll) if widthOverAll else None + lengthBody = float(lengthBody) if lengthBody else None + except ValueError: + # Behandlung von Konvertierungsfehlern + print (Fehler in Wertebehandlung) + pass + + # Aufruf der Funktion zum Schreiben der Daten + cplib.writeDimensions(lengthOverAll, widthOverAll, lengthBody) + flash('Die Werte wurden erfolgreich gespeichert') + + return redirect(url_for('config_dimension_caravan')) + + dimensions_tuple = cplib.readDimensions() + print(dimensions_tuple) + if dimensions_tuple is None: + dimensions = {} + else: + # Umwandlung des Tupels in ein Dictionary + dimensions = { + 'lengthOverAll': dimensions_tuple[0], + 'widthOverAll': dimensions_tuple[1], + 'lengthBody': dimensions_tuple[2] + } + return render_template('config_dimension_caravan.html', dimensions=dimensions) diff --git a/html-flask/flask-main.py b/html-flask/flask-main.py index b8032e9..8c6a28a 100644 --- a/html-flask/flask-main.py +++ b/html-flask/flask-main.py @@ -1,25 +1,22 @@ from flask import Flask, render_template +# importieren der weiteren Flask-Python-Files +from checks_routes import register_checks_routes +from config_routes import register_config_routes + app = Flask(__name__) +app.secret_key = 'd@o842FTz-_M2hbcU37N-ynvcwMNLe4tEoiZoH@4' # Zeichenfolge ist nicht wichtig, sollte kompliziert sein + +# registieren der importierten Routen +register_checks_routes(app) +register_config_routes(app) + +# definieren der zentralen Routen @app.route('/') def home(): # Startseite, von der aus die Checks gestartet werden return render_template('index-flask.html') # Startseite mit einem Button oder automatischer Weiterleitung zu '/check_database' -@app.route('/check_database') -def check_database(): - # Database-Check durchführen - result_database = True # Beispiel: Ergebnis des Checks - return render_template('check_database.html', result=result_database) - -@app.route('/check_mqtt') -def check_mqtt(): - # MQTT-Check durchführen - result_mqtt = True # Beispiel: Ergebnis des Checks - return render_template('check_mqtt.html', result=result_mqtt) - -# Weitere Routen für weitere Checks - if __name__ == '__main__': app.run(host='0.0.0.0', port=5000, debug=True) diff --git a/html-flask/static/css/caravanpi.css b/html-flask/static/css/caravanpi.css new file mode 100644 index 0000000..b37565b --- /dev/null +++ b/html-flask/static/css/caravanpi.css @@ -0,0 +1,227 @@ +/* --------------------------------------------------------- + * allgemeine Anweisungen + * --------------------------------------------------------- + */ + + html, body { + height: 100%; + margin: 0; + padding: 0; + display: flex; + flex-direction: column; + font-family: Arial, sans-serif; + background-color: #f2f2f2; /* Grauer Hintergrund */ +} +.container { + flex-grow: 1; /* Lässt den Container den verfügbaren Platz einnehmen */ + width: 100%; + max-width: 600px; + margin: 20px auto; + display: flex; + flex-direction: column; /* Ordnet die Inhalte vertikal an */ + background-color: white; + padding: 20px; + box-shadow: 0 0 10px rgba(0, 0, 0, 0.1); + position: relative; /* Für das Positionieren des Hamburger-Menüs */ +} +.logo { + text-align: center; /* Zentriert den Inhalt, inklusive des Logos */ +} +.content { + flex-grow: 1; /* Lässt den Inhalt den verfügbaren Platz einnehmen */ +} + +/* --------------------------------------------------------- + * Hamburger Menü + * --------------------------------------------------------- + */ + +.hamburger-menu { + position: absolute; + top: 20px; + right: 20px; + cursor: pointer; + z-index: 1000; +} +.hamburger-menu div { + width: 30px; + height: 3px; + background-color: black; + margin: 5px 0; +} +.hamburger-menu-content { + display: none; + position: absolute; + right: 0; + top: 50px; /* Position unter dem Hamburger-Icon */ + background: white; + padding: 10px; + box-shadow: -5px 0px 5px rgba(0, 0, 0, 0.2); +} +img.logo { + max-width: 200px; + width: 100%; + height: auto; + margin: 0 auto; +} +hr { + width: 80%; + margin: 20px auto; +} +.footer { + font-size: 12px; + text-align: center; + margin-top: 20px; +} + + +/* --------------------------------------------------------- + * Menüs + * --------------------------------------------------------- + */ + +.menu a, .hamburger-menu-content a { + display: block; + margin: 10px 0; + text-decoration: none; + color: #000; + font-size: 16px; + text-align: left; /* Linksbündige Ausrichtung */ + padding: 5px 10px; /* Etwas Padding für bessere Klickbarkeit */ +} +.menu a { + text-decoration: underline; + color: -webkit-link; + cursor: pointer; +} + +/* --------------------------------------------------------- + * Tabellen + * --------------------------------------------------------- + */ + + +table { + width: 100%; + border-collapse: collapse; +} +th, td { + padding: 8px; + text-align: left; +} +td:first-child { /* Ziel ist die erste Zelle jeder Zeile */ + width: 200px; +} +th, td { + border: none; /* Entfernt die Umrandung */ +} + + +/* --------------------------------------------------------- + * Buttons + * --------------------------------------------------------- + */ + + +.finish-button { + background-color: white; + color: black; + border: 1px solid black; + border-radius: 10px; + box-shadow: 3px 3px 5px grey; + padding: 15px 30px; + font-size: 18px; /* oder die gewünschte Größe */ + cursor: pointer; /* Zeigt den Mauszeiger als Hand, um die Klickbarkeit anzuzeigen */ + margin-top: 20px; + margin-right: 20px; + flex-grow: 1; /* Lässt die Buttons den verfügbaren Platz einnehmen */ +} +.finish-button:hover { + background-color: #f8f8f8; /* Leichte Farbänderung beim Überfahren mit der Maus */ +} + +.button-container { + display: flex; + justify-content: flex-start; /* oder 'flex-start' für keinen Zwischenraum */ + padding: 0 5px; +} + + + +/* --------------------------------------------------------- + * Formulare + * --------------------------------------------------------- + */ + +.caravanpi-form { + box-sizing: border-box; +} + +input, select, textarea { + background-color: #ddd; + font-size: 14px; + width: 90%; + padding: 12px; + border: 1px solid #ddd; + border-radius: 4px; + resize: vertical; +} + +input[type=text], select, textarea { + resize: vertical; +} + +input[type=number], select, textarea { + resize: none; +} + +input[type=submit] { + cursor: pointer; + width: 100%; +} + +label { + padding: 12px 12px 12px 0; + display: inline-block; +} + +.row { + display: flex; + justify-content: space-between; /* oder 'flex-start' */ +} + +/* --------------------------------------------------------- + * Flask flash Nachrichten + * --------------------------------------------------------- + */ + + .flash-message { + padding: 10px; + margin: 20px; + border: 1px solid transparent; + border-radius: 4px; + color: #333; + background-color: #dff0d8; /* helles Grün */ + border-color: #d6e9c6; /* dunkleres Grün */ + text-align: center; + font-size: 16px; +} + + +/* --------------------------------------------------------- + * responsiv Design für kleine Bildschirme + * --------------------------------------------------------- + */ + +@media screen and (max-width: 600px) { + /* CSS für kleine Bildschirme (Smartphones) */ + .container { + width: 100%; + max-width: none; /* Entfernt die maximale Breite */ + margin: 0; /* Entfernt den Rand, um die volle Breite zu nutzen */ + box-shadow: none; /* Entfernt den Schatten */ + } + body { + background-color: white; /* Setzt den Hintergrund auf Weiß */ + } +} diff --git a/html-flask/static/images/CaravanPiDimensionen.png b/html-flask/static/images/CaravanPiDimensionen.png new file mode 100644 index 0000000000000000000000000000000000000000..65fd74e2a16e016b8ef3fef3950ac59e4912c315 GIT binary patch literal 455227 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�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

=RgzXM>POZiy=9_X*4+;71TNNF(Mkn+gNF55 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

  • >p|S^^AH#hy|7$Fn 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

    sT_ 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 z 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 QWqw~z$M7cn#)Ieo7x)1yoB#j- literal 0 HcmV?d00001 diff --git a/html-flask/static/images/icons/android-icon-144x144.png b/html-flask/static/images/icons/android-icon-144x144.png new file mode 100644 index 0000000000000000000000000000000000000000..e04aae3336f2a6c2c5698f85fccfd6b0778b4d13 GIT binary patch literal 8829 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
  • MGumTab~hLG zw=28;n4d>HWO7kN(DG=%7e};msN#uuyk4&rT-}22(9o*j^+_Jm7P;@q2~paf)u%sF zW5$;%@}T!)E6hVG6tvcj<-H`7TX%siTExf^J*|h9TK+fmCwQhVAfAlFv^MpsM()kG z)r&^dy<{S1U*${<#0OQ|A2?3+i|NE|iMGodXM}hdKUac+Plwqi;df!OOo8t-Uyqkt zYQLjaPmlRlGkakPPoK^smKU~=s}mO6YkKzS@7dq>gV9+YpFfK;R4Tf=ag`5TyB`sY oAD$8X-+KZ67w>vVe|Yw4&0atw?9(uKcL$2HyoOx4jA_XK15(mB!2kdN literal 0 HcmV?d00001 diff --git a/html-flask/static/images/icons/android-icon-36x36.png b/html-flask/static/images/icons/android-icon-36x36.png new file mode 100644 index 0000000000000000000000000000000000000000..6222177f7f02d0e67c39dab466956062ab1d846a GIT binary patch literal 1446 zcmZ{idsNbA7{}kXI_t7d>t1eWv(?&ZP5D8Zz*aLaQ!72{tYzgU;E#)j5MoYJ%lieC zoKUDB>M%tCK@<@*1vM`?%jUeMCf@K?*?((0$NlW=oVm`~AJ6-o=Y2ol@AKX={r$YQ zZ?)SB0NC#1?GcFNBWtnwU1S^>r&c0qBjt?m82~i=ZGRCqA@zo+Krc6->iuXQDeOt! zfxZB6jskEy1%TJc)NLC8(GUO&p#b1T0PJUq4FO*xx_1BbL7vZ_KY#J!h1F^u9UYyY zpI=^Ho|>8(A0J;@T3TFOtgWq0N>1kTcmzO$?)*7 zOeRyS)z?{37K??!VAj-VTUuIHR#uEgV_aOks=7KnB7(=u77FhsB-|=0l7@u*P+nf1 zot>lA*2X8?vRHcZ1cIv}Au?GRl}giUwP|VTU0q!;nJkeMmEFHj3lD$tMV3;}gouD+&q=FJHM*SSXI=a73c~=;#|06BE6?y|S`0rBW52kdT$d zt*g`Vva|CG3iNt?YHC_6=VpDqUa3?jCMGEq$~$**CnqN>FH@|deGF=WH1`_`Uag&XEwKLG@8!N z&f?!VB7As*Z>N|2N1y5$Ky;8)&Az=^=b#MjSv7{q`ZUhc z(emCaJNE<)_OMqb=U4lb=(PJrxj(_R;MO9^0gd$>bI&kqrJ4<1~6}uG4<WIM$}u(o1S<)6{bNhJf+7=c&`6BPDAd0XgCb%uL=sGJIsp^HFffUL mAv)olAlL;u2{~gR7swG&I3oLF{V}aZIshL}KM$2#Xwu(PoR|dw literal 0 HcmV?d00001 diff --git a/html-flask/static/images/icons/android-icon-48x48.png b/html-flask/static/images/icons/android-icon-48x48.png new file mode 100644 index 0000000000000000000000000000000000000000..03f949cec6f85d2b91ea25aeea4c39d5907223c6 GIT binary patch literal 1889 zcmZ{i2~bm67KR_w-6bLxI<^hHOciZ+TZIK^B0De3BZLSE;UR)D zgD7?Y*&2o|Y$gPOKu8E%NLVFd4@(G(1QZfzmMF`VTGP{2&cm9jak^?=)p@7Rz2E$D=RA|lS!x3jf{*;PEKxYY;0|9&CbqABoZ18PQ7<8?ZJcY?w-B9 zy?3IW=g*(RaK!!lX)G4|Zffe}gsqr-cR}Y z&z?OC4~IraN2jKy0t15v1_pS%vd+#<2qGH{hSAZn*4DP9q}xAoxq(4Ju^i6$__(sG zD>N*uxTIuhX(==;d}wHBU_d2nX^CPotEwK2jg5Wp;mL_ZBvNU4c|}+_G&?&hmv{E{ z_1#HMrclwl!VsC<)6>J}3leVK^6>QR?&%Q-1PBtpzP=t17&JUQ926YfA(uxo7;|%T z*8>7sZ1%*&L`Z1ZHUH~Ep->>GUexQ!6sk(4x*ia~WZtN)tzBDRCzB~8uODPGnY6k2 z;lr$yyQ#s!Axfo^!H80+)FC0EY<6rMg0!@@-oBH}V#m_ykufZmeraiFX!urQQe$J| z{{DVJLBZPES`3Sg#NUL-l=SqBn+XZ?^Yc%iK3!Q|ozdxxM&ta#!sh0d$+WH0&91Ni zyk;~`O-&n&#%ZlqB9V@ajCLv%QmIs>R=2gai9{lWLLscFSzcbs%gbwM5LF9nnwpvv ziq87FIsuh6qcDkyna!Ic@8VqmWzC{+qrw*o_;&H`oRc%)B1zH?t69eM_;K+%C zFat`k?ukK-hH&!1Qq1{J->+V>+R>`fAyO0+~f>J zH#?;>%(#G#IA^SruXDSkrMXRdGL3PpS(X6NAOzvuB*(|cy?Op>hW&c~_1>$0SeaW| zI9nd4zdn4_ptZ_LVR9`GMM2z*>~uIglTIXhPJ4ag;ZBOO#v z&pdp16+Q0iK}j_DuUpbKw5ANIE=Y7(#g z#!_4Ik6W5h#T%0@pq2F<-Y3YFz3Uy_zw*_UuX6q{SDYKWYP7>oY3Z7ZZ+kZTRn#Jf zCOPNT)6#8M;$I=9^q14$irP0kXNU2DELZOGY)>DXz8?De_8Zqz>*=Mk^I+1DW-QBe zD3NQ`3mB6foO6K_pNkw$gcNkpen@M;TU_p&Gy~{1S=|@d7CYz=eS=&IKxkwHCQvyr zngAS#b+yNW_BhZFJV(Gf5f~9QW(F{}Dv9XpD%&|1bE9u8fHaE+2G=V?`hd zWDX3tN0aF=iA-lunYPXjE)M7HU2V~pj`pCFJr-ws73*vpi6CqO29uDG;J`Sb(LiYj z7Kg5X@B%diYz`d#BIBbe1cDoj8XpbEAOwOpipBxh$8Qyw-!Sib5(tqngC2-T*A!(3<3kjMi>+wi41ihTMWLSjV2NFo~s-kl1=j-h|o?Cc=2KZ|GWv^@_%pZnvXjW!MFjV*T+Q1AU9ZaOa%ER zgUX7D!~FMQFcch)LWRkWc$iGX!BjGi;^^uK!Y-gQ=!64ZKnGOefS!-@Poo6w0JvZB KauZ*KQvVGET#y3* literal 0 HcmV?d00001 diff --git a/html-flask/static/images/icons/android-icon-72x72.png b/html-flask/static/images/icons/android-icon-72x72.png new file mode 100644 index 0000000000000000000000000000000000000000..0b348cc2652d31cd873e3e94a539080409840da2 GIT binary patch literal 3441 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 literal 0 HcmV?d00001 diff --git a/html-flask/static/images/icons/android-icon-96x96.png b/html-flask/static/images/icons/android-icon-96x96.png new file mode 100644 index 0000000000000000000000000000000000000000..d8c2ae440a642a719d0f1843aea9918d02eb3be4 GIT binary patch literal 5034 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 F@Gt7fN}m7# literal 0 HcmV?d00001 diff --git a/html-flask/static/images/icons/apple-icon-114x114.png b/html-flask/static/images/icons/apple-icon-114x114.png new file mode 100644 index 0000000000000000000000000000000000000000..6acaf93311619eb4866f7968432f152dea808b55 GIT binary patch literal 6324 zcmd5=cT^MKwvG(}r6VA{gdzlpA@tr8kVp$%dT7!NA#|{S2ntA%jtB^7C>kON(xr)^ zC`F`qqtc{zxZ_=Kt@nF(t@rnP$(lK9X1=rcnLWFFXU7?%^yz3hX+a`b>bSz80vmkNX#J!S8}FH3ES`ML?jt(IC(P zaO>_*5GW7|0{wObfs`^qAa?)U4<;(W11e`jeI3y0-~Wro(p2CMjX%OV00g?k^7l9c z%Fg8gf!IWmI-2IeV=H-{IM$K8pHb+>_ch;|_zP|!_%*b&sH2~_{K?5A_L6w~MNmK5 zgVPttPh{4#r^42A=jCPgp;X<7^@B;PUHx>puEwWQZ}8m`?WUg@4a&u6>&cqGeV`9XnO^tHB!JgL|7CR6_3_Vx7A;l zm)mW1AHKN@A>#rA*OR9A=_8{+x+cyJ)b~2PieJ8rUfG@Onhctb8TJz5rr&(Pck;9? z*4D#otX=+jICK4E)56kJ3c@=5>eZ{WvFb-ml9H0Ivh|#1v2t+px8WgY)bf*(r0n>) z>F04u>MJ!zLvcES!7BEG$xz$1Q3EF@fuf?K+*O6%!?h?4OH20IKM)3$KcHkp+SHVq z3NOQh2M?m#oVe+`QoRURw*LG}d?@*~lyKg264$#EqH6i?6Ng*>p{QE-lU1PanIFjg60zc8#*Lvk``d z^GgngoOyYCRoF#?l+@HHb?q_;nOhnEq%D@gg=qD?`nIUU{zeATM$#kuk$m>xFR*}s zQ>#(13a_5N-a0BQPN(Q)X|aiw6#|RhI6Lb5KBv1I2?#=>P(MD#JO*$U6?RAqJll!J z-Q-y(z!LWypT2Adr%Oxo%gC?@oF@=qP$=Q216Jb z=~B0DZNY_vih>(?Kh8ochs@(?FWsrLTR$9xC$zQ-Xpsc40a#FN@VcP=8}`^XO%oF) zz$r#N!-@Qlu1QF^9PX^-Du$)U#nFg}h$3&^6jfH{igh^$T#wMDs3jwiDbz7q+zP?e zQT!U)1oU$7A5BPlW_!})4*KRncdBT}PN}+!hX=K;$rt#Qvf<9p&m{IqqR$;W;%TE9 zKUMV{t~K||^dCu-5z3HARLSBerov?Eo9f4K6XDOh&8L^$`}2f2;~3GbJ#I4l`}^UG zM7?hRc^olZX zh-_?bjvnt>dU|=;lwV+fSIl^SAn! z+#abE77{v#M*Hn8AX0Rotb(kx#K0xhw6rwX%J#-LTfaM7KTUvliaH#6 zKezcBLf$(UiF&RQM<6ULxTfak-}E9}LZh>CvtO3DNtRi@(bJmyQlOo?`g2BK{e(tW zR~L|EeCt+kQ^cD8&V;p;eFGvQLX|)$B#4)yo;wEzXa4?;PRqzRLk#imq!iWFWyQy1 z@89G1TO03sZMG&9J#(sZ442BdWS!2WHG{7oCAl-8N>hLQ=(Vb_u(3_To*aclZY~2KEv3Un3z~CtlfZFYw%BK zV^2>HR8bLWNM@P}UGf2a8yV>;p)%s{t=?XtBfRH_?JVehjn+sPF1Hw$%rmFHH|Z-X zEzJPf=jKgm85x=23EpMAvVBqp5IExE;%sR|n+lbqKW*jZ1VPS(PQDUMNXXtf&Ct-$ zKfx+b5)xeAD^tg|Z82QtkLDK@jSZ}>-rC;&`fVz)YhFM`CRN704_nuq|D@-JobMP1 z-<-D`7kOhN^Lf_n#v=K~&6_f6au0ibyH<9fFqnank&zwXujb`q?&CETRuDFjoX^B3 zi8l?OV=l3C@LbhI4_|0=1~bo|9+P+d6}b0~BTGt3-r7LIR|E3rzv>4$$>o?(GDP#A z=EUO^mVwA{(j)MI;UcThm zCal4YinjOe>@1HOS_a7%7<>5k4Leh^SbT|A9%B>jCqcV|fHg-0C>~P{Sqy4>ca6n# z%mzga3=QTqdzP0W7a4fwR^CsSl$K^7z&GHW%5OAYy!w1!$tzpWz<`!M_MFk+Q_R)U z!K)6Nl58@Fl;~0KPB593b%9j(IxaiAy4;~TQnO_@jQv_PzpP|JPtRo)dujK+T&J$Y zi+l6DUQCD)tg=xx$mDt6+ zf>fNa+R51^$?4e!X!I3!Y5O^x{>8k!yrJP?$)B>8LS$HDM8tB$rja>%k=WJL?&5I3 z!pxG&!OgKSZ0XP@FGE5Mt2fnb?T0s(|epFG!o0Ussw_U5phI7cZL|eO^Ybi# z-d^Rws(=8Dv$J4aT-^H32mAU6Q(sPs4TP=6XHw6`hSSW<>}XH49}9f_?}AfcA+n{~ zruJ(4-gzJ>0K;&8lYg3-dA_A(Mgsy%{gJUcG8nA8u(zjB1u-)trB6)QfdF63%*@nC zFTQXgh7n%waMMkXs?YXT*1e=F}?G!SN` z#qMul^z`&Ya3fNtrlxO4z0W_;w6V4ACX+EhR%Jh#*FB0nE!5tu4p=?P&C1NYTjH6k z6d2!0$Hl1iXMijXI5Ybt$V-XE7)Dk$wyMxxFM3{;_MhK5u3fw4J@JkywVRd9Du6J! z(eC?x9$&9G7MfNyU|KTa8+r2aQmv}5E7I*N2lkp%G5B6>$60yK{IxU$D7Cx2@|H3Z zabu=>#NOTC|7pJJE;qhjl`Z78crqe7`n)I?7Z*^ki#!KKrbe6d9hx_2*Laj4jx1ep z)=rpS6J@;IslDA{dP|EMu+6UTcxOuse^*le%*J9Q+^7xUODQQmdwbwkM=>?KUVU=Syb3`$8T(0$jUxC3a^<6WN#iN#WwmiArF5I0-3@bEv%?`HK|J*%JC>8 zZpECsUGPkT$ocFqU)Z)9>kd4|jKYYS%CU@Ng_PzZK}y?pEMMrO?d>JN)n=CKNB{?n zE^#7Sed_CW)9s)Ien0{WKVEVus;Wxq>qBXgNN_p1syl5|dR?6yJUmVztsB7$*5>Bz z`6s_D-;R40<}$W(0_%-pfcX03_Si~dp+Sd1slk<0h!oWo(2dn|00q^Rz7FSAszAQeO zw%Y9WL=QgFEAq&0@rF6oWU?<@p|D)sG^8&Z4mDDcu06Pu=MZ&EdbXnXR=+b5l9}`- zBRa{!kQz?h8{o%B{hm0scE&j8L_Zc8@xxWzZmu_ps0@ z_~qWu4vJDubG3^w!-{^>wYAhC3O=bheLT{gGWK|CS)}qLlIY@B&1}hsF9k;q93FzV z>&ybL+cyo+#Y_jeHQqCP)K}x<7X_WiT zO!)I5Z@K=)4+33by+_wKn^Q3%nxp&q?1!inFi=G&Cnt{%o>|Uyy{oRiGt+Vg!e-bY zYIp0$=Q^V;`wuO<&ASm)v3hTYZvOKrHRe1yDZ2)p`-4b0GbY@dyMO3>fAcz(oICTPux>-p zGDm_@FIe=ur{X|-hu3_w`WEAZM)r_h<4gJV?p%w-9Xf@y^oIiuO|Xc~oayib3kEhV z#}v%Y@+A4>cr7I*w`crt$HdsU#rAOLIvn1U78XBPdQ(Prv84V`rPc8f<#|-%=g$WA zVJm^<77~ZMe@T4eyBgD{`TeB+6V^9D*+b^+VY{okXmlcPL=upqBDc#j9_a`HEL_kK z*4x{QNNMkQoZ;c4YJft~A5N>@ophqK++%dkAGTnL`+{z< zxh49GI+R+Akvaxy+w;A`?SuLUgsC(0vu6?>o}LB%A!kHUxvpJpNl@7LSanv+(qwPL z!SCA>hx;p;@5F9Vq?zdVo|fZRo652-v8#RbCe9fII^~UTHlTfPdnD)x0#&b{y?IX; zCPPxdA1TbcxTySTIab;Fq8(gX3hd^9&Hi9W2@6f!gIIc}YU_2>O&JAvbP0`Hi91j_ z+kfGz0!C0GA|gMR>M!373eA>r?-yiT9;-{04DyQ;J^SPJ8{4kFJck!ezB~`koh!Gq z?pUAiQk;y;CJ@9S>EG`bd5J65k)g=@>FE~O%}f3w3Ysa@R7W^Gp80Z2Cf$W(Be&0F za(8!kt2eCUJ`YlmmEO$wZSKKCz17qC6%T^eojcd;cUij<^Iw*iUncDvycIhCvZR;@ zGzQp6F&_)Hxba+{V2g{GG)wcD-9yb3F$e^#s+u=kHezgQ7d`B3jZJE3RAdHtI6z_M zb`L)x`Zdt9ot>Q=Ts+!w;^yY&P*v5onHK*1=Cw_3m0+=*hc*VZ03`v)+{WI#17@^J z1&sXYEC+1LkthRz*F2m|ih4FMV0xsc&ced-Bq>4q`;%|*1YrBE!rMR5_Eh86Egn@> z)hCIGRiWFz_vA8+Wg!+^WGqP$R~tik_Ke!7Lw=>WqVd5t9Tx(L0yjoK?5g zH;CUn2AEEDkqUwE7eu}gqpgCZK7FcTYC7Q4_&Ulq>hKJ+dmoPZG8NG5aohYM06m7Dic>LeFODSw^N zXepFcQBHuk^yf4elZx`{*GA(Ztk7|UD5V=Fv@l-&(^Me%QB)tT=O*lX(5Z2Bdmk7f6<`0E<}btR;a0L zZTFB#tLNCK?OExlE380Fyrk}!>;Y#h9$mo$6(hdTSuSVJFT1yA@9k*0LLLgBJd{l* z(&!x1@9-pZ))-^4=(gDw-}i$684H?@$WTAsR2Pz$m!A^LF6qR6bYmfKhMiI3OmMET z`obFHC>Gu8*5xhtbvz)B7>67~<-IJg%04{t;4;x|^&&D-@0rMIVojO9B3NHagv{)R z$>;Qn#WPRKk*pvAQ(0WE-bSPs%(321}y*-}oXbhRMP%fEiL`o1T5k5)|&P6vmF z&+l9CR=IQ~rY0x%#b1#~-*N4~g-XZt1qIzX+M@w1G!eGeSZnIL*1LAJ@)rkAhGc?dps`nDcA@r`>w_8`L|Xs)Sp>c$CVJq!8u>I8@OOB7V+_xb<3Ved2{ z3ukZ2Eb_MtEsWE(!nr!(FiI|13^0IT(Cdnl*P)Uys5w+Y={j5qDlY+rDnX&JN8pkF zF~P^r)zdBHf1jW|oO>IXp!ZipfS(&K$O(%9A$^?OF-A`Ao-Vif<)q}L6eJb-0hMq` zsI2657{AGNIerfu&R1;R+xS#PL_6xksRnvyzgIpG%+* z#uulgWDGz9K-Wu8>!tq#^KYF>N*)+bcMlxsx+07LgpC0(?EjGSUl>bISDeRR$Y8ku zH2}H#4~UVc4+ax?&?(*sQ-{-WDcM}*Jb6e%gQRk;PQ{N(jEg4hJVO0 z^9;p+pjujKg=)*dBa44LLYpE%Zl2y4;Ps__d~x1>?$T~fcuyBU-vH_V{xH(cFqpFo y#tANiadL%WT%2Iea78#2BM+5>%EF-XP$^)B6tF(*{=!>80|=>$(y7#Py#FuIrPucW literal 0 HcmV?d00001 diff --git a/html-flask/static/images/icons/apple-icon-120x120.png b/html-flask/static/images/icons/apple-icon-120x120.png new file mode 100644 index 0000000000000000000000000000000000000000..aedfdfb2371fe6558fbe63b6d7378eae394b2780 GIT binary patch literal 6622 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 S(Lxm%0iuD_QLRw6iugaSO;aBL literal 0 HcmV?d00001 diff --git a/html-flask/static/images/icons/apple-icon-144x144.png b/html-flask/static/images/icons/apple-icon-144x144.png new file mode 100644 index 0000000000000000000000000000000000000000..e04aae3336f2a6c2c5698f85fccfd6b0778b4d13 GIT binary patch literal 8829 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 F@}FK;mJ^cm@POO_ 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 B+6e#v literal 0 HcmV?d00001 diff --git a/html-flask/static/images/icons/apple-icon-72x72.png b/html-flask/static/images/icons/apple-icon-72x72.png new file mode 100644 index 0000000000000000000000000000000000000000..0b348cc2652d31cd873e3e94a539080409840da2 GIT binary patch literal 3441 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 literal 0 HcmV?d00001 diff --git a/html-flask/static/images/icons/apple-icon-76x76.png b/html-flask/static/images/icons/apple-icon-76x76.png new file mode 100644 index 0000000000000000000000000000000000000000..b18456e8e83ffdb57a6519f0884122319ba077a8 GIT binary patch literal 3806 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 b02eVB=~;;fIQ+z literal 0 HcmV?d00001 diff --git a/html-flask/static/images/icons/apple-icon.png b/html-flask/static/images/icons/apple-icon.png new file mode 100644 index 0000000000000000000000000000000000000000..0c583235416a70322d75c0c589cd5eab69b5ada1 GIT binary patch literal 13378 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 b02eVB=~;;fIQ+z literal 0 HcmV?d00001 diff --git a/html-flask/static/images/icons/apple-touch-icon.png b/html-flask/static/images/icons/apple-touch-icon.png new file mode 100644 index 0000000000000000000000000000000000000000..48d0f49a0977f5b760a5ac1959cf511ff0281c3a GIT binary patch literal 10080 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 literal 0 HcmV?d00001 diff --git a/html-flask/static/images/icons/browserconfig.xml b/html-flask/static/images/icons/browserconfig.xml new file mode 100644 index 0000000..c554148 --- /dev/null +++ b/html-flask/static/images/icons/browserconfig.xml @@ -0,0 +1,2 @@ + +#ffffff \ No newline at end of file diff --git a/html-flask/static/images/icons/favicon-16x16.png b/html-flask/static/images/icons/favicon-16x16.png new file mode 100644 index 0000000000000000000000000000000000000000..973bb29112f576ceea74a23496bbabf52fbca8fe GIT binary patch literal 957 zcmZ{hdq`7J9LIn5LX9v8%A#OFMG)K0y=|^tdTq_=%9+mPqX&7n-E9|}8{0Lhzp|Hx zg!ZCL(+DIn%j%DiLP)2fuDwj%w9N;o_()xU1QmguMUVv@_?;iW^ZWe1-*Y(EGSXAl z#BYiRfHkUAg$C!f(TH7+_nrKNESy%DWNI0}i;C4h=#{vRacENH@XWJ$8W%i$szwcP zeh0vX%K+c;(S<31A_Op#4?x`m*kG%9ow*k`UT36fljrB>=jP^SW@Z)^79x>_+1XiV zM@M&e_u$~*$51E`2nGUyk&%&bc-ZgvH$HjN($X?MK0Y-y)!f`XFfdSE6I~4r4L5Jz zYHVz*ym8|}ZEaoM!=|RELqkK6NTjc?zo)0i>2!KL9-rUe+1csy`P$mrdwYAmUSB8_ z8Xg{=n3$NHoOHWAE|<&gcDr2f@oL9VyR)^mwX3Vk>-A1gPmhj{27|$HI6O8swz#a6XdiPRw#p#2URkGAvg*NS^JWX@>xKf#&URxrQWvcR$kEzwC4rLuVQCd}! zmveOFt*^`*RP^_~4=pp7Rla&vU%$Pg{*JifIr^Da)g^XsZF*m^sc zoXZ(#j-m8+1}7j9A>|W@Pa-YaLlGhhNp>MbAw-sK3;Z=;u^L$8x&IFw>aQul1Inm_ z!)oM;X*&Zd3vFW5w29Rh@R9@)!5+Sphb={XB<2$&FOx{(nK{lz35CVQ#R4`;A=hE^nY~JT1){UmJnjGloUzI zt8SNLBw>k87JHrnB$wZQwEq)sWiM$R)2P76o?-Cwg_c6@jMXGG(q~z{wa_8_^D#ml xN$T_rE!xe{29nX!q)sFiAx46dkeEagB)}5_d_ViQ@#ok9RLSXzXY%}uKLNS2evAMB literal 0 HcmV?d00001 diff --git a/html-flask/static/images/icons/favicon-32x32.png b/html-flask/static/images/icons/favicon-32x32.png new file mode 100644 index 0000000000000000000000000000000000000000..8f116d4ef4a34e0368e6d4c4998a6562c8fbc08c GIT binary patch literal 1353 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 F@Gt7fN}m7# literal 0 HcmV?d00001 diff --git a/html-flask/static/images/icons/favicon.ico b/html-flask/static/images/icons/favicon.ico new file mode 100644 index 0000000000000000000000000000000000000000..2b821bb8e413ed7614f0e23e07e332c953dc6121 GIT binary patch literal 1150 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
  • {% endif %} -

     

    -

     

    -

    Weitere Infos zum Projekt CaravanPi finden Sie auf der CaravanPi-Website und auf github

    - + {% include 'footer.html' %} diff --git a/html-flask/templates/check_base_template.html b/html-flask/templates/check_base_template.html index 01393a3..ce18c95 100644 --- a/html-flask/templates/check_base_template.html +++ b/html-flask/templates/check_base_template.html @@ -63,13 +63,9 @@

    Prüfung der Komponenten

    {% endif %} -

     

    -

    Weitere Infos zum Projekt CaravanPi finden Sie auf der CaravanPi-Website und auf github

    - + {% include 'footer.html' %} diff --git a/html-flask/templates/config.html b/html-flask/templates/config.html index f565bc1..9f4612e 100644 --- a/html-flask/templates/config.html +++ b/html-flask/templates/config.html @@ -32,14 +32,9 @@

    Einstellungen

    -

     

    -

     

    -

    Weitere Infos zum Projekt CaravanPi finden Sie auf der CaravanPi-Website und auf github

    - + {% include 'footer.html' %} diff --git a/html-flask/templates/config_caravanpi.html b/html-flask/templates/config_caravanpi.html index ce1eae0..b12ff5c 100644 --- a/html-flask/templates/config_caravanpi.html +++ b/html-flask/templates/config_caravanpi.html @@ -63,7 +63,7 @@

    CaravanPi Grundeinstellungen

    - +
    @@ -90,37 +90,45 @@

    CaravanPi Grundeinstellungen

    -
    - +
    +
    -
    +
    -
    +
    -
    +
    -
    +
    -
    - +
    +
    + + +
    -
    +
    -
    +
    @@ -146,47 +154,55 @@

    CaravanPi Grundeinstellungen

    -
    +
    -
    +
    -
    - +
    +
    -
    +
    -
    +
    -
    +
    -
    +
    -
    - -
    +
    +
    + + +
    +



    -

    Sonstige Einstellungen

    +

    Anzahl von Sensoren

    - +
    @@ -214,6 +230,243 @@

    CaravanPi Grundeinstellungen

    +

    +
    +

    Einstellungen für die Abfrageintervalle der Sensoren

    + + + +
    +
    + +
    +
    + +
    +
    + +
    +
    + +
    +
    + +
    +
    + +
    +
    + +
    +
    + +
    +
    + +
    +
    + +
    +
    + +
    +
    + +
    +
    + +
    +
    + +
    +
    + +
    +
    + +
    +
    + +
    +
    + + +

    +
    +

    Liontron Battery Management

    + +
    +
    + +
    +
    + +
    +
    + + + +

    +
    +

    Gassensor

    + +
    +
    + +
    +
    + +
    +
    + +
    +
    + +
    +
    + +
    +
    + +
    +
    + +
    +
    + +
    +
    +
    +
    + +
    +
    + +
    +
    + + + +

    +
    +

    230V Überwachung

    + +
    +
    + +
    +
    + +
    +
    + +
    +
    + +
    +
    + +
    +
    +
    +
    + +
    +
    + +
    +
    + + + +

    +
    +

    12V Bordbatterie Überwachung

    + +
    +
    + +
    +
    + +
    +
    + +
    +
    + +
    +
    + +
    +
    +
    +
    + +
    +
    + +
    +
    + + +

    +
    +

    12V Auto Überwachung

    + +
    +
    + +
    +
    + +
    +
    + +
    +
    + +
    +
    + +
    +
    +
    +
    + +
    +
    + +
    +
    + + + +

    +
    +

    Sonstige Einstellungen

    + + + +
    +
    + +
    +
    + +
    +
    + +
    +
    + +
    +
    + +
    +
    + +
    @@ -224,14 +477,9 @@

    CaravanPi Grundeinstellungen

    -

     

    -

     

    -

    Weitere Infos zum Projekt CaravanPi finden Sie auf der CaravanPi-Website und auf github

    - + {% include 'footer.html' %}
    @@ -239,6 +487,14 @@

    CaravanPi Grundeinstellungen

    + + + + diff --git a/html-flask/templates/reboot_shutdown.html b/html-flask/templates/reboot_shutdown.html index 23fa277..8b4c12b 100644 --- a/html-flask/templates/reboot_shutdown.html +++ b/html-flask/templates/reboot_shutdown.html @@ -28,13 +28,9 @@

    Der Raspberry Pi wird nun neu gestartet bzw. heruntergefahren

    -

     

    -

    Weitere Infos zum Projekt CaravanPi finden Sie auf der CaravanPi-Website und auf github

    - + {% include 'footer.html' %}
    diff --git a/html-flask/templates/test_LEDs.html b/html-flask/templates/test_LEDs.html new file mode 100644 index 0000000..33a2b40 --- /dev/null +++ b/html-flask/templates/test_LEDs.html @@ -0,0 +1,87 @@ + + + + + + CaravanPi Test LEDs + + + +
    +
    +
    +
    +
    +
    + +
    + +
    + +
    + +
    + +

    Test der LEDs zur Lageanzeige

    +

    + + + {% with messages = get_flashed_messages() %} + {% if messages %} + {% for message in messages %} +
    {{ message }}
    + {% endfor %} + {% endif %} + {% endwith %} + + +
    + +
    +
    +

    + Die LEDs an den Ecken, der Achse und an der Deichsel geben an, ob das Fahrzeug in der Waage steht. Der Farbcode wurde einprägsam gewählt.

    Grün = zu nahe an der grünen Wiese = zu tief.
    Blau = zu nahe am blauen Himmel = zu hoch.
    Rot = Stopp
    Blinkend = gleich kommt rot. +

    +
    +
    + +
    + + +
    + + +
    + + +
    + +
    + + +
    + + +
    + +
    + + +
    + +
    +
    + +
    + + {% include 'footer.html' %} +
    + + + + + + + diff --git a/html-flask/templates/test_buzzer.html b/html-flask/templates/test_buzzer.html new file mode 100644 index 0000000..6f7b693 --- /dev/null +++ b/html-flask/templates/test_buzzer.html @@ -0,0 +1,75 @@ + + + + + + CaravanPi Test Buzzer + + + +
    +
    +
    +
    +
    +
    + +
    + +
    + +
    + +
    + +

    Test des Buzzers

    +

    + + + {% with messages = get_flashed_messages() %} + {% if messages %} + {% for message in messages %} +
    {{ message }}
    + {% endfor %} + {% endif %} + {% endwith %} + + +
    + +
    +
    +

    + Der Buzzer wird benutzt, um auf startende Kalibrierungen hinzuweisen. +

    +
    +
    + +
    + + +
    + +
    + +
    + + +
    + +
    +
    + +
    + + {% include 'footer.html' %} +
    + + + + + + + diff --git a/html-flask/templates/test_switches.html b/html-flask/templates/test_switches.html new file mode 100644 index 0000000..65b9f74 --- /dev/null +++ b/html-flask/templates/test_switches.html @@ -0,0 +1,115 @@ + + + + + + CaravanPi Test Taster + + + +
    +
    +
    +
    +
    +
    + +
    + +
    + +
    + +
    + +

    Test der Taster

    +

    + + +
    + +
    +
    +

    + Achtung: Drücken Sie nicht den Ein/Aus Taster. Dieser wird hier nicht abgefangen und fürt zum Reboot oder Shutdown für den Raspberry Pi. +

    +
    +
    + +
    + {% if switchTestStarted %} +
    +

    Test läuft!

    +

    Drücken Sie nun einzelne Tasten. Etwas zeitverzögert wird hier angezeigt, welche Taste gedrückt wurde:

    +
    + {% endif %} + + {% with messages = get_flashed_messages() %} + {% if messages %} + {% for message in messages %} +
    {{ message }}
    + {% endfor %} + {% endif %} + {% endwith %} + + {% if not switchTestStarted %} + +
    + +
    + {% else %} +
    + {% endif %} +
    + + +
    + +
    +
    + +
    + + {% include 'footer.html' %} +
    + + + + + + + + diff --git a/html-flask/templates/tests.html b/html-flask/templates/tests_home.html similarity index 76% rename from html-flask/templates/tests.html rename to html-flask/templates/tests_home.html index c53c598..219756e 100644 --- a/html-flask/templates/tests.html +++ b/html-flask/templates/tests_home.html @@ -32,14 +32,9 @@

    Einstellungen

    -

     

    -

     

    -

    Weitere Infos zum Projekt CaravanPi finden Sie auf der CaravanPi-Website und auf github

    - + {% include 'footer.html' %}
    diff --git a/html-flask/test_routes.py b/html-flask/test_routes.py index 78341ea..8cd4c8f 100644 --- a/html-flask/test_routes.py +++ b/html-flask/test_routes.py @@ -3,22 +3,302 @@ # import sys +import signal import subprocess -from flask import Flask, render_template, request, redirect, url_for, flash +import RPi.GPIO as GPIO + +from flask import Flask, render_template, request, redirect, url_for, flash, jsonify # ----------------------------------------------- # CaravanPi File/MARIADB/MQTT library einbinden # ----------------------------------------------- sys.path.append('/home/pi/CaravanPi/.lib') from CaravanPiFilesClass import CaravanPiFiles +from CaravanPiFunctionsClass import CaravanPiFunctions + +cplibfiles = CaravanPiFiles() +cplibfunctions = CaravanPiFunctions() + +# ----------------------------------------------- +# Handling der Taster +# - Zustandsspeicherung +# - Interruptbehandlung +# ----------------------------------------------- + +switchTestStarted = False + +# Globales Dictionary zur Speicherung der Zustände +switch_states = { + 'position': False, + 'gasscale': False, + 'horizontal': False, + 'live': False, +} + +eventstriggered = False + +def setup_gpio(): + eventstriggered = True + GPIO.setmode(GPIO.BCM) + + pinSwitchPosition = 19 + GPIO.setup(pinSwitchPosition, GPIO.IN) + GPIO.remove_event_detect(pinSwitchPosition) + GPIO.add_event_detect(pinSwitchPosition, GPIO.RISING, callback = switchInterruptPosition, bouncetime = 400) + + pinSwitchGasscale = 22 + GPIO.setup(pinSwitchGasscale, GPIO.IN) + GPIO.remove_event_detect(pinSwitchGasscale) + GPIO.add_event_detect(pinSwitchGasscale, GPIO.RISING, callback = switchInterruptGasscale, bouncetime = 400) + + pinSwitchNowHorizontal = 6 + GPIO.setup(pinSwitchNowHorizontal, GPIO.IN) + GPIO.remove_event_detect(pinSwitchNowHorizontal) + GPIO.add_event_detect(pinSwitchNowHorizontal, GPIO.RISING, callback = switchInterruptNowHorizontal, bouncetime = 400) + + pinSwitchLive = 13 + GPIO.setup(pinSwitchLive, GPIO.IN) + GPIO.remove_event_detect(pinSwitchLive) + GPIO.add_event_detect(pinSwitchLive, GPIO.RISING, callback = switchInterruptLive, bouncetime = 400) + + pinLEDLive = 5 + GPIO.setup(pinLEDLive, GPIO.OUT) + GPIO.output(pinLEDLive, False) + + return 0 + +def release_gpio(): + if not eventstriggered: + return 0 + + GPIO.setmode(GPIO.BCM) + + # Entfernen der Event-Detektion + pinSwitchPosition = 19 + GPIO.remove_event_detect(pinSwitchPosition) + + pinSwitchGasscale = 22 + GPIO.remove_event_detect(pinSwitchGasscale) + + pinSwitchNowHorizontal = 6 + GPIO.remove_event_detect(pinSwitchNowHorizontal) + + pinSwitchLive = 13 + GPIO.remove_event_detect(pinSwitchLive) -cplib = CaravanPiFiles() + return 0 + +# Funktion, die den Zustand aktualisiert +def set_switch_state(switch_name, state): + switch_states[switch_name] = state +# Funktion, die den aktuellen Zustand abfragt +def get_switch_state(switch_name): + return switch_states.get(switch_name, False) + +def switchInterruptPosition(channel): + # ------------------------- + # switchInterruptPosition + # tactile switch was pressed start calibrating the position sensor + # ------------------------- + print ("Taster Kalibrierung Lage Sensor wurde gedrückt") + switch_states['position'] = True # Zustand aktualisieren + +def switchInterruptGasscale(channel): + # ------------------------- + # switchInterruptGasscale + # tactile switch was pressed start calibrating the gas scale + # ------------------------- + print ("Taster Kalibrierung Gaswaage wurde gedrückt") + switch_states['gasscale'] = True # Zustand aktualisieren + +def switchInterruptNowHorizontal(channel): + # ------------------------- + # switchInterruptGasscale + # tactile switch was pressed start calibrating the gas scale + # ------------------------- + print ("Taster Querlage = Horizontal wurde gedrückt") + switch_states['horizontal'] = True # Zustand aktualisieren + +def switchInterruptLive(channel): + # ------------------------- + # switchInterruptGasscale + # tactile switch was pressed start calibrating the gas scale + # ------------------------- + print ("Taster Live-Modus wurde gedrückt") + switch_states['live'] = True # Zustand aktualisieren + print ("--> LED Live Modus leuchtet für 1/2 Sekunde") + GPIO.output(pinLEDLive, True) + time.sleep(.5) + GPIO.output(pinLEDLive, False) + +# ----------------------------------------------- +# +# Routen +# +# ----------------------------------------------- def register_test_routes(app): - @app.route('/tests', methods=['GET', 'POST']) + @app.route('/tests_home') def tests_home(): - return render_template('tests.html') + global switchTestStarted + switchTestStarted = False + return render_template('tests_home.html') + + @app.route('/test_LEDs', methods=['GET', 'POST']) + def route_test_LEDs(): + + if request.method == 'POST': + if 'cancel' in request.form: + # Testfarbe auf AUS setzen + cplibfiles.writeCaravanPiConfigItem("testColor/color", "99") + + # SIGUSR2 senden, damit Test beendet wird, allerdings nur, wenn mindestens ein Test gestartet wurde + cplibfunctions.send_signal_to_process("position2file.py", signal.SIGUSR2) + + return redirect(url_for('tests_home')) # Leitet um zur `/tests_home`-Route + + if 'LEDgreen' in request.form: + # Meldung anzeigen + flash('LEDs auf grün geschaltet') + + # Testcolor setzen + cplibfiles.writeCaravanPiConfigItem("testColor/color", "-2") + + # SIGUSR2 senden + cplibfunctions.send_signal_to_process("position2file.py", signal.SIGUSR2) + + return redirect(url_for('route_test_LEDs')) + + if 'LEDgreenblink' in request.form: + # Meldung anzeigen + flash('LEDs auf grün blinkend geschaltet') + + # Testcolor setzen + cplibfiles.writeCaravanPiConfigItem("testColor/color", "-1") + + # SIGUSR2 senden + cplibfunctions.send_signal_to_process("position2file.py", signal.SIGUSR2) + + return redirect(url_for('route_test_LEDs')) + + if 'LEDred' in request.form: + # Meldung anzeigen + flash('LEDs auf rot geschaltet') + + # Testcolor setzen + cplibfiles.writeCaravanPiConfigItem("testColor/color", "0") + + # SIGUSR2 senden + cplibfunctions.send_signal_to_process("position2file.py", signal.SIGUSR2) + + return redirect(url_for('route_test_LEDs')) + + if 'LEDblueblink' in request.form: + # Meldung anzeigen + flash('LEDs auf blau blinkend geschaltet') + + # Testcolor setzen + cplibfiles.writeCaravanPiConfigItem("testColor/color", "1") + + # SIGUSR2 senden + cplibfunctions.send_signal_to_process("position2file.py", signal.SIGUSR2) + + return redirect(url_for('route_test_LEDs')) + + if 'LEDblue' in request.form: + # Meldung anzeigen + flash('LEDs auf blau geschaltet') + + # Testcolor setzen + cplibfiles.writeCaravanPiConfigItem("testColor/color", "2") + + # SIGUSR2 senden + cplibfunctions.send_signal_to_process("position2file.py", signal.SIGUSR2) + + return redirect(url_for('route_test_LEDs')) + + return render_template('test_LEDs.html') + + + + @app.route('/test_switches', methods=['GET', 'POST']) + def route_test_switches(): + global switchTestStarted + + if request.method == 'POST': + if 'cancel' in request.form: + switchTestStarted = False + + # GPIO säubern + release_gpio() + + # Starten des Prozesses tactileSwitches.py, soweit er nicht schon läuft + if cplibfunctions.process_running("tactileSwitches.py") == 0: + cplibfunctions.start_process_in_background("python3 -u /home/pi/CaravanPi/tactileSwitch/tactileSwitches.py >/home/pi/CaravanPi/.log/tactileSwitches.log 2>&1") + + return redirect(url_for('tests_home')) # Leitet um zur `/tests_home`-Route + + if 'start' in request.form: + switchTestStarted = True + # Stoppen des Prozesses tactileSwitches.py, falls er läuft + print("Prozess stoppen ....") + if cplibfunctions.process_running("tactileSwitches.py") > 0: + print("Prozess läuft") + if cplibfunctions.send_signal_to_process("tactileSwitches.py", signal.SIGKILL) != 0: + print("Fehler beim killen") + flash('Prozess tactileSwitches.py konnte nicht gestoppt werden') + return render_template('test_switches.html') + else: + print("Prozess gekilled") + else: + print("Prozess läuft nicht") + + flash('Prozess tactileSwitches.py läuft nicht (mehr).') + + # GPIO Eventsteuerung + setup_gpio() + + # Template erneut rendern + return render_template('test_switches.html', switchTestStarted=switchTestStarted) + + + @app.route('/poll_switch_status/') + def poll_switch_status(switch_name): + state = get_switch_state(switch_name) + if state: + set_switch_state(switch_name, False) + # Nachricht zurückgeben + return jsonify({'pressed': True, 'message': f'Taster {switch_name} wurde gedrückt.'}) + else: + return jsonify({'pressed': False}) + + + + @app.route('/test_buzzer', methods=['GET', 'POST']) + def route_test_buzzer(): + + if request.method == 'POST': + if 'cancel' in request.form: + return redirect(url_for('tests_home')) # Leitet um zur `/tests_home`-Route + + if 'start' in request.form: + # Meldung anzeigen + flash('Buzzer wurde getestet') + flash('zunächst langsames Beepen') + flash('dann schnelles Beepen') + flash('dann Dauerton') + flash('schließlich Melodie') + + try: + # Angenommen, Ihr Skript befindet sich im selben Verzeichnis und heißt script.py + result = subprocess.run(['python3', '/home/pi/CaravanPi/position/buzzerTest.py'], capture_output=True, text=True, check=True) + except subprocess.CalledProcessError as e: + print(f"Fehler beim Ausführen des Skripts: {e.stderr}") + + return redirect(url_for('route_test_buzzer')) + + return render_template('test_buzzer.html') diff --git a/backup-obsolet/backup-caravanpi.sh b/obsolet_backup/backup-caravanpi.sh similarity index 100% rename from backup-obsolet/backup-caravanpi.sh rename to obsolet_backup/backup-caravanpi.sh diff --git a/bottleFramework/README.md b/obsolet_bottleFramework/README.md similarity index 100% rename from bottleFramework/README.md rename to obsolet_bottleFramework/README.md diff --git a/bottleFramework/bottleCommands.py b/obsolet_bottleFramework/bottleCommands.py similarity index 100% rename from bottleFramework/bottleCommands.py rename to obsolet_bottleFramework/bottleCommands.py diff --git a/html/.htaccess b/obsolet_html/.htaccess similarity index 100% rename from html/.htaccess rename to obsolet_html/.htaccess diff --git a/html/README.md b/obsolet_html/README.md similarity index 100% rename from html/README.md rename to obsolet_html/README.md diff --git a/html/apache2-conf/000-default.conf b/obsolet_html/apache2-conf/000-default.conf similarity index 100% rename from html/apache2-conf/000-default.conf rename to obsolet_html/apache2-conf/000-default.conf diff --git a/html/buttontest.py b/obsolet_html/buttontest.py similarity index 100% rename from html/buttontest.py rename to obsolet_html/buttontest.py diff --git a/html/css/custom.css b/obsolet_html/css/custom.css similarity index 100% rename from html/css/custom.css rename to obsolet_html/css/custom.css diff --git a/html/css/main.css b/obsolet_html/css/main.css similarity index 100% rename from html/css/main.css rename to obsolet_html/css/main.css diff --git a/html/dimensions.php b/obsolet_html/dimensions.php similarity index 100% rename from html/dimensions.php rename to obsolet_html/dimensions.php diff --git a/html/favicon.ico b/obsolet_html/favicon.ico similarity index 100% rename from html/favicon.ico rename to obsolet_html/favicon.ico diff --git a/html/fill-levels.php b/obsolet_html/fill-levels.php similarity index 100% rename from html/fill-levels.php rename to obsolet_html/fill-levels.php diff --git a/html/gas-scale.php b/obsolet_html/gas-scale.php similarity index 100% rename from html/gas-scale.php rename to obsolet_html/gas-scale.php diff --git a/html/icons/android-icon-144x144.png b/obsolet_html/icons/android-icon-144x144.png similarity index 100% rename from html/icons/android-icon-144x144.png rename to obsolet_html/icons/android-icon-144x144.png diff --git a/html/icons/android-icon-192x192.png b/obsolet_html/icons/android-icon-192x192.png similarity index 100% rename from html/icons/android-icon-192x192.png rename to obsolet_html/icons/android-icon-192x192.png diff --git a/html/icons/android-icon-36x36.png b/obsolet_html/icons/android-icon-36x36.png similarity index 100% rename from html/icons/android-icon-36x36.png rename to obsolet_html/icons/android-icon-36x36.png diff --git a/html/icons/android-icon-48x48.png b/obsolet_html/icons/android-icon-48x48.png similarity index 100% rename from html/icons/android-icon-48x48.png rename to obsolet_html/icons/android-icon-48x48.png diff --git a/html/icons/android-icon-72x72.png b/obsolet_html/icons/android-icon-72x72.png similarity index 100% rename from html/icons/android-icon-72x72.png rename to obsolet_html/icons/android-icon-72x72.png diff --git a/html/icons/android-icon-96x96.png b/obsolet_html/icons/android-icon-96x96.png similarity index 100% rename from html/icons/android-icon-96x96.png rename to obsolet_html/icons/android-icon-96x96.png diff --git a/html/icons/apple-icon-114x114.png b/obsolet_html/icons/apple-icon-114x114.png similarity index 100% rename from html/icons/apple-icon-114x114.png rename to obsolet_html/icons/apple-icon-114x114.png diff --git a/html/icons/apple-icon-120x120.png b/obsolet_html/icons/apple-icon-120x120.png similarity index 100% rename from html/icons/apple-icon-120x120.png rename to obsolet_html/icons/apple-icon-120x120.png diff --git a/html/icons/apple-icon-144x144.png b/obsolet_html/icons/apple-icon-144x144.png similarity index 100% rename from html/icons/apple-icon-144x144.png rename to obsolet_html/icons/apple-icon-144x144.png diff --git a/html/icons/apple-icon-152x152.png b/obsolet_html/icons/apple-icon-152x152.png similarity index 100% rename from html/icons/apple-icon-152x152.png rename to obsolet_html/icons/apple-icon-152x152.png diff --git a/html/icons/apple-icon-180x180.png b/obsolet_html/icons/apple-icon-180x180.png similarity index 100% rename from html/icons/apple-icon-180x180.png rename to obsolet_html/icons/apple-icon-180x180.png diff --git a/html/icons/apple-icon-57x57.png b/obsolet_html/icons/apple-icon-57x57.png similarity index 100% rename from html/icons/apple-icon-57x57.png rename to obsolet_html/icons/apple-icon-57x57.png diff --git a/html/icons/apple-icon-60x60.png b/obsolet_html/icons/apple-icon-60x60.png similarity index 100% rename from html/icons/apple-icon-60x60.png rename to obsolet_html/icons/apple-icon-60x60.png diff --git a/html/icons/apple-icon-72x72.png b/obsolet_html/icons/apple-icon-72x72.png similarity index 100% rename from html/icons/apple-icon-72x72.png rename to obsolet_html/icons/apple-icon-72x72.png diff --git a/html/icons/apple-icon-76x76.png b/obsolet_html/icons/apple-icon-76x76.png similarity index 100% rename from html/icons/apple-icon-76x76.png rename to obsolet_html/icons/apple-icon-76x76.png diff --git a/html/icons/apple-icon-precomposed.png b/obsolet_html/icons/apple-icon-precomposed.png similarity index 100% rename from html/icons/apple-icon-precomposed.png rename to obsolet_html/icons/apple-icon-precomposed.png diff --git a/html/icons/apple-icon.png b/obsolet_html/icons/apple-icon.png similarity index 100% rename from html/icons/apple-icon.png rename to obsolet_html/icons/apple-icon.png diff --git a/html/icons/apple-touch-icon.png b/obsolet_html/icons/apple-touch-icon.png similarity index 100% rename from html/icons/apple-touch-icon.png rename to obsolet_html/icons/apple-touch-icon.png diff --git a/html/icons/browserconfig.xml b/obsolet_html/icons/browserconfig.xml similarity index 100% rename from html/icons/browserconfig.xml rename to obsolet_html/icons/browserconfig.xml diff --git a/html/icons/favicon-16x16.png b/obsolet_html/icons/favicon-16x16.png similarity index 100% rename from html/icons/favicon-16x16.png rename to obsolet_html/icons/favicon-16x16.png diff --git a/html/icons/favicon-32x32.png b/obsolet_html/icons/favicon-32x32.png similarity index 100% rename from html/icons/favicon-32x32.png rename to obsolet_html/icons/favicon-32x32.png diff --git a/html/icons/favicon-96x96.png b/obsolet_html/icons/favicon-96x96.png similarity index 100% rename from html/icons/favicon-96x96.png rename to obsolet_html/icons/favicon-96x96.png diff --git a/html/icons/favicon.ico b/obsolet_html/icons/favicon.ico similarity index 100% rename from html/icons/favicon.ico rename to obsolet_html/icons/favicon.ico diff --git a/html/icons/manifest.json b/obsolet_html/icons/manifest.json similarity index 100% rename from html/icons/manifest.json rename to obsolet_html/icons/manifest.json diff --git a/html/icons/ms-icon-144x144.png b/obsolet_html/icons/ms-icon-144x144.png similarity index 100% rename from html/icons/ms-icon-144x144.png rename to obsolet_html/icons/ms-icon-144x144.png diff --git a/html/icons/ms-icon-150x150.png b/obsolet_html/icons/ms-icon-150x150.png similarity index 100% rename from html/icons/ms-icon-150x150.png rename to obsolet_html/icons/ms-icon-150x150.png diff --git a/html/icons/ms-icon-310x310.png b/obsolet_html/icons/ms-icon-310x310.png similarity index 100% rename from html/icons/ms-icon-310x310.png rename to obsolet_html/icons/ms-icon-310x310.png diff --git a/html/icons/ms-icon-70x70.png b/obsolet_html/icons/ms-icon-70x70.png similarity index 100% rename from html/icons/ms-icon-70x70.png rename to obsolet_html/icons/ms-icon-70x70.png diff --git a/html/img/CaravanPiDimensionen.png b/obsolet_html/img/CaravanPiDimensionen.png similarity index 100% rename from html/img/CaravanPiDimensionen.png rename to obsolet_html/img/CaravanPiDimensionen.png diff --git a/html/img/CaravanPiLagesensor.png b/obsolet_html/img/CaravanPiLagesensor.png similarity index 100% rename from html/img/CaravanPiLagesensor.png rename to obsolet_html/img/CaravanPiLagesensor.png diff --git a/html/index.html b/obsolet_html/index.html similarity index 100% rename from html/index.html rename to obsolet_html/index.html diff --git a/html/ledtest.php b/obsolet_html/ledtest.php similarity index 100% rename from html/ledtest.php rename to obsolet_html/ledtest.php diff --git a/html/ledtest.py b/obsolet_html/ledtest.py similarity index 100% rename from html/ledtest.py rename to obsolet_html/ledtest.py diff --git a/html/position.php b/obsolet_html/position.php similarity index 100% rename from html/position.php rename to obsolet_html/position.php diff --git a/html/writeDimensionDefaults.py b/obsolet_html/writeDimensionDefaults.py similarity index 100% rename from html/writeDimensionDefaults.py rename to obsolet_html/writeDimensionDefaults.py diff --git a/html/writeGasScaleCalibration.py b/obsolet_html/writeGasScaleCalibration.py similarity index 100% rename from html/writeGasScaleCalibration.py rename to obsolet_html/writeGasScaleCalibration.py diff --git a/html/writeGasScaleDefaults.py b/obsolet_html/writeGasScaleDefaults.py similarity index 100% rename from html/writeGasScaleDefaults.py rename to obsolet_html/writeGasScaleDefaults.py diff --git a/html/writePositionCalibration.py b/obsolet_html/writePositionCalibration.py similarity index 100% rename from html/writePositionCalibration.py rename to obsolet_html/writePositionCalibration.py diff --git a/html/writePositionDefaults.py b/obsolet_html/writePositionDefaults.py similarity index 100% rename from html/writePositionDefaults.py rename to obsolet_html/writePositionDefaults.py diff --git a/html/writePositionManuDefaults.py b/obsolet_html/writePositionManuDefaults.py similarity index 100% rename from html/writePositionManuDefaults.py rename to obsolet_html/writePositionManuDefaults.py diff --git a/html/writeTankDefaults.py b/obsolet_html/writeTankDefaults.py similarity index 100% rename from html/writeTankDefaults.py rename to obsolet_html/writeTankDefaults.py diff --git a/position/buzzerTest.py b/position/buzzerTest.py index 77ebe35..f78ec4f 100644 --- a/position/buzzerTest.py +++ b/position/buzzerTest.py @@ -7,9 +7,19 @@ #------------------------------------------------------------------------------- import time +import sys from time import sleep import RPi.GPIO as io +# ----------------------------------------------- +# libraries from CaravanPi +# ----------------------------------------------- +sys.path.append('/home/pi/CaravanPi/.lib') +from CaravanPiFilesClass import CaravanPiFiles +from CaravanPiFunctionsClass import CaravanPiFunctions + +cpfunclib = CaravanPiFunctions() + # buzzer BUZZER_PIN = 26 @@ -26,7 +36,7 @@ def main(): # Wait 30 secondes so that any vibrations of the caravan can subside # during this waiting time slow beeping of the buzzer i=0 - while i < 30: + while i < 3: io.output(BUZZER_PIN, io.HIGH) sleep(.1) io.output(BUZZER_PIN, io.LOW) @@ -35,7 +45,7 @@ def main(): # buzzer beeps rapidly to signal imminent measurement i=0 - while i < 10: + while i < 3: io.output(BUZZER_PIN, io.HIGH) sleep(.1) io.output(BUZZER_PIN, io.LOW) @@ -43,10 +53,15 @@ def main(): i+=1 # long beep of the buzzer to signal completion + sleep(.5) io.output(BUZZER_PIN, io.HIGH) - sleep(2) + sleep(1) io.output(BUZZER_PIN, io.LOW) io.cleanup() + sleep(.5) + + cpfunclib.play_melody(io, BUZZER_PIN, 'success') + if __name__ == "__main__": diff --git a/position/buzzerTestWithLib.py b/position/buzzerTestWithLib.py new file mode 100644 index 0000000..eaaff51 --- /dev/null +++ b/position/buzzerTestWithLib.py @@ -0,0 +1,50 @@ +#!/usr/bin/python3 +# coding=utf-8 +# buttontest.py +# +# Buzzer testen +# +#------------------------------------------------------------------------------- + +import time +import sys +from time import sleep +import RPi.GPIO as io + +# ----------------------------------------------- +# libraries from CaravanPi +# ----------------------------------------------- +sys.path.append('/home/pi/CaravanPi/.lib') +from CaravanPiFilesClass import CaravanPiFiles +from CaravanPiFunctionsClass import CaravanPiFunctions + +cpfunclib = CaravanPiFunctions() + +# buzzer +BUZZER_PIN = 26 + +def main(): + # ------------------------- + # main + # ------------------------- + + # buzzer + io.setmode(io.BCM) + + cpfunclib.play_alarm_single(io, BUZZER_PIN, 1) + time.sleep(1) + cpfunclib.play_alarm_single(io, BUZZER_PIN, 2) + time.sleep(1) + cpfunclib.play_alarm_single(io, BUZZER_PIN, 3) + time.sleep(1) + + cpfunclib.play_alarm_single(io, BUZZER_PIN, 99) + time.sleep(1) + + + cpfunclib.play_melody(io, BUZZER_PIN, 'success') + + + +if __name__ == "__main__": + main() diff --git a/position/position2file.py b/position/position2file.py index 72b9c94..c7a3bcb 100644 --- a/position/position2file.py +++ b/position/position2file.py @@ -13,13 +13,12 @@ # #------------------------------------------------------------------------------- -import time, datetime +import datetime import statistics import signal import sys from time import sleep -import os -import getopt +import argparse # imports for sensor ADXL345 import board @@ -34,6 +33,7 @@ # import for opening URL to change update Intervall on magic Mirror import urllib.request +from urllib.error import URLError, HTTPError, ContentTooShortError # ----------------------------------------------- # libraries from CaravanPi @@ -43,6 +43,13 @@ from CaravanPiLedClass import Led from CaravanPiFilesClass import CaravanPiFiles +# ------------------------- +# Library initialisieren +# ------------------------- +cplib = CaravanPiFiles() + + + # ----------------------------------------------- # global variables # ----------------------------------------------- @@ -113,21 +120,41 @@ # tactile switch to activate the 'live' mode pinSwitchLive = 13 pinLEDLive = 5 + +# MagicMirror URL +MMMUrl = "http://127.0.0.1:8080/MMM-CaravanPiPosition/changeUpdateInterval" +MMMavailable = True # ------------------------- -# call options +# checke den MagicMirror, ob er Interrupts empfangen kann # ------------------------- -shortOptions = 'hfsl' -longOptions = ['help', 'file', 'screen', 'live'] - -def usage(): - print ("---------------------------------------------------------------------") - print (sys.argv[0], "-h -f -s -l") - print (" -h show this guide") - print (" -f write values to file ", filePosition) - print (" -s display values on this screen\n") - print (" -l start in 'live' mode\n") +def check_url_and_execute(url): + try: + # Versuch, die URL zu öffnen und die Antwort zu lesen + response = urllib.request.urlopen(url) + # Prüfung des HTTP-Statuscode + if response.status == 200: + print(f"Die Website {url} ist erreichbar und der Befehl wurde erfolgreich ausgeführt.") + else: + print(f"Die Website {url} ist erreichbar, aber der Befehl führte zu einem HTTP-Fehler mit dem Statuscode: {response.status}") + return response.status + except HTTPError as e: + # HTTP-Fehler (z.B. 404, 501, ...) + print(f"HTTP-Fehler beim Zugriff auf die URL {url}: {e.code} - {e.reason}") + return -4 + except URLError as e: + # URL-Fehler (z.B. kein Netzwerk, falsche Domain, ...) + print(f"URL-Fehler beim Zugriff auf die Website {url}: {e.reason}") + return -3 + except ContentTooShortError as e: + # Der heruntergeladene Inhalt ist kürzer als erwartet + print("Der heruntergeladene Inhalt ist kürzer als erwartet.") + return -2 + except Exception as e: + # alle anderen Fehler + print(f"Ein unerwarteter Fehler ist aufgetreten: {url} - {e}") + return -1 # ------------------------- # 3-axis-sensor @@ -456,20 +483,24 @@ def switchInterruptLive(channel): global globAdjustSwitchY global liveMode + global MMMavailable + + print (datetime.datetime.now().strftime("%Y%m%d%H%M%S "), "Taster Live Modus gedrückt") + if liveMode == 1: print (datetime.datetime.now().strftime("%Y%m%d%H%M%S "), "ACHTUNG: Live Modus beendet !!!") liveMode = 0 GPIO.output(pinLEDLive, False) ledOff() - # change update Intervall on MagicMirror - urllib.request.urlopen('http://127.0.0.1:8080/MMM-CaravanPiPosition/changeUpdateInterval') globAdjustSwitchY = 0 + # change update Intervall on MagicMirror + if MMMavailable: urllib.request.urlopen(MMMUrl) else: print (datetime.datetime.now().strftime("%Y%m%d%H%M%S "), "ACHTUNG: Live Modus startet !!!") liveMode = 1 GPIO.output(pinLEDLive, True) # change update Intervall on MagicMirror - urllib.request.urlopen('http://127.0.0.1:8080/MMM-CaravanPiPosition/changeUpdateInterval') + if MMMavailable: urllib.request.urlopen(MMMUrl) def signalInterruptUSR1(signum, stack): # ------------------------- @@ -481,24 +512,33 @@ def signalInterruptUSR1(signum, stack): global adjustX, adjustY, adjustZ, toleranceX, toleranceY, approximationX, approximationY, distRight, distFront, distAxis print(signum, ' received: read defaults again') - (adjustX, adjustY, adjustZ, toleranceX, toleranceY, approximationX, approximationY, distRight, distFront, distAxis) = CaravanPiFiles.readAdjustment() + (adjustX, adjustY, adjustZ, toleranceX, toleranceY, approximationX, approximationY, distRight, distFront, distAxis) = cplib.readAdjustment() def signalInterruptUSR2(signum, stack): # ------------------------- - # signalInterruptUSR1 + # signalInterruptUSR2 # SIGUSR2 was send to this process (from Config Website) # # read color from file to test LEDs # first switchLiveMode if live # ------------------------- - print(signum, ' received: test LEDs') - color = int(CaravanPiFiles.readTestColor()) + print(signum, 'SIGUSR2 erhalten') + + # Lesen der Testfarbe + color = int(cplib.readCaravanPiConfigItem("testColor/color")) + + # color = int(cplib.readTestColor()) print('test LEDs with color ', color) + + # Falls grad auch liveModus, dann diesen ausschalten if liveMode == 1: switchInterruptLive(0) - setAlle(color) - + + if color == 99: + ledOff() + else: + setAlle(color) @@ -506,7 +546,7 @@ def signalInterruptUSR2(signum, stack): def main(): # ------------------------- - # main + # globale Variable # ------------------------- global adjustX, adjustY, adjustZ, toleranceX, toleranceY, approximationX, approximationY, distRight, distFront, distAxis @@ -515,6 +555,41 @@ def main(): global lengthOverAll, width, lengthBody global pinSwitchNowHorizontal, pinSwitchLive, pinLEDLive global liveMode + global MMMavailable + + # ------------------------- + # Argumente verarbeiten + # ------------------------- + + # initialisieren + liveMode=0 + + # Initialisieren des Argument-Parsers + parser = argparse.ArgumentParser(description="regelmäßiges Auslesen des Lagesensors und Steuern der LEDs") + + # Definition der Argumente + parser.add_argument("-s", "--screen", action="store_true", help="Ausgabe auch am Bildschirm") + parser.add_argument("-l", "--live", action="store_true", help="starte im Live Modus") + parser.add_argument("-f", "--file", action="store_true", help="Obsolet - nicht mehr angeben bitte") + + # Parsen der Argumente + args = parser.parse_args() + + if args.file: + print("Obsolet: Die Option '-f/--file' wird nicht mehr verwendet.") + + if args.live: + print("starten im Live Modus") + liveMode = 1 + GPIO.output(pinLEDLive, True) + + # ----------------------------------------------------------------------------- + # Prüfen, ob MagicMirror erreichbar ist + # ----------------------------------------------------------------------------- + if check_url_and_execute(MMMUrl) == 200: + MMMavailable = True + else: + MMMavailable = False # ------------------------- # tactile switches @@ -530,42 +605,6 @@ def main(): GPIO.setup(pinLEDLive, GPIO.OUT) GPIO.output(pinLEDLive, False) - # ------------------------- - # process call parameters - # ------------------------- - opts = [] - args = [] - writeFile = 0 - displayScreen = 0 - liveMode=0 - - try: - opts, args = getopt.getopt(sys.argv[1:], shortOptions, longOptions) - except getopt.GetoptError: - print(datetime.datetime.now().strftime("%Y%m%d%H%M%S "), "ERROR: options not correct") - usage() - sys.exit() - - for o, a in opts: - if o == "--help" or o == "-h": - print("HELP") - usage() - sys.exit() - elif o == "--file" or o == "-f": - print("output also to file ", filePosition) - writeFile = 1 - elif o == "--screen" or o == "-s": - print("output also to this screen") - displayScreen = 1 - elif o == "--live" or o == "-l": - print("start in live mode") - liveMode = 1 - GPIO.output(pinLEDLive, True) - - - for a in args: - print("further argument: ", a) - # ------------------------- # avoid outliers - init values @@ -574,15 +613,15 @@ def main(): lastY = None lastZ = None secondLastX = None - + # read defaults # The 3-axis sensor may not be installed exactly horizontally. The values to compensate for this installation difference are read from a file. # --> adjustX, adjustY, adjustZ # In addition, the LEDs should already indicate "horizontal" as soon as the deviation from the horizontal is within a tolerance. # --> approximationX, approximationY - (adjustX, adjustY, adjustZ, toleranceX, toleranceY, approximationX, approximationY, distRight, distFront, distAxis) = CaravanPiFiles.readAdjustment() + (adjustX, adjustY, adjustZ, toleranceX, toleranceY, approximationX, approximationY, distRight, distFront, distAxis) = cplib.readAdjustment() # dimensions of the caravan - (lengthOverAll, width, lengthBody) = CaravanPiFiles.readDimensions() + (lengthOverAll, width, lengthBody) = cplib.readDimensions() # ------------------------- # listen to SIGUSR1 for renew the defaults @@ -694,8 +733,52 @@ def main(): diffVR = diffVR - diffNormal diffVo = diffVo - diffNormal - # write values to file and or screen - write2file(writeFile, displayScreen, x, y, z, tolX, tolY, z-adjustZ, lastX, secondLastX, diffHL, diffHR, diffVL, diffVR, diffZL, diffZR, diffVo) + # ------------------------------------------------------------------------------------------------------------------------------ + # write values to file + # ACHTUNG + # write2file soll entfallen, aber MMM liest noch aus der Datei position + # daher diese Zeile vorerst noch aktiv lassen + # ------------------------------------------------------------------------------------------------------------------------------ + #write2file(1, 1, x, y, z, tolX, tolY, z-adjustZ, lastX, secondLastX, diffHL, diffHR, diffVL, diffVR, diffZL, diffZR, diffVo) + + cplib.handle_sensor_values( + args.screen, # Anzeige am Bildschirm? + "ausrichtung", # sensor_name = Datenbankname + "ADXL345", # sensor_id = Filename und Spalte in der Datenbank + [ + "aktuell_x", + "aktuell_y", + "aktuell_z", + "toleranz_x", + "toleranz_y", + "letztes_x", + "vorletztes_x", + "differenz_hinten_links", + "differenz_hinten_rechts", + "differenz_vorne_links", + "differenz_vorne_rechts", + "differenz_zentral_links", + "differenz_zentral_rechts", + "differenz_deichsel", + ], # Liste Spaltennamen + ( + float(x), + float(y), + float(z), + float(tolX), + float(tolY), + float(lastX) if lastX is not None else None, + float(secondLastX) if secondLastX is not None else None, + float(diffHL), + float(diffHR), + float(diffVL), + float(diffVR), + float(diffZL), + float(diffZR), + float(diffVo), + ) # Tupel Sensorwerte + ) + if liveMode == 1: ledX = x @@ -722,10 +805,11 @@ def main(): lastY = y lastZ = z - sleep(.1) + sleep(.5) else: + # Warten über Schleife, damit Tasten, Signale, etc. während des Schlafens nicht verloren gehen j=0 - while j< 120 and liveMode == 0: # 120/.5 = 60 Sekunden + while j< 600 and liveMode == 0: # 600/.5 = 300 Sekunden = 5 Minuten j=j+1 sleep (.5) # falls inzwsichen LEDtest gestartet wurde, alle LEDs aus diff --git a/raspberrypi/change_crontab.py b/raspberrypi/change_crontab.py new file mode 100644 index 0000000..2c352a1 --- /dev/null +++ b/raspberrypi/change_crontab.py @@ -0,0 +1,83 @@ +#!/usr/bin/python3 +# coding=utf-8 +# change_crontab.py +# +# Ändern der Crontab aufgrund von Konfigurationsänderungen +# +# Aufruf-Parameter +# systemStat2file.py -f +# -s display values on screen +# -i Intervall Abfrageintervall in Sekunden default = 300 +# +# erzeugt mit Hilfe von ChatGPT 4 +#------------------------------------------------------------------------------- + +from crontab import CronTab +import time +import sys +import argparse + + +# ----------------------------------------------- +# CaravanPi File/MARIADB/MQTT library einbinden +# ----------------------------------------------- +sys.path.append('/home/pi/CaravanPi/.lib') +from CaravanPiFilesClass import CaravanPiFiles + + + +def update_crontab(script_dir, script_name, interval, kommentar=None): + cron = CronTab(user=True) # Nutzt die Crontab des aktuellen Benutzers + + for job in cron: + print(f"--- {job.is_enabled()} --- {job.command} --- {job.comment}") + + if script_name in job.command: + print("... wird gelöscht") + kommentar=job.comment + cron.remove(job) # Entfernt den aktuellen Job, wenn er existiert + + if kommentar is None: + kommentar=script_name + + if interval: # Fügt den Job nur hinzu, wenn ein Intervall angegeben ist + print(" ... wird neu hinzugefügt") + job = cron.new(command=f'python3 -u /home/pi/CaravanPi/{script_dir}/{script_name}.py > /home/pi/CaravanPi/.log/{script_name}.log 2>&1', comment=kommentar) + job.setall(interval) + + print(cron.render()) + #cron.write() + + return 0 + + +def main(): + parser = argparse.ArgumentParser(description='Systemstatistiken überwachen') + parser.add_argument('-j', '--job', type=char, + help='Job, der geändert werden soll, Skriptname') + parser.add_argument('-d', '--dir', type=char, + help='in welchem Verzeichnis ist das Skript') + parser.add_argument('-c', '--comment', type=char, + help='Kommentar, der eingefügt werden soll') + parser.add_argument('-m', '--minutes', type=int, + help='Anzahl der Minuten zwischen den Ausführungen 1 - 59') + parser.add_argument('-s', '--screen', action='store_true', + help='Ausgabe am Bildschirm') + + args = parser.parse_args() + + normal_interval = args.interval + high_temp_interval = 30 # Abfrageintervall bei hoher Temperatur: 30 Sekunden + interval = normal_interval + + try: + update_crontab('temperature', 'temp2file.py', '*/59 * * * *') + + except KeyboardInterrupt: + if args.screen: + print("\nWARNING - Programm wurde durch Benutzer unterbrochen. Beende...") + sys.exit(0) + +if __name__ == "__main__": + main() + diff --git a/raspberrypi/clean_MariaDB.py b/raspberrypi/clean_MariaDB.py new file mode 100644 index 0000000..7560eb9 --- /dev/null +++ b/raspberrypi/clean_MariaDB.py @@ -0,0 +1,71 @@ +#!/usr/bin/python3 +# coding=utf-8 +# clean_MariaDB +# +# löschen aller alten Einträge in der MariaDB +# +# Aufruf-Parameter +# systemStat2file.py -f +# -s display values on screen +# -t Tage wie viele Tage sollen erhalten bleiben +# +# erzeugt mit Hilfe von ChatGPT 4 +#------------------------------------------------------------------------------- + +import sys +from datetime import datetime, timedelta +import argparse + + +# ----------------------------------------------- +# CaravanPi File/MARIADB/MQTT library einbinden +# ----------------------------------------------- +sys.path.append('/home/pi/CaravanPi/.lib') +from CaravanPiFilesClass import CaravanPiFiles + + + + +def main(): + parser = argparse.ArgumentParser(description='MariaDB bereinigen') + parser.add_argument('-d', '--days', type=int, default=365, + help='Anzahl der Tage, die erhalten bleiben sollen') + parser.add_argument('-s', '--screen', action='store_true', + help='Ausgabe am Bildschirm') + + args = parser.parse_args() + + # Erstellen der Instanzen der Librarys + cplib = CaravanPiFiles() + + + # Verbindungsdaten für Ihre MariaDB + MariaDBhost = cplib.typwandlung(cplib.readCaravanPiConfigItem("caravanpiDefaults/MariaDBhost"), "str") + MariaDBuser = cplib.typwandlung(cplib.readCaravanPiConfigItem("caravanpiDefaults/MariaDBuser"), "str") + MariaDBpasswd = cplib.typwandlung(cplib.readCaravanPiConfigItem("caravanpiDefaults/MariaDBpasswd"), "str") + MariaDBdatabase = cplib.typwandlung(cplib.readCaravanPiConfigItem("caravanpiDefaults/MariaDBdatabase"), "str") + + # Datenbank oeffnen + connection = cplib.create_db_connection() + + try: + with connection.cursor() as cursor: + # Tabellennamen abrufen + cursor.execute("SHOW TABLES") + tables = cursor.fetchall() + + # Für jede Tabelle die alten Daten löschen + for table in tables: + delete_query = f"DELETE FROM {table[0]} WHERE zeitstempel < NOW() - INTERVAL {args.days} DAY" + print(delete_query) + cplib.execute_query(connection, delete_query, None) + + # Änderungen in der Datenbank speichern + connection.commit() + + finally: + connection.close() + +if __name__ == "__main__": + main() + diff --git a/temperature/temp2file.py b/temperature/temp2file.py index 9bf5314..1097907 100644 --- a/temperature/temp2file.py +++ b/temperature/temp2file.py @@ -9,8 +9,6 @@ import os import sys -import time -import datetime import argparse @@ -93,22 +91,22 @@ def main(): print("erfolgreich") return 0 + cplib = CaravanPiFiles() x = 0 while x < tempSensorAnzahl: # Sensorwerte verarbeiten # Erstellen einer Instanz der CaravanPi Library - cplib = CaravanPiFiles() cplib.handle_sensor_values( - args.screen, # Anzeige am Bildschirm? - "temperatursensor", # sensor_name = Datenbankname - f"DS1820-{tempSensorBezeichnung[x]}", # sensor_id = Filename und Spalte in der Datenbank - ["temperatur"], # Liste Spaltennamen - (float(tempSensorWert[x]),) # Tupel Sensorwerte + args.screen, # Anzeige am Bildschirm? + "temperatursensor", # sensor_name = Datenbankname + f"DS1820-{tempSensorBezeichnung[x]}", # sensor_id = Filename und Spalte in der Datenbank + ["temperatur"], # Liste Spaltennamen + (float(tempSensorWert[x]),) # Tupel Sensorwerte ) x = x + 1 return 0 -argparsebbb + if __name__=="__main__": result = main() sys.exit(result) \ No newline at end of file diff --git a/testxml.py b/testxml.py new file mode 100644 index 0000000..5e3798b --- /dev/null +++ b/testxml.py @@ -0,0 +1,23 @@ +#! /usr/bin/python3 +# coding=utf-8 +#------------------------------------------------------------------------------- + +import sys +# Importieren der angepassten CaravanPiFiles Klasse +from CaravanPiFilesClass import CaravanPiFiles + +def main(): + # Erstellen einer Instanz der Klasse + cplib = CaravanPiFiles() + + # Lesen der Konfigurationen und Ausgabe der Ergebnisse + print("CaravanPiDefaults:", cplib.readCaravanPiDefaults()) + print("Adjustment:", cplib.readAdjustment()) + print("Dimensions:", cplib.readDimensions()) + print("Voltage Levels:", cplib.readVoltageLevels()) + print("Test Color:", cplib.readTestColor()) + + print("write2file mit readItem:", cplib.readCaravanPiConfigItem("caravanpiDefaults/write2MariaDB"), "true" if cplib.readCaravanPiConfigItem("caravanpiDefaults/write2MariaDB") else "false") + +if __name__ == "__main__": + main() diff --git a/testxmlconfig.py b/testxmlconfig.py deleted file mode 100644 index 2d4d27b..0000000 --- a/testxmlconfig.py +++ /dev/null @@ -1,21 +0,0 @@ -#! /usr/bin/python3 -# coding=utf-8 -#------------------------------------------------------------------------------- - -import sys -# Importieren der angepassten CaravanPiFiles Klasse -from CaravanPiFilesClass import CaravanPiFiles - -def main(): - # Erstellen einer Instanz der Klasse - cp_files = CaravanPiFiles() - - # Lesen der Konfigurationen und Ausgabe der Ergebnisse - print("CaravanPiDefaults:", cp_files.readCaravanPiDefaults()) - print("Adjustment:", cp_files.readAdjustment()) - print("Dimensions:", cp_files.readDimensions()) - print("Voltage Levels:", cp_files.readVoltageLevels()) - print("Test Color:", cp_files.readTestColor()) - -if __name__ == "__main__": - main() From 123a23b01eebb35886ed8c805f8bc405eaafc774 Mon Sep 17 00:00:00 2001 From: upgrade_script Date: Sun, 3 Mar 2024 14:07:11 +0100 Subject: [PATCH 13/15] git hooks, gassensor-, 230v-, 12v-Checks fertig, flask button menues MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit git: Hooks ergänzt, so dass crontabs jeweisl mitgesichert werden; Gassensor, 230V und 12V Check Routinen abgeschlossen; Flask sites: menüs alle auf Buttons umgestellt; Flask sites: Aktoren eingebaut --- .crontabs/crontab-pi | 37 ++- .crontabs/crontab-root | 8 +- .git_hooks/pre-commit | 9 + .lib/CaravanPiFilesClass.py | 10 +- .lib/CaravanPiFunctionsClass.py | 14 +- analogSignals/gassensorCheck.py | 36 ++- analogSignals/spannungsteilerErrechnen.py | 38 +++ analogSignals/v12Check.py | 138 +++++++--- analogSignals/v230Check.py | 38 ++- defaults/caravanpiConfig.xml | 14 +- html-flask/flask-main.py | 34 ++- html-flask/flask-main_20240303.py | 76 ++++++ html-flask/static/css/caravanpi.css | 43 ++- html-flask/static/js/build_menus.js | 256 ++++++++++-------- html-flask/static/js/build_menus_20240303.js | 201 ++++++++++++++ html-flask/templates/index-flask.html | 18 +- .../templates/index-flask_20240303.html | 45 +++ 17 files changed, 795 insertions(+), 220 deletions(-) create mode 100644 analogSignals/spannungsteilerErrechnen.py create mode 100644 html-flask/flask-main_20240303.py create mode 100644 html-flask/static/js/build_menus_20240303.js create mode 100644 html-flask/templates/index-flask_20240303.html diff --git a/.crontabs/crontab-pi b/.crontabs/crontab-pi index f835880..9bc8945 100644 --- a/.crontabs/crontab-pi +++ b/.crontabs/crontab-pi @@ -9,15 +9,21 @@ # # min hour dayofmonth month dayofweek(0=Sonntag) command # + + +# Python-Flask starten für die CaravanPi Websites +@reboot python3 -u /home/pi/CaravanPi/html-flask/flask-main.py >/home/pi/CaravanPi/.log/flask-main.log 2>&1 + # Temperatursensoren alle 60 Sekunden auslesen -* * * * * python3 -u /home/pi/CaravanPi/temperature/temp2file.py >/home/pi/CaravanPi/.log/temp2file.log 2>&1 +00-59/10 * * * * python3 -u /home/pi/CaravanPi/temperature/temp2file.py >/home/pi/CaravanPi/.log/temp2file.log 2>&1 # Gasflaschenwaage alle 60 Sekunden auslesen -* * * * * python3 -u /home/pi/CaravanPi/gas-weight/gasScale2file.py -g 1 >/home/pi/CaravanPi/.log/gasScale2file.log 2>&1 +01-59/10 * * * * python3 -u /home/pi/CaravanPi/gas-weight/gasScale2file.py -g 1 >/home/pi/CaravanPi/.log/gasScale2file.log 2>&1 +01-59/10 * * * * python3 -u /home/pi/CaravanPi/gas-weight/gasScale2file.py -g 2 >/home/pi/CaravanPi/.log/gasScale2file.log 2>&1 # Klimasensoren alle 60 Sekunden auslesen -* * * * * python3 -u /home/pi/CaravanPi/climate/climate2file.py 76 1 >/home/pi/CaravanPi/.log/climate2file76.log 2>&1 -* * * * * python3 -u /home/pi/CaravanPi/climate/climate2file.py 77 1 >/home/pi/CaravanPi/.log/climate2file77.log 2>&1 +02-59/10 * * * * python3 -u /home/pi/CaravanPi/climate/climate2file.py -i 76 >/home/pi/CaravanPi/.log/climate2file76.log 2>&1 +#03-59/10 * * * * python3 -u /home/pi/CaravanPi/climate/climate2file.py -i 77 >/home/pi/CaravanPi/.log/climate2file77.log 2>&1 # Lagesensor auslesen, Zeitsteuerung im Skript inkl. Live Modus @reboot python3 -u /home/pi/CaravanPi/position/position2file.py -f >/home/pi/CaravanPi/.log/position2file.log 2>&1 @@ -27,10 +33,29 @@ # Füllmenge Tanks auslesen @reboot python3 -u /home/pi/CaravanPi/levels/freshLevels2file.py -t 1 -f >/home/pi/CaravanPi/.log/levels.log 2>&1 -* * * * * python3 -u /home/pi/CaravanPi/levels/wasteLevels2file.py -t 2 -f >/home/pi/CaravanPi/.log/levels.log 2>&1 +#04-59/10 * * * * python3 -u /home/pi/CaravanPi/levels/wasteLevels2file.py -t 2 -f >/home/pi/CaravanPi/.log/levels.log 2>&1 + +# Batteriemanagement auslesen +05-59/10 * * * * python3 -u /home/pi/CaravanPi/batteryMgmt/bms2file.py >/home/pi/CaravanPi/.log/bms2file.log 2>&1 + +# Systemdaten Raspberry Pi lesen +@reboot python3 -u /home/pi/CaravanPi/raspberrypi/systemstat2file.py >/home/pi/CaravanPi/.log/systemstat.log 2>&1 + +# MariaDB bereinigen, jeden Montag 01:05 +05 01 * * 1 python3 -u /home/pi/CaravanPi/raspberrypi/clean_MariaDB.py -d 150 >/home/pi/CaravanPi/.log/cleanMariaDB.log 2>&1 + +# Gassensor überwachen +@reboot python3 -u /home/pi/CaravanPi/analogSignals/gassensorCheck.py >/home/pi/CaravanPi/.log/gassensorCheck.log 2>&1 + +# 230V Eingang überwachen +@reboot python3 -u /home/pi/CaravanPi/analogSignals/v230Check.py >/home/pi/CaravanPi/.log/v230Check.log 2>&1 + +# 12V Eingang überwachen +#@reboot python3 -u /home/pi/CaravanPi/analogSignals/v12Check.py -b "car" >/home/pi/CaravanPi/.log/v12Check.log 2>&1 +@reboot python3 -u /home/pi/CaravanPi/analogSignals/v12Check.py -b "bord" >/home/pi/CaravanPi/.log/v12Check.log 2>&1 # Webservice bottleFramework starten -@reboot python3 -u /home/pi/CaravanPi/bottleFramework/bottleCommands.py >/home/pi/CaravanPi/.log/bottleCommands.log 2>&1 +#@reboot python3 -u /home/pi/CaravanPi/bottleFramework/bottleCommands.py >/home/pi/CaravanPi/.log/bottleCommands.log 2>&1 # Zeit zwischen StromPi und Raspberry Pi synchronisieren @reboot python /home/pi/StromPi3/RTCSerial.py >/home/pi/CaravanPi/.log/StromPi-RTC-sync.log 2>&1 diff --git a/.crontabs/crontab-root b/.crontabs/crontab-root index ca78409..25ddee9 100644 --- a/.crontabs/crontab-root +++ b/.crontabs/crontab-root @@ -1,8 +1,5 @@ # crontab root # -# Output of the crontab jobs (including errors) is sent through -# email to the user the crontab file belongs to (unless redirected). -# # min hour dayofmonth month dayofweek(0=Sonntag) command # # beim Neustart Skript fuer Sensor starten @@ -13,8 +10,9 @@ # 05 20 * * * /usr/local/bin/backup.sh > /home/pi/CaravanPi/.log/backup.log 2>&1 # # Backup Dateien starten -@reboot sleep 300 && /home/pi/CaravanPi/backup/backup-caravanpi.sh > /home/pi/CaravanPi/.log/backup-caravanpi.log 2>&1 -01 02 * * * /home/pi/CaravanPi/backup/backup-caravanpi.sh > /home/pi/CaravanPi/.log/backup-caravanpi.log 2>&1 + +@reboot sleep 300 && /home/pi/backup/backup.sh >>/home/pi/CaravanPi/.log/backup.log 2>&1 +01 02 * * * /home/pi/backup/backup.sh >>/home/pi/CaravanPi/.log/backup.log 2>&1 # # Logrotate starten @reboot sleep 300 && logrotate /etc/logrotate.conf diff --git a/.git_hooks/pre-commit b/.git_hooks/pre-commit index 24ff6c8..978a43e 100755 --- a/.git_hooks/pre-commit +++ b/.git_hooks/pre-commit @@ -1,11 +1,13 @@ #!/bin/sh # # Sensible Daten sollen aus Dateien entfernt werden +# Crontabs sollen in .crontabs gesichert werden # Pfad zu den Dateien und zum Backup-Verzeichnis CONFIG_XML="defaults/caravanpiConfig.xml" README_MD="defaults/README.md" BACKUP_DIR=".git_sensible_backup" +CRONTABS_DIR="/home/pi/CaravanPi/.crontabs" # Backup-Funktion backup_files() { @@ -27,8 +29,15 @@ update_files() { update_files "$CONFIG_XML" update_files "$README_MD" +# Crontab-Export hinzufügen +mkdir -p "$CRONTABS_DIR" +crontab -l > "$CRONTABS_DIR/crontab-pi" +sudo crontab -u root -l > "$CRONTABS_DIR/crontab-root" 2>/dev/null + # Fügen Sie die geänderten Dateien dem Commit hinzu git add "$CONFIG_XML" git add "$README_MD" +git add "$CRONTABS_DIR/crontab-pi" +git add "$CRONTABS_DIR/crontab-root" exit 0 \ No newline at end of file diff --git a/.lib/CaravanPiFilesClass.py b/.lib/CaravanPiFilesClass.py index a93cae6..3cb5db6 100644 --- a/.lib/CaravanPiFilesClass.py +++ b/.lib/CaravanPiFilesClass.py @@ -73,9 +73,9 @@ def typwandlung(self, wert, ziel_typ): elif ziel_typ == "float": return float(wert) elif ziel_typ == "bool": - # Für Booleans könnte man eine spezifischere Logik implementieren, - # die "true", "True", "1", etc. als True behandelt. - return bool(wert) and wert.lower() in ["true", "1", "yes"] + # "true", "True", "1", etc. werden als True behandelt. + # "0" ist false + return wert.lower() in ["true", "1", "yes"] elif ziel_typ == "str": return str(wert) elif ziel_typ == "list": @@ -207,10 +207,14 @@ def writeCaravanPiConfigItem(self, element_path, value): return -1 final_element = self.find_or_create_element_by_path(root, element_path, create_if_missing=True) + # print(ET.tostring(final_element, encoding='unicode')) + final_element.text = str(value) + # print(ET.tostring(final_element, encoding='unicode')) # Formatieren des XML-Baums vor dem Speichern self.format_xml(root) + # print(ET.tostring(root, encoding='unicode')) try: tree.write(self.xml_file_path, encoding='utf-8', xml_declaration=True) diff --git a/.lib/CaravanPiFunctionsClass.py b/.lib/CaravanPiFunctionsClass.py index 90d06cf..e1d1024 100644 --- a/.lib/CaravanPiFunctionsClass.py +++ b/.lib/CaravanPiFunctionsClass.py @@ -98,18 +98,17 @@ def play_alarm_single(self, gpio, buzzer_pin, alarmnr): gpio.setup(buzzer_pin, gpio.OUT) # Muster für die verschiedenen Alarme als Liste von (Tonlänge, Pausenlänge)-Tupeln (jeweils in Sekunden) + # Wartezeit beim letzten Eintrag immer 0.1, damit die Alarmausgabe keine zusätzlcihe Wartezeit verursacht, die bei Abschalten des Alarms über Config dann fehlt patterns = { - 0: [(0.05, 0.1), (0.5, 1)], # Standardmuster für andere Alarme - 1: [(0.05, 0.1), (0.05, 0.1), (0.5, 1)], # Alarm 1 - 2: [(0.05, 0.1), (0.05, 0.1), (0.05, 0.1), (0.5, 1)], # Alarm 2 - 3: [(0.05, 0.1), (0.05, 0.1), (0.05, 0.1), (0.05, 0.1), (0.5, 1)], # Alarm 2 + 0: [(0.05, 0.1), (0.5, 0.1)], # Standardmuster für andere Alarme + 1: [(0.05, 0.1), (0.05, 0.1), (0.5, 0.1)], # Alarm 1 + 2: [(0.05, 0.1), (0.05, 0.1), (0.05, 0.1), (0.5, 0.1)], # Alarm 2 + 3: [(0.05, 0.1), (0.05, 0.1), (0.05, 0.1), (0.05, 0.1), (0.5, 0.1)], # Alarm 2 } # Muster basierend auf alarmnrsetzen pattern = patterns.get(alarmnr, patterns[0]) - print(f"Alarm {alarmnr}") - # Durchlaufe das gewählte Muster for tone_length, pause_length in pattern: gpio.output(buzzer_pin, gpio.HIGH) @@ -117,9 +116,6 @@ def play_alarm_single(self, gpio, buzzer_pin, alarmnr): gpio.output(buzzer_pin, gpio.LOW) time.sleep(pause_length) - print("Alarm Ende") - - #gpio.cleanup() return True # ----------------------------------------------- diff --git a/analogSignals/gassensorCheck.py b/analogSignals/gassensorCheck.py index cbed4b3..fe64884 100644 --- a/analogSignals/gassensorCheck.py +++ b/analogSignals/gassensorCheck.py @@ -9,6 +9,7 @@ import sys import argparse import time +from datetime import datetime import RPi.GPIO as GPIO import board import busio @@ -27,19 +28,19 @@ def main(): - print("auf gehts") # ArgumentParser-Objekt erstellen parser = argparse.ArgumentParser(description='Lesen aller Temperatursensoren am 1-Wire-Bus') parser.add_argument('-s', '--screen', action='store_true', help='Ausgabe auf dem Bildschirm') parser.add_argument('-c', '--check', action='store_true', help='Führt den Funktionstest aus') - parser.add_argument('-d', '--delay', type=str, default='60', + parser.add_argument('-d', '--delay', type=str, default='30', help='Wartezeit zwischen zwei Messungen in Sekunden') # Argumente parsen args = parser.parse_args() delay = int(args.delay) + delayAlarm = 1.5 # Libraries anbinden cplib = CaravanPiFiles() @@ -51,12 +52,12 @@ def main(): return False # gibt es einen Gassensor? - gassensorInstalled = bool(cplib.readCaravanPiConfigItem("caravanpiDefaults/gassensorInstalled")) if cplib.readCaravanPiConfigItem("caravanpiDefaults/gassensorInstalled") is not None else False + gassensorInstalled = cplib.typwandlung(cplib.readCaravanPiConfigItem("caravanpiDefaults/gassensorInstalled"), "bool") if cplib.readCaravanPiConfigItem("caravanpiDefaults/gassensorInstalled") is not None else False gassensorDigitalIn = int(cplib.readCaravanPiConfigItem("caravanpiDefaults/gassensorDigitalIn")) if cplib.readCaravanPiConfigItem("caravanpiDefaults/gassensorDigitalIn") is not None else -1 gassensorAnalogIn = int(cplib.readCaravanPiConfigItem("caravanpiDefaults/gassensorAnalogIn")) if cplib.readCaravanPiConfigItem("caravanpiDefaults/gassensorAnalogIn") is not None else -1 - gassensorAlarmActive = bool(cplib.readCaravanPiConfigItem("caravanpiDefaults/gassensorAlarmActive")) if cplib.readCaravanPiConfigItem("caravanpiDefaults/gassensorAlarmActive") is not None else False + gassensorAlarmActive = cplib.typwandlung(cplib.readCaravanPiConfigItem("caravanpiDefaults/gassensorAlarmActive"), "bool") if cplib.readCaravanPiConfigItem("caravanpiDefaults/gassensorAlarmActive") is not None else False - print(f"Digital: {gassensorDigitalIn} , Analog: {gassensorAnalogIn}, Alarm aktiv: {gassensorAlarmActive}") + print(f"Digital: {gassensorDigitalIn} , Analog: {gassensorAnalogIn}, Alarm aktiv: {gassensorAlarmActive}, Delay: {delay} Sekunden") if not gassensorInstalled: print(f"kein Gassensor konfiguriert - Skript beenden") @@ -110,26 +111,34 @@ def main(): return False errorcount = 0 + gasDetected = False try: # Main program loop while True: try: - print("Analog: {:>5}\t{:>5.3f}".format(channel.value, channel.voltage)) - print("Digital: {}".format(GPIO.input(gassensorDigitalIn))) + # Einlesen, ob Alarm ausgegeben werden soll + gassensorAlarmActive = cplib.typwandlung(cplib.readCaravanPiConfigItem("caravanpiDefaults/gassensorAlarmActive"), "bool") if cplib.readCaravanPiConfigItem("caravanpiDefaults/gassensorAlarmActive") is not None else False + if not gassensorAlarmActive: + print("Alarm über Config ausgeschaltet") - print("---") + print(f"{datetime.now().strftime('%Y%m%d %H:%M:%S')}: ", "Analog: {:>5}, {:>5.3f}, ".format(channel.value, channel.voltage), "Digital: {}".format(GPIO.input(gassensorDigitalIn))) if GPIO.input(gassensorDigitalIn) == 0: # Gas detektiert + gasDetected = True + # Alarm ausgeben, wenn nicht abgeschaltet if gassensorAlarmActive: cpfunc.play_alarm_single(GPIO, buzzer_pin, 1) else: # kein Gas detektiert - # Alarm wieder einschalten - cplib.writeCaravanPiConfigItem("gassensorAlarmActive", 1) - gassensorAlarmActive = True + gasDetected = False + + if not gassensorAlarmActive: + # Alarm wieder einschalten + cplib.writeCaravanPiConfigItem("caravanpiDefaults/gassensorAlarmActive", 1) + gassensorAlarmActive = True - time.sleep(delay) + time.sleep(delayAlarm if gasDetected else delay) except Exception as e: print(f"Fehler {e} ist aufgetreten") @@ -145,7 +154,8 @@ def main(): errorcount = 0 except KeyboardInterrupt: - # Savenging work after the end of the program + # Alarm ausgeben, dass nicht zufällig Dauerton verbleibt beim Abbrechen + cpfunc.play_alarm_single(GPIO, buzzer_pin, 1) print('Script end!') diff --git a/analogSignals/spannungsteilerErrechnen.py b/analogSignals/spannungsteilerErrechnen.py new file mode 100644 index 0000000..18cbb2b --- /dev/null +++ b/analogSignals/spannungsteilerErrechnen.py @@ -0,0 +1,38 @@ +# ----------------------------------------------------------------- +# Spannungsteiler berechnen für Standarwiderstände +# +# Code wurde von ChatGPT erzeugt auf einen entsprechenden Prompt hin +# +# ----------------------------------------------------------------- + +def finde_spannungsteiler(widerstaende, Vin, Vout_ziel): + beste_differenz = Vin # Startwert für die kleinste gefundene Differenz, unrealistisch hoch + beste_kombination = None + + for R1 in widerstaende: + for R2 in widerstaende: + Vout = Vin * (R2 / (R1 + R2)) + differenz = Vout_ziel - Vout + if 0 < differenz < beste_differenz: # Vout soll knapp unter Vout_ziel sein + beste_differenz = differenz + beste_kombination = (R1, R2, Vout) + + return beste_kombination + +# Vorhandene Widerstände in Ohm +widerstaende = [10, 20, 47, 82, 100, 150, 220, 470, 560, 1000, 2200, 4700, 10000, 22000, 47000, 100000, 220000, 470000, 1000000] + +# Benutzereingaben +Vin = float(input("Bitte geben Sie die Eingangsspannung (Vin) ein: ")) +Vout_ziel = float(input("Bitte geben Sie die gewünschte Ausgangsspannung (Vout) ein: ")) + +# Beste Kombination finden +beste_kombination = finde_spannungsteiler(widerstaende, Vin, Vout_ziel) + +if beste_kombination: + R1, R2, Vout = beste_kombination + print(f"Beste Kombination: R1 = {R1} Ohm, R2 = {R2} Ohm, erwartete Ausgangsspannung = {Vout:.2f} V") +else: + print("Keine geeignete Kombination gefunden.") + +print(f"an vorhandenen Widerständen wurden dabei angenommen: {widerstaende}") \ No newline at end of file diff --git a/analogSignals/v12Check.py b/analogSignals/v12Check.py index a6f487e..07df841 100644 --- a/analogSignals/v12Check.py +++ b/analogSignals/v12Check.py @@ -1,20 +1,22 @@ #!/usr/bin/python # coding=utf-8 -# v230Check.py +# v12Check.py # -# überprüft das Vorhandensein von 230V +# überprüft das Vorhandensein von 12V +# Dabei mehrere 12V Eingänge überwacht werden, bei geeignetem Parameter # -# nutzt dazu eine Spezialplatine und einen ADC1115 -# Wenn 230v nicht da ist, wird ein Alarmton ausgegeben bis der Landstrom zurückkehrt +# nutzt dazu einen Spannungsteiler, einen LevelConverter und einen ADC1115 +# Wenn 12V nicht da ist oder ein zu niedriges Spannungslevel vorhanden ist, wird ein Alarmton ausgegeben # -# ist 230v vorhanden, wird in den Defaults der Alarm wieder eingeschaltet, so dass ein -# vorübergehend über die Config ausgeschalteter Alarm wieder aktiviert wird, sobald Landstrom wieder da ist +# ist ein ausreichendes Level wieder vorhanden, wird in den Defaults der Alarm wieder eingeschaltet, so dass ein +# vorübergehend über die Config ausgeschalteter Alarm wieder aktiviert wird # #------------------------------------------------------------------------------- import sys import argparse import time +from datetime import datetime import RPi.GPIO as GPIO import board import busio @@ -32,17 +34,20 @@ def main(): # ArgumentParser-Objekt erstellen - parser = argparse.ArgumentParser(description='Lesen aller Temperatursensoren am 1-Wire-Bus') + parser = argparse.ArgumentParser(description='Überwachung der 12V Versorgung') parser.add_argument('-s', '--screen', action='store_true', help='Ausgabe auf dem Bildschirm') parser.add_argument('-c', '--check', action='store_true', help='Führt den Funktionstest aus') - parser.add_argument('-d', '--delay', type=str, default='60', - help='Wartezeit zwischen zwei Messungen in Sekunden') + parser.add_argument('-d', '--delay', type=str, default='30', + help='Wartezeit zwischen zwei Messungen in Sekunden, default=30') + parser.add_argument('-b', '--battery', type=str, choices=['car', 'bord'], default='bord', + help='12V Anschluss wählen zwischen "bord" und "car", default = "bord"') # Argumente parsen args = parser.parse_args() delay = float(args.delay) + delayAlarm = 1.5 # Libraries anbinden cplib = CaravanPiFiles() @@ -53,15 +58,33 @@ def main(): print("Buzzer GPIO Pin nicht richtig konfiguriert - Programmende") return False - # ist die 230V Überwachung konfiguriert? - v230CheckInstalled = bool(cplib.readCaravanPiConfigItem("caravanpiDefaults/v230CheckInstalled")) if cplib.readCaravanPiConfigItem("caravanpiDefaults/v230CheckInstalled") is not None else False - v230CheckADCPin = int(cplib.readCaravanPiConfigItem("caravanpiDefaults/v230CheckADCPin")) if cplib.readCaravanPiConfigItem("caravanpiDefaults/v230CheckADCPin") is not None else -1 - v230CheckAlarmActive = bool(cplib.readCaravanPiConfigItem("caravanpiDefaults/v230CheckAlarmActive")) if cplib.readCaravanPiConfigItem("caravanpiDefaults/v230CheckAlarmActive") is not None else False - - print(f"ADC Pin: {v230CheckADCPin}, Alarm aktiv: {v230CheckAlarmActive}") + # ist die 12V Überwachung konfiguriert? + if args.battery == "bord": + v12CheckInstalled = cplib.typwandlung(cplib.readCaravanPiConfigItem("caravanpiDefaults/v12BatteryCheckInstalled"), "bool") if cplib.readCaravanPiConfigItem("caravanpiDefaults/v12BatteryCheckInstalled") is not None else False + v12CheckADCPin = int(cplib.readCaravanPiConfigItem("caravanpiDefaults/v12BatteryCheckADCPin")) if cplib.readCaravanPiConfigItem("caravanpiDefaults/v12BatteryCheckADCPin") is not None else -1 + v12CheckAlarmActive = cplib.typwandlung(cplib.readCaravanPiConfigItem("caravanpiDefaults/v12BatteryCheckAlarmActive"), "bool") if cplib.readCaravanPiConfigItem("caravanpiDefaults/v12BatteryCheckAlarmActive") is not None else False + v12xmlItemAlarm = "v12BatteryCheckAlarmActive" + elif args.battery == "car": + v12CheckInstalled = cplib.typwandlung(cplib.readCaravanPiConfigItem("caravanpiDefaults/v12CarCheckInstalled"), "bool") if cplib.readCaravanPiConfigItem("caravanpiDefaults/v12CarCheckInstalled") is not None else False + v12CheckADCPin = int(cplib.readCaravanPiConfigItem("caravanpiDefaults/v12CarCheckADCPin")) if cplib.readCaravanPiConfigItem("caravanpiDefaults/v12CarCheckADCPin") is not None else -1 + v12CheckAlarmActive = cplib.typwandlung(cplib.readCaravanPiConfigItem("caravanpiDefaults/v12CarCheckAlarmActive"), "bool") if cplib.readCaravanPiConfigItem("caravanpiDefaults/v12CarCheckAlarmActive") is not None else False + v12xmlItemAlarm = "v12CarCheckAlarmActive" + else: + print(f"falscher Battery Parameter - Skript beenden") + return False + + v12Level1 = float(cplib.readCaravanPiConfigItem("voltageDefaults/level1")) if cplib.readCaravanPiConfigItem("voltageDefaults/level1") is not None else -1 + v12Level2 = float(cplib.readCaravanPiConfigItem("voltageDefaults/level2")) if cplib.readCaravanPiConfigItem("voltageDefaults/level2") is not None else -1 + v12Level3 = float(cplib.readCaravanPiConfigItem("voltageDefaults/level3")) if cplib.readCaravanPiConfigItem("voltageDefaults/level3") is not None else -1 - if not v230CheckInstalled: - print(f"keine 230V Überwachung konfiguriert - Skript beenden") + if v12Level1 == -1 or v12Level2 == -1 or v12Level3 == -1: + print(f"Batterie Default Level nicht korrekt definiert ({v12Level1}, {v12Level2}, {v12Level3}) - Skript beenden") + return False + + print(f"ADC Pin: {v12CheckADCPin}, Alarm aktiv: {v12CheckAlarmActive}, Delay: {delay} Sekunden, Levels: {v12Level1}, {v12Level2}, {v12Level3}") + + if not v12CheckInstalled: + print(f"keine 12V Überwachung für {args.battery} konfiguriert - Skript beenden") return False # Verbindung zum AD Wandler herstellen @@ -91,53 +114,77 @@ def main(): # Connect fehlgeschlagen, dann beenden if not connectOK: return False - - # Schweelwerte holen - v1 = float(cplib.readCaravanPiConfigItem("voltageDefaults/level1")) if cplib.readCaravanPiConfigItem("voltageDefaults/level1") is not None else 0 - v2 = float(cplib.readCaravanPiConfigItem("voltageDefaults/level2")) if cplib.readCaravanPiConfigItem("voltageDefaults/level2") is not None else 0 - v3 = float(cplib.readCaravanPiConfigItem("voltageDefaults/level3")) if cplib.readCaravanPiConfigItem("voltageDefaults/level3") is not None else 0 - print(f"Level 1: {v1}, Level 2: {v2}, Level 3: {v3}") - # GPIO für Buzzer initialisieren GPIO.setwarnings(False) GPIO.setmode(GPIO.BCM) # Create single-ended input on channel 0 - if v230CheckADCPin == 0: + if v12CheckADCPin == 0: channel = AnalogIn(ads, ADS.P0) - elif v230CheckADCPin == 1: + elif v12CheckADCPin == 1: channel = AnalogIn(ads, ADS.P1) - elif v230CheckADCPin == 2: + elif v12CheckADCPin == 2: channel = AnalogIn(ads, ADS.P2) - elif v230CheckADCPin == 3: + elif v12CheckADCPin == 3: channel = AnalogIn(ads, ADS.P3) else: - print("AnalogIn Pin ist falsch, SOLL: 0 - 3, IST: {v230CheckADCPin}") + print("AnalogIn Pin ist falsch, SOLL: 0 - 3, IST: {v12CheckADCPin}") return False errorcount = 0 + v12DropDetected = False + + # Umrechnung der Batterie Levels nach dem Logiklevel Wandler + # ???? + + # Test mit 5 Volt + v12Level1 = 1.2 + v12Level2 = 1.6 + v12Level3 = 1.7 try: # Main program loop while True: try: - print("Analog: {:>5}\t{:>5.3f}".format(channel.value, channel.voltage)) - - print("---") - - v3 = 3 - - if channel.voltage <= v3: - # Ladung nicht mehr ausreichend - if v230CheckAlarmActive: - cpfunc.play_alarm_single(GPIO, buzzer_pin, 2) + # Einlesen, ob Alarm ausgegeben werden soll + v12CheckAlarmActive = cplib.typwandlung(cplib.readCaravanPiConfigItem(f"caravanpiDefaults/{v12xmlItemAlarm}"), "bool") if cplib.readCaravanPiConfigItem(f"caravanpiDefaults/{v12xmlItemAlarm}") is not None else False + if not v12CheckAlarmActive: + print("Alarm über Config ausgeschaltet") + + # Eine voll geladene Batterie gibt etwa 13.3 Volt aus, unter 12 Volt gilt eine Batterie als leer + print(f"{datetime.now().strftime('%Y%m%d %H:%M:%S')}: ", "Analog: {:>5}, {:>5.3f}, ".format(channel.value, channel.voltage)) + + if channel.voltage <= v12Level1: + print(f"Batterie leer bei {channel.voltage} Volt") + # Batterie leer + v12DropDetected = True + # Alarm ausgeben, wenn nicht abgeschaltet + if v12CheckAlarmActive: + cpfunc.play_alarm_single(GPIO, buzzer_pin, 3) + elif channel.voltage <= v12Level2: + print(f"Batterie ok bei {channel.voltage} Volt") + # Batterie noch OK + v12DropDetected = False + elif channel.voltage > v12Level2 and channel.voltage <= v12Level3: + print(f"Batterie voll geladen bei {channel.voltage} Volt") + # Batterie voll + v12DropDetected = False else: - # Ladung ausreichend - # Alarm wieder einschalten - cplib.writeCaravanPiConfigItem("v230CheckAlarmActive", 1) - v230CheckAlarmActive = True + print(f"Batterie bei {channel.voltage} Volt - seltsamer Zustand") + # Batterie überladen oder defekt ?? + v12DropDetected = True + # Alarm ausgeben, wenn nicht abgeschaltet + if v12CheckAlarmActive: + cpfunc.play_alarm_single(GPIO, buzzer_pin, 3) + + if channel.voltage > v12Level1 and channel.voltage <= v12Level3: + if not v12CheckAlarmActive: + # Alarm wieder einschalten + print("Alarm in Config einschalten") + cplib.writeCaravanPiConfigItem(f"caravanpiDefaults/{v12xmlItemAlarm}", 1) + v12CheckAlarmActive = True - time.sleep(delay) + time.sleep(delayAlarm if v12DropDetected else delay) except Exception as e: print(f"Fehler {e} ist aufgetreten") @@ -153,7 +200,8 @@ def main(): errorcount = 0 except KeyboardInterrupt: - # Savenging work after the end of the program + # Alarm ausgeben, dass nicht zufällig Dauerton verbleibt beim Abbrechen + cpfunc.play_alarm_single(GPIO, buzzer_pin, 1) print('Script end!') diff --git a/analogSignals/v230Check.py b/analogSignals/v230Check.py index 355ff49..6b89a28 100644 --- a/analogSignals/v230Check.py +++ b/analogSignals/v230Check.py @@ -15,6 +15,7 @@ import sys import argparse import time +from datetime import datetime import RPi.GPIO as GPIO import board import busio @@ -37,12 +38,13 @@ def main(): help='Ausgabe auf dem Bildschirm') parser.add_argument('-c', '--check', action='store_true', help='Führt den Funktionstest aus') - parser.add_argument('-d', '--delay', type=str, default='60', + parser.add_argument('-d', '--delay', type=str, default='30', help='Wartezeit zwischen zwei Messungen in Sekunden') # Argumente parsen args = parser.parse_args() delay = float(args.delay) + delayAlarm = 1.5 # Libraries anbinden cplib = CaravanPiFiles() @@ -54,11 +56,11 @@ def main(): return False # ist die 230V Überwachung konfiguriert? - v230CheckInstalled = bool(cplib.readCaravanPiConfigItem("caravanpiDefaults/v230CheckInstalled")) if cplib.readCaravanPiConfigItem("caravanpiDefaults/v230CheckInstalled") is not None else False + v230CheckInstalled = cplib.typwandlung(cplib.readCaravanPiConfigItem("caravanpiDefaults/v230CheckInstalled"), "bool") if cplib.readCaravanPiConfigItem("caravanpiDefaults/v230CheckInstalled") is not None else False v230CheckADCPin = int(cplib.readCaravanPiConfigItem("caravanpiDefaults/v230CheckADCPin")) if cplib.readCaravanPiConfigItem("caravanpiDefaults/v230CheckADCPin") is not None else -1 - v230CheckAlarmActive = bool(cplib.readCaravanPiConfigItem("caravanpiDefaults/v230CheckAlarmActive")) if cplib.readCaravanPiConfigItem("caravanpiDefaults/v230CheckAlarmActive") is not None else False + v230CheckAlarmActive = cplib.typwandlung(cplib.readCaravanPiConfigItem("caravanpiDefaults/v230CheckAlarmActive"), "bool") if cplib.readCaravanPiConfigItem("caravanpiDefaults/v230CheckAlarmActive") is not None else False - print(f"ADC Pin: {v230CheckADCPin}, Alarm aktiv: {v230CheckAlarmActive}") + print(f"ADC Pin: {v230CheckADCPin}, Alarm aktiv: {v230CheckAlarmActive}, Delay: {delay} Sekunden") if not v230CheckInstalled: print(f"keine 230V Überwachung konfiguriert - Skript beenden") @@ -111,27 +113,38 @@ def main(): errorcount = 0 schwelle = 2.0 + v230DropDetected = False + try: # Main program loop while True: try: + # Einlesen, ob Alarm ausgegeben werden soll + v230CheckAlarmActive = cplib.typwandlung(cplib.readCaravanPiConfigItem("caravanpiDefaults/v230CheckAlarmActive"), "bool") if cplib.readCaravanPiConfigItem("caravanpiDefaults/v230CheckAlarmActive") is not None else False + if not v230CheckAlarmActive: + print("Alarm über Config ausgeschaltet") + # Die Check-Platine gibt 3,x Volt aus, falls keine 230 V anliegen # Falls 230V anliegen, ist der Wert deutlich unter 2.5 V - print("Analog: {:>5}\t{:>5.3f}".format(channel.value, channel.voltage)) - - print("---") + print(f"{datetime.now().strftime('%Y%m%d %H:%M:%S')}: ", "Analog: {:>5}, {:>5.3f}, ".format(channel.value, channel.voltage)) if channel.voltage > schwelle: # 230 V liegen nicht an + v230DropDetected = True + # Alarm ausgeben, wenn nicht abgeschaltet if v230CheckAlarmActive: cpfunc.play_alarm_single(GPIO, buzzer_pin, 2) else: # 230 Volt liegen an - # Alarm wieder einschalten - cplib.writeCaravanPiConfigItem("v230CheckAlarmActive", 1) - v230CheckAlarmActive = True + v230DropDetected = False + + if not v230CheckAlarmActive: + # Alarm wieder einschalten + print("Alarm in Config einschalten") + cplib.writeCaravanPiConfigItem("caravanpiDefaults/v230CheckAlarmActive", 1) + v230CheckAlarmActive = True - time.sleep(delay) + time.sleep(delayAlarm if v230DropDetected else delay) except Exception as e: print(f"Fehler {e} ist aufgetreten") @@ -147,7 +160,8 @@ def main(): errorcount = 0 except KeyboardInterrupt: - # Savenging work after the end of the program + # Alarm ausgeben, dass nicht zufällig Dauerton verbleibt beim Abbrechen + cpfunc.play_alarm_single(GPIO, buzzer_pin, 1) print('Script end!') diff --git a/defaults/caravanpiConfig.xml b/defaults/caravanpiConfig.xml index 5e6cbb9..d34db79 100644 --- a/defaults/caravanpiConfig.xml +++ b/defaults/caravanpiConfig.xml @@ -27,15 +27,15 @@ 16 0 1 - 0 + 1 1 - 1 - 0 + 0 + 1 2 - 1 - 0 + 0 + 1 3 - 1 + 0 26 @@ -97,6 +97,4 @@ 10.0 10.0 - 1 - 1 diff --git a/html-flask/flask-main.py b/html-flask/flask-main.py index 204d914..4aecf4c 100644 --- a/html-flask/flask-main.py +++ b/html-flask/flask-main.py @@ -2,8 +2,19 @@ import threading import os import glob +import sys from datetime import datetime -from flask import Flask, Response, render_template +from flask import Flask, Response, render_template, redirect, url_for, flash + +# ----------------------------------------------- +# CaravanPi File/MARIADB/MQTT library einbinden +# ----------------------------------------------- +sys.path.append('/home/pi/CaravanPi/.lib') +from CaravanPiFilesClass import CaravanPiFiles +from CaravanPiFunctionsClass import CaravanPiFunctions + +cplib = CaravanPiFiles() + # importieren der weiteren Flask-Python-Files from checks_routes import register_checks_routes @@ -72,5 +83,26 @@ def shutdown_system(): # Rendert sofort eine Seite, die dem Benutzer mitteilt, dass ein Neustart im Gange ist return render_template('reboot_shutdown.html') +@app.route('/aktor/alarm_230v_aus') +def aktor_alarm_230v_aus(): + print("Alarm 230v in Config ausschalten") + cplib.writeCaravanPiConfigItem("caravanpiDefaults/v230CheckAlarmActive", 0) + flash('Alarm wurde ausgeschaltet') + return redirect(url_for('home')) + +@app.route('/aktor/alarm_12v_bord_aus') +def aktor_alarm_12v_bord_aus(): + print("Alarm 12v bord in Config ausschalten") + cplib.writeCaravanPiConfigItem("caravanpiDefaults/v12BatteryCheckAlarmActive", 0) + flash('Alarm wurde ausgeschaltet') + return redirect(url_for('home')) + +@app.route('/aktor/alarm_12v_car_aus') +def aktor_alarm_12v_car_aus(): + print("Alarm 12v car in Config ausschalten") + cplib.writeCaravanPiConfigItem("caravanpiDefaults/v12CarCheckAlarmActive", 0) + flash('Alarm wurde ausgeschaltet') + return redirect(url_for('home')) + if __name__ == '__main__': app.run(host='0.0.0.0', port=5000, debug=True) diff --git a/html-flask/flask-main_20240303.py b/html-flask/flask-main_20240303.py new file mode 100644 index 0000000..204d914 --- /dev/null +++ b/html-flask/flask-main_20240303.py @@ -0,0 +1,76 @@ +import subprocess +import threading +import os +import glob +from datetime import datetime +from flask import Flask, Response, render_template + +# importieren der weiteren Flask-Python-Files +from checks_routes import register_checks_routes +from config_routes import register_config_routes +from calibration_routes import register_calibration_routes +from test_routes import register_test_routes + +app = Flask(__name__) +app.secret_key = 'd@o842FTz-_M2hbcU37N-ynvcwMNLe4tEoiZoH@4' # Zeichenfolge ist nicht wichtig, sollte kompliziert sein + +# registieren der importierten Routen +register_checks_routes(app) +register_config_routes(app) +register_calibration_routes(app) +register_test_routes(app) + +# definieren der zentralen Routen + +@app.route('/') +def home(): + # Startseite, von der aus die Checks gestartet werden + return render_template('index-flask.html') # Startseite mit einem Button oder automatischer Weiterleitung zu '/check_database' + +@app.route('/show_config') +def show_config(): + config_path = '/home/pi/CaravanPi/defaults/caravanpiConfig.xml' + if os.path.exists(config_path): + with open(config_path, 'r') as file: + xml_content = file.read() + return Response(xml_content, mimetype='text/xml') + else: + return "Die Konfigurationsdatei konnte nicht gefunden werden.", 404 + +@app.route('/list_logs') +def list_logs(): + # Pfad zum Verzeichnis, das die .log Dateien enthält + logs_directory = '/home/pi/CaravanPi/.log' + # Erstellen der Liste aller .log Dateien + log_files = glob.glob(os.path.join(logs_directory, '*.log')) + # Liste für die Dateiinformationen + files_info = [] + for file in log_files: + # Dateigröße in Bytes + size = os.path.getsize(file) + # Letzte Änderung als Datum + mtime = datetime.fromtimestamp(os.path.getmtime(file)).strftime('%Y-%m-%d %H:%M:%S') + files_info.append({ + 'name': os.path.basename(file), + 'size': size, + 'mtime': mtime + }) + files_info.sort(key=lambda x: x['name'].lower()) + return render_template('list_logs.html', files_info=files_info) + +@app.route('/reboot') +def reboot_system(): + # Startet den Reboot in einem separaten Thread nach einer Verzögerung + threading.Timer(5, lambda: subprocess.run(['sudo', 'reboot'])).start() + # Rendert sofort eine Seite, die dem Benutzer mitteilt, dass ein Neustart im Gange ist + return render_template('reboot_shutdown.html') + +@app.route('/shutdown') +def shutdown_system(): + # Startet den Reboot in einem separaten Thread nach einer Verzögerung + threading.Timer(5, lambda: subprocess.run(['sudo', 'shutdown', '-h', 'now'])).start() + # Rendert sofort eine Seite, die dem Benutzer mitteilt, dass ein Neustart im Gange ist + return render_template('reboot_shutdown.html') + +if __name__ == '__main__': + app.run(host='0.0.0.0', port=5000, debug=True) diff --git a/html-flask/static/css/caravanpi.css b/html-flask/static/css/caravanpi.css index 3441418..09f3feb 100644 --- a/html-flask/static/css/caravanpi.css +++ b/html-flask/static/css/caravanpi.css @@ -139,6 +139,11 @@ th, td { * --------------------------------------------------------- */ +.button-container { + display: flex; + justify-content: flex-start; /* oder 'flex-start' für keinen Zwischenraum */ + padding: 0 5px; +} .finish-button { background-color: white; @@ -157,12 +162,44 @@ th, td { background-color: #f8f8f8; /* Leichte Farbänderung beim Überfahren mit der Maus */ } -.button-container { +/* Menüs als Buttons */ + +.menu-button-container { display: flex; - justify-content: flex-start; /* oder 'flex-start' für keinen Zwischenraum */ - padding: 0 5px; + flex-direction: row; /* Richtet Kinder (Buttons) horizontal aus */ + flex-wrap: wrap; /* Erlaubt das Umfließen auf eine neue Zeile bei Bedarf */ + justify-content: flex-start; /* Startet die Ausrichtung der Kinder am Anfang des Containers */ +} +.menu-row-container { + display: flex; + align-items: center; + margin-bottom: 10px; /* Abstand zwischen den Zeilen */ +} + +.menu-header-container { + flex: 0 0 100px; /* feste Breite, keine Schrumpfung, kein Wachstum */ + text-align: left; /* Text linksbündig ausrichten */ + /* Weitere Stildefinitionen für die Überschrift */ } +.menu-button { + background-color: white; + color: black; + border: 1px solid black; + border-radius: 10px; + box-shadow: 3px 3px 5px grey; + padding: 15px; + font-size: 18px; /* oder die gewünschte Größe */ + cursor: pointer; /* Zeigt den Mauszeiger als Hand, um die Klickbarkeit anzuzeigen */ + margin-top: 0px; + margin-right: 10px; + flex-grow: 1; /* Lässt die Buttons den verfügbaren Platz einnehmen */ +} +.menu-button:hover { + background-color: #f8f8f8; /* Leichte Farbänderung beim Überfahren mit der Maus */ +} + + /* --------------------------------------------------------- diff --git a/html-flask/static/js/build_menus.js b/html-flask/static/js/build_menus.js index 2118fc6..2b47e95 100644 --- a/html-flask/static/js/build_menus.js +++ b/html-flask/static/js/build_menus.js @@ -2,99 +2,128 @@ // Funktionen zum EInfügen der menüs in der Flask Installation // ------------------------------------------------------------------ // -function populateMainLinks(menu, includeHome) { - var host = window.location.hostname; - var port = window.location.port; - - var links = [ - { text: "Startseite", url: 'http://' + host + ':5000/', isExternal: false, addSeparator: true }, - { text: "Statusanzeige CaravanPi, Sensoren, Applikationen, ...", url: 'http://' + host + ':5000/checks', isExternal: false, addSeparator: true, header: "Statusanzeige und Konfiguration" }, - { text: "Konfiguration der Abmessungen und Sensoren", url: 'http://' + host + ':5000/configs', isExternal: false, addSeparator: false }, - { text: "Kalibrierung der Sensoren", url: 'http://' + host + ':5000/calibration', isExternal: false, addSeparator: false }, - { text: "Test-Routinen", url: 'http://' + host + ':5000/tests_home', isExternal: false, addSeparator: true }, - { text: "MagicMirror Konfiguration", url: 'http://' + host + ':8080/remote.html#main-menu', isExternal: true, addSeparator: false, header: "MagicMirror" }, - { text: "MagicMirror Remote-Anzeige", url: 'http://' + host + ':8080', isExternal: true, addSeparator: true }, - { text: "Grafana Website", url: 'http://' + host + ':3000', isExternal: true, addSeparator: false, header: "MariaDB" }, - { text: "phpMyAdmin", url: 'http://' + host + '/phpmyadmin/', isExternal: true, addSeparator: true }, - { text: "CaravanPi Config anzeigen", url: 'http://' + host + ':5000/show_config', isExternal: true, addSeparator: false, header: "Config / LOGs anzeigen" }, - { text: "CaravanPi LOG Dateien anzeigen", url: 'http://' + host + ':5000/list_logs', isExternal: true, addSeparator: true }, - { text: "RPi neu starten", url: 'http://' + host + ':5000/reboot', isExternal: true, addSeparator: false, header: "Raspberry Pi Steuerung" }, - { text: "RPi ausschalten", url: 'http://' + host + ':5000/shutdown', isExternal: false, addSeparator: false }, - ]; +// Definition von Variablen +var host = window.location.hostname; +var port = window.location.port; + +// Definition des Hauptmenüs für das Hamburgermenü und das Hauptmenü auf der Startseite +var links_main = [ + { text: "Startseite", url: 'http://' + host + ':5000/', isExternal: false, addSeparator: true }, + { text: "Status", url: 'http://' + host + ':5000/checks', isExternal: false, addSeparator: false, header: "CaravanPi" }, + { text: "Konfiguration", url: 'http://' + host + ':5000/configs', isExternal: false, addSeparator: false }, + { text: "Kalibrierung", url: 'http://' + host + ':5000/calibration', isExternal: false, addSeparator: false }, + { text: "Tests", url: 'http://' + host + ':5000/tests_home', isExternal: false, addSeparator: true }, + { text: "Konfiguration", url: 'http://' + host + ':8080/remote.html#main-menu', isExternal: true, addSeparator: false, header: "MagicMirror" }, + { text: "Remote-Anzeige", url: 'http://' + host + ':8080', isExternal: true, addSeparator: true }, + { text: "Grafana Website", url: 'http://' + host + ':3000', isExternal: true, addSeparator: false, header: "MariaDB" }, + { text: "phpMyAdmin", url: 'http://' + host + '/phpmyadmin/', isExternal: true, addSeparator: true }, + { text: "Config anzeigen", url: 'http://' + host + ':5000/show_config', isExternal: true, addSeparator: false, header: "Anzeigen" }, + { text: "LOGs anzeigen", url: 'http://' + host + ':5000/list_logs', isExternal: true, addSeparator: true }, + { text: "RPi neu starten", url: 'http://' + host + ':5000/reboot', isExternal: true, addSeparator: false, header: "Raspberry Pi" }, + { text: "RPi ausschalten", url: 'http://' + host + ':5000/shutdown', isExternal: false, addSeparator: false }, +]; + +var links_config = [ + { text: "Grundeinstellungen", url: 'http://' + host + ':5000/config_caravanpi', isExternal: false, addSeparator: true, header: "CaravanPi" }, + { text: "Caravan bzw. Wohnmobil", url: 'http://' + host + ':5000/config_dimension_caravan', isExternal: false, addSeparator: false, header: "Dimensionen" }, + { text: "Lagesensor", url: 'http://' + host + ':5000/config_lagesensor', isExternal: false, addSeparator: true }, + { text: "Gasflaschen-Waagen", url: 'http://' + host + ':5000/config_gaswaage', isExternal: false, addSeparator: false, header: "Geräte" }, + { text: "Tanks", url: 'http://' + host + ':5000/config_tanks', isExternal: false, addSeparator: false }, + { text: "Batterie", url: 'http://' + host + ':5000/config_voltage', isExternal: false, addSeparator: false }, +]; + +var links_calibration = [ + { text: "Lagesensor", url: 'http://' + host + ':5000/calibration_lage', isExternal: false, addSeparator: false, header: "Kalibrierung" }, + { text: "Gasflaschen-Waagen", url: 'http://' + host + ':5000/calibration_waage', isExternal: false, addSeparator: false }, +]; + +var links_tests = [ + { text: "LEDs", url: 'http://' + host + ':5000/test_LEDs', isExternal: false, addSeparator: false, header: "Tests" }, + { text: "Buzzers", url: 'http://' + host + ':5000/test_buzzer', isExternal: false, addSeparator: false }, + { text: "Taster", url: 'http://' + host + ':5000/test_switches', isExternal: false, addSeparator: true }, + { text: "Statusanzeige", url: 'http://' + host + ':5000/checks', isExternal: false, addSeparator: false }, +]; + +var links_aktoren = [ + { text: "230V Alarm", url: 'http://' + host + ':5000/aktor/alarm_230v_aus', isExternal: false, addSeparator: false, header: "Alarme aus" }, + { text: "12V Bord Alarm", url: 'http://' + host + ':5000/aktor/alarm_12v_bord_aus', isExternal: false, addSeparator: false }, + { text: "12V Car Alarm", url: 'http://' + host + ':5000/aktor/alarm_12v_car_aus', isExternal: false, addSeparator: false }, + { text: "Bad", url: 'http://' + host + ':5000/checks', isExternal: false, addSeparator: false, header: "Licht ein/aus" }, + { text: "Küche", url: 'http://' + host + ':5000/checks', isExternal: false, addSeparator: false }, + { text: "alle", url: 'http://' + host + ':5000/checks', isExternal: false, addSeparator: false }, +]; + +// Funktion zum Erzeugen des Hauptmenü als Buttons aus der gemeinsamen Liste +function populateMenusAsButtons(container, linksData, includeHome) { if (!includeHome) { - links.shift(); // Entfernt die Startseite, wenn includeHome false ist + linksData.shift(); // Entfernt die Startseite, wenn includeHome false ist } - links.forEach(function(link) { - // Prüft, ob eine Überschrift eingefügt werden soll - if (link.header) { - var header = document.createElement('h3'); // Oder eine andere geeignete Überschriftsebene - header.textContent = link.header; - menu.appendChild(header); - } - - var a = document.createElement('a'); - a.href = link.url; - a.textContent = link.text; - if (link.isExternal) { - a.target = "_blank"; // Öffnet den Link in einem neuen Fenster/Tab + let rowContainer = null; + let buttonContainer = null; + + linksData.forEach(function(link, index) { + // Neuen row-container für den ersten Link oder wenn eine neue Überschrift vorhanden ist + if (index === 0 || link.header) { + // Vorherigen row-container abschließen, falls vorhanden + if (rowContainer) { + container.appendChild(rowContainer); + } + + // Neuen row-container erstellen + rowContainer = document.createElement('div'); + rowContainer.className = 'menu-row-container'; + + // header-container erstellen, falls eine Überschrift vorhanden ist + if (link.header) { + const headerContainer = document.createElement('div'); + headerContainer.className = 'menu-header-container'; + headerContainer.textContent = link.header; + rowContainer.appendChild(headerContainer); + } + + // Neuen button-container für die Buttons erstellen + buttonContainer = document.createElement('div'); + buttonContainer.className = 'menu-button-container'; + rowContainer.appendChild(buttonContainer); } - menu.appendChild(a); - if (link.addSeparator) { - var separator = document.createElement('br'); // Erstellt eine Leerzeile als Trennzeichen - menu.appendChild(separator); - } + // Buttons erstellen und zum button-container hinzufügen + const button = document.createElement('button'); + button.className = 'menu-button'; + button.textContent = link.text; + button.onclick = function() { + if (link.isExternal) { + window.open(link.url, '_blank'); + } else { + window.location.href = link.url; + } + }; + buttonContainer.appendChild(button); }); -} -function populateConfigLinks(menu) { - var host = window.location.hostname; - var port = window.location.port; - - var links = [ - { text: "Grundeinstellungen CaravanPi", url: 'http://' + host + ':5000/config_caravanpi', isExternal: false, addSeparator: true }, - { text: "Dimensionen Caravan bzw. Wohnmobil", url: 'http://' + host + ':5000/config_dimension_caravan', isExternal: false, addSeparator: false }, - { text: "Lagesensor", url: 'http://' + host + ':5000/config_lagesensor', isExternal: false, addSeparator: false }, - { text: "Gasflaschen-Waagen", url: 'http://' + host + ':5000/config_gaswaage', isExternal: false, addSeparator: false }, - { text: "Tanks", url: 'http://' + host + ':5000/config_tanks', isExternal: false, addSeparator: false }, - { text: "Batterie", url: 'http://' + host + ':5000/config_voltage', isExternal: false, addSeparator: false }, - ]; - - links.forEach(function(link) { - // Prüft, ob eine Überschrift eingefügt werden soll - if (link.header) { - var header = document.createElement('h3'); // Oder eine andere geeignete Überschriftsebene - header.textContent = link.header; - menu.appendChild(header); - } + // Letzten row-container zum container hinzufügen + if (rowContainer) { + container.appendChild(rowContainer); + } +} - var a = document.createElement('a'); - a.href = link.url; - a.textContent = link.text; - if (link.isExternal) { - a.target = "_blank"; // Öffnet den Link in einem neuen Fenster/Tab - } - menu.appendChild(a); - if (link.addSeparator) { - var separator = document.createElement('br'); // Erstellt eine Leerzeile als Trennzeichen - menu.appendChild(separator); - } - }); +function populateMainAsButtons(menu, includeHome) { + var localLinks = [...links_main]; // Erstellt eine Kopie des links-Arrays, damit shift nicht dauerhaft wirkt + populateMenusAsButtons(menu, localLinks, includeHome) } -function populateCalibrationLinks(menu) { - var host = window.location.hostname; - var port = window.location.port; +// Funktion zum Erzeugen des Hauptmenü als Links (für Hamburgermenü) aus der gemeinsamen Liste +function populateMainAsLinks(menu, includeHome) { + var localLinks = [...links_main]; // Erstellt eine Kopie des links-Arrays, damit shift nicht dauerhaft wirkt - var links = [ - { text: "Lagesensor", url: 'http://' + host + ':5000/calibration_lage', isExternal: false, addSeparator: false }, - { text: "Gasflaschen-Waagen", url: 'http://' + host + ':5000/calibration_waage', isExternal: false, addSeparator: false }, - ]; + if (!includeHome) { + localLinks.shift(); // Entfernt die Startseite, wenn includeHome false ist + } - links.forEach(function(link) { + localLinks.forEach(function(link) { // Prüft, ob eine Überschrift eingefügt werden soll if (link.header) { var header = document.createElement('h3'); // Oder eine andere geeignete Überschriftsebene @@ -110,45 +139,31 @@ function populateCalibrationLinks(menu) { } menu.appendChild(a); - if (link.addSeparator) { - var separator = document.createElement('br'); // Erstellt eine Leerzeile als Trennzeichen - menu.appendChild(separator); + if(link.addSeparator) { + menu.appendChild(document.createElement('br')); } }); } -function populateTestLinks(menu) { - var host = window.location.hostname; - var port = window.location.port; - - var links = [ - { text: "Testen der LEDs", url: 'http://' + host + ':5000/test_LEDs', isExternal: false, addSeparator: false }, - { text: "Testen des Buzzers", url: 'http://' + host + ':5000/test_buzzer', isExternal: false, addSeparator: false }, - { text: "Testen der Taster", url: 'http://' + host + ':5000/test_switches', isExternal: false, addSeparator: true }, - { text: "Statusanzeige CaravanPi, Sensoren, Applikationen, ...", url: 'http://' + host + ':5000/checks', isExternal: false, addSeparator: false }, - ]; +function populateConfigLinks(menu) { + var localLinks = [...links_config]; // Erstellt eine Kopie des links-Arrays, damit shift nicht dauerhaft wirkt + populateMenusAsButtons(menu, localLinks, true) +} - links.forEach(function(link) { - // Prüft, ob eine Überschrift eingefügt werden soll - if (link.header) { - var header = document.createElement('h3'); // Oder eine andere geeignete Überschriftsebene - header.textContent = link.header; - menu.appendChild(header); - } +function populateCalibrationLinks(menu) { + var localLinks = [...links_calibration]; // Erstellt eine Kopie des links-Arrays, damit shift nicht dauerhaft wirkt + populateMenusAsButtons(menu, localLinks, true) +} - var a = document.createElement('a'); - a.href = link.url; - a.textContent = link.text; - if (link.isExternal) { - a.target = "_blank"; // Öffnet den Link in einem neuen Fenster/Tab - } - menu.appendChild(a); +function populateTestLinks(menu) { + var localLinks = [...links_tests]; // Erstellt eine Kopie des links-Arrays, damit shift nicht dauerhaft wirkt + populateMenusAsButtons(menu, localLinks, true) +} - if (link.addSeparator) { - var separator = document.createElement('br'); // Erstellt eine Leerzeile als Trennzeichen - menu.appendChild(separator); - } - }); +function populateAktorLinks(menu) { + var localLinks = [...links_aktoren]; // Erstellt eine Kopie des links-Arrays, damit shift nicht dauerhaft wirkt + console.log("Aktoren als Buttons bauen ..."); + populateMenusAsButtons(menu, localLinks, true) } function toggleHamburgerMenu() { @@ -164,30 +179,45 @@ window.onload = function() { // Hauptmenü und Hamburgermenü, soweit vorhanden var mainMenu = document.getElementById("mainMenu"); if (mainMenu) { - populateMainLinks(mainMenu, false); // Hauptmenü + console.log("main bauen ..."); + populateMainAsButtons(mainMenu, false); // Hauptmenü } var hamburgerMenu = document.getElementById("hamburgerMenu"); if (hamburgerMenu) { - populateMainLinks(hamburgerMenu, true); // Hamburger-Menü mit Startseite + console.log("hamburger bauen ..."); + populateMainAsLinks(hamburgerMenu, true); // Hamburger-Menü mit Startseite } // weitere Menüs für Unterseiten, soweit vorhanden var configMenu = document.getElementById("configMenu"); if (configMenu) { + console.log("config bauen ..."); populateConfigLinks(configMenu); // Hauptmenü der Konfiguration } var calibrationMenu = document.getElementById("calibrationMenu"); if (calibrationMenu) { + console.log("calibration bauen ..."); populateCalibrationLinks(calibrationMenu); // Hauptmenü der Kalibrierung } var testsMenu = document.getElementById("testsMenu"); if (testsMenu) { + console.log("tests bauen ..."); populateTestLinks(testsMenu); // Hauptmenü der Tests } + console.log("Aktoren Menü suchen ..."); + + var aktorMenu = document.getElementById("aktorMenu"); + console.log("Aktoren gefunden?", aktorMenu); + + if (aktorMenu) { + console.log("Aktoren Menü bauen ..."); + populateAktorLinks(aktorMenu); // Hauptmenü der Aktoren + } + }; function hideAndShowMessage() { diff --git a/html-flask/static/js/build_menus_20240303.js b/html-flask/static/js/build_menus_20240303.js new file mode 100644 index 0000000..2118fc6 --- /dev/null +++ b/html-flask/static/js/build_menus_20240303.js @@ -0,0 +1,201 @@ +// ------------------------------------------------------------------ +// Funktionen zum EInfügen der menüs in der Flask Installation +// ------------------------------------------------------------------ +// +function populateMainLinks(menu, includeHome) { + var host = window.location.hostname; + var port = window.location.port; + + var links = [ + { text: "Startseite", url: 'http://' + host + ':5000/', isExternal: false, addSeparator: true }, + { text: "Statusanzeige CaravanPi, Sensoren, Applikationen, ...", url: 'http://' + host + ':5000/checks', isExternal: false, addSeparator: true, header: "Statusanzeige und Konfiguration" }, + { text: "Konfiguration der Abmessungen und Sensoren", url: 'http://' + host + ':5000/configs', isExternal: false, addSeparator: false }, + { text: "Kalibrierung der Sensoren", url: 'http://' + host + ':5000/calibration', isExternal: false, addSeparator: false }, + { text: "Test-Routinen", url: 'http://' + host + ':5000/tests_home', isExternal: false, addSeparator: true }, + { text: "MagicMirror Konfiguration", url: 'http://' + host + ':8080/remote.html#main-menu', isExternal: true, addSeparator: false, header: "MagicMirror" }, + { text: "MagicMirror Remote-Anzeige", url: 'http://' + host + ':8080', isExternal: true, addSeparator: true }, + { text: "Grafana Website", url: 'http://' + host + ':3000', isExternal: true, addSeparator: false, header: "MariaDB" }, + { text: "phpMyAdmin", url: 'http://' + host + '/phpmyadmin/', isExternal: true, addSeparator: true }, + { text: "CaravanPi Config anzeigen", url: 'http://' + host + ':5000/show_config', isExternal: true, addSeparator: false, header: "Config / LOGs anzeigen" }, + { text: "CaravanPi LOG Dateien anzeigen", url: 'http://' + host + ':5000/list_logs', isExternal: true, addSeparator: true }, + { text: "RPi neu starten", url: 'http://' + host + ':5000/reboot', isExternal: true, addSeparator: false, header: "Raspberry Pi Steuerung" }, + { text: "RPi ausschalten", url: 'http://' + host + ':5000/shutdown', isExternal: false, addSeparator: false }, + ]; + + if (!includeHome) { + links.shift(); // Entfernt die Startseite, wenn includeHome false ist + } + + links.forEach(function(link) { + // Prüft, ob eine Überschrift eingefügt werden soll + if (link.header) { + var header = document.createElement('h3'); // Oder eine andere geeignete Überschriftsebene + header.textContent = link.header; + menu.appendChild(header); + } + + var a = document.createElement('a'); + a.href = link.url; + a.textContent = link.text; + if (link.isExternal) { + a.target = "_blank"; // Öffnet den Link in einem neuen Fenster/Tab + } + menu.appendChild(a); + + if (link.addSeparator) { + var separator = document.createElement('br'); // Erstellt eine Leerzeile als Trennzeichen + menu.appendChild(separator); + } + }); +} + +function populateConfigLinks(menu) { + var host = window.location.hostname; + var port = window.location.port; + + var links = [ + { text: "Grundeinstellungen CaravanPi", url: 'http://' + host + ':5000/config_caravanpi', isExternal: false, addSeparator: true }, + { text: "Dimensionen Caravan bzw. Wohnmobil", url: 'http://' + host + ':5000/config_dimension_caravan', isExternal: false, addSeparator: false }, + { text: "Lagesensor", url: 'http://' + host + ':5000/config_lagesensor', isExternal: false, addSeparator: false }, + { text: "Gasflaschen-Waagen", url: 'http://' + host + ':5000/config_gaswaage', isExternal: false, addSeparator: false }, + { text: "Tanks", url: 'http://' + host + ':5000/config_tanks', isExternal: false, addSeparator: false }, + { text: "Batterie", url: 'http://' + host + ':5000/config_voltage', isExternal: false, addSeparator: false }, + ]; + + links.forEach(function(link) { + // Prüft, ob eine Überschrift eingefügt werden soll + if (link.header) { + var header = document.createElement('h3'); // Oder eine andere geeignete Überschriftsebene + header.textContent = link.header; + menu.appendChild(header); + } + + var a = document.createElement('a'); + a.href = link.url; + a.textContent = link.text; + if (link.isExternal) { + a.target = "_blank"; // Öffnet den Link in einem neuen Fenster/Tab + } + menu.appendChild(a); + + if (link.addSeparator) { + var separator = document.createElement('br'); // Erstellt eine Leerzeile als Trennzeichen + menu.appendChild(separator); + } + }); +} + +function populateCalibrationLinks(menu) { + var host = window.location.hostname; + var port = window.location.port; + + var links = [ + { text: "Lagesensor", url: 'http://' + host + ':5000/calibration_lage', isExternal: false, addSeparator: false }, + { text: "Gasflaschen-Waagen", url: 'http://' + host + ':5000/calibration_waage', isExternal: false, addSeparator: false }, + ]; + + links.forEach(function(link) { + // Prüft, ob eine Überschrift eingefügt werden soll + if (link.header) { + var header = document.createElement('h3'); // Oder eine andere geeignete Überschriftsebene + header.textContent = link.header; + menu.appendChild(header); + } + + var a = document.createElement('a'); + a.href = link.url; + a.textContent = link.text; + if (link.isExternal) { + a.target = "_blank"; // Öffnet den Link in einem neuen Fenster/Tab + } + menu.appendChild(a); + + if (link.addSeparator) { + var separator = document.createElement('br'); // Erstellt eine Leerzeile als Trennzeichen + menu.appendChild(separator); + } + }); +} + +function populateTestLinks(menu) { + var host = window.location.hostname; + var port = window.location.port; + + var links = [ + { text: "Testen der LEDs", url: 'http://' + host + ':5000/test_LEDs', isExternal: false, addSeparator: false }, + { text: "Testen des Buzzers", url: 'http://' + host + ':5000/test_buzzer', isExternal: false, addSeparator: false }, + { text: "Testen der Taster", url: 'http://' + host + ':5000/test_switches', isExternal: false, addSeparator: true }, + { text: "Statusanzeige CaravanPi, Sensoren, Applikationen, ...", url: 'http://' + host + ':5000/checks', isExternal: false, addSeparator: false }, + ]; + + links.forEach(function(link) { + // Prüft, ob eine Überschrift eingefügt werden soll + if (link.header) { + var header = document.createElement('h3'); // Oder eine andere geeignete Überschriftsebene + header.textContent = link.header; + menu.appendChild(header); + } + + var a = document.createElement('a'); + a.href = link.url; + a.textContent = link.text; + if (link.isExternal) { + a.target = "_blank"; // Öffnet den Link in einem neuen Fenster/Tab + } + menu.appendChild(a); + + if (link.addSeparator) { + var separator = document.createElement('br'); // Erstellt eine Leerzeile als Trennzeichen + menu.appendChild(separator); + } + }); +} + +function toggleHamburgerMenu() { + var menu = document.getElementById("hamburgerMenu"); + if (menu.style.display === "block") { + menu.style.display = "none"; + } else { + menu.style.display = "block"; + } +} + +window.onload = function() { + // Hauptmenü und Hamburgermenü, soweit vorhanden + var mainMenu = document.getElementById("mainMenu"); + if (mainMenu) { + populateMainLinks(mainMenu, false); // Hauptmenü + } + + var hamburgerMenu = document.getElementById("hamburgerMenu"); + if (hamburgerMenu) { + populateMainLinks(hamburgerMenu, true); // Hamburger-Menü mit Startseite + } + + // weitere Menüs für Unterseiten, soweit vorhanden + var configMenu = document.getElementById("configMenu"); + if (configMenu) { + populateConfigLinks(configMenu); // Hauptmenü der Konfiguration + } + + var calibrationMenu = document.getElementById("calibrationMenu"); + if (calibrationMenu) { + populateCalibrationLinks(calibrationMenu); // Hauptmenü der Kalibrierung + } + + var testsMenu = document.getElementById("testsMenu"); + if (testsMenu) { + populateTestLinks(testsMenu); // Hauptmenü der Tests + } + +}; + +function hideAndShowMessage() { + var message = document.querySelector('.flash-message'); + if (message) { + message.style.display = 'none'; // Versteckt die Nachricht + setTimeout(function() { + message.style.display = 'block'; // Zeigt die Nachricht nach einer kurzen Verzögerung wieder an + }, 500); // 500 Millisekunden Verzögerung + } +} diff --git a/html-flask/templates/index-flask.html b/html-flask/templates/index-flask.html index b2c1d92..27e9483 100644 --- a/html-flask/templates/index-flask.html +++ b/html-flask/templates/index-flask.html @@ -24,9 +24,23 @@

    + {% with messages = get_flashed_messages() %} + {% if messages %} + {% for message in messages %} +
    {{ message }}
    + {% endfor %} + {% endif %} + {% endwith %} + +

     

    +

    Bedienung der Aktoren

    + + +

     

    -

    Konfiguration und Bedienung des CaravanPi

    -


    +

    Konfig. CaravanPi, MagicMirror, MariaDB, ...

    +
    +
    + +
    +
    + +
    +
    +
    +
    + +
    +
    + +
    +
    + +


    @@ -440,6 +458,22 @@

    CaravanPi Grundeinstellungen

    +
    +
    + +
    +
    + +
    +
    +
    +
    + +
    +
    + +
    +


    diff --git a/html-flask/templates/config_voltage.html b/html-flask/templates/config_voltage.html index b177af4..5dfb041 100644 --- a/html-flask/templates/config_voltage.html +++ b/html-flask/templates/config_voltage.html @@ -44,7 +44,8 @@

    Konfiguration der Batterie



    Konfiguration der Batterie
    - Für die Batterie sind verschiedene Warnstufen konfiguriert. Die Voltwerte, ab wann welche Stufe gilt, können hier konfiguriert werden. + Für die Batterie sind verschiedene Warnstufen konfiguriert. Die Voltwerte, ab wann welche Stufe gilt, können hier konfiguriert werden. Die Level sind so zu interpretieren: +

      VOLL --- Level 3 --- OK --- Level 2 --- OK --- Level 1 --- LEER  

    @@ -52,30 +53,30 @@

    Konfiguration der Batterie

    - +
    - +
    - +
    - +
    - +
    - +
    diff --git a/html-flask/templates/index-flask_20240303.html b/html-flask/templates/index-flask_20240303.html deleted file mode 100644 index b2c1d92..0000000 --- a/html-flask/templates/index-flask_20240303.html +++ /dev/null @@ -1,45 +0,0 @@ - - - - - - CaravanPi Websites - - - -
    -
    -
    -
    -
    -
    - -
    - -
    - -
    - -
    - -

     

    -

    Konfiguration und Bedienung des CaravanPi

    -


    - - - -
    - - {% include 'footer.html' %} -
    - - - - - - - From 99e90b72a7230ed3924a6f30b2db1c8b59e4ac06 Mon Sep 17 00:00:00 2001 From: upgrade_script Date: Sun, 10 Mar 2024 13:05:15 +0100 Subject: [PATCH 15/15] Installationsskript vorbereitet / noch nicht fertig MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit allererste Version eines Installations- und Updateskriptes für den gesamten CaravanPi angelegt. Das Skript funktioniert noch nicht - NICHT AUSFUEHREN --- install_CaravanPi.sh | 451 +++++++++++++++++++++++++++++++ installation/CaravanPiValues.sql | 159 +++++++++++ installation/caravanPiLibInit.py | 22 ++ 3 files changed, 632 insertions(+) create mode 100755 install_CaravanPi.sh create mode 100644 installation/CaravanPiValues.sql create mode 100644 installation/caravanPiLibInit.py diff --git a/install_CaravanPi.sh b/install_CaravanPi.sh new file mode 100755 index 0000000..edc9c4f --- /dev/null +++ b/install_CaravanPi.sh @@ -0,0 +1,451 @@ +#!/bin/bash +# +# Installieren des CaravanPi +# + +# Titelbild ausgeben +echo -e "\e[0m" +echo ' ' +echo ' ,ad8888ba, 88888888ba 88' +echo ' d8"" `"8b 88 "8b ""' +echo 'd8" 88 ,8P ' +echo '88 ,adPPYYba, 8b,dPPYba, ,adPPYYba, 8b d8 ,adPPYYba, 8b,dPPYba, 88aaaaaa8P" 88' +echo '88 "" `Y8 88P" "Y8 "" `Y8 `8b d8" "" `Y8 88P" `"8a 88""""""" 88' +echo 'Y8, ,adPPPPP88 88 ,adPPPPP88 `8b d8" ,adPPPPP88 88 88 88 88' +echo ' Y8a. .a8P 88, ,88 88 88, ,88 `8b,d8" 88, ,88 88 88 88 88' +echo ' `"Y8888Y"" `"8bbdP"Y8 88 `"8bbdP"Y8 "8" `"8bbdP"Y8 88 88 88 88' +echo ' ' +echo -e "\e[0m" + + +# Überprüfen, ob das Skript mit dem Parameter -force aufgerufen wird +# Nur dann werden die Installations Kommandos tatsächlich ausgeführt + +SIMULATE=true +for arg in "$@"; do + if [ "$arg" == "-force" ]; then + SIMULATE=false + break + fi +done + +CARAVANPI_DIR="$HOME/CaravanPi" +CARAVANPI_LOCAL_BACKUP="$HOME/CaravanPilocalBackup" +CARAVANPI_MARIADB_CREATE_TABLES="$CARAVANPI_DIR/installation/CaravanPiValues.sql" + +MAGICMIRROR_DIR="$HOME/MagicMirror" + +GRAFANA_INI="/etc/grafana/grafana.ini" + +red='\033[0;31m' +nc='\033[0m' # No Color + +note() { + # Paramter $1 enthält die Beschreibung des nächsten Schrittes + local description=$1 + + # Paramter $2 enthält den Switch für rote Schrift + local color=$2 + + # Prüfen, ob die Ausgabe in Rot erfolgen soll + if [ "$color" == "red" ]; then + echo -e "${red}" + else + echo -e "${nc}" + fi + + # Ausgabe einer Trennlinie mit Sternen zur visuellen Trennung + echo "" + echo "********************************************************************************" + echo " $description" + echo "********************************************************************************" + + # Farbe zurücksetzen + echo -e "${nc}" +} + + +# Funktion, um Kommandos basierend auf der SIMULATE-Variable auszuführen oder anzuzeigen +run_cmd() { + if [ "$SIMULATE" = true ]; then + echo -e "${red}Simuliere:${nc} $@" + else + eval "$@" + fi +} + +# Backup-Funktion, die das Skript localBackup.sh aufruft +backup_caravanpi() { + echo "Starte Backup für CaravanPi..." + # Pfad zum Backup-Skript (angepasst an Ihre Struktur) + local backup_script="$CARAVANPI_DIR/localBackup.sh" + if [ -f "$backup_script" ]; then + run_cmd "bash \"$backup_script\"" + else + echo "Backup-Skript nicht gefunden: $backup_script" + fi +} + +#m Funktion zum Updaten des Raspberry OS +update_raspberry_os() { + echo "Aktualisiere Paketquellen..." + run_cmd "sudo apt-get update -y" + + echo "Führe ein Upgrade aller installierten Pakete durch..." + run_cmd "sudo apt-get upgrade -y" + + echo "Führe ein dist-upgrade durch, um sicherzustellen, dass auch Kernel und Firmware aktualisiert werden..." + run_cmd "sudo apt-get dist-upgrade -y" + + echo "Bereinige nicht mehr benötigte Pakete..." + run_cmd "sudo apt-get autoremove -y" + + echo "Überprüfe, ob ein Neustart erforderlich ist..." + if [ -f /var/run/reboot-required ]; then + echo "Ein Neustart ist erforderlich, um die Aktualisierungen zu vervollständigen." + echo "Bitte führen Sie 'sudo reboot' aus." + else + echo "Kein Neustart erforderlich." + fi +} + +# Funktion zur Überprüfung der Installation +check_installed() { + dpkg -s $1 &> /dev/null + + if [ $? -eq 0 ]; then + return 0 # Installiert + else + return 1 # Nicht installiert + fi +} + +# Funktion zum Klonen/Aktualisieren des CaravanPi Repositories +install_update_caravanpi() { + if [ -d "$CARAVANPI_DIR" ]; then + echo "CaravanPi Repository ist bereits auf diesem Gerät vorhanden." + read -p "Möchten Sie das Repository aktualisieren? (j/N): " answer + if [[ "$answer" =~ ^[Jj]$ ]]; then + cd "$CARAVANPI_DIR" + echo "Prüfe Änderungen..." + git fetch + local changes=$(git diff HEAD..origin/master) + if [ -n "$changes" ]; then + echo "Änderungen verfügbar:" + git diff --stat HEAD..origin/master + read -p "Möchten Sie diese Änderungen anwenden? (j/n): " apply_changes + if [[ "$apply_changes" == "j" || "$apply_changes" == "J" ]]; then + backup_caravanpi + echo "Aktualisiere CaravanPi Repository..." + run_cmd "git merge origin/master" + else + echo "Aktualisierung abgebrochen." + fi + else + echo "Keine Änderungen verfügbar. Repository ist aktuell." + fi + else + echo "Aktualisierung nicht gewünscht." + fi + else + # Repository herunterladen + echo "CaravanPi Repository wird heruntergeladen..." + run_cmd "git clone https://github.com/spitzlbergerj/CaravanPi.git \"$CARAVANPI_DIR\"" + fi + + echo "Ein/Ausschalter Skripte installieren" + run_cmd "sudo cp /home/pi/CaravanPi/pishutdown/pishutdown.py /usr/local/bin" + run_cmd "sudo cp /home/pi/CaravanPi/pishutdown/pishutdown.service /etc/systemd/system" + run_cmd "sudo systemctl enable pishutdown" + run_cmd "sudo systemctl start pishutdown" + + echo "1-Wire installieren" + run_cmd "sudo modprobe wire" + run_cmd "sudo modprobe w1-gpio" + run_cmd "sudo modprobe w1-therm" + + echo "Konfiguriere 1-Wire Module..." + if ! grep -q '^wire$' /etc/modules; then + run_cmd "echo \"wire\" | sudo tee -a /etc/modules > /dev/null" + fi + if ! grep -q '^w1-gpio$' /etc/modules; then + run_cmd "echo \"w1-gpio\" | sudo tee -a /etc/modules > /dev/null" + fi + if ! grep -q '^w1-therm$' /etc/modules; then + run_cmd "echo \"w1-therm\" | sudo tee -a /etc/modules > /dev/null" + fi + + # Konfiguration von 1-Wire auf GPIO Pin 18 in /boot/config.txt, falls noch nicht vorhanden + echo "Lege 1-Wire auf GPIO Pin 18..." + if ! grep -q '^dtoverlay=w1-gpio,gpiopin=18$' /boot/config.txt; then + run_cmd "echo \"# Temperature sensor on 1-Wire\" | sudo tee -a /boot/config.txt > /dev/null" + run_cmd "echo \"dtoverlay=w1-gpio,gpiopin=18\" | sudo tee -a /boot/config.txt > /dev/null" + fi + +} + + +# Installation MagicMirror +install_magicmirror() { + read -p "Möchten Sie MagicMirror installieren? (j/N): " answer + if [[ "$answer" =~ ^[Jj]$ ]]; then + # Pfad zu MagicMirror + MAGICMIRROR_DIR="$HOME/MagicMirror" + + # Überprüfen, ob MagicMirror bereits geklont wurde + if [ -d "$MAGICMIRROR_DIR" ]; then + echo "MagicMirror scheint bereits installiert zu sein. Überspringe das Installieren..." + else + echo "MagicMirror Repository wird heruntergeladen..." + cd $HOME + run_cmd "bash -c \"$(curl -sL https://raw.githubusercontent.com/sdetweil/MagicMirror_scripts/master/raspberry.sh)\"" + fi + else + echo "Installation von MagicMirror übersprungen." + fi +} + +install_apache() { + read -p "Möchten Sie den Apache Webserver installieren? (j/N): " answer + if [[ "$answer" =~ ^[Jj]$ ]]; then + echo "Apache installieren ...." + run_cmd "sudo apt install apache2 -y" + + echo "Starte Apache2 und aktiviere den Autostart..." + run_cmd "sudo systemctl start apache2" + run_cmd "sudo systemctl enable apache2" + + # Überprüfe den Status des Apache2-Service + echo "Überprüfe den Status des Apache2-Dienstes..." + run_cmd "sudo systemctl status apache2" + + echo "Apache2 wurde erfolgreich installiert und läuft." + else + echo "Installation von Apache übersprungen." + fi +} + +# Installation MariaDB +install_mariadb() { + read -p "Möchten Sie MariaDB installieren und alle Tabellen anlegen? (j/N): " answer + if [[ "$answer" =~ ^[Jj]$ ]]; then + echo "MariaDB Server installieren ...." + run_cmd "sudo apt-get install -y mariadb-server" + + echo "Installation absichern ... " + echo " Bitte folgen Sie den Anweisungen auf dem Bildschirm, um MariaDB und den root-Benutzer abzusichern." + echo " Vergeben Sie ein starkes Passwort für den MariaDB root-Benutzer und merken Sie sich dieses." + echo " Entfernen Sie anonyme Benutzer und deaktivieren Sie den Root-Login aus der Ferne." + echo " Löschen Sie die Testdatenbanken." + run_cmd "sudo mysql_secure_installation" + + echo "Benutzer CaravanPi anlegen ... " + read -sp " Bitte geben Sie ein Passwort für den 'caravanpi' MariaDB Benutzer ein: " caravanpi_password + + echo " Benutzer wird angelegt ..." + run_cmd "sudo mysql -e \"CREATE USER 'caravanpi'@'localhost' IDENTIFIED BY '$caravanpi_password';\"" + + echo " Datenbank wird angelegt ..." + run_cmd "sudo mysql -e \"CREATE DATABASE CaravanPiValues;\"" + run_cmd "sudo mysql -e \"GRANT ALL PRIVILEGES ON CaravanPiValues.* TO 'caravanpi'@'localhost';\"" + run_cmd "sudo mysql -e \"FLUSH PRIVILEGES;\"" + + echo " Datenbanktabellen werden angelegt ..." + run_cmd "sudo mysql CaravanPiValues < $CARAVANPI_MARIADB_CREATE_TABLES" + + else + echo "Installation von MariaDB übersprungen." + fi +} + + +# Installation phpmyadmin +install_phpmyadmin() { + read -p "Möchten Sie phpmyadmin installieren? (j/N): " answer + if [[ "$answer" =~ ^[Jj]$ ]]; then + echo "phpmyadmin installieren ...." + run_cmd "sudo apt install phpmyadmin" + + echo "Konfiguriere Apache2 für phpMyAdmin..." + run_cmd "sudo phpenmod mbstring" + run_cmd "sudo systemctl restart apache2" + else + echo "Installation von phpmyadmin übersprungen." + fi +} + +# Installation Grafana +install_grafana() { + read -p "Möchten Sie Grafana installieren? (j/N): " answer + if [[ "$answer" =~ ^[Jj]$ ]]; then + # Füge das Grafana GPG Schlüssel hinzu + echo "Füge Grafana GPG Schlüssel hinzu..." + run_cmd "curl https://packages.grafana.com/gpg.key | sudo apt-key add -" + + # Füge das Grafana Repository hinzu + echo "Füge das Grafana Repository hinzu..." + run_cmd "echo \"deb https://packages.grafana.com/oss/deb stable main\" | sudo tee -a /etc/apt/sources.list.d/grafana.list" + + # Aktualisiere die Paketliste + echo "Aktualisiere Paketlisten..." + run_cmd "sudo apt update" + + # Installiere Grafana + echo "Installiere Grafana..." + run_cmd "sudo apt install grafana -y" + + # Starte den Grafana-Service und stelle sicher, dass er beim Booten läuft + echo "Starte Grafana und aktiviere den Autostart..." + run_cmd "sudo systemctl start grafana-server" + run_cmd "sudo systemctl enable grafana-server" + + # Sichere die originale grafana.ini Datei + run_cmd "sudo cp $GRAFANA_INI \"${GRAFANA_INI}.bak\"" + + # Aktualisiere die Konfiguration für den anonymen Zugriff + echo "Aktualisiere Grafana-Konfiguration für anonymen Zugriff..." + run_cmd "sudo sed -i '/\[auth.anonymous\]/!b;n;c\enabled = true' $GRAFANA_INI" + run_cmd "sudo sed -i '/\[auth.anonymous\]/!b;n;n;c\org_role = Viewer' $GRAFANA_INI" + + # Aktualisiere Sicherheitseinstellungen zur Einbettung + echo "Erlaube das Einbetten von Grafana-Dashboards..." + run_cmd "sudo sed -i '/\[security\]/!b;n;c\allow_embedding = true' $GRAFANA_INI" + + # Starte den Grafana-Dienst neu, um die Konfigurationsänderungen zu übernehmen + echo "Starte Grafana-Dienst neu..." + run_cmd "sudo systemctl restart grafana-server" + + # Überprüfe den Status des Grafana-Dienstes + echo "Überprüfe den Status des Grafana-Dienstes..." + run_cmd "sudo systemctl status grafana-server" + + echo "Grafana wurde erfolgreich installiert und läuft." + else + echo "Installation von Grafana übersprungen." + fi +} + +# Installation Python Module +install_python_modules() { + read -p "Möchten Sie die Python Module installieren? (j/N): " answer + if [[ "$answer" =~ ^[Jj]$ ]]; then + echo "Python Module installieren ...." + + run_cmd "sudo apt-get install i2c-tools" + + + run_cmd "pip install Flask" + run_cmd "pip install mysql-connector-python" + + else + echo "Installation von Python Module übersprungen." + fi +} + +# Installation Geräte Librarys +install_libraries() { + read -p "Möchten Sie die Geräte Libraries installieren? (j/N): " answer + if [[ "$answer" =~ ^[Jj]$ ]]; then + echo "Libraries installieren ...." + + run_cmd "sudo apt-get install build-essential python-dev python-smbus git" + + run_cmd "git clone https://github.com/adafruit/Adafruit_Python_ADS1x15" + run_cmd "cd Adafruit_Python_ADS1x15; sudo python3 setup.py install" + + + run_cmd "pip3 install adafruit-circuitpython-lis3dh" + run_cmd "pip3 install adafruit-circuitpython-busdevice" + run_cmd "pip3 install adafruit-circuitpython-adxl34x" + + run_cmd "sudo pip3 install adafruit-circuitpython-mcp230xx" + + else + echo "Installation von Libraries übersprungen." + fi +} + +# -------------------------------------------------------------------------------------- +# -------------------------------------------------------------------------------------- +# +# Skriptanfang +# +# -------------------------------------------------------------------------------------- +# -------------------------------------------------------------------------------------- + +if [ "$SIMULATE" = true ]; then + note "Kommandos werden NICHT ausgeführt, lediglich Simulation" "red" +else + note "ACHTUNG - Kommandos werden ausgeführt, keine Simulation" "red" +fi + +# -------------------------------------------------------------------------- +# Raspberry OS updaten +# -------------------------------------------------------------------------- +note "Update Raspberry OS" + +read -p "Möchten Sie Raspberry OS zunächst updaten? (j/N): " answer +if [[ "$answer" =~ ^[Jj]$ ]]; then + update_raspberry_os + if [ -f /var/run/reboot-required ]; then + echo "Installationsskript wird beendet" + fi +else + echo "Update Raspberry OS übersprungen." +fi + +# -------------------------------------------------------------------------- +# CaravanPi Repository installieren +# -------------------------------------------------------------------------- +note "Installation CaravanPi Repository" + +install_update_caravanpi + +# -------------------------------------------------------------------------- +# MagicMirror installieren +# -------------------------------------------------------------------------- +note "Installation MagicMirror" + +install_magicmirror + +# -------------------------------------------------------------------------- +# Apache Webserver installieren +# -------------------------------------------------------------------------- +note "Installation Apache Webserver" + +install_apache + +# -------------------------------------------------------------------------- +# MariaDB installieren +# -------------------------------------------------------------------------- +note "Installation MariaDB" + +install_mariadb + +# -------------------------------------------------------------------------- +# phpmyadmin installieren +# -------------------------------------------------------------------------- +note "Installation phpmyadmin" + +install_phpmyadmin + +# -------------------------------------------------------------------------- +# Grafana installieren +# -------------------------------------------------------------------------- +note "Installation Grafana" + +install_grafana + +# -------------------------------------------------------------------------- +# Python Module installieren +# -------------------------------------------------------------------------- +note "Installation Python Module" + +install_python_modules + +# -------------------------------------------------------------------------- +# CaravanPi Config Lib initialisieren und damit ggf. defaults konvertieren +# -------------------------------------------------------------------------- +note "CaravanPi Library initialisieren und ggf. defaults konvertieren" + +python3 $CARAVANPI_DIR/installation/caravanPiLibInit.py diff --git a/installation/CaravanPiValues.sql b/installation/CaravanPiValues.sql new file mode 100644 index 0000000..0586a34 --- /dev/null +++ b/installation/CaravanPiValues.sql @@ -0,0 +1,159 @@ +-- phpMyAdmin SQL Dump +-- version 5.0.4deb2+deb11u1 +-- https://www.phpmyadmin.net/ +-- +-- Host: localhost:3306 +-- Erstellungszeit: 10. Mrz 2024 um 11:41 +-- Server-Version: 10.5.21-MariaDB-0+deb11u1 +-- PHP-Version: 7.4.33 + +SET SQL_MODE = "NO_AUTO_VALUE_ON_ZERO"; +START TRANSACTION; +SET time_zone = "+00:00"; + + +/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */; +/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */; +/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */; +/*!40101 SET NAMES utf8mb4 */; + +-- +-- Datenbank: `CaravanPiValues` +-- +CREATE DATABASE IF NOT EXISTS `CaravanPiValues` DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci; +USE `CaravanPiValues`; + +-- -------------------------------------------------------- + +-- +-- Tabellenstruktur für Tabelle `ausrichtung` +-- + +CREATE TABLE `ausrichtung` ( + `sensor_id` varchar(50) NOT NULL, + `zeitstempel` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(), + `aktuell_x` float NOT NULL, + `aktuell_y` float NOT NULL, + `aktuell_z` float NOT NULL, + `toleranz_x` float NOT NULL, + `toleranz_y` float NOT NULL, + `letztes_x` float DEFAULT NULL, + `vorletztes_x` float DEFAULT NULL, + `differenz_hinten_links` int(11) NOT NULL, + `differenz_hinten_rechts` int(11) NOT NULL, + `differenz_vorne_links` int(11) NOT NULL, + `differenz_vorne_rechts` int(11) NOT NULL, + `differenz_zentral_links` int(11) NOT NULL, + `differenz_zentral_rechts` int(11) NOT NULL, + `differenz_deichsel` int(11) NOT NULL +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci; + +-- -------------------------------------------------------- + +-- +-- Tabellenstruktur für Tabelle `batterymanagement` +-- + +CREATE TABLE `batterymanagement` ( + `sensor_id` varchar(20) NOT NULL, + `zeitstempel` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(), + `spannung_main` float(15,3) NOT NULL, + `spannung_zelle1` float(15,3) NOT NULL, + `spannung_zelle2` float(15,3) NOT NULL, + `spannung_zelle3` float(15,3) NOT NULL, + `spannung_zelle4` float(15,3) NOT NULL, + `kapazitaet` float(15,3) NOT NULL, + `temperatur` float(15,3) NOT NULL, + `ladezyklen` int(11) NOT NULL, + `strom` float(15,3) NOT NULL, + `status` int(11) NOT NULL, + `status_binary` binary(16) NOT NULL, + `status_text` varchar(150) NOT NULL, + `SoC` int(11) NOT NULL +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci; + +-- -------------------------------------------------------- + +-- +-- Tabellenstruktur für Tabelle `gasfuellgrad` +-- + +CREATE TABLE `gasfuellgrad` ( + `sensor_id` varchar(20) NOT NULL, + `zeitstempel` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(), + `gewicht` float(10,0) NOT NULL, + `fuellgrad` float(10,0) NOT NULL +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci; + +-- -------------------------------------------------------- + +-- +-- Tabellenstruktur für Tabelle `klimasensor` +-- + +CREATE TABLE `klimasensor` ( + `sensor_id` varchar(20) NOT NULL, + `zeitstempel` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(), + `temperatur` float(10,2) NOT NULL, + `luftdruck` float(10,2) NOT NULL, + `luftfeuchtigkeit` float(10,2) NOT NULL +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci; + +-- -------------------------------------------------------- + +-- +-- Tabellenstruktur für Tabelle `raspberrypi` +-- + +CREATE TABLE `raspberrypi` ( + `sensor_id` varchar(20) NOT NULL, + `zeitstempel` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(), + `cpu_temp` float(15,2) NOT NULL, + `gpu_temp` float(15,2) NOT NULL, + `cpu_usage` float(15,2) NOT NULL, + `ram_usage` float(15,2) NOT NULL, + `disk_usage` float(15,2) NOT NULL, + `net_traffic` float(15,2) NOT NULL, + `process_count` float(15,2) NOT NULL +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci; + +-- -------------------------------------------------------- + +-- +-- Tabellenstruktur für Tabelle `spannung` +-- + +CREATE TABLE `spannung` ( + `quellen_id` varchar(20) NOT NULL, + `zeitstempel` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(), + `spannung` float(15,3) NOT NULL +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci; + +-- -------------------------------------------------------- + +-- +-- Tabellenstruktur für Tabelle `tankfuellgrad` +-- + +CREATE TABLE `tankfuellgrad` ( + `tank_id` varchar(20) NOT NULL, + `zeitstempel` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(), + `fuellgrad` float(10,0) NOT NULL +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci; + +-- -------------------------------------------------------- + +-- +-- Tabellenstruktur für Tabelle `temperatursensor` +-- + +CREATE TABLE `temperatursensor` ( + `sensor_id` varchar(50) NOT NULL, + `zeitstempel` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(), + `temperatur` float(10,2) NOT NULL +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci; +COMMIT; + +/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */; +/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */; +/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */; diff --git a/installation/caravanPiLibInit.py b/installation/caravanPiLibInit.py new file mode 100644 index 0000000..1ec6b46 --- /dev/null +++ b/installation/caravanPiLibInit.py @@ -0,0 +1,22 @@ +#!/usr/bin/python3 +# coding=utf-8 +# +#------------------------------------------------------------------------------- + +import sys +from datetime import datetime + +# ----------------------------------------------- +# CaravanPi File/MARIADB/MQTT library einbinden +# ----------------------------------------------- +sys.path.append('/home/pi/CaravanPi/.lib') +from CaravanPiFilesClass import CaravanPiFiles + + +def main(): + cplib = CaravanPiFiles() + print("CaravanPiFiles wurde erfolgreich initialisiert und Konvertierung durchgeführt.") + +if __name__=="__main__": + result = main() + sys.exit(result) \ No newline at end of file

    ygk2I$17E@Gnd-^ej(LJziF+nqsTCRw8jeXOF(z*5=tRVkU2 zuK1V?zMHLGEXv+~@a-Z9^DwyUswT7h;EUL3c5zB|P&4!VeXYrA#h`q#68~LqGu*oY z#6t%piCx>|;SaguB$Y6sy)wUyusGBYBQNpLG!u+s?MI}i^49V@XIt~E0kbLe;f12w z1X>~E&7g05()d`wNwi>YoQ0FUjVIg|0y?SP?JgjPU6!37<3ebzI!h;C+R-2DAjHIy z@Oxl{3^pZy{N&J$rd{!PDC&LasIT43ucWSe=!Cz?I@rA6drHH%9;C*(LgMG19NFQ4 zf1yyxHc!-echTG*v_)|>E9U4R_xlHHT&fA?9B@(AP^ zd&zTa%=lJ8dO(4iSmBzY+GqsKeVGeJPEc7wFOovAW_yA)rpK+;A~(GlYpt&)!L1Ee z;*%2ey8|Y?+{YbR;|qr@kxk0}bxH8e-E7q7wqdh$)y<^RnA?AskY!wDa{du1Qrs&D{nP+So?lR3PQ z9tTjwn-a(~or@#uE5FwB{edG1$bp3CSpk&Fs>Kp|1wae2ZUD$I^vs?eKOIugpHMXe zv^5Z^?QFFKf*Vh}vtf=4z*J)*DAAK3tEG#MsmQDsE~`!$sFeAC$^bc6+1j zAL}PR68_OCx1z4i6MR~WG96Agm{Cbzp3H&TZ-kPrYU+^B(4G@XM1`w9QYstRW|gKU4R;^lOuqHA22zUCS)GnLV$q zYN+Iq5o5Q}(fdT1N_Pi0PV)kkvkFGHbvS^j;jfo+FVHsf_$z&VeL$+vpfm^A`v9cW z+tJ|b->5E_%zkDP5G62M1l6qVSU2~XqHU_?Y1-tW<(kC1OPO;Fkn}&m_v(7-ER0Kk z>H7MvYmS@BU=_nm=h}2Tm)%BQ!c-vA2Ch}uoGF+Sz5SLHw$0S9Fq9SW(wp7TkUA7H#-ukuswL{afQSi-u;5xi^AWESQXP0BX4Py&T zWg@(WK+ED>1*|){Ai45ue2P>f)VEVH*U~wsUiG)Tzcm~JTKa&tQLq<-b-S@#_;t(V z4$<#qGjf+{KCgtn>)HA@p=s#U8Sz3ds;TNhah1E2ynaltQnaewXTfd_J8D_<>W`{8 zv1z}HwDWDvmh!@Fzn}MqSb4o>Qyoob3>5X?|w~n@!g8=eSH-viM!;(iC$GRHT|=^DdQb` zNjYEV8n$IIv4{`Ded9#BCG2y%&`$SvS(q-T1da##gpI=-7BE5Iexb1p1y2NdjV1!V zA=r*hnC@tXA{lEJ(rttl?KO5#pVmsIw&NS|s}3xrWJjBM3DF4{gRI2)t<{!=^kkgt z3#Uk;SsP17gt*`5MsL~S4<^e1i0$+E`r{fFd7T&<3L4_1=1-lKto8v(@sPhcU)8-r z>07cEP|9T|5bVd&nLJ28)jvqnX9>dTs`L-2KsHvcSV#E>Yd6pNPTfno0cG7)kiY-&jJ8PYAsO&* zOdUD-zsJh1d&uXww@U9F?-3Hj7(PX)lM_hfQG1PoK?-16hD7;)0mHq=n(fr1(ba#F zWxj@Oe!%yo6{nWvc>X1cIJ}+md5lYd!Z3}C3#!Y}EWXF-rEFEIFBa+aEMpTt$JzRFodrQ9BVJe##j)r^{1?=}n&k$ua<$8C0t09Ya*?~lGe?$1;+7h%L#)Iv zJ)DOtM(1o(Nh~)+@QAD0tI4RNAVAgtlA5zjCo)JPEsn#UwlBXuF zP&tQiwxN<)gofqW58)ctLq+n?jx;>i?19Y9V{jj%j~JDE_F3-{Okqp$>T%4)xoHSd zC+J6NIYS}LK)7r^A&E*njD)i}7y4}L5>R{{yq0An%=dN_w|rWdl+E{x{ouvcBvQFf z-+9?&+GgTZ^B6`av){X#JxKkFS-w?2e`&RRDQ`jWf%50QXDaX$R$T1EKj8Jy$`4jM zCG1U!spq{M%pI}i?~Tvq0VfLFY@s%17S~WYbOgA`7#?WWrK|ww=rvt{8q)1#d_#V= zu^c6}>t5&W=!5k(*FP>!I1CX<<&<54T_|QMZq~ZRqE0{+?9c5AbWA{DLzYjLho*R~ zjwM>_e%F@fcsSHMZ+ttlhac8fW9$0!;?D^C;G06>JAIeG1He*RIu&vzG~@Sm7SFwz zgS0iWR2m@U52r?K{S$R!a2`UnaJUa|6*Gc5L^c}gOGZMIHKca`U@uPlXtu?%yw)A; zlqfc3?deI&UIgjo%G#1w$dSw3WY`0)Swlk`T_p5S7 zNu{R47b-G892H;T)Gsk7zZl5P`o387U>R+x##c}9CW5rLGJiTc^OUp3ftQHZ{v8zfY<7;eVP#f%&&YJohk7=A?S8}yD9Z1(e0!~@MS{t9&^zoI zzWq(oJ9r{gJx60hTV43a{2dL&=2ZaX7SyTBU(VXFZ%?-~}Zxy7EiKC@R+Cu)Hlwz>4{|V z@{BgS;T1JV^4*j(M;DTzsKOo^^F_IVkdmqJ_)%aY8b*F&A6K5dnY)=>r+EX+*HH27 zE)U1j2<9h7~+0m&G(2PBd z42`;vUW=>QdIbYN14v9O8Uz`dxmIdH`FQL>gtIS&q2r3q?>6?f zemBSoheBKz$f0&YmYpCy4E8iNy6!EvChN)OYOimkw!Nx2X!K9;lw&QG1~es+Z)3Fw zy-dis!Toreks7PH55nXD)r@Bp+2%8^EOo`@8VwDaj^2%p4WhjkVB5tp0J0z3DIC(s z&6YPhWc{NiO1wrC;6@oCbw~4+QXjV_0{s`3Yp3OS_c1<6YbcB z;yFzw%@(!M9;4rQ&W2C<{-QELer0qPpXNP$_OyDO_9!YiSoJa+)Vmw(@%zeEH zaHh^J*`4;#!u%a%D(DH#6aJ8}RF4xM?LpkfRfvAhzV=Z{h3$%w%=0c!`JY`wy8H2T1L;)h7o_LQy?Rl}zDyCvs+ z)XuuZ=BqHCv(Aj-#5)O%J^VX0fIHVwmmPNkFQN>NM+6EwB7F4D3N5SEo}(~HE$Vg? zUtvs0jkzC}7w~grS7`rJgbDi)sW~{ZAUdpy*_5-ue?BzCKe3q|%u<+an;m*ad!p|y zUnmi$%OhpLd$YAgoh>L01#*1w2yr}mj%^Lj%e_K~O8;hq94X#;XuV7r2RaGCqz&XZIE+rvc1Cs033xDneDCgysmMHcao4QOK zJ|bI%kHkJNp-NpjHJ`-RR;`!$B*x%=H_mxapuKludPyvH3alH9o>$?524SnuOoFyQ zIgl7T{QZny^JMevp+8Gx9l-eH!z|VUHlMaE`u=?Wau`;iLiMK?7_{@+o6vpkDm(01 zIX+cf$@>PG9mzYfpkm4FQQ$Y|Wt2&pt+Vo(y9n%B2|~~LwSJcir}}`J&9-lu8JYf_ zi2XSmelZnpiM-f?xrK*cmCOY^ynnIiE`<-b4qh+1+6APuZRds_{|S{su-mM%qB7(k z%i~Qf^LO9dWF;jg<{bQ+C!uV$9YP=EGbXkH^()nj=0>^+F{;{yYckCFr~=v3k!aCh z0R-=>ZW`KVEZvAgBo9@D^lIzz$I&C#iTp$zHtE%{BM+vX3Rf&p^0KC+JTgg?e6<580i`mT6gZ%DA0HCC9N33FzcZP9l&?<9(R5uFe~07! ziTfvul;s4D)}-xHbd`C>b&;bX$_kEDgUs9^s#FyWat@U4Ut~3WIO4!0p)*1kgx^yZ zO)IkL0#Qk-L+?`)tBY>xE=YUqYx~Ih%`QkhOKuPj2){XeB$0ZE(rz@III|oRq1Daa zN-uBdmdG0Iefq@N=ykBM=FS7)eE`!i(%DDWValOj&T=<|$q#{~Pu-DaxrG#xLF9o1 zT>AG{MQHuMJRPFIsx(miDmy#7bcnN%ne|I~Vs$y8ySo7rXZUO912x|kgEf|E;O2$n z3qWEu4_+XwMxm^h_P+g}pt&A^Hcoo*-T@+6X9vuI^pROfhZX?QfmS@R_(7(EhRDb` z?<}Zg3K+9$F4iivIrn zOT;>s25h0uxB&|)Y%%iSgMC?72Te!N*W}Ap+-uWT zs;J=+{@SNOp7}qtvnlJ8egZil-)yt38hiPBRLIIHmOiO3!-VH|7wu32^$?|!DOq3s z-vjwM*ugnwbn@I^az|bzy*)#nqC!IcdzvbL{7))oWT510k&4ea4m>cuCL)o zdNt=fk3hqZoP+XZ;z1tylp0!j`}0c4@Rz*a-vbx?F7!yzM&&?)e4bLa&i&tm^;t{n zXStk8#Zx~88wT8l{?@r#wOmMtA4nfDx9u@sTM(2g%&+DE9rY_RpU7zk`*0FA76*?TrWYe;eAj>M1F5B?P!C}76l z@S-#*tpix8b~Y0wJDDDF_KsEcM=|S;K%G@^zb?!zk z^YwB_lSDO<{+gfl1>)+=5V{l3*y(I8 zr~&;0adN*D=oC1fsfx@fOaj+-AAu; zx`6%_LqYOrgR&`=hpA?%r>7?&%SZWDC0O7jLG9(Z}QYk^>gDWJ8O9o2LvpUnrwC@aE$ElGV}&%U;N zQaDr7iawsmvza^<+f2^ecD68TvOa3>VFwuHfGy<*`Ifzr;Oapw`M=DIi)R%gT0!#6 z`OktbKna$b7Mlf=4~g1bPuGgO)K%<1s~4nd&R;tI_NqXqy4&{r&2Oo61@i0;&gw(6 z{b~MT`K<5dh2i1J?Q;o1Y&p^Xu`Vp%JOwc}ma=sw zJAhJN2}*>y)wqV`kz2f~1_A&)_S0_KoYZ-ukX_KlP!cN$1FnE>>DGInu--8}p4Swi z)=JE#rJhaW{4YpZe+7`d@|pehk)O0_f{ayebA*R@tT-qE9nE-Abk|( ze($$#3qxpXZpiXC46j4r@Do&MsN+gUh?ICFho;y=J=KO&0|-yrX^@Fz0Ir4~K&1jJ zLIx`*Bq>w1p>>urJ)&pe@FtT-d>zK!wxZK{^7Th0Ien_>J9{A;ky*~YY$?wcwN7*t zdqd3h9frwP#J+4X$fwpyz}(~PvK>*PM-OFLr0n^OuHmL(LQ^@rZ>@P$Lm3*-enJhj z@2I>*L%(lM+q#h?4ox>DQCsL&#dJ%6G6(Kk&Q4E%0ZdB|FJluj4ns4pZzZLJZ1gV} z@D=wC2=vA+K`xhY0OJyuu`7Q+;rDZ3?s>5QfGy8rH#axijsSQ2c8F(d&;Oo6b&3b9 zbP)vN4;$Z<@;;5EjCb0+T}?n<^3z-Voaqa>5#v?)cM=jp$zfKnC(aJlnRhfL9}^kU zkuwPvrmn7)V!NCX#R&FZmnkCYc6}nhiRUaipeI+^U1Z8cc}Ed%4@eYb7D`>434EFX z$%j$d++#*UvAmD{#OCKRK9Qgxq8OC9B$*Qv7rj{7W(h8l-I>jnD*GLTQ{wFE{jhKzpKJ9W?8|m9-UMWq+HCl5 z{BAO@^RN~~h&YLJehhg&n>>s?f%^lg^RF2?xQHhw*;?)f0&ItVhKZmZp?}))Y0WPY zH|^O|h+nGlFlVo5$EUtuL)*|jtfNJEZ5boh{QHw3x%sN`%W)eI;ZHHYjHO49K9KM+ zVfB(qT_64F>syqU$3;A<6#$T1x>rDoL5>B9OK6tzyYqb${zo_fnKV0Ox7Eu>$Z98( zsz(HFkbV`=rM&Y+!`e-K2>32{#u{bNru=+yDlSW&l?O5O8dXs~X#LSOVQkh4`!Yp1 zxtTygz_afSx}V!XJjIP|Y|0F8sws4~!c-verwDxRj1-lUYS8R#3iocXk=dS4eR$Fr z&5Pg7&Q9BI8>n<5^)lKWe}@{S4r2~d?O{)kX52t8H2{l#$jkE8SqwrZxNd=NaGA^qzhHcm?*tnZ z&>84q4mbK%<^Yy01RugwO5!D)cen>EHk*tFO_2(k&FYoVdYh15rKKC2-d}bVJ#B@9 z=eLeD^2pykup8LGe=XW7BGId~zF;lgKVhSGqcMtJ($m+^WvljVO)wao-ZX+rDn^5! z?_dXaQAzEYqD)!@GMZfW7MG$+YW_;^)XO!+djkd>1ml0$njd(ce+E5HlBE5?Yn|FG zyeG~SYdAqvuqrK{p;6i03P^d#dYZ~t%wpGTO$Ow`if4+Ij!JOjkc;ugrJu8HVaJ{T zA}r_ti&m^)28JB|69r)*SosHcdGb_leA8q(Oz>4s1Zlnl{cZ7~5RL5{^?hU7%Fp>R z>QQ=?1JM{AUvK`c^{fbyh}TQCE0&UckLz6ZE(uyqD;A6kHfV{&Szpq0uM4oylYy3cm%^3c$+BJUP|ZR@iqqfjsW5 zhQV!E7%&fUSs={-1KS9ZsVeI#K%S-cK<GDJ;?(4YYd=~M{5ivx zl;&98tJZjWbF!EG88UqnhdegF%R4d#ZZPwD55b!5-+rp!j4XWH4i*59C+@R%J6ZCG z_3=6`-r#KC*{3MrHqjB!Z*5E@9WAJ+eIU?H!fSd_&=I$+02?3Mm0BEwkMLP(TE6{lP+^~z zmouek^zPxe=!M5IhtX1s|K__mO;@soh~07CrrZmM+}VTM%=mP|s%R$~Z^aKEc{tNI zIm^~DA1=SdG|v2Xk6Id%!hI{Rd1h)`=D66@21D$N8Y3>U*M^T|40W~8XZdpz6z?2~ z@;yMZZhEvLyt2y$FW*|%Rwlpx=S!pO&~6L}+m?vNV^4+iz60_^09b@0>W+lRqVi-d1zwAQJ`%iG^k z1rbdJ+JM@c7i!NWA))3-7Qmq401{rF#cixx%uZVKI^3Nv3AwmGTyqkAi*Ow zF_orHFMlL1)h(!VFsS2o{DhFd4rKikQ;>>t6}CW5a~~1=ziQl<;Xmn>K_ZP=k*^=& zFq?#JLMen48vQH6+ER33kKV3I#M}3>ANs0v2Z3mUOw6-QsqU-xqaH+q1^`j;A4ZitVH-cu24xI=8OJcVb0R6&TuHZAg0^*=SLu~kq}7``#Q`EpU@axv~5ea2U7wgk1d z&}&AI5GGz|08%jmIN%us zoNfs{OQe4y3s+u71fNu=!!ZhlbE(PtqS>`1R{yd207+8EF(6}%4BD|NDWz}W>5DOW zQu|#GYI%d9yYN0w(&PT68j|lp4jOITT$=LgF(YJ;ERD(ugE44@%U(2Ax8AfZ-?&H$ z4iI-w@`|k(YHwBOJKXNOnVcEj_kfZ_>sS%*BD7qYt)mneX2f1RM-p~%ehXJSBU^T| z{!Vg=y=Vz%K|K#L35$fEAhD zdSL}Pqseyid+r{g|7zEcWmwxXBPd^r)Uqb14S_)=P^gge@O<#4I;APuawN!?9WD-z zKy8$Ltz&9;Oc!f9v!Zc!FX51UW$c?^@&47}D!|A8oAoNJ@#e({`qx5f(4VT^muzC6 zsH({@oVykFn{ojPyqBW9{sSp*;R9WI4Fjcf1%*DkACxD~w=U+6Bwy~fwC!?{q~5&m zicOp|48~nOv)9h8p@a##W%Atq(*^pwu;UbuhOt2|3)v(qHm zy~GuO#E%CPI=nbVTHZ+woCk_?Rq=?s1~jYL1LU5`rz(=O4Ed(Gob$&gs}Cu7yfP2& zbj%(?H)%4b#-Zm*(ibL9=C)T3EZBoCu9@QnL!D{A(yhSfgOe+JPZa-VHq4(N!}lbR zR+0;mo4Wz*hNHJ@o0Ja$jRzckRLmYX z5bF?qbI5OYwmm*u+$HNZm!{~3ufEK8>BqE*`ez%@>GO)Lnj6oC>T@o30|p)J*sy(K z;|XDd7*EJ}fQ-@#qUX__Am{bENrhx4HC zDhoctI9VxS69Gp`Fd!?DG}ns#qi!M+V1FoAu%y8nplcK`dbeXULD zRHNg5%EOuYdCNDW74N=o-}(%IQs{9RC&R3F|B0VlLV^4I8bUX3jTp?SpB&ed*~v%* zIK;0%ep`R}o#RJZCee@hm33`iRyqi#Y3*x_Re*(nT4W<$roJ&HXwH3cW+3oGz{ge~ z!QyCtKxArF>7)s_$k1j21igjN-C|wPVg}9+6KGrD^$`MvwjCvShAvSp?Cbs~{?IRK z<=*{5@Y0aN(U0%x0~uKW>^m{vV8T_GT*aa>LCi5}oCq$-f?5ot=^r*(>vwtrJ-LIp zsf-?pZNDvNAasrbCo4*R*S`POF3FcSW_S8(L|9;m#3pn5FGZhr%KFAfixhA#O5YI7 zx>3(*xTf0zO!#A<7@<}I>Y8h^B{m*e1dsyzb1%-f-4(qoCIPq}yW(-Z{y|gH!92KW zYRLlsu;rbOAM7v-dQ7BYHmHhdy?l#TB~JDB-&84`fBX?%;mvmrDN0g?Fbg}Y zG7qQl`3VCy79U?F3@z=8m*|Blp9AXGx}wCsepiXE43G{Y@(l$2NI_H2Q8HImnb*G* z3;NP7+2^|dPue$9aM@Ua;Vgf`<}CYtQKmd*&lV_>sG*nu&38ckEXj6|p<2EQgYXC$ zYOmg*Kk2itipSiqK8T0Vt^HtgNR@}z?oZr_0Sa&Wf3ARO+zt0i=KYmoWC@R{DU>38 z6TV44+k=T51&aZ|LVBz>M!Pz;V0#AWN<=_5BHSq{dS1_mQ`=Hs%zWWwAF+0W{{XA_ zFn?eDR8Uub)NHWkcjb;71Dj3X{PxSt#=H(86)=ZosrG$yldj6tFQHn)-3|6=hBRx= zPs7?pO@w9DW~FM)2lJ1OG@kX$G2dsvBPea7O}m=1iw0 zv!rfz53vekpM}~a6bb3#U(ao=r1X57Cd`U6M{9@J3a#ixlm^w_#dNhHbb0Sis~pSq z4IOqMp7y@L^-W?GQknOsg9lbkR^zC<2)hfLGG#v>R6atCHJ+pDH%&u7E;fV-pX=7k z&NJq)i!tRX`)`GbaLWPQOS4D%JHJQReN#16+D;C%ui~F|Jh|Eu^tx8rh$J?CW`l+O z^cpA_2Y;_MiPP6;PV?=%(W&6FG^b**-ph5d<45n|OLbCzAeZ{LT8Il^s|5}3y;+jr zv{!o0FfAKMp_bC}5QdVzr&3+!rM^R=H#@$2tDp5olUgm~EByg`#A$SB5<48wCcjWu z!wx_Dj+qUO+bBJ2mMp`{b6*4S5+#o2K|`qynGTFvCe`pJ`K(qAN`>4Z3ch6AHFmL( zRId21UoD?Lk>nm^c14w-CDFcWI+zhe`|nV!Ds?&XpbYz30~`FNI7&<$qW~B-Y_Y&} z47jlUL&bI|*wgJbAuhkY6x_M-!y=b5_1AdEs*9Pb2^a*A!PPgWV*TQ*c~~ZI2)pWCs#Bh0 zTxMmVAQLMsz+C1^DC(;GY0xjM$FFv=RA@h51(+ftYovM6nyZn{E#I=*be{S}W{B7= z^2tJ>WbHozRRF~~f!3qS_rkAMfPH4~dlsAidH##MY>GS2jx8k%@F$PB+M600jIKYx z#KJ(cK@nlA;a`w{0ngjSp@s25Yt3-Kz7fBYI?r^Sa0LGFBB-n){MfNC7Tk2~Qs0wr zy{+kIkAW%AIzJ3|IUK2DYfQ?7OC3sI0X`G+6*R!J4%s{SKMdvdoDv9sO1MemF8@gu zuUQNwuT_U0yqD?&sZ)_ROtXcE7zM^@)7aueEA3*ejSF= zkV(1=_}+cwk(qRzrjb*PC`7&j3B3~flitIVC*M~nyh+y`%4xK#^A@&WMEZ6I0B?k4 zfV<3F*lSR&ivmPs6wyBc7^jNJ@b*-64aKjs`ne%nRLbqBow=W%ItT&ohr5N6^@x)K z=Hyb=;W3ihI?;`jTfH{Fpg_1qB*x=Z=?a#>IZ;}gBIr-W^X##@NL}X5%3n*A%j0^6 zL)HW@Rw>RXp*R?G?dBQYQONJ_v)dWILZPYhN4=@>I0geZQ@ZSB?TPBS(im%>+b4n{ z!=LVp_tjCeOzuAQqPn{CSE#EX%q#!^Pf(qi9lsl@yNvJgolY$eR4dew(d^}6`wa2o zX^#4;z6kpKISF1=cO|ixk|krVkK)@;iC!l!KplmN^rZEqaTe2&jWWH~aHpDgpkST< zEZVNXOtyd!VQJ*$dDudk6)K_Dn@@NCa)&-MUgdY+j8+(0Kjl5%)=90F%JF`Q8Oo()}VBAyB!U`=+B zzehd7$iO}NpCv(-L{q=nt_Q6)%4kT z6pk)mo(cfD9>XyfavwORNaM48PFQ+=IstHpv&u~cy?$6puESS=wP2H5&bcQT7BS?= zy;c4`cI)+#7Q>Ki$P==ZKh-}+JmP^@Ghb`Nl;HwLdjb;|p%9~Guc2;bZwJDLSaKGA z4Ou0X(!-^hGv)7Wsdch1-?tgJ$c%fRMr~O;c{&{L2BNk=q9h$Vjt^V(aLi!wc22vv z!`L7qRba^%)Y@EBQ=Xk)2kl-Bn4|vJ<`y?Ap=$^t zBxCXFf*vfnoHNqR`_m%sp*z1jc|Kb zglHoh_nkhPwFX)su0g2xtWE8s{1n2}RJEQ0Yh&j0$DJi0t-YXi`o?7x7S$#wNq4zyaEfItFT)p~43 z;Q&l$H^BxsQu2238q5wAt$W?f6mI53)6Hhn4-Zmyqx#$=`jX9G(w1+cm+ltyiZ?V} zCmG<_<0Y`2%qcMQA{W+MPL+l+lwpLVEB) zD-;78=-xT8>K<5@1z9gtl}hrW_s0UlKDD%=;rwa$fkvt~qxMLppZ1G_d)zJKHFMoQX zBIL0B{=P}04x%u>*Iu`x*|C{_`nyix%7u-|)gQAybEOv70-H&iO|6?;dlwq|?90!ek*0Z|_uWoZkheMj`MI8-{Q78IicILd5$trlV@XWWl%Vv%QF z`KoUj4L^3XBo}v*#$}fVJyL0#?B(n;`krkco|ga5GR|**v{5N21+LE(w8l3TCOo84 z`7W(_H8AGn+mTr2bHX*I@J+?=rn&^{jHlzCn-&WEllDJA+1Jf7FwU>Y2ht;eq8Hcz z%A?Zf)`I9Sh2(K@gZsVgq}*`{ct6|W3POnaIKaOFwJ9!Kxx4W)Z&@&n4Sn4%QFmbn zCgk^bJ3im8h@7i`#6ZV?Oxg zAG_=g2n-R8Ivvbf8y7ElOF8)DxHSpRBl{B>db_nhLkyA89Ki;@Jo9!&;(irxJV)XT z;XvF}g-GaMiX-FjBV+xg{{)^@Xs0^s@b#k1ORxXOVVR?&Ev`qSY|X9QfFK)!rEe%T zn||vO!lJ(8+0L?>VUv~W9mBQy6I1-bxPpgZziFN!k6Ar^*1nD?;St)^xJPg0xTEwe zBT!Gg@p;)@>`U1fgu00M2;BnXN<;uKVaYc}(z%e!^hT#Hvk(?5ji$~DCCt+gp9?n1 z5aF&rv6TU>W&d&MflD1g-TeAIp_DK{ zKtM*Lpd#HlLKxvjNJ@8)?s#rKzvufOf9wS}yWeqL=bY=DGa!8E%CIW$K_W8n%Iq2W z-cF5e)>;iprbfX}-#P0KER8FhJeYoc=$W72zw|VZtbqlsfX~pk=F$Z50iS(E4o-)z zid+Cz^ze!D;gdsvVXbWjBGX2cFWQy=-gp}jj%LVv+xz)7OkZw$3o|E!vkRKgEauOu zR3`B*yyAf@@9LfaDa^Y^^)@pVXT9G0=M061FBc*A@LGy$pSSX|bEi~Bz^Cum$(4*1 zD}ebwiCp%GagKZJ**YUc&;nw^Un3)ujP9AA2Y#D;Q!(DQt(u$;%mIEb`f*?dk9u(= zpOp~;2|^w1lO9;FR+z*3;1;i(%miLIX=usivjXFzFw0obBfRXChF!A}><@c6Pk;Z( z>C-Y@i$B5vVS3bmLOTF5D*VQ_>|$Rrq@@GpqY%g~o7v435dTnFUj8Q#xG)Sv#*Ae0 zmfqp3Nazji^XKq1m#+NzcKn#8T@j#TOKTk9{&xl~O&T^`nkI!BR>~a`4dF=Zs?SqY zqMsk70U-cwGtC@5Pb1r+n^TVCMS_zdO28L1GIOKj;d`|FiL|d%dKtp?XyV6mKK9h{ znAjmNs}Yae!sW0F0TN?z@>RZbdDE$E-El+c)8m)dC!~+40<2pGOTHSId`pK@JTK8& zTy$9$-|FsX6k&Cj0UCCXtDxrTl@ob*FadjluCcgiE!M#-G=Co zlLA{;kG`CZw@@^mWmRqRqNG^kZi0otY%}VqHjnwTW`J{8l-t0PCk_gxCtwFo*PE=x zM%UE-j9lB^<$kD1iRH7v8x@5Lyb;Rjc}+XH^ttMrw{d!m_8 zLn2X?ILnd}tJNjl>a?d21>XK%4Fxh}S4@ z$nvpnd94)bC+-LS`YwrP+ONkI%%j_8TrQFK{c5) zziQkfjKAh8GXRx%d9RCEU5Tq(3v6n>l6k<@;+KZu?vBUeR)o$cH;hW8FPRU|Qaln= z`50pv%0hY#cv{Qz;-q+0yC3>Db# zx%+bc=bc%<43{j(y-bWxV$f2ETbk^H(;2 zcN?IADzcrkK}_~h7Kdz)l8>d2*V2n*$8yHVy_QE}x{G1W%?XI`#qdd=t&@%7j17Z(Tl567D+o_3yU+$e`G)m#pweB7s2ippz zk8&_X{+bPU^eQ^A-V}ZIoVld9m~tJK#jHxLZEDQ*i9_9(UNtS>l6CF8usWvDZ*tks zWI*w+`wH>J$ihg@$#(hSYF4U8p?y|NIeTm)O^U6Knc3m8quY8_*@~MX{Hfvgy0tZ| z!sK5SY9;y(@WYTpH~Ez_KvHex($R3t&^Xvx4GKP_?i&9fz)=$aTR|X~d62_86|l~g zS$CVT-K{xHvGGv~;=8-&=d$t)w=bD;C`4bBiRI~YDI|<=~C`O8O4B|&>g@9P7Q*_ zzE^9m2z{a!nV5mS4K1uhv%esOKDR5J?IlRKr}8xFwP2($RLh{&cD5W)b1!=Uopi_; z3zwZ-4Be&ctJ^=XII@waB*xr)fbpE)Y5-SoExVfG zOjz%YM_$z|kI9c{>hlAwsz=3;m#xptei*Cv{rn4xtkAyyXz8Lr;Os{3Ns}OUCuuRQ zyE^|~w{|DU?)f{#A4^^?f4m!a* z4%nlNtEEUlaq@0!qUsDqtkfS`0VuJ20h|&DX{o#kXRFQ&1770Is05+xr`%1Oqakrg z(r2Ujm#kR|Ojn7q@oc zn?T=;fs!PxXH^^i$6|`wb%*7B&Bvo(5r+#5U)Zn`bl&K}Hy0a(3wpT3) zHei|TANZVts)}2r@@kb~(?LKNf?Ck7FUj(&@FzMQYLBfH!o&T zGEp16c;im#bzm|)PyUt0;uF)P(KDy1uN0bjaLF?u>Z$FVW;PXQdNmo%!_Q;*(_yWx zZ)yBLC-0Z)4qs4sbugdXzX-;|qyPLsUw7f$CN;J%-aCrxKribF+w2_oZ+|w`^k*|~ zk2ldL*W-SP^s?Cf>EqKMzQsAjn0%;7&cks^+WR76jz~S`MUV;i&iZDOUQET#Jf|r# z%rUe=tg*X^2yYT;=k~y*xT%a1Pez86ViFWBj&dvB8Y|bMk#LGil8Kyp^`xS!{$q1X zP2l0)&uz|eZreKZU`y}A7c=sTIPr_DIa~izc?P-z%#2xJ*TD8gtOw%3>>*~2+3X;Ar&WFM6>@7qeD-qAV>K4HN8$UfBir!~c2`=S0A%4r z-a51z)*?^dcD}&QaA0%5@$WO`&hBv(2>X`LLV6p@olWYy178V1dmp#gdC97l^K)^I z&r?31-&9WlUTp0B7scEWLJE}W_z{gPGcs-6DDHjqc(L=OD!y@JX{iY9BLlB>K(XT~ zmyxeLuZy5xjW-j})5IUIoRnW!zqP}IA$0gmoS{-tBw4w$=Fs zl~X{aZ5zGBz94kli8H`<;W(Mv5L|ngTO=2a?EPgH0_UYODGW%=6n(&H_*b9R(Ha%7 zPr7g1*_mlnOb4IS6*zd*Ogz$YEcmh2DdtcH9bGpb6_WU&!n)y;QfoBwaw(g91o96w zk;`V&CG74uN#}y?>+`=F{Hl}qv4+=akoAe*Ji{FlBLV?STWJ0&(S3uhU(aO)?dBkj0Hr}QdKOk<4^li#qM&xe5vkCGn=LL5ZL5g%_1Ggu+pN1_xuU=yN%)<2hG~UA9^7AXJAph)vOos(`}8O+Aj|b* zUL$eK3D2%#+~(P1A_-{4j*KoBJ<&^8_?wB>0V%&A0lu+pZ>BU4Ei~Dv%AIYq(h!Xn zc}KgYWr;srvg5P%YwyOOseYY7`D9pR`>Kr`LM^) zxEBIp4V4HsWplvRKyyV46{<20t70QVEXWS#Zs%+li}$zaD@#k` zG1O=D482IOr=8tz+v@C~gSU9e%%WKMg9c=3;k(Q{N0NgON@4?1Hg|sZBhn^f(A`&` za3~j$Uk?6(sztN29OrD5_iX|^tVG;5!HkSvnFP1N*B>pVg#-ojui_oN@Zg&}f~)-) zX5wxis)KR4%Fww#F}={#kLQV+ z3{aYTuxZq+sdV4mdn9pJRotJBmrqVeN&$x7Z2oiD%E95jkVP}nN4sJ?=1oPKW0qHg zVtxt~`bikgZ*!OO$gJ~rOsjY84Ea^N$;(%-Vu726_oc6`Ee|1N*uLuAQwMKpb{E4f zZV{?)VzJ2X6@SX&0FzS_p1Uxdrs^WCjLZXHEq>DXa$Sbq%4Y2{!Nehr>=~6dDQch6 znf#64nK)qofsshZ-*QV+@v|U zRZLJDrx1dLkgN&jnc?t1h8Q#iVf-@_$hTxcBwK^qUJWdh#h&@Pz4@y=<`*5A@1z*A!(91GU&5TRam z<8Y*&?IQ-07V4~VO}`{EKCJ*AgWxH9A;py#OzTS$_>scLQq9slwD|M;W41Un3)_Me z_E@#$x>SWoGGi(gHa+%)nS?Kmj{wRDiB;n!J@~hA_(}8*g#R|(!YCw(FB?i)#{28J zL!mAx7+<1~bwOe-R2M^Kt)^;AA(VIrLMovmdvne`|0#LE5|=T9n`)o~jx3EG;K=F# zf~KS6qv&naONnHz(2EQOb47v6KN&(de7=AgnD2rNR?8=aTkB>fCbSQTlsW8LG3@(_Cy&kV zh04~sTN;5R+A2C=+C;kxip61C!&HJbo3UagCPsKmo$ zv9=BbPOY$6;e#bND~HpHNP72g^D3dspjI$J??}7f_NlSCh?jhn4F1TS)tP$gY>6{6 z2V$pvWJa-q){IcxdfoYX5pPzRav-lQ!q{Uu6dzs9(5P7OKr7!5+Yk0onmezKZ?ct8 z@67Cirt#Wv;$~gE;^+M5*vyI)UJMuiS4KLfwTYjpwX&#)sDzo1 zne>NM==T%G7s$3mwB+`>7SFO2DavV&pIQfjn@Qc@Yv#!A=OLwX-uWb9L1!cqc3PI0 z26slGycZh|LO-4A?Bw>Q)w*UCWV&UzkUSVq6GMocp0Yo;oB=GR(E^*KfvDV>4oz?aHR+f3a=h}535X}{MUTCiHHu0!;GSf$sFoBK! z`*RuU4!&2=m$mx*cr@X+Xtda^2{`{!Q{;EL@h7TUyvNJ*Jd26suB?lvjwitzCM)olGmW;ReY|3{Lv4=u5gnO>HRJ=4h+4X5f4;LVeDAz3ZolhYb7gH=!%f>mIDfGCW_T=)7ZXS@J_f{hU4M86kd zk=JhLKchE6RHLXR3N@a$6+YB2u=UmNXUejsUQYNDLuE;Cil5K^B~`~C;9rMc2^Nh4 zG!c-iTCh(8d8-G+V`s)Z=p+vi*UGigy>3jG9Q*fAhp0a9)GflBF*z zq6wyhExu+pwfU}4B;NOn0_~q#R$6c~nTC{cFzAta^dcd+@+duy-RrkM$zEA z`}+FwP5jA{U5^IJ<#%f&nH)T6ft;KS|3K#Onf?^6omuSZ*eT@!##>QSs}^5mhryu- z#&?d+iv-Us)`gAmT?-0xB$UWo$I|~jRxV;&M$0s9+xm&x$2M-8OAqOeGeX|M`(ae| znpEmq)7CciD+_Y_5nHEyeY!w+$o;Ebwrf!!!vv>MFcjt6q?F|A0w3G*iU3h)$tMzO zvC&8E#2H->L{L@2!f3`pY~Dxjdr3+W$Y*x%tD+)v#8>tZP`C#X8tu-8s2242Hs5DC zH2@J=1WwtMkzv2IeVLK=gD=u5o5Zp8LH$Rim+TGwA3(Xr;wrKw%AOtG@e!aa4-XI0 zRm(WH)m^`i>>}F^cEjK0Va;>WkT6Fz5MnZfNt7?D-84SqQO5)Q0DOm-h-NJ?hs+A| z1M|;r9)=Z4uT6eW4t#$#KUgnPsm*?y{f@`ngfZTjr`p`(LW+9K!+wm@0Wkl7b8LLJld^y&y;I$aZ3uI{d-qe|A0 zbKj}K!N(K(K<7xSVk!4N1@vB>d@R48r&VQ{&7X(_Q!l2q*-}?m=jk#Dd{9tG=o@@l zpK?*OMf@1qmDBDsHP;Tv7}QPDR{3rHFs5nO3s8~k_bd1q523w73FY?B(%9;uBzO+7 z3Qo4^jAEyO<*^L@7W7T5YjxNmss{NMFQ9>u;E0!!-UrW z^n@Z+8;Si7u!*;L&p-SMMWU{Vp0u5|`ls@$#_lLBt1ok(6ARn2_FI_`I>KP_Rk7Qt z8<$0p^V8Q(H|xF;FbCRQ|5?I%2!zMhJ^p^N(*65iqSV{C>CD2sTt1>TY!bM9g>{*1 zLF)u?+x{w{oy0}!7{-X8^{$k{>(s31viT}2oE6d!jl^T_`}0TR=dkwL6bVI=P%wVd zy@F{yy)BFRzm8H*IzD^|87dTAbn@o}c^C#`PtveW&X9!n)m&7XRppX9ep8JuG9M$0 zL{;>~$5LCaRlnRSH$vf5ahiO9XJ$bmmhEDexLei@Fg<&^aSasZ>PEDu*L*JyeHH&O z5Hfv%zLoXbG{)PxRr%uQ@YA24o*Li(N|gF5^>uzO-|ahhA;%g{B5&-%o7mf;b?+_r zd|j3iKG_B;4JgHEtA&My0V1TS=~8D6WKMs5c6Ju9vHT{u)uAIp3JEy5*4arg4%kUN z&VLKkouws2)>HfQ}ya+0?8b%6HDQIALgzyzAwkfGX_=c zBe4wkZw1CFa4=3I2vHDbo#miaAZJ8{a%8A6)e_8viJ4>18!z8-s}4I;HDFpY4jlBqtuXh3lH2Bf-D$QnPy>n+uJOUbb|t73v?TX${Mt z!Jm4(7oZ#pYxd}Gjv+(rt^{jmrm*mXwYvc zt5n&Gc~2aM*klU!hs7jca_x{!NV%?+;rFS%46f_Po9W)V8#g@u9)l!)=)wO}fd=Cz zX>V}yl7S^@E3V~Z9%cG~M4y~2^}TE7X)PrsP+-j$d{{R*kX<}uUBpEbEG zs)02EMNzh_I~Xhdh|`JJ8+g-JG;$>UQq7~p4N=~s8;1bbPiom2Xsc8mH5+7O^3vki zbYj5KZ$?VO(hDfDvT>*TD-qkFA>Lv^j^;iYI+&%Eaz~d`<*|_Cl$BNSxG%5_H=_B% z9i>y)KKU^YM*6U0ZS!<-Ms{<*J+qf-R!M)x2v)}zEn(owf#gm4>eWK9TV?v|+^6}J z1G{W;OQvkhI^~INP`2tx;@dk&P}4`OEEj>N+6KY5)Dh;*wsX=X4K{YBj;z;AFTH<5 zpcNh`k5-==G`Q^^-6REc0>)8SGD6eMcOlmS4(_{0`Fa!hHN2Td;4qCjX>@pbMD84k z!9-h|TBYf)#XFk8InZ-V)TAqaw5lf2_i5-)+1qzGi2KQn$5>hE+xh7d|!HuDItT~&fGHS_@_~e7-mulc#-CNT^TA`v|?}Z1*H#yp7 zP((dEm-Idymv`Hjvco|_A3O6^Uu>t#s>{=pOj4=lI~vihA!vKuIUfQg)mUt>F zF7y(7cs50)--IB+xq6lN2UsBqwE2y1it?PI=G8>4|NM$nFDQ~ufb$&#CWmibm^0!$ zf>#Yk#>r^)(;^=-&;ocsS#7N`*<(?uk=u;-US*vNo|rd(?x%lShxrn!&wNPoi-CDw z{5tdcGMmUL*8Qmn|>gOtwndJ((RRMr(a_V{rXBtao1 z5JG!uI$4NlZTs&541$7nn4)?|9#SHt1y*r#Tuc%8BVZ1=F^y!%~Y$gVt}w+zC8Nr8ganv$S9c<-|DJ;}5RpJa9f zEA9;kx3DNf->fWzN-6Ss%AmA8KQL#jELZ4*Vn*=!Il%O+knc}p&O^LdLSB8-(xAW} zCt!@J(2@x3To!p~_bPnv9sGS=g}Dh=N~h`!U@NJYEkr4+BIP;fZ-E?uD#N*}-$seI zR;-$?!dBM-rt`g%r6rkpo06JeUs^NE+bzkqw>mRBY<3YVZg{)B6%9An0nyY!z(Ii zNti{YR7q{Nk1IF7KNV1ip}p|^-d+(R+Rqj*OQo93h1UtR4)CD_drCqA-JCT}>B49V7+UUSr0wE`-f#mfw~Y5=Go0xWp1&qf!7ulI!G*5|k4 zIGVLX-!sMINfx{{XceVU zd7IR*=lFpg0~HPkHR~>&^+@tc@pR1(<07|{!Z1U+8Oy2>)iyDcEhvAHwz2duZQgj! zwTXp1(<)Pz`lO?5q5wx1mo7k$a1(p?-KGnek_Yj)k1}YV1|BsVD%rewb5HjDUO>e{u=f+#D0Ym`W*cbqS9RU9RH594 ze>B-$h^msDDr+lZ(w)^XhgLfP*?g5RH~U7R_2JMW?Bl7&X}#Zcvo6zw z8v{FYNM96)1En!4CGFH^?Nif2ZfF3C1^X`MviyvRVrLv7$@tLp`(7x{)hp*gC^Vb5 zlK>Q_w=n3kx=)18Ax@F9!pf0aj;5j9_;q}?uHg{oAJ7* zq6M&J-~Abn^0w4hxx7uwz8$2b^ohGDtRB048I6@E=&)yZ`&JJ9f`jAI-jOttIIZK^MBgo+7(3*3zkIrjI%Sa4N&(zV9D#pqHx285?`C+s;|6v+*-L3*zCJ6tK11Uk903Mb`{U!|*S>3mUxn{z z?0)#a+L-v}l7@(ydB|89?$a%$x8!sn@O0snh7iJmP@*NWJd!-Y`72KYQwEQFR_&4! z`=9hdt^VPybH3lDNKOSgKjHNmn=##WWq6GYVk4Yhcw1%q=(U<^bz9pP{BPE}mb8Ot zF_i(EBEA_QV6wZeeWfqz)R5O5Sn3QSc_V4he?3p!lhS9>%D$bUlJ*r)?sWnD?F=_z z_Rv}fZ~#~X9~633pF|N_0mA~;Uy%T~C`4zka z^!}TYXb%_VeXSuCHmEJ+`+E+pIUcB#Qxup>V!)C?;XUf?0G~!8t{_nj# zcQO6K*xpmE*Pfm)p%fZy>30DR_etH|Q3cG~hRuo#3Xzrz=Ub@U#;iyGTCD=Q8VVnVGkn&>rW7>svf%S#}_+i+nDltWHVzPnk0?F3k+ zqT=FCz-s1kC2ylE@O1#~g7nkS_oBP{LI%W+t*;a0Ri{V-X9Lik!0QEy`$sNi&P&(e z5FjZrVjB}or|wbdW=93`U}kxpq}0mDc7SjLW;FA{Ix&oMmF`D5OrX%bFZ;&_=a)HU z@@ENd@pURHA$h)FTMG1^QW#XGtRI~4N8u%a=LD{M4@#>t$w=|Nl+vcN+U~#H+;jw< z?i+i=n+o{M{`8C(XaFS|P!G)$*JxzLIQ|*6`|Cl;DN0R*c7_9`LlP4fO2KR)>r}qo zT$u)c9k#=K2Jg6(aAd*<#RU){CF!?xDLwBmC-#zqV0eENyf&_Hz-h|rb04Z!ks@9N za+Xnqy5q0FmLLldb5KELN$>eQ1!wSY&)K~Ppun-mc^JaVF4kRd=G$;mPMokcK?gDO z)HuVWmimE|K6qxM%e2h-)W0w9q;YiP))x6Jj~ov|GG(&oyo{#*h!iBWBIeCqcR@i( z0-FTaJ_)@$MHg_zcSy5Ou;>Bwg0sisSOq}2M+aL$$>F*y_|vHLAC{6VN9r+(#t(s} zZ5!KFQ+NF3AC2qm^Lc_({&fo32#;G}lChObk{+#dHfb>4C|l}t#Mb<3fPB%uisA@j z79ys`K<2l4W>t>SZ26&&}0IC6_MlT`G zE1i~^YhgNJ^NXy@z-#gs#b&1|c|N;9r5^E1(M^jG4}YP}sMv;5fu!&~yPE5~$vsYP zgI`d+cxhiZ&<1L{~Y3VmMZAt1Tym*V}Ur1aD7O1G2xeTcf zpaZgE#KQ6$Nh!hX^N}ADdK*`TTs{nZ-0^ryf;ZiXuTL9;Z10ivv7qYB_v!CEdpW-D zDOUyz{{YCsfPK~c_Ef{8@0zcFj&9ssfrA1LRi=W%!Ue16yyNKb$jGEeb1`JOB9{!P zP-XRQ&r0I0x0;#9=a)9`-JI>KOz}=ke?5PE6t&GQ7P-oE1ykO4hah5>`?43O05s~$ zpEufv@7~`VP(`Gch2<8NZGT%5n>d0MGi|O=MoS27tb|Q(`oNJ+X0Vk7J9_enfo|eo zmz)CwVN#3VPIH(JtO5vT$t~-i|Gc3qE{Fp^44}ooDaPpL-lckJy-&c|1Mcx{GH09t zBzrxnsE5S;-76hf`cA2DT`c4{(EBoHi662*#*SZPTP#^K7br#|T>C3dS3ukST{4%T z>10VU%KosT2$NAl^m{2V-M;sViVS3`xwm7Mx1KFXy~L9n-homj21Q}QDZ8d~+`aK8FqCXu-F@uHAdxeLVH%n7? zUInh`o|~zBEaIso%2+(_We~rtRrrYgal^L7sfV)X_$w6=<0NLC0z(obbh+>s0}LSCDDhNi!<7Cpwd<9MRyj;lHg!Di z`OjpGa6l>B*ap&Xl{vH9+kJX&e?ymS=)S|Mie@QU?nc>%@tSgRRN5P6nNLVr!YoUS zOxxVYZ*!3ku@fOG*(_OQ#hvfW1R5N#fAyktR++}ZK~Sys@I`UtCgANmxjvY($wR4K zzCwTA*47rEH<--aSF`%h_RLkS;>9c_5`4rW`=_BFa3XhOhHI2%#eQIM)RHnWPh>B- zJSvL|5WE?E<}?pD9QKSO)GyF_t6_9uWJDX}30%iPQIW#BLerU*kC>bdCXK+>UA5g! z4dUYBYni0m2K2-f)wz*Yf6k+GAEvxbUz2;lqPk{xJB;dX5d^=#_13a;iEjspPbgiu z1>Yx|gq@wbTwjCR^!t=E?*}kf>&8RIhFh;VS?|)(J;|2~FzsKym6t%`OVGFiKJ_I_qSiq7d->%xXiIwegRcq*XpN@_WsiR!LnWuII zGBXpQUyw-aG%}=pH=NfPy0J8y63+(FTg?-5~F@TY&c#7os%;JokXXCH8wSkrs37+ zZa@50Gp(KW(uN7oeMydrh~J-PTm{PGVPbBs4_FQU{*Aws)2ol*Qr^dL?hn8_bJT-h z*W@7(iqS{e{@oZ>6w~z3me<0R_l(|b7oe-2U+hj)ANPgeGg|9qB*fQD!b2T@uc`l) z$3;gH*ws!qauvg=4jc=}76cZ?i8#T-38zBG3!tw?D^#YXO1Or}o?O+-DWeCfxKX;H5|WPYZyl2xp+v zXPs%coB$ngPcZuZ4gQsdeS44dcH~&fX=j`S>ZXe1@zl?$jiIi9uJ1W=C(o$&4s= z{``uFh;3P8xG}iacEi_+7UFNK}oL-ACVmD1k7j6)rF)JtI=c-Lj zA=-0lE7+}1hPktnSXE`sq>Jb4Ar;OdR3tm|2QY!ksJ!$7*4D|*tjq}zYC~sn+Vf%_ zkPIsS_*fGp&pBNSkk(a!E!Q8mwzh=z{@bR0WC${HR{M+BwVc5|oe8sdYo&hl1a^`m z$`=oOQI7^QqxL{PS|J|!9FmvRpPTzgN~9rLKud4?77E1^G$aAv+3^>z*8cj50xh-> ziIzOh(yA~HVf?C_W7BX?Fl(V7-LmlzrO-yR&^j<(MB@-A5@2RYpgr`OY!MjwGplpw zX};WY=>obnK!HS?6Exoubuu+`IaTXA*B0-3Pw$Jji<8rD;0gkU#5w>may<&8|vw>-Wz8Q6uOmnp$74TvF_?mc@iYdU(g1O(5dI~MW1ulz?G}Ijac0R z=Q>;ulqf%H+Zs|*z{nX?fouAEr_=x&kjA0X3dgJ|0D56j9u4SDt??C)igXj43)+;pF6wjI|7gR&!r_}l__!yu!`>4ZA|{(TD6`scJtBRs?@nv(Y$`@>t`M?QpYXLovgv@ffsZ)CID z`q6jw6duY%FWZge*-!W8Iij(|gmAVlX0Gj)zn5W?%z8eC;xg!0vNDj!&+UMqcNw{m zU7Z*h7^tM5A(u=s;u5g&vJ4Qv+_)w9?~ zgz)#G+TeAOY3OYxf2F*pt5M^&X8qJ!nXllca@kwz-L1&F6nq1NEu8Ew?DmOc^U;^g zweJpW(v;pPN^st`+!SM5W!mZWFKNOMrGP0s;NTrcmbm@dhTGY%=pt2G&%@ z@cy;;n1BBOGmk#4vSl61{lEgaKIJ5yz1-t;+#XyX+b;_1hs9WuPzrJMTv|s8H?3 zcyvdKt~IC&!SXSY*WlhuhUPg`xzVMc&Esu9RQL@ z;w#wd)rHO`_slVO^(p0T;3LX@n1iT_I~S2vyGkd{+(Ki^0Z++h2c1Ty#BzW(!1mQV zyS3oKhdjLLInjzPp{`{4Ox~?4;I}RS@6r(npt-*b*pn!l`)yU#`W~)xwbbxM$I)u+ z24VX8E>8ag)_~V#(R4WS635aS4+!i6IsVbq5Z&lNfQ(FjZV3KYye>kXNC3650+t;7 z0`gctMLaSlBCWn4m=FrkHq3XRdGlMEr^Une{N=5578+17h23C)7U1|QZDsNBwi_En z9p@?gpOSn8< z?LvqsCjpCWDF7^}xS^0*vEgpC5rj@vri!IzkV|K0XU(6((dH#|KyO~w+?=Tmdmt#- zktPnavb9}8iDpllB;3=na&meAo|EAPRRS$?#I||1Kk)%@*+t}z?L8zr6Nt82RkL5O z8r0Na14LWii%0-u47dLdr2O$r9E?ZNL&sc4=7~POG$lPke!*@!5=pJh$fr9ZnK=?_Y3=|Vg4&KRE8FX7k zd3fg$9o7bn>PS%}@sqT2X}@xnq*d%naD zd8Z{Vm6jpS%_wza&I3@lLCVapf&)SSzFDj{J;_3%J|hFcPyN4FsOl}^2jnoxeuTs` zyt>N^R+W-X?WjO}ImDuSfw#;}EbDg==iFW=Ci7vEm^yAOWo^sryg56-dus!I426u)npt7@do~m9qD-)hsvTmA;`=jMlzNL-k z;^zJy+OCbMDSbT6VA-U)6w^Q3^PT0M%dlZ`ZI!1Bq6z8^M95{mZZTlV)K;*KrDX!ludJyvc`{iH{S|Mx?P-G?N|7~tAH2DAr;Y!Pmh~+*|-5=io zY)8Fg0QZbX^ze+2-|j9qu=ar#_4ZzHgTA*qDfGJ<8rX0Y8d=cElG$v_e~&}~0hOof zC_t0#Jzar(%+zU7jx-dG=9GOnx#z73#bYpn20&`LlBgy03pCPpJRoi}w%Wj*KE<1G z|4p+$c|>nvuQFtlPmi85|KR96OlN4!fPjrmG#Z_UXPi`58qZoVpiE|7^Dh>#pzQ?i zR;1iJ0iZLuxvfY~0Q`vI2QIeawTsI&>&L^xLz`4@xs0TYG5}fajhXqSz^cz zR_bA<1dfd3S7hOH)MdC~Vf^QN$2&Dfe!;o4WhILqZa>a#kzN8j%0XRggps(9?Z&*E zB`<$HpJ1ct0;(t(w|S`8-*E?IXg@=z+}Ak}!`@+sq54}5NQBVJ^0E~i4oA~3Bh^No z={bS#Io8j^L;OZ^3xMKAC8O5BdBp#rxo{9f;^0YdNwI2F?b6(LoQ*>)yoE==NN`SrPj>wKZ9l2=XG z>Y-|v(vQ{`n%zP6WB5>z4{C#g;+epC3P||DgRg?R!NF;1X|+J0_a_68?9StTN<2|? zXghyj06qGF5c}4l?<0Mh2L|2X+`a*=LU`Wd>^0$aCdHf)-I zH%h5Zme=w(59uqRoXw0=SnvrX0R=t-JAyZf`*YsoHP(%8@K|T!tQ#vn3&BGBfQc%d z5b{;$KX1gr;2R1kEF%)o%z+PA!*}F|X!fv{vq0^Ir;HX^b7Odx zyTplKJ=A0S+!Y+OnI-)4n+wQ&^^Qt%pbT4cEn_Kb#-IIGqA($km)voSK(aKGK!T0Z zTv?gd4k^Ynb8Ee~a_;=JPRwb3cH_|3=;v_wnRTQ8%tdllmr-kd-LkT^=T4k>_Lzku zN`b3=V;Q8MV4;R;~!0vbLBoLDlVLXrhTQcNBUW zBb1DRn(FK69!Mp}eK zY!m|nn~;Q7>Or}64rYRnNAFqGF zorErlr-eqm4#70Jo;goNI*B|m9h2ygS z=2ltTUy`hjD=|SxW6_%{i?xEeh==6(;DA21W3_n0NOT`0Awk zfipEaUrn@~Pi;-E&}|vyf(*geW3cPKMM*0{p=mde;LkTSY%dw|E=kivUqn7Owcyk@#($&C(+mBrx#ted5?ebVk>lO!iV5eq1ldUhTA>VNk>XIC!VM z+CPZZ6G8taVhgum+z@8B!R~u_+{NHGO%X3YkFgZ-C#(aUR8ws%fnp5sxq(6fcnjgx zzyj=eOr|0efV@B;-Llgghq=S{ztdfs(~uQt8=Hc>+PUE!JFPc(cw-@t`0tL8E4K2y za>Y#aPft$901TE2MKD!vSAuFE8-ra&q?_6bAY2##3O77S*W9N9$(~u%vx1iZKR7l% z{-~T<(HSUBWn0`3*LBu}nkf!2F1Hk535pYlT}jl^u&n zAHyAJrhI?+)j*9|dZve3KedBRFhxM(jI8{27nm&&mI+2R%X*Mc#dw#E_G=Ui!-K}W zNB9ba!;*z^$ZIJ;ERb$5@oUR1dV^-oZ!bEvJ`?)WHT~V7q_U3ne}U&w`atas$mDi^ zbyxR!_A#(dIcswCdf)m`ZL~6P{q4ox(SN*3k})imm{I1>mPsCI@rzRXP%e79ye$ik zEwdPZIl>aaa{d=VC#L4E1qcl5nR%nmmoAK(eRPpv`B1%|NWV=kc@T>si5^OM(tvWr z3LlVm`CMNf4>16<8ahkw0Ot3xtcmAaygpa+m^_`*6y!$vE)<%phvD{fYASFP&akyj zPkkqyU&#E6j|`F-&8a{xg}C~W@{89qnT_xp&{&jH5dK>EwCG&*=riXW2 z^bJKD1C^I>)~}PcrU=U%011Vf-iqg{<kNc?je}NI$k*&a2GjyDFT) zT@QTKNxAwugA3Z_RX**0fv~Ivw0CT)M;$uK5WQHC>nUd{cTW@-tD~Lu`?<1CORX|B zRgD~|j|@4AENJ_wtG!i+Yk&d8Hvkv0CwolUsmX|-?A-7+HEDln#bWpgNwhHoDLh)N zD26i-rWlHdh)7D_0mc#eAA@Y)C-s_%hz7mq)1=Opy3Do|1t{SO=|M-f=Q}3xN)Oe) z16|YqrxtdB$S(;mFRyuEYwJ?-#S{a7E|&>6Sw{mnEym3QPKpD#<0s!KlZ=w=liY*- zlO#FmS)vG?tb!YuAvio6^&HRlv_1UM{>8?s27HxLj&6t?c6EIE%$TgYY*6_&+=fJ( z<_|xh(3iPssglH2iL?lpDn#OuN7@8*`_lcPTr|GOFJGczSpibE|D8y~mmPIuxMOQK zH__x|rW)4M8{#t{Kv7m8`w%z}I^uvUV9}NHtB<$0v^fxNl20*6@mN9ozMod{LEJx9 zFWvryb_u3q;ws)}(Q9rJm}e%{oiZ1jMkB|3&DW(0$9xm2)@%{xTCpt6)-b=TrpSku zL@Lqvwd^Z{o)Flg!Kr$^6Svpnb zd4tr9zqMRnos$+x7>BT;V0mYmKygxz2;?(~+Jp+1s$(ubiQ=E+d2{6TXT{Hg)_w6x>{SXk0Lgr6O(8Jn96eQf~7 z$T~4HzsSp_iimwf4{dF#TVLer>6L8i3H?jpPzu__FK5Wyl8*K20n0Y zuk4P*ohVZIqqATS_B59%HXNRtis>{HBcpn33=INA1`{v zcj1@90^1pxk`7K^Kkye0Yc&wlbzL-SLwNhWG8T^mD~06sfdvWNmmF*+LZ?aE<~+_` zUm<^&OU}dP^<=O6lvl0~+GV!>A5C8Y)nxnsy)jCp1}GyoVk)3W3XD#{1VJ7Jr9(iF z?uH@VAp)aO3{*-9Ns-Zv66uD)LwCb_?fL&+59fG1$K&ya-PiT~E}XK+job*bw(48kJ^(!PDpobTcD%Y#k7wFhC7iB_fDfYe%*uuUIp^4ED4bElXO1LkVN z=Ej(^lbgbA)?o!p4a!Jz_MC4UxDE$XX0-W`)J~&V^&DHk-{aTxFJwZ)bZp zSRGhzZ;q0bMqh0fII5HCnX7utwD$t!>)iY|yGM(`>H zHHysZTP1mZv9kj_q&3iKgX2EHk|i{nli9raUrUBZpj!KhhjlRz2(?8#HQHwCes83B z4If!NqIJ#(r7RL(4S&Aj9qZ0k1dOI-lHOl%)sqfpH1AC9{=|PNx+hPc=8vx8PfpIR zegJ3-h=`Frs?sLWD^N<9i#xf#TEX|pQI2F+C^b}2j5;hYtm&dgMvTecAU9{Z%3N&B z<-Dtoi9HPE3}0Yoo8t7c_#yj>{&D6aVan`A#zELK7lF`l&o#~J^JnBsYaXn4E(wW{{t7*RiMcdmy%+2 zs6TZFS8`NTl&FM6%29jfQ;lAck&b8nPv~uNihH(WFQz_%92JV9>o9X8As=9;FR2R@`{6gavEGKuHw3tjmzd5Y#*F8#p_A#Q?U`TYhL<3jNad8>xvF(hc_$~ zS|3?(oialWK%5PXSShzE!HyucmFx(xN{DA9*kjkbmdDB|&82&p(uCkihcLgw{M$4$ zLSn1Re0BQ!&g~b0Fk#3`f%}1iE_*Z$3Z)H{C2lN7I~cUt2Tn?ttBlyq(P4T|t#g!Y z^#z#}s0*H6Z`R+rm}2sFf^EDp6zlb<;x2Q$qq$qiQlp!@I*GRlRS?IIBcGV{k zQU-LZ+_GK}W_y6JWDu_t^NUmH=w{EJb^P8GN~@CXR>vjk$kIq`jV!Mb5BT06=fvv+ zIp20kF&C4r^^xx}Ep94uQKPjYBhs^)lds%#$68);Z8`q?_itEx=cZTP-=0hJ6|EsA zoI|0D6uJyK!RkPjJvHfPej7X+A628zH)!SVF8S=sV2=zFB*L(|tc)4BTK0EUdnmn= zR-HHaEEL3={qi-;Gl->PgqP9}h*C(ck$efEiL(_eMUMaQ(9Xb2yg-r%V5B zS54dZ-I%Eu^cDlt3jZa5^KVm>qyo4zE)O-#vCDZY{R-uXtprULoWyFtuUV1|S=~5kX85sHlkJ|VK_U$3YuNv=9HCFeFGaMdI%Fy>jbH%F@wH2kFPSjdM@-x0zBhY`bs zdEYY}$kCfvFgjO`u3l@|1*&h}lh0RM{3jUX8X94U4S2#{h_lXD=JoXHs{AOI@Xq&V z9@;FVZ|cs2Z-1jeF;z1#ch!J#YO`B*y+91z-+#Q%4)ih-J%$60*O>7JI&*a`^55Omn29upS{?VRE7cVO(}cGqtnYL=V+r65`^b6Uo&y9m z>C#&debfrdD88A>Q#(5L#G^fXmm&f^rpO_mgH&LIA`W_SszOKmG#9l37fSwx2l}oL zaf&sg`v!+NGjW8Pt2@Pdkg!P{&+-Z+L<=@2$||c4O>AQ^t>2QE$?W+Q~WG_K*yPw%)k4` zODAt)kn*tFObO?}z?LbuFjS8)&h1rU40@)^)`g>IIW{)4|GjvyqY1P#acQNVO8(v9(SA$pbKzQB<5C%tK=0o}{mN6a+f%WH_d;Z!isvf!~+w-Y5u;hHeyk&@^A|Yx5(M9~UR~6M{;fRapE{l_hQyH(2R;+$A*`{TJv+cZ4Ql!`}he zGzxYAp1T7J$Tzj$tRNA7lK+2(tbTi~lh{boXED1^;*6IPP7W8n;@feSCI0BfEww&w zhyj{~LX4NGheNb-F5SbN5nbS{Zr?&f6Lm>{VR=1Qgx8|TG3P_Cly(NlC5o_puQTY5 zj5l3_j3Jf|4cZ5jc3-UWe^-j+y~k@CN*3L#d<914GEnOM|GfaLQ!@KIup`e0mf7=N zO0d&Zc@PR?Q#?N;-?Z4%$oNpzdjl#kxb|0B7bmVXfzwHY%yj^=zahG zedx=qH}bNdxY9F${wnUr$ZsUs?b}JU8G-dwVbf~V>-alW{NG{5?lZAPy;I{fsL|DO z6^mc0fA)pG%Lym?W>rh5X`8U+PwN@&Z3X&Bnq4?=mq~6gq;EI*z7Sz#3$=?wU<$qV zen&8aHfoM9Pi{POTd!)ptVF73(VdT@q-8qFlTVGwh4Tya(DDp@r zbvSs&6W8izb#I?nfku-@56$zAZ75$s7^iI1uo;T56@;~k!OlZ3O;_j|ol2Id<~P1| zk&TMVN(}jr5|V291unzPR=Ur zmP$1WJh8x+gC~�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 z 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 M(s)$x!2I3+0(kajSpWb4 literal 0 HcmV?d00001 diff --git a/html-flask/static/images/CaravanPiLagesensor.png b/html-flask/static/images/CaravanPiLagesensor.png new file mode 100644 index 0000000000000000000000000000000000000000..c166354162d2fe8173436fb7b047697977c8e034 GIT binary patch literal 522033 zcmdqIc~p|=|1fOdW^$&|YN|2!%9<8UG|dGUrfJgDvee97Qd2Wm1Vr3u)fShs6f=<; zQ&P(%b48%ipfn*@G#64-L=-|)1XP||Yrf0x`#kS?&w0=L&vTz6aNpN;eXh^GUAMQ+ zINB<$S6i>3prB-T;!kG_>J3jdJ)v<`T(E5Pfpg2In)Le9D)+)teZ2SkSJ`(23i z57dthj{?RO6f7aJQGNlTfry>{fx#gWR=Wj6%I=*Z7p!)>9XVxiD(YC^#gG$m(Sa^; zj%NenLIcb%?1oscw~Pe?0Kx+iemi5s!y@3|SgYNuaKXUumB*mnJ6ES5LalbYpE|Si zSY&kI&LjFq^bK}fuit4IeIW?!{HM+L#lW4_?u!US6c_|Tp-}oLBmKzeV347?xjD$- zFzE2%L%@tfaC8L1FZNIbTxSKuHyD2g!ULj1q7WgG5j$64`uRs95mvi*1LHgY#wC=q0E+dC0vYNXfc|}Q)Wt|dB>ZCJ|6$2LhyQEgg@Au<5`~NoTgCrE04Ojl zFg!2<0SD$A{>Mgvu_6DW`9IKF8Tl{ph>)QF!}OJr|C$cS=G3WwBJ>~N|E4-T{6Fx4 zBaX)ajQcKx|LqF+S#(q&$T<)miHr^iJRSqkrL)RAU^now=s-V2;Ge*s)$YRvhm8*z z7#=b(IcsPPK4JtmFxNFOG%)z*U6;m;rIV${yzl- zUYY$3DL|F~A2IsZnq!e+kfPVaEJ6RVmF21)gHMFO5s}g8f7{(9 z5cZ$DuiE?0ovT_5_6t}c+-i4JbmRqOK;VT{4g++28-+&(Ay9tNfk%S@1-9CKG$<$p zU=e!fnHAIDd3fhxeIvk0{RcqQ#Xtbu|4^cT(^SyE)ABcNmZ1N_{u}B4=Cgox-<|=! z5OAuXe|lBm=AV8!FaprvXu#`^{8D#HL1E365I`6IO9vGc_TNL^qd5HGw2cP26!^gT z%&}wF{yY-$;CNTZgLJ}u1ur9GxyVvPQ! z;#eHv>Mv-0@c?6K2(B#7-_Uc$-j1hq?JoU7_3KxR>TSL;eRte1zWwl1)0X3IoNF$- zCO>lu{=737|Iu@fyol|zX&?EK_r|RclQ@;)bojZa)UFTwF({mkkeK6Pi%)*o)y`#ldb;~MMuM|k4vGz-BR2zoz4mhc{glnV*T&Y~ z9}nNcJ0f!tOEt$kVGxP1Nq=8Dn>*XGjEcK3ZpGxZ{z;LcXRg?i8Cq;5l3$uY7L zS_)}wQd!%WtVWI3?nMm~&hLQkOBTY{*QnId&x%ab{icr1{^82Ax>^%n*I0b1J+bcd zm9pR?e;v2aJXLf=E2S15mHdRQ?0K%msx%Ki|HG3*k`ga7v+GH>BE6P=EP8rzEgBJ~ z353s|qfU6h6%>@4SN_&y=_;!$DC|_Q`}648*u1Ghhr1V;i7W}Lt)-+TF6LV7kssE1 z{M7#YvA<5f-=guy7M*%c=j(vF`X5g*6Bg%M~4bZ^>eg;j$0v>fxg_E8gnV z?&Beb@#{Hx@qBdQ535oB|K^WbXB ziKicCAQ8kxh=(uv$wS#2v@R3Rdyh#&gx;&uza*ByhSn%t7UyuftnTmj%$%JX+|c4q zdRAb=eUxd9A-`F3nK-`WS+;g%`sMhIxM&4~T$bin@#(>=GpQ^Q_|gO4%-Ky0(0+v| zHxjfJxe7KayAofHjacJjLwg-tXg3bh!*iSUyLf!S2AZfIABmT|9m{5oF(R zkbA%m+r(jI%_`Ypez7L*;Tri-F4}cef0Zd|Mn0QQV%SNqKMj6K8N54dWrum}cnk$% zOg?)P5A43NAEL{>{ghJf*d(c-y=q0x%ddl(ul{oMUcR!9Ha2LS9-Er)vX5{5oQ`zB z8CQ7r&iCK~#4}Skd`2KG&J~A93cdL?HB+ClTO&A&N`?7g1=sz!jyp7{f@knkQ09lS z>6cG2B?WcT06VDG=IrdJj1uDg5-iSw=Jhk)e6X*!o2b|Lod2@wEHzd1InKN_dT=;H z@--P8QgAkZUX%)EtRvj(Eb8>M<<6c?F_Z7>g2+kM&4#P2QcyU*UuAE2Y3E%oz7(}Q zZ!<4>xz6+w=1@O@3{NlLW-Vr%(max!?M;O9ePzr{U*&#^+4+9w1^q|7%3}?a{5>#z+uBuBX zY>9s~ao+%5dvj5!+999(<7V{TX}I|Y&rGt}dHH?cexn-|gH!O0vX7gGZ$aFumMA7~ z%~L+avm0wNVOU;F@#gtOPD48CHAm>iG7qM_ly28l`m(>i=nZ$4HQOh@`V^v3A{VHQqW#rITt4joLOTlBu%#PD} zM>|3KWhI@TEGJ?kpP_Ul!6_SEhQ9hv?wH`Ln1Rj|gdW@YbY?DZG>4HI``j0IdY>IO zcuP8rPzm#98c3{`6H0B}?V0B$uh;kK=(Sf!e#D%xC+uAewo2y*?7G ztcbiS;pp~}C38J$%k@#ea%TfFlT6+kN|F5U*8cj_47H;-C+;{+eV_bdGdpeOKFZQt zKMd}Iqdy6q{79`=T@GT}0Jwj}@aP<<3woTX8@yQse?UXvoFT#&!5XloHuBFBsD0u`{9e|NK*=3l0(WkHJBRmS?o1Hv=w-OB5t2pytH zMCt=IBE{9rH)P$HHVazaUyh6Op=R3ey5BA{ZF(`@!r01+wydy62_bKt2eN8(k1RmD zgtBbLL1OMwVlTp+AN8!FEu^D2q`cHveYz-}Y;g*eE_TlNI?kCyhSO=xt^>B@b3ZxU zq6C1JEeUK*|EB9>L3q)FGLR`h^bY+mZ&2IGR>8DrxM9YTEIL7;yl_%82m+4o*zZ_ ze#U0#XxadFyRnC7sm_vf(tM(&o~cX&P*+1m&B#2a2|t?T*4N3C4V6s}og#FCtv8f0J08d@Hjh&v zqv-D>eaUHb(UWWKEN<-b2(i#TLiXiWh8Mg1rbRR^m~c>g5x@_skpt4G#p>RO@;Mad zcKePq2X{8#e210SLVWpNj($nwbN2qSU*{<%BZlkhoy}<7VUH}8W*abQ+Y8pBsfTat z?OTs}lEb|xg~r_Iyy3glM^s0+PvNYj<7WRRk=2Ezbn_DD9mzg_%mv}uG-MB~;l+YSN^v3P$6t@=>N;+WLgPac`K zA2CQjh)eS5;8~@U&Mr*-m5g6wdUAO+-U1OfU`FuMq!{-Hpk_0w7Uy!ev@@b>!pUbn zxC4@@^u{gVhKJ$u>NUfa!TdZ6Xl6N+(f!uY=GL9i8{ycuEC&|1OVE(=@I@!^7_cMD zWP}uOeC*af((?ij6D-0qAG=|A|2x)x2wIVD*Ev?#WJouT$>mA?{rZ!*E@10NaM?Dd zNr`i;Xv|1<12C9yz>fzb!-Jj5pt@nE6GP+t81ND*)7r^w9->*ndW@ID-}8Q4k;)fx z(@ArM34zNEMqFa8E0=i9x{#iFz0=bPRR9~hJk_T|0<^v71%~}`0)3+@Nvg+li(@&YzXM1DLNE2KJjizjt z$nWpR+28~|cOstUMGS=k22D|E%|FVWr2t!~B7;dmEeZh#20BkOm?=H^M20cTPD>e#~vblAgQfZ;3YQ9}i7TPb{PvVv~FMmxg26-Y=)C zZcxOJ4w-!XC2naog1=8J-!^X*VyRy&^97YQZX4H~95etSgFfcP{7g>DHuhc#9Mp$Y z`)uO@WL8HoMYc;5nr+N@RN&oTVc(jP6moNEref3~+@@)iR8?0KdLtlzbRUT60Gt1? zr70#Kh}+kvlght}I}T%4d3^rQG?B7`!a$QX5}VOk3L|$FBSK$SM%YPNdzMPl8P8RV z;03H-(1lA7t3Px2$zC@YNkm$W%8?;uf>WB2R(VOhT_?jX?vD;gok$d#c@Wvrgr75a zm(vFRYVZJe)CO>Y6 zIlHhJp%!d8Ugd5b!*PdFL`G8`*@en@mU=YHX~0>IK-a!CjHor1A`_iS!Dd-A%M|Sc ze-_9x9m!#VTxnSl1ypRL6Bg1OmDc2u%_|JW_>wHDe9s2gd_mV0ii5v7hA;WHD_Ca* znJo%8%U(Pi=r#X1wGl(>#ddM?WU1gZCYsj%D06w|;_`81HomchoyINfJ71`r+vq~a zonx?mcJMBl?tWW?4jzG{<|+LV+=Y`BcP91362MY83C=iyt=g-wFLsIcI9U&m#?b^w z5(}y(KVJX9SUQgEuq#i$>NT0b@}5lv3*B;sUC#T`7Ta+FwgfvYdn2t5H{K9&LVABn za7eRogSOx{n3+pRiBy@_CX|A$uT7sqmT^6Y_no#aeDe?JS;E@M7956BDB|9|Pp|Qo zm&LKXuvTtex7d#+N81Z`(G#5sc7$?XY`v&7a~b#4b^|B(+`b6;nGT4BN7VN$Yk)B$ zV7FkUlbn)tj5eb!>`@0wQAsB1n{vl&Tdqmq^nyw{-?&Nnk4tYDU|=^z4MwB&S{Qi` zj@{V7*-;43ki|d9*BpiIf$MTW*+i_)sDsWF#%XLF$INI~WWv((7Nx>M zn}LL$CWm8F9K3H;nZ6Qi+3Z+IFIC3t6S!^QXayg8)pZN+H*&!Xr>aK?nWcc6(b6N$ z8Ae)=_^TC-PiDe!jEM`lgmyC^ad^9uIN)f=@X`c^Eve?HJ#A79uZl|b1215^4{TDr z5ueA5DU5oK1yZh@XdgAcbV-yI#uC{RFuiOI3SmeSPD+}1@I5*iWHNZM$JoytG?NOW zQW;{2Y&$Z@V-yDx5@vl)I|rj%6V{z5c9Or-lJ$!c)9*9(3p4MM=;Gw`Y*H#7dMK|J zk>^{sy~bynr`W!i#_ zcf8j5z7sU6f`aV;u~`9Pfa1wTImk*h|yFEXr&VIF0VsU0;@ELG$>KUip;2uxvC( z?r}iXkYYLFNZtbK{c)h86mCV)*>#HzVBsO8+9%EBqck2ey+fQg7wte}&)jy@$~c4s z!?ACL%fELJHgJ;8(JY)JPQ*2wj>VIX>c!YKLHl=NyC`c7#6@5(VN?}4(?jEHh}FSK8D$d_7E|`Z#-~Cb zucYTy`EQy2?@DLtuyR z5~}K|$inapx~DZy;UC{d?y9ZS`wCG93m={$fyeBPo;ZR-GPU_tdKL;C4l8e}yF?!~IXX6SA8>5_Xd-sd>>ZM4~5{vn^Z`Ysy#UNTm5;ArN< zfN$;6lF2b(QR5#Rjc!qIbeo!f}}mbfdJ-5N))@O;3EBB_t` z70D^mk#Z=HGXbb#DGA;~N?=pd0Lyth){2#nzM^SxNZ)+_Yf{R} z7JMC7SJLJrQcPyR00RfBhsDs-*hAlt_%ifvCTpc#BJMn#Rp9U8@a^%&KY%c*FmZ=o zH{AYRl`i|Py0_y9Do*2XEZ?^u0FZ3>q-tu7pnu;vHnD@=0 z)?rpQdYyQiUMD*Coqw;Fz7gjFAVldkM-BOXN1$&diM=dq24se%TWs7<6#b2Etaib- zq0ZBgL|$Xl<(Ca*C}7IBoz1-3R(zX6UHoLj^3^>)c`x+OxgwvG@k%)wPi3AyObb`n zM9G&gU+_%i(nFE*rfWv~W7&#s@TcDjNYHa#O z#^tJ&>_p))oUi}HXk{y)7Fa&M^5_J$*IayqkRLbsdB;`6>4o-;q}h&;k?VA`)maM0 zbc>bAL&Dk4)2z6e5Bng45w-YdC6k-z7M21e(noMYid9rpJZ(AG<$^Cb_8-8_lIiuG ze{ZN@4hBx3e?N_&rzQUleRfsaJ8shJmnTxcq566!q6KJwK4~{+ru{u_V<~!-QWPUH ziT{YXC@&{3@R)IteXJFJI&=^K&0M~5>((um$p&)VB%pm=NRo?dH+GY<^0K53JVHfA zej_I;@|%oKxVnO_L(6gVv0^XIfCqxwS0_;VHids^6#*Ar1RaOEOFgLPVm|*jA_Lm1 zsu;kg*NcE;*9xFnKHAvyZQ*5c4RzIYzTGOsQdWfi_hlBa0`~7KICaH7zF%KbSGD>3 zU7q0zpT1w0jcit=^!G{FLKeF?l(yuBd`w=tB$tcD^8T&eYnS;Vid<6Sl<1WCTd7Z* z>ACKb8e^C6XWhMOZf67*k&t;vp&YVEl_#a|Ld*MJczq6GTq5Q(gJgfj@Ur(5m+>Ia zK6i6+j(m$V{N!)muMw3nh4O7IvIm{$IM!x5`>FYK_Zh2;reC~Ixmo1q_qP8ym_56d z1pk^dWWMq~YFZf!J4MRM2EVHO77_ZSQqT2Lx9ie} zznw=cW>q&gp5v+7<%T}5xUhG~?N_x{ocye`S(5zibf}TFs+Q}BoqmQc;d!VNmn(Ba z5FLoZ$r*FS)qa9PBjekY5?6?>T~!+3#?~90>+E(6o)6ypU5j5oT(LNXjc1D+_S@a> z=A#vV+(E1XlDThkt=sfz#gl)({)g`OSPFoF%S1vM50r=6amIwWtisX!es-0&Yh{PJ zjD)#&P)ZD-{(S>fXg+H5H&9W@?&M$o2CMM@r}42C2TaQ)a%iHESw1)P3#xy7k=7~a zm@Lm|9Q#J&<*G9{&IevYnQSRBGV-*Smsd%Ny}G)(v|K(%nFK<1_vg>KHMO;KExP3w z0|Spgdh{rcoo4!qNGxqAb9Lp!c})1do?b^yKKzBhJCahHFoj7lUy{em#e%$m6E@-` zMn6W3Suo|wS#r#>48HN_%i?PdW!)EzyDn858yY@|A-*UsKG62@<3%{!<;6J%q)#Y- zM^#l7w+a|qT1srA(=P=C90Q(wX0hCSn7R4+J>%m+(&vK_rQMf8fK_lfoSPWt=XZ2E z#w#>5^is8FE)LgCr>ED{)EJwZ5^y+8SJ%QDH-4NJ2tpGReE?9o4F@9VJT#FzyEGcctnIF0ESjZaMSAT@8`AX0?Y&WdYbl(=LrmeEiDsR%+RRi0c#U0 zs~0q__>&tpY*=CE{nOUPirNWhHbE9EfQWn`@#{71v%n?=8P+Am#l=@>FHSTnDCD(R zS-H@&u5@?1+I1{1ljrB>SA-0Nzq7aI?hFA>e%rTig({nZCpHDJ=LKbDp{Gusym;x7 zy-X$p5Mj>F&Q^x=8XUJTl1QYpA#^ds%xt3MqcFxe?;3?3jG#ee# z>p0?v4|V{ArxmA9pUzmaL^n#b&boFZ^SRs*K%kmhT9*LWL?RL3^;sV#cfr*)1bC2= zlJdE~-vRbnH&3W0o}ce9oC&uVqX3oy`9f}Pt}{Rxo$koAmc*dJce_O1OC3ikJeY>L za^i9hSuM@xcEQrpQke*>InC$)T26A?!8Vt^^C@WmG&}oBSy}m2Z7m_F%41_dehNS^ zvBRm{@*chxVU=kNaJ8hw89asD7|B^mWR#Rlu8-#~&$re#4X`Z3sqw!RM{1mMbSxQ+ zAOy_bh7z{g9e_&6bz2SVtGmc^cZ1Qj{dFL@)w; zxmiK}acv^|a`>rJr;33YCT8i1Rv>BC*39&*!ljunj}02`b-}Fn^Aj*WRLSzVq-89A zG&&(?<|!iWDI-pnJ6TGW#A(<% z3WQaFAOTK1Ae5Fk13LIHeJ0_Ta$;YY77$3J4lCb%v&inB1;`xgl%TZ3-n>R7BWh`7>Fa67TwRN=Q7JOd1d54?NypMn z&1?LD&j5C`RKYDk-#+*CITf^@7(4OYqO7c}D0T-TAF$-<>1icPMpxI_$uGAANy0eG zFUF7zc4AzdXMB8o@!EZxh@CCX&DU4_5{ZPHaVHP9wAeSK&`p;{2APmcjU3Ls2Yeae zxd41Rjh--0^4$RI=)g9;r??_Z^?6bDEwz3MD+;Gap#l?rQDUuh90!NrU z`rO-lVk|PX)^bywODy0HZuH>+11U;y@6Z)c;~XfcD)$JgINcAgQWzWvA=kK5vnKiJ z@s#qcdF}Z@JzsW(V5pGu`?AJ|rld^NqEmmIy&x#Pppowt=lkGu@w#_7#h+v4@7}$8 zfbmW?69B1l73y?MOL%xV7jS!kWyQ&+Yv(%g%V*nyTp&x_(<{G?kNAg$hZo+yss7M= z7}=DjYsY^ky0bJq>{oJ98^F%qbLc0n+Ey_taB%yh-q)ilMSvqd@~ExrOm+&5BMdI< zlIqsa5jo5H~tFx0LWel~TNW5_^bN0KLBC%#q!vQ~<7&AfjUTn_4yqnIJTOM^pg5 z^D=vo$yND7o3JfL0I{;dslBpSf{{_y83MezYa(mpPO!NC6N)v>3*m4IpuNFJ~8}2AwNxx$`UA^m{8!_a zgWO=Wks%)D5P0J>)#N&FCncWFcqOUm~oq3oa%F>t{aIEIQ#tKM@@3& zu3c1HJ&|Q;6Kp8Vq?$x}QOioQNb_ZM)`(6YC|~dxN#F+Ov?^gU4Dro}jkH?DZza1S zZbLbl5C}VieMI{UJ3-9?5@5DyN(jL26-q@j`y)68k{!Z&t=5lq6rLs;y@hv3|FpNM zkW6+<${(FGF})nj9H{I63 z>l6hr58$8)13ABGm=@&i(=v*QqQ;`k67;oM6dKh}5J@%_nvc)yp>UM(cqq9xowblB zBz+L!TUBZIc%z2a3FZDeVas86aNC88Lr~|qbIK(|>||HvmR?2()7Ji4q`!A_v{AX> zo#nI{z))^?pscIw0TAntn41G}^njIgqQFP7!=AuFq4XmPtb#4ouVU6MClMk8&OtsU>I8Qi1bhI`Rvb z%QfD5*tdY^k|h3`BwSt?+_#CqJKWSPGo!N;MtHYEfRlydFGFN(Q2IiIN1P!HBnb~|bHS6|w6MA$=MKXwMB zY#%)}Jy@UXCF?H8YJDN3^`;1xD9(IayUV@EJ+ZlQI^UE^sP zg=X_L$}74Dq_+)kb4;b|iqe$+5~4V@672Pa1zbJyFqc$gzowUyJ9ZCJIj5vI!)%Kp|U zc74-UQQ^DvZG<%()0DQc8_+L{9n+z=Wx3G52n50$0NFjw=2(X1%uVb0%8Ww#fk%4)D0Q=Au-gEL9g zl4CwCD`%7kD);7G>>t^5n#rHlhC+W-&t!TOaIeLycvW8x=9l zEOaS0k(`;{z-kOi8f6`Y9!cOl{1u3v4M<-0@-$_swzv}(983r`aUAm7TU;8@>kp=@ z=ZVsj>(bQ6N8pzEt&-2e9eBL3Q3#waj`2V@+R{?d!MD{xq6!)(M6YTjtk}#z$K;%J zsClMU)*S3pY}kQ+7ksU0ghE`~ng+axWS%&cBi4k{F^=Uc<jR^*vJB@rkyqOdKTz5>| z)j!59LqOOHWjXtB1X21UOUn#v>9hRUk)IFg=}p|T)oN$S;xXmDeIto8((`tWrV&5U z-!(WC=l>!)^|1+^1Gp>Jq8VxOkHRGpWsG)c@QyF1r5xUCuxab^(SD_^C{nr+Jysx= z?dO<>%#!y-xfbS-zmC>@+ZEu#1fwAl|gcjvm^O{V_R*FO{2-*XZ&wxT>V$K1@*e9S$ z>JzPW&m8&rya%DiYMve*?dp+@Puki}Elt=$I`DD{9;iXB(j4zN#MRGiSARBGG3>D( z{bPI9KGU5Y zfxI>}B*YHG5iH`257G-PG;7Q@{5HgNKN?ej47pxZJNWtYO6>zANAuzga_eg)Mu_F9Rw_=S4TytYx68{d$6umZr4gi&jcjmcy{hW3$_@%6Jb_MmA*2 z1!glFJi;Czt`S8SrgBo1-t)J?%!i#mCOwQM-%Q(7nRg4fGil2#2NrX$^Qx#G>Wt$I zx^uRS&^uvYu8K2^iv6v{tqsuLJm7s!=@4Z0)3KHM9O&Y{U`b!F>{%+m*v`>`W<+Rc zX=wdpAgyWS7;4(v2i{=E0nQT0-vPqhTwQ^t!AV+_b%u^3dt*?DfZwC*zXp*Yw~y%&o0j+>1e; zsXCkxf)9<|3Q5{$#Y~7s)!4gw&@=JBDsHPA z`lYqfEZ`vZo*1RsG4`?v4<$BDfG<67IxbXwz@W}s&55YoZe~6ULvt%$&ShR5wW zi#~b9A&HCTU%(F`8FTd=Mt%Kr;0&HD$#gCl_T|s8a+o9!0-E7m z#-oMi>MYm6ti9Ss z`ik6Xdl_*HBMVT*KQq-^2HyXoju})Kz72iuUjGl?x>K0(+sM4ZG5aUFw@7psHLLCF zKMXwlMcrxe$(Lj^x7@*~U&_0)0x`d0AKmG7>+`7YpMLd%F_!FOS{D`>Nf1p$lc z3-577d0AP^kx^|84Mf{=DGy9aMZe0$-hfN#8Ql2oj6>YsW!G+1k3pWLFb=5sz(p1V zizH>C_*`k0+G21}kh4x%@T6IKaBy&EYK^5e(6Q;P$8qxb13M^WvVL*r{%wNeQ&I3- zGc&UjRU>(P%YSr%aFs@#p#7Co?`>g3(H@g#i4kSt9X3E)$K-4rl%qu1-*BZXZJN}g zL(72XSza1sYKjoP)OU{iIVzNsUX~dQ?eca_15(S+rbEQF;qmbnnlw-v?6;duJ8Zx5 z`TU~U$@rm&TA)H2JaV;1^CddB5AZ86bz32Luwjc8H1qKI8rD9>vj<>@{T52`XN#Y9 z6_1K!mPjAMOWIh9=s{=E)3RtZp!A{hg%)mkZvF|)>E_T35v55JoBL7Zn)Gph%;n}f zxHO~H&C$`Z$Sktj^8kkG@f%$Z^kZ=GKr3veWjPjf(iTR&-I?1YScv9a#`u#FadRRj z?l!QIa&NDbifs`GS5i6L!eI1%+J$6H-qwsZ#Dgj5wMu+ws-+GR8#IEi+_} z{Le4JrM&V?=SB3HTNZ9U(7E3?Ln-(JKvErI z6Ia@8kG$E}*LPMW+NaM?EDDNm;53mewgGw2`xq${O zwD+mM0TK)dKXS4o*iBBcKE0^yPuWV;NM(Fp2)h}s0s9n@kW33MRBRn% zj5dZhGq<h|JgjB(Mp^s6|7W=Wp z1m)OAjT++RLR4KWD*>OEGQv@I$!k+_doR4ajlyV-|567}OjQQ{M}*4BpLo#!`Ev)a zoKlvRwH-JKfGl-Fx>rg7r_7bU{@B=9nTH0Dau**~wf)%8ZlOQ8UH4+ynPxgfz_IxU z5Pv<$gO8Vdeon`otK7Ap&$d~Y(n*mO{^`6v-ZHz~)MO(qU>=;IZa34XFPTFV7mu?* zzn67clm!Gtm%{~sE%%*?$nyc}m7bn+>pOuDwL=re!!~f#VLA}`1?%Aj0xH!e&M^Ag zGpNa+Q$=HA-oX|issg#A9m}wG<(A#r+Ulcus;sWzO%f7WU3%~Hc6aTnZSz2&0_wbr zNlDg;!dhth;^C>pLDhDkj&x|$@WHUMN!!SdMT7T|Ox_X=CZ81+*2V+Uw|#H?`2K|ZLohD?cw5{IG`uQe7w{WGLGJv#7Tu_`m;T))te<<5?#6p+?H62svnMu)u!|=xbyd< z(-^i`s-qiWAATRjkrF#*bWqcg@{wk9&NL3pdS`Z9Q(%o(Ul=%ARa2AAN9PrOxmOY~ z@pZ#<(JS>79BtsMps&+V6WrEpbClqRA+Jn2>aEs+Zc2-!Gk{~C14@w*5tjf$kahKj zAH=Vft^mhaob9=51fJus zoYLN}+P3<{D^F(^XC>bH%{DcFKMmgVuFqe~?2FAN{Jv=1Tg~0%TK?i~&7Ug6ZlO)+ zHMf{MEWVC}U81=>SCRNq7g_-?3UqOrLI!2cuf`MD!CAJI#Hp{<)GON@O_vA9+>ZjEuC-KNdH-OK z4_kJ%^*q4{wOp?uGGxaX^7RCDsYr1Lym~h29u3HG(BL7Ky8xzh$%h#y9z@N34lOSR z`j%tEKEK6RZ-8JE6ZH%7QUNoAyhag`bxad{&Ri zP9PJCjSQlI5=?1l|G>c1rHv?@LC>{BXd({qmjMxBVNdH`@EUlUZv^LGoYOt>m&~eJ z@P_~U14NiAn!q!A3^Jh;b^64IwL1L(e>*#VbYGG(_03Jb`~E>FcF9paNjvA^Lpxlw z{-nr z`y(kYfMS#B8-EDdFgm@#+D#8M^Ky`ZcekMd$*1k2Ubbx^!#!k`uB{a3J6lrF+<@Z^ zCPD8ARTwxqWM~7S+pMm0E@9J1)>F#D9m=OPb<;g|+VTZjCt54^%bLWAW7;DY;|dBp z?#KV-LQji}Buk2bgn!NrGv_81LF6LiOWkQ#_<(oVz`gjesQ0IFn~QF{2VZwaXeVml zgYNM56F%FI(m+4djN~L2)NQ;kMjiiNOo3Uow|+G z(BwGz2^-6v(b~o2-%|QPEtOZ*v2u|hVp}Q)R)A-hmhrmo9xN{HJO=i(X~LN&Nm5~V zGo;bE_a6AZUfey6b;Yy%QVZk*9usEK31(K!PVgl2n`!Zx&MA*A(q<}%FZ;t{$Qg7H zv~pJ~Z0glCoA{PL4V0lSg?%!~aU@Wh9SO7GiuFeAgKJxyAHgGUq7|)KKxp~3#9C}-n#-Nv4 zHm;H>%C5=yrt1;4GLXFOR^(4&upVUb0iu8dsQJSXyU+| zRUlZq^!}U}wnIs0OjsSN;il5TNJi)4x8`*A3@M( zuSV~2;abP}3o&Rd+aYjxo#+iC3}nS&(>yZhx`yT5$i(Lwh`N!92zgsSct9VN_v_*! zLZcaO=8azKV%>EivRQmni;$g(7G?#ry`6g_Tfo>9xn%$YZ@6NhiAlDQWw$D@! zjahOXuQZa!+sD#P@igXMB%|)5=q4gzyCTboAa^%KCh90R-(>99Hi~hk+Dy6UH*Ab* z#E!h@>gcD8Ex@c1s$102qSY_N@R8K{lx9KaGaq4OP`cm!{G~jPxI>i^}nej$W|r7lQIu>4G=HYCruMl6+7p z=%%Kr(8_?^UtjR9-#k6fF@O-*sA3(Xv17b0ow);BJa4oIw81B4L2L9{!Bf8K)53u9 zYX*6!fJRzFl%6;tf}n&|l*}~;fN?S$7*fQx%qVcqy(KnPesy4w)q8+bkrB-Z=naqz zM~!Jt8&1*L`c)#!Gg7^xg4mNOhicU80%phC9<7|@9XWEOu)j8v5NG4-*nCvUQ1c!5 zIGwSbFzkMg3Y^J;{FmXX+gVw=DcE;M8-yfCHjK^?N;q-%@!ZNXPP}R>l5lU~WO|@? zxk=7K{x;SonU9;s>}Csn_Up~GG?9Jr(ldlI6qRs#7QVA66zf!}!wS)b!rt_60;8TY zXyQLG