FHEM Forum

FHEM => Anfängerfragen => Thema gestartet von: elbmarschsurfer am 09 Februar 2021, 10:46:22

Titel: Syntax OldReadings : gelöst
Beitrag von: elbmarschsurfer am 09 Februar 2021, 10:46:22
Moin erstmal,

Ich hoffe ihr könnt mir ganz unbürokratisch und ohne Häme helfen.
Wie bekomme ich meine Heizung auf den alten Wert aus "OLDREADING: desiredTemperature x.xx" wieder auf den aktuellen Wert gesetzt?

set MAX_137fc8 desiredTemperature [OldReadingsVal ("MAX_137fc8","desiredTemperature","0")]

...ist leider die falsche Syntax. Der Fehler:

PERL WARNING: Argument "[OldReadingsVal("MAX_137fc8","desiredTemperature","0")]" isn't numeric in multiplication (*) at ./FHEM/10_MAX.pm line 737.

wird mir im Log angezeigt. Ich habe leider keine Beispiele zum Aufruf der alten Readings als Variable gefunden.





Titel: Antw:Syntax OldReading
Beitrag von: TomLee am 09 Februar 2021, 12:15:11
unbürokratisch und ohne Häme, meine Vermutung :

set MAX_137fc8 desiredTemperature {(OldReadingsNum("MAX_137fc8","desiredTemperature","0"))}

Gruß

Thomas
Titel: Antw:Syntax OldReading
Beitrag von: elbmarschsurfer am 09 Februar 2021, 12:21:35
Danke Thomas,

genauso ist es. So akzeptiert Fhem die Syntax. Hast du noch kurz Zeit, mir den
Unterschied zwischen {()} und []  und den
Unterschied zwischen Num und Val in Fhem zu erklären?
Aber nur, wenn es Dich nicht nervt, weil es bestimmt Grundlagen der Programmierung sind...
Titel: Antw:Syntax OldReading
Beitrag von: TomLee am 09 Februar 2021, 12:37:58
ZitatUnterschied zwischen {()} und []

{()} besser es erklärt wer anders, da find ich nicht die richtigen Worte zu, auf jedenfall wird ohne die () der Text {OldReadingsNum ("du_Testy2","temperature","0")}
verwendet und nicht der Wert aus OldReadingsNum.

[] ist die Syntax von Set_magic (https://wiki.fhem.de/wiki/Set_magic) oder DOIF (mein ich), einfach mal einlesen.



Es wär also bei dem Reading desiredTemperature egal ob du ReadingsNum oder ReadingsVal verwendest (soweit ich das gelesen habe, hab keine Max-Thermostate), korrekter ist auf jedenfall ReadingsNum.
Titel: Antw:Syntax OldReading
Beitrag von: elbmarschsurfer am 09 Februar 2021, 13:22:31
Perfekt. Danke. Das hilft mir sehr, die Definitionen besser zu verstehen. MAX!-Thermostate liefern eine Kommastelle mit, wobei es bei der Temperatureinstellung in diesem Fall natürlich nicht auf diese ankommt. Somit reicht Num ohne <round> völlig aus.
Jedenfalls kann ich meine OldReadings jetzt in DOIF verwenden und bin wieder ein Stück weiter gekommen in Fhem.

Vielen Dank nochmal! :)
Titel: Antw:Syntax OldReading
Beitrag von: Wzut am 09 Februar 2021, 17:10:47
Zitat von: elbmarschsurfer am 09 Februar 2021, 13:22:31
MAX!-Thermostate liefern eine Kommastelle mit, wobei es bei der Temperatureinstellung in diesem Fall natürlich nicht auf diese ankommt.
doch kommt es. Die MAX HTs & WTs akzeptieren Soll Temperaturen nur in 0,5 Grad Schritten !
Kannst also ruhig auf das nächste halbe auf oder abrunden.