notify - Lampe bei Abwesenheit und Sonnenuntergang einschalten

Begonnen von Ollek, 10 Mai 2016, 10:03:32

Vorheriges Thema - Nächstes Thema

Ollek

Hallo zusammen,

ich habe meine erste Lampe mit einem HM Empfänger verbaut und möchte nun meinen ersten schwierigeren notify schreiben.  ;)

Folgendes möchte ich erreichen: Die Lampe soll bei Abwesenheit Person1 und Person2 und nach eintreten des Sonnenuntergangs angehen. Ich habe dort folgenden notify mit meinem aktuellen wissen geschrieben. Zur Erklärung Person1 und person2 sind Watchdog's.

Würde das ganze so funktionieren? Gibt es Verbesserungsvorschläge?

Zitat
define FlurlampeAnBeiAbwesenheit notify (Person1|Person2|Sonnenuntergang) {
my $r1 = Value("Person1");;
my $r2 = Value("Person2");;
my $r3 = Value("Sonnenuntergang");;
my $hm = sprintf("%02d:%02d", $hour, $min);
if($hm gt $r3){
   if ($r1 eq "off" && $r2 eq "off") {
     fhem "set Flurlampe_EG on"
   } else {
     fhem "set Flurlampe_EG off"
   }
}
}

Vielen Dank für eure Unterstützung. :-)

frank

ZitatWürde das ganze so funktionieren?
sei mutig. einfach ausprobieren und fhem.log und eventmonitor beobachten.
zum debuggen kannst du logzeilen einfügen und eventuell verbose vom notify hochdrehen.

ich denke, dass der zeitvergleich problematisch ist.
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

Ollek

Werde ich machen.

Allerdings habe ich noch eine andere Frage:
Wird der notify automatisch ausgeführt bzw, aufgerufen? Oder muss ich diesen irgendwo mit reinpacken, dass er ausgelöst wird?

Meine Idee wäre nun: Wenn Person1 oder Person2 das Haus verlässt, dann soll der notify auch mit ausgeführt werden?
Oder habe ich gerade einen Denkfehler? :-/

CoolTux

Bitte lese zum Verständnis der Funktionsweise von FHEM und Notify im besonderen das Einsteiger PDF. Dann sind solche Frage bereits von Dir selbst beantwortet.

Zitat
Zur Erklärung Person1 und person2 sind Watchdog's.

Da ich diese Aussage nicht korrekt interpretieren kann, würde ich sagen das der Ansatz falsch ist. Person1 und Person2 sollten entweder presence Devices sein oder Dummy Devices. In beiden Fällen sollten die Zustande der jeweiligen Devicetypen entsprechend geschalten werden. Entweder durch sich selbst da die Modulfunktion das her gibt (presence) oder durch ein watchdog,DOIF,notify (Dummy).
Es gibt einen sehr ausführlichen Wikiartikel zum Thema Anwesenheitserkennung.


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

Morgennebel

Läßt sich das nicht viel eleganter mit einem DOIF realisieren, in etwa:


define DI_FlurLichtPresence DOIF ([{sunset(0,"17:00","21:00")}-03:00] and [Person1:presence] eq "absent" or [Person2:presence] eq "absent")
   set FlurLicht on
DOELSE
   set FlurLicht off


Ciao, -MN
Einziger Spender an FHEM e.V. mit Dauerauftrag seit >= 24 Monaten

FHEM: MacMini/ESXi, 2-3 FHEM Instanzen produktiv
In-Use: STELLMOTOR, VALVES, PWM-PWMR, Xiaomi, Allergy, Proplanta, UWZ, MQTT,  Homematic, Luftsensor.info, ESP8266, ESERA

Ollek

Zitat von: CoolTux am 10 Mai 2016, 13:36:59
Da ich diese Aussage nicht korrekt interpretieren kann, würde ich sagen das der Ansatz falsch ist. Person1 und Person2 sollten entweder presence Devices sein oder Dummy Devices.

Sind beides Dummy Devices. :-)
Danke, werde ich mal lesen.

Ollek

Zitat von: Morgennebel am 10 Mai 2016, 13:43:24

define DI_FlurLichtPresence DOIF ([{sunset(0,"17:00","21:00")}-03:00] and [Person1:presence] eq "absent" or [Person2:presence] eq "absent")
   set FlurLicht on
DOELSE
   set FlurLicht off



So habe ich es mal umgesetzt und muss sagen, es ist wirklich einfacher.
Eine Frage habe ich noch die -03:00.. was bedeuten die? Diese habe ich mal rausgenommen. Werden drei Minuten von der Zeit heruntergenommen?

Danke!

CoolTux

Die Antwort findest Du in der Commandref zu DOIF unter Zeitsteuerung und Zeitberechnung
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

Ollek

(http://uploads.tapatalk-cdn.com/20160510/d1047ca9c2c8fb6776fee01dde4a1af4.jpg)

Diese Fehlermeldung erhalte ich im log. Ist DOIF kein Type?

Danke. :)


Gesendet von iPhone mit Tapatalk

Damian

Zitat von: Ollek am 10 Mai 2016, 22:11:55
(http://uploads.tapatalk-cdn.com/20160510/d1047ca9c2c8fb6776fee01dde4a1af4.jpg)

Diese Fehlermeldung erhalte ich im log. Ist DOIF kein Type?

Danke. :)


Gesendet von iPhone mit Tapatalk

hast du die aktuelle Version?

$Id: 98_DOIF.pm 11314 2016-04-26 18:29:24Z damian-s $
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

Ollek

Hatte ich nicht, habe ein update gemacht. Bisher kein Error Eintrag im Log. Dann werde ich heute Abend mal schauen, ob es funktioniert. Danke dir. Solche Kleinigkeiten sehe ich nicht direkt, aber davon lernt man. :-)

Ollek

Habe heute Abend mal drauf geachtet und herumgespielt. Lampe ging nicht an.
Folgenden Log-Eintrag habe ich gefunden.

Zitat
2016.05.11 22:20:50 2: DI_FlurLichtPresence: set Flurlampe_EG on: Please define Flurlampe_EG first

Warum muss ich die Flurlampe definieren?
Kann ich den Empfänger nicht über den Alias ansprechen?
In der Definition des Moduls steht folgendes:

alias Flurlampe_EG

Die Fehlermeldung verwirrt mich etwas. oder besteht noch ein anderer Fehler?

Gruß

Morgennebel

Was sagt denn die Commandref zu dem Thema alias?

Ciao, -MN
Einziger Spender an FHEM e.V. mit Dauerauftrag seit >= 24 Monaten

FHEM: MacMini/ESXi, 2-3 FHEM Instanzen produktiv
In-Use: STELLMOTOR, VALVES, PWM-PWMR, Xiaomi, Allergy, Proplanta, UWZ, MQTT,  Homematic, Luftsensor.info, ESP8266, ESERA