Notify Anwesenheitserkennung von zwei Handy's

Begonnen von jutil, 04 Februar 2016, 21:54:22

Vorheriges Thema - Nächstes Thema

jutil

Hallo zusammen,
kann mir jemand sagen warum der  Code nicht funktioniert?
Ist eine Anwesenheitserkennung für eine Heizungsschaltung.
define Heizung_an notify JHWLAN:presence:.*|THWLAN:presence:.* { if(Value("THWLAN") eq "present") || (Value("JHWLAN") eq "present") { fhem("set PID_SZ desired 20") } else { fhem("set PID_SZ desired 10") } }

Wenn ich den Code mit nur einem Handy schreibe funktioniert er ohne Probleme.
Demnach müsste es an der "oder" Verknüpfung liegen aber die ist doch so korrekt oder nicht?
define Heizung_an notify THWLAN:presence:.* { if(Value("THWLAN") eq "present") { fhem("set PID_SZ desired 20") } else { fhem("set PID_SZ desired 10") } }

Die Presence Abfragen an sich funktionieren und schalten z.B. auch CommingHomeLight und so ein Zeug also an denen liegt es nicht.


Danke

CoolTux


define Heizung_an notify (JHWLAN|THWLAN):presence:.* { if(Value("THWLAN") eq "present") || (Value("JHWLAN") eq "present") { fhem("set PID_SZ desired 20") } else { fhem("set PID_SZ desired 10") } }


In der Einsteigerdoku ist das super anhand von Beispielen erklärt. Regexp ist hier das Zauberwort.



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

justme1968

schau dir structure an um die handys zusammen zu fassen.

gruss
  andre
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

https://github.com/sponsors/justme-1968

CoolTux

Das wiederum ist bei weitem Cooler   ;D

Alternativ kann man auch mit Residents und Roommate eine Art virtuelles wohnen abbilden. Finde ich sehr interessant wenn man weitere Aktionen auf Basis von Bewohnerzuständen erledigen will.



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

jutil

Zitat von: justme1968 am 05 Februar 2016, 08:30:06
schau dir structure an um die handys zusammen zu fassen.

gruss
  andre

Hallo und danke,

muss ich diesen "Umweg" gehen? Wenn ich die Doku "Notify" richtig verstanden habe dürfte es doch kein Problem sein ein und/oder Vergleich durchzuführen.
Wenn ich diesen Code..
define Heizung_an notify Handy1:.*|Handy2:.* { if(Value("Handy1") eq "on") || (Value("Handy2") eq "on") { fhem("set mach was") } else { fhem("set mach etwas anderes") } }
Kürze auf ...
define Heizung_an notify Handy1:.*|Handy2:.* { if(Value("Handy1") eq "on") { fhem("set mach etwas") } else { fhem("set mache etwas anderes") } }
funktioniert es, auch wenn ich im "Perl Teil" Handy1 gegen Handy 2 tausche ....

Liegt der Fehler dann nicht eher bei dem " || " ??

Bootscreen

dein Problem sind die Klammern:

define Heizung_an notify JHWLAN:presence:.*|THWLAN:presence:.* { if(Value("THWLAN") eq "present") || (Value("JHWLAN") eq "present") { fhem("set PID_SZ desired 20") } else { fhem("set PID_SZ desired 10") } }

Die beiden roten Klammern gehören da nicht hin ;)
Gruß
Oliver

FHEM 5.7 Hardware:
Raspberry PI B+ | HomeMatic USB 2 | 433Mhz Sender (pilight) | nanoCUL (433Mhz)

justme1968

das ist kein umweg sonder der dafür vorgesehene und effiziente weg. erst recht wenn noch ein drittes oder viertes device dazu kommt oder noch mehr aktionen dir davon abhängen. es ist wirklich nicht komplizierter und skaliert sehr viel besser und ist übersichtlicher.

natürlich kannst du alles zu fuß mit notifys und perl code machen. genau so wie du FHEM selber von hand nach bauen kannst.

deine regex macht. ich das was du denkst. die klammerung und reihenfolge ist falsch. einfach nur
  Handy1|Handy2
oder
  (Handy1|Handy2):.*

gruss
  andre
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

https://github.com/sponsors/justme-1968

CoolTux

#7
Und ich würde die Regex so machen


(JHWLAN|THWLAN):presence:.*


Edit: Da war wohl jemand schneller
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

jutil

Ach die blöde Klemmer  ;D Hätte ich auch selbst drauf kommen können, aber da hab ich nachher überhaupt nicht mehr drauf geachtet.
Tausen Dank euch allen für die Hilfestellung und die Tipps!

define notify Heizung_an (JHOnline|THOnline):.* { if(Value("JHOnline") eq "on" || Value("THOnline") eq "on") { fhem("set PID_SZ desired 18.5") } else { fhem("set PID_SZ desired 16") } }