Moin,
auch ich benötige heute mal wieder einen Tip von den Experten...
Ich habe 4 Sensoren angeschlossen. Auf dem LCD möchte ich nur die 4 Sensoren mit einem eindeutigem Text anzeigen.
Dazu habe ich das Programm entsprechend angepasst.
Ich bin mir aber nicht sicher, ob meine Anpassungen richtig sind und ob es evtl. auswirkungen auf die Datenübertragung zur CCU haben könnte (ich kann das noch nicht testen, da mein Sendemodul noch nicht eingetroffen ist) und ob ich die Zeilen:
String s_temp = " --.-";
if ((i + 1) <= sensorcount) {
s_temp = (String)((float)sensors.temperature() / 10.0);
s_temp = s_temp.substring(0, s_temp.length() - 1);
if (sensors.temperature() < 1000 && sensors.temperature() >= 0) s_temp = " " + s_temp;
}
auch entfernen kann.
Ich habe den geänderten Teil des Sketches mal angehängt.
Gruß
Hans-Jürgen
Code: Alles auswählen
Ds18b20::measure(sensors, sensorcount);
DPRINT(F("Temperaturen: | "));
for (int i = 0; i < MAX_SENSORS; i++) {
DDEC(sensors[i].temperature()); DPRINT(" | ");
#ifdef USE_LCD
//ab hier meine Änderungen
String s_temp = " --.-";
if ((i + 1) <= sensorcount) {
s_temp = (String)((float)sensors[i].temperature() / 10.0);
s_temp = s_temp.substring(0, s_temp.length() - 1);
if (sensors[i].temperature() < 1000 && sensors[i].temperature() >= 0) s_temp = " " + s_temp;
}
// String disp_temp = String(i + 1) + ":" + s_temp + (char)223 + "C ";
lcd.setCursor(0, 0);
lcd.print("Vorlauf : ");
lcd.print((String)((float)sensors[0].temperature() / 10.0));
lcd.setCursor(16, 0);
lcd.write(223);
lcd.print("C ");
lcd.setCursor(0, 1);
lcd.print("R");
lcd.write(245);
lcd.print("cklauf : ");
lcd.print((String)((float)sensors[1].temperature() / 10.0));
lcd.setCursor(16, 1);
lcd.write(223);
lcd.print("C ");
lcd.setCursor(0, 2);
lcd.print("W-Wasser : ");
lcd.print((String)((float)sensors[2].temperature() / 10.0));
lcd.setCursor(16, 2);
lcd.write(223);
lcd.print("C ");
lcd.setCursor(0, 3);
lcd.print("Raumluft : ");
lcd.print((String)((float)sensors[3].temperature() / 10.0));
lcd.setCursor(16, 3);
lcd.write(223);
lcd.print("C ");
#endif
// ab hier wieder original
}
DPRINTLN("");
WeatherEventMsg& msg = (WeatherEventMsg&)dev.message();
//Aufteilung in 2 Messages, da sonst die max. BidCos Message Size (0x1a)? überschritten wird
msg.init(dev.nextcount(), sensors, dev.battery().low(), 0);
dev.send(msg, dev.getMasterID());
#if MAX_SENSORS > 4
Raspberrymatic als VM auf Proxmox (Fujitsu Esprimo) mit HB-RF-USB und 34 Geräte (18 x Eigenbau)
4 x Amazon Alexa, ioBroker
Remote Control via TinyMatic und VPN
Motion Eye und ioBroker auf Proxmox