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.
OBS! Detta är en artikel som ursprungligen var publicerad på frosenlind.se den 9 januari 2021.
Länkar i inlägget som hänvisar till gamla sidan kommer inte att fungera!
Målbild
Har katten fått mat?
Förutsättningar
- Du har button card installerat: https://github.com/custom-cards/button-card
- Du har Node-Red installerat
Det kan vara bra om du läst: http://frosenlind.se/hemautomation/komihagknapp-med-home-assistant-och-node-red-latta-varianten/
Genomförande
- Skapa en helper, input_number
- Skapa och styla ett kort
- 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.
Name | reminder_cat_food |
icon | mdi:cat |
Min value | 0 |
Max value | 100 |
Display mode | input field |
Step size | 1 |
UoM | meals |
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.
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
- När vi trycker på kortet vill vi öka antalet med ett, detta gör vi med servicen increment
- Du kan läsa mer här i dokumentationen: https://www.home-assistant.io/integrations/input_number/
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.
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: http://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.
- Dra in en ny call service-nod och fyll i enligt tabellen
- Koppla sedan ihop noderna och glöm inte att deplaya
Propertie | Value |
---|---|
Name | Reset cat food |
Domain | input_number |
Service | set_value |
Entity Id | input_number.reminder_cat_food |
Data | {”value”:0} |
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)'