Já estava e ainda estou a alterar:
1º base de dados - criação de mais campos
2º alteração da automação
Mais daqui a pouco testo e darei feedback
thanks
Já estava e ainda estou a alterar:
1º base de dados - criação de mais campos
2º alteração da automação
Mais daqui a pouco testo e darei feedback
thanks
Viva,
Estou aqui com um dúvida/oportunidade:
Fiz a seguinte automação p/ carregar o valor de 3 entidades p/ a base de dados ao mesmo tempo:
- alias: Actualizar dados energia a cada min
trigger:
- platform: time_pattern
minutes: "/1"
action:
- service: shell_command.daily_insert_mysql
data_template:
table: tbl_contador_energia
value: >
{{ (now().strftime("%s") | int ) | timestamp_custom("%Y-%m-%d %H:%M:%S", false) }}
column: date
- service: shell_command.daily_insert_mysql
data_template:
table: tbl_contador_energia
value: >
{{ states.sensor.qe_fase_ct_power.state | float | round (2) }}
column: qe_fase_ct_power
- service: shell_command.daily_insert_mysql
data_template:
table: tbl_contador_energia
value: >
{{ states.sensor.qe_fase_ct_voltage.state | float | round (2) }}
column: qe_fase_ct_voltage
- service: shell_command.daily_insert_mysql
data_template:
table: tbl_contador_energia
value: >
{{ states.sensor.qe_fase_ct_current.state | float | round (2) }}
column: qe_fase_ct_current
Os dados são carregados na mariaDB e ficam com a seguinte estrutura:
Identifico dois problemas:
{{ (now().strftime("%s") | int ) | timestamp_custom("%Y-%m-%d %H:%M:%S", false) }}
obtenho isto (o que está correto):
mas não é o que passa para a base de dados
Estrutura da tabela:
Se acharem por bem, posso abrir um tópico para este tema
Obg
O script criado foi feito para funcionar com uma estrutura de tabela especifica. A estrutura que publicas não está correta, foste tu que a criaste manualmente ou deixaste o script criá-la?
date
deveria ter o tipo de DATE
(não suporta horas) e deveria ser Chave primária
Assim para cada dia só tens 1 linha em vez de várias como está no teu exemplo.
Quanto à automação, porque é que fazes o trigger por cada minuto em vez de fazeres o trigger cada vez que o estado altera de valor?
Viva Ricardo,
Estou em fase de testes, aproveitando o vosso excelente trabalho.
Entretanto e após a minha publicação anterior consegui resolver o tema das seguinte forma:
`date` DATE NOT NULL
`date` DATETIME NOT NULL,
(dt.strftime("%Y-%m-%d"), args.value, args.value),
(dt.strftime("%Y-%m-%d %H:%M"), args.value, args.value)
A automação está a correr min a min pq eu quero guardar os dados a cada 5 min (como estou em testes, é para poder avaliar a evolução do tema de uma forma mais rápida).
O meu objetivo final, é guardar os dados das leituras do meu contador 3EM, de 5 de 5 min numa base de dados que será o meu histórico com todas as variáveis que o meu contador permite.
A estrutura da tabela que eu apresentei foi criada automaticamente pelo binómio automação que apresento e pelo scrip disponibilizado.
Entretanto, já tenho tudo operacional:
- alias: Actualizar dados energia a cada 5 mins
trigger:
- platform: time_pattern
minutes: "/5"
action:
- service: shell_command.daily_insert_mysql
data_template:
table: tbl_contador_energia
value: >
{{ (now().strftime("%s") | int ) | timestamp_custom("%Y-%m-%d %H:%M", false) }}
column: date
- service: shell_command.daily_insert_mysql
data_template:
table: tbl_contador_energia
value: >
{{ states.sensor.qe_fase_ct_power.state | float | round (2) }}
column: qe_fase_ct_power
- service: shell_command.daily_insert_mysql
data_template:
table: tbl_contador_energia
value: >
{{ states.sensor.qe_fase_ct_voltage.state | float | round (2) }}
column: qe_fase_ct_voltage
- service: shell_command.daily_insert_mysql
data_template:
table: tbl_contador_energia
value: >
{{ states.sensor.qe_fase_ct_current.state | float | round (2) }}
column: qe_fase_ct_current
Agradeço a disponibilidade
Este conceito foi para evitar ter uma base de dados enorme quando apenas é preciso apenas 1 valor para o dia inteiro. A alteração que fizeste, acaba por sobrecarregar mais a base de dados, para isso tens outras alternativas como por exemplo o InfluxDB que tem boa integração com o HA
Vou espreitar o InfluxDB.
Obg pela dica.
Bom dia,
Uma questão simples (ou não).
É possível aceder à BD mariaDB a partir de um pc que esteja na mesma rede do HA?
Sim, e isso é explicado no tópico através do HeidiSQL
ups… meti água… obg Ricardo.
e é possível aceder a partir do exterior (via duckdns)?
Tudo é possível desde que abras as portas do teu router. Mas isso pode conprometer a segurança.
O melhor será mesmo teres vpn para a tua rede
https://gyazo.com/d200b71cee11098e5b479ed1a0db7971
Este comando deveria ser possivel executar pelo terminal do HA?
python3 /config/py_scripts/daily_insert_mysql.py --host=core-mariadb --user=xxx --password=xxx --db=custom_data --table=horas_luzes --value=2 --col=luzhyperion
Tendo alterado o user e password claro.
É que no sensor das horas como o do exemplo, no HeidiSQL tenha varios valores oa longo dos dias, mas no HA o sensor aparece em estado “unknown”.
Sim, deveria funcionar desde que estejas dentro do container do HA. Como estás a aceder à linha de comandos?
Podes fazer hostname
para teres a certeza qual container estás dentro. Se entrares via addon ssh, não entras dentro do container do HA diretamente, mas sim do container do SSH
Confirma com o comando acima
Estou dentro do addon ssh. Ao fazer hostname dá-me core-ssh…
Também fiz um script para testar e correr este shell_command e dá-me:
https://gyazo.com/987ef9d99d04fecc1103bd5a31e4660b
na linha de comandos, a tal do ssh deves conseguir entrar dentro do container do HA, experimenta docker exec -it homeassistant bash
Dá-me: docker: command not found
.
Mas este shell command, deveria correr sem problemas e sem faze-lo por aqui? Ou se não conseguir fazer por aqui nunca na vida vai dar?
Pois, não dá para aceder então, pelo menos dessa forma
O shell_command está a correr, pode estar a dar um erro não sei porquê, o erro que dá não é passado para os logs do HA por isso não dá para ver assim. Tem mesmo de ser pelo container…
Então como é que posso contornar isto para ficar com acesso às horas das luzes ligadas?
Qual é o método de instalação que usaste para o HA? Docker ou sistema operativo home assistant?
Segui o tutorial aqui do forum para instalar em nuc com proxmox e Ubunto server
Podes passar pelo discord para falarmos melhor?
Copyright © 2017-2021. Todos os direitos reservados
CPHA.pt - info@cpha.pt