Slider für die Heizungstemperatur

Begonnen von r1snake, 20 Dezember 2018, 00:52:10

Vorheriges Thema - Nächstes Thema

r1snake

Hallo,

ich wollte für die Oberfläche einen Slider einführen womit ich die Heizung regulieren kann.

Hab ebenfalls schon folgenden Thread dazu gefunden https://forum.fhem.de/index.php?topic=15086.0

Dort werden ein paar Schnipsel zur Verfügung gestellt aber irgendwie werde ich daraus nicht schlau.

Wenn ich folgenden Schnipsel in die Commandleiste eingebe bekomme ich einen Fehler:
define SetzSliderNotify notify SZ_Heizung:* {\
my $timerwert = ReadingsVal("SZ_Heizung","ReadingName","on");;\
fhem ("set dy_SZ_Heizung_Slider $timerwert");;\
}


Durch versuchen konnte ich den Schnipsel so umformen das er klappt:
define SetzSliderNotify notify wz_Heizung:* {my $tempvalue = ReadingsVal("wz_Heizung_Clima","desired-temp","19.5");;\
fhem ("set dy_SZ_Heizung_Slider $tempvalue");;}


Gibt es irgendwie noch eine andere Art die Notify anzulegen? Hab über die fhem.cfg nachgedacht aber da heißt es ich soll die Finger davon lassen.

Und etwas weiter unten gibt es noch folgenden Schnipsel damit ich dauern Daten übertragen werden:

define SetzSliderNotify notify SZ_Heizung:* {\
my $timerwert = ReadingsVal("SZ_Heizung","ReadingName","on");;\
fhem ("set dy_SZ_Heizung_Slider $timerwert") if( $timerwert != Value("dy_SZ_Heizung_Slider");;\
}


Warum steht der Set Code vor dem If? Muss das nicht eigentlich dahinter stehen?

KernSani

Hi,
Zur ersten Frage: Drücke mal auf DEF in den Details Deines notify... Ist es das, was du mit ,,anderer Art" meinst?
Das Einsteiger-PDF hast du gelesen?
Zu 2. empfehle ich mal nach Perl-Grundlagen zu googeln.

Grüße,

Oli


Kurz, weil mobil
RasPi: RFXTRX, HM, zigbee2mqtt, mySensors, JeeLink, miLight, squeezbox, Alexa, Siri, ...

r1snake

Also ich hab mich etwas mit dem Thema beschäftigt aber ich komme immer noch nicht weiter.

Wie erstellen die das notify? Weil über die commandozeile oben auf keinen fall da ein fehler kommt ?!

Ich hab mal geschaut wegen dem leeren Rumpf vom if Block aber finde dazu nichts. Kann mir jemand die Zeile erklären?


fhem ("set dy_SZ_Heizung_Slider $timerwert") -> Setzen des Wertes auf den Wert der Variablen
if( $timerwert != Value("dy_SZ_Heizung_Slider") -> ?????;;

eisman

hi,

ein Notify erstellt man einfach,
   def N1 notify a b <enter>

a = event und b der set befehl set def on oder in perl {fhem("set def on")}
das kann man im nachhinein ändern siehe bild

if kann auch nach dem Befehl in perl stehen. wie kann man nach lesen


gruss




1x FHEM Debian, Homematic,ZigBee,FS20 / 1X Raspberry, ConBee / 7x ESP
1x FHEM Debian, Homematic,Z2M             / 1X Raspberry, ConBee / 6x ESP
1x FHEM Debian,MQTT2                             / 1X Raspberry, i2c,onewire,gpio
1x auf Windows 2012 Hyper-V-S

r1snake

Wie man ein notify erstellt ist mir klar, nur erscheint es mir so, dass die das direkt mit dem Perl Code in einem Zug durchführen statt erst das Notify anzulegen und dann den code in DEV eintragen

KernSani

Wie Eismann schon geschrieben hat, man kann das DEF im Nachhinein ändern.
Alernativ geht's auch über ,,raw export" wenn man unbesehen erwas übernehmen will. https://wiki.fhem.de/wiki/Import_von_Code_Snippets


Kurz, weil mobil
RasPi: RFXTRX, HM, zigbee2mqtt, mySensors, JeeLink, miLight, squeezbox, Alexa, Siri, ...

Otto123

Hi,

das hier define SetzSliderNotify notify wz_Heizung:* {my $tempvalue = ReadingsVal("wz_Heizung_Clima","desired-temp","19.5");;\
fhem ("set dy_SZ_Heizung_Slider $tempvalue");;}
geht einfacher und ohne Perl mit set magic
define SetzSliderNotify notify wz_Heizung:* set dy_SZ_Heizung_Slider [wz_Heizung_Clima:desired-temp]

Zu Fehlermeldungen:
Mehrzeiler gehen nur über Raw Definition bzw. den DEF Editor und nicht über die FHEM Kommandzeile!
define bringt einen Fehler wenn das Gerät geändert werden soll, dann nimmt man defmod!
Zitatfhem ("set dy_SZ_Heizung_Slider $timerwert") -> Setzen des Wertes auf den Wert der Variablen
if( $timerwert != Value("dy_SZ_Heizung_Slider") -> ?????;;
-> https://heinz-otto.blogspot.com/2015/01/perl-besonderheit-beim-if.html

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

r1snake

Danke für die Unterstützung.

Ich weiß viele kleine Fragen aber ich denke so langsam weiß ich wie es läuft  ;D