Daglicht

Voor nu is dit nog een experiment: Ik wil een betrouwbare en effectieve manier hebben om de verlichting in huis aan en uit te zetten op basis van daglicht.

Om dat te doen heb ik al heel wat dingen geprobeerd met het sun object, dat me vertelt hoe laat de zon ondergaat en hoe laat het gaat schemeren. Maar mijn ervaring is nu dat het weer (bewolking) daar een te grote invloed op heeft en dat het te veel een menselijke ervaring is om het (alleen) met het sun-object te doen. Vandaar deze test.

Ik heb daarom nu een lichtsensor aan de noordkant van mijn huis naar buiten gericht, zodat er geen direct zonlicht op kan vallen. De bovenste meter wil ik van donker naar ‘licht’ laten lopen. Ik ben (nog) op zoek naar de waarde (in lux) van wat ik ‘licht’ noem, maar momenteel heb ik het staan op 150 lux. Dus zodra het 150 lux is staat de meter voluit. Gaat dan de zon schijnen dan springt de lux nog wel omhoog (ondanks dat er geen zonlicht op de sensor valt), maar de meter (wijzertje) zal nooit verder omhoog gaan. Licht is licht.

Andersom zal de meter dus langzaam teruglopen naar nul in de avond.

Ik heb een aantal ‘helpers’ van het type input_number gemaakt die de drempelwaardes moeten worden. Waardes waarmee ik (voorlopig) vooral drie zaken wil bepalen: schemer, halfdonker en donker. Voor de volledigheid heb ik er nog wat fases aan toegevoegd. Deze kan ik via het Overzicht dashboard instellen, want in deze fase zoek ik nog naar de optimale getallen.

Schemer: als de eerste tekenen van verminderd daglicht optreden

Halfdonker: als het donkerworden flink doorzet

Donker: als het laatste licht (bijna) weg is.

Automatisering

Ik heb een automatisering gemaakt die actie onderneemt als de lichtsensor verandert van meetwaarde. Ga naar Instellingen -> Automatiseringen en scènes en kies Automatisering toevoegen (knop onderin).

Bij Wanneer geef je als apparaat de lichtsensor op, entiteit ‘luminantie’:

Bij En als hoef je niks toe te voegen.

Bij Doe dan wordt het interessant. Dat kan helaas alleen met Yaml:

Bij het eerste deel maak je variabelen aan en geef je aan waar het script de waarden vandaan moet halen.

Bij het tweede deel stel je de helper daglicht_fase in. Die is 0, 1, 2, 3, 4, of 5. En wordt weer gebruikt in andere automatiseringen.

variables:
  lux: "{{ states('sensor.buiten_licht_en_beweging_illuminance') | float(0) }}"
  lux_donker: "{{ states('input_number.lux_0_donker') | float(0) }}"
  lux_halfdonker: "{{ states('input_number.lux_1_halfdonker') | float(0) }}"
  lux_schemer: "{{ states('input_number.lux_2_schemer') | float(0) }}"
  lux_licht: "{{ states('input_number.lux_3_licht') | float(0) }}"
  lux_zonnig: "{{ states('input_number.lux_4_zonnig') | float(0) }}"

target:
  entity_id: input_number.daglicht_fase

data:
  value: >
    {% if lux <= lux_donker %} 0
    {% elif lux < lux_halfdonker %} 1
    {% elif lux < lux_schemer %} 2
    {% elif lux < lux_licht %} 3
    {% elif lux < lux_zonnig %} 4
    {% else %} 5
    {% endif %}

action: input_number.set_value

Het idee is nu dat je met de verschillende drempelwaardes verschillende daglichtfases kunt onderscheiden. Op mijn dashboard geef ik die momenteel weer met een icoon (zie afbeelding) Dat deel werkt heel simpel; een verticale stack van meerdere iconen die elk op een specifieke voorwaarde worden getoond:

Tab zichtbaarheid is leeg, die gaat alleen over de zichtbaarheid van de hele verticale stapel. De zichtbaarheid van de onderdelen kun je alleen instellen via yaml, maar ik heb gewoon eerst één los icoon gemaakt, daarvan kon ik wel tab zichtbaarheid gebruiken. Daarna die hele card geknipt en toen pas de verticale stapel gemaakt. Daar kun je dan wat je als laatste hebt geknipt plakken. Maar aanpassingen kunnen dus in yaml, hier zie je de eerste card:

Je kunt bij condition, behalve below ook above gebruiken, mogelijk ook equal of zo, maar die kon ik niet vinden, dus als ik waarde 2 wil testen doe ik nu below 3 en above 1.

Doel

Het doel is dat ik groepen lampen wil laten aangaan (en in de ochtend weer uit) aan de hand van deze fases. Dus bij de eerste schemer zet ik op donkere plekjes in huis een paar kleine lampen aan, bijvoorbeeld in de keuken gaat dan het aanrechtlicht aan.

Dan als het verder donker wordt, gaan meer lampen aan, etc.

Waar ik nog benieuwd naar ben:

  • Is het aantal fases okay?
  • Werkt het, of te wel, is het betrouwbaar (ook voor het menselijk gevoel)
  • Zijn de drempelwaarden in de avond gelijk aan de ochtend? M.a.w. kan ik bij oplopend daglicht dezelfde grenswaarden gebruiken, of moet het ingewikkelder.

Welke sensor?

Voor het tweede punt (of het gaat werken of niet) heb ik al mijn twijfels. Ik had een Fibaro sensor gebruikt, met batterij, maar die gaf veel te weinig meetwaarden door voor een betrouwbare werking. LUX is weliswaar een lineaire schaal, maar hoe het menselijk oog licht waarneemt niet! Je wil juist in het lage deel heel nauwkeurig zien wat er gebeurt.

Als het begint te schemeren zit de LUX rond de 250, maar als de zon even doorkomt, dan schiet het gemakkelijk naar boven de 1000 of hoger. Voor die range is het onnodig en veel te batterij-intensief om elke 100 lux verschil door te geven, maar voor in de avond zou je zelfs wel elke LUX willen doorkrijgen. Daarom heb je dus een daglicht sensor nodig met een voeding. Ik kocht nu een tamelijk goedkope, mogelijk kom ik er achter dat goedkoop weer duurkoop is.

Je ziet dat juist bij de cruciale stukken (rond de 200 LUX) de metingen raar zijn, ik moet nog wat meer data afwachten voor ik zeker weet dat deze meter uit het verre oosten helaas ongeschikt is.