Hallo
Mein Ziel: "Ich möchte eine Anzeige meines Pelletvorrates habe"
Irgendwie sehe ich aber vor lauter Code die Lösung nicht mehr.
Mittels dem Modul "HourCounter" habe ich mir ein userReadings "Tagesverbrauch in kg" gebaut. Zusätzlich habe ich ein Dummy angelegt "Pelletlager", in dem ich nun die Berechnungen anstellen möchte: vor dem zurücksetzten der Tageswerte im HourCounter (Tagesverbrauch), soll der Wert am Vorrat abgezogen werden.
List Pelletlager:
Internals:
CFGFN
FUUID 5e3ed1b0-f33f-fbd2-e140-1dad4d6ea14cb579
NAME Pelletlager
NR 12513
STATE ???
TYPE dummy
Helper:
DBLOG:
Lieferung:
DBLogging:
TIME 1581178423.9503
VALUE 2000
Vorrat:
DBLogging:
TIME 1581176539.29118
VALUE 2000
READINGS:
2020-02-08 17:13:43 Lieferung 2000
2020-02-08 16:42:19 Vorrat 2000
Attributes:
readingList Vorrat Lieferung
room 90_Heizung
Ab da stehe ich etwas im abseits, ich brauche da etwas nachhilfe.
Vielen Dank
Andi
Edit: (So stelle ich mir das vor)
23:58 -> Pelletlager:Vorrat - HZG_Betriebszeit:Tagesverbrauch = Pelletlager:Vorrat
nur wie setze ich das nun in einem "at" um?
Hi Andi
sowas ähnliches habe ich mir für die Berechnung meines Heizölverbrauchs gebastelt.
Hoffe ich kann dir damit etwas helfen.
Mein define sieht wie folgt aus
define heizoelverbrauch_diffberechnen at *23:55:00 {my $d1=ReadingsVal("ecometer","morgenstand",0);;my $d2=ReadingsVal("ecometer","abendstand",0);;my $d3=$d2-$d1;;fhem ("setreading ecometer tagesdifferenz $d3");;}
Funktioniert wie folgt:
ich definiere Werte mit denen ich dann berechnen kann, also $d1 ist zum Beispiel der morgendliche Stand meines Heizöltanks und $d2 der Abendstand. Die Differenz kann ich dann berechnen, dass ist dann $d3 und das kann ich wiederrum zurückschreiben.
Bei dir wäre es dann
$d1 wäre der alte Vorrat
$d2 der Tagesverbrauch
neuer Vorrat $d3 wäre dann $d1 minus $d2
Bekommst du das mit den Infos dann selbst zusammengeschrieben?
Grüße
Panger
Hallo Panger
Danke für die Antwort, leider geht da irgendwas noch nicht so ganz:
*23:55:00 {my $d1=ReadingsVal("Pelletlager","Vorrat",0);my $d2=ReadingsVal("HZG_Betriebszeit","Tagesverbrauch",0);my $d3=$d1-$d2;fhem ("setreading Pelletlager neuerVorrat $d3");}
Bei der erstmaligen Ausführung macht er die Berechnung richtig, bei der 2. Ausführungen wird plötzlich der ganze Vorrat negativ, d.h. die Variable "neuerVorrat" wird plötzlich als "-2000" kg angezeigt. Ich gehe davon aus, dass der Fehler nicht beim fhem sondern bei meiner "Logik" oder "Verständis" zu suchen sein wird.
Ich bleibe dran
Danke
Edit:
Bin ich doof, als ich beim Tagesverbrauch die "kg" entfernt habe, hat es plötzlich funktioniert und rechnet jetzt auch richtig ab.
Vielen Dank für die Hilfe
Andi
Du liest Vorrat ein und schreibst neuerVorat zurück.
Vorrat hat also bei der zweiten Ausführung den alten Stand.
Gesendet von meinem Doogee S60 mit Tapatalk
Nochmals vielen Dank
Jetzt kann ich den aktuellen Pelletvorrat auch auf meinem "Heizungs-Floorplan" anzeigen lassen und alles ist so wie gewünscht. Ich hoffe nun das es um Mitternacht auch ausgeführt wird.
Ich melde mich morgen nochmals.
Trotz der vielen Einträge hier im Forum und auch via das Wicki hätte ich das nie hin gekriegt, weil ich das mit den "$Sx"-Variablen einfach nicht begriffen habe.
Vielen Dank und allen noch einen schönen Abend
Andi
Zitat von: Haus-Andi am 09 Februar 2020, 17:51:15
Bin ich doof, als ich beim Tagesverbrauch die "kg" entfernt habe, hat es plötzlich funktioniert und rechnet jetzt auch richtig ab.
genau aus dem Grund ziehe ich immer ReadingsNum dem so beliebtem ReadingsVal vor :)
und bedenke : Vorrat != neuerVorrat
Hi
freut mich sehr dass ich als "Neuling" was produktives beisteuern konnte.
Ich weiß noch wie lange ich für die Lösung gesucht habe um meinen Heizölverbrauch zu berechnen...
Im Kopf ist das einfach auszurechnen und man weiß auch direkt was man berechnen muss, aber das dann umzusetzen ist teilweise etwas herausfordernd ;-)
Grüße
Panger
Hallo zusammen
Nochmals ein kurzes Statment zum ganzen: es funktioniert jetzt einwandfrei, anscheinend hat die "kg" Angabe wirklich die ganze Mathematik durcheinander gewirbelt.
Vielen Dank für die Hilfestellung.
Zitat von: Panger1337 am 11 Februar 2020, 09:16:59
.....
Im Kopf ist das einfach auszurechnen und man weiß auch direkt was man berechnen muss, aber das dann umzusetzen ist teilweise etwas herausfordernd ;-)
....
Das ist genau das Thema, ich weiss gar nicht mehr wie lange ich versucht habe diese Infos zu suchen und vorallem dann auch noch zu begreifen was ich machen muss. Da ich Handwerker bin und nicht IT-Spezialist fällt mir das verstehen da manchmal etwas gar schwer. Wenn man es mal gesehen wie es mit dem "zuweisen" zu den Variablen geht, ist es kein grosses Thema mehr.
Nochmals vielen Dank
Andi