Hemma/borta/sov med Home Assistant och Node-Red – Del 2

Du har gjort allt enligt del 1 av denna serie. Du lämnar huset och strax efter ringer sambon och undrar varför allt blir mörkt. Du startar lamporna från mobilen men strax efter blir allt mörkt igen. Well, du har ju inte lagt in sambon telefon i Home Assistant och så fort du lämnar slocknar huset…

Eller i mitt fall: Frun är på jobb, svärmor passar lillkillen och jag ska på ett ärende, vips så är det mörkt.

Detta ska vi lösa, i detta inlägg skapar vi förutsättningar för att göra detta med ”bortaläge”.

Vill du inte lära dig något utan bara kopiera kod så finns detta längst ner i inlägget.

OBS! Detta är en artikel från 17 november 2020 som var publicerad på frosenlind.se
Länkar i inlägget kan hänvisa till gamla sidan, använd sökfunktionen för att hitta inlägget här istället!

Målbild

När vi är klara kan vi sätta huset i långt eller kort ”bortaläge”. Längre bortaläge för att kunna styra husets automationer vid ex. semester och ett kortare som vi använder när vi (till exempel) låter svärmor passa barnen för att undvika oönskad ex. oönskad nedsläckning av huset (eller start av larmet).

Förutsättningar

  • Du har gjort del 1 av denna kurs.

Genomförande

  • Skapa en helper input_Select
  • Skapa en knapp för att välja bortaläge
  • Skapa en återställning vid ”kort bortaläge” i Node-Red.

Helper – input_select

Vi behöver en helper för att kunna välja vilket läge huset ska vara i. Nedan får du uppsättningen på helpern, är du osäker HUR man skapar den så kan du läsa mer i detta lite äldre inlägget: http://frosenlind.se/hemautomation/hemma-borta-sov-med-home-assistant-och-node-red-del-1/

Läge home = vi är inte på semester, jag använde mig först av off men detta kan bli lite problematiskt ibland när man använder YAML. Undvik on och off om det inte är en boolean.

VadVärdeKommentar
NameHouse away modeDetta bör vara något så DU förstår
IconKan vara tom, jag använder mdi:island.
Vi kommer ändra detta senare.
Optionshome, day, longObservera att det INTE är några versaler.
Endast små bokstäver.
Entity IDinput_select.house_away_modeJag kommer hänvisa till detta ID i senare kod. Se till att ändra/kontrollera till detta ID.
Lista över input_select.house_away_mode konfuguration

Knappen

Vi kommer återigen använda oss av custom button-card.

Vad vi vill åstadkomma är följande:

  • Alla knapptryckningar ska vara låsta, så man inte av misstag sätter huset i semesterläge
  • När knappen är upplåst så hoppar man mellan lägena genom att trycka på knappen.
  • Knappens ikon ska visa vilket läge vi befinner oss i.

Skapa ett nytt manuellt kort.

type: 'custom:button-card'
color_type: card
show_name: false
entity: input_select.house_away_mode
color: gray

I den första delen av kortet deklarerar vi information som gäller hela kortet. Vilken typ av custom card vi använder, att vi inte vill visa namnet på vår input_select, vilken färg kortet ska ha och självklart vilken entitet vi ska ”prata” med. I detta fallet är det faktiskt inte nödvändigt att deklarera entity, men för att koden ska vara lättläslig så gör vi det.

tap_action:
  action: call-service
  service: input_select.select_next
  service_data:
    entity_id: input_select.hou

I andra delen av kortet deklarerar vi vad som ska hända när vi trycker på det. Denna gången är det betydligt enklare än vid vår input_select.house_state. Vi vill bara hoppa till nästa värde och det gör vi med input_select.select_next.
Det krävs dock att vi skickar med service_data och vilken entitet vi faktiskt ska ändra på!

state:
  - value: home
    icon: 'mdi:home'
  - value: day
    icon: 'mdi:calendar-today'
  - value: long
    icon: 'mdi:camer

Nu använder vi oss igen av det som gör button-card så fantastiskt bra (och lätt när väl polletten trillat ner), nämligen states.

Om vår input_select har det värde som kommer efter value:, ändra då ikon till det som kommer efter icon:

lock:
  enabled: true
  unlock: hold

Slutligen lägger vi till en låsning på kortet.

Button-card

Återställning vid ”kort bortaläge”
i Node-Red.

Innan du gör något annat: starta om Node-Red.

Nu har vi skapat en input_select som innehåller olika bortalägen samt en knapp att aktivera dem. När vi har ställt in huset på ”long” så är det troligen för att vi är på semester över minst två dagar (vi kommer kanske till detta i senare inlägg men då kan man automatisera allt från lamporna till markiser mm för att få andra att tro att du är hemma).
Har vi satt bortaläget till ”day” så är tanken att det bara ska gälla under aktuellt dygn och vi vill därför att huset automatiskt ska återgå till hemmaläge innan vi vaknar nästa dag.

Node-Red inject

Dra in en “Inject”-nod och ta bort eventuell payload som finns i noden. Längst ner så ändrar du till “at a specific time” och väljer därefter vilka dagar och vilken tid du vill att noden ska aktiveras. Jag föreslår 04:00 (bilden är från ett tidigare inlägg)

Node-Red current state

Dra in noden “current state” och i Entity ID skriver du vår input_select.house_away_mode. I “if state” skriver du day. Denna noden har nu också två outputs, den första är den intressanta då denna triggas OM huset är i ”day-läge”.

Dra därefter in en ”call service”-nod. Det är med denna som vi ändrar vår input_select så den återgår till läge home.

InputVärde
Domaininput_select
Serviceselect_option
Entity IDinput_select.house_away_mode
Data{”option”:”home”}
Node-Red, service node, input_select

Koppla sedan ihop våra tre noder.

Sammanfattning

Vi har skapat en input_select för att kunna ha olika bortalägen. Med en knapp i Home Assistant kan vi sedan hoppa mellan våra olika lägen. Om huset är i bortaläge ”day” så återgår huset automatiskt till hemmaläge när klockan är 04:00.

I nästa del ska vi skapa några riktiga tillämpningar.

Resurser

Vår knapp i sin helhet.

type: 'custom:button-card'
color_type: card
show_name: false
entity: input_select.house_away_mode
color: gray
tap_action:
  action: call-service
  service: input_select.select_next
  service_data:
    entity_id: input_select.house_away_mode
state:
  - value: home
    icon: 'mdi:home'
  - value: day
    icon: 'mdi:calendar-today'
  - value: long
    icon: 'mdi:camera'
lock:
  enabled: true
  unlock: hold

Länk till min gist med Node-Red-flödet för att återställa house_away_mode till day:
https://gist.github.com/frosenlind/68a54637182527bdfce16c511e260287

Leave a Reply