Anwesenheit per G-TAG der Einwohner im Haus

Begonnen von Micky, 23 Februar 2018, 13:11:55

Vorheriges Thema - Nächstes Thema

Micky

#45
CoolTux eine frage habe ich noch, wieso nutzt du nur Notify bzw. wieso soll ich es verwenden, ich finde DOIF doch eigentlich ne super Lösung ?

Das heisst du machst alles per PERL, also doch über die MyUtilitys und hast einige Notify's ?


und hier ein list HomeStatus sorry nochmal habs überlesen

Internals:
   NAME       HomeStatus
   NR         32
   STATE      away
   TYPE       dummy
   READINGS:
     2018-02-24 01:19:06   state           away
Attributes:
   group      Home-Status
   room       Home-Status,Homekit
   setList    state:home,away,holiday,night
   webCmd     home:away:holiday:night



Zitat von: CoolTux am 24 Februar 2018, 07:15:05

set Pushnachricht msg 'Anwesenheit entdeckt' 'Willkommen in deinem Reich smarthome bleibt Inaktiv!''Micky-Smartphone' 0 'persistent'

Vergiss diese Schreibweise für Pushover, das ist die alte schreibweise und kommt bestimmt bald entfernt. Nimm bitte die neue.

So schickst Du eine Nachricht an alle Geräte welche in Pushover eingebunden sind

set pushmsg msg title=Anwesenheit entdeckt'! Willkommen in deinem Reich smarthome!



So schickst Du nur Dir eine Nachricht

set pushmsg msg title=Anwesenheit entdeckt'! device=Micky-Smartphone Willkommen in deinem Reich smarthome!



So nur Dir mit Priorität

set pushmsg msg title=Anwesenheit entdeckt'! device=Micky-Smartphone priority=1 Willkommen in deinem Reich smarthome!


Kannst du mir noch sagen wie man noch das [rgr_Residents:residentsTotalPresentNames] mit angibt, klappt beim mir nicht, habs schon so oft versucht.
set pushmsg msg title=Smarthome wird deaktiviert! [rgr_Residents:residentsTotalPresentNames] ist zu Hause. device=Micky-Iphone

Nachricht:
Smarthome
wird deaktiviert!
[rgr_Residents:residentsTotalPresentNames] ist zu Hause.

der Name wird nicht mit gesendet sonder wie es steht nur das Reading.

CoolTux

Zitat von: Micky am 24 Februar 2018, 22:26:19
CoolTux eine frage habe ich noch, wieso nutzt du nur Notify bzw. wieso soll ich es verwenden, ich finde DOIF doch eigentlich ne super Lösung ?

Das heisst du machst alles per PERL, also doch über die MyUtilitys und hast einige Notify's ?


und hier ein list HomeStatus sorry nochmal habs überlesen

Internals:
   NAME       HomeStatus
   NR         32
   STATE      away
   TYPE       dummy
   READINGS:
     2018-02-24 01:19:06   state           away
Attributes:
   group      Home-Status
   room       Home-Status,Homekit
   setList    state:home,away,holiday,night
   webCmd     home:away:holiday:night



Kannst du mir noch sagen wie man noch das [rgr_Residents:residentsTotalPresentNames] mit angibt, klappt beim mir nicht, habs schon so oft versucht.
set pushmsg msg title=Smarthome wird deaktiviert! [rgr_Residents:residentsTotalPresentNames] ist zu Hause. device=Micky-Iphone

Nachricht:
Smarthome
wird deaktiviert!
[rgr_Residents:residentsTotalPresentNames] ist zu Hause.

der Name wird nicht mit gesendet sonder wie es steht nur das Reading.

Du kannst natürlich auch DOIF nehmen, kenne mich damit aber nicht besonders aus. Ich mache das meiste mit notifys und größere Sachen dann in einer myUtils.
SetMagic, also das [rgr_Residents:residentsTotalPresentNames], scheint mit dem Pushover Modul in der Tat nicht zu funktionieren. Da müssen wir wohl auf Perl ausweichen.

