Fleksibel dashboard med Node-red og MQTT – First contact! (Del 1)

UPDATE: Jeg har skrevet en ny artikel om en nemmere måde at lave dashboard på: FLEKSIBELT – OG NEMMERE – DASHBOARD MED HOME ASSISTANT

Du har sikkert allerede stødt på Homeydash, som er et udmærket og flot men dog meget begrænset dashboard til Athom Homey.

Med Homeydash kan du tænde/slukke for enheder og starte enkelte favorit flows. Men skal du se informationer om en enhed (f.eks. temperatur hentet fra en motion sensor) eller indstille en værdi (f.eks. højde på et rullegardin), så skal du enten kæmpe med at trykke på enheden flere gange eller at holde fingeren inde på enheden. Og har du ønsker om at specieltilpasse udseendet eller inddrage 3. parts informationer, så kan det ikke lade sig gøre.

I denne guide vil jeg vise dig, hvordan du laver et fleksibelt dashboard med Node-red og MQTT. Der er meget mere arbejde, end der er med Homeydash – til gengæld bestemmer du selv hvordan det skal se ud, og hvad det skal kunne.

I del 1 af guiden vil jeg vise hvilke grundlæggende ting, der skal være installeret og opsat, før vi kan begynde at bygge dashboardet op. Jeg slutter af med at teste, om der er kommunikation mellem Node-red og Homey, inden vi går videre til del 2.

1. Installation af software

1.1 Node-red basis

Node-red kan du ikke afvikle direkte på Homey! Det kræver at du har en anden platform til rådighed, f.eks. Raspberry pi eller en NAS. Jeg har installeret Node-red på min QNAP NAS i en ContainerStation – det som kendes som Docker på andre NAS’er.

Der er ikke noget videre installation i det – bare søg efter Node-red, tryk install og vælg en IP-adresse og mængden af RAM. Jeg starter med 300 MB og ser om det ikke er nok, ellers er det nemt at give mere senere hen.

Efter installationen findes Node-Red på http://[VALGTE_IP]:1880

1.2 Node-red dashboard

Åben node-red i din browser på adressen http://[VALGTE_IP]:1880

Klik på menu-ikonet, klik på “Manage pallete” og vælg “Install” fanebladet.

Søg efter “node-red-dashboard” og installer det.

Se evt. ovenstående video for demonstration af fremgangsmåden.

1.3 MQTT-Broker

Start med at installere MQTT-Broker app’en direkte på Homey.
Denne app laver en MQTT server på Homey. Det er den server tager imod alle MQTT-beskeder og derved kan afspejle status på alle dine enheder i Homey og tage imod ønskede ændringer.

MQTT-klienter kan så kommunikere med MQTT-brokeren og dels modtage nuværende status og status-ændringer og dels sende kommandoer om ønsket ændringer (f.eks. tænd en pære).
MQTT-klienterne er i vores tilfælde Node-red og Homey selv.

MQTT-brokeren skal ikke nødvendigvis installeres på Homey, men kan f.eks. installeres på en NAS for at spare på Homey’s ressourcer.
Vi installerer den på Homey i denne guide.

Efter installationen af MQTT-broker, skal du gå til indstillingerne for APP’en og oprette et brugernavn samt et password. Disse informationer skal vi bruge i MQTT-client’en i næste punkt og senere i Node-red.

1.4 MQTT-Hub

Vi fortsætter med at installere MQTT-hub app’en på Homey. Det er den der sørger for at sende informationer om alle dine Homey enheder til MQTT-brokeren – og derfra får Node-red senere besked.
MQTT-hub’en tager også imod kommandoer, hvis den enkelte enhed understøtter det.

Når MQTT-brokeren allerede er installeret på Homey, så skal der ikke ændres noget i indstillingerne for denne app. Jeg vil dog anbefale at ændre topic til noget mere forståeligt, som “homie/homey-topic”. Den første del af topic kan ikke ændres, den ændrer sig tilbage til homie.

Bemærk: Det er nødvendigt at genstarte MQTT-hub hvis du senere tilføjer nye enheder til Homey, som skal bruges i dit Node-red dashboard – ellers bliver de ikke sendt med i MQTT.

1.5 MQTT-Client

Til slut skal vi have installeret MQTT-Client app’en i Homey. Den bruges til at modtage og udføre custom MQTT-beskeder/kommandoer fra Node-red – via MQTT-brokeren. Den skal vi bruge til at aktivere flows i Homey.

I indstillingerne for app’en kan du skrive 127.0.0.1 som IP-adresse, hvis du har valgt at installere MQTT-brokeren direkte på Homey.
Porten skal være 1883, med mindre du har ændret den til noget andet i MQTT-brokeren, og brugernavn og password er de informationer, som du oprettede i det forrige punkt i denne guide.

2. Forbind Node-red til Homey

Nu mangler vi at få forbindelse mellem Node-red og Homey. Til det formål skal vi bruge disse informationer:

  • IP-adressen på Homey (det er IKKE 127.0.0.1 denne gang!)
  • Brugernavn & password som vi oprettede i MQTT-brokeren i punkt 1.3

Start med at trække en mqtt node ud på arbejdsområdet. Denne node bruger vi til at modtage data fra Homey’s enheder.
Dobbeltklik på noden og opret en ny MQTT-broker forbindelse.
Udfyld skemaet med IP-adressen på Homey på “Connection” fanebladet, og brugernavn & password på “Security” fanebladet og tilføj serveren.
På “Properties”-siden skriver du # i Topic, for at få information om alle enheder i Homey. # er et wildcard og svarer til * eller % i andre programmer.
Slut af med at skrive et navn der giver mening og gem ændringerne.

Træk nu en debug node ud på arbejdsområdet. Denne node kan vi bruge til at se på skærmen, hvilke data som der modtages via mqtt noden.
Der skal ikke ændres noget på den. Træk en streg mellem de 2 noder.

Nu er vi sådan set færdige. Men vores ændringer træder ikke i kraft, før end vi trykker på den røde “Deploy“-knap. Før vi gør det, så skift til debug vinduet og læg mærke til at det er helt tomt lige nu.
Tryk “Deploy“-knappen så ændringerne træder i kraft. Hvis alt er lykkes, kan du nu se, at der modtages en masse data, samt at der står “Connected” under mqtt noden.

Se evt. videoen herunder som viser alle de beskrevne trin.

Videre til opbygning af dashboardet

Fortsæt til del 2 af artikelserien, hvor vi lægger de første elementer ind på dashboardet og får smarthjemmet til at reagere på kommandoer sendt fra dashboardet.

Kilde

Node Red: A widget based dashboard working with Homey trough MQTT
https://community.athom.com/t/node-red-a-widget-based-dashboard-working-with-homey-trough-mqtt/18798

Skriv en kommentar

Skriv et svar

Din e-mailadresse vil ikke blive publiceret. Krævede felter er markeret med *

This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.

The reCAPTCHA verification period has expired. Please reload the page.