FHEM Forum

FHEM => Anfängerfragen => Thema gestartet von: Hambi95 am 12 August 2016, 23:12:03

Titel: Helligkeitswerte von HM-Sen-MDIR-O-2 auslesen
Beitrag von: Hambi95 am 12 August 2016, 23:12:03
Hallo,
ich habe mir den oben genannten Bewegungsmelder angeschafft und wollte jetzt erst einmal versuchen die Außenbeleuchtung über die Helligkeitswerte des BWM an und auszuschalten.

Soweit funktioniert es mit diesem Code auch:

#licht.terrasse
define licht_terrasse_an notify HM_3566CD { if (ReadingsVal("HM_3566CD", "brightness", 300) <120) { fhem("set licht.terrasse on") } }
define licht_terrasse_aus at *00:00:00 { fhem("set licht.terrasse on") if (!$we)
define licht_terrasse_aus_we notify HM_3566CD { if (ReadingsVal("HM_3566CD", "brightness", 300) >120) { fhem("set licht.terrasse off") if ($we) } }


Problem ist aber das dieser Befehl, jedesmal wenn der BWM die Helligkeit übermittelt und diese den Bedingungen entspricht, auslöst.
So leuchten die Lampen eigentlich immer sobald die Helligkeit unter 120 ist.

Ich hoffe mir kann jemand helfen, ich habe leider nichts im Internet gefunden was mir geholfen hat.

Mit freundlichen Grüßen
Hambi95
Titel: Antw:Helligkeitswerte von HM-Sen-MDIR-O-2 auslesen
Beitrag von: franky08 am 12 August 2016, 23:42:51
Sieh dir mal das Threshold Modul an, da kannst du den Schaltbereich (threshold/hysteresis) einstellen/vorgeben.
Titel: Antw:Helligkeitswerte von HM-Sen-MDIR-O-2 auslesen
Beitrag von: Hambi95 am 12 August 2016, 23:54:39
Hey,
erstmal vielen dank für die Antwort.

Das Threshold Modul kenne ich überhaupt nicht und um ehrlich zu sein wüsste ich nicht wie ich das bei mir zum einsatz bringen könnte :(
Titel: Antw:Helligkeitswerte von HM-Sen-MDIR-O-2 auslesen
Beitrag von: franky08 am 13 August 2016, 00:09:28
Das geht nicht nur mit Temperaturen  ;) Hier ein Beispiel von mir:
define Klimaanlage THRESHOLD TH_TC_durchschn:temperature:1:27.5:|set Klima_Power_send_dummy on|set Klima_dummy off

TH_TC_durchschn ---> ist der Sensor
temperature         ---> ist das Reading
Der Rest dürfte klar sein, bei dir setzt du deinen Sensor ein und als Reading brightness ein, statt der "1" nimmst du einen Wert der die Hystrese darstellt und statt der 27.5 (ist bei mir eine Temperatur) nimmst du den brightness Wert wo die Regelung einsetzen soll.

P.S. und benenn das Teil HM_3566CD mal in einen lesbaren Namen um  ;)
P.S.2 das ist eigentlich Quatsch, das beißt sich mit "es ist dunkel" (kann man machen aber nicht so)
define licht_terrasse_aus at *00:00:00 { fhem("set licht.terrasse on") if (!$we)

VG
Frank
Titel: Antw:Helligkeitswerte von HM-Sen-MDIR-O-2 auslesen
Beitrag von: Hambi95 am 13 August 2016, 00:41:10
Also ich hab das mal ausprobiert, bewirkt leider nichts ...
define licht_terrasse THRESHOLD HM_3566CD:brightness:1:120:|set licht.terrasse on

Mir stellt sich da auch die Frage wie ich das mit dem befehl hinbekomme die lichter dementsprechend wieder auszuschalten :)

gibt es keine Möglichkeit die Helligkeitswerte in einen Dummy oder ähnliches zu übergeben? ;)
Mir ist das mit dem threshold für meinen wissensstand etwas zu komplex.

Ich habe eigentlich schon eine funkitonierende Lichtsteuerung allerdings mit sunrise und sunset, diese möchte ich jetzt allerdings durch die Werte des BWM ersetzen :)

Das sollte natürlich so heißen:
define licht_terrasse_aus at *00:00:00 { fhem("set licht.terrasse off") if (!$we)
Titel: Antw:Helligkeitswerte von HM-Sen-MDIR-O-2 auslesen
Beitrag von: franky08 am 13 August 2016, 08:54:02
Nicht getestet:
define licht_terrasse THRESHOLD HM_3566CD:brightness:20:120:|set licht.terrasse off|set licht.terrasse on
Titel: Antw:Helligkeitswerte von HM-Sen-MDIR-O-2 auslesen
Beitrag von: Hambi95 am 13 August 2016, 17:26:14
Vielen dank jetzt würde es theoretisch gehen, allerdings habe ich noch ein paar kleine anforderungen was verschiedene schaltzeiten am wochenende angeht.

ich habe mich mal probiert einen Dummy zu erstellen der mir den Wert "hell" oder "dunkel" liefert.
define licht.draussen.helligkeit dummy

define Daemmerung notify HM_3566CD.*brightness.* {\
if(ReadingsVal("HM_3566CD","brightness","---")<=120){\
fhem "set licht.draussen.helligkeit dunkel"};;\
if(ReadingsVal("HM_3566CD","brightness","---")>120){\
fhem "set licht.draussen.helligkeit hell"};;\
}

Das funktioniert auch ganz gut.

Jetzt habe ich allerdings immernoch das Problem das ich nicht weiß wie ich damit etwas schalten soll.

Hier mal meine alten Befehle:
##licht_terrasse##
define licht_terrasse_timer WeekdayTimer licht_terrasse 0123456|{sunset_abs(-1800)}|on 12345|00:00|off 60|{sunrise_abs(+1800)}|off
attr licht_terrasse_timer room Timer

##licht_garten##
define licht_garten_timer WeekdayTimer licht_garten 0123456|{sunset_abs(-1800)}|on 0123456|00:00|off
attr licht_garten_timer room Timer

##licht_haustür##
define vordach_morgens_an at *06:00:00 { fhem("set licht_haustuer on") if( !isday() && !$we)
attr vordach_morgens_an room Timer

define vordach_abends_an WeekdayTimer licht_haustuer 0123456|{sunset_abs(-1800)}|on
attr vordach_abends_an room Timer
define vordach_aus WeekdayTimer licht_haustuer 12345|00:00|off 60|{sunrise_abs(+1800)}|off 12345|{sunrise_abs(+1800)}|off
attr vordach_aus room Timer

Das kann man sicherlich auch besser/anders schreiben aber so hab ich es hinbekommen und es hat funktioniert :D

ich möchte nun eigentlich "nur" sunrise, sunset und wenn es geht isday ablösen da mir der BWM einfach genauere Werte liefert.

Den weekday Timer kann ich vermutlich nichtmehr benutzen da der ja einen Zeitpunkt will.

Außerdem muss ich es schaffen das der Wert dunkel nicht immer wieder gesetzt wird und so geschalten wird, in richtung event-on-change-reading dachte ich