Hauptmenü

Mit Readings rechnen

Begonnen von Hi2Helmi, 24 März 2017, 21:33:56

Vorheriges Thema - Nächstes Thema

Hi2Helmi

Hallo,
ich habe von Homematic die schaltbare Steckdose mit Leistungsmessung. Jetzt würde ich gerne den Verbrauch jeden Tag um Mitternacht auf Null setzen und das Reading energyOffset benutzen. Sprich ich würde gerne den Wert vom Reading ernergy als Negativwert in den energyOffset schreiben.
Irgendwie verstehe ich das mit dem Rechnen nicht und finde auch keine Anleitung, oder Erklärung, die ich verstehe.
MfG
Florian

klaso

Hi,
Hast du diesen Beitrag schon gelesen?
Vielleicht wäre dies eine einfachere Alternative
https://forum.fhem.de/index.php/topic,69097.0.html
VG
Klaso
Raspberry Pi 2 B+; Software: Raspbian Jessie, Fhem 5.8
ZWave, Enocean, FBAHAHTTP, ENIGMA2
Barebone mit openmedivault und Fhem5.8, MySQL, MyObis, VBUS LAN-Adapter in Fhem, Homematic CCU2; Jeelink mit TX29IT, HMCCU: Schnittstelle CCU2 - FHEM

Hi2Helmi

Hi, finde ich Interessant, doch mein Frage ist damit nicht beantwortet.
MfG
Florian

klaso

Sorry, ich habe es so verstanden, dass du letzten Endes den Tagesverbrauch möchtest.....sorry
VG
Klaso
Raspberry Pi 2 B+; Software: Raspbian Jessie, Fhem 5.8
ZWave, Enocean, FBAHAHTTP, ENIGMA2
Barebone mit openmedivault und Fhem5.8, MySQL, MyObis, VBUS LAN-Adapter in Fhem, Homematic CCU2; Jeelink mit TX29IT, HMCCU: Schnittstelle CCU2 - FHEM

Puschel74

#4
ZitatIrgendwie verstehe ich das mit dem Rechnen nicht und finde auch keine Anleitung, oder Erklärung, die ich verstehe.
Hm, das ist jetzt aber nicht unbedingt Mathe der höheren Stufe - sowas haben wir in der Hauptschule gelernt.

Einen positiven Wert negativ machen kannst du indem du
a) den Wert * -1 rechnest oder
b) den Wert von 0 (Null) abziehst.

Aber um dir auch beim Code etwas zu helfen hier noch etwas ausführlicher.
Einfacher wäre das ganze wenn du ein list des Devices gezeigt hättest (was das ist beantwortet dir sicher die SuFu).

Ich würde:
Zitatden Verbrauch jeden Tag um Mitternacht auf Null setzen
Ein at erstellen das jeden Tag um 00:00 Uhr ausgeführt wird.
define <beliebiger_einmaliger_Name> at *00:00 {}
innerhalb der {}
musst du dann das Reading auslesen mit:
my $wert_energy=ReadingsVal("<Name_des_Aktors>","energy",0);
Nun das ganze Negativ machen:
Variante a:
my $wert_energy_negativ = $wert_energy*-1;
Variante b:
my $wert_energy_negativ = 0-$wert_energy;
Und nun das ganze noch in das Reading energyOffset schreiben:
fhem("setreading <Name_des_Aktors> energyOffset $wert_energy_negativ");

Ich habe den Code nur aus dem Kopf erstellt und weder durch eine Syntaxprüfung noch durch eine Funktionsprüfung laufen lassen.
Ob das ganze so klappt musst du versuchen, Namen bitte anpassen, Fehlermeldungen aus dem Logfile lesen und beheben und wenn du nicht weiter kommst mit diesen Meldungen hier nochmal nachfragen.

Edith: Wolltest du einen ganzen, funktionierenden Code für die fhem.cfg bin ich leider der falsche Ansprechpartner.
Ich habe es gerne wenn die Fragesteller selbst auch aktiv werden und mitdenken und Codes für die fhem.cfg (was ist das ??? ) gibt es bei mir nicht da ich alles über das Frontend mache.
Zotac BI323 als Server mit DBLog
CUNO für FHT80B, 3 HM-Lan per vCCU, RasPi mit CUL433 für Somfy-Rollo (F2F), RasPi mit I2C(LM75) (F2F), RasPi für Panstamp+Vegetronix +SONOS(F2F)
Ich beantworte keine Supportanfragen per PM! Bitte im Forum suchen oder einen Beitrag erstellen.

Hi2Helmi

Vielen Dank Puschel74,
mir ging es mehr darum zu verstehen, wie man das in fhem schreibt, bzw. umsetzt.
Das Rechnen selber kann ich natürlich, dein kleiner Kurs war genau das was ich gesucht habe.

Doch es hat nicht sofort geklappt, denn die Zeile mit fhem("setreading <Name_des_Aktors> energyOffset $wert_energy_negativ");
muss nochmals in geschweiften Klammern:{fhem("setreading <Name_des_Aktors> energyOffset $wert_energy_negativ")};
Aber jetzt funktioniert es so wie ich es mir gedacht habe.
MfG
Florian