Como saber o estado de uma tv sem Wifi

Viva.
Penso que aquilo que vou perguntar está no sítio certo.
Com o broadlink ligo e desligo a TV.
Via ping consigo saber se a TV está realmente ligada ou desligada.
Quando desligo via comando original não muda o switch, apenas muda a informação do ping.
Aquilo queria fazer era fazer era obrigar o estado do ping a alterar o switch, mas está a algo a escapar-me.

Estou a tentar colocar aqui as linhas mas não sei como o fazer pelo telemóvel.

switch:
  - platform: broadlink
    host: 192.168.1.125
    mac: '78:0f:77:b9:34:a2'
    timeout: 15
    switches:
      tv_thomson:
        friendly_name: "Tv da Sala"
        command_on: 'JgA2AIOEEUERQRFCEEIRIBEhEUERQRFBESERIRBCESARIREgESERQRFBESERIBEhEUERQREhEQANBQAA'
        command_off: 'JgA0AHh4DzwPPA88DzwPPA8eDzwPPA88Dx4PHg8eDx4PHg8eDx4PHg88Dx4PHg8eDzwPPA88D/ENBQAA'
      
       
binary_sensor:
  - platform: ping
    name: "Thomson"
    host: 192.168.1.64
    scan_interval: 10    
  
  - platform: template
    sensors:
      sensortv:
        friendly_name: "Sensor tv"
        value_template: > 
          {%- if is_state('binary_sensor.thomson', 'on') -%}
            switch.tv_thomson on
          {%- elif is_state('binary_sensor.thomson', 'off') -%}
            switch.tv_thomson off
          {%- endif -%}

Tens que usar um template, mas sem vendo o código que estás a usar não te conseguimos ajudar.

Só estou à espera de chegar a casa para a colocar de forma correcta

Vê se te ajuda o meu código:

switch:
  - platform: template
    switches:
      tvsala:
        friendly_name: TV Sala
        value_template: >-
          {% if is_state('timer.tvsala_delay', 'idle') %}
            {{ states("binary_sensor.tvsala_power_status") }}
          {% else %}
            {{ states("input_boolean.tvsala_power_status") }}
          {% endif %}
        turn_on:
          - service: broadlink.send
            data:
              host: "192.168.1.2"
              packet: "JgAcAB0dHB44HhweGx4cHR06HB0cHhwdHB8bHhwADQUAAAAAAAAAAAAAAAA="
          - service: input_boolean.turn_on
            data:
              entity_id: input_boolean.tvsala_power_status
          - service: timer.start
            entity_id: timer.tvsala_delay
        turn_off:
          - service: broadlink.send
            data:
              host: "192.168.1.2"
              packet: "JgAqAFcdDh0ODg4ODh0dDg4ODg4ODg4ODg4ODg4ODg4ODh0ODg4ODg4dHQAK0g0FAAAAAAAAAAAAAAAA"
          - service: input_boolean.turn_off
            data:
              entity_id: input_boolean.tvsala_power_status
          - service: timer.start
            entity_id: timer.tvsala_delay
        icon_template: mdi:television-classic

# tempo que demora a televisão a ligar à rede
timer:
  tvsala_delay:
    duration: '00:00:30'

# input_boolean temporário enquanto não liga completamente
input_boolean:
  tvsala_power_status:
    name: TV Sala Power Status

# Tenho um esp ligado à porta usb da televisão para saber se está ligada ou não
binary_sensor:
  - platform: mqtt
    name: tvsala_power_status
    state_topic: "tvsala/tele/LWT"
    payload_on: "Online"
    payload_off: "Offline"
    device_class: connectivity

@ricreis394, obrigado, mas no meu caso é somente as ultimas linhas que eu quero ver o que está errado que não faz o que eu quero.

Neste momento a televisão está ligada
image

Se desligar por pelo HA fica correcto.

image

mas se ligar com o comando da propria TV fica assim.
image

ou seja o switch fica errado mas o estado esse está certo.

Aquilo que eu pretendo é que haja uma função em que o estado da tv faça mudar o switch para o correcto.

(peço desculpa de ter metido 3 fotos)

Mete la aqui o código que tas a usar.

@RodolfoVieira, já o pus… está 3 ou 4 linhas acima

ok, nao tinha reparado @miruim

testa:

  - platform: template
    sensors:
      sensortv:
        friendly_name: "Sensor tv"
        value_template: "{% if is_state('binary_sensor.thomson', 'on') %}on{% else %}off{% endif %}"
        turn_on:
          service: homeassistant.turn_on
          entity_id: switch.tv_thomson
        turn_off:
          service: homeassistant.turn_off
          entity_id: switch.tv_thomson
        icon_template: mdi:television

Vou testar Rodolfo… Já digo alguma coisa

@RodolfoVieira, a dar este erro

Invalid config for [switch.template]: required key not provided @ data['switches']. Got None. (See ?, line ?). Please check the docs at https://home-assistant.io/components/switch.template/

neste momento está assim

