Zur Erklärung:
ich habe 2 Shelly TRV (Heizkörperthermostate) im Bad über dem MQTT Adapter angebunden.
Zuvor habe ich das über die HTTP - Befehle gemacht, was oft nicht gut funktioniert hat, da die TRVs oft nicht im Netzwerk erreichbar waren und der Befehl entsprechend nicht ausgeführt wurde. Im Ergebnis oft morgens ein kaltes Bad / kalter Boden.
Im Zuge der Einrichtung zweier Sonoff NS-Panels (wer's kennt - in der geflashten Tasmota Variante mit dem Lovelace UI) habe ich also auf MQTT umgestellt, was auch dahingehend viel besser funktioniert, dass die Commands immer bei den TRV Thermostaten umgesetzt werden.
Aktuell publishe ich also an 2 Command-Topics:
- shellies/shellytrv-Rad-Bad/thermostat/0/command/target_t
- shellies/shellytrv-Rad-Bad/thermostat/0/command/boost_minutes
Ich kann so also die Zieltemperatur und die Boost - Restzeit (Ventil voll auf) des TRV ändern, was zuverlässig und mit meist sehr geringer Latenz (bis einige Sekunden) funktioniert. Mehr Kommunikation mit den TRVs brauchts nicht. Die ganze Logik der Automatisierung (Fensterkontakt zur Badlüftung, automatische Heizphasen je nach Jahrszeit und Abwesenheit usw... habe ich über Blockly Skripte realisiert).
Nachdem ich nun schon ewig rätsel, warum sich die TRVs (jetzt im Sommer) immer wieder wie von Geisterhand in den Boost begeben und diesen auch nicht mehr verlassen, stelle ich fest, dass es mit "[shellytrv-2C1165DAADA1] connection closed: Error: read EHOSTUNREACH" zusammenhängt.
Danach wird die Verbindung wiederhergestellt und das TRV erhält die letzte Nachricht auf dem Boost_minutes - Topic erneut.
Mit welchen Einstellungen im MQTT Adapter kann ich sicherstellen, dass das Boost_minutes Topic nur einmal an den Client übertragen wird, während die zuletzt gesetzte target_t (Temperatur) bei jeder Verbindung übermittelt werden soll?