Notify mit && Verküpfungen

Begonnen von mkoerner, 08 Dezember 2015, 15:34:58

Vorheriges Thema - Nächstes Thema

mkoerner

Hallo zusammen,

ich bin hier gerade neu mit dem Thema FHEM und versuche mich am Anfang mit dem automatisierten Schalten meines WLAN´s im Haus.
Folgender Aufbau:
1. RaspberryPI auf dem FHEM läuft
2. FritzBoxCable 6360 Cable als zentraler Access Point
3. 2mal FritzRepeater 1750E
Um bei allen 3 AVM-Geräten das WLAN gleichzeitig ein und ausschalten zu können habe ich eine Gruppe allWLAN angelegt. Darüber das WLN komplett aus- und einzuschalten funktionoert perfekt.
Nun will ich aber, wenn kein WLAN-Gerät mehr im Haus ist (konkret alle Handys und Tablet) das WLAN ausschalten.
Für die Handys habe ich je ein Gerät vom Typ PRESENT angelegt, die mit lan-ping abgefragt werden.
Dazu habe ich einen Notifier WLANOff angelegt.
Der soll nun darauf reagieren, daß alle Handys weg sind und dann das WLAN ausschalten.
Unter DEF steht nun also:
Handy1:absent.*&&Handy2:absent.*&&Handy3:absent.* set allWlan wlan off
Leider reagiert das überhaupt gar nicht. Selbst wenn alle Geräte absent sind, wird das WLAN nicht abgeschaltet.
Einer eine Idee an was das liegen könnte?

Danke

Mathias

CoolTux

Hallo und Willkommen,

Zur besseren Einarbeitung empfehle ich Dir das Einsteiger PDF
http://forum.fhem.de/index.php/topic,19621.0.html

Hier gibt es noch einige Tips
http://forum.fhem.de/index.php/topic,16311.0.html




Grüße

PS: Noch ein kleiner Tip. Du willst anscheinend nach Süden mit Deinem Notify, fliegst aber volle Kanne Richtung Norden mit der jetzigen Lösung.
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

mkoerner

Hallo CoolTux,

schön, daß Du so schnell antwortest, allerdings waren meine Fragen keine Fragen, die mit Allgemeinplätzen zu beantworten sind. :-(
Das PDF war das Erste, was ich mir zu dem Thema angelesen habe.
Auch Dein zweiter Verweis hilft mir hier nicht weiter.
Glaube mir, daß ich eine Frage erst dann stelle, wenn ich keine Antwort finde. Dafür bin ich selbst schon lange genug Programmierer.
Und auf diese Frage habe ich bisher keine sinnvolle Antwort gefunden.
Leider kann ich mit Deinem PS auch nichts anfangen. Was soll das bedeuten?
Also bitte sinnvolle Antworten.

Danke

Mathias

CoolTux

Wenn das Dein Notify ist

Handy1:absent.*&&Handy2:absent.*&&Handy3:absent.* set allWlan wlan off

dann hast Du definitiv nichts zu notify gelesen.

Ich würde Dir empfehlen für Dein Vorhaben entweder Residents und Roommate oder Du machst aus Deinen Handys eine structure und triggerst das notify auf deine structure.


Grüße
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

mkoerner

Hallo CoolTux,

danke für die Antwort.
Das mit der Struktur habe ich versucht, aber das hatte ich entweder nicht verstanden oder es funktioniert tatsächlich nur so,
daß wenn eines der Handys auf absent ist die ganze Struktur absent ist.
Ich wollte aber erst ausschalten wenn alle Handys absent sind.
Ich hatte im notify auch verschiedene Optionen mit Klammerung und ohne Klammerung versucht, aber es hat nichts funktioniert.
Ein zweiter notify, der das WLAN nachts abschaltet, wenn der SmartTV aus ist funktioniert hingegen:

SmartTV:DISCONNECTED.*
{my $hm = sprintf("%02d:%02d", $hour, $min);
if ($hm gt "22:30") {fhem ("set allWlan wlan off") }}

Das funktioniert absolut perfekt und so etwas ähnliches wollte ich mit den Handys ausprobieren.
Ich glaube schon, daß ich an der Stelle den notify verstanden habe  ;)

Gruß

Mathias

viegener

Die Aussage, dass Du den notify-Befehl nicht wirklich angeschaut hast würde ich unterschreiben, aber um Dir Hilfestellung zu geben, es gibt im notify kein && für die Events ...

Kein Support über PM - Anfragen gerne im Forum - Damit auch andere profitieren und helfen können

CoolTux

Der Status einer Struktur hängt von den Stati der zugefügten Devices ab. Dabei wird das propagieren der Stati der Devices in zwei Gruppen klassifiziert und mittels diesem Attribut definiert:

    absolute
    Die Struktur wird erst dann den Status der zugefügten Devices annehmen, wenn alle Devices einen identischen Status vorweisen. Bei unterschiedlichen Devictypen kann dies per Attribut <struct_type>_map pro Device beinflusst werden. Andernfalls hat die Struktur den Status "undefined".
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

viegener

