Hauptmenü

Notify zeitabhängig ?

Begonnen von Ranseyer, 17 Januar 2017, 13:20:42

Vorheriges Thema - Nächstes Thema

Ranseyer

Sorry für die evtl dumme Frage...

Das funktioniert (Licht geht / aus [Toggle halt...]):
ZitatEG.Kueche.Schalt.Btn1:short set EG.Kueche.Licht toggle

Aber warum funktioniert im Moment das nicht ?
Zitat{\
if (EG.Kueche.Schalt.Btn1:short && $hour>=01 && $hour<19) {\
fhem("set EG.Kueche.Licht toggle")}\
}

...Wenn das funktioniert möchte ich anschliessend per "else" eine andere Lampe mit anderer Lichtfarbe schalten...


ed: jetzt funktioniert keine der Varianten mehr, und ich verstehe nicht warum. ((Die Lampe ist nicht mit der VCCU gepeert, müsste sie das sein ?))

ZitatInternals:
   CFGFN
   DEF        EG.Kueche.Schalt.Btn1:short set EG.Kueche.Licht toggle

   NAME       EG.Kueche.Schalt.Btn1.ntfy
   NOTIFYDEV  EG.Kueche.Schalt.Btn1
   NR         79901
   NTFY_ORDER 50-EG.Kueche.Schalt.Btn1.ntfy
   REGEXP     EG.Kueche.Schalt.Btn1:short
   STATE      active
   TYPE       notify
   Helper:
     Dblog:
       State:
         Logdb:
           TIME       1484655496.189
           VALUE      active
   Readings:
     2017-01-17 13:18:16   state           active
Attributes:
   room       0.00_EG,0.02_Kueche
FHEM mit FTUI. Homematic-Funk für Thermostate und Licht. MySensors als Basis für eigene HW.
Zentrale ist der MAPLE-CUL mit RFM69+HModUART-AddOn.
Doku zu meinen Projekten: Github/Ranseyer. Platinen falls verfügbar gerne auf Anfrage.
Support: gerne wenn ich Zeit+Lust habe im Forum. Nicht per PN!

Brice

#1
$hour>=01 müsste sein $hour>=1

edit: einfacher wäre es natürlich ohne Zeitangabe und dafür ein

attr <Name> disabledForIntervalls 19:00-24:00 00:00-01:00
FHEM auf RPi 4 4GB (Buster) | produktiv) CUL 868 für FS20 | S300TH | KS300 | Max!Cube als CUN 868 für TechemWZ | HM-MOD-RPI-PCB für HM | Z-Wave ZME_UZB1 | FRITZ!DECT 200 | HUE | Lightify | Echo Dot | WS3080

Ranseyer

Danke,

aber vermutlich sollte ich erst mal wieder das zum Laufen bringen:
ZitatEG.Kueche.Schalt.Btn1:short set EG.Kueche.Licht toggle
(Geht auch nicht mehr, auch nicht mit "Short" oder "on" beim Button)

Hier das Eventlog.
Zitat2017-01-17 13:36:51 CUL_HM EG.Kueche.Schalt.Btn1 Short (to vccu)
2017-01-17 13:36:51 CUL_HM EG.Kueche.Schalt.Btn1 trigger: Short_61
2017-01-17 13:36:51 CUL_HM EG.Kueche.Schalt.Btn1 trigger_cnt: 61
2017-01-17 13:36:51 CUL_HM Schalter_Kueche battery: ok
2017-01-17 13:36:51 CUL_HM Schalter_Kueche CMDs_done
2017-01-17 13:36:51 CUL_HM Schalter_Kueche EG.Kueche.Schalt.Btn1 Short
2017-01-17 13:36:51 CUL_HM vccu_Btn1 trigLast: EG.Kueche.Schalt.Btn1:short
2017-01-17 13:36:51 CUL_HM vccu_Btn1 trig_EG.Kueche.Schalt.Btn1: Short_61
FHEM mit FTUI. Homematic-Funk für Thermostate und Licht. MySensors als Basis für eigene HW.
Zentrale ist der MAPLE-CUL mit RFM69+HModUART-AddOn.
Doku zu meinen Projekten: Github/Ranseyer. Platinen falls verfügbar gerne auf Anfrage.
Support: gerne wenn ich Zeit+Lust habe im Forum. Nicht per PN!

