Notify nur einmal täglich zulassen (ohne Dummy möglich?)

Begonnen von chunter1, 03 Oktober 2015, 13:52:35

Vorheriges Thema - Nächstes Thema

chunter1

Hallo,

ich würde gerne eine Begrüßung am Morgen realisiern.
Das geht mit meinem Bewegungsmelder und einem simplen notify schon mal ganz gut - allerdings soll das notify nur einmal am Tag "scharf" sein damit man nicht ständig begrüßt wird ;)
Über einen Dummy der als Speicherflag dient und einem "at" das jede Nacht den Dummy resetet ging es schon - ist aber wie ich finde nicht elegant und unübersichtlich.
Gibts eine elegante Möglichkeit in dem einen notify sowas zu integrieren?

Danke!

UliM

Hi,
Du könntest jedesmal wenn das notify ausgeführt wird das Tagesdatum z.B. auf attr comment schreiben.
Und am Beginn des notify abfragen, ob AttrVal($d,'comment') < heute ist.
Dann brauchst Du noch nicht mal nen dummy :)
Gruß, Uli
RPi4/Raspbian, CUL V3 (ca. 30 HomeMatic-devices), LAN (HarmonyHub, alexa etc.).  Fördermitglied des FHEM e.V.

justme1968

du kannst den status mit setreading direkt in deinem bewegungsmelder device speichern. dazu braucht es keinen extra dumme.

gruß
  andre
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

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

chunter1

Hallo ihr beiden,

Danke für eure Tips!!
Ich das mit dem setreading klingt gut.
Werds gleich mal ausprobieren. ;)

chunter1

ok,
jetzt steck ich beim Datungsvergleich fest  ???
Das Format, das ich von ReadingsTimestamp("x","y","") bekomme ist "2015-10-03 22:18:52".
Kann mir wer helfen wie ich daraus nur das Datum extrahiere und mit einem anderen, gleichformatigen Datum vergleiche?

Wuppi68

Du kannst auch in Deinem Notify dieses disablen und Gleichzeitig einen AT setzen um ihn wieder scharf zu machen
FHEM unter Proxmox als VM

rapster

Zitat von: chunter1 am 03 Oktober 2015, 22:23:09
Kann mir wer helfen wie ich daraus nur das Datum extrahiere und mit einem anderen, gleichformatigen Datum vergleiche?
Nur Datum: { (split(' ',ReadingsTimestamp("device","reading","0000-00-00")))[0] }

Gruß
  Claudiu

chunter1

#7
Danke euch beiden!
Für alle die's interessiert... ich habs jetzt so implementiert:


define notify HM_xxxxx_Motion:trigger_cnt:.* {
my $valDateToday = substr(ReadingsTimestamp("Radio_Guten_Morgen_Announcement","state",""),0,10);
my $valDateLastAnnouncement = substr(ReadingsTimestamp("Radio_Guten_Morgen_Announcement","lastAnnouncement",""),0,10);

if (($valDateLastAnnouncement ne $valDateToday) && ($hour > 3) && ($hour < 12)) {
  fhem("set SB_PLAYER volume 50");
  fhem("set SB_PLAYER sayText Guten Morgen!");
}

fhem("setreading Radio_Guten_Morgen_Announcement lastAnnouncement 1");
}

Wuppi68

define notify HM_xxxxx_Motion:trigger_cnt:.*
  attr HM_xxxxx_Motion disable 1;
  set SB_PLAYER volume 50;
  set SB_PLAYER sayText Guten Morgen!


und

define NotyEnable at *04:00
  attr HM_xxxxx_Motion disable 0


das at kannst Du auch noch in den Not rein packen, musst Du nur sehen wie Du es Quoten muss :-)
FHEM unter Proxmox als VM

UliM

Zitat von: chunter1 am 03 Oktober 2015, 22:55:13
Danke euch beiden!
Für alle die's interessiert... ich habs jetzt so implementiert:


define notify HM_xxxxx_Motion:trigger_cnt:.* {
my $valDateToday = substr(ReadingsTimestamp("Radio_Guten_Morgen_Announcement","state",""),0,10);
my $valDateLastAnnouncement = substr(ReadingsTimestamp("Radio_Guten_Morgen_Announcement","lastAnnouncement",""),0,10);

if (($valDateLastAnnouncement ne $valDateToday) && ($hour > 3) && ($hour < 12)) {
  fhem("set SB_PLAYER volume 50");
  fhem("set SB_PLAYER sayText Guten Morgen!");
}

fhem("setreading Radio_Guten_Morgen_Announcement lastAnnouncement 1");
}

Danke für das posten der Lösung.
Das setreading hätte ich innerhalb des if erwartet, also nur wenn was announced wird. Oder?
Gruß Uli
RPi4/Raspbian, CUL V3 (ca. 30 HomeMatic-devices), LAN (HarmonyHub, alexa etc.).  Fördermitglied des FHEM e.V.

igami

Guten Morgen,

auch hier könnte man ein DOIF verwenden

define Guten_Morgen_DOIF DOIF
([HM_xxxxx_Motion:?trigger_cnt] and [03:00-12:00])
  (
    set SB_PLAYER volume 50,
    set SB_PLAYER sayText Guten Morgen!
  )
DOELSEIF([24:00])


Grüße
igami
Pi3 mit fhem.cfg + DbLog/logProxy
Komm vorbei zum FHEM Treffen im Kreis Gütersloh! Das nächste Mal im April 2020.

MAINTAINER: archetype, LuftdatenInfo, monitoring, msgDialog, Nmap, powerMap
ToDo: AVScene, FluxLED