FHEM Forum

FHEM => Anfängerfragen => Thema gestartet von: tmuecksch am 04 November 2016, 13:22:49

Titel: Nur float-Zahl aus $EVENT extrahieren
Beitrag von: tmuecksch am 04 November 2016, 13:22:49
Liebe Community,

die folgende Frage bezieht sich implizit auf das Devolo Wandthermostat.

Ich möchte mittels notify auf das event "setpointTemp" horchen und den Wert des Events dann als desired Wert in einem Threshold setzen.

Dazu habe ich mir folgendes notify gebastelt:


define testNotify notify ZWave_Devolo_Thermostat:setpointTemp set Heizung_Threshold desired $EVENT


Das Problem:
man darf für desired nur einen Zahlenwert (bspw. 20.5) setzen. Leider liefert das Event allerdings den folgenden String: "20.5 heating". So wie ich das sehe übernimmt THRESHOLD das nicht automatisch...

Also lautet die Frage; wie kann ich alles hinter .5 entfernen?
Titel: Antw:Nur float-Zahl aus $EVENT extrahieren
Beitrag von: tmuecksch am 04 November 2016, 13:45:10
Hab es jetzt wie folgt probiert:


define testNotify notify ZWave_Devolo_Thermostat:.*setpointTemp.* set Heizung_Threshold desired ReadingsNum("ZWave_Devolo_Thermostat", "setpointTemp", 17.5)


Allerdings gibt es jetzt diesen Fehler im Logfile:

2016.11.04 13:40:43 3: testNotify return value: Heizung_Threshold: set desired value:ReadingsNum("ZWave_Devolo_Thermostat",, desired value needs a numeric parameter
Titel: Antw:Nur float-Zahl aus $EVENT extrahieren
Beitrag von: marvin78 am 04 November 2016, 13:48:20
ReadingsNum ist eine Perl Funktion.

define testNotify notify ZWave_Devolo_Thermostat:.*setpointTemp.* {fhem("set Heizung_Threshold desired ".ReadingsNum('ZWave_Devolo_Thermostat', 'setpointTemp', 17.5))}
Sowas könnte gehen.

Bitte die Grundlagen lernen.
Titel: Antw:Nur float-Zahl aus $EVENT extrahieren
Beitrag von: tmuecksch am 04 November 2016, 13:58:35
Funktioniert perfekt. Hab nicht gecheckt, dass das eine Perl Funktion ist. Hab mich schon gewundert, dass es nicht in der Referenz zu finden ist...

Danke Marvin!
Titel: Antw:Nur float-Zahl aus $EVENT extrahieren
Beitrag von: marvin78 am 04 November 2016, 13:59:51
Es ist in der commandref zu finden. Unter Perl Specials.
Titel: Antw:Nur float-Zahl aus $EVENT extrahieren
Beitrag von: tmuecksch am 04 November 2016, 14:04:35
Danke für den Hinweis! Das schaue ich mir noch mal an!
Titel: Antw:Nur float-Zahl aus $EVENT extrahieren
Beitrag von: krikan am 04 November 2016, 14:20:46
Dann schau Dir bitte vielleicht auch noch in http://fhem.de/commandref.html#notify das Thema "$EVTPARTx" an, ob das nicht auch eine Lösungsmöglichkeit ist. Bspw. $EVENT durch $EVTPART1 im Ausgangspost ersetzen und schauen was passiert.

Gruß, Christian
Titel: Antw:Nur float-Zahl aus $EVENT extrahieren
Beitrag von: tmuecksch am 04 November 2016, 17:34:04
krikan, danke für den Hinweis. Auch das werde ich noch mal ausprobieren :)