Bewegunsgmelder Hm-Sec MDIR

Begonnen von steff911, 09 Januar 2013, 20:37:56

Vorheriges Thema - Nächstes Thema

steff911

Hallo,

ich weiß es ist schon fast unverschämt, aber könnte mir jemand Code geben um einen
Bewegungsmelder HM-Sec MDIR schnell in mein System einzubinden?

Habe mom. keine Zeit mich in das für mich neue Thema rein zu fuchsen und wäre für Hilfe
sehr dankbar.

Der Sensor ist schon gepairt und ich müßte wissen, wie ich einen Schaltaktor in abhängigkeit
mit dem Bewegungsmelder schalte.

Puschel74

Hallo,

naja, so wie alle anderen Bewegungsmelder auch, schätze ich mal.

define <ichpassaufwasauf> notfy <deinbewegungsmelder>:<wasdersendet>.* {
  fhem ("set <ichschaltwas> on");
}

Grüße

P.S.: Aber für einen Bewegungsmelder und einen Aktor ist fhem, denke ich mal, Overkill ;-)
Du wirst dich schon einlesen müssen wenns mehr werden soll
Zotac BI323 als Server mit DBLog
CUNO für FHT80B, 3 HM-Lan per vCCU, RasPi mit CUL433 für Somfy-Rollo (F2F), RasPi mit I2C(LM75) (F2F), RasPi für Panstamp+Vegetronix +SONOS(F2F)
Ich beantworte keine Supportanfragen per PM! Bitte im Forum suchen oder einen Beitrag erstellen.

Puschel74

Sorry, nicht ganz richtig:

define <ichpassaufwasauf> notify <deinbewegungsmelder>:<wasdersendet>.* {
fhem ("set <ichschaltwas> %");
}


So sollte es besser passen solange der Bewegungsmelder ein on und ein off sendet aber schalten tut auch der vorige Schnipsel.
Du hast ja nicht gesagt was er wie schalten soll ;-)
Zotac BI323 als Server mit DBLog
CUNO für FHT80B, 3 HM-Lan per vCCU, RasPi mit CUL433 für Somfy-Rollo (F2F), RasPi mit I2C(LM75) (F2F), RasPi für Panstamp+Vegetronix +SONOS(F2F)
Ich beantworte keine Supportanfragen per PM! Bitte im Forum suchen oder einen Beitrag erstellen.

steff911

Mein Wunsch!

Momentan ist für die Beleuchtung in der Einfaht noch ein Schaltaktor eingebaut.
Der wird aber jetzt gegen einen Dimmer getauscht.

Wie bisher soll bei Dämmerung in der Einfahrt mein Licht eingeschaltet werden.
Dies aber mit z.B. 40 Prozent.
Sobald sich jemand in den Bereich des Bewegunsgmelder bewegt, soll das Licht auf
100% erhöht werden.
Nach einer gewissen Zeit dann wieder runter auf das gedämpfte Licht.

Puschel74

Hallo,

anbei.
Hab ich heut für ein Zimmer bei uns "gebastelt".

Wenn das Licht Aus ist wird es durch den Bewegungsmelder erstmal auf 93% hochgedimmt und ein Dimer gestartet der das Licht nach 3 Minuten auf 43% runter dimmt und nach 5 Minuten das Licht
ausschalten würde.
Der Ausschalttimer wird durch den Bewegungsmelder aber verlängert wobei das Licht nicht nochmal auf 93% hoch gedimmt wird - hoffe ich mal.
Ich habs noch nicht komplett ausprobiert.

OG_Zimmer_Bewegungsmelder:on.* {
  if (!isday()) {
    if (Value("OG_Zimmer_Deckenlicht") eq "Aus") {
      fhem ("set OG_Zimmer_Deckenlicht dim 93%%");
    }
    if (Value("OG_Zimmer_Deckenlicht") ne "Aus") {
      fhem ("define Licht_runter at +00:03:00 set OG_Zimmer_Deckenlicht dim43%%") if (Value("Licht_runter") eq "");
    }
    fhem ("delete Licht_aus") if (Value("Licht_aus") ne "");
    fhem ("define Licht_aus at +00:05:00 set OG_Zimmer_Deckenlicht off");
  }
  fhem ("set OG_Zimmer_Bewegungsmelder off");
}


