FHEM Forum

FHEM => Anfängerfragen => Thema gestartet von: derHeimwerker am 07 März 2015, 18:01:18

Titel: struct mit Dummy schalten
Beitrag von: derHeimwerker am 07 März 2015, 18:01:18
Hallo,

ich habe mir eine structure angelegt und eine dummy angelegt. Der dummy zeigt hoch und runter an. Hier mein code

define RolladenWohnzimmerAlle_struct structure room Rolladen.WohnzimmerStrasseLinks Rolladen.WohnzimmerStrasseRechts Rolladen.WohnzimmerFensterDoert Rolladen.WohnzimmerSonnenterrasse Rolladen.WohnzimmerTerrasseGarten
define RolladenWohnzimmerAlle_dummy dummy
attr RolladenWohnzimmerAlle_dummy devStateIcon hoch:shutter_open runter:shutter_closed
attr RolladenWohnzimmerAlle_dummy eventMap on:hoch off:runter
attr RolladenWohnzimmerAlle_dummy group Jalousien
attr RolladenWohnzimmerAlle_dummy room 0.2_Jalousien
attr RolladenWohnzimmerAlle_dummy webCmd hoch:runter

define RolladenWohnzimmerAlle_not notify RolladenWohnzimmerAlle_dummy set {\
       if ($EVENT ne "off") {\
           fhem ("set RolladenWohnzimmerAlle_struct on")\
           }\
             else {\
             fhem ("set RolladenWohnzimmerAlle_struct off")\
           }\
}

Da passiert leider überhaupt nichts, wenn ich den butten anklicke.

Was mache ich falsch ?
Titel: Antw:struct mit Dummy schalten
Beitrag von: maxritti am 07 März 2015, 18:13:33
Was sagt denn dein Logfile von fhem dazu, wenn Du auf den Dummy klickst?

Das Konstrukt hier sieht mir ein wenig abenteuerlich aus:

set {\
       if ($EVENT ne "off") {\
           fhem ("set RolladenWohnzimmerAlle_struct on")\
           }\
             else {\
             fhem ("set RolladenWohnzimmerAlle_struct off")\
           }\
}


Titel: Antw:struct mit Dummy schalten
Beitrag von: derHeimwerker am 07 März 2015, 18:23:02
Log Auszug

RolladenWohnzimmerAlle_not return value: Please define {
first
Titel: Antw:struct mit Dummy schalten
Beitrag von: maxritti am 07 März 2015, 18:26:34
Und jetzt mal einen Blick in die CommandRef werfen und schauen, wie das <command> aufgebaut werden soll.

Dann mal mit Deinem vergleichen.
Bei Dir sieht das <command> so aus: set {if......}
So was wirst Du dort nicht finden, sondern eher {if...}
Titel: Antw:struct mit Dummy schalten
Beitrag von: derHeimwerker am 07 März 2015, 18:51:31
ich versteh es nicht ....

define RolladenWohnzimmerAlle_not notify RolladenWohnzimmerAlle_dummy {
       if ($EVENT ne "off") {
       fhem("set RolladenWohnzimmerAlle_struct on");
       }else {
       fhem("set RolladenWohnzimmerAlle_struct off");
       }
       }
       }

Wo muss ich denn welche Klammern setzten ???
Titel: Antw:struct mit Dummy schalten
Beitrag von: maxritti am 07 März 2015, 18:55:37
Also vom Grundsatz gilt, dass die Anzahl der geöffneten Klammern gleich der Anzahl der geschlossenen Klammern sein muss.
Das ist da schon mal nicht der Fall.

Und für das if gilt:

if {...} else {...}

Also müsste das Resultat so aussehen:


define RolladenWohnzimmerAlle_not notify RolladenWohnzimmerAlle_dummy {
       if ($EVENT ne "off") {
           fhem("set RolladenWohnzimmerAlle_struct on");
       }else {
           fhem("set RolladenWohnzimmerAlle_struct off");
       }
}


Wobei Du auch mal einen Blick in den Eventmonitor werfen solltest, sobald Du auf deinen Dummy klickst.
Ich vermute mal, dass da noch etwas anderes faul ist.
Titel: Antw:struct mit Dummy schalten
Beitrag von: derHeimwerker am 07 März 2015, 19:02:55
bekomme auch bei deinem code

IF: no left bracket: { Unknown command fhem("set, try help. Unknown command }else, try help. Unknown command fhem("set, try help. Unknown command }, try help. Unknown command }, try help.
Titel: Antw:struct mit Dummy schalten
Beitrag von: maxritti am 07 März 2015, 19:06:15
Also das hier klappt bei mir einwandfrei:

define RolladenWohnzimmerAlle_not notify RolladenWohnzimmerAlle_dummy { if ($EVENT ne "off") {fhem("set RolladenWohnzimmerAlle_struct on")} else {fhem("set RolladenWohnzimmerAlle_struct off")}}

Titel: Antw:struct mit Dummy schalten
Beitrag von: derHeimwerker am 07 März 2015, 19:09:41
Vielen vielen Dank :-)
Da waren wohl auch ein paar Leerzeichen zu viel.
Und mit "runter" anstelle von "off" klappt es nun auch !!


Das war jetzt mein erster Code. Jetzt geht es weiter