Een lamp aan uit zetten met MQTT en Node-RED

Door Naj_Geetsrev op dinsdag 16 mei 2017 11:05 - Reacties (5)
Categorie: Domotica, Views: 16.585

Wat kan ik er mee?

Zie titel. Een lamp aan en uit zetten. Maar dan wel op een fantastische over-geengineerde manier waar mijn lieftallige vriendin het nut niet van inziet. :P.

Wat is MQTT?

In het kort: MQTT is standaard bedoeld voor IoT toepassingen. Het is een broker waarmee berichten op basis van een publish-subscribe systeem heen en weer gestuurd kunnen worden. Voor meer informatie: http://internetofthingsag...TT-MQ-Telemetry-Transport

Wat is Node-RED?

In het kort: Node-RED is tool waarmee je op basis van flows eenvoudige (of minder eenvoudige) acties kan 'programmeren'. De kracht van Node-RED zit hem in de snelle iteratie, het visuele programmeren, de gigantische library van uitbreidingen en de eenvoud dat je het kan uitbreiden. Voor meer informatie: https://nodered.org/

Waarom?

Het idee is dat een MQTT broker i.c.m. Node-RED wordt gebruikt om alle componenten aan elkaar te koppelen, de status bekend te maken naar een of meerdere frontends en automations volledig buiten de frontend te regelen.

Dit bied je de volgende voordelen:
  • Je kan eenvoudig wisselen van frontend, of zelfs meerdere gebruiken. Zoals je ze maar MQTT praten. Zelf een eenvoudige frontend maken is dan ook super eenvoudig. Voorbeeld: ik heb in een avondje een dashboard gemaakt om alle lampen in mijn huis te besturen in Unity3D.
  • Het doet wat jij zegt dat het moet doen, dmv de flows heb je volledig inzicht in wat er gebeurd.
  • Node-RED wordt enorm veel gebruikt, voor veel toepassingen zijn er node's beschikbaar.

Mijn setup

Ik ben nog maar net begonnen met mijn Domotica setup; dus het is nog bescheiden. Maar dit is mijn setup:

Op een RPi3 draait nog een MQTT-broker, Node-RED en Home Assistant, met daar aan gehangen een RFXcom.

MQTT-broker op een VPS: deze ontvang mijn locatie via OwnTracks, in Node-RED heb ik een flow die gesubscribed is op het topic waar OwnTracks naar toe publisht, en deze publisht het 1-op-1 door naar de on-prem broker.

2 hue lampen + bridge
3 kaku stekkers met daaraan een paar losse lampen
1 temp sensor via 433Mhz

7" tablet aan de muur met daar op draaiende een dashboard gemaakt met Unity3D (betere visuele performance t.o.v. HTML5)

Wat heb ik nodig?

Een MQTT-broker: ik gebruik zelf Mosquitto
Een Node-RED installatie met de node-red-contrib-rfxcom package geinstalleerd
Basis begrip van hoe Node-RED werkt
Een RFXCOM RFXtrx433E
Een frontend die MQTT praat, in mijn voorbeelden gebruik ik Home Assistant

Voorbeeld RFXcom lamp/schakelaar

Stap 1
We maken eerst een lamp aan in de configuratie van Home Assistant:
code:
1
2
3
4
5
6
7
8
- platform: mqtt
  name: "Mooie lamp"
  command_topic: "lamp/433/switch/ARC/B/1"
  state_topic: "lamp/433/state/ARC/B/1"
  payload_on: "On"
  payload_off: "Off"
  qos: 0
  optimistic: false


Korte uitleg:
VeldOmschrijving
platformgeeft aan dat het een lamp betreft die gebruikt maakt van het MQTT platform
namede naam die je de lamp wil geven binnen Home Assistant
command_topicnaar welk MQTT topic je een bericht stuurt om aan te geven dat je de lamp aan of uit wil zetten
state_topicnaar welk MQTT topic Home Assistant moet luisteren voor de huidige lamp status
payload_on/playload_offwelk bericht je moet sturen of naar moet lluisteren voor de aan of uit stand
qosPlat gezegd de 'garantie' dat een bericht daadwerkelijk aangekomen is. Omdat de client en de broker op het zelfde systeem staan bij mij is 0 voldoende (fire and forget)
optimisticbij true gaat de schakelaar binnen Home Assistant direct om, mijn voorkeur is om te wachten op de MQTT state wijziging.


Omdat ik niet voor elke lamp een flow wil maken in Node-RED heb ik in de command en de state topics het adres opgenomen van de lamp/schakelaar (in mijn geval gaat het dus om een KaKu schakelaar op het adres B/1).
Stap 2
Nu gaan we de flow maken.