Darfst du gerne nehmen und für dich anpassen.

Grüße
Zotac BI323 als Server mit DBLog
CUNO für FHT80B, 3 HM-Lan per vCCU, RasPi mit CUL433 für Somfy-Rollo (F2F), RasPi mit I2C(LM75) (F2F), RasPi für Panstamp+Vegetronix +SONOS(F2F)
Ich beantworte keine Supportanfragen per PM! Bitte im Forum suchen oder einen Beitrag erstellen.

Zrrronggg!

Zeitabhängiges schalten erstmal wie bisher, nur anstatt set lampe on eben dimmen 40%

Beim Bewegungsmelder gibts ein kleines Problem:
Die senden kein OFF wenn sich NICHTS bewegt.  ;-)

In direkte Kopplung würde man das Problem mit "on old for timer" umgehen, aber
a) weiss ich nicht ob HM Bewegungsmelder das können (FS 20 können das)
b) ist das in FHEM Umgebungen eher nicht so problemfrei, da bildet man das besser mit FHEM ab

Dazu modifiziert man Puschel74' Code so:

define <ichpassaufwasauf> notfy <deinbewegungsmelder>:<wasdersendet>.* {
fhem ("set <dielampe> on ;; define <ichmachwiederaus> at +00:05:00 set <dielampe> dim 40% ");
}


paar Anmerkungen
- at +00:05:00 durch eigene Zeit ersetzen
- war der Dimmbefehle jetzt  " set <dielampe> dim xy%"  ? Bin mir nicht sicher, ich habe keine Dimmer.
- ganz hundertprozentig ist das noch nicht, weil eine Bewegungsmelderauslösung INNERHALB der 5 Minuten diese nicht verlängert, was man in der Regel aber haben will
- notfy <deinbewegungsmelder>:<wasdersendet>.*   ist eigentlich schon zu viel des Guten. Es ist doch im Grunde egal WAS der Bewegungsmelder sendet, solange er so eingestellt ist, das er NUR was sendet, wenn er eine Bewegung sieht. Ich weiss nicht genau wie es bei dem HM Dingern ist, aber bei den FS20 Bewegungsmeldern ist das der Normalfall. Dann reicht


define <ichpassaufwasauf> notfy <deinbewegungsmelder>  {
fhem ("set <dielampe> on ;; define <ichmachwiederaus> at +00:05:00 set <dielampe> dim 40% ");
}

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!

Stimmt, escapen vergessen:

define <ichpassaufwasauf> notfy <deinbewegungsmelder> {
fhem ("set <dielampe> on ;; define <ichmachwiederaus> at +00:05:00 set <dielampe> dim 40%% ");
}


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

Puschel74

Tja, wusste doch das es auch einfach geht aber ...

soweit ist ja alles recht und auch richtig Zrrronggg! nur habe ich bemerkt das sich durch erneutes auslösen meines Bewegungsmelders das notify eben doch um die in at angegebene
Zeit verlängert hat.
Deswegen prüfe ich ja
if (Value("OG_Zimmer_Deckenlicht") ne "Aus") {
      fhem ("define Licht_runter at +00:03:00 set OG_Zimmer_Deckenlicht dim43%%") if (Value("Licht_runter") eq "");

So wird das Licht nach 3 Minuten gedimmt wenn es nicht Aus ist und Licht_runter bereits angelegt.
Auf den letzten Teil kommt es an.
Als ich das nicht drinnen hatte wurde die Zeit zum runterdimmen immer weiter verlängert - das wollte ich ja nicht.
Durch
fhem ("delete Licht_aus") if (Value("Licht_aus") ne "");
    fhem ("define Licht_aus at +00:05:00 set OG_Zimmer_Deckenlicht off");

Wird mir das Licht auf alle Fälle 5 Minuten nach der letzten Auslösung abgeschaltet.
Also sollte, nach deinem Beispiel, der Bewegungsmelder mit JEDER Auslösung das Licht einschalten und die Zeit für das runterdimmen wieder 5 Minuten nach hinten verlegen.
Sollte eigentlich so passen was du gepostet hast ;-)