Zrrronggg!

Das alleine

EG.Kueche.Schalt.Btn1:short set EG.Kueche.Licht toggle


mach ja nichts, genaus wie
{\
if (EG.Kueche.Schalt.Btn1:short && $hour>=01 && $hour<19) {\
fhem("set EG.Kueche.Licht toggle")}\
}


alleine nichts macht. Das sind ja nur Fragmente eines defines.

Kannst du mal das GANZE posten?

Ferner: Devicenamen mit Punkt drin ist meiner Meinung nach keine gute Idee. In perl hat der Punkt eine Bedeutung, das kann schief gehen.
FHEM auf Linkstation Mini, CUL 868 SlowRF, 2xCUL 868 RFR, CUL 433 für IT, 2xHMLAN-Configurator mit VCCU, ITV-100 Repeater, Sender und Aktoren von FHT, FS20, S300, HM, IT, RSL

Ranseyer

meinst Du sowas ?

Ende der fhem.cfg
Zitatdefine EG.Kueche.Schalt.Btn1.ntfy notify EG.Kueche.Schalt.Btn1:short set EG.Kueche.Licht on\
\

attr EG.Kueche.Schalt.Btn1.ntfy room 0.00_EG,0.02_Kueche
define vccu_Btn1 CUL_HM 30839301
attr vccu_Btn1 model CCU-FHEM
attr vccu_Btn1 peerIDs 2CC96301,
attr vccu_Btn1 room 8.00_Zentral
attr vccu_Btn1 webCmd press short:press long

oder eher ein "list EG.Kueche.Schalt.Btn1.ntfy"
ZitatInternals:
   DEF        EG.Kueche.Schalt.Btn1:short set EG.Kueche.Licht on


   NAME       EG.Kueche.Schalt.Btn1.ntfy
   NOTIFYDEV  EG.Kueche.Schalt.Btn1
   NR         296
   NTFY_ORDER 50-EG.Kueche.Schalt.Btn1.ntfy
   REGEXP     EG.Kueche.Schalt.Btn1:short
   STATE      active
   TYPE       notify
   Helper:
     Dblog:
       State:
         Logdb:
           TIME       1484656596.87052
           VALUE      active
   Readings:
     2017-01-17 13:36:36   state           active
Attributes:
   room       0.00_EG,0.02_Kueche
FHEM mit FTUI. Homematic-Funk für Thermostate und Licht. MySensors als Basis für eigene HW.
Zentrale ist der MAPLE-CUL mit RFM69+HModUART-AddOn.
Doku zu meinen Projekten: Github/Ranseyer. Platinen falls verfügbar gerne auf Anfrage.
Support: gerne wenn ich Zeit+Lust habe im Forum. Nicht per PN!

automatisierer

Zitat Comandreff zu notify:
ZitatHinweise:

    <Suchmuster> ist entweder der Name des auslösenden ("triggernden") Gerätes oder die Kombination aus Gerät und auslösendem Ereignis (Event) Gerätename:Event.
    Das <Suchmuster> muss exakt (!) entweder dem Gerätenamen entsprechen oder der Zusammenfügung aus Gerätename:Event. Events lassen sich mit "inform" in Telnet oder durch Beobachtung des "Event-Monitors" in FHEMWEB ermitteln.

das EXAKT ist wichtig

das hier:
EG.Kueche.Schalt.Btn1:short
wird von keinem dieser Events getriggert:

