Gå til innhold
  • Bli medlem
Støtt hjemmeautomasjon.no!

Enkel varslingsystem for lavt batteri


yrune

Anbefalte innlegg

- id: 'batteri_sjekk'
  alias: '[Sensor] Batteri sjekk'
  trigger:
    platform: time
    at: '20:00:00'
  action:
    service: notify.telegram
    data_template:
      message: >
        {%- set threshold = 25 -%}{%- set domains = ['light', 'switch', 'sensor', 'zwave', 'lock'] -%}{%- for domain in domains -%}{%- for item in states[domain] if ((item.attributes.battery_level is defined and item.attributes['battery_level'] | int < threshold) or ("battery" in item.name | lower and ((item.state | int < threshold and item.state|int != 0) or item.state | lower == "low" or item.state | lower == "unknown"))) -%}{{ item.attributes.friendly_name }}{%- if not loop.last %},{% endif -%}{%- endfor -%}{%- endfor -%}
        

Laget en enkel automation script som hver dag klokken 20 sjekker om noen enheter har mindre enn 25% batteri, og hvis den finner noen sender den melding med hvilke via telegram (bytt ut med alternativ notify service du har satt opp)

 

Har kun testet med telegram, men der fungerer det ihvertfall slik at hvis det ikke er noe output så sender den ikke noe melding heller (har ikke noe å sende)

 

bare å endre treshold til høyere tall, f.eks. 99 for å se at det virker.

Lenke til kommentar
Del på andre sider

  • 2 måneder senere...

Jeg fikk feilmelding på å kopiere dette direkte inn. Og det ble ikke bedre da jeg prøvde å modifisere det til mitt bruk. Det virket som om det er innrykket, YAML er idiotisk på den måten. Og det er det også at det snakkes om kolonne, som  det da ikke er noen av i språket! Dette er feilmeldingen av å kopiere direkte inn:

 

Error loading /home/homeassistant/.homeassistant/configuration.yaml: while scanning a block scalar in "/home/homeassistant/.homeassistant/automations.yaml", line 9, column 16 expected chomping or indentation indicators, but found '\ufeff' in "/home/homeassistant/.homeassistant/automations.yaml", line 9, column 17 

 

Og dette er når jeg har prøvd å tilpasse det MQTT istedenfor Telegram:

 

Invalid config for [automation]: [payload_template] is an invalid option for [automation]. Check: automation->action->0->payload_template. (See /home/homeassistant/.homeassistant/configuration.yaml, line 74). Please check the docs at https://home-assistant.io/components/automation/ 

Det er så mye bedre med Node-RED, der står det øyeblikkelig i klartekst hva som er feil.

Lenke til kommentar
Del på andre sider

1 hour ago, Mastiff said:

Jeg fikk feilmelding på å kopiere dette direkte inn. Og det ble ikke bedre da jeg prøvde å modifisere det til mitt bruk. Det virket som om det er innrykket, YAML er idiotisk på den måten. Og det er det også at det snakkes om kolonne, som  det da ikke er noen av i språket! Dette er feilmeldingen av å kopiere direkte inn:

 


Error loading /home/homeassistant/.homeassistant/configuration.yaml: while scanning a block scalar in "/home/homeassistant/.homeassistant/automations.yaml", line 9, column 16 expected chomping or indentation indicators, but found '\ufeff' in "/home/homeassistant/.homeassistant/automations.yaml", line 9, column 17 

 

Og dette er når jeg har prøvd å tilpasse det MQTT istedenfor Telegram:

 


Invalid config for [automation]: [payload_template] is an invalid option for [automation]. Check: automation->action->0->payload_template. (See /home/homeassistant/.homeassistant/configuration.yaml, line 74). Please check the docs at https://home-assistant.io/components/automation/ 

Det er så mye bedre med Node-RED, der står det øyeblikkelig i klartekst hva som er feil.

 

Prøv å erstatte alle mellomrommene (innrykket) på alt du kopierte inn. Det høres ut som om et "usynlig" tegn ble med. Det siste problemet er litt vanskelig å si hva som er feil uten at du viser oss koden din.

Lenke til kommentar
Del på andre sider

