Hallo,
leider ist das Wiki zum HM-Sen-MDIR-O nur schlecht gepflegt. Das muss geändert werden :)
Ich habe mal versucht, bei Bewegung die Steckdose einzuschalten. Passiert ist aber leider nichts:
Zitatdefine Bewegung notify CUL CUL_HM_HM_Sen_MDIR_O_1EC355:motion:on set CUL_HM_HM_LC_SW1_PL2_1E3C99 on
Welche Zustände kann denn dieser Bewegungsmelder haben?
Danke
das event ist nur 'motion' ohne 'on'. wenn du die steckdose nicht für immer an lassen möchtest solltest du ein 'on-for-timer'
also z.b. so:define Bewegung notify CUL CUL_HM_HM_Sen_MDIR_O_1EC355:motion set CUL_HM_HM_LC_SW1_PL2_1E3C99 on-for-timer 300
gruss
andre
Danke.
Leider schaltet die Steckdose nicht. Scheinbar ist der Sensor nicht richtig angelernt.
siehst du denn den motion state in den device readings oder das event im event viewer?
gruss
andre
1) prinzipiell sind die generierten events im Commandref beschrieben.
2) richtig gepeert oder nicht schaut man nach mit getConfig und dann der peerList.
3) der motion detector sendet an den Aktor zum Trigger auch einen Helligkeitswert. Du musst im Aktor festlegen, ab/bis welchen Level geschaltet werden soll.
Gruss
Martin
hi,
ich sehe folgendes im Eventviewer:
2013-07-15 22:06:09 CUL_HM CUL_HM_HM_Sen_MDIR_O_1EC355 motion
2013-07-15 22:06:09 CUL_HM CUL_HM_HM_Sen_MDIR_O_1EC355 motion: on (to broadcast)
2013-07-15 22:06:09 CUL_HM CUL_HM_HM_Sen_MDIR_O_1EC355 motionCount: 94_next:8-240
2013-07-15 22:06:09 CUL_HM CUL_HM_HM_Sen_MDIR_O_1EC355 brightness: 70
Das hier habe ich noch nicht konfiguriert:
3) der motion detector sendet an den Aktor zum Trigger auch einen Helligkeitswert. Du musst im Aktor festlegen, ab/bis welchen Level geschaltet werden soll.
Werde mal suchen wo ich das einstelle. Mit dem Helligkeitswert kann man dann ja arbeiten, wann das Licht eingeschaltet werden soll. Das ist ja eigentlich besser als die Uhrzeit zu nehmen.
Grüße,
Chris
Hallo,
der Bewegungsmeldung hängt nun am korrekten PLatz.
Er Schaltet die Lampe an bei folgendem Ereignis:
define Bewegung notify CUL_HM_HM_Sen_MDIR_O_1EC355:motion set Haustr_Lampe on-for-timer 300
Wo baue ich das jetzt mit dem Helligkeitswert ein. Tagsüber soll sie ja aus bleiben. In der fhem.cfg habe ich meinen Standort definiert (attr global latitude XX.XXX und attr global longitude XX.XXX). Danach könnte man ja die Dämmerung definieren? Wobei, wenn der Sensor schon die Helligkeit auswerten kann, wäre es mir damit am liebsten.
Am liebsten wäre mir folgendes Setting:
Lampe an
- 30 Minuten nach Dämmerungsbeginn für 60 Minuten
- bei Bewegung während der Dämmerung für 5 Minuten
Danke und Gruß,
Chris
Hi Chris,
normal würde man den mdir mit der lampe peeren - aber dann kann man die Brenndauer nicht über die Dämmerung steuern (ausnahme, man hat einen Dimmer anstelle eines schaltern)
also musst du in deinem Notify einfach das Reading brightness des mdir auswerten und die Zeit entsprechend verlängern. ein ReadingsVal ("CUL_HM_HM_Sen_MDIR_O_1EC355","brightness","") liefert dir den aktuell gemessenen Wert. Schaue dir codeschnipsel an, wie man komplexe notifies bauen könnte.
Gruss Martin
Hi,
bei einem Brightness-Wert kleiner 80 soll das notify ausgelöst werden. Leider finde ich kein Beispiel dazu mit dem Bewegungemelder. Wie kann ich diese Bedingung vor mein notify setzen?
Danke
Hi Chris,
nicht vor, in.
das Notify weckt dich auch, du prüfst im notify den Wert, bevor du das Kommando auslöst.
define Bewegung notify CUL_HM_HM_Sen_MDIR_O_1EC355:motion {\
if (ReadingsVal($NAME,"brightness",0)<80){\
fhem" set Haustr_Lampe on-for-timer 300";;}}
wie üblich incl tipfehler
Zitat von: martinp876 am 26 Januar 2014, 13:55:09
...normal würde man den mdir mit der lampe peeren - aber dann kann man die Brenndauer nicht über die Dämmerung steuern (ausnahme, man hat einen Dimmer anstelle eines schaltern)
also musst du in deinem Notify einfach das Reading brightness des mdir auswerten und die Zeit entsprechend verlängern. ein ReadingsVal ("CUL_HM_HM_Sen_MDIR_O_1EC355","brightness","") liefert dir den aktuell gemessenen Wert. Schaue dir codeschnipsel an, wie man komplexe notifies bauen könnte.
...
Hallo lieben Foren-Gemeinde,
ich versuche nun schon seit Stunden diesen Bewegungsmelder mit einem Schalter HM-LC-Sw1PBU-FM so zu verbinden, dass er eine Außenlampe nur einschaltet, wenn es dunkel ist. Da ich schon etliche Code-Varianten ohne Erfolg durchprobiert habe, vermute ich noch einen grundsätzlichen Fehler in der Konfiguration.
Derzeit schaltet der Bewegungsmelder die Lampe bei jeder Bewegung im Erfassungs-Interval von 1 Minute. Leider wird immer die Helligkeit ignoriert.
Mein Code sieht derzeit so aus:
#Lichtsensor
define Bewegungsmelder1 dummy
attr Bewegungsmelder1 room Terrasse
define Daemmerung notify HM_Melder_Terrasse.*brightness.* {\
if(ReadingsVal("HM_Melder_Terrasse","brightness","---")<=120){\
fhem "set Bewegungsmelder1 dunkel"};;\
if(ReadingsVal("HM_Melder_Terrasse","brightness","---")>120){\
fhem "set Bewegungsmelder1 hell"};;\
}
#Licht an
define Licht_an notify HM_Melder_Terrasse:motion {\
if(Value("Bewegungsmelder1" eq "dunkel") {\fhem("set HM_Terrassenlampe on-for-timer 240"}\}
Der Dummy hat die Eigenschaft "hell". Trotzdem schaltet die Lampe. Kann es sein, dass hier etwas mit dem Peering nicht stimmt oder liegt es am Code? Nachdem ich gestern ein direktes Peering durchgeführt hatte, mit dem Effekt, dass tagsüber die Lampe immer wieder anging, habe ich heute beide Module nur direkt an der HMLAN/Fritzbox angelernt.
Muss ich nun ein Peering indirekt/direkt durchführen oder nicht, wenn ja, wie genau. Leider geht das aus den zahlreichen Beiträgen, die ich bisher gefunden habe, nicht wirklich hervor bzw. ist nicht eindeutig.
Ich hatte auch schon über peerchan den Bewegungsmelder mit dem Schalter verbunden. Der Bewegungsmelder war dann in der Peerlist des Schalters. Aber auch das machte keinen Unterschied.
Mag sein, dass ich hier etwas allgemein Bekanntes frage, aber Ihr dürft mir glauben, ich habe heute schon viel gesucht und gelesen. Möglicherweise sehe ich den Wald vor lauter Bäumen nicht.
Gruß
abolte
Hi abolte
if(Value("Bewegungsmelder1" eq "dunkel") {\fhem("set HM_Terrassenlampe on-for-timer 240"}\}
klammern zu machen.'"Bewegungsmelder1" eq "dunkel"' ist al sentity nicht existent
if(Value("Bewegungsmelder1") eq "dunkel") {\fhem("set HM_Terrassenlampe on-for-timer 240"}\}
ZitatNachdem ich gestern ein direktes Peering durchgeführt hatte, mit dem Effekt, dass tagsüber die Lampe immer wieder anging,
laesst sich beheben.
Zitathabe ich heute beide Module nur direkt an der HMLAN/Fritzbox angelernt.
immer gut ;)
ZitatMuss ich nun ein Peering indirekt/direkt durchführen oder nicht
a) was meinst du mit direkt/indirekt?
b) peering sowieso nur, wenn du ohne notify arbeiten willst (was ich machen wuerde) . Also peeren ODER notify
Peeren nach dem anlernen BEIDER devices an FHEM mit
set <mdir> peerChan 0 <AktotCHANNEL> single
Mit getConfig pruefen, dass es funktioniert hat
ZitatIch hatte auch schon über peerchan den Bewegungsmelder mit dem Schalter verbunden
den Zustand solltest du erst einmal wieder herstellen
ZitatMag sein, dass ich hier etwas allgemein Bekanntes frage
zumindest habe ich es schon oefter erklaert ;)
a) der MDIR - wenn gepeert sendet bei jeder Helligkeit einen trigger wenn motion erkannt wurde. Es gibt ein paar Filter zu Motion...
b) der Aktor ist der Entscheider. Er bekommt den Trigger und die Helligkeit und entscheidet, was zu tun ist: Licht oder kein Licht.
Nutze an einfachsten HMInfo templates um den Aktor einzurichten. Peering muss schon bestehen, dann
define hm HMInfo
set hm templateSet <actorCHANNEL> motionOnSw <mdir>:short <brightness> <ontime>
also
set hm HM_Terrassenlampe templateSet motionOnSw HM_Melder_Terrasse:short 120 240
Sieh dir die Hilfe zu templates in HMInfo an - ggf mache vor und nach dem Kommando ein
set hm register -f HM_Terrassenlampe
falls dich interessiert, was geaendert wurde.
Gruss Martin
Hallo martinp876,
vielen Dank für Deine Antwort. Leider scheint es so zu sein, dass die Einstiegshürde ziemlich hoch liegt :(. Für den Hinweis auf einen Leitfaden für Dummys wäre ich natürlich dankbar. Die Vielzahl der Quellen führt derzeit eher zur Verwirrung, denn zu Klärung.
Ich habe 3 Nachfragen:
Wenn ich den Schalter und Aktor peere und über das Template arbeite, ist dann der o.a. "notify"-Code komplett überflüssig? So interpretiere ich die Antwort.
Bzw. andersherum, wenn ich mit notify arbeite, benötige ich dann überhaupt ein Peering?
Muss ich in beiden Geräten die jeweilige PeerID finden? Derzeit liefert der configccheck nämlich:
configCheck done:
incomplete register set
HM_Terrassenlampe:RegL_03:HM_Melder_Terrasse_chn:01
missing Peer Registerset
HM_Melder_Terrasse - found: expected:2607EF01,
HM_Terrassenlampe - found:,20AB3501, expected:20AB3501,
incomplete list
empty list
peer not verified
Gruß
abolte
Hi Abolte
ZitatLeider scheint es so zu sein, dass die Einstiegshürde ziemlich hoch liegt . Für den Hinweis auf einen Leitfaden für Dummys wäre ich natürlich dankbar.
Ein Grundverstaendniss ist immer hilfreich... und das sollte man sich m.E. aneignen. Aber ein Einstieg sollte machbar sein.
mdir und Licht ist gehobene Klasse, da man immer wieder scheitern wird, wenn man nicht erkannt hat, dass der Aktor die Helligkeit auswertet und nicht der MDIR.
ZitatDie Vielzahl der Quellen führt derzeit eher zur Verwirrung, denn zu Klärung.
Verstehe ich. Informationen von mir versuche ich konsistent zu halten (einsteigerdoc, commandref und meine Beitraege des Forums). Alles andere habe ich nicht unter Kontrolle, insbesondere wiki. Ausserdem gibt es immer wieder andere philosophien, die andere aktionen benoetigen....
ZitatWenn ich den Schalter und Aktor peere und über das Template arbeite, ist dann der o.a. "notify"-Code komplett überflüssig?
korrekt. Wenn du peerst (immer einen Sensor/button mit einem aktor) sendet der Sensor werte und trigger direkt an den Aktor. Der Aktor muss entscheiden, ob und was zu tun ist. Die Zentrale lauscht und protokoliert.
Wenn du mit notifies arbeitest sendet der Sensor an die Zentrale und die Zentrale triggert den Aktor - peering ist nicht erforderlich.
Fall 2 (notify) nutze ich nur, wenn es nicht vermeidbar ist (uhrzeit-abhaengige aktionen...)
ZitatMuss ich in beiden Geräten die jeweilige PeerID finden?
ja. Der Aktor reagiert auf trigger seines peers - nicht gepeert, keine Aktion. Der Sensor erwartet ein ack von gepeerten Aktoren - messages werden wiederholt, wenn der Aktor nicht antwortet. Nicht gepeert, kein Wiederholen. Ausserdem kann man im Sensor methoden zum aufwecken des Aktors einschalten (burst mode).
incomplete register set
HM_Terrassenlampe:RegL_03:HM_Melder_Terrasse_chn:01
=> die Register wurden nichtkomplett gelesen.
missing Peer Registerset
HM_Melder_Terrasse - found: expected:2607EF01,
=>der peereintrag im MDIR ist nicht vorhanden oder nicht gelesen
HM_Terrassenlampe - found:,20AB3501, expected:20AB3501,
=> da ist ein "," zu viel. hast du das von Hand editiert?
Gruss Martin
Grrr, ich schraub das Ding gleich wieder von der Wand.
Ich habe nun reseted und neu angelernt. Mit peerchan den Melder mit dem Schalter verbunden. Das Ergebnis bleibt nahezu gleich.
peerXref done:
x-ref list
HM_Melder_Terrasse =>HM_Terrassenlampe_chn:01
HM_Terrassenlampe =>HM_Melder_Terrasse_chn:01
aber
configCheck done:
incomplete register set
HM_Melder_Terrasse:RegL_04:HM_Terrassenlampe_chn:01
HM_Terrassenlampe:RegL_03:HM_Melder_Terrasse_chn:01
missing Peer Registerset
HM_Melder_Terrasse - found:,2607EF01, expected:2607EF01,
HM_Terrassenlampe - found:,20AB3501, expected:20AB3501,
wieso ist das Register unvollständig und wo kommen die Kommas her? In der PeerID steht zusätzlich immer noch 00000000
Sorry, das ich nerve, aber wenn ich mir was in den Kopf gesetzt habe, will ich es auch umsetzen. Mein freier Tag ist jetzt fast komplett dafür draufgegangen :(.
Danke.
Gruß
abolte
Hallo Abolte,
Sollte es kommunikationsprobleme geben sind rohmessages immer notwendig. Zeichene doch einmal auf.
ZitatIn der PeerID steht zusätzlich immer noch 0000000
das muss so sein. Das sendet das Device am Schluss, es zeigt das Ende an - bitte so stehen lassen.
Zeige auch einmal ein List der Devices - das mit den Kommas ist seltsam.
Gruss Martin
Hier erstmal die List der beiden Geräte. In diesem Zustand schaltet die Lampe derzeit bei jeder Bewegung. Insofern müsste das Peering anscheinend doch stimmen.
Internals:
CFGFN
DEF 20AB35
EVENTS 41
HMLAN1_MSGCNT 56
HMLAN1_RAWMSG E20AB35,0000,0015E025,FF,FFB4,2E841020AB35FFFF0006017700
HMLAN1_RSSI -76
HMLAN1_TIME 2014-02-24 20:17:07
IODev HMLAN1
LASTInputDev HMLAN1
MSGCNT 56
NAME HM_Melder_Terrasse
NR 75
STATE motion
TYPE CUL_HM
lastMsg No:2E - t:10 s:20AB35 d:FFFF00 06017700
peerList HM_Terrassenlampe,
protLastRcv 2014-02-24 20:17:07
protResnd 12 last_at:2014-02-24 20:08:53
protSnd 46 last_at:2014-02-24 20:17:07
protState CMDs_done_events:12
rssi_at_HMLAN1 avg:-64.5 min:-76 max:-55 lst:-76 cnt:56
Readings:
2014-02-24 20:09:42 Activity alive
2014-02-24 20:09:24 CommandAccepted yes
2014-02-24 20:09:43 PairedTo 0xFFFF00
2014-02-24 19:54:34 R-2607EF01-peerNeedsBurst off
2014-02-24 20:09:43 R-brightFilter 7
2014-02-24 20:09:43 R-captInInterval off
2014-02-24 19:54:33 R-evtFltrNum 1
2014-02-24 19:54:33 R-evtFltrPeriod 1 s
2014-02-24 19:54:32 R-intKeyVisib invisib
2014-02-24 19:54:33 R-ledOnTime 0 s
2014-02-24 20:09:43 R-minInterval 60
2014-02-24 19:54:32 R-pairCentral 0xFFFF00
2014-02-24 20:09:43 RegL_00: 02:01 0A:FF 0B:FF 0C:00 00:00
2014-02-24 20:09:43 RegL_01: 01:12 02:72 08:00 22:00 00:00
2014-02-24 20:09:44 RegL_04:HM_Terrassenlampe_chn 01:00 00:00
2014-02-24 20:17:07 battery ok
2014-02-24 20:17:07 brightness 119
2014-02-24 20:17:07 cover closed
2014-02-24 20:14:49 motion on (to HM_Terrassenlampe)
2014-02-24 20:14:49 motionCount 6_next:6-60
2014-02-24 20:09:44 peerList HM_Terrassenlampe,
2014-02-24 20:14:49 state motion
Regl_04:hm_terrassenlampe_chn:01:
VAL
Helper:
burstEvtCnt 12
mId 005D
peerIDsRaw ,2607EF01,00000000
rxType 28
Prt:
sProc 0
Rspwait:
Role:
chn 1
dev 1
Rssi:
At_hmlan1:
avg -64.5
cnt 56
lst -76
max -55
min -76
Shadowreg:
Attributes:
actCycle 000:10
actStatus alive
expert 2_full
firmware 1.6
model HM-Sen-MDIR-O
peerIDs 00000000,2607EF01,
room CUL_HM
Internals:
CFGFN
DEF 2607EF
EVENTS 48
HMLAN1_MSGCNT 59
HMLAN1_RAWMSG E2607EF,0000,0018B042,FF,FFC2,30A4102607EFFFFF0006010000
HMLAN1_RSSI -62
HMLAN1_TIME 2014-02-24 20:20:11
IODev HMLAN1
LASTInputDev HMLAN1
MSGCNT 59
NAME HM_Terrassenlampe
NR 83
STATE off
TYPE CUL_HM
lastMsg No:30 - t:10 s:2607EF d:FFFF00 06010000
peerList CUL_HM_HM_Sen_MDIR_O_20AB35,
protLastRcv 2014-02-24 20:20:11
protSnd 53 last_at:2014-02-24 20:20:11
protState CMDs_done
rssi_CUL_HM_HM_Sen_MDIR_O_20AB35 avg:-72 min:-77 max:-67 lst:-67 cnt:2
rssi_HM_Melder_Terrasse avg:-60.66 min:-63 max:-57 lst:-63 cnt:3
rssi_at_HMLAN1 avg:-60.4 min:-67 max:-57 lst:-62 cnt:59
Readings:
2014-02-24 20:14:49 CommandAccepted yes
2014-02-24 19:59:43 PairedTo 0xFFFF00
2014-02-24 19:55:20 R-intKeyVisib invisib
2014-02-24 19:55:20 R-localResDis off
2014-02-24 19:55:20 R-pairCentral 0xFFFF00
2014-02-24 19:55:21 R-sign off
2014-02-24 19:55:21 R-statusInfoMinDly 2 s
2014-02-24 19:55:21 R-statusInfoRandom 1 s
2014-02-24 19:55:21 R-transmitTryMax 6
2014-02-24 19:59:43 RegL_00: 02:01 0A:FF 0B:FF 0C:00 15:FF 18:00 00:00
2014-02-24 19:59:44 RegL_01: 08:00 30:06 57:24 00:00
2014-02-24 19:59:46 RegL_03:CUL_HM_HM_Sen_MDIR_O_20AB35_chn 02:22 03:22 04:FF 05:FF 06:00 07:7E 08:34 09:FF 0A:81 0B:13 0C:33 82:00 83:00 84:32 85:64 86:00 87:FF 88:00 89:FF 8A:21 8B:13 8C:33 00:00
2014-02-24 20:03:33 RegL_03:CUL_HM_HM_Sen_MDIR_O_20AB35_chn:01
2014-02-24 20:20:11 deviceMsg off (to HMLAN1)
2014-02-24 20:20:11 level 0 %
2014-02-24 19:59:45 peerList CUL_HM_HM_Sen_MDIR_O_20AB35,
2014-02-24 20:20:11 running -
2014-02-24 20:20:11 state off
2014-02-24 20:14:49 trigLast HM_Melder_Terrasse:118
2014-02-24 20:01:06 trig_CUL_HM_HM_Sen_MDIR_O_20AB35 117
2014-02-24 20:14:49 trig_HM_Melder_Terrasse 118
Helper:
mId 0069
peerIDsRaw ,20AB3501,00000000
rxType 1
Prt:
sProc 0
Rspwait:
Role:
chn 1
dev 1
Rssi:
Cul_hm_hm_sen_mdir_o_20ab35:
avg -72
cnt 2
lst -67
max -67
min -77
Hm_melder_terrasse:
avg -60.6666666666667
cnt 3
lst -63
max -57
min -63
At_hmlan1:
avg -60.406779661017
cnt 59
lst -62
max -57
min -67
Shadowreg:
Attributes:
expert 2_full
firmware 2.3
model HM-LC-Sw1PBU-FM
peerIDs 00000000,20AB3501,
room CUL_HM
Wie kann ich denn die Kommunikation aufzeichnen?
Hi,
da stimmt etwas nicht, da deine Devices keine subType haben.
kannst du noch einmal anlernen druecken und danach ein save machen? beide Devices
Dann sollte ein subType vorhanden sein
Gruss Martin
Hallo Martin,
die subTypes sind da. Ich habe sie nicht mitkopiert ::). Ich habe nun erstmal den Weg über notify genommen, damit endlich Licht auf die Terrasse kommt. Das Peering schaue ich mir dann wieder an, wenn ich das System erweitere. Danke.
Gruß
abolte