Visa återstående tid innan lampan släcks

Jag var intresserad av att veta hur lång tid det var kvar innan min belysning skulle släckas och hittade ingen bra lösning. Home Assistant har en timer men tyvärr vill den inte visa återstående tid som en sensor så detta var ingen framkomlig väg.

Jag var intresserad av att veta hur lång tid det var kvar innan min belysning skulle släckas och hittade ingen bra lösning. Home Assistant har en timer men tyvärr vill den inte visa återstående tid som en sensor så detta var ingen framkomlig väg.

Jag gjorde en ganska smidig lösning, den är cool, jag lovar!

Du kan använda Home Assistants timer som ett eget kort men många gånger vill du ha informationen som en del av något annat. Jag använder oftast Node-Red och deras trigger-nod som timer och denna visar inte återstående tid.

Tid kvar innan det släcks

Jag kom i kontakt med följande forumtråd som puttade mig i rätt riktning: https://discourse.nodered.org/t/time-remaining-on-trigger-node-debug-or-msg-property/343/7. Där bygger användaren Andrei ett flöde med två triggers (varav en så kallas heartbeat) och en function-nod som visar återstående tid. Jag byggde först vidare exakt på Andreis flöde och exponerade en nod mot Home Assistant men av flera anledningar var detta inte en lösning som föll mig i smaken.

Svaret kommer direkt

För ovanlighetens skull kommer detta inte vara en guide i vanlig mening utan du får svaret servat direkt med en färdig lösning, det är ju tjusningen med subflows!

countdown timer

Noden/Subflowet

Det första du ska göra är att skapa en counter med step value 1. Så varje gång vi räknar ner så drar den ifrån en sekund.

Ge subflowet ett namn och knappa in IDt på din counter och välj därefter hur lång tid den ska räkna.

Klart!

I dokumentationen till subflowet har jag skrivit lite matnyttig info. Ex. så får du ut ny info med kvarvarande tid från den övre nodanslutningen (Dvs. varje sekund) medans den undre nodanslutningen ger dig timer_triggerd och timer_finsihed vid start och stopp.

Vad hittar jag noden?

Du hittar noden på Node-Reds hemsida här: https://flows.nodered.org/flow/b03fbbcdd934854de98f6c034659172d

Ni får JÄTTEGÄRNA ge den 5 stjärnor!

Hur använder jag den i Home Assistant?

type: entities
show_header_toggle: false
entities:
  - entity: light.lounge_lights
    type: 'custom:multiple-entity-row'
    name: Gillestugan
    show_state: false
    state_color: true
    tap_action:
      action: call-service
      service: svc2evnt.fire_event
      service_data:
        event_type: custom_event
        data:
          event_id: playroom_lights
          brightness: 0
    secondary_info:
      entity: counter.lounge_timer
      name: false
      unit: seconds

Det är nästan skamligt enkelt!

Till vänster så använder jag härliga multiple-entity-row och som secondary_info har jag angett min counter. Svårare än så behöver det inte vara.

Vill du använda detta i ett Node-Red flöde så kommer här ett exempel som jag har i källaren. Två olika sensorer registrerar rörelse, beroende på tid på dygnet skickar vi in olika ljusstyrkor. Efter X-tid utan rörelse så släcker vi, men vid rörelse förlänger vi hela tiden. Kvarvarande tid syns i tidigare bild.

Node-Red flow with timer

Tankar och förslag!?

Hoppas ni får nytta av subflowet, jag tar gärna emot bilder och kommentarer om ni tyckte det var bra.

TÄNK PÅ!

Efter att ha felsökt med Dan som skrev kommentaren nedan: Tänk på att gå in på alla ”Home Assistant-nodern” i subflowet och ändra till er Home Assistant-server.

3 Comments

  1. Hej, försöker använda denna suveräna ide men får inte till det… Jag försöker få igång timern när ett visst luxvärde uppnås på en Philips Hue sensor. När detta värde uppnås, tex 10 000 lux vill jag att timern skall starta och räkna i 15 minuter. Går lux värdet under 10 000 och åter över 10 000 skall timern starta om.

    Problemet jag har i NodeRed är att jag inte får till att timern startar oberoende vilka noder jag försöker använda, dvs jag får tydligen inte till den input som den triggar på…..

    • Hej Dan! Om du skapar din counter och gör ett enkelt flöde som detta: Inject, min counter, debug. Vad händer då?
      https://i.imgur.com/ZR6oe2D.png

      Edit: fast ändra debug till complete msg object

  2. Tack Fredrik, nu funkar det för mig som tänkt!

Leave a Reply

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