Scripts Python com parâmetros

Boas,

Tenho um equipamento de saídas digitais com comunicação modbus. Consigo controlar as saídas do mesmo através de um script em python que está a funcionar. A questão é que o equipamento possui 4 saídas e as saídas são controladas por um único registo, ou seja, valor = 1 saída 1 ativa, valor = 3 saída 1 e 2 ativas e assim sucessivamente nas 16 configurações possíveis.
O meu script python aceita o valor a escrever no registo por parâmetro. Ao utilizar a plataform: command_line do homeassistante com um valor fixo no parâmetro funciona corretamente:

  - platform: command_line
      lm4_relay1:
        command_on: 'python3 /config/LM4.py 3'

Em vez do valor fixo eu pretendia utilizar o valor de uma varável por exemplo:

  - platform: command_line
      lm4_relay1:
        command_on: 'python3 /config/LM4.py states(sensor.teste_saida_lm4)'

Mas o script não funciona aparecendo o seguinte erro " Command failed: python3 /config/LM4.py states (sensor.teste_saida_lm4)
11:09 components/switch/command_line.py (ERROR)"

Alguém me pode ajudar?
Obrigado

Sei que não foi bem essa a pergunta, mas o Home Assistant tem uma integração para modbus… Porque não usá-la?

Eu utilizo essa função para ler valores dos equipamentos e para escrever noutros equipamentos, neste equipamento não consigo escrever múltiplos registos utilizando o homeassistant

@ruiazevedo
Quando publicares código deves sublinhar o texto que queres transformar em código e clicar no icone </>. Deverá existir um espaço antes e outro depois do bloco de código para que funcione correctamente. O código em Yaml é muito sensível aos espaçamentos e sem o código devidamente formatado não te poderemos ajudar. Além disso, existem regras no fórum que devem ser cumpridas e que podes ler nos nossos Termos do Serviço/Regras e na FAQ .

Vê um exemplo:

Já corrigi, peço desculpa pelo lapso

Não tenho a certeza se funciona mas no command_on usa:

command_on: 'python3 /config/LM4.py {{states.sensor.teste_saida_lm4.state}}'

dessa forma o que aparece no python é: {{states.sensor.teste_saida_lm4.state}}

Hummm… Lembro-me de já ter tido esse problema e de o ter resolvido mas não me lembro agora como…

@ruiazevedo vê lá se isto ajuda:

Infelizmente não resolveu, continuo com o mesmo problema


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


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