Hallo,
ich bräuchte mal einen Anstupser, ich versuche mich seit gestern an einem FGMS001.
Wie kann ich damit ganz einfach eine Lampe bei Bewegung schalten? Ich weiss, das sind Grundlagen, aber mir fehlt einfach der Anfang.
ein list ZWave_SENSOR_BINARY_3
bringt Folgendes:
Internals:
CFGFN
DEF f712869a 3
IODev ZWDongle_1
LASTInputDev ZWDongle_1
MSGCNT 12
NAME ZWave_SENSOR_BINARY_3
NR 148
STATE wakeupInterval 86400 01
TYPE ZWave
ZWDongle_1_MSGCNT 12
ZWDongle_1_RAWMSG 0004000303200100
ZWDongle_1_TIME 2016-02-28 09:46:40
homeId f712869a
isWakeUp 1
nodeIdHex 03
Helper:
Dblog:
Basicset:
Mydblog:
TIME 1456649200.07663
VALUE 00
Readings:
2016-02-27 15:18:38 CMD ZW_APPLICATION_UPDATE
2016-02-27 15:19:18 UNPARSED ASSOCIATION 0485030205
2016-02-27 15:19:17 assocGroup_1 Max 5 Nodes ZWDongle_1
2016-02-27 15:19:18 assocGroup_2 Max 5 Nodes
2016-02-27 15:19:19 assocGroup_3 Max 1 Nodes
2016-02-27 15:18:47 assocGroups 3
2016-02-28 09:46:40 basicSet 00
2016-02-27 11:08:48 battery 100 %
2016-02-27 15:18:47 configAmbientIlluminationLevelAbove83 1000
2016-02-27 15:18:47 configAmbientIlluminationLevelBelow82 100
2016-02-27 15:18:48 configBASICOFFCommandFrameValue 0
2016-02-27 15:18:49 configBASICONCommandFrameValue 255
2016-02-27 15:18:50 configBasicCommandClassFrames12 BASICONAndBASICOFFCommandFrames0
2016-02-27 15:18:51 configIlluminationReportThreshold 200
2016-02-27 15:18:52 configIlluminationReportsInterval 0
2016-02-27 15:18:53 configIntervalOfTemperatureMeasuring 900
2016-02-27 15:18:54 configLEDBrightness 50
2016-02-27 15:18:55 configLEDIndicatingTamperAlarm LEDIndicatesTamperAlarm
2016-02-27 15:18:57 configLEDSignalingMode LongBlinkThenShortBlinkLEDColour10
2016-02-27 15:18:58 configMaximumTemperatureResultingInRed87 28
2016-02-27 15:18:59 configMinimumTemperatureResultingIn86 18
2016-02-27 15:19:00 configMotionAlarmCancellationDelay 30
2016-02-27 15:19:01 configMotionSensorSBlindTime2 15
2016-02-27 15:19:02 configMotionSensorSSensitivity 10
2016-02-27 15:19:03 configNightDay 200
2016-02-27 15:19:04 configPIRSensorOperatingMode PIRSensorAlwaysActive
2016-02-27 15:19:05 configPIRSensorSPulseCounter 1
2016-02-27 15:19:05 configPIRSensorSWindowTime 2
2016-02-27 15:19:06 configTamperAlarmBroadcastMode TamperAlarmIsNotSentInBroadcast0
2016-02-27 15:19:07 configTamperAlarmCancellationDelay 30
2016-02-27 15:19:08 configTamperOperatingModes Tamper
2016-02-27 15:19:09 configTamperSensitivity 15
2016-02-27 15:19:11 configTemperatureOffset 0
2016-02-27 15:19:12 configTemperatureReportThreshold 10
2016-02-27 15:19:13 configTemperatureReportsInterval 0
2016-02-27 15:19:17 model FIBARO System FGMS001 Motion Sensor
2016-02-27 15:19:17 modelConfig fibaro/fgms.xml
2016-02-27 15:19:17 modelId 010f-0800-1001
2016-02-27 10:33:40 state wakeupInterval 86400 01
2016-02-27 15:19:20 transmit OK
2016-02-27 15:19:15 wakeupReport interval 65535 target 1
Attributes:
IODev ZWDongle_1
classes SENSOR_BINARY WAKE_UP ASSOCIATION BATTERY MULTI_CMD CRC_16_ENCAP MANUFACTURER_SPECIFIC VERSION CONFIGURATION MULTI_CHANNEL_ASSOCIATION SENSOR_MULTILEVEL SENSOR_ALARM BASIC
room ZWave
vclasses 1
Aber nun fehlt mir der Anfang.
Schönen Sonntag
Hast Du Dein Problem schon gelöst?
leider nein, bin keinen Schritt wieter.
Der Bewegungsmelder gefällt mir. Würde mich freuen, wenn ich ihn an FHEM benutzen könnte.
Gruß
Auf die Idee gekommen, es im ZWave Bereich zu probieren?
Noch nicht,
ich dachte es wäre so was von blutigen Anfänger.....
Ich werds mal machen.
Dankeschön
Ich habe mein Homematic-Code mal schnell (und ungetestet) auf Z-Wave portiert.
Ich habe zwar auch ein Fibaro BM, aber den nicht in einer helligkeitsabhängigen Lichtsteuerung.
Notfalls nimmst du den Luminanz-Kram einfach raus.
Die Einschaltung einer Lampe könnte auch einfacher. Also "set lampe on". Aber ich habe den Rest einfach mal gelassen.
Probiere doch einfach mal:
define di_motion DOIF (\
## Bewegungsmelder ausgelöst\
[motionsensor:"open"] and\
## und wenn nicht sowieso hell genug ist.\
[?motionsensor:luminance] < 300 \
) \
(\
set lampe:FILTER=state!=on on-for-timer {(int(rand(3))+1)*60}\
)
attr di_motion do always
Ich hab bei mir den Bewegungsmelder zwar (noch) nicht mir dem Licht gekoppelt, aber ich ändere ein Dummy-Device für eine bestimmte Zeit. Den Code habe ich bei irgendeiner Anleitung für eine Alarmanlage gefunden:
Dummy:
define Bewegung_Fibaro dummy
attr Bewegung_Fibaro devStateIcon on.*:user_available@red off.*:user_unknown@grey
define FileLog_Bewegung_Fibaro FileLog /opt/fhem/log/Bewegung_Fibaro-%Y-%m.log Bewegung_Fibaro
attr FileLog_Bewegung_Fibaro logtype text
Zum Ändern des Dummy:
define check_Bewegung_Fibaro DOIF ([ZWave_SENSOR_BINARY_5:basicSet] eq "ff" ) ( set Bewegung_Fibaro on;; defmod reset_Bewegung_Fibaro at +00:05:00 set Bewegung_Fibaro off )
ZWave_SENSOR_BINARY_5 ist der Bewegungsmelder
Zitat von: FHEM-User22 am 28 Februar 2016, 11:47:57
Hallo,
ich bräuchte mal einen Anstupser, ich versuche mich seit gestern an einem FGMS001.
Wie kann ich damit ganz einfach eine Lampe bei Bewegung schalten? Ich weiss, das sind Grundlagen, aber mir fehlt einfach der Anfang.
Dafür kannst Du das Modul DOIF verwenden.
Beispiel:
define move.lamp.On DOIF ([21:00-05:45] and [sensor:state] eq "open")(set Lampe on-for-timer 120 ; set az dim 50)
Erläuterung:
In der Zeit von 21 - 5:45 Uhr wird geprüft, ob beim FGMS001 (ich habe ihn umbenannt in sensor) eine Bewegung vorliegt (Status OPEN). Wenn ja, wird die Lampe für 120 Sekunden angeschaltet, Gedimmt auf 50%)
Bitte gib uns Feedback, ob und wie du es geschafft hast ;)
HINWEIS: Die gleiche Frage wurde hier https://forum.fhem.de/index.php/topic,51862.0.html noch einmal gestellt. Dort finden sich auch Antworten.
Bitte solche Doppelpostings vermeiden. Threads können bspw. auch verschoben werden. Danke.
Gruß, Christian
Hallo,
ja, wollte ich vermeinden. Habe aber das Verschieben nicht gefunden.
Danke dennoch für Eure Hilfe.
define Z_TEST DOIF ([ZWave_SENSOR_BINARY_3:basicSet] eq "ff" ) (set St01 on-for-timer 10)
so klappt es erstmal. Nun noch die Dämmerungsfunktion finden...
Grüße
Ich hatte in meinen DOIF-Beispiel doch eine Prüfung auf den Luminanzwert drinne.
Zitat von: FunkOdyssey am 08 April 2016, 15:38:10
Ich hatte in meinen DOIF-Beispiel doch eine Prüfung auf den Luminanzwert drinne.
Stimmt,
ich finde aber in den Readings leine Luminanz, geht es dennoch?
Internals:
CFGFN
DEF f712869a 3
IODev ZWDongle_1
NAME ZWave_SENSOR_BINARY_3
NR 148
STATE wakeupInterval 86400 01
TYPE ZWave
homeId f712869a
nodeIdHex 03
Readings:
2016-04-07 07:13:04 CMD ZW_APPLICATION_UPDATE
2016-02-27 15:19:18 UNPARSED ASSOCIATION 0485030205
2016-02-27 15:19:17 assocGroup_1 Max 5 Nodes ZWDongle_1
2016-02-27 15:19:18 assocGroup_2 Max 5 Nodes
2016-04-07 07:13:04 assocGroup_3 Max 1 Nodes
2016-04-07 07:14:37 assocGroups 3
2016-04-09 08:22:52 basicSet 00
2016-02-27 11:08:48 battery 100 %
2016-04-07 07:14:38 configAmbientIlluminationLevelAbove83 1000
2016-04-07 07:14:39 configAmbientIlluminationLevelBelow82 100
2016-04-07 07:14:40 configBASICOFFCommandFrameValue 0
2016-04-07 07:14:41 configBASICONCommandFrameValue 255
2016-04-07 07:14:42 configBasicCommandClassFrames12 BASICONAndBASICOFFCommandFrames0
2016-04-07 07:14:43 configIlluminationReportThreshold 200
2016-04-07 07:14:44 configIlluminationReportsInterval 0
2016-04-07 07:14:45 configIntervalOfTemperatureMeasuring 900
2016-04-07 07:14:47 configLEDBrightness 50
2016-04-07 07:14:48 configLEDIndicatingTamperAlarm LEDIndicatesTamperAlarm
2016-04-07 07:14:49 configLEDSignalingMode LongBlinkThenShortBlinkLEDColour10
2016-04-07 07:14:50 configMaximumTemperatureResultingInRed87 28
2016-04-07 07:14:51 configMinimumTemperatureResultingIn86 18
2016-04-07 07:14:52 configMotionAlarmCancellationDelay 30
2016-04-07 07:14:53 configMotionSensorSBlindTime2 15
2016-04-07 07:14:54 configMotionSensorSSensitivity 10
2016-04-07 07:14:55 configNightDay 200
2016-04-07 07:14:56 configPIRSensorOperatingMode PIRSensorAlwaysActive
2016-04-07 07:14:57 configPIRSensorSPulseCounter 1
2016-04-07 07:14:58 configPIRSensorSWindowTime 2
2016-04-07 07:15:00 configTamperAlarmBroadcastMode TamperAlarmIsNotSentInBroadcast0
2016-04-07 07:15:01 configTamperAlarmCancellationDelay 30
2016-04-07 07:15:02 configTamperOperatingModes Tamper
2016-04-07 07:15:03 configTamperSensitivity 15
2016-04-07 07:15:04 configTemperatureOffset 0
2016-04-07 07:15:05 configTemperatureReportThreshold 10
2016-04-07 07:15:06 configTemperatureReportsInterval 0
2016-02-27 15:19:17 model FIBARO System FGMS001 Motion Sensor
2016-02-27 15:19:17 modelConfig fibaro/fgms.xml
2016-02-27 15:19:17 modelId 010f-0800-1001
2016-02-27 10:33:40 state wakeupInterval 86400 01
2016-04-08 19:37:42 transmit OK
2016-04-08 19:37:40 wakeup notification
2016-02-27 15:19:15 wakeupReport interval 65535 target 1
Attributes:
IODev ZWDongle_1
classes SENSOR_BINARY WAKE_UP ASSOCIATION BATTERY MULTI_CMD CRC_16_ENCAP MANUFACTURER_SPECIFIC VERSION CONFIGURATION MULTI_CHANNEL_ASSOCIATION SENSOR_MULTILEVEL SENSOR_ALARM BASIC
room ZWave
vclasses 1
Hi,
ich habe den Bewegungsmelder auch und verwende ihn im Zusammenspiel mit verschiedenen Lampen. Wichtig ist das Reading basicSet - da steht drin, ob eine Bewegung erkannt wurde:
00 => noMotion
ff => MotionDetected
Das kannst Du mit einem Notify abfangen und dann die Lampe schalten. Du kannst noch den min. Interval für einen Motion-Event einstellen - das steht normalerweise auf 30 Sekunden.
Wenn Du jetzt bei Bewegungserkennung eine Lampe schalten möchtest und die soll anbleiben, bis für eine Zeit x keine Bewegung mehr erkannt wurde, musst Du depmod verwenden. Ich kann Dir ggf. mal ein Beispiel von mir posten - falls Du das noch brauchst.
Viele Grüße,
David
Zitat von: FHEM-User22 am 09 April 2016, 09:11:29
Stimmt,
ich finde aber in den Readings leine Luminanz, geht es dennoch?
Weil Du den Controller noch nicht in die Assogroup 3 des Sensors aufgenommen hast. Genau das hatte ich Dir hier https://forum.fhem.de/index.php/topic,51862.msg436014.html#msg436014 in Deinem anderen Thread mit der gleichen Frage gepostet. Jetzt erkennst Du, warum Doppelpostings nicht gerne gesehen sind. :)
Gruß, Christian
Zitat von: dferch am 09 April 2016, 09:17:55
Wenn Du jetzt bei Bewegungserkennung eine Lampe schalten möchtest und die soll anbleiben, bis für eine Zeit x keine Bewegung mehr erkannt wurde, musst Du depmod verwenden. Ich kann Dir ggf. mal ein Beispiel von mir posten - falls Du das noch brauchst.
Viele Grüße,
David
Hallo David,
Ja gerne.
Viele Grüße
Zitat von: dferch am 09 April 2016, 09:17:55
Wenn Du jetzt bei Bewegungserkennung eine Lampe schalten möchtest und die soll anbleiben, bis für eine Zeit x keine Bewegung mehr erkannt wurde, musst Du depmod verwenden. Ich kann Dir ggf. mal ein Beispiel von mir posten - falls Du das noch brauchst.
Viele Grüße,
David
Hi David,
an dem Beispiel hätte ich auch Interesse.
Gruss Gerd
Also ich habe auch mehrere Wochen ausgiebigen Testens gebraucht um auf ein für mich zufriedenstellendes Ergebnis zu kommen.
Letzten Endes habe ich dann für jeden Bewegungsmelder eine eigene Funktion in das Modul 99_myUtils.pm geschrieben und dann nur die Notifies diese Funktionen aufrufen lassen.
Ich schalte die Lichter über Lichtszenen (ist einfacher im Nachhinein zu verändern) und nutze zusätzlich noch den Tageslichtwert aus dem Twilight Modul. Somit kann ich zu verschiedenen Dämmerungsstufen verschiedene Lichtszenen starten. Sobald alle Bewohner schlafen gegangen sind und ein Sensor erkennt Bewegung wird die Nachtbeleuchtung eingeschaltet.
Das sieht dann etwa so aus:
Daemmerung = Tageslichtwert aus Twilight Modul
wz_Lichter = alle entsprechenden Lichter als structure
wz_LS = Lichtszene aller entsprechenden Lichter mit Modul LightScene
In die 99_myUtils.pm folgende Funktion:
sub wzBewegungLicht($)
{
my ($event) = @_;
my $licht = ReadingsVal("Daemmerung","light",7);
my $lichter = Value("wz_Lichter");
# Wenn Bewegung erkannt (Sensor offen)
if ($event eq "open")
{
# Wenn das at zum Ausschalten der Raumlichter definiert wurde, wird es hier gelöscht
# damit das Licht an bleibt sobald wieder Bewegung erkannt wurde
if (defined $defs{wz_Bewegungsmelder_Licht_aus})
{
fhem ("delete wz_Bewegungsmelder_Licht_aus");
}
# Wenn es anfängt zu dämmern und die Raumlichter ausgeschaltet sind wird die entsprechende LightScene gesetzt
# (falls vorher schon Licht eingeschaltet war, muss es ja nicht erneut/anders eingeschaltet werden)
if ($licht < 6 && $lichter eq "off" )
{
# Nachtlicht wenn alle Bewohner schlafen
if (ReadingsVal("rgr_Residents","state","home") eq "gotosleep")
{
fhem ("set wz_LS scene Nacht");
}
# Beginn der Dämmerung
elsif ($licht < 6 && $licht > 3)
{
fhem ("set wz_LS scene viel");
}
# mittlere Dämmerung
elsif ($licht > 2 && $licht < 5)
{
fhem ("set wz_LS scene mittel");
}
# es ist nun richtig dunkel
elsif ($licht < 3)
{
fhem ("set wz_LS scene wenig");
}
}
}
# Wenn keine Bewegung mehr erkannt (Sensor geschlossen)
elsif ($event eq "closed")
{
# Wenn noch Lichter eingeschaltet sind (könnten ja auch manuell ausgeschaltet worden sein)
if ($lichter ne "off")
{
# Setzen des at um die Lichter über eine Lichtszene in 15 min auszuschalten,
# statt dessen könnte auch das structure ausgeschaltet werden
fhem ("define wz_Bewegungsmelder_Licht_aus at +00:15:00 set wz_LS scene off");
}
}
}
Definieren des Notify:
define wz_Sensor_Bewegung notify wz_Sensor:(open.*|closed.*) { wzBewegungLicht($EVENT) }
Ist doch recht komplex geworden, ich hoffe ihr versteht es und könnt es für euch benutzen. Wie gesagt, diese Funktion ist durch viele Wochen probieren entstanden.
Gruß
Dan
P.S. Bin kein Perl Coder und habe das nur so gut es ging für mich umgesetzt. Bitte schlagt mich nicht gleich wenn die Funktion nicht perfekter Code sein sollte.