Script para verificar o estado de sensores

Viva,

Tenho dúvidas sobre a criação de um script.

Estou a tentar criar um script, que verifica o estado de todas as entidades de um grupo (neste caso de sensores de portas).

Mas qd corro o script obtenho o erro:

SCR | Portas/janelas abertas: Error executing script. Invalid data for call_service at pos 1: extra keys not allowed @ data['data_templete']

O código que estou a usar é:

'1587375644336':
  alias: SCR | Portas/janelas abertas
  sequence:
  - data:
      data_template:
        message: '{% set open_doors = states | selectattr(''entity_id'', ''in'', state_attr(''group.sensores_wd'',''entity_id'')) | selectattr(''state'',''in'',[''on'',''open'']) | list | map(attribute=''name'') | join('', '') %} Janelas/portas abertas: {{ open_doors }}'
    service: telegram_bot.send_message

Qual será o meu erro?

(confesso que sou mt verdes nestas andanças)

obg

A formatação do código está incorreta. Como estás a usar template, o data não serve de nada. Apagas o data e metes nesse sitio o data_template

'script':
  alias: script
  sequence:
    - service: <serviço>
      data_template:
        message: <message>
1 Curtiu

EDITADO

Já funciona - esqueci-me de um pormenor importante, recarregar os scripts :slight_smile:

Obrigado @ricreis394


Continuo com erro:

'1587375644336':
  alias: SCR | Portas/janelas abertas
  sequence:
  - service: telegram_bot.send_message
    data_template:
      message: '{% set open_doors = states | selectattr(''entity_id'', ''in'', state_attr(''group.sensores_wd'',''entity_id'')) | selectattr(''state'',''in'',[''on'',''open'']) | list | map(attribute=''name'') | join('', '') %} Janelas/portas abertas: {{ open_doors }}'

e obtenho o erro:

required key not provided @ data['message']
2:44:18 PM – websocket_api (ERROR)
SCR | Portas/janelas abertas: Error executing script. Invalid data for call_service at pos 1: required key not provided @ data['message']
2:44:18 PM – Script (ERROR)

A formatação continua errada…

Certo Jorge, mas entretanto dei pelo erro, corrigi e funciona.

Já agora, partilho o código revisto e corrigido:

'1587375644336':
  alias: Portas/janelas abertas
  sequence:
    - data_template:
        message: '{% set open_doors = states | selectattr(''entity_id'', ''in'', state_attr(''group.sensores_wd'',''entity_id'')) | selectattr(''state'',''in'',[''on'',''open'']) | list | map(attribute=''name'') | join('', '') %} Janelas/portas abertas: {{ open_doors }}'
      service: telegram_bot.send_message

Obrigado


Copyright © 2017-2021. Todos os direitos reservados
CPHA.pt - info@cpha.pt


FAQ | Termos de Serviço/Regras | Política de Privacidade