FHEM Forum

FHEM => Anfängerfragen => Thema gestartet von: Christophe am 18 August 2018, 21:22:10

Titel: notify set dummy-device mit einer Variablen
Beitrag von: Christophe am 18 August 2018, 21:22:10
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
Titel: Antw:notify set dummy-device mit einer Variablen
Beitrag von: CoolTux am 18 August 2018, 21:43:34
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.
Titel: Antw:notify set dummy-device mit einer Variablen
Beitrag von: Mundus am 18 August 2018, 21:47:51
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ß
Titel: Antw:notify set dummy-device mit einer Variablen
Beitrag von: Otto123 am 18 August 2018, 21:49:15
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
Titel: Antw:notify set dummy-device mit einer Variablen
Beitrag von: Christophe am 18 August 2018, 22:14:05
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?
Titel: Antw:notify set dummy-device mit einer Variablen
Beitrag von: Otto123 am 18 August 2018, 23:05:46
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