Como publicar os preços dos combustíveis no seu Home Assistant

Não é esse API. Estou a referir-me a uma entrada chamada api: que fica ao mesmo nível do http:

Ui… é isto?

@ - A ultima linha adicionei agora mesmo… após a tua dica. É assim que tem que estar?

############
# INCLUDES #
############
group: !include groups.yaml
zone: !include zones.yaml
input_select: !include input_select.yaml
automation: !include automation.yaml
shell_command: !include shell_commands.yaml
proximity: !include_dir_merge_named proximity
script: !include_dir_merge_named script

Antes da api_password pões só isto api:

Sem api não podes escrever nada.

Se isto não funcionar envia-me o debug.txt que o script gera com a opção -d

Mete assim:

......

api:

############
# INCLUDES #
############
group: !include groups.yaml
zone: !include zones.yaml
input_select: !include input_select.yaml
automation: !include automation.yaml
shell_command: !include shell_commands.yaml
proximity: !include_dir_merge_named proximity
script: !include_dir_merge_named script

Ponto de situação:

  • API adicionado ao configuration.yaml
  • Todos os códigos Cul sem o -K
  • Campos de configuração no script actualizados.
  • Código do HA do segundo post do @RodolfoVieira
  • Hass.io 0.68.1
  • Script na pasta config/script

Resultados:

  •     2018-05-13 16:25:47 ERROR (MainThread) [homeassistant.components.shell_command] Error running command: `bash /config/script/fuel.info.sh -f "170157"`, return code: 7
     NoneType: None

Envia-me um código de teamviewer por private que eu vou aí resolver-te isso.

2 Curtiram

Enviado :wink:

Obrigado :wink:

Obrigado Álvaro… impecável :wink:
Já trabalha :slight_smile:

1 Curtiu

Boas pessoal eu também não consigo colocar a parte do fuel a aparecer nas entitites.
Quando tento correr o comando : curl -k -s -X GET -H “x-ha-access: PASS” -H “Content-Type: application/json” localhost:8123/api/
Dá o erro : 401: Unauthorized%

Se correr apenas o script automático o código de erro é : [homeassistant.components.shell_command] Error running command: bash /config/script/fuel.info.sh -f "170157", return code: 127

Link Config : *******************************
Link Fuel.sh : ******************************

******** Desde já obrigado por não obter respostas ******
Cumprimentos,

@Pedro removi os teus links que colocaste. Continhas la informações pessoais, tens que ter mais cautela a publicar código.

1 Curtiu

Obrigado @RodolfoVieira, mas apenas tinha a directoria e os dados de user e pass não são dados reais, apenas me esqueci do nome das directórias.
Obrigado mais uma vez vou alterar.

Boas,

Eu estava a tentar personalizar o nome pelo customize.yaml mas não estava a funcionar.
Alterei o script e fico assim:
bombas

Alteração no script:
Antigo Linha 112:

curl -s -k -X POST -H "x-ha-access: $HAPASSWORD" \
                  -H "Content-Type: application/json" \
                  -d '{"state": "'$FUELPRICE'", "attributes": {"unit_of_measurement": "€", "icon": "mdi:gas-station", "friendly_name":"'"$FRIENDLYNAME"'"}}' \
                  $PROTOCOL://$HOST_IP_OR_NAME:$PORT_NUMBER/api/states/sensor.fuel_$SENSOR >/dev/null 2>&1

O que alterei:

gas_simples='Gasoleo simples'
if [[ $FRIENDLYNAME = *$gas_simples* ]]
then
  posto=$(echo "$FRIENDLYNAME" | cut -d'(' -f 2 | cut -d')' -f 1)
  curl -s -k -X POST -H "x-ha-access: $HAPASSWORD" \
  -H "Content-Type: application/json" \
  -d '{"state": "'$FUELPRICE'", "attributes": {"unit_of_measurement": "€", "icon": "mdi:gas-station", "friendly_name":"'"$posto"'"}}' \
  $PROTOCOL://$HOST_IP_OR_NAME:$PORT_NUMBER/api/states/sensor.fuel_$SENSOR >/dev/null 2>&1
else
  curl -s -k -X POST -H "x-ha-access: $HAPASSWORD" \
  -H "Content-Type: application/json" \
  -d '{"state": "'$FUELPRICE'", "attributes": {"unit_of_measurement": "€", "icon": "mdi:gas-station", "friendly_name":"'"$FRIENDLYNAME"'"}}' \
  $PROTOCOL://$HOST_IP_OR_NAME:$PORT_NUMBER/api/states/sensor.fuel_$SENSOR >/dev/null 2>&1
fi

A alteração que fiz só é para o gasoleo simples. Mas se quiserem de um forma geral digam.

fixe @ricain. tens a automacao para carregar os valores quando reinicias o HA a funcionar? há malta que essa parte não funciona. A mim está a funcionar bem…

Sim tenho, copiei do que meteste e funciona a primeira :wink:

1 Curtiu

Boas, estou com algum erro no script pois aparece-me o seguintes quando corro o script no putty: fuel.info.sh: linha 67: .data: Permissão negada`

No HA tambem me dá erro: Error running command: bash ./home/homeassistant/.homeassistant/scripts/fuel.info.sh -f "170280", return code: 1`

Estou a usar a versão 2.1.5 do scriptm adicionei o “-k” após “curl”, a API funciona e o user homeassistant foi criado para o HA no ubuntu 16.04.
Como conseguigam resolver o problema das permissões?

Na semana passada depois de termos falado tive um azar e aproveitei para instalar o HA num novo cartão e passar apenas as configs HA para o novo e mesmo assim tou com o mesmo problema, apenas executa manualmente… já tentei de tudo e não corre automaticamente

Passa as permissões para 777 e experimenta criar a directiva whitelist_external_dirs (está explicado mais acima) com a pasta onde tens o teu script.

Podes verificar as permissões do diretório onde estás a executar usando a opção -d e verificando se ele criou o ficheiro debug.txt.

Também podes verificar se tens api: no teu configuration.yaml.

Não te aconselho a dar permissões 777 em lado nenhum do teu sistema. Isso quer dizer que qualquer utilizador que saiba onde encontrar o ficheiro o pode ler e alterar.

Depois não se esqueçam de retirar estás permissões. Ficheiros com dados de acesso (username e password) só devem ter permissões para o próprio user.

Sim, as permissões 777 devem ser usadas apenas temporariamente para efeitos de teste e as permissões originais devem ser imediatamente repostas.


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


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