Pairen von HM-Sec-MDIR Bewegungsmelder klappt nicht

Begonnen von Gunther, 11 Mai 2014, 19:51:59

Vorheriges Thema - Nächstes Thema

Gunther

Zitat von: martinp876 am 21 Mai 2014, 20:00:19
Also das ding sollte erst einmal immer trigger senden, bei Helligkeit und Dunkelheit. Das solltest du in den Events nachvollziehen können => done?

Also das Log zeigt mir nachts schon einige Bewegungen. Da ich leider nicht genau nachvollziehen kann, wann meine Frau Nachts wirklich auf dem Weg ins Bad war, nehme ich mal an, dass das Ding alle Bewegungungen anzeigt.

Z. B.
2014-05-17_00:51:55 eg_fl_Bewegungsmelder battery: ok
2014-05-17_00:57:11 eg_fl_Bewegungsmelder brightness: 33
2014-05-17_00:57:11 eg_fl_Bewegungsmelder cover: closed
2014-05-17_00:57:11 eg_fl_Bewegungsmelder battery: ok
2014-05-17_00:58:14 eg_fl_Bewegungsmelder motion
2014-05-17_00:58:14 eg_fl_Bewegungsmelder motion: on (to HMLAN1)
[b]2014-05-17_00:58:14 eg_fl_Bewegungsmelder motionCount: 46_next:116s[/b]
2014-05-17_00:58:14 eg_fl_Bewegungsmelder brightness: 33
2014-05-17_01:01:57 eg_fl_Bewegungsmelder brightness: 33
2014-05-17_01:01:57 eg_fl_Bewegungsmelder cover: closed
2014-05-17_01:01:57 eg_fl_Bewegungsmelder battery: ok
2014-05-17_01:07:54 eg_fl_Bewegungsmelder brightness: 32
2014-05-17_01:07:54 eg_fl_Bewegungsmelder cover: closed


Zitat von: martinp876 am 21 Mai 2014, 20:00:19
dann hast du es mit einem Lichtschalter gepeert?

Ich verbinde mit einer FS20 Steckdose. Meine fhem.cfg sieht so aus:
define eg_fl_Bewegungsmelder CUL_HM 1F7F52
attr eg_fl_Bewegungsmelder IODev HMLAN1
attr eg_fl_Bewegungsmelder actCycle 000:20
attr eg_fl_Bewegungsmelder actStatus alive
attr eg_fl_Bewegungsmelder autoReadReg 4_reqStatus
attr eg_fl_Bewegungsmelder expert 2_full
attr eg_fl_Bewegungsmelder firmware 1.6
attr eg_fl_Bewegungsmelder model HM-SEC-MDIR
attr eg_fl_Bewegungsmelder room Flur
attr eg_fl_Bewegungsmelder serialNr KEQ0364447
attr eg_fl_Bewegungsmelder subType motionDetector
define FileLog_eg_fl_Bewegungsmelder FileLog ./log/eg_fl_Bewegungsmelder-%Y.log eg_fl_Bewegungsmelder
attr FileLog_eg_fl_Bewegungsmelder logtype text
attr FileLog_eg_fl_Bewegungsmelder room Flur

define Flur_Licht_AN notify eg_fl_Bewegungsmelder:motion set eg_fl_Tischlampe on-for-timer 120

define eg_fl_Tischlampe FS20 42122134 1122
attr eg_fl_Tischlampe IODev CUL_0
attr eg_fl_Tischlampe room Flur
define eg_fl_Tischlampe.on notify at *{sunset(-80)} set eg_fl_Tischlampe on
define eg_fl_Tischlampe.off notify at *{sunrise(+80)} set eg_fl_Tischlampe off


Sehe gerade dass ich das ich die Steckdose
a) erst nach dem notify definiere und
b) noch die alten Schalzeiten dinr habe.

Kann das zu Problemen führen?

Zitat von: martinp876 am 21 Mai 2014, 20:00:19
Der Trigger kommt, das Licht schaltet nicht?
Dann müssen wir die Register des Lichtschalters prüfen - poste die einmal