2017-01-17 13:36:51 CUL_HM EG.Kueche.Schalt.Btn1 Short (to vccu)
2017-01-17 13:36:51 CUL_HM EG.Kueche.Schalt.Btn1 trigger: Short_61
2017-01-17 13:36:51 CUL_HM EG.Kueche.Schalt.Btn1 trigger_cnt: 61
2017-01-17 13:36:51 CUL_HM Schalter_Kueche battery: ok
2017-01-17 13:36:51 CUL_HM Schalter_Kueche CMDs_done
2017-01-17 13:36:51 CUL_HM Schalter_Kueche EG.Kueche.Schalt.Btn1 Short
2017-01-17 13:36:51 CUL_HM vccu_Btn1 trigLast: EG.Kueche.Schalt.Btn1:short
2017-01-17 13:36:51 CUL_HM vccu_Btn1 trig_EG.Kueche.Schalt.Btn1: Short_61


dann musst du schon ein:
EG.Kueche.Schalt.Btn1:Short.*
relativ ungenau - je nach events kann es zu einer mehrfachtriggerung bei einer Tasterbetätigung kommen.

oder
EG.Kueche.Schalt.Btn1:Short..to.vccu.
sehr genau


Zrrronggg!

#6
define EG.Kueche.Schalt.Btn1.ntfy notify EG.Kueche.Schalt.Btn1:short set EG.Kueche.Licht on

genau. Ich persönlich sehe immer gerne das komplette define, um zu verstehen was der Fragesteller machen will und nicht nur TEILE davon. Ansonsten: what automatisierer said.

Sieh hierzu auch hier:
https://wiki.fhem.de/wiki/Trick_der_Woche#Konfiguration_eines_FS20_Senders_pr.C3.BCfen
(da gehts um FS20, ist aber bei HM das gleiche Thema.)

P.S.:

Hierbei:

EG.Kueche.Schalt.Btn1:Short..to.vccu.

siehst du übrigens das Problem der Benamung mit Punkten: der Punkt hat eine Bedeutung und bei Operation in perl (die vielleicht mal verwenden willst oder auch nicht) kann das recht ... unübersichtlich werden. Daher verwenden die meisten in solchen Fällen lieber einen Unterstrich: EG_Kueche_Schalt_Btn1


FHEM auf Linkstation Mini, CUL 868 SlowRF, 2xCUL 868 RFR, CUL 433 für IT, 2xHMLAN-Configurator mit VCCU, ITV-100 Repeater, Sender und Aktoren von FHT, FS20, S300, HM, IT, RSL

automatisierer

dann erklären wir das doch auch direkt:

. (Punkt) Steht für ein beliebiges Zeichen - aber nicht für kein Zeichen!!...

* (Sternchen) Steht für eine beliebige Wiederholung des vorstehenden Zeichens - auch für keine Wiederholung...

somit bedeutet .*    ein beliebiges Zeichen und keine bis unendlich viele beliebige Zeichen

Otto123

Hi

