Eles já não usam aspx n sei como tens o te a funcar! tens de me exolicar o site mudou!
Desculpem a ausência. Isto foi uma brincadeira que o @RodolfoVieira me pediu. Eu já não uso isto há muito tempo. Vou instalar e ver o que se passa. Já dou notícias.
Boa. Passaram a usar ARCgis e uma API que devolve JSON. Isto tem potencial
https://precoscombustiveis.dgeg.gov.pt/api/PrecoComb/GetDadosPostoMapa?id=65949&f=json
https://precoscombustiveis.dgeg.gov.pt/api/PrecoComb/GetDadosPostoMapa?id=65948&f=json
https://precoscombustiveis.dgeg.gov.pt/api/PrecoComb/GetDadosPostoMapa?id=65947&f=json
https://precoscombustiveis.dgeg.gov.pt/api/PrecoComb/GetDadosPostoMapa?id=65072&f=json
https://precoscombustiveis.dgeg.gov.pt/api/PrecoComb/GetDadosPostoMapa?id=66099&f=json
Isto vai lá com o RESTfull no configuration.yaml.
rest:
- scan_interval: 60
resource: https://precoscombustiveis.dgeg.gov.pt/api/PrecoComb/GetDadosPostoMapa?id=65949&f=json
sensor:
- name: "Dados do posto 65949"
json_attributes_path: "$.resultado"
value_template: "OK"
json_attributes:
- "Nome"
- "Marca"'
Verifiquem a configuração e, em vez de fazer restart ao home-assistant, basta no Server Controlo selecionar “REST entities and notify services”.
eheheh Só falta ver como faço para gerar um item por cada tipo de combustivel.
Estou a testar aqui https://jqplay.org/ com o JSON obtido do próprio posto nos URL acima.
Não tens de pedir desculpa o projecto está tudo top. isto dá me imenso jeito porque tenho uma automação que envio msg ao telegram e eles responde o preço dos postos respectivos aos preço a que está o combustível dá imenso jeito!
bem… algumas voltas depois, desisti de usar o rest: e passei a usar o sensor platform: rest. É parvo, mas funciona…
No exemplo abaixo, a primeira posição ([0]) do posto 66099 é o Gasóleo Simples, e a terceira ([2]) é a gasolina sem chumbo 95.
Inserindo na secção sensor a configuração abaixo, devolve o preço nesse posto:
sensor:
- platform: rest
resource: https://precoscombustiveis.dgeg.gov.pt/api/PrecoComb/GetDadosPostoMapa?id=66099&f=json
name: "fuel_posto_66099_bp_montijo_gasoleo_simples"
scan_interval: 3600
value_template: '{{ float(value_json.resultado.Combustiveis[0].Preco | regex_replace(find=" €/litro", replace="", ignorecase=True) | regex_replace(find=",", replace=".", ignorecase=True),default) }}'
unit_of_measurement: '€'
- platform: rest
resource: https://precoscombustiveis.dgeg.gov.pt/api/PrecoComb/GetDadosPostoMapa?id=66099&f=json
name: "fuel_posto_66099_bp_montijo_gasolina_95"
scan_interval: 3600
value_template: '{{ float(value_json.resultado.Combustiveis[2].Preco | regex_replace(find=" €/litro", replace="", ignorecase=True) | regex_replace(find=",", replace=".", ignorecase=True),default) }}'
unit_of_measurement: '€'
Não esquecer de no Server Controlo selecionar “REST entities and notify services” para recarregar os valores.
O que é feito no value_template:
- float: Converte o resultado do value_json num décimal
- | regex_replace: substitui o texto " €/litro" e “,”
Depois de costumizar o icon (mdi:fuel) e o nome das entidades fica com alguma apresentação.
Thanks, tás mesmo valente.
Fazendo uso dessa forma ficou perfeito! Só tem que atentar as posições do combustivel, que pode variar de bomba para bomba.
Fiz assim no node red, e sempre que criar um sensor que comece com fuel ele já adiciona à mensagem enviada ao telegram
Claro! Não sei se estará certo assim, mas diga se conseguiu:
[{"id":"5826d8eb4440a1cc","type":"ha-get-entities","z":"e88d503894cd9520","name":"Todos postos","server":"abc975db.c3cef8","version":0,"rules":[{"property":"entity_id","logic":"starts_with","value":"sensor.fuel_","valueType":"str"}],"output_type":"split","output_empty_results":false,"output_location_type":"msg","output_location":"payload","output_results_count":1,"x":370,"y":80,"wires":[["9f33c447e3c56f58"]]},{"id":"9f33c447e3c56f58","type":"template","z":"e88d503894cd9520","name":"Formatação","field":"payload","fieldType":"msg","format":"handlebars","syntax":"mustache","template":"{{payload.attributes.friendly_name}}: {{payload.state}} {{payload.attributes.unit_of_measurement}}","output":"str","x":590,"y":80,"wires":[["cf0d19e209fbf3d6"]]},{"id":"cf0d19e209fbf3d6","type":"join","z":"e88d503894cd9520","name":"","mode":"auto","build":"string","property":"payload","propertyType":"msg","key":"topic","joiner":"\\n","joinerType":"str","accumulate":false,"timeout":"","count":"6","reduceRight":false,"reduceExp":"","reduceInit":"","reduceInitType":"num","reduceFixup":"","x":770,"y":80,"wires":[["9e64f418948f316c"]]},{"id":"5c3d6af80b88322e","type":"telegrambot-notify","z":"e88d503894cd9520","name":"","bot":"b2666c6c68168d2f","chatId":"","message":"","parseMode":"","x":1160,"y":80,"wires":[]},{"id":"33e70daeb7b90177","type":"telegrambot-command","z":"e88d503894cd9520","name":"/combustivel","bot":"b2666c6c68168d2f","command":"/combustivel","commandType":"str","commandCase":false,"x":150,"y":80,"wires":[["5826d8eb4440a1cc"]]},{"id":"9e64f418948f316c","type":"function","z":"e88d503894cd9520","name":"array to string","func":"msg.payload = msg.payload.join(\"\\n\")\nreturn msg;","outputs":1,"noerr":0,"initialize":"","finalize":"","libs":[],"x":960,"y":80,"wires":[["5c3d6af80b88322e"]]},{"id":"abc975db.c3cef8","type":"server","name":"Home Assistant","version":2,"addon":true,"rejectUnauthorizedCerts":true,"ha_boolean":"y|yes|true|on|home|open","connectionDelay":true,"cacheJson":true,"heartbeat":false,"heartbeatInterval":30},{"id":"b2666c6c68168d2f","type":"telegrambot-config","botname":"BotName","usernames":"","chatIds":"chatId1, chatId2","pollInterval":"300"}]
Lembrando que tens que ter configurado o Telegram préviamente
Obrigado Ivan.
Top.
Boa ideia sim.
a funcar … thanks …
Muito obrigado!
Deixo o meu cenário, já agora usei o custom:auto-entities para ordenar os preços do menor para o maior.
Deixa ver se percebo: vocês falam ou escrevem com o vosso Home-assistant através do Telegram?
Eu escrevo /combustivel no meu bot no telegram e ele responde com os valores obtidos pela automação, exatamente como na figura que postei acima. Era isso que queria perceber ou entendi mal?
Era mesmo isso. Eu falo com a Siri. Tenho tudo integrado no Homekit.
Ah sim, normalmente eu falo pela alexa. Mas para essa cena dos combustíveis, acho que da mais jeito o telegram. Imagina a alexa falando durante 2 minutos os preços todos? haha
Sim, para mandar abrir o portão, ligar/desligar o alarme, pedir imagens de cctv, etc. Dá jeito
Olá .
É possível partilhar como é que fizeste para ordenar os valores?
Obrigado
Olá
Usei um cartão personalizado do HACS auto-entities
https://github.com/thomasloven/lovelace-auto-entities
O código de um dos cartões
type: custom:auto-entities
card:
type: entities
title: Gasolina Simples 95
filter:
include:
- entity_id: /sensor\..*_gasolina_simples_95/
sort:
method: state
numeric: true
reverse: false