Leider habe ich kein Log für den Lichtschalter. Meine fhem.log postet anscheinend nichts mehr. Die letzten Zeilen sind ungekürzt:
2014.05.15 22:01:57 0: HMLAN_Send:  HMLAN1 I:K
2014.05.15 22:01:57 0: HMLAN_Parse: HMLAN1 V:03C1 sNo:JEQ0706973 d:1E9EF4 O:A00001 t:02F95448 IDcnt:0001
2014.05.15 22:02:22 0: HMLAN_Send:  HMLAN1 I:K
2014.05.15 22:02:22 0: HMLAN_Parse: HMLAN1 V:03C1 sNo:JEQ0706973 d:1E9EF4 O:A00001 t:02F9B5F9 IDcnt:0001
2014.05.15 22:02:37 0: HMLAN_Parse: HMLAN1 R:E22B323   stat:0000 t:02F9E570 d:FF r:FFBE     m:96 8610 22B323 000000 0A88D10E0018
2014.05.15 22:02:48 0: Strange call for typeless FileLog_eg_wr_Heizung: UndefFn
2014.05.15 22:02:48 1: Including fhem.cfg
2014.05.15 22:02:48 1: HMLAN_Parse: HMLAN1 new condition disconnected
2014.05.15 22:02:48 1: HMLAN_Parse: HMLAN1 new condition init
2014.05.15 22:02:55 1: Including ./log/fhem.save
2014.05.15 22:03:07 1: HMLAN_Parse: HMLAN1 new condition ok
2014.05.15 22:03:18 1: Including fhem.cfg
2014.05.15 22:03:18 1: HMLAN_Parse: HMLAN1 new condition disconnected
2014.05.15 22:03:18 1: HMLAN_Parse: HMLAN1 new condition init
2014.05.15 22:03:25 1: Including ./log/fhem.save
2014.05.15 22:03:35 1: HMLAN_Parse: HMLAN1 new condition ok
2014.05.15 22:06:37 1: Including fhem.cfg
2014.05.15 22:06:37 1: HMLAN_Parse: HMLAN1 new condition disconnected
2014.05.15 22:06:37 1: HMLAN_Parse: HMLAN1 new condition init
2014.05.15 22:06:45 1: Including ./log/fhem.save
2014.05.15 22:06:53 1: HMLAN_Parse: HMLAN1 new condition ok
2014.05.15 23:21:58 1: Including fhem.cfg
2014.05.15 23:21:58 1: HMLAN_Parse: HMLAN1 new condition disconnected
2014.05.15 23:21:58 1: HMLAN_Parse: HMLAN1 new condition init
2014.05.15 23:22:06 1: Including ./log/fhem.save
2014.05.15 23:22:18 1: HMLAN_Parse: HMLAN1 new condition ok
2014.05.15 23:23:20 1: Including fhem.cfg
2014.05.15 23:23:21 1: HMLAN_Parse: HMLAN1 new condition disconnected
2014.05.15 23:23:21 1: HMLAN_Parse: HMLAN1 new condition init
2014.05.15 23:23:28 1: Including ./log/fhem.save
2014.05.15 23:23:39 1: HMLAN_Parse: HMLAN1 new condition ok
2014.05.15 23:29:39 1: Including fhem.cfg
2014.05.15 23:29:39 1: HMLAN_Parse: HMLAN1 new condition disconnected
2014.05.15 23:29:39 1: HMLAN_Parse: HMLAN1 new condition init
2014.05.15 23:29:46 1: Including ./log/fhem.save
2014.05.15 23:29:58 1: HMLAN_Parse: HMLAN1 new condition ok
2014.05.15 23:36:35 1: Including fhem.cfg
2014.05.15 23:36:35 1: HMLAN_Parse: HMLAN1 new condition disconnected
2014.05.15 23:36:35 1: HMLAN_Parse: HMLAN1 new condition init
2014.05.15 23:36:42 1: Including ./log/fhem.save
2014.05.15 23:36:54 1: HMLAN_Parse: HMLAN1 new condition ok
2014.05.15 23:38:20 1: Including fhem.cfg
2014.05.15 23:38:20 1: HMLAN_Parse: HMLAN1 new condition disconnected
2014.05.15 23:38:20 1: HMLAN_Parse: HMLAN1 new condition init
2014.05.15 23:38:27 1: Including ./log/fhem.save
2014.05.15 23:38:39 1: HMLAN_Parse: HMLAN1 new condition ok
2014.05.18 21:05:02 1: 192.168.0.15:1000 disconnected, waiting to reappear (HMLAN1)
2014.05.18 21:05:02 1: HMLAN_Parse: HMLAN1 new condition disconnected
2014.05.19 21:31:06 1: 192.168.0.15:1000 reappeared (HMLAN1)
2014.05.19 21:31:06 1: HMLAN_Parse: HMLAN1 new condition init
2014.05.19 21:31:08 1: HMLAN_Parse: HMLAN1 new condition ok


