Hauptmenü

struct mit Dummy schalten

Begonnen von derHeimwerker, 07 März 2015, 18:01:18

Vorheriges Thema - Nächstes Thema

derHeimwerker

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 ?

maxritti

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")\
           }\
}



derHeimwerker

Log Auszug

RolladenWohnzimmerAlle_not return value: Please define {
first

maxritti

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...}

derHeimwerker

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 ???

maxritti

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.

derHeimwerker

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.

maxritti

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")}}


derHeimwerker

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