if im notify

  • Ich habe mir kürzlich den IKEA Tradfi An/Aus Schalter gekauft und wollte den jetzt in Betrieb nehmen. Ich habe ihn in Fhem verfügbar und wollte mir zum Schalten ein kleines, einfaches notify basteln, aber es klappt einfach nicht und ich glaube, ich drehe mich im Kreis.

    Der Schalter hat in den Readings den Wert "state" der nach dem Einschalten auf "1002" steht und beim Auschalten auf "2002" Jetzt dachte ich, dass ich ganz einfach mit

    Code
    IKEA_Swtich {if ("state" eq "1002") {fhem("set Licht_hinten dim43%") }
    else
    {fhem("set Licht_hinten off")}
    }

    den Wert von "state" auslesen und eine entsprechende Aktion starten kann. In dem Fall sollte die Lampe "Licht_hinten" auf 43% aufgedimmt werden. Allerdings bleibt die Lampe aus. Ist sie jedoch angeschaltet, geht sie aus, gleich welche Taste man auf dem Schalter betätigt. Mache ich aus "eq" "ne" ists genau umgekehrt. Also stimmt wohl irgendwas mit meiner Angabe für "state" nicht.

  • Code
    IKEA_Swtich {if (Value("IKEA_Swtich") eq "1002") {fhem("set Licht_hinten dim43%")}
    else
    {fhem("set Licht_hinten off")}
    }

    Soooo, nochmal ein paar Stunden später hab ich es dann doch geschafft. Viel probieren und so gehts jetzt, aber vielleicht kann mit das einer mal erklären, denn warum das so geht und so wie oben nicht, verstehe ich nicht.
    Fragt Fhem bei sowas das state Feld automatisch ab oder warum das nicht explizit angegeben werden? Und warum muss ich den Schalter "IKEA_Swtich" (und ja der Schreibfehler ist mir aufgefallen^^) doppelt angeben?

  • Code
    define IKEA_Swtich_Automation DOIF ([IKEA_Swtich] eq "1002") (set Licht_hinten dim43%) DOELSE (set Licht_hinten off)

    So löse ich bei mir im allgemeinen solche Aufgaben.
    Evtl. hilft es dir....

  • Danke, DOIF verwende ich an anderer Stelle auch. Mir gings hier in erster Linie um das Verständnis für die Syntax bei dem o.g. notify, die mir irgendwie nciht ganz klar ist

  • So , ich habe noch mal ein bisschen rumgespielt und da ist mir was aufgefallen, denke ich. Wäre schön wenn das jemand bestätigen oder dementieren könnte :)

    Aaaalso, ich habe ja mehrere IKEA Schalter und Phillips Schalter im Einsatz. Einige mit einem notify, andere mit einem Doif. Und folgendes ist mir dabei aufgefallen:
    Die Schalter haben den Status "state 1002" wenn man sie anschaltet und "state 2002" wenn man sie ausschaltet. Wenn ich den Schalter jetzt mit einem Doif verknüpfe, das Licht über den Schalter einschalte, bekommt der Schalter den Wert 1002, so weit so klar. WEnn ich das Licht über Alexa dann ausschalte, ist das Licht aus, der Schalter hat aber immer noch den Wert 1002. Dann läßt sich, mit einem Doif, das Licht mit dem Schalter erst einmal nicht mehr einschalten, da der Schalter ja noch den Wert 1002 hat. Man muss erst einmal auf den Off Knof am Schalter drücken, damit er seinen Wert ändert und dann auf on und das Licht geht an.

    Verwende ich aber anstelle von einem Doif ein notify, reagiert der Schalter immer. Also wenn der Schalter den Wert 1002 hat, das Licht aber aus ist, läßt sich das Licht dennoch über den Schalter einschalten, obwohl sich der Wert vom Schalter nicht ändert. Sprich beim Doif muss ich der Wert des Schalters ändern damit was passiert, beim notify ist das egal
    So verhält es sich zumindest bei mir aktuell.

    Ich bin so unendlich schlecht im Erklären, aber ich hoffe, dass klar ist, was meine :)

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!