Habe ich hier etwas falsch zurückgedreht nach dem RAW-Daten aufzeichnen?
Habe mal wieder von
attr global verbose 1
auf
attr global verbose 3
gestellt. Ich hoffe das hilft.

Zitat von: martinp876 am 21 Mai 2014, 20:00:19
Dann müssen wir die Register des Lichtschalters prüfen - poste die einmal
Register?

Ich hoffe Du meinst das:
Internals
BTN

05
DEF
42122134 1122
IODev

CUL_0
NAME

eg_fl_Tischlampe
NR

571
STATE

on-for-timer 120
TYPE

FS20
XMIT

d14b


Readings
state

on-for-timer 120

2014-05-21 20:07:08


Attributes
IODev

CUL_0

deleteattr
room

Flur

deleteattr


Probably associated with
Flur_Licht_AN
notify
eg_fl_Tischlampe.off
notify
eg_fl_Tischlampe.on
notify
FHEM@Proxmox@Nuc: TabletUI als User-Interface (4 Wandtablets) / IOs per ser2net gekapselt
Homematic: Heizung, Fenster, Bewegung | Jeelink: Temperatur | Z-Wave: Bewegung, Temperatur | FS20: Temperatur, Fenster | Viessmann-Heizung eingebunden

Gunther

#46
Zu Registern habe ich nochmal gelesen.

Scheint bei meinem FS20-Zwischenstecker nicht zu gehen:
get eg_fl_Tischlampe regList

Dann bekomme ich
Unknown argument regList, choose one of dim06% dim100% dim12% dim18% dim25% dim31% dim37% dim43% dim50% dim56% dim62% dim68% dim75% dim81% dim87% dim93% dimdown dimup dimupdown off off-for-timer on on-100-for-timer-prev on-for-timer on-old-for-timer on-old-for-timer-prev on-till ramp-off-time ramp-on-time reset sendstate timer toggle dim:slider,0,6.25,100 blink intervals off-till

Bei meinem Bewegungsmelder sieht es so aus:

list:         register | range              | peer     | description
   0: pairCentral      |   0 to 16777215    |          | pairing to central
   0: sabotageMsg      |     literal        |          | enable sabotage message options:on,off
   1: brightFilter     |   0 to 7           |          | brightness filter - ignore light at night
   1: captInInterval   |     literal        |          | capture within interval options:on,off
   1: evtFltrNum       |   1 to 15          |          | sensitivity - read each n-th puls
   1: evtFltrPeriod    | 0.5 to 7.5s        |          | event filter period
   1: ledOnTime        |   0 to 1.275s      |          | LED ontime
   1: minInterval      |     literal        |          | minimum interval in sec options:240,60,120,30,15
   4: peerNeedsBurst   |     literal        | required | peer expects burst options:on,off
FHEM@Proxmox@Nuc: TabletUI als User-Interface (4 Wandtablets) / IOs per ser2net gekapselt
Homematic: Heizung, Fenster, Bewegung | Jeelink: Temperatur | Z-Wave: Bewegung, Temperatur | FS20: Temperatur, Fenster | Viessmann-Heizung eingebunden

