Anwesenheit per G-TAG der Einwohner im Haus

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

Vorheriges Thema - Nächstes Thema

CoolTux

Stimmt, ich Dussel. Aber mach mal bitte eher eine Weg. Also jetzt zwei


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


Deins ist nicht falsch aber so ist der Code sauberer.
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

editiert!

funktioniert schon mal hab es mal etwas editiert sodass das flurlicht nur für 60 Sekunden an sein soll.

DEFINE DOIF_Lichtersteuerung DOIF ([rgr_Residents:state] eq "home" and [?LichtWetter:state] > 6 and [?LichtWetter:twilight_weather] < 55) (set Flur_Licht on-for-timer 60) DOELSE ()

CoolTux

Und nun erweitern wir das ganze



DEFINE DOIF_Lichtersteuerung DOIF ([rgr_Residents:state] eq "home" and [?LichtWetter:state] > 6 and [?LichtWetter:twilight_weather] < 55) (set Flur_Licht on-for-timer 60) DOELSEIF ([rgr_Residents:state] eq "absent") (set Gesamtes_Licht 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

Micky


aktuell:
([rgr_Residents:state] eq "home" and [?LichtWetter:state] > 6 and [?LichtWetter:twilight_weather] < 55)
(set Flur_Licht on-for-timer 60)


DOELSEIF
([rgr_Residents:state] eq "absent")
(set Gesamtes_Licht off)


DOELSE ()


getestet und funktioniert, beim verlassen wird das licht Deaktivert !

Micky

ist es besser wenn man das alles so trennt ?

also Lichtersteuerung .... und dann einzelne DOIF mit Notify oder mit Perl myUtilities kombiniert um Pushnachrichten zu bekommen ?
dann rollosteuerung usw...

ich hatte vorher nur away / HOME aber alles rein.


kann man jetzt zB sagen


([rgr_Residents:state] eq "home" and [?LichtWetter:state] > 6 and [?LichtWetter:twilight_weather] < 55)
(set Flur_Licht on-for-timer 60)


DOELSEIF
([rgr_Residents:state] eq "absent" and not [DOIF_Lichtersteuerung:state] =~ m/cmd_3/)
(set Gesamtes_Licht off)

DOELSEIF
([rgr_Residents:state] eq "home" and [{twilight ("LichtWetter","ss_astro","19:00","22:45")}])
(set Flur_Licht on-for-timer 3600, set Flur_Lampe dim 5)

DOELSE



allerdings würde jetzt die cmd_2 also Bedingung 2 das licht sofort wieder deaktivieren, ergibt es sinn es so umzuschreiben wie ich es umgeschrieben habe ?

CoolTux

Nein. So gar nicht.
Am besten ist Du unterscheidest zwischen Ereignis und Zustandsabfrage. Nach Möglichkeit sollte versucht werden sich auf ein Ereignis zu beschränken und dann Zustände ab zu fragen.
Das DOELSE kannst Du nun weg lassen.

([rgr_Residents:state] eq "home" and [?LichtWetter:state] > 6 and [?LichtWetter:twilight_weather] < 55)
(set Flur_Licht on-for-timer 60)


DOELSEIF
([rgr_Residents:state] eq "absent")
(set Gesamtes_Licht off)


DOELSEIF
([{twilight ("LichtWetter","ss_astro","19:00","22:45")}] and [?rgr_Residents:state] eq "home")
(set Flur_Licht on-for-timer 3600, set Flur_Lampe dim 5)


Du hast verstanden wofür die Fragezeichen stehen?
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

#66
ok mach ich.

die Fragezeichen vor den Readings, nein nicht wirklich.

würde jetzt nicht cmd_2 das licht immer wieder deaktivieren ?
hab im letzten Befehl auf absent gestellt das soll nur passieren wenn ich nicht da bin. Und der Reinfolge nach Morgens Abens.


([rgr_Residents:state] eq "home" and [?LichtWetter:state] > 6 and [?LichtWetter:twilight_weather] < 55)
(set Flur_Licht on-for-timer 60)

DOELSEIF
([{twilight ("LichtWetter","ss_astro","19:00","22:45")}] and [?rgr_Residents:state] eq "absent")
(set Flur_Licht on-for-timer 3600, set Flur_Lampe dim 5)

DOELSEIF
([rgr_Residents:state] eq "absent")
(set Gesamtes_Licht off)

CoolTux


DOELSEIF
([{twilight ("LichtWetter","ss_astro","19:00","22:45")}] and [?rgr_Residents:state] eq "absent")
(set Flur_Licht on-for-timer 3600, set Flur_Lampe dim 5)


Warum eq absent. Das Licht soll doch nur angehen wenn auch einer zu Hause ist.

Die Fragezeichen bedeuten das nur abgefragt werden soll aber nicht auf Veränderungen reagiert. Bitte lese die DOIF Commandref wenn Du es verwenden willst.

Bei den obigen Beispiel soll das Licht angehen wenn ss_astro geschalten wird. Aber wie gesagt es macht ja nur Sinn wenn auch einer zu Hause ist.
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, 21:31:04
Bei den obigen Beispiel soll das Licht angehen wenn ss_astro geschalten wird. Aber wie gesagt es macht ja nur Sinn wenn auch einer zu Hause ist.

ist zur Abschreckung ... als wäre jemand zuhause also bei absent !

will sogar das Flur_Licht, dann Kueche_Licht , Bad_Licht abwechselt angehen und wieder aus

Micky

#69
warum eigentlich die >6 es gibt doch nur max 6 steht zumindest hier: https://wiki.fhem.de/wiki/Twilight

Wie kann man das für die Rollo'S Regeln ? finde das so total unübersichtlich
Morgens bei normalen wetter aufgehen .... und tagsüber prüfen ob Gewitter Orkan usw.... dann runterfahren andernfalls erst gegen 22 Uhr runterfahren ?



([rgr_Residents:state] eq "absent" and [{twilight ("LichtWetter","sr_indoor","08:00","10:00")}] > 6 and [Wetter:condition] =~ m/|kalt|Klar|sonnig|bewölkt|teilweise|überwiegend/)
(set alle_Rollos up)

DOELSEIF
([rgr_Residents:state] eq "absent" and [{twilight ("LichtWetter","sr_indoor","11:00","17:00")}] > 6 and [Wetter:condition] =~ m/|kalt|Klar|sonnig|bewölkt|teilweise|überwiegend/)
(set alle_Rollos up)

DOELSEIF
([rgr_Residents:state] eq "absent" and [{twilight ("LichtWetter","sr_indoor","11:00","17:00")}] > 6 and [Wetter:condition] =~ m/windig|Gewitter|Schnee|Regen|Schauer|Schnee|Eisregen|vereinzelt/)
(set alle_Rollos dim 40)


DOELSEIF
([rgr_Residents:state] eq "absent" and [{twilight ("LichtWetter","sr_indoor","11:00","17:00")}] > 6 and [Wetter:condition] =~ m/Tornado|schwer|Regen|Schauer|Schnee|Hagel|Smog|blustery/)
(set alle_Rollos down)

DOELSEIF
([rgr_Residents:state] eq "absent" and [?LichtWetter:state] > 6 and [?LichtWetter:twilight_weather] < 55)
(set alle_Rollos dim 40)

DOELSEIF
([rgr_Residents:state] eq "absent" and [{twilight("Sonnenstand","ss_astro","17:00","23:00")}])
(set alle_Rollos down)

DOELSE


danke

CoolTux

Der state geht bis 12 das light Reading bis 6

Du kannst ein Rollo Modul nehmen oder machst Notify mit myUtils. Gibt viele Wege.
Alleine meine Lichtsteuerung hat in einer myUtils 50 Zeilen Code.
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

#71
kannst du mir so ein Auszug zeigen, also meine eine Aktion ?
Damit ich es für die meine übernehmen kann ?

doelseif geht also nicht ?

hab so ein structure mit allen Rollos
kann man das nicht verwenden ?

Internals:
   ATTR       alle_Rollos
   CHANGEDCNT 0
   DEF        alle_Rollos Bad_Rollo Kueche_Rollo AZ_Rollo WZ_Rollo_Links WZ_Rollo_Rechts SZ_Rollo_Links SZ_Rollo_Rechts
   NAME       alle_Rollos
   NR         37
   NTFY_ORDER 50-alle_Rollos
   STATE      dim 40
   TYPE       structure
   READINGS:
     2018-02-25 19:47:25   state           dim 40
Attributes:
   devStateIcon up:fts_shutter_10@green down:fts_shutter_100@white s/[0-9]|1\d.*:fts_shutter_90 s/[0-9]|2\d.*:fts_shutter_80 s/[0-9]|3\d.*:fts_shutter_70 s/[0-9]|4\d.*:fts_shutter_60 s/[0-9]|5\d.*:fts_shutter_50 s/[0-9]|6\d.*:fts_shutter_40 s/[0-9]|7\d.*:fts_shutter_30 s/[0-9]|8\d.*:fts_shutter_20 s/[0-9]|9\d.*:fts_shutter_10 s/[0-9]|99\d.*:fts_shutter_10
   disable    1
   eventMap   on:up off:down
   icon       fts_shutter_10
   room       Homekit,Wohnung,ZWave
   stateFormat 0
   webCmd     dim:up:down:dim 20:dim 40:dim 60:dim 80

CoolTux

Guten Morgen,

Wie meinst Du das, DOELSEIF geht also nicht?
Dein DOIF oben für die Rolladen? Kann man so machen. Vielleicht weniger Auslöser. Also die Anwesenheit zum Beispiel würde ich nur abfragen.
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

Guten Morgen,

ich hab wenig Ahnung mit DOIF und noch viel weniger mit Perl.
Deshalb meinte ich kannst du mir so einen ausschnitt erstellen von zB den Doif Rollo den ich hab in Perl?
Evtl nur eine aktion bei unwetter schliessen den Rest versuche ich dann und zeige dir das ergebnis.
Nur um dir nicht so viel Zeit und nerven zu kosten.

Vielen Dank!

CoolTux

Muss ich mal schauen. Habe ja keine Rolladen.
Das DOIF kann man ja lassen. Du musst nur schauen das Du nicht auf alles triggerst. Oder Du schaust Dir das Rolladenmodul an.
https://forum.fhem.de/index.php/topic,73964.0.html
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