Proof Concept Alpha 0.0001
Gateway:
Node:
MQTT:
Boa tarde pessoal.
Estou a desenvolver um projeto que envolver sensores de humidade de solo que usam a tecnologia LoRa e recorro ao MQTT para obter os dados no HA.
Até ao momento tudo a funcionar minimamente bem, mas preciso de ajustar pequenos detalhes.
Um deles tem a ver com o facto do HA assumir os últimos valores do sensor como os atuais e isto causa uma má leitura ao utilizador.
Tenho os sensores configurados com um timeout de 1h:5m pois eles enviam dados de 1/1h caso o envio nao seja feito o sensor no HA fica unavailable e obrigara ao utilizador a ir ao terreno verificar a causa.
Caso eu reinicie o HA o sensor identifica o ultimo valor como atual e terei de aguardar 1h:5m para obter o unavailable.
Terá alguma coisa ligada ao Retain no MQTT ou tenho de fazer algo mais?
String commonSensorBattInfo =
commonAvailabilityConfig +
"\"icon\": \"mdi:battery\","
"\"expire_after\": \"4200\","
"\"state_class\": \"measurement\","
"\"device_class\": \"battery\","
"\"unit_of_measurement\": \"%\"";
for (int i = 1; i <= 8; i++) {
String battConfig =
"{\"name\": \"Sector " + String(i) + " Battery\","
"\"unique_id\": \"sector_" + String(i) + "_battery\","
"\"state_topic\": \"" + String(mqttTopic) + "/s" + String(i) + "_battery/state\","
+ commonSensorBattInfo + ","
"\"dev\": " + commonDeviceInfo + "}";
String topic = "homeassistant/sensor/" + String(mqttTopic) + "/s" + String(i) + "_battery/config";
mqttClient.publish(topic.c_str(), battConfig.c_str(), false);
}
Deixo aqui uma pequena parte do meu código e como podem ver eu já estou a usar o RETAIN como false e mesmo assim o problema mantem-se.
Tenho os sensores configurados com um timeout de 1h:5m pois eles enviam dados de 1/1h caso o envio nao seja feito o sensor no HA fica unavailable e obrigara ao utilizador a ir ao terreno verificar a causa.
Tira o timeout.
Envia um counter também, ou mais décimas.
Quando o HA reinicia dá sempre a ideia errada.
Neste momento assim fica tudo unknown:
(Apenas como exemplo)
Copyright © 2017-2021. Todos os direitos reservados
CPHA.pt - info@cpha.pt