nachdem ich nun einen mdir habe konnte ich das Verhalten besser analysieren (nun ja, spät... aber immerhin).
Folgende Änderungen:
in motionCoutnt spiegelt "next" die zeit bis zum nächsten Trigger des gleichen ereignisse wieder. Die Zeitberechnugn ist korrigiert.
Da nun eine korrekte Berechnung vorhanden ist habe ich auch "no Motion" eingebaut (war oft gefordert) mit folgenden Readings:
state zeigt nun neben "Motion" auch "noMotion" an. Wers brauchen kann.
Reading "motion" kann den Zustand "no" annehmen (beides erfolgt zeitgleich)
Weiter habe ich folgendes Verhalten des LacyConfig motion detectors nachvollogen: man kann bekanntlich bei diesem Typ der Devices kommandos schicken welche vom Device verarbeitet werden, wenn ein Trigger auftritt. Das funktionierte nach dem peeren nicht mehr. Man muss also config drücken um mit dem Device zu reden. Peert man aber den Kanal mit dem IO-Dev (also eigentlich mit der vccu) funktioniert es weiter. Daher die Empfehlung:
alle "lazyConfig devices" mit einem Kanal der ccu peeren!
Ich werden einen CCU Kanal anlegen "ccuLC" den ich mit allen Kanälen der LacyConfig devices peeren werde. Zu beachten: Das lacyConfig funktioniert nur bei den Kanälen, die mit der vccu gepeert sind!
und weiter - template: wie sollte man einen MDIR mit einem Switch peeren. Aufgabe ist, dass man das Licht über Schalter einschalten kann und damit den MIR übesteuert.
set hm templateDef SwMdir onTime:minBrightness "switch action when peered motionDetector" lgSwJtOff:no shOnDly:0 shSwJtOn:no lgSwJtOn:no shOffDly:p0 lgActionType:off shOffTimeMode:minimal shCtDlyOff:ltHi lgSwJtDlyOff:no lgMultiExec:off shOnTime:0 shCtValHi:p1 shOffTime:unused shMultiExec:off shOnTimeMode:minimal shSwJtDlyOff:dlyOff shSwJtOff:dlyOff shCtOff:ltHi shActionType:jmpToTarget shCtOn:ltHi shSwJtDlyOn:no shCtDlyOn:ltHi lgSwJtDlyOn:no
das template ist typ "both", also (peering und getConfig bereits abgeschlossen!)
set hm templateSet SwitchChannel SwMdir motionDetector:both 30 20
damit ist der Peer hinreichend durchspezifiziert. Also einschalten für 30sec wenn Helligkeit unter 20
einen weiteren Peer, also einen Button, sollte man mit dem Template "SwToggle" oder "SwOn" und "SwOff" belegen. Diskutieren kann man noch was toggle machen soll, wenn das Licht durch den MDIR gerade an ist.
Hi! Das klappt scheinbar soweit mit den Außenbewegungsmeldern HM-Sen-MDIR-O-2 ganz gut, der Watchdog zum Zurücksetzen wird nicht mehr benötigt.
Innenbewegungsmelder HM-Sen-MDIR-WM55 müssen jedoch weiterhin manuell zurück gesetzt werden.
Bei mir steht beim HM-Sen-MDIR-WM55 nach der eingestellten Zeit das off in Reading motion drin.
Hm, so ganz verstehe ich das nicht. Der HM-Sen-MDIR-WM55 hat sich und 3 Kanäle (Btn_01 Btn_02 Motion) eingebunden. Ich habe bisher den Kanal3 (Motion) verwendet, da dieser die Readings zu "motion" und "brightness" korrekt anzeigt, dort wird motion nicht zurückgesetzt.
Das Device selber zeigt nur veraltete Werte, dort wird state:noMotion und motion:no allerdings gesetzt.
Muss mich korrigieren, ich hatte ein notify erstellt und nicht mehr dran gedacht.
Zitat von: martinp876 am 17 April 2016, 13:44:12
Daher die Empfehlung:
alle "lazyConfig devices" mit einem Kanal der ccu peeren!
Ich werden einen CCU Kanal anlegen "ccuLC" den ich mit allen Kanälen der LacyConfig devices peeren werde. Zu beachten: Das lacyConfig funktioniert nur bei den Kanälen, die mit der vccu gepeert sind!
und weiter - template: wie sollte man einen MDIR mit einem Switch peeren. Aufgabe ist, dass man das L
set hm templateDef SwMdir onTime:minBrightness "switch action when peered motionDetector" lgSwJtOff:no shOnDly:0 shSwJtOn:no lgSwJtOn:no shOffDly:p0 lgActionType:off shOffTimeMode:minimal shCtDlyOff:ltHi lgSwJtDlyOff:no lgMultiExec:off shOnTime:0 shCtValHi:p1 shOffTime:unused shMultiExec:off shOnTimeMode:minimal shSwJtDlyOff:dlyOff shSwJtOff:dlyOff shCtOff:ltHi shActionType:jmpToTarget shCtOn:ltHi shSwJtDlyOn:no shCtDlyOn:ltHi lgSwJtDlyOn:no
das template ist typ "both", also (peering und getConfig bereits abgeschlossen!)
set hm templateSet SwitchChannel SwMdir motionDetector:both 30 20
damit ist der Peer hinreichend durchspezifiziert. Also einschalten für 30sec wenn Helligkeit unter 20
Das klingt alles toll, aber könntest Du das bitte in eine Sprache übersetzen, die für Leser unterhalb des Hero Levels leichter verständlich ist...? Vielleicht ein Beispiel?
Großen Dank, -MN
Martin,
soweit verstehe ich das Templateverfahren, brauche aber auch noch etwas Anleitung zu den o.a. set Befehlen: Was sind die Namen der beteiligten Devices (MDIR, Switch), was sind Register ...
Konkret, was sind ...
- SwMdir
- ...:minBrigthness
- SwitchChannel
- motionDetector
Danke ...
was sind wir doch für kleine Lichter ;) jetzt hab ich das Templateverfahren erst in seiner vollen Tragweite verstanden ...
In hm wird ein template namens SwMdir definiert, was alle Register der beiden beteiligten Devices entsprechend setzt. Mit "templateSet" wird dann das template auf Schalter (hier: SwitchChannel) und Bewegungsmelder (hier: motionDetector) angewandt.
Und das Beste: Es funktioniert ... 8)
Danke Martin
P.S. Ich verwende einen HM-SEC-MDIR-2 und einen HM-LC-SW4-WM
Korrekt verstanden.
Wichtig ist ( ich wiederhole mich) zu verstehen:
Templates kann man fuer jeden device Typ definieren. Man kann es unabhängig von long short definieren. Dann kann man es verwenden fuer long oder short.
Alternativ kann man both definieren. Das setzt dann long und short aus einmal.
Und drittens kann man 0 definieren. Das sind die peerlosen Register.
Das Besondere ist, dass man damit eine Funktion definiert und diese dann replizieren kann. Ausserdem kann man prüfen ob das device programmiert ist. Und man kann es wiederherstellen.
Evtl kannst du es mit anderen Worten beschreiben-wie die Nutzung und die Vorteile sind. M.e. sollte man nur noch templates nutzen. Die gibt es jetzt schon ewig.
Hallo,
ich habe bisher das Reading state meines HM-SEC-MDIR-2 per watchdog von "motion" auf "nomotion" gesetzt.
Ich habe verstanden dass es jetzt automatisch auf "noMotion" gesetzt wird. Finde ich klasse, kann man ein paar Wachhunde aufs Altenteil schicken. :D
Gibt es eine Möglichkeit den Text zu ändern damit wieder "nomotion" erscheint statt "noMotion" ?
Default ist in fhem littlecamelletter. Wir beginnen lowercase. Jedes neue Wort beginnt uppercase. Ansonsten wird klein geschrieben. Ist eine allgemeine Vereinbarung für fhem. Ich halte mich weitgehend daran , einige andere auch. Leider nicht alle.
Da der state fuer fhem neu ist stimmt also die Festlegung.
Weiter: würde ich es jetzt, einige Wochen nach einfuehrung noch einmal aendern nur damit es bei dir passt hätten andere evtl. Probleme die es nach der Vorgabe eingebaut haben.
Wenn du erhebliche Gründe hast, warum der Begriff oder die Schreibweise ungeschickt ist fuer die user im allgemeinen lass es mich wissen und wir werden es ggf. Anpassen
Hallo Martin,
erst mal danke für die Antwort. Ich will doch nicht dass es für alle geänder wird, ich dachte ich könne es vielleicht bei mir konfigurieren. Ich entnehme deinem Text mal dass es nicht geht.
Kann ich das Feature denn bei mir abschalten ?
Danke.
kannst du nicht mit eventMap etwas erreichen?
Unabhängig von dieser Diskussion und ich finde das auch nicht schlimm, aber ich finde folgende Werte ein wenig merkwürdig.
motion: on
motion: no
Wäre es nicht logischer mit on|off oder yes|no zu arbeiten?
Ich rette mich wohl. Ist mir halt nur aufgefallen.
Danke.
bei Motion hast du sicher recht. Da on bereits seit langem aktiv ist sollte es wohl on/off heisen. Werde ich korrigieren.
Super. Danke dir.
Das macht es einheitlicher.
Eine Kleinigkeit ist mir noch aufgefallen und dies hatte ich hier (https://forum.fhem.de/index.php/topic,53265.msg449840.html#msg449840) in einem DOIF-Thread bereits erwähnt. Ich frage nur vorsichtshalber nach.
Ist das richtig, dass das "on" und "off" sich in der Art unterscheiden, dass das beim "off" das "to vccu" fehlt?
motion: on (to vccu)
motion: off
Wahrscheinlich ist das korrekt, oder? Das "off" wird ja, glaube ich, nicht im Device erzeugt, oder?
Wie gesagt: Ich frage nur vorsichtshalber :-)
Absolut.
Hi,
das hier
Code: [Auswählen]
set hm templateSet SwitchChannel SwMdir motionDetector:both 30 20
damit ist der Peer hinreichend durchspezifiziert. Also einschalten für 30sec wenn Helligkeit unter 20
einen weiteren Peer, also einen Button, sollte man mit dem Template "SwToggle" oder "SwOn" und "SwOff" belegen. Diskutieren kann man noch was toggle machen soll, wenn das Licht durch den MDIR gerade an ist.
Verstehe ich nicht so ganz. Gibt es eine Möglichkeit das etwas genauer erklärt zu bekommen?
Grüße
Dirk
schon einmal in Wiki nach templates erkundigt? Ist eine Funktion in HMInfo.
ein Template kann jeder definieren, es gibt ein paar vordefinierte und ausserdem kann man sie unter Usern austauschen.
Ein Template ist quasi eine Hochsprache für Register (nicht das Erstelle, das ist assembler wie auch register, aber das Nutzen).
Templates kann man ferner mit Parametern steuern.
Idee ist entsprechend der HM-CCU typische Einstellungen einfach zu erstellen UND Verwalten!
Ein Template macht kein peering, es stellt nur die Register ein.
Das SwMdir template kann man für Schalter (SW) nutzen uns zwar den Kanal der mit dem Motion detector gepeert ist. Da hier nicht zwischen short und long unterschieden werden muss wird both genutzt, short und long wird beides eingestellt.
Bei diesem Template gibt es 2 parameter. Zum einen die Helligkeit (gemessen im mdir) ab der das Licht einschalten soll und zum 2. die dauer, wie lange es anbleiben soll.
Der MDIR wird hierbei nicht eingestellt - muss ja auch nicht.
Das Template stellt sicher, dass wenn man das Licht "normal" einschaltet es nicht durch motion abgeschaltet wird.
Templates selbst werden in HMInfo erzeugt, verwaltet, gespeichert und auf die Devices angewendet. Lies einmal das Wiki.
Meine Empfehlung: ALLES! über templates zu setzen. Alles andere macht eigentlich keinen Sinn!