martinp876

define Flur_Licht_AN notify eg_fl_Bewegungsmelder:motionCount.*

attr eg_fl_Bewegungsmelder event-on-change-reading .*

hilft dies?

ZitatBei meinem Bewegungsmelder sieht es so aus:
wohl kaum. Das sind moegliche Register incl BEschreibung und ranges. Interessant ist, was drin ist.
get dev reg all
nach erfolgreichem getConfig

Gunther

Du meinst:
define EG_Flur_Licht_Melder_EG_AN notify eg_fl_Bewegungsmelder:motionCount.* set eg_fl_Tischlampe on-for-timer 120
define EG_Flur_Licht_Melder_OG_AN notify og_fl_Bewegungsmelder:motionCount.* set eg_fl_Tischlampe on-for-timer 120

(habe den 2 Bewegungsmelder ebenfalls eingebunden und die Definitionsnamen geändert)
richtig?
Was macht das motionCount.* anders als motion?

Habe gerade ein getConfig gemacht.
beim get dev reg all kommt nur das:


eg_fl_Bewegungsmelder type:motionDetector -
list:peer register         :value
Gestern stand da deutlich mehr.
Muss ich da nochmal enlernen drücken?

Wie schaffe ich es nun, dass die FS20-Steckdosen nur schalten, wenn es dunkel ist?
FHEM@Proxmox@Nuc: TabletUI als User-Interface (4 Wandtablets) / IOs per ser2net gekapselt
Homematic: Heizung, Fenster, Bewegung | Jeelink: Temperatur | Z-Wave: Bewegung, Temperatur | FS20: Temperatur, Fenster | Viessmann-Heizung eingebunden

martinp876


oder mit einem
define EG_Flur_Licht_Melde_AN notify .*_fl_Bewegungsmelder:motionCount.* set eg_fl_Tischlampe on-for-timer 120

ZitatWas macht das motionCount.* anders als motion?
das macht sinn, wenn du
attr eg_fl_Bewegungsmelder event-on-change-reading .*
abwendest - dann werden doppelte readings nicht getriggert.

Zitatbeim get dev reg all kommt nur das:
Als "dev" musst du den Namen des Device angeben.

ZitatWie schaffe ich es nun, dass die FS20-Steckdosen nur schalten, wenn es dunkel ist?
da musst du dein Notify aufbohren. Du musst im Notify das Reading "brightness" auswerten und nur bei der Unterscheidung des Wertes schalten

define EG_Flur_Licht_Melde_AN notify .*_fl_Bewegungsmelder:motionCount.* {if(ReadingsVal($NAME,"brightness","")<40){fhem"set eg_fl_Tischlampe on-for-timer 120"}}


Gunther

Super, das mit der Helligkeit teste ich mal. (den Code kann ich 1:1 so übernehmen oder muss ich bei $NAME noch etwas ersetzen?

Eine weitere Herausforderung ist dann folgende:
Ich habe einen weiteren Bewegungsmelder (og_fl_Bewegungsmelder) im Obergeschoss stehen. Dieser soll die gleiche Lampe in Erdgeschoss nachts schalten. Aber natürlich nur, wenn die Helligkeit (die über den Bewegungsmelder im EG gemessen wird) einen bestimmten Wert unterschreitet.

Kann ich das machen:
1. ) Bewegungsmelder OG erkennt Bewegung
2.) FHEM prüft Helligkeit des Bewegungsmelders im EG
3.) FHEM schaltet die Lampe im EG, nachdem der Bewegungsmelder im OG Bewgung erkannt hat und Helligkeit im EG entsprechend niedrig ist.

2 Zusatzfragen:
a) Da man ja nun zuerst am oberen Bewegungsmelder vorbei geht und danach an dem in Erdgeschoss, wird FHEM vermutlich zweimal hintereinander die Lampe schalten, richtig? Kann ich den 2. Schaltbefehl verhindern?

