Rückgabewert einer eigenen Funktion verwerten

Begonnen von thoweiss, 21 Juni 2013, 09:50:31

Vorheriges Thema - Nächstes Thema

thoweiss

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?


Dietmar63


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


alle 30 Sekunden ist vielleicht ein bißchen oft.
Gruß Dietmar
FB7390, CUL, 2 FHT, FS20
modules: 98_WOL.pm, 98_Heating_Control.pm,   98_WeekdayTimer.pm, 98_RandomTimer.pm, 59_Twilight.pm

thoweiss

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??



thoweiss

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