{ fhem("set pushmsg msg title=Smarthome wird deaktiviert! " . ReadingsVal('rgr_Residents','residentsTotalPresentNames',0) . " ist zu Hause. device=Micky-Iphone") }


Als Notify wäre das ganze dann so, damit Du alle Roommates triggerst.


define notifyRoommates notify rr_.*:home { fhem("set pushmsg msg title=Smarthome wird deaktiviert! " . ReadingsVal('rgr_Residents','residentsTotalPresentNames',0) . " ist zu Hause. device=Micky-Iphone") }
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

Micky

Dh  ich könnte doif doch alle bedingungen ausführen und auf den notify für die pushnachricht referenzieren?

Oder komplett per perl? Wie würdest du es realisieren?

Ich hab halt alles in doif da ich wie gesagt sunset rollen auf usw verschachtelt habe.
Sowie abwesend lichter aus usw.

Danke nochmal

CoolTux

Wenn Du mit DOIF besser klar kommst kannst Du das auch gerne in ein DOIF gießen. Eine myUtils lohnt sich bei umfangreichen Code.

Zeig mal was Du nun hast. Den HomeStatus Dummy brauchst Du ja nun nicht mehr, der wird ja durch Residenz abgelöst.
Lass uns mal klein anfangen. Was soll passieren wenn der erste Bewohner nach Hause kommt und somit ein Roommate home geht und die Residenz home geht?
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

Micky

#49
Doif
Home_Status_Away


([HomeStatus] eq "away" and
[MickyGtag] eq "present")
(set HomeStatus home, set Pushnachricht msg title='Anwesenheit entdeckt' device=Micky-Iphone 'Willkommen in deinem Reich smarthome bleibt Inaktiv!')

DOELSEIF
([HomeStatus] eq "away" and
[MickyGtag] eq "absent" and [Gesamtes_Licht:state] =~ m/undefined|on/)
(set Gesamtes_Licht off, set Pushnachricht msg title='Abwesenheit und Lichter angelassen' device=Micky-Iphone 'Es wird von Home auf AWAY umgeschaltet und Lichter Deaktiviert {(localtime)}')

DOELSEIF
([HomeStatus] eq "away" and [{twilight ("LichtWetter","sr_indoor","08:00","11:00")}] and [Wetter:condition] =~ m/Gewitter|Schnee|Regen|Schauer|Schnee/)
(set Gesamtes_Licht off, set alle_Rollos dim 60, set Pushnachricht msg 'Info' device=Micky-Iphone 'Wetter ist wechselhaft ROLLO werden um 40% geschlossen {(localtime)}')

DOELSEIF
([HomeStatus] eq "away" and [{twilight ("LichtWetter","sr_indoor","08:00","11:00")}] and [Wetter:condition] =~ m/neblig|Dunst|heiss|windig|kalt|sonne|bewölkt|Klar|sonnig|Wechselhaft|wolkig|überwiegend wolkig/)
(set Gesamtes_Licht off, set alle_Rollos up, set Pushnachricht msg 'Info' device=Micky-Iphone 'Wetter ist gut Rolladen werden komplett geöffnet {(localtime)}')

DOELSEIF
([HomeStatus] eq "away" and [{twilight ("LichtWetter","ss_astro","19:00","22:45")}])
(set Gesamtes_Licht off, set alle_Rollos dim 40, set Pushnachricht msg 'Info' device=Micky-Iphone 'Rolladen schliessen um 60% aufgrund Dämmerung {(localtime)}')

DOELSEIF
([HomeStatus] eq "away" and [{twilight ("LichtWetter","ss_astro","19:00","22:45")}])
(set Flur_Licht on-for-timer 30, set Flur_Lampe dim 5, set Pushnachricht msg 'Info' device=Micky-Iphone 'Lichtspiel geht für 30sek an {(localtime)}')

