Node-red og Home Assistant – Enkel programmering


Reklame - Artikkelen inneholder annonselenker

Hass og Node-red

Hvem har vel ikke slitt med å programmere kode for å få noe til å virke slik som tiltenkt? Jeg kom over Node-Red, som er en visuell måte å lage kode på, som blant annet kan brukes i Home Assistant. Dette uten å skrive noen kode på egenhånd.

Installasjon av Node Red

Node Red Add-on Store

Node Red finner du i Add-on store i Home Assistant. For å ikke finne opp kruttet på nytt, anbefaler jeg Juan M-Tech sin video under. Juan er veldig lett å følge.

Node-red Eksempel – Omregning fra km/t til m/s

Et av de første forsøkene mine på bruk av Node-red var etter jeg hadde installert Netatmo vindmåler og koblet den til Home Assistant. (Les om det i denne artikkelen).

Vindmåleren til Netatmo gir ut vindstyrken i km/t, mens jeg er vant til å forholde meg til m/s. Dette kan nok enkelt løses i Home Assistant med litt kodekunnskap og lage en “template”, men det har jeg ikke kunnskap til. Det var i den forbindelse jeg kom over Node-red.

Installasjon av Noden Calculator

For å kunne gjøre kalkulasjoner uten å bruke kode, kan noden Calculator benyttes. Denne må installeres og gjøres slik:

Manage Palette - Node-RED

Velg Manage Palette

Node-red calc install

Velg fanen Install og søk på calc. Trykk så Install på noden som heter node-red-contrib-calc . For å lese mer om dokumentasjon til denne, kan du lese her

Flyten fra km/t til m/s

Node-red kmh til ms

For å omregne fra km/t til m/s må km/h multipliseres med 0,28. Calculator benytter seg kun av hele tall, derfor ble det et ekstra steg. Stegene i flyten er forklart med ord:

  1. Input fra Vindsensoren i km/t
  2. Multipliserer km/t med 28
  3. Dividerer så med 100
  4. Avrunder til nærmeste hele tall
  5. Output som egen sensor som kan benyttes i Home Assistant.
State node vindkast

Velg noden Event State fra menyen og dobbelklikk for å redigere den

  1. Gi noden et beskrivende navn
  2. Velg Home Assistant fra nedtrekksmenyen, dersom den ikke allerede er valgt.
  3. Velg sensoren som du skal hente informasjon fra. Slik som her er det vindkastmåleren
Calc node 28

Velg noden Calculator fra menyen. Link den til den forrige noden ved å trekke en linje mellom de grå punktene. Rediger følgende i noden:

  1. Velg Multiply i nedtrekksmenyen under Operation
  2. Skriv inn 28 under # Constant
  3. Gi noden en fornuftig navn
Calc node 100

Velg noden Calculator fra menyen. Link den til den forrige noden ved å trekke en linje mellom de grå punktene. Rediger følgende i noden:

  1. Velg Divide i nedtrekksmenyen under Operation
  2. Skriv inn 100 under # Constant
  3. Gi noden en fornuftig navn
Avrund

Velg noden Calculator fra menyen. Link den til den forrige noden ved å trekke en linje mellom de grå punktene. Rediger følgende i noden:

  1. Velg Nearest Integer i nedtrekksmenyen under Operation
  2. Gi noden en fornuftig navn
Node vindkastsensor

Velg noden Sensor fra menyen. Link den til den forrige noden ved å trekke en linje mellom de grå punktene. Rediger følgende i noden:

  1. Navnet på noden i Node-red
  2. Velg server Home Assistant
  3. Velg Sensor i nedtrekksmenyen
  4. Navn på sensoren slik det skal være i Home Assistant. Sensoren vil hentes opp med dette navnet slik: sensor.Vindkasthastighet_ms
  5. Skriv inn class dersom du ønsker det. Jeg har benyttet temperature
  6. Skriv inn hvilke icon du ønsker skal benyttes til sensoren. Dette er valgfritt og kan overstyres i Home Assistant
  7. Skriv inn måleenhet. Dette er valgfritt og kan overstyres i Home Assistant

Importer eksemplet til Node-red

Dersom ønsker å kopiere nøyaktig dette oppsette, kan du importere denne koden:

[{"id":"f2c8dbf3.a66068","type":"server-state-changed","z":"1cabbe35.093012","name":"Vindkast i kmh","server":"a90d8c7c.e094a","version":1,"exposeToHomeAssistant":false,"haConfig":[{"property":"name","value":""},{"property":"icon","value":""}],"entityidfilter":"sensor.netatmo_vind_gust_strength","entityidfiltertype":"exact","outputinitially":true,"state_type":"str","haltifstate":"","halt_if_type":"str","halt_if_compare":"is","outputs":1,"output_only_on_state_change":false,"x":100,"y":640,"wires":[["a72672e8.218a2"]]},{"id":"a72672e8.218a2","type":"calculator","z":"1cabbe35.093012","name":"Multipliser m/ 28","inputMsgField":"payload","outputMsgField":"payload","operation":"mult","constant":"28","x":340,"y":640,"wires":[["2cbe8fa9.157d8"]]},{"id":"2cbe8fa9.157d8","type":"calculator","z":"1cabbe35.093012","name":"Divider m/100","inputMsgField":"payload","outputMsgField":"payload","operation":"div","constant":"100","x":570,"y":640,"wires":[["36499b1b.9586c4"]]},{"id":"dfc005f5.e66b88","type":"ha-entity","z":"1cabbe35.093012","name":"Vindkasthastighet ms","server":"a90d8c7c.e094a","version":1,"debugenabled":false,"outputs":1,"entityType":"sensor","config":[{"property":"name","value":"Vindkasthastighet_ms"},{"property":"device_class","value":"temperature"},{"property":"icon","value":"mdi:weather-windy"},{"property":"unit_of_measurement","value":"m/s"}],"state":"payload","stateType":"msg","attributes":[],"resend":true,"outputLocation":"","outputLocationType":"none","inputOverride":"allow","x":970,"y":640,"wires":[[]]},{"id":"36499b1b.9586c4","type":"calculator","z":"1cabbe35.093012","name":"Avrund","inputMsgField":"payload","outputMsgField":"payload","operation":"round","constant":"","x":750,"y":640,"wires":[["dfc005f5.e66b88"]]},{"id":"a90d8c7c.e094a","type":"server","z":"","name":"Home Assistant"}]

For praktiske eksempler på bruk, se alle mine artikler med Node red her!



Legg igjen en kommentar

Din e-postadresse vil ikke bli publisert. Obligatoriske felt er merket med *