Desculpa a minha ignorância, não estou a conseguir ainda tomar conta deste assunto e o meu tempo tem sido mesmo muito curto…
Basta este ‘total’ ou tem de ser os outros?
Já me aparece assim, não sei se estara correto…
Obrigado
Desculpa a minha ignorância, não estou a conseguir ainda tomar conta deste assunto e o meu tempo tem sido mesmo muito curto…
Basta este ‘total’ ou tem de ser os outros?
Já me aparece assim, não sei se estara correto…
Obrigado
Sim, está correto assim
Bom dia,
O meu mariadb deixou de registar dados… no log do HA tenho o erro:
Error running command: python3 /config/py_scripts/daily_insert_mysql.py --host=core-mariadb --user=XXXX --password=XXXX --db=custom_data --table={{ table }} --value={{ value }} {{ '--col='+column if column is defined }}
, return code: 1
E tenho os graficos a 0…
alguma sugestao?
Olá Ricardo,
Não.
Desisti e comecei a usar Grafana e Influxdb
Como o log não é muito detalhado
Podes colocar isto no configuration.yaml
para que o erro seja mais especifico
logger:
default: warning
logs:
homeassistant.components.shell_command: debug
Talvez o HA não esteja a conseguir comunicar com o mariadb, usas o mariadb no recorder do HA também? E funciona?
No título dos gráficos, é possível adicionar html? Gostaria de personalizar o texto mas não consegui
Eu utilizo um card markdown e um vertical-sack para este efeito:
É uma hipótese mas preferia no próprio card do gráfico. Tenho vários cards com gráficos e facilitava a leitura.
para maior customização o melhor é usar o markdown card
Viva!
Eu fiz o mesmo, instalei InfluxDb + Grafana. Depois descobri que colocar os gráficos de barras no Grafana, por períodos fechados, tipo uma barra a mostrar o consumo do mês, do dia 1 ao dia 30, é uma tarefa quase impossível. Desisti do Grafana…
Resolvi então utilizar o Node Red para fazer queries no InfluxDb, processar os queries e depois enviar o resultado, via MQTT, para um sensor. Assim consigo, com muita precisão, ter os dados corretos.
Continuo ainda sem saber como vou criar os gráficos, em barras, com a informação que quero.
Se alguém julgar proveitoso posso publicar o que pus no Node Red.
@Moacir_Ferreira, para os gráficos tens vários hipóteses:
Por fim, se puderes partilhar a tua abordagem em NR, agradeço
Porquê fazer isso se o NR pode injectar os dados directamente no sensor ou até criar um sensor?
O post vai ser um pouco mais longo que o normal… Instalei o NR + o plugin cron-plus. No NR eu tenho aquilo que se segue.
// Get current date
var d = new Date();
// Get current year and convert to string
var year = d.getFullYear();
year = year.toString();
// get current month as a number 0-11 and add 1 to it
var month = d.getMonth() + 1;
// Convert month to string
if ( month < 10 ) {
month = month.toString();
month = "0" + month;
} else {
month = month.toString();
}
// Build the InfluxDb query
msg.query = "SELECT last(\"value\") - first(\"value\") FROM \"homeassistant\".\"autogen\".\"kWh\" WHERE time >= '" + year + "-" + month + "-01T00:10:00Z' AND time <= now() AND \"entity_id\"='fornecido_ponta'";
return msg;
Observe que cada um terá de criar o query a apontar para o nome que deu ao sensor que colhe os dados vindo do contador de energia.
No node do InfluxDb não tenho nada já que a função anterior cria o query que eu quero e mete no “msg.query”.
Na função “extrai dado” eu só pego o resultado do query via:
msg.payload[0]["ponta"] = msg.payload[0].last_first;
return msg;
Por último, no “controi MQTT” eu tenho:
context.data = context.data || {};
// Get current date
var d = new Date();
// Get current year and convert to string
var year = d.getFullYear();
year = year.toString();
// get current month as a number 0-11 and add 1 to it
var month = d.getMonth() + 1;
// Convert month to string
if ( month < 10 ) {
month = month.toString();
month = "0" + month;
} else {
month = month.toString();
}
// Process each input (ponta, cheia, vazio)
if (msg.payload[0].ponta) {
context.data.ponta = msg.payload[0].ponta;
}
if (msg.payload[0].cheia) {
context.data.cheia = msg.payload[0].cheia;
}
if (msg.payload[0].vazio) {
context.data.vazio = msg.payload[0].vazio;
}
// Publish all values
if(context.data.ponta != null && context.data.cheia != null && context.data.vazio != null) {
var total = context.data.ponta + context.data.cheia + context.data.vazio;
msg.payload = {
time : msg.payload[0].time,
ponta : context.data.ponta,
cheia : context.data.cheia,
vazio : context.data.vazio,
total : total
}
context.data=null;
msg.topic = "tele/fornecido/" + year + "-" + month
return msg;
} else {
msg = null;
return msg;
}
Repara que eu crio um “topic” por ano e por mês.
Por fim, no configuration.yaml eu tenho:
# Julho fornecido
- platform: mqtt
state_topic: "tele/fornecido/2021-07"
name: "fornitotal_7"
value_template: "{{ (value_json.total | float) | round(2) }}"
unit_of_measurement: 'kW'
icon: mdi:transmission-tower
- platform: mqtt
unique_id: forni_ponta7
state_topic: "tele/fornecido/2021-07"
name: "ForniPonta7"
value_template: "{{ (value_json.ponta | float) | round(2) }}"
unit_of_measurement: 'kW'
icon: mdi:transmission-tower
- platform: mqtt
unique_id: forni_cheia7
state_topic: "tele/fornecido/2021-07"
name: "ForniCheia7"
value_template: "{{ (value_json.cheia | float) | round(2) }}"
unit_of_measurement: 'kW'
icon: mdi:transmission-tower
- platform: mqtt
unique_id: forni_vazio7
state_topic: "tele/fornecido/2021-07"
name: "ForniVazio7"
value_template: "{{ (value_json.vazio | float) | round(2) }}"
unit_of_measurement: 'kW'
icon: mdi:transmission-tower
No Node “Publica” só é necessário configurar o broker de MQTT.
Depois é criar um card por mês com o valor de ponta, cheio e vazio, com o consumido e fornecido.
Meu desafio agora é ter, ao invés de dados numéricos, um gráfico.
Sou um principiante… Vou tentando resolver os problemas da forma que posso pelo que conheço do HA e plug-ins. Não sabia que o NR fazia o que dizes, pelo que vou voltar ao estudo tentar entender o benefício e depois utilizar se verificar que facilita as coisas.
De qualquer das formas, obrigado pela dica!
Penso que o novo menu Energia do HA vem satisfazer muitas das necessidades que fomos colocando aqui.
Olá pessoal,
Estou a tentar criar a base de dados mas está complicado.
Segui os passos todos e nunca chegou a criar a BD. Entretanto lembrei-me de ativar os logs para o shell_command e apanhei lá isto:
Calculo que seja por causa disto que não é criada a base de dados.
Alguém me consegue dar uma ajuda pf?
Obrigado!
De facto, a dependência pymysql
não está a ser instalada.
Faz o seguinte, entra no terminal da máquina do HA. E faz o seguinte comando:
docker exec -it homeassistant bash
Depois:
pip install pymysql
E vê que erro dá
podes postar o código ?
Copyright © 2017-2021. Todos os direitos reservados
CPHA.pt - info@cpha.pt