Komihågknapp med Home Assistant och Node-Red – Mellanvarianten

Tömma kattlådan, ge barnet D-vitamin, rulla fram soptunnan, ge katten mat, det finns massor av uppgifter som ska göras och huvudet är inte alltid med. Vad kan då vara bättre än att ha en komihågknapp? Jag har personligen upptäckt att om det finns en störigt röd knapp på displayen i köket så MÅSTE jag släcka den (och det gör man ju genom att utföra uppgiften).

Idag fortsätter vi med mellanvarianten, en uppgift som upprepar sig genom ett förbestämt mönster men som kan ha fler värden än ett eller noll. I mitt exempel ser jag till att vi i familjen har koll på hur mycket mat katten får.

Målbild

Har katten fått mat?

Förutsättningar

Det kan vara bra om du läst: https://frosenlind.se/hemautomation/komihagknapp-med-home-assistant-och-node-red-latta-varianten/

Genomförande

  1. Skapa en helper, input_number
  2. Skapa och styla ett kort
  3. Skapa återställningslogiken i Node-Red

Skapa en helper

Att skapa en helper har sedan några versioner tillbaka blivit väldigt enkelt, inget mer pillande i configuration.yaml utan lite mer “straight forward” i Home Assistants grafiska gränssnitt.

Configuration -> Helpers -> Plusset -> Number

Tänk på hur du namnger dina saker i Home Assistant (och kringprogram), det blir lätt VÄLDIGT mycket enheter och entiteter att hålla reda på. För att jag ska kunna veta vad det är jag håller på med så försöker jag vara väldigt konsekvent. Alla mina påminnelser heter “reminder” i början.

Home Assistant, Number
Namereminder_cat_food
iconmdi:cat
Min value0
Max value100
Display modeinput field
Step size1
UoMmeals
Home Assistant, input number

Ja, nu skojade jag ju till det lite ovan med meals men faktum kvarstår att det kan vara bra att vi har ett unit of measurement om vi vill följa kattens matintag senare.

Om du, efter att du sparat (create), klickar på din helper så ser du att systemet nu producerat ett ID åt dig.

Home Assistant, input_number

Skapa och styla ett kort

Vad vi vill åstadkomma är nu följande:

  • När vi trycker på kortet så ökar vi antalet (kattmatningar) med ett
  • Om vi håller in så vill vi återställa värdet (för man kan ju göra fel) till noll
  • När vi värdet är noll så ska kortet vara rött, när värdet är ett ska kortet vara gult, är värdet två eller mer ska det vara grått

Kortets bas

type: 'custom:button-card'
color_type: icon
show_name: false
entity: input_number.reminder_cat_food
  • Definera kortet
  • Eftersom vi vill ändra färgen på ikonen senare så sätter vi color_type till icon
  • Vi ni inte att kortets namn ska synas, sätt annars show_name till true
  • I entity definerar vi vilken entitet vi kommer använda oss av när vi hämtar värde senare, här skriver du den helper vi skapade
tap_action:
  action: call-service
  service: input_number.increment
  service_data:
    entity_id: input_number.reminder_cat_food
hold_action:
  action: call-service
  service: input_number.set_value
  service_data:
    value: 0
    entity_id: input_number.reminder_cat_food
  • När vi håller in knappen vill vi återställa till 0
  • Detta är ju ingen funktion man kanske använder dagligen men det kan vara bra att kunna göra det manuellt
state:
  - value: 0
    color: red
  - value: 1
    color: yellow
  - value: 2
    operator: '>='
    color: 'rgb(241,241,241)'
  • Slutligen det roliga!
  • När värdet är 0 så ska color, dvs. ikonen efter som vi valde det i början av kortet, vara röd
  • När värdet är 1 så ska ikonen vara gul
  • När värdet är 2 eller mer så ska ikonen vara grå

Jag hade tidigare ikonen till grön vid 2 eller mer, men jag tycker det är snyggare om det sticker i ögonen om något är fel. Om allt är rätt (Dvs, katten har fått tillräckligt med mat) så ska knappen vara mer anonym.

Home Assistant

Kortet som helhet finns längst ner!

Återställning i Node-Red

Som vanligt kan det vara en bra idé att starta om Node-Red innan du gör nedan.

I förra inlägget: https://frosenlind.se/hemautomation/komihagknapp-med-home-assistant-och-node-red-latta-varianten/ skapade vi ett kort flöde för att återställa en annan knapp. Vi kommer nu bygga på den.

Node-Red
  • Dra in en ny call service-nod och fyll i enligt tabellen
  • Koppla sedan ihop noderna och glöm inte att deplaya
PropertieValue
NameReset cat food
Domaininput_number
Serviceset_value
Entity Idinput_number.reminder_cat_food
Data{”value”:0}
Node-Red, table input_number
Node-Red, reset cat food

Sammanfattningsvis

Kortet i sin helhet

type: 'custom:button-card'
color_type: icon
show_name: false
entity: input_number.reminder_cat_food
tap_action:
  action: call-service
  service: input_number.increment
  service_data:
    entity_id: input_number.reminder_cat_food
hold_action:
  action: call-service
  service: input_number.set_value
  service_data:
    value: 0
    entity_id: input_number.reminder_cat_food
state:
  - value: 0
    color: red
  - value: 1
    color: yellow
  - value: 2
    operator: '>='
    color: 'rgb(241,241,241)'

Leave a Reply

Denna webbplats använder Akismet för att minska skräppost. Lär dig hur din kommentardata bearbetas.