FHEM Forum

FHEM => Automatisierung => DOIF => Thema gestartet von: Thyrador am 25 Juli 2016, 20:29:09

Titel: [gelöst] DOIF box_wlan_5GHz on
Beitrag von: Thyrador am 25 Juli 2016, 20:29:09
Moin moin. Ich möchte gern bestimmte Aktionen beim zuschalten des 5GHz WLANs meiner Fritz!Box auslösen.

Komme hierfür aber leider nicht wirklich weiter.
Die variable box_wlan_5GHz ist ein Reading und hat entweder den Status on oder off.

Folgender Schnipsel macht leider irgendwie gar nichts.

Zitatdefine WiFi DOIF ([FritzBoxBasis:box_wlan_5GHz] eq "on") (set KT.KM on)

Keine Reaktion wenn das WLAN eingeschalten wird.

Hat irgendjemand ne Ahnung, was ich hier falsch mache?
Titel: Antw:DOIF box_wlan_5GHz on
Beitrag von: Per am 25 Juli 2016, 21:51:24
Was sagt denn der Eventviewer?
Titel: Antw:DOIF box_wlan_5GHz on
Beitrag von: automatisierer am 25 Juli 2016, 22:42:13
also bei mir geht das...

mach mal ein 'list WiFi'

Die Anführungszeichen in deinem Code sehen ein wenig seltsam aus...

Edit:

list WiFi

in der Befehlszeile im FHEMWEB eingeben. Das Ergebnis davon dann per copy/paste in Code Tags Posten. Code Tags bekommst du wenn du über dem Textfeld auf die # klickst...
Titel: Antw:DOIF box_wlan_5GHz on
Beitrag von: Thyrador am 26 Juli 2016, 06:31:34
Der EventViewer spuckt mir für die FB nur Voltage und Energy-Werte aus.

EDIT:
Es lag tatsächlich am ", welches kein " ist. Muss ich nur noch herausfinden, wieso der mir das Zeichen über die Tastatur falsch übergibt.

Trotzdem danke für die Hilfe, jetzt geht's. Wer rechnet denn auch mit soetwas? 😂
Titel: Antw:DOIF box_wlan_5GHz on
Beitrag von: automatisierer am 26 Juli 2016, 07:36:30
Hm, wo soll ich anfangen??

Wenn der EventMonitor nur Voltage und Energy-Wete ausspuckt, dann war das wohl nicht von der 'FritzBoxBasis' sondern evtl. von einem 'DECT200' keine Ahnung was du noch für Device in deinem System hast.

Dein DOIF entspricht nicht mehr dem aus dem ersten Post. Die Definition im ersten Post wertet ein Reading aus, das funktioniert so auch - bei mir tut es das zumindest. Allerdings schaltet es nur ein mal, ein erneutes schalten tritt erst wieder ein, wenn das wlan einmal 'off' war.

Die DOIF Definition die du in deinem list hast, macht eine Event Auswertung, allerdings ist das eine veraltete Schreibweise die laut Comandreff nicht mehr verwendet werden soll, zumindest wenn du die aktuelle DOIF Version nutzt. Die richtig Schreibweise mit der richtigen Regexp wäre dann:
([FritzBoxBasis:"box_wlan_5GHz:.on"]) (set KT.KM on)
Das Funktioniert auch und schaltet mit einem 'do always' als Attribut im DOIF jedes mal wenn das entsprechende Event kommt.

Der Perl Fehler dürfte daher rühren, dass du bei der Event Auswertung noch ein ' eq "on" ' dran hängen hast welches da nicht hin gehört.


Titel: Antw:[gelöst] DOIF box_wlan_5GHz on
Beitrag von: Thyrador am 26 Juli 2016, 08:39:09
Danke nochmal für's Feedback. Ja, ich habe auch ein paar DECT-Steckdosen im System, welche hierbei natürlich angezeigt werden können.
Als Gerät stand jedoch immer die Basis davor.
Hätte es nachvollziehen können, wenn hier eher die FBAHA Definition der FB gegriffen hätte, aber da will ich mich nicht zu weit aus dem Fenster lehnen.

Ich werde nachher mal das Kommando entsprechend deiner Vorgabe anpassen und prüfen, ob es sich wie gewünscht verhält.
Und ja, es ist so gewollt dass hier nur bei einem "on" getriggert wird, da ein off-Event hier unnötig wäre.
Geschalten wird's dann entweder per Taster, FHEM, oder Smartphone.

EDIT:
Soooo, nochmal kurzes Feedback von mir: mit der neuen Vorgabe funktioniert es auch prima, das macht verschachtelte Abfragen nicht nur kürzer, sondern auch besser lesbar.
Auf jeden Fall vielen Dank für die Hilfe. Konnte mittlerweile auch herausfinden, wie die falschen " in die Definition kamen. Hierbei habe ich diese über das Smartphone eingegeben und nicht, wie behauptet, über die Tastatur (am PC).
Tatsächlich habe ich auf meinem Soft-Keyboard (Swype) gar keine "richtigen" "Gänsefüßchen", sondern eben nur die, wie man sie aus Word/Office her kennt.
Habe die Anweisung noch ein gutes Stück erweitert und mehrere Bedingungen eingebaut, diese triggern aber nun jedes Mal genau so, wie es von mir gewünscht ist. :)


EDIT (die zweite):