Zitatdefine EG.Kueche.Schalt.Btn1.ntfy notify EG.Kueche.Schalt.Btn1:short set EG.Kueche.Licht on\
\
die beiden backslash gefallen mir gar nicht. Woher kommt sowas?  >:( >:( >:(
Gibt es bei mir in der fhem.cfg so nicht!

Wir hatten letztens erst einen Fall, wo genau das der Fehler war. Das führt dann zu so was ->
ZitatInternals:
   DEF        EG.Kueche.Schalt.Btn1:short set EG.Kueche.Licht on


   NAME       EG.Kueche.Schalt.Btn1.ntfy
Man beachte den Zeilenabstand zwischen DEF und Name!

Aber das ist nur in Ergänzung meiner Vorredner.
Das mit den Punkten  im Namen ist eher ein philosophisches Problem - ich mag es aber auch nicht.  :-X

Gruß Otto
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

Ranseyer

Danke an alle, mir gehts ja nicht nur um eine Lösung, sondern um zu lernen.

Zitatdie beiden backslash gefallen mir gar nicht. Woher kommt sowas?
Ich denke das könnte das von 2*CR (2* Enter Taste gedrückt) in der Definition kommen. Habe ich nun gelöscht.


Was bei mir im Moment funktioniert ist dieses:
Zitatdefine EG.Kueche.Schalt.Btn1.ntfy notify EG.Kueche.Schalt.Btn1:Short..to.vccu. set EG.Kueche.Licht toggle
attr EG.Kueche.Schalt.Btn1.ntfy disabledForIntervals 16:00-24:00
attr EG.Kueche.Schalt.Btn1.ntfy room 0.00_EG,0.02_Kueche
define vccu_Btn1 CUL_HM 30839301


define EG.Kueche.Schalt.Btn1.ntfy_night notify EG.Kueche.Schalt.Btn1:Short..to.vccu. set EG.Kueche.Spots toggle
attr EG.Kueche.Schalt.Btn1.ntfy_night disabledForIntervals 00:00-16:00
attr EG.Kueche.Schalt.Btn1.ntfy_night room 0.02_Kueche

attr vccu_Btn1 model CCU-FHEM
attr vccu_Btn1 peerIDs 2CC96301,
attr vccu_Btn1 room 8.00_Zentral
attr vccu_Btn1 webCmd press short:press long

Nicht geschafft habe ich es auf diesem Weg:
Zitatdefine EG.Kueche.Schalt.Btn1.ntfyv2 notify {if (EG.Kueche.Schalt.Btn1:Short..to.vccu. && $hour>=1 && $hour<17) {fhem("set EG.Kueche.Licht toggle")}}
(Die beiden anderen ggf. konkurierenden Notifys waren während dem Test inaktiv)



...das mit den Punkten habe ich in irgendwelchen Blogs gesehen, und hatte mir gefallen. Nun habe ich schon sehr viele Geräte usw. genau so definiert, somit wäre eine Änderung heftiger Aufwand und Fehlerquelle bei Scripten...

Denke in meinem Fall ist das aufpassen bei Scripten das kleinere Übel.
FHEM mit FTUI. Homematic-Funk für Thermostate und Licht. MySensors als Basis für eigene HW.
Zentrale ist der MAPLE-CUL mit RFM69+HModUART-AddOn.
Doku zu meinen Projekten: Github/Ranseyer. Platinen falls verfügbar gerne auf Anfrage.
Support: gerne wenn ich Zeit+Lust habe im Forum. Nicht per PN!

automatisierer

bei dem 'nicht geschafft notify' fehlt der trigger...

da steht nur

.... notify  {if....

Zrrronggg!

#11
ZitatNun habe ich schon sehr viele Geräte usw. genau so definiert, somit wäre eine Änderung heftiger Aufwand und Fehlerquelle bei Scripten...
Wieso?

Schritt 1. Irgendeinen Texteditor nehmen, der "Suchen und ersetzen" kann.(Kann mehr oder weniger jeder, zur Not MS Word.)
Schritt 2. Per Copy /Paste die fhem-cfg in eine leres Dokument reinpasten.
Schritt 3. suche nach allen EG.Kueche.Schalt.Btn1, ersetze mit EG_Kueche_Schalt_Btn1 (wie immer das mit dem jeweiligen Editor gemacht wird.)
Schritt 4. mit allen defs wiederholen.
Schritt 5. Per Copy /Paste in die fhem-cfg reinpasten.
Schritt 6 Fhem restarten.

Fertig.

Mach ich immer so, wenn ich mal ein Geräte oder so umbennen will. Geht ruckzuck man erwischt alle vorkommen und hat noch nie Problem gemacht. Meine Editor (BBedit) macht das sogar über mehre Dokumente zugleich hinweg, falls man Scripte in diversen Dateien ausgelagert hat.

Aber natürlich deine Entscheidung.


mal sehen:

define EG.Kueche.Schalt.Btn1.ntfyv2 notify {if (EG.Kueche.Schalt.Btn1:Short..to.vccu. && $hour>=1 && $hour<17) {fhem("set EG.Kueche.Licht toggle")}}

Da steht mal KEIN auslösendes Notify (bzw. trigger) drin! Das Dingen macht NIE was.

(und jetzt weisst du auch, warum ich immer gerne das GESAMTE define sehen will ...)
FHEM auf Linkstation Mini, CUL 868 SlowRF, 2xCUL 868 RFR, CUL 433 für IT, 2xHMLAN-Configurator mit VCCU, ITV-100 Repeater, Sender und Aktoren von FHT, FS20, S300, HM, IT, RSL

Zrrronggg!

#12
Ah ... Überschneidung. automatisierer war schneller

Warte, ich formulier dir mal was, wie es gehen könnte, moment...


Versuch mal so:

define EG.Kueche.Schalt.Btn1.ntfyv2 notify EG.Kueche.Schalt.Btn1:Short..to.vccu. {if ($hour>=1 && $hour<17) {fhem("set EG.Kueche.Licht toggle")}}
FHEM auf Linkstation Mini, CUL 868 SlowRF, 2xCUL 868 RFR, CUL 433 für IT, 2xHMLAN-Configurator mit VCCU, ITV-100 Repeater, Sender und Aktoren von FHT, FS20, S300, HM, IT, RSL

Zrrronggg!

#13
noch mal allgemein:

define <name> notify <auslösendes event> mach irgendwas

und "mach irgendwas" kann nun wieder sein:

- fhem kommando
- {perl script (z.b. if abfrage)}
- {perl script (z.b. if abfrage){fhem("fhem commando")}}

Komplettaufbau bei dir also:

define <name> notify <auslösendes event> {perl script  (z.b. if abfrage){fhem("fhem commando")}}


Ferne zu beachten:
{if ....     = perl if, es greifen perl Regeln/Syntax
IF = FHEM eigener IF-Befehl, der eine eigene Syntax hat. (und ausserdem etwas outdated, lieber fhem Befehl DOIF verwenden)

Ob man nun lieber perl "if" oder FHEM DOIF verwendet ist mehr eine Geschmacksfrage.

DOIF ist sehr mächtig, quasi die eierlegende Wollmilchsau, die ausserdem ein Schweizer Offiziersmesser dabei hat.
Dadurch ggf. manchmal etwas unübersichtlich. Ich  löse alles mit perl-if und nutze DOIF nicht, ist aber vermutlich reine Geschmackssache.
FHEM auf Linkstation Mini, CUL 868 SlowRF, 2xCUL 868 RFR, CUL 433 für IT, 2xHMLAN-Configurator mit VCCU, ITV-100 Repeater, Sender und Aktoren von FHT, FS20, S300, HM, IT, RSL

Ranseyer

Danke nochmals für die Hinweise.

Ich habe einiges experimentiert...

Das geht nicht:
define EG.Kueche.Schalt.Btn1.ntfyv2 notify EG.Kueche.Schalt.Btn1:Short..to.vccu. {if ($hour>=1 && $hour<11) {fhem("set EG.Kueche.Licht toggle")} else {fhem("set EG.Kueche.Spots toggle")};;{fhem("set EG.Kueche.Vitrine on")}    }            #Vitrine wird immer geschaltet, egal wie spät

define EG.Kueche.Schalt.Btn1.ntfyv2 notify EG.Kueche.Schalt.Btn1:Short..to.vccu. {if ($hour>=1 && $hour<13) {fhem("set EG.Kueche.Licht toggle")} else {fhem("set EG.Kueche.Spots toggle");; ("set EG.Kueche.Vitrine on")}  } 



Das geht perfekt:
define EG.Kueche.Schalt.Btn1.ntfyv2 notify EG.Kueche.Schalt.Btn1:Short..to.vccu. {if ($hour>=1 && $hour<11) {fhem("set EG.Kueche.Licht toggle")} else {fhem("set EG.Kueche.Spots toggle")}  }


A) Was mach ich falsch ?
B) Wie kann ich mir selbst besser helfen ?
(Man sieht also mein Problem dürfte das Verständniss der Syntax sein... Würde mir hier "Perl-Wissen" helfen ?)
FHEM mit FTUI. Homematic-Funk für Thermostate und Licht. MySensors als Basis für eigene HW.
Zentrale ist der MAPLE-CUL mit RFM69+HModUART-AddOn.
Doku zu meinen Projekten: Github/Ranseyer. Platinen falls verfügbar gerne auf Anfrage.
Support: gerne wenn ich Zeit+Lust habe im Forum. Nicht per PN!