Hi Leute,
ich möchte mit einem Bewegungsmelder hier genannt (Radarmeder_1) das Terassenlicht hier (Dimmer_4) auf 40% dimmen und das Licht (2_Holzhaus_Eingang) schalten.
Alles unter der Bedingung motion und Dunkelheit und das für 40Sekunden dauer.
unten mein code, ist der richtig oder geht das einfacher?
Frage: was bedeutet $EVENT habe im Wiki nichts brauchbares gefunden!
###-- Test Notify Bewegung Terasse dimmen und schalten --###
define Bewegung_Terasse notify Radarmelder_1:motion { fhem "set 2_Holzhaus_Eingang on-for-timer 40") if (ReadingsVal("Radarmelder_1","brightness",0) < 80)} $EVENT;;set Dimmer_4 40-for-timer 40") if (ReadingsVal("Radarmelder_1","brightness",0) < 80)}
attr Bewegung_Terasse group Terasse
attr Bewegung_Terasse room Notify
Ausprobiert? Fehlermeldungen gelesen?
Es ist alles etwas inkonsistent.
- wenn Du auf die gleiche Helligkeit reagierst, kannst Du zu Beginn abfragen
- Ausführungsteil in { } bedeutet perl-Ebene -> fhem("set ...."), soweit ok.
- Was macht das singuläre $EVENT dort? das ist die verwendbare Variable, die das auslösende Event beinhaltet, hier vermutlich also "motion"
- doppelte ;; sind unnötig bei der (immer empfohlenen) Eingabe im DEF-Fenster. Im RAW-Fenster und in der fhem.cfg sind sie aber korrekt.
- das set Dimmer_4 steht in der perl-Ebene, da gehört wieder ein fhem(" davor
- 40-for-timer gibt es nicht.
Wenn es sich um einen HM-Dimmer handelt, gib Level und Leuchtzeit per pct-Befehl vor, da geht beides zusammen.
###-- Test Notify Bewegung Terasse dimmen und schalten --###
define Bewegung_Terasse notify Radarmelder_1:motion {
if (ReadingsVal("Radarmelder_1","brightness",0) < 80) {
fhem("set 2_Holzhaus_Eingang on-for-timer 40;set Dimmer_4 pct 40 40")
}
}
Ich persönlich bin ja ein Freund des IF:
###-- Test Notify Bewegung Terasse dimmen und schalten --###
define Bewegung_Terasse notify Radarmelder_1:motion IF ([Radarmelder_1:brightness] < 80)
(set 2_Holzhaus_Eingang on-for-timer 40, set Dimmer_4 pct 40 40)
Wenn es sich um einen HM-Bewegungsmelder handelt, wirst Du bei 40 s Leuchtdauer für eine flüssige Operation allerdings noch im Bewegungsmelder das Register "minInterval" von default 4 Minuten auf 30s setzen müssen und vermutlich auch "captInInterval" auf "on", damit eine Verlängerung der Leuchtdauer nicht nur bei Bewegung in den Sekunden 30-40 erfolgt. Die Leuchtdauer verlängert sich aber entsprechend, so würde bei einer zweiten Bewegung auch in den ersten Sekunden des 30-s-Intervalls ein volles 40-Sekunden-Intervall nach Ablauf dieser 30s nachgetriggert.
Ohne diese Mods wird das Notify nur einmal funktionieren, wenn die letzte Bewegungserkennung nicht länger als 4 Minuten zurückliegt - d.h. auch bei fortwährender Bewegung würde das Licht nach 40s ausgehen und nach weiteren 3min 20s frühestens wieder an.
Habe ich was übersehen?
Fehler im Code dürfen behalten werden, ich habs nicht getestet...
Danke für den Code der ist wesentlich kürzer, habe ich gleich in meine .cfg eingefügt
Hier noch das Reading aus meinem HM-Bewegungsmelder
READINGS:
2019-06-26 12:50:09 Activity alive
2020-05-09 18:36:54 CommandAccepted yes
2017-06-08 14:45:33 D-firmware 1.6
2020-05-05 21:40:21 D-serialNr LEQ1278152
2020-05-09 18:36:55 PairedTo 0x23A643
2017-06-08 15:34:57 R-brightFilter 7
2017-06-08 15:34:57 R-captInInterval off
2017-06-08 15:34:57 R-evtFltrNum 1
2017-06-08 15:34:57 R-evtFltrPeriod 1 s
2017-06-08 15:34:57 R-minInterval 30
2017-06-08 15:34:56 R-pairCentral 0x23A643
2017-06-08 15:34:57 R-sign off
2020-05-09 18:36:55 RegL_00. 00:00 02:01 0A:23 0B:A6 0C:43
2020-05-09 18:36:55 RegL_01. 00:00 01:12 02:71 08:00 22:00
2020-05-29 15:31:58 battery ok
2020-05-29 15:31:58 brightness 180
2020-05-29 15:31:58 cover closed
2020-05-29 15:33:08 motion off
2020-05-28 22:28:00 motionCount 7_next:30s
2020-05-28 22:28:32 motionDuration 32
2020-05-05 21:40:32 powerOn 2020-05-05 21:40:32
2020-05-29 15:31:58 recentStateType info
2020-05-29 15:33:08 state noMotion
2020-05-28 22:28:00 trigger_cnt 7
Ich zeichne auch einen Trend auf funktioniert super.
Hallo es funktioniert immer noch nicht!
Ich möchte zwei Aktoren gleichzeitig über ein Notify schalten.
Ein HM-Bewegungsmelder hier genannt "Radarmeder_1" soll das Notify bilden (Bewegung Terasse).
Bedingung zum ansteuern der Aktoren ist
Helligkeit <80 , motion und Einschaltdauer 40 Sek. wobei ein Aktor "on-for-timer 40" Befehl bekommt und ein Aktor (Dimmer_4_Terasse pct 40 40) 40% helligkeit für 40Sek. stellen soll.
Soweit o.k. meine Programmierung funktioniert, allerdings nur mit dem Aktor (Dimmer_4_Terasse) sobald ich den zweiten Aktor ( 2_Holzhaus_Eingang)
mit einem ; als Trennung hinzufüge geht nichts mehr :-\ !
sende ich in der Kommandzeile den Befehl ( set 2_Holzhaus_Eingang on-for-timer 40;set Dimmer_4_Terasse pct 40 40 ) wird alles perfekt ausgeführt.
Binde ich das jedoch in mein Notify ein geht nichts.
Frage warum funktioniert es nicht sobald ich den Aktor (2_Holzhaus_Eingang on-for-timer 40) hinzufüge.
Ich hänge mal mein Notify das funktioniert hier an, es sollte erweitert werden um auch (2_Holzhaus_Eingang on-for-timer 40) zu schalten.
#### Notify Radarmelder_1 Bewegung Terasse bei Dunkelheit 80 für 40Sek. #####
define Bewegung_Terasse notify Radarmelder_1:motion {fhem ("set Dimmer_4_Terasse pct 40 40") if (ReadingsVal("Radarmelder_1","brightness",0) < 80)}
setuuid Bewegung_Terasse 5d134de1-f33f-ea78-c3c6-5866e5cb6f20d929
attr Bewegung_Terasse group Terasse
attr Bewegung_Terasse room Notify
Hier das Notify welches nicht geht! wo habe ich da einen Fehler
#### Notify Radarmelder_1 Bewegung Terasse bei Dunkelheit 80 für 40 Sek. #####
define Bewegung_Terasse notify Radarmelder_1:motion {fhem ("set 2_Holzhaus_Eingang on-for-timer 40;set Dimmer_4_Terasse pct 40 40") if (ReadingsVal("Radarmelder_1","brightness",0) < 80)}
setuuid Bewegung_Terasse 5d134de1-f33f-ea78-c3c6-5866e5cb6f20d929
attr Bewegung_Terasse group Terasse
attr Bewegung_Terasse room Notify
Das ist bestimmt nur eine Kleinigkeit ???
Du zeigst doch Ausschnitte aus der fhem.cfg ?
Dort müssen es zwei ";" zwischen den Befehlen sein.
Das notify über den Raw-Editor oder die DEF erstellt bzw. bearbeitet, wär der Fehler erkannt worden nicht passiert.
Gruß
Thomas
Jep, wollte ich auch grad schreiben...
Also: Finger von der fhem.cfg per Editor... ;)
Gruß, Joachim
Zitat von: TomLee am 01 Juni 2020, 13:26:13
Du zeigst doch Ausschnitte aus der fhem.cfg ?
Dort müssen es zwei ";" zwischen den Befehlen sein.
Das notify über den Raw-Editor oder die DEF erstellt bzw. bearbeitet, wär der Fehler erkannt worden nicht passiert.
Gruß
Thomas
Ja mache alles im Editor , in der Fhem.cfg verweise ich mit include auf meine Device cfg Dateien
Ich werde das mal testen mit ";" zwischen den Befehlen melde mich ob's geht
Danke
Zitat von: Lucer am 01 Juni 2020, 17:29:36
Ja mache alles im Editor , in der Fhem.cfg verweise ich mit include auf meine Device cfg Dateien
Das solltest du noch mal (dringend!) überdenken!
Gruß, Joachim
Es funktioniert es mussten ;; eingefügt werden !
Muss mich mal in den RAW Editor beschäftigen.
Ohne eure Hilfe hätte ich das nicht hinbekommen :)