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 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:
Velg Manage Palette
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
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:
- Input fra Vindsensoren i km/t
- Multipliserer km/t med 28
- Dividerer så med 100
- Avrunder til nærmeste hele tall
- Output som egen sensor som kan benyttes i Home Assistant.
Velg noden Event State fra menyen og dobbelklikk for å redigere den
- Gi noden et beskrivende navn
- Velg Home Assistant fra nedtrekksmenyen, dersom den ikke allerede er valgt.
- Velg sensoren som du skal hente informasjon fra. Slik som her er det vindkastmåleren
Velg noden Calculator fra menyen. Link den til den forrige noden ved å trekke en linje mellom de grå punktene. Rediger følgende i noden:
- Velg Multiply i nedtrekksmenyen under Operation
- Skriv inn 28 under # Constant
- Gi noden en fornuftig navn
Velg noden Calculator fra menyen. Link den til den forrige noden ved å trekke en linje mellom de grå punktene. Rediger følgende i noden:
- Velg Divide i nedtrekksmenyen under Operation
- Skriv inn 100 under # Constant
- Gi noden en fornuftig navn
Velg noden Calculator fra menyen. Link den til den forrige noden ved å trekke en linje mellom de grå punktene. Rediger følgende i noden:
- Velg Nearest Integer i nedtrekksmenyen under Operation
- Gi noden en fornuftig navn
Velg noden Sensor fra menyen. Link den til den forrige noden ved å trekke en linje mellom de grå punktene. Rediger følgende i noden:
- Navnet på noden i Node-red
- Velg server Home Assistant
- Velg Sensor i nedtrekksmenyen
- Navn på sensoren slik det skal være i Home Assistant. Sensoren vil hentes opp med dette navnet slik: sensor.Vindkasthastighet_ms
- Skriv inn class dersom du ønsker det. Jeg har benyttet temperature
- Skriv inn hvilke icon du ønsker skal benyttes til sensoren. Dette er valgfritt og kan overstyres i Home Assistant
- 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!