Tenho este Python script que me notifica quais as luzes pertencentes a um grupo que estão ligadas e supostamente as apaga…
Contudo recebo sempre a notificação bem, com todos os nomes das luzes ligadas, mas a parte de as apagar não funciona bem… Ou não apaga nenhuma (o que me acontece mais vezes) ou apaga apenas algumas…
Este Python script é chamado através de uma automação que é executada quando saio de casa.
Python Script:
lights_group = 'group.luzes'
entities_on = []
for entity_id in hass.states.get(lights_group).attributes['entity_id']:
if hass.states.get(entity_id).state is 'on':
entities_on.append(hass.states.get(entity_id).attributes["friendly_name"])
if len(entities_on) > 0:
notification_tilte = "Luzes Ligadas"
notification_message = "As seguintes luzes ficaram ligadas:" '\n - ' + '\n - '.join(entities_on)
hass.services.call('persistent_notification', 'create', {'title' : notification_tilte, 'message': notification_message})
hass.services.call('notify', 'notify', {'title' : notification_tilte, 'message': notification_message})
hass.services.call('homeassistant', 'turn_off', {"entity_id": 'group.luzes'})
Automação:
##############################################################################
##### APAGAR TODAS AS LUZES #####
##############################################################################
- id: Apagar Todas as Luzes
alias: Apagar - Todas as Luzes
trigger:
- platform: zone
entity_id: device_tracker.mi9, device_tracker.a70
zone: zone.home
event: leave
condition:
- condition: template
value_template: "{{ states('person.joel_silva') != 'home' }}"
- condition: template
value_template: "{{ states('person.liliana_zenha') != 'home' }}"
action:
- service: python_script.luz_on
#
A solução que arranjei foi passar a parte de apagar as luzes para a automação, e aí já tudo funciona bem. Mas fiquei intrigado do porque de não funcionar bem no Python Script…
Será que alguém consegue me dizer o porquê disto acontecer? Tem algum erro no código?
Desde já, Obrigado.