erbitte Hilfe zu Variable bei Notify

Begonnen von tagedieb, 30 November 2013, 11:17:44

Vorheriges Thema - Nächstes Thema

tagedieb

Hallo und Guten Morgen
leider habe ich im Forum dieses Mal keine Antwort auf meine Frage gefunden
Es wäre schön, wenn mir hier jemand durch einen Denkanstoss weiterhelfen könnte
folgendes Vorhaben
Somfy Funkrolladen über Somfy Fernbedienung mit HM_LC_SW4 verbunden
auf, ab, stop funktioniert fehlerlos
die verschiedenen Rolladen "Höhen" schalte ich zum Beispiel über
webcmd toggle:stop:off:100:90:80:70:60:50:40:30:20:10:0:on:stop:statusRequest mit so einem notify

define zu50 notify Rolladen:50 set CUL_HM_HM_LC_SW4_PCB_224A86_Sw_02 on-for-timer 1 ;; sleep 8;; set CUL_HM_HM_LC_SW4_PCB_224A86_Sw_03 on-for-timer 1
funktioniert

da die "Auf - Taste" mit Kanal bedient wird und die "Ab-Taste" mit Kanal 2 suche ich eine Möglichkeit, das vom Schalter erkannt wird das er 50 öffnen oder schliessen soll - mit if Rolladen on set SW 01 oder if Rolladen off set SW 02 wird in diesem Notify nicht nach meinen "Wünschen" angewand

folgende Variationen habe ich nun schon probiert

define zu50 notify Rolladen:50 if ("%" ne "on") set CUL_HM_HM_LC_SW4_PCB_224A86_Sw_02 on-for-timer 1 ;; sleep 8;; set CUL_HM_HM_LC_SW4_PCB_224A86_Sw_03 on-for-timer 1

hier wird in der Logdatei folgendes angezeigt
zu30 return value: Unknown command if, try help.

und wenn ich
define zu50 notify Rolladen:50 if Rolladen on set CUL_HM_HM_LC_SW4_PCB_224A86_Sw_02 on-for-timer 1 ;; sleep 8;; set CUL_HM_HM_LC_SW4_PCB_224A86_Sw_03 on-for-timer 1

Auszug aus Log
2013.11.30 11:05:18 2: CUL_HM set CUL_HM_HM_LC_SW4_PCB_224A86_Sw_01 on-for-timer 1
2013.11.30 11:05:18 3: zu30 return value: Unknown command Rolladen, try help.
2013.11.30 11:05:23 2: CUL_HM set CUL_HM_HM_LC_SW4_PCB_224A86_Sw_03 on-for-timer 1
2013.11.30 11:05:23 2: CUL_HM set CUL_HM_HM_LC_SW4_PCB_224A86_Sw_03 on-for-timer

oder

define zu50 notify Rolladen:50 if Rolladen "on" set CUL_HM_HM_LC_SW4_PCB_224A86_Sw_02 on-for-timer 1 ;; sleep 8;; set CUL_HM_HM_LC_SW4_PCB_224A86_Sw_03 on-for-timer 1
schalten die einzelnen Schalter, doch der Rolladen "bewegt" sich nicht

Auszug aus Log
2013.11.30 11:06:53 2: CUL_HM set CUL_HM_HM_LC_SW4_PCB_224A86_Sw_01 on-for-timer 1
2013.11.30 11:06:53 3: zu30 return value: Unknown command Rolladen, try help.
2013.11.30 11:06:59 2: CUL_HM set CUL_HM_HM_LC_SW4_PCB_224A86_Sw_03 on-for-timer 1
2013.11.30 11:06:59 2: CUL_HM set CUL_HM_HM_LC_SW4_PCB_224A86_Sw_03 on-for-timer 1


Was habe ich hier nicht beachtet?
ach so - die Notify Einträge habe ich unter DEF erstellt

Danke für die Hilfe im voraus
tagedieb








in
FHEM 5.6 auf Cubitruck
CUL und Cul 868 und 2 HM LAN an Zbox
Remoteserver auf 2.Zboxi
HM-CC-RT-DN,HM-LC-Bl1PBU-FM,HM-LC-SW1-FM,HM-LC-SW4-PCB,HM-LC-Sw1PBU-FM,HM-PB-2-WM55,HM-PB-6-WM55,HM-SCI-3-FM,HM-SEC-RHS,HM-SEC-SC,HM-SEC-SC-2,HM-SEC-TIS,HM-WDS10-TH-O u.viele mehr
diverse IT Empfänger und LW3

hckoe

Hallo Tagedieb,

wenn Du eine if-Anweisung im Notify verwendest, dann ist das kein FHEM-Kommando, sondern Perl-Code, d.h. Du mußt das Kommando in {} setzen.
Laut commandref für notify:
If <command> is enclosed in {}, then it is a perl expression, if it is enclosed in "", then it is a shell command, else it is a "plain" fhem.pl command (chain).

