Wenn dies dein erster Besuch hier ist, lies bitte zuerst die Hilfe - Häufig gestellte Fragen durch. Du musst dich vermutlich registrieren, bevor du Beiträge verfassen kannst. Klicke oben auf 'Registrieren', um den Registrierungsprozess zu starten. Du kannst auch jetzt schon Beiträge lesen. Suche dir einfach das Forum aus, das dich am meisten interessiert.
bei mir sieht das so aus zB. ich schreibe alle 10s glaube ich in die datenbank
Die hab in Erinnerung, das die Datenbank sich selbst optimiert, doppelte folgende Einträge werden nicht gespeichert etc..
Danke
Dann werde ich mal versuchen das auf sml_obis: und sml_prop: umzuschreiben male sehen ob das klappt.
Danke, den Beitrag kenne ich... die > 500 Zeilen Code verstehe ich aber überhaupt nicht.
musst auch nicht zwingend verstehen. du könntest die yaml als struct ins etc Verzeichnis speichern und dann mittels struct: wertehistorie oder was auch immer integrieren. Der Rest läuft quasi automatisch. Aber klar, wenn dir die gebotenen Funktionen nicht reichen, müsstest du selbst Hand anlegen.
1. 4 mal am tag was in die Db
2. bei mir sieht das so aus zB. ich schreibe alle 10s glaube ich in die datenbank
1. irgendwie habe ich das Gefühl wir Schreiben aneinander vorbei (soll nicht heißen das es an Dir liegt)
2. du zeigst hier eine Leistung an - da ist "echtzeit" natürlich interessant.
zu. 1:
Möchte ich ein Beispiel anfügen.
Der RasPi ist ein 1-€uro-Jober der zu den (von mir) festgelegten Zeiten in den Keller marschiert, auf den Zähler kuckt und den abgelesenen Wert in eine Tabelle einträgt.
Da der Wert natürlich immer ansteigt kann der Verbrauch pro Zeitspanne errechnet werden.
Warum das zu festegelegten Zeiten keinen Sinn macht verstehe ich wirklich nicht...
Ja genau, wollte damit nur sagen schreib die daten "echtzeit" in die db und mach die gewünschten anzeigen mit der auswertung, daten die man hat kann man auswerten , welche die nicht gespeichert werden, kann man auch ned auswerten
Bei obigem beispiel könnte ich auch einfach sagen , zeig mir die daten der letzten stunde, der letzten 4wochen usw.
Ich könnte aber auch sagen gib dir die daten zw 0 und 4 uhr , oder gib mir den wert um genau 2.35uhr...
Bei nem zählerstand macht das anzeigen einer Zeitspanne keinen sinn da er ja eh nur linear ansteigt..
Ich glaube du könntest in unseren gitter chat kommen , vl kann man dir da besser helfen .
bei mir siehts z.B: so aus ich schreibe die daten komplett und mache mir dann jeweils eine auswertung...
Deinen Code hab ich mal eingespielt --> die Auswertungen funktionieren nicht. Muss ich mir morgen am Rechner mal ansehen. Ich denke aber nicht das es daran liegt, dass ich das fehlende "kg" durch "test" und z.B hier ebenfalls erstetzt habe. eval_trigger: (kg)test.strom.zaehlertotal...
der Zählerstand wird fleißig gelesen, aber es werden keine Berechnungen ausgeführt.
O.T.
name: Zaehlerstand # wird der Name irgendwo genutzt oder ist das nur etwas ähnliches einem Kommentar?
visu: yes # - ist das notwendig - habe ich (wenn ich mich recht erinnere) in keinem ITEM verwendet
visu_acl: rw # - die Visu darf den Wert aktualisieren "read" und "write" richtig?
Naja kg.strom.zaehlertotal is mein item, welches fortlaufend den zaehlerstand erhält..
Du müsstest mal über das admin interface guckn, ob du auch wirklich ein item date.sibce.. hast
Poste hier am besten mal deine items des zaehlers..
Genau diese sind systemitems, nur nutze ich eine nicht ganz aktuelle version, und falls du die neuste version nutzt, dann heissen die bei dir glaube ich env.date...
ich habe eine Logik aus dem Blog/Doku eingeladen --> daraufhin haben die "Gester" und "Heute" Items einen Wert erhalten. Mal sehen ob sich diese Morgen/Übermorgen verändern.
ja "env...." gibt es auf jeden Fall --> werde ich morgen mal darauf umschreiben.
Schon mal Vielen Dank
Hi,
Hab danach gesucht. Bin mir ziemlich sicher, dass es das so als Systembestandteil nie gab. Da gab es doch mal diese Logic hier im Forum, welche diese Zeit-Items befüllt hat.
Systemseitig bietet sich hier shtime() an. Beispiel:
Code:
# in kwh
heute:
type: num
database: true
eval: round(float(sh.kg.strom.verbrauch.gesamt()) - sh.kg.strom.verbrauch.gesamt.db('max', '1d', str(shtime.time_since(shtime.today(), 'im')) + 'i'))
eval_trigger: kg.strom.zaehlertotal
Runden ?Fließkommazahl? "Aktueller Wert des Item" - "vorheriger Wert des selben Items aus der Datenbank(?max = möglichst alt? aber maximal 24 Stunden alt"
??? passt da so in etwa?
-> Aktueller Wert des Item als float. Update: Float ist hier vermutlich nur notwendig, wenn der Eingangswert nicht als float vorliegt. Ansonsten schadet es aber auch nicht. Wenn man dies als Blaupause nutzen möchte läßt man's einfach drin.
-> vorheriger Wert des selben Items aus der Datenbank.
-> max = größter Wert
-> in der Zeit zwischen: den letzten 24h und Mitternacht. Beide Werte werden als String erwartet.
-> Das 'i' steht für Minuten (siehe Doku).
Wobei die Minuten seit Mitternacht folgendermaßen berechnet werden:
Code:
shtime.time_since(shtime.today(), 'im')
-> shtime.time_since -> Zeit seit einem bestimmten Zeitpunkt
-> shtime.today() -> Der Zeitpunkt ist der heutige Tag un da keine Uhrzeit angegeben wird, wird 0:00 Uhr angenommen.
-> 'im' -> gebe die Zeispanne in Minuten als Integer zurück.
Wir verarbeiten personenbezogene Daten über die Nutzer unserer Website mithilfe von Cookies und anderen Technologien, um unsere Dienste bereitzustellen. Weitere Informationen findest Du in unserer Datenschutzerklärung.
Indem Du unten auf "ICH stimme zu" klickst, stimmst Du unserer Datenschutzerklärung und unseren persönlichen Datenverarbeitungs- und Cookie-Praktiken zu, wie darin beschrieben. Du erkennst außerdem an, dass dieses Forum möglicherweise außerhalb Deines Landes gehostet wird und bist damit einverstanden, dass Deine Daten in dem Land, in dem dieses Forum gehostet wird, gesammelt, gespeichert und verarbeitet werden.
Kommentar