Lichtsteuerung über Helligkeit

Begonnen von Gidiano, 18 Januar 2021, 11:20:49

Vorheriges Thema - Nächstes Thema

Gidiano

Hallo zusammen,

ich bekomme meine Lichtsteuerung einfach nicht in den Griff.
Die Helligkeit messe ich mit einem HM-SEN-MDIR-O-2, den ich außen angebracht habe.
Kurioserweise sollte er bei einm Wert von 175 und darunter das Licht einschalten.
Wird es wieder heller, z. B. morgens, habe ich aber den Wert von 140 für das Ausschalten ermittelt.
Meine Therorie, dass der Wert bei beiden Zeitpunkten der selbe sein müsste, bestätigt sich überhaupt nicht.
(Hier würde sich durchaus die Auswertung von steigenden und fallenden Flanken anbieten).
Mein DOiF (aktuell mit andern Werten, aber gleiches Problem):
([Handys_OFF] eq "present" and [Bewegungsmelder:brightness] <=165)
(set Licht_Wohnbereich Ein)
DOELSEIF
([Bewegungsmelder:brightness] >165)
(set Licht_Wohnbereich Aus)
DOELSEIF
([Handys_OFF] eq "absent" and [?Sonos_Wohnzimmer:transportState] ne "PLAYING" and [?AVR:power] ne "on")
(set Licht_Wohnbereich Aus)


(Das letzte DOELSE ist in diesem Kontext uninteressant, damit "stabilisiere" ich PRESENCE, weil die Handys sporadisch kurz absent gehen)

Meine Fragen:
Wie kann das sein, dass der Wert zum Ein- und Ausschalten nicht derselbe ist?
Wie kann ich bei 140 ausschalten, ohne dass 165 ihn wieder einschaltet?


Wenn ich den selben Wert verwende, sitze ich entwede Abends ewig im Dunkeln, bevor das Licht angeht, oder morgens brennt ewig lange das Licht, obwohl es schon komplett hell ist (aber der Wert kurioserweise unter dem Einschaltwert rumdümpelt).
Das schleppende Werte-Update des HM-SEN-MDIR-O-2 scheint damit nichts zu tun haben.

Selbst mit einschalten bei 165 und ausschalten per SUNRISE bleibt mir eine Differenz der Helligkeitswerte.

Komplett aus SUNSET / SUNRISE zu gehen hat sich nicht bewährt, weil anderweitige Verdunkelungen wir Unwetter usw. damit nicht abgedeckt sind. Das scheidet definitiv aus.

Ich werd noch bekloppt....

Viele Grüße, der unerleuchtete
Christian
Grüße,
Christian

Otto123

Hallo Christian,

wenn Du Dir mein Beispiel mit der Hysterese umstrickst?
defmod di_threshold_WG DOIF ([SensorWG:humidity]<([$SELF:desired]-[$SELF:hysterese]/2)) \
(set PSD1_Sw off) \
DOELSEIF ([SensorWG:humidity]>([$SELF:desired]+[$SELF:hysterese]/2)) \
(set PSD1_Sw on)
attr di_threshold_WG checkall event
attr di_threshold_WG cmdState off|on
attr di_threshold_WG readingList desired,hysterese
attr di_threshold_WG setList desired:60,62,64,66,68,70 hysterese:2,5,10
attr di_threshold_WG webCmd desired:hysterese

desired wäre bei Dir was um die 150 und Hysterese 20 oder 30 ? humidity wäre bei Dir brightness

Gruß Otto
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

xenos1984

Das Problem hier dürfte sein, dass das System wohl eine "negative Hysterese" hat, d.h. der Schwellwert für das Ausschalten ist kleiner als der für das Einschalten. Zwischen beiden Werten sind beide Bedingungen erfüllt, von daher dürfte ein Hysterese-Schalter mit Zustandstrigger nicht funktionieren.

Mein Ansatz wäre erst einmal Ursachenforschung zu betreiben, d.h. die Hardware unter die Lupe zu nehmen und herauszufinden, warum bei gefühlt gleicher Helligkeit verschiedene Werte ausgegeben werden. Könnte das am Sonnenstand liegen, dass morgens mehr Licht in die Wohnung fällt als auf den Sensor und Abends umgekehrt? Falls dem so ist, würde es sich vielleicht anbieten, den Sensor entweder anders zu montieren, oder den Sonnenstand über ein Modul wie z.B. Astro zu berücksichtigen.

thgorjup

Ist doch eigentlich klar, dass aufgrund der Sonnenwende die Helligkeit am Sensor morgens eine andere ist als abends.
Meiner ist z.B. im Süden angebracht und bekommt somit morgens mehr Licht als abends. Die gefühlte Helligkeit im Haus ist aber bei gleichem Wert unterschiedlich.