Grüße
Zotac BI323 als Server mit DBLog
CUNO für FHT80B, 3 HM-Lan per vCCU, RasPi mit CUL433 für Somfy-Rollo (F2F), RasPi mit I2C(LM75) (F2F), RasPi für Panstamp+Vegetronix +SONOS(F2F)
Ich beantworte keine Supportanfragen per PM! Bitte im Forum suchen oder einen Beitrag erstellen.

Zrrronggg!

Wollte deinen Beitrag nicht korrigieren oder so, ich hatte angefangen zu schreiben bevor dein Beitrag drin war! War also Doppelpost.

Zitat...meines Bewegungsmelders das notify eben doch um die in at angegebene
Zeit verlängert hat.

Das kann zumindest bei dem Konstrukt

define <ichpassaufwasauf> notfy <deinbewegungsmelder> {
fhem ("set <dielampe> on ;; define <ichmachwiederaus> at +00:05:00 set <dielampe> dim 40%% ");
}

eigentlich nicht sein, weil ein erneutes Auslösen beim Versuch,
 define <ichmachwiederaus> at +00:05:00
anzulegen mit der Fehlermeldung
 <ichmachwiederaus> does allready excist, delete it first
abbricht.
(Es sei denn, dieses Verhalten hat sich seit FHEM 5.3 wesentlich geändert)

Und dass heisst dann, dass das ALTE <ichmachwiederaus> mit der alten Ausschaltzeit weiter gültig ist.

Natürlich gibt es Wege, das zu umgehen. Z.B. deiner oben.
Ich bevorzuge meistens:

define <ichpassaufwasauf> notfy <deinbewegungsmelder> {
fhem ("delete <ichmachwiederaus> ;;set <dielampe> on ;; define <ichmachwiederaus> at +00:05:00 set <dielampe> dim 40%% ");
}

Das ist schön kurz, hat aber den Nachteil, bei der ersten Auslösung nachdem die Lampe aus (oder hier auf 40%) war, eine Fehlermeldung abwirft,
weil das Konstrukt versucht  <ichmachwiederaus> zu löschen, was aber da noch nicht existiert. Man kann die fehlermeldung zwar ignorieren, aber
ist eben doch unschön.

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

steff911

Schon mal vielen Dank euch allen.
Werde das mit euren Antworten bestimmt umgesetzt bekommen.

Nur noch eine Frage.
Beim automatischen Pairen wurde folgendes noch angelegt

define ActionDetector CUL_HM 000000
attr ActionDetector actCycle 600
attr ActionDetector room CUL_HM

Der Bewegungsmelder sendet bei Bewegung automatisch an diesen ActionDetector

2013-01-09_22:21:54 EF_Bewegunsgmelder motion: on (to ActionDetector)

Was hat es damit auf sich?

Der Sensor erkennt nach dem Auslösen erst nach ca. 4 Minuten die nächste Bewegung.

steff911

Versuche momentan in die Register zu schreiben um über die Einstellungen die 4 Minuten runter zu setzen.

Leider bleibt in den Readings im das set_ stehen. Der MDIR übernimmt anscheinend die Werte nicht.
Hab ich etwas vergessen? An ein erneutes getConfig habe ich schon gedacht,

Samsi

