Ich habe ziemlich viel herumgesucht und gespielt aber keine Lösung gefunden.
Problemstellung:
Der Wert eines dummy-Gerätes soll in eine lokale Variable geschrieben werden.
Die der Inhalt der Variablen wird geändert zB. $Var += 1 und anschliessend zurück geschrieben werden.
Ich scheitere aber schon bei dem schreiben der Variablen in das Dummy-Gerätes:
mySwitch1 set tSensor1 0;
my ($Variable) = _@;
$Variable = 2;
set tSensor1 1;
set tSensor1 ("$Variable");
Bis "set tSensor 1" funktioniert es, beim nächsten Schritt wird nicht 2, sondern der Name der Variablen geschrieben
Ich habe alles versucht, mit Klammern, ohne Klammern mit Anführungszeichen und ohne.
Die Variable mit define definiert, alles mit dem gleichen Ergebnis. Was mache ich falsch?
Christophe
Raspberry 3+, fhem
Zitat von: Christophe am 18 August 2018, 21:22:10
mySwitch1 set tSensor1 0;
my ($Variable) = _@;
$Variable = 2;
set tSensor1 1;
set tSensor1 ("$Variable");
Raspberry 3+, fhem
Was soll das sein? DOIF? Oder ein Notify?
Das was Du da geschrieben hast kann niemals irgendwie funktionieren. Zu mindestens nicht in FHEM und/oder Perl.
Hi Christophe,
schreibe doch bitte einmal dein komplettes Notify in CodeTags hier rein... Wie CoolTux schon schreibt, so wird das nichts.
device.* {
my $Variable = 2;
{fhem (set tSensor1 $Variable)};
}
dürfte eventuell Erfolg haben.
Gruß
Hi,
das klingt etwas konfus. Ich bin mir nicht sicher was Du genau machen willst.
das was Du dahin geschrieben hast geht in der simplen Kombination nicht. Du musst zwischen FHEM und Perl unterscheiden.
Um den Wert eines FHEM "Gerätes" (Dummy) auszulesen gibt es mehrere Perlfunktionen, siehe doku (https://commandref.fhem.de/#perl)
Du kannst im set Befehl auch direkt Perl verwenden (doku (https://commandref.fhem.de/#set))
Rechnen kannst Du auch mit set magic, also ganz unkompliziert geht sowas:
set wert {([wert:state] +1)}
Das erhöht den Zahlenwert im state des Dummy wert um 1.
Gruß Otto
Tut mir leid wegen der Dummen Frage, aber es gibt zum Glück gute Antworten.
Mir war nicht klar, dass ich fhem und pearl gemischt habe und dann ist es auch klar, dass das halt nicht geht.mySwitch1 { my $Var1 = Value("kg_Kaese"); $Var1 += 1; fhem("set kg_Kaese $Var1")}
Vielen Dank für die raschen Antworten.
Gruss
Christoph
P.S. wo kann ich das Thema auf gelöst setzen?
oh der wird auch gerne genommen:
Pearl (https://www.pearl.de) Perl (http://perldoc.perl.org/index.html)
Kürzere Variante
mySwitch1 set kg_Kaese {([kg_Kaese:state] +1)}
Gruß Otto