Deze flow vangt twee scenario's af:
  • In home assistant (of een andere applicatie die commando's stuurt naar het switch topic) kan de lamp aan of uit zetten[/i]
  • Via een KaKu remote kan de lamp aan of uit gezet worden[/i]
Beide manieren blijven werken en zorgen er voor dat de state van de lampen bekend wordt. Daarnaast is het nu een eitje om een b.v. een goedkope 433Mhz lichtknop meerdere lampen tegelijk te laten schakelen. Het enige wat je moet doen is de juiste status naar het switch topic publishen.

Even kort de nodes bij langs:

lamp/433/switch/#

Deze MQTT input node luistert naar alle topics die beginnen met lamp/433/switch.

ExtractDeviceName

Eenvoudige function node die lamp/433/switch stript van de topic. De payload kan 1 op 1 doorgezet worden.

433 light (output)

Uitgaande node. Het topic geeft aan welk adres geschakeld moet worden en de payload geeft aan welke status de schakelaar moet krijgen.

ChangeTopic

Eenvoudige function node die /switch/ vervangt met /state/. Voor de rest zet hij het bericht 1-op-1 door naar de MQTT output node

lamp/433/state/#

Zet alle inkomende berichten 1-op-1 door naar de MQTT broker

433 light (input)

Deze vangt alle berichten af en stuurt ze door naar de volgende node

ConvertToMQTT

Deze checkt eerst of het bericht een schakelaar betreft (in mijn geval begint het adres dan met ARC

Volgende delen

Ik ben nog aan het uitzoeken wat de beste manier is op om deze manier mijn huis te automatiseren. Er zijn zelfs een paar architectuur voorstellen (zie bijvoorbeeld hier) Voor mij is het een heerlijke prutshobby (hoewel ik wel rekening moet houden met de WAF-factor ;)). Het kan beter (en sinds ik begonnen ben met het schrijven van deze blog heb ik zelfs al een paar verbeteringen doorgevoerd).

Mocht je vragen hebben dan hoor ik het graag. :).

Dit is mijn eerste tweakblog. Het is meer werk dan dat ik verwacht had, maar vond het wel leuk om mijn hobby projectje met jullie te delen. Wie weet later meer!

Volgende: DIY 4K Steam Link (aka Moonlight Box) 22-07 DIY 4K Steam Link (aka Moonlight Box)

Reacties


Door Tweakers user Sander, woensdag 24 mei 2017 07:40

Gaaf artikel, MQTT + Node red ziet er uit als een mooie combinatie. Helaas is de support in mijn ogen toch nog wat beperkt, dus ben benieuwd hoe de uptake gaat zijn. Misschien al een eigen topic waardig op het forum?

Door OscarKisse, vrijdag 20 september 2019 23:32

Ça Chapitre 2 Voir Film Completment - http://streaming-2019.ove...ming-gratuit-hd-2019.html

Ça Chapitre 2 film streaming gratuitment
Ça Chapitre 2 film à Regarder
Ça Chapitre 2 top film
Ça Chapitre 2 Regarder film En Entier gratuit en français En Ligne
Ça Chapitre 2 torrent téléchargment
Ça Chapitre 2 En Entierement en français
Ça Chapitre 2 film en entier en français
Ça Chapitre 2 Online en français
Ça Chapitre 2 entierement en français Online
Ça Chapitre 2 entierement en français
Ça Chapitre 2 Regarder En Ligne
Ça Chapitre 2 télécharger gratuitment film En Entier
Ça Chapitre 2 Regarder le film En Entier
Ça Chapitre 2 en français streaming
Ça Chapitre 2 Regarder entierement en français
Ça Chapitre 2 En Ligne gratuit
Regarder Ça Chapitre 2 gratuitment
Ça Chapitre 2 Regarder gratuitment en français
Ça Chapitre 2 Regarder en streaming
Ça Chapitre 2 En Ligne streaming
téléchargment film Ça Chapitre 2 gratuitment
Ça Chapitre 2 Voir HD streaming
Ça Chapitre 2 Regarder en HD gratuitment
Ça Chapitre 2 Regarder en ligne
Ça Chapitre 2 gratuit en streaming
Ça Chapitre 2 Regarder gratuitement
Ça Chapitre 2 film streaming
Ça Chapitre 2 streaming VF
Ça Chapitre 2 streaming film français
Ça Chapitre 2 youtube film
Ça Chapitre 2 film en streaming
Ça Chapitre 2 film stream
Ça Chapitre 2 Voir film
Ça Chapitre 2 Regarder film gratuit français

Door OscarKisse, maandag 23 september 2019 06:54

Ver pelicula online - https://blog.libero.it/wp...stra-ver-pelicula-online/


Ad Astra Hasta las estrellas pelicula
Ad Astra pelicula completa
Ad Astra película 4
Ad Astra películas
Ad Astra Hasta las estrellas ver película online
Ad Astra Hasta las estrellas ver pelicula
Ad Astra descargar cines gratis
Ad Astra Hasta las estrellas ver películas online gratis
Ad Astra descargar pelicula gratis
Ad Astra Hasta las estrellas youtube pelicula
Ad Astra película completas en castellano
Ad Astra pelicula mexicanas
Ad Astra pelicula cristianas
Ad Astra Hasta las estrellas descargar pelicula
Ad Astra Hasta las estrellas cine infantiles
Ad Astra Hasta las estrellas cine en castellano
Ad Astra Hasta las estrellas pelicula en linea hd
Ad Astra Hasta las estrellas película fox
Ad Astra Hasta las estrellas si película
Ad Astra pelicula 24
Ad Astra cine
Ad Astra Hasta las estrellas Ver cine
Ad Astra Ver película online
Ad Astra Hasta las estrellas Ver pelicula en linea
Ad Astra ver película gratis
Ad Astra ver película latino
Ad Astra Hasta las estrellas ver mexicana
Ad Astra Hasta las estrellas Ver cine català
Ad Astra ver película galego
Ad Astra Hasta las estrellas ver película euskara
Ad Astra y descargar películas gratis
Ad Astra y descargar películas
Ad Astra película online gratis
Ad Astra Hasta las estrellas online pelicula castellano
Ad Astra película latino online
Ad Astra película completa

Door fullzdumps, vrijdag 24 september 2021 13:30

<a href="https://fullzdumps.cc/">buy dumps</a>

Door virtuallocal, zaterdag 25 september 2021 17:51

<a href="https://virtual-local-numbers.com/countries/65-australia.html">online phone number australia</a>

Reactie formulier
(verplicht)
(verplicht, maar wordt niet getoond)
(optioneel)