Base de Dados MariaDB - como criar sensor para retornar dados

Boa tarde.
Estava a utilizar a InfluxDB, mas devido a um “crash” no meu HA e a necessidade de refazer algumas integrações, decidi instalar a MariaDB. Contudo, não sei como configurar os sensores para retornar os dados guardados na BD. Alguma dica seria bem vinda :slight_smile: uma vez que o SQL não é o meu forte…

E esses sensores vão servir para quê?

Pretendo comparar consumos de energia nos dias anteriores ao atual

Queres fazer isso em YAML ou em NodeRed?

Eu uso NR.

Yaml. Não estou familiarizado com NR :grin:

Já não tenho o exemplo qeu eu possuia em YAML (e é mt mais complexo IMHO).

Vê este tópico que tem a solução que procuras.

Com este código obtenho a última atualização. Como posso modificar para obter a última atualização entre datas e horas?

 - platform: sql
    db_url: mysql://homeassistant:********@core-mariadb/homeassistant?charset=utf8mb4
    scan_interval: 60
    queries:
      - name: consumo_energia_d_m_trial
        query: "SELECT * FROM states WHERE entity_id='sensor.daily_energy' GROUP BY state ORDER BY last_changed DESC LIMIT 1;"
        column: 'state'
        unit_of_measurement: 'kWh'

Para teres uma coisa à maneira, aconselho a criares uma tabela para registar o consumo diário dos teus equipamentos.
Eu fiz isso, e diariamente, registo o consumo de todos os meus devices com este flow:

Depois tenho vários flows a criar/atualizar sensores com o consumo diário do dia atual, dia anterior, semana atual e anterior, mes atual e mes anterior.

No HA, tenho um card para mostrar os dados do sensor em forma de gráfico.

Isto permite-te ter uma solução completa e mais flexivel para o que pretendes fazer.
Claro que é preciso ter conhecimentos de mysql para criar a tabela e desenvolver as queries que traga os dados que pretendas.

Agradeço o feedback. No entanto, com a função energy agora disponível consigo ter a informação de consumos necessária.

Consegui obter a informação que pretendia com este código:

  - platform: sql
    db_url: mysql://homeassistant:********@core-mariadb/homeassistant?charset=utf8mb4
    scan_interval: 60
    queries:
      - name: consumo_energia_d_m_trial
        query: "SELECT * FROM states WHERE entity_id='sensor.daily_energy' AND state != 'unknown' AND last_changed <= DATE_SUB(now(), INTERVAL 1500 MINUTE) AND last_changed >= DATE_SUB(now(), INTERVAL 1502 MINUTE) ORDER BY state DESC LIMIT 1;"
        column: 'state'
        unit_of_measurement: 'kWh'

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


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