# Base de Dados MariaDB - como criar sensor para retornar dados

**URL:** https://forum.cpha.pt/t/base-de-dados-mariadb-como-criar-sensor-para-retornar-dados/8378
**Category:** Dúvidas
**Created:** [8 Setembro , 2021 17:10 UTC](https://forum.cpha.pt/t/base-de-dados-mariadb-como-criar-sensor-para-retornar-dados/8378 "2021-09-08T17:10:16Z")
**Posts on this page:** 9
**Page:** 1

<div class="post-metadata">

### Author: ![Joao\_Serrasqueiro](https://forum.cpha.pt/user_avatar/forum.cpha.pt/joao_serrasqueiro/32/7918_2.png) [@Joao\_Serrasqueiro](https://forum.cpha.pt/u/Joao_Serrasqueiro)
#### Post date: [8 Setembro , 2021 17:10 UTC](https://forum.cpha.pt/t/base-de-dados-mariadb-como-criar-sensor-para-retornar-dados/8378/1 "2021-09-08T17:10:16Z")

</div>

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 🙂 uma vez que o SQL não é o meu forte…

---

<div class="post-metadata">

### Author: ![j\_assuncao](https://forum.cpha.pt/user_avatar/forum.cpha.pt/j_assuncao/32/3_2.png) [@j\_assuncao](https://forum.cpha.pt/u/j_assuncao)
#### Post date: [9 Setembro , 2021 07:08 UTC](https://forum.cpha.pt/t/base-de-dados-mariadb-como-criar-sensor-para-retornar-dados/8378/2 "2021-09-09T07:08:40Z")

</div>

E esses sensores vão servir para quê?

---

<div class="post-metadata">

### Author: ![Joao\_Serrasqueiro](https://forum.cpha.pt/user_avatar/forum.cpha.pt/joao_serrasqueiro/32/7918_2.png) [@Joao\_Serrasqueiro](https://forum.cpha.pt/u/Joao_Serrasqueiro)
#### Post date: [9 Setembro , 2021 07:38 UTC](https://forum.cpha.pt/t/base-de-dados-mariadb-como-criar-sensor-para-retornar-dados/8378/3 "2021-09-09T07:38:50Z")

</div>

Pretendo comparar consumos de energia nos dias anteriores ao atual

---

<div class="post-metadata">

### Author: ![bbaixo](https://forum.cpha.pt/user_avatar/forum.cpha.pt/bbaixo/32/4155_2.png) [@bbaixo](https://forum.cpha.pt/u/bbaixo)
#### Post date: [9 Setembro , 2021 12:33 UTC](https://forum.cpha.pt/t/base-de-dados-mariadb-como-criar-sensor-para-retornar-dados/8378/4 "2021-09-09T12:33:37Z")

</div>

Queres fazer isso em YAML ou em NodeRed?

Eu uso NR.

---

<div class="post-metadata">

### Author: ![Joao\_Serrasqueiro](https://forum.cpha.pt/user_avatar/forum.cpha.pt/joao_serrasqueiro/32/7918_2.png) [@Joao\_Serrasqueiro](https://forum.cpha.pt/u/Joao_Serrasqueiro)
#### Post date: [9 Setembro , 2021 13:08 UTC](https://forum.cpha.pt/t/base-de-dados-mariadb-como-criar-sensor-para-retornar-dados/8378/5 "2021-09-09T13:08:58Z")

</div>

Yaml. Não estou familiarizado com NR 😁

---

<div class="post-metadata">

### Author: ![bbaixo](https://forum.cpha.pt/user_avatar/forum.cpha.pt/bbaixo/32/4155_2.png) [@bbaixo](https://forum.cpha.pt/u/bbaixo)
#### Post date: [9 Setembro , 2021 16:16 UTC](https://forum.cpha.pt/t/base-de-dados-mariadb-como-criar-sensor-para-retornar-dados/8378/6 "2021-09-09T16:16:12Z")

</div>

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

Vê este [tópico](https://forum.cpha.pt/t/como-criar-uma-base-de-dados-leve-no-ha-com-historico-e-apresentacao-grafica/4888) que tem a solução que procuras.

---

<div class="post-metadata">

### Author: ![Joao\_Serrasqueiro](https://forum.cpha.pt/user_avatar/forum.cpha.pt/joao_serrasqueiro/32/7918_2.png) [@Joao\_Serrasqueiro](https://forum.cpha.pt/u/Joao_Serrasqueiro)
#### Post date: [9 Setembro , 2021 16:24 UTC](https://forum.cpha.pt/t/base-de-dados-mariadb-como-criar-sensor-para-retornar-dados/8378/7 "2021-09-09T16:24:58Z")

</div>

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

```auto
 - 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'

```

---

<div class="post-metadata">

### Author: ![vpnobrega](https://forum.cpha.pt/user_avatar/forum.cpha.pt/vpnobrega/32/5112_2.png) [@vpnobrega](https://forum.cpha.pt/u/vpnobrega)
#### Post date: [9 Setembro , 2021 20:33 UTC](https://forum.cpha.pt/t/base-de-dados-mariadb-como-criar-sensor-para-retornar-dados/8378/8 "2021-09-09T20:33:14Z")

</div>

> [@Joao\_Serrasqueiro](#):
>
> `SELECT * FROM`

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:

 ![image](https://forum.cpha.pt/uploads/default/original/2X/6/6ba2dd03f909ac7df176976dfae4c5ae23740477.png)

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.

 ![image](https://forum.cpha.pt/uploads/default/original/2X/b/bfa82c50ef1f1b2ec5265c9def53e92e9660cfe6.png)

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

 ![image](https://forum.cpha.pt/uploads/default/original/2X/f/ff4fcf7e52c28e5c91c7dc5edf77d7bab951c720.png)

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.

---

<div class="post-metadata">

### Author: ![Joao\_Serrasqueiro](https://forum.cpha.pt/user_avatar/forum.cpha.pt/joao_serrasqueiro/32/7918_2.png) [@Joao\_Serrasqueiro](https://forum.cpha.pt/u/Joao_Serrasqueiro)
#### Post date: [10 Setembro , 2021 07:59 UTC](https://forum.cpha.pt/t/base-de-dados-mariadb-como-criar-sensor-para-retornar-dados/8378/9 "2021-09-10T07:59:45Z")

</div>

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:

```auto
  - 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'

```