DOELSEIF
([HomeStatus] eq "away" and
[DOIF_HomeS_AWAY:state] eq "cmd_6")
(set Kueche_Licht on-for-timer 10, set Kueche_Lampe dim 5, set Pushnachricht msg 'Info' device=Micky-Iphone 'Lichtspiel geht für 10sek an {(localtime)}')

DOELSEIF


Einiges hat kein sinn also lichtspiel wollte ich eigentlich das die räume abens abwechselt beleuchtet werden, alelrdingns hab ich das noch nicht richtig hinbekommen.

Und auch mit der Uhrzeit ist es unschön gelöst wurde eher nur mit sunset und sunrise arbeiten.

Da bei away die lichter ausgehen ist das Problem das bei lichterspiel abends die licjter deaktiviert werden deshalb hab ich bei cmd_2 eine ausnahme geschrieben. Klappt aber nicht so.

Das kann ich alles löschen geht mir nur darum das man so halbegs versteht was ich machen wollte


Sorry das ist jetzt meine rasberry pi hier arbeite ich noch mit gtag da ich kein Roommate instlliet habe.

Aber so ist es bei der raspberry meiner eltern auch so, geht ja nur ums prinzip was ich so für dummheiten umsetzten will

Danke

CoolTux

Wir fangen klein an


define doifBewohnerZuHause doif (["^rr_Micky:^home$"]) ( { fhem("set pushmsg msg title=Smarthome wird deaktiviert! $DEVICE ist nach Hause gekommen und es sind nun" . ReadingsVal('rgr_Residents','residentsTotalPresentNames',0) . " zu Hause. device=Micky-Iphone") } )
attr doifBewohnerZuHause do always


Lass uns damit testen und dann erweitern wir.
Willst Du denn wirklich wissen wer noch zu Hause ist oder wollen wir einfach die Rolladensteuerung und Licht machen?
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

Micky

#51
Hi,

ne glaub du hast recht das wird denke ich auf dauer nervig mit den mitteilungen.
Ich bin in 30 min bei den eltern und teste es.

Edit: wieso

rr_Micky = home ?

CoolTux

Weil ich noch die pushmeldung im Kopf hatte.

Machen wir es jetzt mal richtig.

Fangen wir mit dem Licht schalten an, das ist schon komplex genug.
Wir versuchen erstmal das ab zu decken was passiert wenn jemand nach Hause kommt. Das ist unser Ereignis.

define doifLichsteuerung doif ([rgr_Residents:state] eq "home") and [?LichtWetter:state] > 6 and [?LichtWetter:twilight_weather] < 55)  (Gesamtes_Licht on)


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

Micky

danke CoolTux,

also bin jetzt endlich wieder da.

Zitat von: CoolTux am 25 Februar 2018, 18:29:44
Fangen wir mit dem Licht schalten an, das ist schon komplex genug.
Wir versuchen erstmal das ab zu decken was passiert wenn jemand nach Hause kommt. Das ist unser Ereignis.

define doifLichsteuerung doif ([rgr_Residents:state] eq "home") and [?LichtWetter:state] > 6 and [?LichtWetter:twilight_weather] < 55)  (Gesamtes_Licht on)


ok, aber nicht das wenn man die Lichter dann ausschaltet dann doif wieder alles anschaltet. Also wäre es nur bei Ankunft ?
define doifLichsteuerung doif ([rgr_Residents:state] eq "home") and [?LichtWetter:state] > 6 and [?LichtWetter:twilight_weather] < 55)  (Flur_Licht on)

hab mal geändert das nur das Flur licht angeht wenn man gerade zB bei Dämmerung mit Einkäufen rein kommt, richtig ?

Könnte man auch sagen wenn man zB beim Nachbarn ist, kommt und geht die Bluetooth Verbindung, das man es Manuell deaktiviert, also z.B wenn man Roommate auf zuhause stellt ?

CoolTux

Ja das wäre nur bei Ankunft. Und zwar auch nur wenn der erste nach Hause kommt. Also eine ganz einfache Schaltung
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