Das Notify-Kommando könnte also etwa folgendermaßen aussehen:
define zu50 notify Rolladen:50 {if ("%" ne "on") fhem("set CUL_HM_HM_LC_SW4_PCB_224A86_Sw_02 on-for-timer 1 ;; sleep 8;; set CUL_HM_HM_LC_SW4_PCB_224A86_Sw_03 on-for-timer 1")}

Gruß
Helmut
# CT mit Debian Buster / FHEM aktuell / EnOcean TCM310 / Eltako FSA12, FUD12NPN, FSB12, FRW, FSRP-230V
# Permundo PCS234, Nodon NO-SIN-2-2-00, GTAGS

tagedieb

Hallo Helmut
vielen Dank für die Hilfe - habe es so übernommen
erst kam noch eine Fehlermeldung

2013.11.30 16:50:32 3: zu60 return value: syntax error at (eval 37310) line 1, near ") fhem"
nach dem einfügen einer { vor fhem und } am Ende

funktioniert es wie gewünscht
Vielen,vielen Dank

lg tagedieb
FHEM 5.6 auf Cubitruck
CUL und Cul 868 und 2 HM LAN an Zbox
Remoteserver auf 2.Zboxi
HM-CC-RT-DN,HM-LC-Bl1PBU-FM,HM-LC-SW1-FM,HM-LC-SW4-PCB,HM-LC-Sw1PBU-FM,HM-PB-2-WM55,HM-PB-6-WM55,HM-SCI-3-FM,HM-SEC-RHS,HM-SEC-SC,HM-SEC-SC-2,HM-SEC-TIS,HM-WDS10-TH-O u.viele mehr
diverse IT Empfänger und LW3

Zrrronggg!

#3
Zitatdefine zu50 notify Rolladen:50 {if ("%" ne "on") fhem("set CUL_HM_HM_LC_SW4_PCB_224A86_Sw_02 on-for-timer 1 ;; sleep 8;; set CUL_HM_HM_LC_SW4_PCB_224A86_Sw_03 on-for-timer 1")}

Da fehlen auch paar Klammern. Versuch mal so:


define zu50 notify Rolladen:50 {if ("%" ne "on") {fhem("set CUL_HM_HM_LC_SW4_PCB_224A86_Sw_02 on-for-timer 1 ;; sleep 8;; set CUL_HM_HM_LC_SW4_PCB_224A86_Sw_03 on-for-timer 1")}}

Und nenn deine Devices um! "CUL_HM_HM_LC_SW4_PCB_224A86_Sw_03" ist ja Grusel!  ;-)


Zum Thema Klammern guckst du hier:
http://www.fhemwiki.de/wiki/Klammerebnen
FHEM auf Linkstation Mini, CUL 868 SlowRF, 2xCUL 868 RFR, CUL 433 für IT, 2xHMLAN-Configurator mit VCCU, ITV-100 Repeater, Sender und Aktoren von FHT, FS20, S300, HM, IT, RSL

tagedieb

Hallo Zrrronggg

Danke für deine Info - ich hatte es vielleicht nicht richtig ausgedrückt - doch ich hatte es gefunden
"nach dem einfügen einer { vor fhem und } am Ende
funktioniert es wie gewünscht"


meine Device hatte ich mit alias anders betitelt, solange noch nicht alles richtig funktioniert traue ich mich an das "rename" nicht dran - um die Fehlerquelle so klein wie möglich zu halten
...gefällt mir selbst auch nicht :-(

nochmals Danke
lg tagedieb
FHEM 5.6 auf Cubitruck
CUL und Cul 868 und 2 HM LAN an Zbox
Remoteserver auf 2.Zboxi
HM-CC-RT-DN,HM-LC-Bl1PBU-FM,HM-LC-SW1-FM,HM-LC-SW4-PCB,HM-LC-Sw1PBU-FM,HM-PB-2-WM55,HM-PB-6-WM55,HM-SCI-3-FM,HM-SEC-RHS,HM-SEC-SC,HM-SEC-SC-2,HM-SEC-TIS,HM-WDS10-TH-O u.viele mehr
diverse IT Empfänger und LW3

Zrrronggg!

Meiner Auffassung nach ist ein Device namens "CUL_HM_HM_LC_SW4_PCB_224A86_Sw_02" das dann per Alias betitelt ist einen grössere potentiell Fehlerquelle als eine Umbenennung gleich nach dem Anlegen.

Direkt nach Autocreate alle Vorkommen von CUL_HM_HM_LC_SW4_PCB_224A86_Sw_02 in"Licht_Wohnzimmer_SW_02" oder so umzubennen ist doch kein Problem, oder?

Aber das ist nur meine Meinung.
FHEM auf Linkstation Mini, CUL 868 SlowRF, 2xCUL 868 RFR, CUL 433 für IT, 2xHMLAN-Configurator mit VCCU, ITV-100 Repeater, Sender und Aktoren von FHT, FS20, S300, HM, IT, RSL