Damit abends nicht Aktionen ausgeführt werden, die nur morgens passieren sollen, habe ich noch die Uhrzeit ins DOIF mit einbezogen.

Beispiel Rolladen öffnen und mich begrüßen, wenn ich morgens die Treppe runter komme:


defmod RolladenEGAuf DOIF ([07:00-13:00] && [HM_43C2F3:brightness] > 30 && [AliRF_604D69:"motion"] && [HM_5222E6:pct] == 0 ) (set HM_5222E6 pct 100;; set HM_4D035F pct 100;; set FunkGong_MP3 playTone 086)\
DOELSEIF ([12:01] && [HM_43C2F3:brightness] > 30 && [HM_5222E6:pct] == 0 ) (set HM_5222E6 pct 100;; set HM_4D035F pct 100 )
attr RolladenEGAuf do always


FHEM auf Ubuntu 18.04LTS, 2x nanoCUL, JeeLink, nanoPIR, MQTT, ESP-Easy, HUE.
Sensoren+Aktoren: HM, IT, Lacrosse, Multitrade-PIR, VU+, Somfy

Gidiano

#4
Aha, das ist ja mal Sonnen-mäßig interessant.
Zeitbereiche hatte ich auch schon drin, mal sehen, ob das mit diesem Ansatz einigermaßen beherrschbar ist. Bisher war das durch die sich ständig ändernden Dämmerungszeitpunkte auch nicht so optimal.
Meine angestrebte Lösung bei PRESENCE = present:
"Egal wann am Tag, das Licht soll bei von mir empfundener Dunkelheit an gehen und bei von mir empfundener Helligkeit aus gehen".
Beide Werte unterscheiden sich da um ca. 25-30 Punkte.

Grüße
Christian
Grüße,
Christian

Gidiano

So, vorab euch allen besten Dank für die schnellen konstruktiven Tipps.
Ich versuche das jetzt mal so:

([Handys_OFF] eq "present" and [Bewegungsmelder:brightness] <=165)
(set Licht_Wohnbereich Ein)
DOELSEIF
([?12:00 - 04:00] and [Bewegungsmelder:brightness] >165)
(set Licht_Wohnbereich Aus)
DOELSEIF
([?04:01 - 11:59] and [Bewegungsmelder:brightness] >=140)
(set Licht_Wohnbereich Aus)
DOELSEIF
([Handys_OFF] eq "absent" and [?Sonos_Wohnzimmer:transportState] ne "PLAYING" and [?AVR:power] ne "on")
(set Licht_Wohnbereich Aus)


Grüße
Christian
Grüße,
Christian

Gidiano

Zitat von: thgorjup am 18 Januar 2021, 15:32:40
....
Meiner ist z.B. im Süden angebracht und bekommt somit morgens mehr Licht als abends. Die gefühlte Helligkeit im Haus ist aber bei gleichem Wert
...

Ich habe meinen Sensor neuerdings nach Norden ausgerichtet, das ist die einzige Seite, wo er nicht "gebraten" wird.

Hier ist übrigens ein nettes tool, das man da schön nutzen kann:
Sonnenverlauf.de

Grüße
Christian
Grüße,
Christian

Gidiano

Aktuell tüftel ich jetzt mit diesem code:

([?04:01 - 14:59] and [Handys_OFF] eq "present" and [Bewegungsmelder:brightness] <=140)
(set Licht_Wohnbereich Ein)
DOELSEIF
([?04:01 - 14:59] and [Bewegungsmelder:brightness] >=140)
(set Licht_Wohnbereich Aus)
DOELSEIF
([?15:00 - 04:00] and [Handys_OFF] eq "present" and [Bewegungsmelder:brightness] <=165)
(set Licht_Wohnbereich Ein)
DOELSEIF
([?15:00 - 04:00] and [Bewegungsmelder:brightness] >165)
(set Licht_Wohnbereich Aus)
DOELSEIF
([Handys_OFF] eq "absent" and [?Sonos_Wohnzimmer:transportState] ne "PLAYING" and [?AVR:power] ne "on")
(set Licht_Wohnbereich Aus)


So langsam schwant mir, dass man ds mit fixen Schaltschwellen (Helligkeitswert über- unterschritten) nicht wirklich zufriedenstellend festzementieren kann. Mal schauen, mittlerweile fehlt mir schon fast was, wenn ich nicht plötzlich unverhofft im Dunkeln sitze  8) ;D :o
Grüße,
Christian

thgorjup

Ja, es ist schwierig richtig hinzubekommen. Momentan habe ich das Problem, dass mein Wohnzimmerlicht zu dieser Jahreszeit angeht, obwohl ich noch 1-2h eine Etage höher im Büro im Homeoffice sitze, weil ich bin ja im Haus present. Sowas könnte man mit Beacons in den Griff bekommen. In jedes Zimmer einen plazieren, aber wieviel Geld will man ausgeben und wieviel will man rumfummeln?