b) Kann ich zuätzlich zum Bewegungsmelden + Schalten eine fixe Zeit angeben, in der die Lampe an ist, ohne dass diese durch die Bewegung und den "on-timer" in dieser Zeit ausgeschaltet wird?
FHEM@Proxmox@Nuc: TabletUI als User-Interface (4 Wandtablets) / IOs per ser2net gekapselt
Homematic: Heizung, Fenster, Bewegung | Jeelink: Temperatur | Z-Wave: Bewegung, Temperatur | FS20: Temperatur, Fenster | Viessmann-Heizung eingebunden

martinp876

$NAME ist der Name des trigger-auslösenden Device - siehe Commandref 'notify'

Wenn der BM im OG den Helligkeitswert des EG nutzen soll musst du das natürlich ändern.


ZitatKann ich den 2. Schaltbefehl verhindern?
klar - wenn du willst. aber warum? Das Licht jetzt 120sec nach dem letzten gültigen bewegen an - ist doch ok.
Wenn du es anders willst musst du noch prüfen, ob das Licht schon an ist... Dann musst du aber anfangen zu basteln: Das licht ist noch 5 sec an, der 2. Trigger kommt -> wir schalten nicht noch einmal - gut so?

ZitatKann ich zuätzlich zum Bewegungsmelden + Schalten eine fixe Zeit angeben,
ja, klar. dann brauchst du einen 'at', der das Licht anschaltet. Ausserdem musst du im Notify des BM einbauen, dass zu bestimmten Zeiten nicht geschaltet werden soll. Also Uhrzeit im BM-notify abfragen und prüfen.

Ist eine bastelaufgabe - bekommst du sicher hin,

Gruss Martin

Gunther

FHEM@Proxmox@Nuc: TabletUI als User-Interface (4 Wandtablets) / IOs per ser2net gekapselt
Homematic: Heizung, Fenster, Bewegung | Jeelink: Temperatur | Z-Wave: Bewegung, Temperatur | FS20: Temperatur, Fenster | Viessmann-Heizung eingebunden

Gunther

Hiermit klappt es leider nicht. Oder darf ich an der markierten Stelle das $NAME nicht ersetzen?
(Der Bewegungsmelder in der 1. Etage soll die Lampe im Erdgeschoss nur anschalten, wenn der Bewegungsmelder im EG <35 Brighness hat.)

define EG_Flur_Licht_Melder_OG_AN notify og_fl_Bewegungsmelder:motionCount.* {if(ReadingsVal(eg_fl_Bewegungsmelder,"brightness","")<35){fhem"set eg_fl_Tischlampe on-for-timer 120"}}
FHEM@Proxmox@Nuc: TabletUI als User-Interface (4 Wandtablets) / IOs per ser2net gekapselt
Homematic: Heizung, Fenster, Bewegung | Jeelink: Temperatur | Z-Wave: Bewegung, Temperatur | FS20: Temperatur, Fenster | Viessmann-Heizung eingebunden

frank

dein "name" muss natürlich in anführungszeichen (string).

würdest du eine variable nutzen, zb $name, muss es ohne.
eine kleine suche nach "ReadingsVal" hätte dir das wohl auch gezeigt.

ausserdem. wenn du bem notify das attribut verbose(3-5) nutzt, bekommst du in der fhem.log hinweise auf mögliche fehler.

desweiteren kann die nutzung des erweiterten editors, stichwort codemirror, viele syntax errors vermeiden helfen.

gruss frank
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

Gunther

Danke Dir, Frank!
Habe es eingebaut und werde testen.

Nach codemirror mache ich mich direkt auf die Suche.
FHEM@Proxmox@Nuc: TabletUI als User-Interface (4 Wandtablets) / IOs per ser2net gekapselt
Homematic: Heizung, Fenster, Bewegung | Jeelink: Temperatur | Z-Wave: Bewegung, Temperatur | FS20: Temperatur, Fenster | Viessmann-Heizung eingebunden