Så snålt... Jeg trodde Notepad++ skulle vise alle tegn som var i en kode. Men jeg prøver på nytt. Koden for den andre delen er sånn:

 

#Varsel for lavt batteri
- id: 'batteri_sjekk'
  alias: '[Sensor] Batteri sjekk'
  trigger:
    platform: time
    at: '20:00:00'
  action:
    service: mqtt.publish
    payload_template: >
      {%- set threshold = 25 -%}{%- set domains = ['light', 'switch', 'sensor', 'zwave', 'lock'] -%}{%- for domain in domains -%}{%- for item in states[domain] if ((item.attributes.battery_level is defined and item.attributes['battery_level'] | int < threshold) or ("battery" in item.name | lower and ((item.state | int < threshold and item.state|int != 0) or item.state | lower == "low" or item.state | lower == "unknown"))) -%}{{ item.attributes.friendly_name }}{%- if not loop.last %},{% endif -%}{%- endfor -%}{%- endfor -%}
    topic: eg/Batterialarm

 

Lenke til kommentar
Del på andre sider

Jeg tror jeg kanskje kom litt lenger på den andre også, men ikke fram. Så langt er jeg kommet:

 

- id: 'batteri_sjekk'
  alias: '[Sensor] Batteri sjekk'
  trigger:
    platform: time
    at: '20:00:00'
  action:
    service: mqtt.publish
    data_template:
      payload_template: >
      {%- set threshold = 25 -%}{%- set domains = ['light', 'switch', 'sensor', 'zwave', 'lock'] -%}{%- for domain in domains -%}{%- for item in states[domain] if ((item.attributes.battery_level is defined and item.attributes['battery_level'] | int < threshold) or ("battery" in item.name | lower and ((item.state | int < threshold and item.state|int != 0) or item.state | lower == "low" or item.state | lower == "unknown"))) -%}{{ item.attributes.friendly_name }}{%- if not loop.last %},{% endif -%}{%- endfor -%}{%- endfor -%}
    topic: eg/Batterialarm        

Dette gir en annen feil:

 

Quote

Error loading /home/homeassistant/.homeassistant/configuration.yaml: while scanning for the next token found character '%' that cannot start any token in "/home/homeassistant/.homeassistant/automations.yaml", line 10, column 8

 

Lenke til kommentar
Del på andre sider

- id: 'batteri_sjekk'
  alias: '[Sensor] Batteri sjekk'
  trigger:
    platform: time
    at: '20:00:00'
  action:
    service: mqtt.publish
    data_template:
      payload_template: >
        {%- set threshold = 25 -%}{%- set domains = ['light', 'switch', 'sensor', 'zwave', 'lock'] -%}{%- for domain in domains -%}{%- for item in states[domain] if ((item.attributes.battery_level is defined and item.attributes['battery_level'] | int < threshold) or ("battery" in item.name | lower and ((item.state | int < threshold and item.state|int != 0) or item.state | lower == "low" or item.state | lower == "unknown"))) -%}{{ item.attributes.friendly_name }}{%- if not loop.last %},{% endif -%}{%- endfor -%}{%- endfor -%}
    topic: eg/Batterialarm        

Hva om du prøver denne ?

Lenke til kommentar
Del på andre sider

Bli med i samtalen

Du kan publisere innhold nå og registrere deg senere. Hvis du har en konto, logg inn nå for å poste med kontoen din.

Gjest
Skriv svar til emnet...

×   Du har limt inn tekst med formatering.   Lim inn uten formatering i stedet

  Du kan kun bruke opp til 75 smilefjes.

×   Lenken din har blitt bygget inn på siden automatisk.   Vis som en ordinær lenke i stedet

×   Tidligere tekst har blitt gjenopprettet.   Tøm tekstverktøy

×   Du kan ikke lime inn bilder direkte. Last opp eller legg inn bilder fra URL.

×
×
  • Opprett ny...

Viktig informasjon

Vi har plassert informasjonskapsler/cookies på din enhet for å gjøre denne siden bedre. Du kan justere dine innstillinger for informasjonskapsler, ellers vil vi anta at dette er ok for deg.