Hallo
Lieder geht dieses notify nicht, was mache ich hier falsch?
define YogaAkku notify LenovoYoga2Pro:powerLevel:<=30 set YogaSwitch on
Ich lese den Akku Ladezustand von einem Tablet mit AMAD aus, und will dann eine FS20ST4 schalten.
Das Schalten mit set geht soweit
Beste Grüße
Heinz
Spontan würde ich behaupten, da ist ein Doppelpunkt zu viel...
Das war es leider nicht!
So geht es auch nicht.
define YogaAkku notify LenovoYoga2Pro:powerLevel<=30 set YogaSwitch on
Der Vergleich <= gehört in die Perl-Ebene{if (ReadingsVal(...) <= 30){fhem "set ..."}}
Schau mal in die Hilfe
Mit DOIF würde es allerdings funktionieren
([LenovoYoga2Pro:powerLevel] <= 30) (set YogaSwitch on)
und ggf. das Attribut "do" auf "always" setzen.
Und wenn Du es mit noch weniger geschweiften Klammern machen möchtest dann so:
define YogaAkku notify LenovoYoga2Pro:powerLevel.* {fhem "set YogaSwitch on" if (ReadingsVal("LenovoYoga2Pro","powerLevel",0) <= 30)}
Gruß
Dan
Ach, statt:
ReadingsVal("LenovoYoga2Pro","powerLevel",0)
müsste an der Stelle auch:
$EVTPART1
klappen...
Also:
define YogaAkku notify LenovoYoga2Pro:powerLevel.* {fhem "set YogaSwitch on" if ($EVTPART1 <= 30)}
Gruß
Dan
Danke DeeSPe ;D ;D
Den Style muss ich mir angewöhnen.
Diese Form ist spitze!
Eventuell ist auch das von Ellert vorgeschlagene DOIF eher was für Dich da es komplett auf Perl Code verzichtet.
Aber Hauptsache es funktioniert erst einmal wie gewünscht.
Gruß
Dan
Danke Ellert ;)
Hab mich bisher um DOIF gedrückt, ich muss es mir aber doch mal näher ansehen ;)
Grüße
Zitat von: heinzfo am 09 September 2016, 20:50:40
... Hab mich bisher um DOIF gedrückt, ...
Und das ist gut so ...
Gesendet von meinem Lenovo B6000-H mit Tapatalk
Das ist alles Ansichtssache.
Soll doch jeder das benutzen was ihm am Besten liegt. ;)
Ich gebe Dir aber insofern Recht dass man bei FHEM (wenn es ans Eingemachte geht) eh nicht um Perl herum kommt. Für mich war es (denke ich) auch einfacher gleich Perl zu lernen als mich mit der Syntax von allen möglichen Modulen ala IF und DOIF rumzuschlagen. Und das soll jetzt auch kein "Schlecht-Machen" von irgendwelchen Modulen und dessen Entwicklern sein. Ganz im Gegenteil, meine Hochachtung dafür sich sowas auszudenken und auch zu programmieren um es dem Endanwendern einfacher zu machen.
Gruß
Dan
P.S. "Just my 2 cent..."
In dem Notify Beispiel von DeeSPe würde bei jeder Veränderung des Batterielevels ein unter 30 ein set on ausgeführt werden. Ich würde hier mit FILTER arbeiten um Funklast zu minimieren und FHEM Ressourcen.
Das würde die Sache zu 100% abrunden!!!
Habe ich bei mir auch tatsächlich überall versucht umzusetzen.
Das ist schon echt ne coole Sache mit dem FILTER. 8)
Gruß
Dan
Zitat von: DeeSPe am 09 September 2016, 22:58:02
Das ist alles Ansichtssache.
Soll doch jeder das benutzen was ihm am Besten liegt. ;)
Ich gebe Dir aber insofern Recht dass man bei FHEM (wenn es ans Eingemachte geht) eh nicht um Perl herum kommt. Für mich war es (denke ich) auch einfacher gleich Perl zu lernen als mich mit der Syntax von allen möglichen Modulen ala IF und DOIF rumzuschlagen. Und das soll jetzt auch kein "Schlecht-Machen" von irgendwelchen Modulen und dessen Entwicklern sein. Ganz im Gegenteil, meine Hochachtung dafür sich sowas auszudenken und auch zu programmieren um es dem Endanwendern einfacher zu machen.
Gruß
Dan
P.S. "Just my 2 cent..."
Natürlich wird man auf lange Sicht nicht ohne Perl auskommen. Im Übrigen auch bei DOIF nicht, denn die Bedingung des Moduls wird vom Perl-Interpreter ausgewertet, es ist also 100 % Perl und noch bisschen mehr ;)
Gruß
Damian