FHEM Forum

FHEM => Anfängerfragen => Thema gestartet von: thoweiss am 21 Juni 2013, 09:50:31

Titel: Rückgabewert einer eigenen Funktion verwerten
Beitrag von: thoweiss am 21 Juni 2013, 09:50:31
Hallo zusammen,

ich stelle mich anscheinend wieder zu blöd an.

Ich habe mir eine Funktion in meiner 99_myUtils.pm eingefügt, die mir den aktuellen Stromverbrauch aus meinem Volkszähler ausgibt.
Der Aufruf erfolgt so:
vzGetReading("e620fbc0-d2b1-11e2-b313-db02177402aa")

Wenn ich die Funktion {vzGetReading("e620fbc0-d2b1-11e2-b313-db02177402aa")} im Eingabefeld von FHEM eingebe, erhalte ich als Rückgabe den entsprechenden Zahlenwert.

Jetzt habe ich ein Dummy "du.power.strom.180" angelegt, dem ich den Wert als state zuweisen möchte.

Dazu habe ich ein at angelegt mit folgendem DEF:
+*00:00:30 set du.power.strom.180 vzGetReading('e620fbc0-d2b1-11e2-b313-db02177402aa')

Damit erhalte ich als state aber:
vzGetReading('e620fbc0-d2b1-11e2-b313-db02177402aa')

Ich habe es auch schon so versucht:
+*00:00:30 set du.power.strom.180 {vzGetReading('e620fbc0-d2b1-11e2-b313-db02177402aa')}

und so:
+*00:00:30 {
my $temp = vzGetReading('e620fbc0-d2b1-11e2-b313-db02177402aa');
set du.power.strom.180 $temp;


geht auch nicht....


Wie kann ich den Rückgabewert einer Funktion einem Device als State zuweisen?

Titel: Aw: Rückgabewert einer eigenen Funktion verwerten
Beitrag von: Dietmar63 am 21 Juni 2013, 13:06:20

+*00:00:30 { fhem ("set du.power.strom.180" . vzGetReading('e620fbc0-d2b1-11e2-b313-db02177402aa')) }


alle 30 Sekunden ist vielleicht ein bißchen oft.
Titel: Aw: Rückgabewert einer eigenen Funktion verwerten
Beitrag von: thoweiss am 23 Juni 2013, 19:29:43
Danke für die Hilfe.

Nach einer kleinen modifikation fu.ktioniert es jetzt:

+*00:00:30 { fhem ("set du.power.strom.180" . " " . vzGetReading('e620fbc0-d2b1-11e2-b313-db02177402aa')) }


Ich musste in die Verkettung noch ein Leerzeichen einbauen...

Geht das nicht auch ohne Verkettung mit den Punkt??


Titel: Aw: Rückgabewert einer eigenen Funktion verwerten
Beitrag von: thoweiss am 25 Juni 2013, 18:24:05
Ich Depp...

Da fehlte noch ein Leerzeichen vor dem hinteren Anführungszeichen bei fhem ("set du.power.strom.180"

dann gehts auch ohne zusätzliche Verkettung.


gruß,

Thorsten