Como criar uma base de dados leve no HA com histórico e apresentação gráfica

Supervisor -> Add-on store -> (seleccionas o add-on) -> Configuration -> Em baixo na porta, metes a correspondência

sim, mas o que la ponho? “enable”?

metes a porta que queres, normalmente a mesma, nesse caso 3306

1 Curtiu

Boas Pessoal,

Parabéns pelo trabalho !

No meu caso primero erro, não cria a Base de dados.

Podem ajudar Pf

Qual foi a base de dados que criaste?
Mostra lá o código que tens no shell_command daily_insert_mysql e o que tens na config do addon

1 Curtiu
shell_command:
  daily_insert_mysql: "python3 /config/py_scripts/daily_insert_mysql.py --host=core-mariadb --user=homeassistant --password=xptoxpto--db=custom_data --table={{ table }} --value={{ value }} {{ '--col='+column if column is defined }}"
  python_install_pymysql_dependency: "pip install pymysql"
  
automation:
  - alias: "Instala a dependencia no arranque do ha"
    initial_state: true
    trigger:
      - platform: homeassistant
        event: start
    action:
      - service: shell_command.python_install_pymysql_dependency
      
  - alias: "Registar o consumo diário de energia"
    initial_state: true
    trigger:
      - platform: state
        entity_id: sensor.shelly_em_power_energy_today
    action:
      - service: shell_command.daily_insert_mysql
        data_template:
          table: consumo_energia
          value: >
            {{ trigger.to_state.state }}
          column: >
            {% if trigger.entity_id == "sensor.shelly_em_power_energy_today" %}
              consumo_energia_diario
            {% endif %}
databases:
  - homeassistant
logins:
  - username: homeassistant
    password: xptoxpto
rights:
  - username: homeassistant
    database: homeassistant

Assumo que não estejas a usar a DB do Home Assistant no MariaDB. No entanto, apesar de ser possível com essa configuração, não recomendo de todo usares o nome homeassistant como nome da base de dados. Porque se mais tarde quiseres colocar o HA a usar o MariaDB pode gerar-te confusão.

Se reparares no código do shell_command, indicas para escrever na base de dados chamada custom_data, mas não a tens definida na configuração do addon. Isso foi explicado no tópico

Deves criar uma base de dados com o nome custom_data e dar as devidas permissões ao utilizar também criado, assim:

databases:
  - custom_data
logins:
  - username: homeassistant
    host: '%'
    password: xptoxpto
rights:
  - username: homeassistant
    host: '%'
    database: custom_data
    grant: ALL PRIVILEGES ON

Noto também que no shell_command falta-te um espaço logo a seguir à password

ola pessoal…

nao estou a encontrar o programa heidisql…alguem que me possa indicar o sitio

acabei por instalar phpmyadmin…faz o mesmo certo?

ja fiz um pequeno teste…mas nao esta a registar valor, nem tabelas…mas tb nao me está aparecer nenhum erro :smirk: :roll_eyes:


Vi agora nos log da MariaDB…

Quanto ao phpmyadmin faz o mesmo sim

Deves ter configurado mal as permissões no addon

ja resolvi…eram as passwords que estavam erradas…

ja tenho valores na base de dados, e ja tenho o sensor que vai buscar os valor à base de dados… mas nao estou a conseguir mostrar os valor …

isto nao funciona…pois nao mostra valores…

sensor:

  - platform: sql
    db_url: mysql://teste:teste@core-mariadb/custom_data
    queries:
      - name: consumo_electricidade_bastidor
        query: >-
          SELECT * FROM `consumo_energia_diaria_Bastidor`;
        column: "value"

para escrever na DB:


  - alias: "Registo Diario - Consumo do Bastidor"
    initial_state: true
    trigger:
      - platform: state
        entity_id: sensor.sonoff_hoje
    action:
      - service: shell_command.daily_insert_mysql
        data_template:
          table: consumo_energia_diaria_Bastidor 
          value: >
            {{ trigger.to_state.state }}
          column: >
            {% if trigger.entity_id == "sensor.sonoff_hoje" %}
              consumo_energia_diaria_bastidor
            {% endif %}

[sensor.consumo_electricidade_bastidor]

state : unknown

friendly_name: consumo_electricidade_bastidor

O código para escrever na base de dados não interessa visto que está a registar.
Quanto ao sensor, estás a fazer um select all e não existe nenhuma coluna com o nome value, podes experimentar correr essa query no phpmyadmin para perceberes o que estás a receber.
No entanto para passar os valores para o HA tem de ser de forma diferente, como está no tutorial e não select all

ja tenho 2 dias na base de dados…

no sensor só me aparece um…mas acredito que falte algo na query…
mas mesmo assim só com um valor nao me aparece nada no grafico.

sensor:

  • platform: sql
    db_url: mysql://teste:teste@core-mariadb/custom_data
    queries:
    • name: consumo_electricidade_Bastidor
      query: SELECT * FROM consumo_energia_diaria_Bastidor ORDER BY consumo_energia_diaria_Bastidor.date DESC;
      column: “consumo_energia_diaria_bastidor”

card:

chart: bar
custom_options:
  showLegend: false
data:
  datasets:
    - backgroundColor: '${states["sensor.consumo_electricidade_bastidor"].attributes.colors}'
      borderWidth: 1
      data: '${states["sensor.consumo_electricidade_bastidor"].attributes.data}'
      label: Eletricidade
  labels: '${states["sensor.consumo_electricidade_bastidor"].attributes.labels}'
entity_row: false
options:
  scales:
    yAxes:
      - ticks:
          beginAtZero: true
  title:
    display: true
    text: |
      ${"Consumo Diario - Bastidor"} 
type: 'custom:chartjs-card'

a tua query não está bem, não fizeste como o tutorial explica
para poderes usar a informação da query no gráfico, tens de obter em formato de lista. Vê o exemplo da query exposta no tutorial

Boa noite!

Excelente tópico.

Estou a ter problemas quando tento aceder à mariadb através do Heidisql.

Dá-me erro e diz que não consegue aceder a MySQL server no raspberry pi (deduzo que é este o IP que tenho que colocar certo?).

Alguma ideia do que pode estar a acontecer?

Obrigado,

Daniel Fonseca

Bom dia!!

Abriste a porta do mariadb? Por defeito fica a null, tens de meter 3306

Viva.

Era isso mesmo e não sei como me escapou. Verificou dezenas de vezes!

Agora já lê a base de dados, mas não está a escrever nada (percebo muito pouco disto…)

Fica um printscreen do ficheiro YML que criei (não consigo criar YAML no notepad++. É a mesma coisa?) e um print screen do Heidi para ver se me ajudam a descobrir o que está mal.

Obrigado pela paciência!

Daniel Fonseca

Altera a extensão para yaml em vez de yml, poderá estar mesmo aí, não tenho a certeza mas possivelmente o HA não o lê :man_shrugging:

Viva,

não encontro maneira de o fazer.

No NOTEPAD++ parece que é a mesma coisa, mas grava sempre em YML e não consigo gravar em YAML.

Alguma dica?

Obg

Daniel Fonseca

Instala o VScode e edita directamente no HA.


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


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