Leider haut das doch nicht ganz hin.
Das Event wird zwar ordnungsgemäß getriggert, wenn ich über FHEM das WLAN schalte, doch leider passierte heute nichts, als ich nachhause kam und die WLAN-Taste manuell betätigte.
FHEM erkennt zwar nach ner Weile, dass das WLAN aktiv ist, das Event bleibt jedoch vollkommen unbeeindruckt davon und startet einfach nicht.
Ideen, woran das noch liegen kann?
Titel: Antw:DOIF box_wlan_5GHz on
Beitrag von: automatisierer am 26 Juli 2016, 17:59:02
attr WiFi do always, tippe ich mal...

ansonsten, nochmal ein list
Titel: Antw:DOIF box_wlan_5GHz on
Beitrag von: Thyrador am 26 Juli 2016, 20:23:42
Das scheint in der Tat gerade zu funktionieren, zumindest nach ständigem Browser-Reload hat er getriggert und das Gerät entsprechend geschalten.

Allerdings stört mich hier der lange Zyklus von 5 Minuten (INTERVAL).
Kann man das irgendwie verkürzen?
Ich entschuldige mich für die ganzen vielen, vermutlich ziemlich unnötigen, Fragen, aber ich habe gerade erst damit angefangen (und ich denke auch viel allein geschafft), Perl finde ich sehr gruselig, auch wenn ich selbst mit .NET entwickle. In einigen Punkten war die Commandref dann auch nicht so zielführend und passendere Beispiele hier im Forum dann manchmal schon sehr alt. Kurzum: Ich habe mir nicht genug Zeit genommen und war eben zu ungeduldig. Deswegen seid ihr jetzt die leidgeplagten 😜
Titel: Antw:[gelöst] DOIF box_wlan_5GHz on
Beitrag von: automatisierer am 26 Juli 2016, 21:51:10
der 5 Minuten Intervall liegt ja an den Einstellungen in deinem FritzBox Device. Denke mal 5 Minuten ist voreingestellt. Mit dem 'attr FritzBoxBasis INTERVAL xx' kannst du den Intevall in Sekunden einstellen...

Titel: Antw:[gelöst] DOIF box_wlan_5GHz on
Beitrag von: Thyrador am 27 Juli 2016, 06:23:44
Das hatte ich schonmal gemacht. Im Internals steht's weiter auf 300 Sekunden (aber kann ja auch der ausgelesene Wert sein) und getriggert wird dennoch nur alle 300 Sekunden :(
Titel: Antw:[gelöst] DOIF box_wlan_5GHz on
Beitrag von: automatisierer am 27 Juli 2016, 10:08:04
ich frage meine Fritte alle 70 Sekunden ab und das funktioniert.

zwei Schlussfolgerungen:
1. du liest nicht gerne in der Comandreff  8) 8)
2. du hast einen INTERVAL <60 Sekunden ausprobiert.
Titel: Antw:[gelöst] DOIF box_wlan_5GHz on
Beitrag von: Thyrador am 27 Juli 2016, 14:43:20
Zitat von: automatisierer am 27 Juli 2016, 10:08:04
ich frage meine Fritte alle 70 Sekunden ab und das funktioniert.

zwei Schlussfolgerungen:
1. du liest nicht gerne in der Comandreff  8) 8)
2. du hast einen INTERVAL <60 Sekunden ausprobiert.

Ich werd bekloppt. So mir nichts, dir nichts, steht heute einfach 60 drin. In der INTERNALS-Anzeige wollte die 300 gestern einfach nicht der 60 weichen, daher habe ich angenommen, dass da was nicht passt. Heute steht da 60 drin. Schön blöd, so macht man sich ja voll zum Ei :D

1. Ja und nein. In Zeiten von REST und Responsive-Design ist die CommandRef auf dem Smartphone nicht nur eine Vergewaltigung der Ästhetik, sondern auch der Handhabung :D
Da verliert man nicht nur schnell den Überblick, sondern ist auch mal ganz schnell gefrustet, wenn man versehentlich (beim Zoomen und vermutlich das 50000. Mal) einen Link klickt und man schon wieder an der falschen Stelle ist. Und ja, ich habe nunmal Wurstfinger :D
Kann ja nichts dafür, dass die Displays von heute alle so klein sind (und ich hab schon ein Note4 :D)
Außerdem find ich die Kommunikation mit echten Menschen irgendwie ansprechender, statt mich mit so einer schnöden Seite rumzuärgern :P

2. Genaugenommen nein, hab's auf 60 eingestellt weil ich irgendwo mal gelesen habe, dass das der kleinste Wert ist, den die Fritte hier akzeptiert.

Ich danke trotzdem, und wiederholt. Vllt musste meine Fritte mal ne Nacht drüber schlafen, um sich einig zu werden, was sie will :D
Werde dann ja heute beim Heimkommen sehen, ob dann alles so klappt, wie ich mir das wünsche. Da sollte dann ja spätestens nach 60 Sekunden ne Reaktion erfolgen. Bin mal gespannt. Sonst nerve ich hier einfach weiter :D

EDIT:
So, hab gestern nochmal getestet, klappt jetzt alles. Gerät schaltet, wie es soll (innerhalb kurzer Zeit, hab nicht gemessen ob's wirklich nur <60 Sekunden war, stehe allerdings auch nicht penibel daneben und erwarte, dass hier sofort getriggert wird [auch wenn es schöner wäre ;)]).
Hier kommen mir noch ein paar neckische Ideen, die Anhand bestimmter Zustände dann entsprechend Licht/Geräte schalten.
Wenn ich da nochmal Fragen haben sollte, dann weiß ich ja, wohin ich mich wenden kann :)