Hallo, ich nutze Home Assistent mit der API Verbindung über ViCare.
Ich habe festgestellt wenn die Zirkulationspumpe für Warmwasser nicht läuft benötige ich nur ein Bruchteil von Gas für die Warmwasserversorgung.
Allerdings muss ich dann vor dem Duschen das Wasser lange laufen lassen bis es warm wird.
Ich würde das gerne über mein Home Asssistant steuern, so dass ich die Zirkulationspumpe bedarfsgerecht ein und ausschalten kann.
Weiß jemand ob das geht und wie?
Kann das die API überhaupt?
Würde mich auf ein Feedback freuen.
Ich nutze ein WLAN Schaltsteckdose ( auch in Alexa integriert), die in der Zuleitung der Zirkulationspumpe eingebaut ist. In der Vicare App steht die Zirkulation auf Dauerbetrieb. Über die Smarthone App erfolgt eine Zeitsteuerung für die Morgenstunden. Bei Bedarf kann über Alexa " Warmwasser ein" bzw. "aus" die Zirkulation eingeschaltet werden.
Hi,
ich bin Viessmann API Neuling / Amateur / Noob, daher alles ohne Gewähr.
Du kannst über "features.heating.dhw.pumps.circulation.schedule.commands.setSchedule.setValue" den schedule der Zirkulationspumpe ändern.
Du könntest also 2 Vorlagen machen mit "Pumpe läuft 24*7" und "Pumpe läuft nie" und zwischen diesen beiden hin und her Schalten für an/aus.
(Vitodens 200-W B2HF-19.)
Gibt es ein Modul, dass man an die Heizung anschließen muss damit API funktionniert?
@ClaudeF um die API nutzen zu können, muss deine Anlage mit dem Internet verbunden sein. Abhängig von der Anlage ist entweder über ein externes Gateway (Vitoconnect) möglich und wird über den Optolink Anschluss (in Form eines "V") an die Anlage angeschlossen. Oder deine Anlage besitzt ein integriertes WLAN-Modul, dann kannst du sie direkt mit dem Internet verbinden.
Ist deine Anlage mit dem Internet verbunden und du hast dich erfolgreich in der ViCare App registriert, kannst du über das Developer Portal dir einen API Key erstellen.
Ich hoffe, die Infos reichen erstmal aus.
Gruß,
Michael
Hallo Michael,
wenn das Alles erledigt, so habe ich 21 Entities zur Verfügung in Homeassistent und kehre damit zur Ausgangsfrage zurück, mit welchem Entity kann man die Warmwassser Pumpe aktiv steuern ?
gruss Hartmut
Bei mir ist die Zirkualtionspumpe direkt mit der Steuerungseinheit der Wärmepumpe verbunden. Ich würde auch lieber per API (Homeassistant) die Zirkulation steuern können. Vielleicht müsste man die ViCare Integration um das Feature den Schedule zu setzen erweitern.
Ich kenne Homeassistant und dessen Parametrierbarkeit nicht aber ich denke, es sollte auch damit möglich sein.
Grundsätzlich kann man die Warmwasser Zirkulationspumpe über API schalten. Unter PyViCare geht das so:
t.setDomesticHotWaterCirculationSchedule({
"mon":[{"mode":"on","start":"07:00","end":"10:00","position":0},
{"mode":"on","start":"12:00","end":"13:00","position":1},
{"mode":"on","start":"16:00","end":"18:00","position":2},
{"mode":"on","start":"21:00","end":"22:00","position":3}],
"tue":[{"mode":"on","start":"07:00","end":"22:00","position":0}],
"wed":[{"mode":"on","start":"07:00","end":"22:00","position":0}],
"thu":[{"mode":"on","start":"07:00","end":"22:00","position":0}],
"fri":[{"mode":"on","start":"07:00","end":"22:00","position":0}],
"sat":[{"mode":"on","start":"07:30","end":"22:30","position":0}],
"sun":[{"mode":"on","start":"07:30","end":"22:30","position":0}]
})
Dazu muß setDomesticHotWaterCirculationSchedule defniert sein. In der aktuellen PyViCare Version ist das in der PyViCareHeatingDevice.py, wenn es fehlt, ergänzen:
@handleAPICommandErrors
def setDomesticHotWaterCirculationSchedule(self, schedule):
return self.service.setProperty("heating.dhw.pumps.circulation.schedule", "setSchedule",
{'newSchedule': schedule})
In obigem Beispiel werden Montags die maximal möglichen vier Zeiträume pro Tag gesetzt, an den anderen Tagen nur einer. Leider kann man die Warmwasser Zirkulationspumpe nur über das Zeitprogramm an- und ausschalten und nicht direkt. Obige Angaben beziehen sich auf eine einfache Gasheizung mit Warmwasseraufbereitung, also ohne Wärmepumpe.
Komplett schaltet man die Zirkulation für alle Tage mit:
t.setDomesticHotWaterCirculationSchedule({})
aus.