Sempervivum
Erfahrenes Mitglied
Ich habe noch ein PS geschickt, sieh dir das noch an.
Folge dem Video um zu sehen, wie unsere Website als Web-App auf dem Startbildschirm installiert werden kann.
Anmerkung: Diese Funktion ist in einigen Browsern möglicherweise nicht verfügbar.
Möchtest Du auch die Frage haben?Wie wäre es denn mal mit Fehler selber suchen? Aber Sempervivum kann es ja nicht lassen und schreibt fertige Scripte
Nein, kann ich nicht, brauche ich aber auch nicht. Aber wenn würde ich jemanden suchen, den ich für seine Arbeit bezahleKannst Du mir sagen wie eine Kontroll Wechsel Schaltung funktioniert?
Das Bedeutet also, wenn du jemanden hir hilft, das er dafür bezahlen muss?Nein, kann ich nicht, brauche ich aber auch nicht. Aber wenn würde ich jemanden suchen, den ich für seine Arbeit bezahle
import sys
import os
import time
import datetime
from csv import reader
import json
try:
# Intervall in Sekunden für das Prüfen der CSV-Datei:
intvPoll = 10
# Anzahl von Datensätzen, die aus der
# CSV-Datei übernommern werden sollen:
nrData = 10
# Intervall in Sekunden, in dem die CSS-Datei
# aktualisiert wird:
intvCsv = 600 # 10 Minuten
# Parameter in der CSV-Datei
# Schlüssel: Frei wählbarer Name
# Wert: Der Index in der CSV-Zeile
confParams = {
'AIN': 0,
'Spannung': 1,
'Leistung': 2,
'Zaehlerstand': 3,
'Temperatur': 4,
'Zeit': 5
# Datum gelöscht
}
# AIN der Steckdose, die gelesen werden soll:
ainToRead = '116300197353' # AIN geändert
# Dateiname der CSV-Datei:
filenameInCsv = 'DectRead_test.csv'
filenameOutJson = 'dect-read.json'
# Ab hier braucht nichts mehr geändert zu werden
# Zeitraum, innerhalb dessen Daten übernommen werden sollen
# bzw. maximales Alter der Daten:
maxAge = nrData * intvCsv
# Verzeichnis dieser Skriptdatei ermitteln:
dir = os.path.dirname(os.path.realpath(__file__))
# Wir gehen davon aus,
# dass Skript und CSV-Datei im selben Verzeichnis liegen:
pathIn = dir + '\\' + filenameInCsv
pathOut = dir + '\\' + filenameOutJson
# Merker für Zeitstempel:
tim = 0
# Endlosschleife:
while True:
# Zeit der letzten Änderung der CSV-Datei ermitteln:
mtime = os.path.getmtime(pathIn)
# Hat sich die Zeit geändert?
if(mtime > tim):
# Neue Zeit merken:
tim = mtime
now = datetime.datetime.now()
# CSV-Datei öffnen:
with open(pathIn, 'r') as fileIn:
output = []
# pass the file object to reader() to get the reader object
csv_reader = reader(fileIn)
# Iterate over each row in the csv using reader object
for row in csv_reader:
# row variable is a list that represents a row in csv
# print(row)
# Zeit für die aktuelle Zeile ermitteln:
timeRow = datetime.datetime.strptime(
row[confParams['Zeit']], "%Y-%m-%d %H:%M:%S")
# Datum heraus genommen, Datum und Uhrzeit sind durch
# Leerzeichen getrennt
# Alter der Daten ermittteln durch Subtrahieren der Zeit der Zeile
# von der Jetzt-Zeit:
ageRow = (now - timeRow).total_seconds()
# Ist das Alter der Zeile kleiner als das konfigurierte maximale?
if ageRow < maxAge:
# Gilt die Zeile für die Steckdose, die übertragen werden soll?
if row[confParams['AIN']] == ainToRead:
# Alle Parameter zum Ausgabe-Array hinzu fügen:
params = {}
for key in confParams:
params[key] = row[confParams[key]]
output.append(params)
# Ausgabe-Array in JSON kodieren:
with open(pathOut, 'w') as fileOut:
fileOut.write(json.dumps(output))
# Konfigurierte Zeit warten:
time.sleep(intvPoll)
except:
print("Error at line", sys.exc_info()[2].tb_lineno, sys.exc_info())
# Zum testen, damit wir die Fehleranzeigen zu Gesicht bekommen:
input()
mein letztes Post dazuAber was die Hilfe angeht, gibt es Ausnahmen wie Sempervivum, die den Sinn von Foren extrem ausweiten. Ob das wirklich richtig ist, bezweifele ich allerdings.