Bonjour à toutes et tous et merci de m’accueillir parmi vous.
Je suis un newbbie dans le monde de Home Assistant et j’aimerais un peu d’aide pour m’aider à connecter un ESP8266 que j’ai programmé et déjà connecté à mon serveur Mosquitto installé en local sur mon PC (pour faire des tests).
Je reçois bien des données de la carte ESP sur le PC, par contre je n’arrive pas à l’intégrer à HA.
Pour vous expliquer l’idée que j’ai derrière la tête c’est que l’ESP8266 va récupérer les tensions de mes trois champs de panneaux photovoltaïques, de même que la tension de la batterie afin de les envoyer à HA+Nodered pour afficher les tensions sous forme de jauges.
Pour relier les 3 strings de panneaux + batteries à l’unique entrée analogique de l’Esp je vais commuter 4 vers 1 au moyen d’un commutateur électronique (4066) faire la mesure, la stocker.
Puis la transmettre via MQTT à HA+Nodered afin de les afficher sur pc, tablette, ou petite visu dédiée.
Le code de l’ESP (en cours de modif pour acceuil du CD4066 (multiplexage des enrées…) )
Merci de vos retours
#include <ESP8266WiFi.h>
#include <PubSubClient.h>
char* i;
WiFiClient espClient;
PubSubClient client(espClient);
void reconnectmqttserver() {
while (!client.connected()) {
Serial.print("Attempting MQTT connection...");
String clientId = "ESP-94F0FB";
clientId += String(random(0xffff), HEX);
if (client.connect(clientId.c_str())) {
Serial.println("connected");
}
else {
Serial.print("failed, rc=");
Serial.print(client.state());
Serial.println(" try again in 5 seconds");
delay(5000);
}
}
}
char msgmqtt[50];
void callback(char* topic, byte* payload, unsigned int length) {
String MQTT_DATA = "";
for (int i=0;i<length;i++) {
MQTT_DATA += (char)payload[i];}
}
void setup()
{
i = "";
Serial.begin(9600);
WiFi.disconnect();
delay(1000);
Serial.println("Connexion");
WiFi.begin("Livebox-****","****************");
while ((!(WiFi.status() == WL_CONNECTED))){
delay(300);
Serial.print("..");
}
Serial.println("Connected");
Serial.println("Your IP is");
Serial.println((WiFi.localIP().toString()));
client.setServer("192.168.1.12", 1883);
client.setCallback(callback);
}
void loop()
{
if (!client.connected()) {
reconnectmqttserver();
}
client.loop();
i = "111,11";
snprintf (msgmqtt, 50, "%s",i);
client.publish("test/PV1", msgmqtt);
delay(1000);
i = "222,22";
snprintf (msgmqtt, 50, "%s",i);
client.publish("test/PV2", msgmqtt);
delay(1000);
i = "333,33";
snprintf (msgmqtt, 50, "%s",i);
client.publish("test/PV3", msgmqtt);
delay(1000);
i = "55,55";
snprintf (msgmqtt, 50, "%s",i);
client.publish("test/Batterie", msgmqtt);
delay(1000);
}