HUE dim-switch via Node-RED

Deze dimmer/switch heeft 4 knoppen waarmee een aantal standaard functies aangeroepen kunnen worden, te weten:

  • Aan
  • Dim omhoog
  • Dim omlaag
  • Uit

Bedienen via HUE app

De standaard functies zijn dan geconfigureerd. Daarbij kan deze schakelaar ook ‘tellen’ hoe vaak je achter elkaar de aanknop indrukt (max. 5 keer) en afhankelijk van het aantal kunnen dan verschillende acties uitgevoerd worden. Standaard is dat het volgende via de HUE app:

Bedienen met Apple Home App

In de HUE app kun je ook aangeven dat je de switch wilt configureren in Apple Home ipv. in de HUE app. In de Home App (Woning) kun je dan aangeven wat er moet gebeuren als er op één van de 4 knoppen wordt gedrukt.

Bedienen met Node-RED

Een derde manier van het gebruik van deze dimmer/schakelaar is door gebruik te maken van Node-RED. Indien de node-red-contrib-huemagic pallette is toegevoegd aan Node-RED, kan de HUE-switch node toegevoegd worden en met een debug node kunnen we zien wat de payloads zijn voor de verschillende knoppen.

In het debug venster zijn de volgende payloads te zien bij het indrukken van de knoppen:

msg.payload :
objectbutton: 1002
name: "On"
action: "short released"
updated: "2022-01-08T14:46:51+01:00"

We zouden nu de ‘objectbutton’ kunnen gebruiken maar voor de leesbaarheid gebruik ik de msg.payload.name en msg.payload.action. Als we deze samenvoegen krijgen we als resultaat “On short released” en vervolgens kunnen we dat voor alle 4 de knoppen doen. Er is tevens een ‘long released’ bij lang indrukken van de knop.

Het samenvoegen van de name en action kan in een function-node:

De functies zetten we vervolgens in een switch-node:

Aan de uitgangen van de switch-node kunnen nu change-nodes gekoppeld worden die de instructies voor de verlichting bevatten. Bij een long-release laat ik de lamp in10 seconden naar 100% of naar 10% gaan, bij een kort-release zijn dat steeds stappen van 10%. De flow ziet er dan zo uit waarbij de verlichting wordt geschakeld via HUE-Light nodes:

De change-nodes na de switch-node bevatten de instructies voor de verlichting en zetten de msg.payload naar json-code:

  • aan -> {“on”:true}
  • >10% -> {“incrementBrightness”:10}
  • 100% -> {“brightness”:100,”transitionTime”:10}
  • <10%. -> {“decrementBrightness”:10}
  • 10%. -> {“brightness”:10,”transitionTime”:10}
  • off -> {“on”:false}

Home Assistant uitbreiding

Wij hebben voor het alarm-systeem ook een bewegingsensor in de keuken en die kan uiteraard ook voor het licht gebruikt worden. Als er beweging wordt gedetecteerd terwijl de zon onder is, dan gaat het licht aan. Is er geen beweging voor een bepaalde tijd dan gaat het licht weer uit. In Home Assistant is een input-binary als helper die deze sensor kan overbruggen zodat de verlichting niet aan- of uitgaat bij beweging. De dimmer/schakelaar laat ik bij de aan- en uit functie tevens de overbrugging aan- of uitzetten. Hierdoor gedraagt de dimmer/schakelaar zich als permanente schakelaar, onafhankelijk van een beweging.