Temperaturüberwachung der Klimaanlage

Leistungsmerkmale:

Ein ESP32 misst über 6 Temperatursensoren an drei Kältekreisen jeweils die Vor- und Rücklauftemperatur
Die Werte werden über Wlan an einen MQTT-Broker gesender (In meinem Fall der von Home Assistant)
Die Software wurde in der Arduino-IDE in C geschrieben

Sinn und Zweck:

Ich wollte neben den Temperaturen auch noch die Kältemitteldurchlüsse und Luftstöme messen.
Die Idee, so z.B. Filterverschmutzungen oder Defekte zu erkennen.

(OK mir mar langweilig und ich habe was Sinnloses gebaut)

Natürlich kann das einfache Prinzip leicht von jedem Hobbybastler übernommen werden.
Arduino bietet ja Librarys für praktisch alle Sensoren an.

Ich hatte auch ne Version mit OTA-Update, aber die hat mit meinen ESP32 Probleme verursacht wärend sie mit ESP8266 gut funktioniert hat.
(Ich glaube im Moment ist bei ESP32 und Arduino irgend ein Bug drin)

AnsichtTempMesserKlima.png

 

 

Hardware:

Ein ESP32 WROOM (geht aber auch jeder andere.
DS 18b20 One Wire Temperatursensoren

Software:

#include <WiFi.h>
#include <PubSubClient.h>
#include <OneWire.h>
#include <DallasTemperature.h>

// Edit these fields to match your own network setup
const char* ssid = "**geheim **";
const char* password = "**geheim ** ";
const char* mqtt_broker = "192.168.178.118";
const char* mqtt_username = "Stefan";
const char* mqtt_password = "**geheim **";
const char* mqtt_topic = "/test";
const int mqtt_port = 1883;
const char* id = "Klima";
#define ONE_WIRE_BUS 33
#define TEMPERATURE_PRECISION 9

float tempC;
WiFiClient wifi_client;
PubSubClient mqtt_client(wifi_client);

OneWire oneWire(ONE_WIRE_BUS);
DallasTemperature sensors(&oneWire);
uint8_t sensor[][8] = {
{ 0x28, 0xB4, 0xB9, 0x45, 0xD4, 0xB5, 0x32, 0x60 },
{ 0x28, 0xB1, 0xDE, 0x45, 0xD4, 0x2A, 0x51, 0x97 },
{ 0x28, 0xB1, 0xA9, 0x45, 0xD4, 0x1B, 0x7C, 0x9C },
{ 0x28, 0x9D, 0xBF, 0x45, 0xD4, 0x8E, 0x40, 0x96 },
{ 0x28, 0x6A, 0x7E, 0x45, 0xD4, 0x32, 0x13, 0xF8 },
{ 0x28, 0xF9, 0xC8, 0x46, 0xD4, 0x38, 0x20, 0xF0 }
};

void setup_wifi() {
WiFi.mode(WIFI_STA);
WiFi.begin(ssid, password);
Serial.println("Connecting to WiFi...");
while (WiFi.status() != WL_CONNECTED) {
delay(100);
}
Serial.println("Connected!");
}

void setup_mqtt() {
if (!mqtt_client.connected()) {
Serial.println("Connecting to MQTT...");
mqtt_client.setServer(mqtt_broker, mqtt_port);
mqtt_client.connect(id, mqtt_username, mqtt_password);
if (!mqtt_client.connected()) {
Serial.println("MQTT connection failed!");
}
else Serial.println("MQTT connection OK");
}
}

void sende_an_Broker(char * topic, int wert){
char s_wert[5];
mqtt_client.publish(topic, itoa(wert, s_wert, 10));
}

void setup() {
Serial.begin(115200);
delay(500);
setup_wifi();
setup_mqtt();
sensors.begin(); // Temp
}

void loop() {
// Sending messages
sensors.requestTemperatures();

tempC = sensors.getTempC(sensor[0]);
sende_an_Broker("Klima/1", tempC);
tempC = sensors.getTempC(sensor[1]);
sende_an_Broker("Klima/2", tempC);
tempC = sensors.getTempC(sensor[2]);
sende_an_Broker("Klima/3", tempC);
tempC = sensors.getTempC(sensor[3]);
sende_an_Broker("Klima/4", tempC);
tempC = sensors.getTempC(sensor[4]);
sende_an_Broker("Klima/5", tempC);
tempC = sensors.getTempC(sensor[5]);
sende_an_Broker("Klima/6", tempC);

mqtt_client.loop();
if (WiFi.status() != 3) setup_wifi();
setup_mqtt();
delay(2000);
}

Integration in Home Assistant:

Wenn die Werte im MQTT Explorer erscheinen etwa so -

AnsichtTemp.png

noch dies in die configration.yaml eintragen:
_____________________________________________

mqtt:
sensor:
- unique_id: KlTemp1
name: "KlimaTemp1"
state_topic: "Klima/1"
value_template: "{{value}}"
device_class: "temperature"

- unique_id: KlTemp2
name: "KlimaTemp2"
state_topic: "Klima/2"
value_template: "{{value}}"
device_class: "temperature"

- unique_id: KlTemp3
name: "KlimaTemp3"
state_topic: "Klima/3"
value_template: "{{value}}"
device_class: "temperature"

- unique_id: KlTemp4
name: "KlimaTemp4"
state_topic: "Klima/4"
value_template: "{{value}}"
device_class: "temperature"

- unique_id: KlTemp5
name: "KlimaTemp5"
state_topic: "Klima/5"
value_template: "{{value}}"
device_class: "temperature"

- unique_id: KlTemp6
name: "KlimaTemp6"
state_topic: "Klima/6"
value_template: "{{value}}"
device_class: "temperature"
 

Im Homeassistant unter Geräte Entitäten findet man die Sensoren unter "Kimatemp"