Manchmal denke ich, es ist doch besser das Licht per Schalter an/aus zu machen.
FHEM auf Ubuntu 18.04LTS, 2x nanoCUL, JeeLink, nanoPIR, MQTT, ESP-Easy, HUE.
Sensoren+Aktoren: HM, IT, Lacrosse, Multitrade-PIR, VU+, Somfy

rakete123

Zitat von: thgorjup am 19 Januar 2021, 17:25:26
höher im Büro im Homeoffice sitze

Kannst du diesen Zustand nicht "erkennen"? Per Ping auf den PC und Bürolampe an oder sowas?
Zwave: ZMEEUZB1 (Fibaro, Aeotec, diverse)
Zigbee: Conbee (HUE, Xiaomi, osram)
Homematic: HM-MOD-RPI-PCB + diverse HM-CC-RT-DN
Sonstiges: Harmony, Android, Netatmo, Jabber (talk2fhem)
https://resize2fs.de

Gidiano

Zitat von: rakete123 am 19 Januar 2021, 20:11:28
Kannst du diesen Zustand nicht "erkennen"? Per Ping auf den PC und Bürolampe an oder sowas?

Exakt mein Gedanke. Ich mache es ja mit dem ABSENT genau anders heraum:


...
DOELSEIF
([Handys_OFF] eq "absent" and [?Sonos_Wohnzimmer:transportState] ne "PLAYING" and [?AVR:power] ne "on")
(set Licht_Wohnbereich Aus)


Da kann das Handy dann ABSENT sein, wenn die Flimmerkiste oder der Sonos noch an ist.
Ich liebe es, diese Logik überall zu ergründen :-)

Meine letzte Version des codes scheint zumindest Abends übrigens gut zu funktionieren, mal sehen, was morgen früh so geht.

Grüße
Christian
Grüße,
Christian

Prof. Dr. Peter Henning

ZitatHier ist übrigens ein nettes tool, das man da schön nutzen kann:

Immer erst einmal in FHEM schauen. Das Modul 95_Astro.pm bietet alles Gewünschte.

LG

pah

kjmEjfu

Zitat von: Gidiano am 19 Januar 2021, 16:10:23
([?04:01 - 14:59] and [Handys_OFF] eq "present" and [Bewegungsmelder:brightness] <=140)
(set Licht_Wohnbereich Ein)
DOELSEIF
([?04:01 - 14:59] and [Bewegungsmelder:brightness] >=140)
(set Licht_Wohnbereich Aus)
DOELSEIF
([?15:00 - 04:00] and [Handys_OFF] eq "present" and [Bewegungsmelder:brightness] <=165)
(set Licht_Wohnbereich Ein)
DOELSEIF
([?15:00 - 04:00] and [Bewegungsmelder:brightness] >165)
(set Licht_Wohnbereich Aus)
DOELSEIF
([Handys_OFF] eq "absent" and [?Sonos_Wohnzimmer:transportState] ne "PLAYING" and [?AVR:power] ne "on")
(set Licht_Wohnbereich Aus)


Setz dir Hysterese, so wie Otto schon gesagt hat.
Ansonsten schaltet sich die Lampe schön ein-aus-ein-aus-ein-aus, wenn die Helligkeit z.B. gerade zwischen 163 und 167 herumspringt.

Wobei ich mir das ganze DOELSEIF sparen und stattdessen auf ein DOIF-Template setzen würde (https://wiki.fhem.de/wiki/DOIF/Automatisierung#Helligkeitsabh.C3.A4ngige_Zeitsteuerung_f.C3.BCr_mehrere_Szenarien)
Migriere derzeit zu Home Assistant

Gidiano

Zitat von: Prof. Dr. Peter Henning am 20 Januar 2021, 16:05:00
Immer erst einmal in FHEM schauen. Das Modul 95_Astro.pm bietet alles Gewünschte.

Danke für den Tipp. Astro verstehe ich wie SUNSET / SUNRISE. Das hatte ich zuerst vor einigen Jahren implementiert, es deckt aber (genau wie ASTRO?) nicht die Verdunkelungen durch z. B. Unwetterab, was relativ nervig war. in 90% der Fälle hat es überhaupt nicht gepasst.
Grüße,
Christian

Prof. Dr. Peter Henning

ZitatAstro verstehe ich wie SUNSET / SUNRISE
>:( >:(
Erstens ist Astro genauer, zweitens gibt es eben den Sonnenstand (Azimut und Sonnenhöhe) wieder. Von "Unwetter" war nicht die Rede.

LG

pah