Vielleicht musst Du erst ein anderes Register von klassisch auf Dynamisch setzen, bevor Du die Zeit einstellen kannst. In der Windows Konfig software ist das zumindest so. Folgendes ist aus der hilfe in der Windows Software, vielleicht hilft Dir das weiter(ich glaube nämlich, das das was Du machen willst gar niht geht, denn die hilfe spricht hier nur von 'Direkten Verknüpfungen' also nicht mit der gepaarten Zentrale.

Es gibt aber noch einen anderen, booleschen wert: "Innerhalb des Sendeabstandes erkannte Bewegung senden". Vielleicht hilft Dir der weiter.


Hier die Beschreibung innerhalb der Windows Konfigurationssoftware:

"Wahl des Sendeabstandes

Wenn beim Anlegen direkter Verknüpfungen die "Art der Verweildauer" auf "minimal" gestellt ist (Standardverhalten), dann wirkt sich die Wahl des Sendeabstandes direkt auf die Mindestverweildauer des Verbrauchers (Aktors) aus.

Es gilt dann folgende Beziehung:

Einstellung klassisch:
Diese Einstellung gibt die Funktion eines klassischen Bewegungsmelders wieder. Der Sendeabstand ist fest auf 240 Sekunden (+ 10% Toleranz) vorgegeben. Dies bedeutet: Der Bewegungsmelder meldet die erste erkannte Bewegung sofort, weitere Bewegungen dann erneut wieder nach einer Zeit von ca. 240 Sekunden. Bei direkten Verknüpfungen z. B. mit einem Funk-Schalter (zum Einschalten der Beleuchtung) hat die Beleuchtung damit automatisch eine Einschaltzeit von min. 5 Minuten. D. h., die Beleuchtung schaltet sich frühestens 5 Minuten nach der erkannten Bewegung wieder aus. Bei ständiger Bewegung wird die Einschaltdauer automatisch immer um 5 Minuten verlängert.

Vorteil: Fest vorbestimmte Einschaltdauer des Verbrauchers und batterieschonender Betrieb des Bewegungsmelders.

Nachteil: Keine kürzeren Einschaltzeiten als 5 Minuten möglich.

Einstellung dynamisch:
Der Sendeabstand passt sich automatisch der im Raum vorhandenen Bewegung an. Der Minimalwert kann vorgegeben werden, wobei kleine Werte zu Lasten der Batterielebensdauer gehen. Der Bewegungsmelder meldet die erste erkannte Bewegung sofort, weitere Bewegungen dann zunächst nach der eingegebenen Minimalzeit (z. B. 30 Sekunden). Bei direkten Verknüpfungen z. B. mit einem Funk-Schalter (zum Einschalten einer Beleuchtung) hat die Beleuchtung damit auch eine Mindesteinschaltzeit von 30 Sekunden. Die Beleuchtung schaltet sich nach 30 Sekunden ab. Bei ständiger Bewegung verlängert der Bewegungsmelder selbstständig schrittweise (dynamisch) seinen Sendeabstand und damit auch gleichzeitig die Einschaltdauer eines direkt veknüpften Verbrauchers auf bis zu 10 Minuten.

Vorteil: Bei Umgebungen mit wenig Bewegung kann die Einschaltdauer direkt verknüpfter Verbraucher klein gehalten werden (energiesparend).

Nachteil: Die Einschaltdauer ist nicht vorhersehbar und kann u. U. bis zu 10 Minuten betragen. Verkürzte Batterielebensdauer des Bewegungsmelder."
FHEM 5.5 / BBB Debian Wheezy

Homematic CFG-LAN

HM-Sec-MDIR / HM-Sec-SD / HM-Sec-WDS / HM-LC-Sw2-FM / HM-Sec-SC / HM-LC-Sw1PBU-FM / HM-SCI-3-FM / HM-Sec-Key / HM-RC-Key3-B / HM-LC-Dim1TPBU-FM /  HM-CC-RT-DN / HM-PBI-4-FM / HM-RC-Key4-2 / HM-ES-PMSw1-Pl / HM-LC-Sw4-WM