Micky

ok perfekt.

beim define kommt ein Fehler
define DOIF_Lichsteuerung DOIF ([rgr_Residents:state] eq "home") and [?LichtWetter:state] > 6 and [?LichtWetter:twilight_weather] < 55)  (set Flur_Licht on)

DOIF_Lichsteuerung DOIF: expected DOELSEIF or DOELSE


CoolTux

Zitat von: Micky am 25 Februar 2018, 19:43:48
Könnte man auch sagen wenn man zB beim Nachbarn ist, kommt und geht die Bluetooth Verbindung, das man es Manuell deaktiviert, also z.B wenn man Roommate auf zuhause stellt ?

Verstehe ich nicht ganz. Wenn Du zum Nachbarn gehst und leiner weiter zu Hause ist soll ja das Licht ausgehen. Und dann muß es auch wieder an gehen wenn Du nach Hause kommst. Macht ja sonst keinen Sinn.
Du kannst natürlich bei Deinen GTags ein Attribut angeben
absenceThreshold
Zitat
Die Anzahl an Checks, welche in "absent" resultieren müssen, bevor der Status der PRESENCE-Definition auf "absent" wechselt. Mit dieser Funktion kann man die Abwesenheit eines Gerätes verifizieren bevor der Status final auf "absent" geändert wird. Wenn dieses Attribut auf einen Wert >1 gesetzt ist, werden die Readings "state" und "presence" auf den Wert "maybe absent" gesetzt, bis der Status final auf "absent" wechselt.

Damit verzögerst Du das absent. Falls Du mal den Müll runter bringst
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

Micky

Zitat von: CoolTux am 25 Februar 2018, 19:59:52
Verstehe ich nicht ganz. Wenn Du zum Nachbarn gehst und leiner weiter zu Hause ist soll ja das Licht ausgehen. Und dann muß es auch wieder an gehen wenn Du nach Hause kommst. Macht ja sonst keinen Sinn.
Du kannst natürlich bei Deinen GTags ein Attribut angeben
absenceThreshold
Damit verzögerst Du das absent. Falls Du mal den Müll runter bringst

Problem ist nur, hab schon oft pushnachrichten bekommen ....

"Willkommen in deinem Home" und dann wieder "du bist abwesend schalte smarthome ein" und das im Wechsel. da der Empfang machmal abgerissen ist.

CoolTux

Deswegen ja das verzögerte absent beim presence Device.

Mach mal erstmal

define DOIF_Lichsteuerung DOIF ([rgr_Residents:state] eq "home") and [?LichtWetter:state] > 6 and [?LichtWetter:twilight_weather] < 55)  (set Flur_Licht on) DOELSE ()
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

Micky

#59
Zitat von: CoolTux am 25 Februar 2018, 20:07:37
Deswegen ja das verzögerte absent beim presence Device.

Mach mal erstmal

define DOIF_Lichsteuerung DOIF ([rgr_Residents:state] eq "home") and [?LichtWetter:state] > 6 and [?LichtWetter:twilight_weather] < 55[b]) [/b] (set Flur_Licht on) DOELSE ()


Gute Idee mit dem verzögern.

define DOIF_Lichsteuerung DOIF ([rgr_Residents:state] eq "home") and [?LichtWetter:state] > 6 and [?LichtWetter:twilight_weather] < 55)  (set Flur_Licht on)

DOIF_Lichsteuerung DOIF: expected DOELSEIF or DOELSE: and [?LichtWetter:state] > 6 and [?LichtWetter:twilight_weather] < 55) (set Flur_Licht on) DOELSE ()

Edit:
glaub da ist ne öffnende klammer Zuwenig !??

so geht es

define DOIF_Lichsteuerung DOIF [b](([/b][rgr_Residents:state] eq "home") and [?LichtWetter:state] > 6 and [?LichtWetter:twilight_weather] < 55)  (set Flur_Licht on)

Getestet es funktioniert mit dem Flurlicht bei Anwesenheit.