notify set dummy-device mit einer Variablen

Begonnen von Christophe, 18 August 2018, 21:22:10

Vorheriges Thema - Nächstes Thema

Christophe

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
FHEM auf Raspberry, Raspian Jessy, SSC von Busware, TSCUL 0.29

CoolTux

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.
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

Mundus

#2
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ß

Otto123

#3
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
Du kannst im set Befehl auch direkt Perl verwenden (doku)
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
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

Christophe

#4
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?
FHEM auf Raspberry, Raspian Jessy, SSC von Busware, TSCUL 0.29

Otto123

#5
oh der wird auch gerne genommen:
Pearl Perl

Kürzere Variante
mySwitch1  set kg_Kaese {([kg_Kaese:state] +1)}

Gruß Otto
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz