Hallo!
Ich stehe hier gerade ziemlich auf dem Schlauch. Ich möchte als Variable ein Reading eines Sensors setzen:
my $r1 = $value{"Sensor"};;\ --> funktioniert
my $r2 = $value{"Sensor:alarm"};;\ --> funktioniert leider nicht
Könnt ihr mir einen Tipp geben, wie ich das Reading "alarm" des Sensors "Sensor" in eine Variable bekomme?
Vielen Dank und Gruß
Phil
ReadingsVal('Sensor','alarm','');
$value ist veraltet und liefert wie Value(...) den STATE. ReadingsVal liefert jedes reading.
gruss
andre
Hallo!
Das sieht schonmal prima aus. Es scheint bei mir dann nur ein Problem mit den Dateitypen zu geben.
Hier ein Beispiel mit einem Dimmer:
2015.05.19 15:02:12 5: Cmd: >{
my $r1 = ${ReadingsVal('aLd_EG_Wohnzimmer_Sofa','dim','')};
system("/bin/echo $r1 > /opt/fhem/ownscript/tmp/wz.tmp");
}<
2015.05.19 15:02:12 3: nL_Wohnzimmer return value: Can't use string ("59") as a SCALAR ref while "strict refs" in use at (eval 61) line 2.
Hast Du dazu auch noch einen Tipp?
Vielen Dank und Grüße
Phil
[/code]
Hallo,
warum das "$" in ... = ${ReadingsVal ...
Grüße Jörg
PS. Was hast Du in der fhem.cfg stehen?
Hallo!
Ich dachte, das "$" muss an den Anfang.
Derzeit steht in der fhem.cfg:
define nL_Wohnzimmer notify aLd_EG_Wohnzimmer.*:dim:.* {\
my $r1 = ${ReadingsVal('aLd_EG_Wohnzimmer_Sofa','dim','')};;\
system("/bin/echo $r1 > /opt/fhem/ownscript/tmp/wz.tmp");;\
}
Wenn ich das "$" weglasse, funktioniert es leider auch nicht:
2015.05.19 15:35:54 3: eval: {
my $r1 = {ReadingsVal('aLd_EG_Wohnzimmer_Sofa','dim','')};
system("/bin/echo $r1 > /opt/fhem/ownscript/tmp/wz.tmp");
}
2015.05.19 15:35:54 3: nL_Wohnzimmer return value: -1
Gruß
Phil
Hallo!
Hab es hinbekommen.
Hier mein Ergebnis:
my $r1 = (ReadingsVal('aLd_EG_Wohnzimmer_Sofa','dim','')) ;;\
Gruß und danke!
Phil
Zitat von: Stril am 19 Mai 2015, 15:36:37
Hallo!
Ich dachte, das "$" muss an den Anfang.
Derzeit steht in der fhem.cfg:
define nL_Wohnzimmer notify aLd_EG_Wohnzimmer.*:dim:.* {\
my $r1 = ${ReadingsVal('aLd_EG_Wohnzimmer_Sofa','dim','')};;\
system("/bin/echo $r1 > /opt/fhem/ownscript/tmp/wz.tmp");;\
}
Wenn ich das "$" weglasse, funktioniert es leider auch nicht:
2015.05.19 15:35:54 3: eval: {
my $r1 = {ReadingsVal('aLd_EG_Wohnzimmer_Sofa','dim','')};
system("/bin/echo $r1 > /opt/fhem/ownscript/tmp/wz.tmp");
}
2015.05.19 15:35:54 3: nL_Wohnzimmer return value: -1
Gruß
Phil
Versuchs mal so:
define nL_Wohnzimmer notify aLd_EG_Wohnzimmer.*:dim:.* {\
my $r1 = ReadingsVal('aLd_EG_Wohnzimmer_Sofa','dim','');;\
system("/bin/echo $r1 > /opt/fhem/ownscript/tmp/wz.tmp")}