Achso und der zweite Hinweis bezog sich wohl auch darauf, wo das Post besser aufgehoben wäre --> Anfängerfragen...
Kein Support über PM - Anfragen gerne im Forum - Damit auch andere profitieren und helfen können

mkoerner

Hallo zusammen,

danke für die Antworten.
Zitat von: viegener am 08 Dezember 2015, 16:27:42
Die Aussage, dass Du den notify-Befehl nicht wirklich angeschaut hast würde ich unterschreiben, aber um Dir Hilfestellung zu geben, es gibt im notify kein && für die Events ...
Das habe ich wohl übersehen bzw. gerade nochmal nachgelesen. Das steht zumindest nicht im PDF oder auch nicht im commandref. Ausserdem funktionert ein ODER sehr wohl. strange.

Zitat von: CoolTux am 08 Dezember 2015, 16:28:08
Der Status einer Struktur hängt von den Stati der zugefügten Devices ab. Dabei wird das propagieren der Stati der Devices in zwei Gruppen klassifiziert und mittels diesem Attribut definiert:

    absolute
    Die Struktur wird erst dann den Status der zugefügten Devices annehmen, wenn alle Devices einen identischen Status vorweisen. Bei unterschiedlichen Devictypen kann dies per Attribut <struct_type>_map pro Device beinflusst werden. Andernfalls hat die Struktur den Status "undefined".
Danke für die Definition. Ich denke das löst genau mein Problem.
Das werde ich später direkt testen.

Zitat von: viegener am 08 Dezember 2015, 16:29:37
Achso und der zweite Hinweis bezog sich wohl auch darauf, wo das Post besser aufgehoben wäre --> Anfängerfragen...
Das hatte ich mir zuerst auch überlegt, aber dann mich nicht direkt da dirn gefunden. Ausserdem behandelt dieses Forum doch auch genau das Thema "notify", oder nicht?

Vielen Dank,

Mathias

frank

Zitat, aber um Dir Hilfestellung zu geben, es gibt im notify kein && für die Events ...
wenn man verstanden hat, was events sind, dann braucht man auch grundsätzlich nicht nach einer und-verknüpfung von events fragen. ohne verständnis der events wird man mit fhem nicht glücklich werden.
FHEM: 6.0(SVN) => Pi3(buster)
IO: CUL433|CUL868|HMLAN|HMUSB2|HMUART
CUL_HM: CC-TC|CC-VD|SEC-SD|SEC-SC|SEC-RHS|Sw1PBU-FM|Sw1-FM|Dim1TPBU-FM|Dim1T-FM|ES-PMSw1-Pl
IT: ITZ500|ITT1500|ITR1500|GRR3500
WebUI [HMdeviceTools.js (hm.js)]: https://forum.fhem.de/index.php/topic,106959.0.html

mkoerner

Zitat von: frank am 08 Dezember 2015, 16:40:58
wenn man verstanden hat, was events sind, dann braucht man auch grundsätzlich nicht nach einer und-verknüpfung von events fragen. ohne verständnis der events wird man mit fhem nicht glücklich werden.

Mit Nachdenken kommt da auch drauf, stimmt. Wundert mich aber dann trotzdem, daß mehrere Events mit | verknüpft werden können.

CoolTux

Zitat von: mkoerner am 08 Dezember 2015, 16:39:44
Ausserdem funktionert ein ODER sehr wohl. strange.

Das hat mit ODER im klassichen Sinn nichts zu tun. Das ist keine ODER Bedingung sondern ein RegEx welches halt auf alles anspricht welches dem String enthält.


define WLANOF notify Handy1|Handy2|Handy3:absent set WLAN off
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

mkoerner

Zitat von: CoolTux am 08 Dezember 2015, 16:45:30
Das hat mit ODER im klassichen Sinn nichts zu tun. Das ist keine ODER Bedingung sondern ein RegEx welches halt auf alles anspricht welches dem String enthält.


define WLANOF notify Handy1|Handy2|Handy3:absent set WLAN off


Aha, danke für die Erklärung,
Dann muß ich wohl noch etwas mehr zum RegEx lesen.
Danke.

frank

events sind ereignisse/trigger zu bestimmten zeitpunkten. siehe eventmonitor.
notifys lauschen auf diese events und werden ausgeführt, wenn ein event auf die regex vom notify passt.
die events kommen grundsätzlich nacheinander. da es keine gleichzeitigen events gibt, macht die und-verknüpfung gar keinen sinn.
aber eine oder-verknüpfung lässt das notify auf mehrere verschiedene events reagieren.
FHEM: 6.0(SVN) => Pi3(buster)
IO: CUL433|CUL868|HMLAN|HMUSB2|HMUART
CUL_HM: CC-TC|CC-VD|SEC-SD|SEC-SC|SEC-RHS|Sw1PBU-FM|Sw1-FM|Dim1TPBU-FM|Dim1T-FM|ES-PMSw1-Pl
IT: ITZ500|ITT1500|ITR1500|GRR3500
WebUI [HMdeviceTools.js (hm.js)]: https://forum.fhem.de/index.php/topic,106959.0.html