FHEM Forum

FHEM => Anfängerfragen => Thema gestartet von: Ruckzuck am 09 März 2022, 20:48:34

Titel: webCmd dynamisch zuweisen
Beitrag von: Ruckzuck am 09 März 2022, 20:48:34
Hallo,

ich habe bei meinem Jalousienaktor eine Doppelbelegung für die Lamellenverstellung. Wenn die Jalousie in der Höhe verfährt, kann sie über den Kanal für die Lamellen gestoppt werden. Erst danach lassen sich die Lamellen über den Kanal in der Neigung verstellen.

Ich würde jetzt gerne das webCmd in Abhängigkeit des States auswechseln:

wenn STATE up oder down:     webCmd Auf:Ab:Stop
wenn STATE Stop:                  webCmd Auf:Ab:Öffnen:Schließen

EventMap und cmdIcon würde ich dann für alle 5 Befehle vorbereitet lassen. Ist das möglich?

hier noch mein cmdIcon: Auf:black_up Ab:black_down Öffnen:remotecontrol/black_btn_LEFT Schließen:remotecontrol/black_btn_RIGHT Stop:remotecontrol/black_btn_RED

Manuell habe ich es ausprobiert. Die Angezeigten Schaltflächen in der Weboberfläche folgen dem webCmd


Titel: Antw:webCmd dynamisch zuweisen
Beitrag von: betateilchen am 09 März 2022, 21:30:49
Zitat von: Ruckzuck am 09 März 2022, 20:48:34
wenn STATE

Du meinst sicher nicht STATE (Internal) sondern state (reading), oder?

webCmd, eventMap usw. sind Attribute, die Du per notify ändern kannst.

Das heißt, Du baust ein notify auf (up|down) das die entsprechenden Attributwerte setzt
und ein zweites notify, das auf stop triggert und dann die Attributwerte umschreibt
Titel: Antw:webCmd dynamisch zuweisen
Beitrag von: Ruckzuck am 09 März 2022, 23:11:57
Hi,

vielen Dank für deine Antwort. Mit STATE meinte ich erstmal nur einen Bedingung für die Fallunterscheidung. Bei mir steckt diese Bedingung in zwei Readings des betreffenden Gerätes. Eines liefert "true" bei der Fahrt "auf" und das andere dann "true" bei der Fahrt "ab" (erster Wert für das Attribut webCmd). Wenn beide false sind, dann ist in WebCmd der zweite Wert zu setzen.

Führt der Weg nur über zwei notify, oder kann ich das auch über eine PERL Direktive innerhalb des Gerätes umsetzen? Also irgendwie
attr Jalousie webCmd {....}

in c wäre das:


if (var1 || var2){
   webCMD Wert 1
    }
    else if (!var1 && !var2)
    {
    webCMD Wert 2
    }
Titel: Antw:webCmd dynamisch zuweisen
Beitrag von: betateilchen am 09 März 2022, 23:23:11
Du kannst in EINEM notify auch auf zwei (oder mehr) devices oder readings reagieren. Die Fallunterscheidung musst Du dann in dem Code machen, der von Deinem notify ausgeführt wird. Den Code lagert man dann sinnvollerweise in die 99_myUtils.pm aus.
Titel: Antw:webCmd dynamisch zuweisen
Beitrag von: Ruckzuck am 09 März 2022, 23:28:58
ok...vielleicht reden wir aneinander vorbei. Braucht es zwingend ein notify um den code auszuführen? In den KNX Beispielen des Wikis finde ich folgendes Beispiel um über das stateCmd eine Funktion in der 99_myUtils.pm auszuführen:

attr Jal_Kueche stateCmd {Jal_stateCmd($name,$gadName,$state)}

Geht das auch analog innerhalb von webCmd?
Titel: Antw:webCmd dynamisch zuweisen
Beitrag von: Beta-User am 10 März 2022, 07:02:00
Wenn es nicht unbedingt eine Änderung des webCmd-Attributs sein muss, hilft vielleicht eine (multi-line) Rückgabe von stateFormat-Perlcode iVm. devStateIcon. Für ZWave gäbe es auch ein Perl-devStateIcon-Beispiel mit dynamischen Icons...