sorry Leute, wahrscheinlich sehe ich den Wald vor lauter Bäumen nicht aber ich bekomme selbst die einfachste DOIF Bedingung nicht zum Laufen :(
ich habe ein Dummy Device "Huawei-Present", dessen "state" zwischen "absent" und "present" toggled, das funktioniert.
jetzt sollen einfach davon abhängig die internen Blink Kameras an/aus geschaltet werden.
( [Huawei_present] eq "absent") (set Blink camEnable In1) -> geht nicht
( [Huawei_present:absent]) (set Blink camEnable In1) -> geht nicht
( ["Huawei_present]:absent"]) (set Blink camEnable In1) -> geht nicht
( ["Huawei_present]:*absent"]) (set Blink camEnable In1) -> geht nicht
das sind nur ein paar Beispiele (immer "nur" der DEF-Teil aus dem Web Interface)
im Web-Interface habe ich beim DOIF eine Dropdown Box mit: checkall, cmd_1, cmd_2, enable, disable, initialize, was zum Henker macht das denn alles?
es gibt 1000 verschiedene Seiten dazu aber auf keiner finde ich in ganz simples Beispiel. MUSS man IMMER ein "else" haben? Liegt da mein Fehler? Das ist leider nicht vernünftig beschrieben und in vielen Beispielen ist ein (aus meiner Sicht) "schwachsinniger else-Zweig angehängt.
ich verstehe auch in den Beispielene nicht, warum da manchmal " verwendet werden und manchmal nicht, wann eine so ein Ausdruck true ergibt und das als DOIF Bedingung ausreicht oder noch explizit mit z.B. "eq" verglichen werden muss. Die eckigen Klammern scheinen nicht "ganz normal" eine Abkürzung für so etwas wie in der test Befehl in der bash zu sein, deren Sinn ergibt sich mir gar nicht.
bisher habe ich alle diese Dinge immer mit eigenen Perl Routinen in 99_myUtils.pm erledigt aber es sollte doch möglich sein so eine primitive Abfrage auch direkt lösen zu können?!?
Warum dann "plötzlich" ein DOIF?
Warum nicht (wie bisher?) einfach ein notify und if/else (in einer sub)!?
Also wenn du DOIF nicht "verstehst" (wie ich auch nicht wirklich ;) ) und es sonst auch mittels subs in myUtils "löst"!?
(wie ich auch ;) )
Ein notify und auch ein DOIF können ja ganz einfach "über" den Eventmonitor angelegt werden (bzw. sich anlegen lassen)...
https://wiki.fhem.de/wiki/Event_monitor
Vielleicht darüber mal das DOIF anlegen lassen, wenn es doch "unbedingt" ein DOIF sein soll...
Gruß, Joachim
ich wollte einfach nur nicht dumm sterben und keine Grundsatzdiskussion auslösen ;)
"natürlich" kann ich mein Problem "irgendwie" lösen aber ich würde auch gerne DOIF "verstehen"...
Ist ja keine Grundsatzdiskussion...
Hat auch mMn nichts mit "dumm sterben" zu tun... ;)
Man muss ja nicht alles nutzen (nur weil es "da" ist), auch nur meine Meinung... ;)
Dann aber besser im passenden Unterforum fragen...
...statt in Anfängerfragen... ;)
Mal den Eventmonitor bemüht und ein DOIF anlegen lassen?
Gruß, Joachim
Ui, was eine fürchterliche Tirade! Ich schreib mal zu 1-2 Sachen was:
Wie heißt dein Device?
Huawei-Present
oder
Huawei_present
DOIF muss den Status wechseln können oder das attribut "do always", darum hängen teilweise leere ELSE-Zweige an Beispielen.
Dann springt der Status da hin und kann dann wieder auf den Status wechseln, in dem etwas gemacht wird.
Den Rest kann man eigentlich aus der Commandref lesen: Mal ist es das Event, mal der Status auf den getriggerd wird.
Direkt einen Zweig aufrufen, also tetsen, ob zumindest da die Commandos stimmen kann man mit der Auswahl cmd_x aus der Dropdownbox.