switch:
  - platform: broadlink
    host: 192.168.1.125
    mac: '78:0f:77:b9:34:a2'
    timeout: 15
    switches:
      tv_thomson:
        friendly_name: "Tv da Sala"
        command_on: 'JgA2AIOEEUERQRFCEEIRIBEhEUERQRFBESERIRBCESARIREgESERQRFBESERIBEhEUERQREhEQANBQAA'
        command_off: 'JgA0AHh4DzwPPA88DzwPPA8eDzwPPA88Dx4PHg8eDx4PHg8eDx4PHg88Dx4PHg8eDzwPPA88D/ENBQAA'

  - platform: template
    sensors:
      sensortv:
        friendly_name: "Sensor tv"
        value_template: "{% if is_state('binary_sensor.thomson', 'on') %}on{% else %}off{% endif %}"
        turn_on:
          service: homeassistant.turn_on
          entity_id: switch.tv_thomson
        turn_off:
          service: homeassistant.turn_off
          entity_id: switch.tv_thomson
        icon_template: mdi:television      
       
binary_sensor:
  - platform: ping
    name: "Thomson"
    host: 192.168.1.64
    scan_interval: 10

Sim , e qual o resultado?

dá isto
image

switch:
  - platform: broadlink
    host: 192.168.1.125
    mac: '78:0f:77:b9:34:a2'
    timeout: 15
    switches:
      tv_thomson:
        friendly_name: "Tv da Sala"
        command_on: 'JgA2AIOEEUERQRFCEEIRIBEhEUERQRFBESERIRBCESARIREgESERQRFBESERIBEhEUERQREhEQANBQAA'
        command_off: 'JgA0AHh4DzwPPA88DzwPPA8eDzwPPA88Dx4PHg8eDx4PHg8eDx4PHg88Dx4PHg8eDzwPPA88D/ENBQAA'

sensor:

  - platform: template
    sensors:
      sensortv:
        friendly_name: "Sensor tv"
        value_template: "{% if is_state('binary_sensor.thomson', 'on') %}on{% else %}off{% endif %}"
        turn_on:
          service: homeassistant.turn_on
          entity_id: switch.tv_thomson
        turn_off:
          service: homeassistant.turn_off
          entity_id: switch.tv_thomson
        icon_template: mdi:television      
       
binary_sensor:
  - platform: ping
    name: "Thomson"
    host: 192.168.1.64
    scan_interval: 10

@miruim testa.

image

e porque nao usar o media player do smartIR como ping em vez da platform ping?
https://github.com/smartHomeHub/SmartIR/blob/master/docs/MEDIA_PLAYER.md
e depois usar no switch template usar algo tipo

  - platform: template
    switches:
      tv_sala:
        friendly_name: "Tv da sala"
        value_template: "{% if is_state('media_player.living_room_tv', 'on') %}on{% else %}off{% endif %}"
        turn_on:
          - service: broadlink.send
            data:
              host: 192.168.1.15
              packet: 
                - JgBQAAABKJMSEhISEjcSEhISEhISEhISEjcSNxISEjcSNxI3EjcSNxISEhISEhI3EhISEhISEhISNxI3EjcSEhI3EjcSNxI3EgAFGgABKEoSAAxWDQUAAAAAAAA==
        turn_off:
          - service: broadlink.send
            data:
              host: 192.168.1.155
              packet: 
                - JgBQAAABKJMSEhISEjcSEhISEhISEhISEjcSNxISEjcSNxI3EjcSNxISEhISEhI3EhISEhISEhISNxI3EjcSEhI3EjcSNxI3EgAFGgABKEoSAAxWDQUAAAAAAAA==

@Encarnacao ele quer mudar o estado do switch consoante o estado do Ping. Isso so funciona desligando o switch pelo HA de forma fisica não.

exactamente isso… O ping está sempre correcto

@miruim passa no discord para discutir este problema… se não o post vai ficar extramamente longo!

Bom pessoal, o assunto no meu caso ficou resolvido com a ajuda do @RodolfoVieira e do @Encarnacao, aos quais eu agradeço.
Assim ficou tudo a funcionar correctamente

switch:
  - platform: broadlink
    host: 192.168.1.125
    mac: '78:0f:77:b9:34:a2'
    timeout: 15


  - platform: template
    switches:
      tv_sala:
        friendly_name: "Tv da sala"
        value_template: "{% if is_state('binary_sensor.thomson', 'on') %}on{% else %}off{% endif %}"
        turn_on:
          - service: broadlink.send
            data:
              host: 192.168.1.125
              packet: 
                - JgA2AIOEEUERQRFCEEIRIBEhEUERQRFBESERIRBCESARIREgESERQRFBESERIBEhEUERQREhEQANBQAA
        turn_off:
          - service: broadlink.send
            data:
              host: 192.168.1.125
              packet: 
                - JgA0AHh4DzwPPA88DzwPPA8eDzwPPA88Dx4PHg8eDx4PHg8eDx4PHg88Dx4PHg8eDzwPPA88D/ENBQAA
                
binary_sensor:
  - platform: ping
    name: "Thomson"
    host: 192.168.1.64
    scan_interval: 10

Viva,

Estou a tentar fazer exactamente o mesmo mas estou com 2 dúvidas.

  • O campo timeout: 15 corresponde ao timout de quê?
  • O ip do binary_sensor corresponde a quê?

Estou a tentar fazer isto com uma tv que não tem wifi.
Funciona mas o estado não atualiza bem, o toogle button que surge associado ao value_template fica sempre ativo.


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


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