Usar Last_Changed num script python


(Joao Cardoso) #1

Pipol,

estou a tentar fazer um script pyton que receba uma serie de entidades a controlar e valide durante quanto tempo estão ligadas. O objectivo é enviar uma notificação caso alguma das entidades esteja ligada durante x tempo.
Para isto estava a pensar usar o campo lant_changed do objecto state. Mas para uma luz está a devolver None. Alguem me sabe dizer se é suposto este campo ser alterado sempre que uma luz muda de estado ??

automação:

  - alias: On For too Long
    trigger:
      platform: time_pattern
      minutes: '/1'
    action:
      - service: python_script.on_for_too_long
        data:
          entities: light.lr_yeelight_couch

python script:

entitylist = data.get('entities').split("|")
for entity in entitylist :
  states = hass.states.get(entity)
  if (states.state == 'on') :
    dt = hass.states.get(entity).attributes.get('last_changed')
    logger.info(dt)

(Joao Cardoso) #2

descobri :slight_smile:

em vez de

hass.states.get(entity).attributes.get('last_changed')

deve ser

hass.states.get(entity).last_changed