NEWS
Test ViessmannAPI v2.0.0
-
https://documentation.viessmann.com/static/changelog
August 2022
Changes in IoT features - Ventilation
We reworked the existing ventilation.operating.programs. concept to provide more clarity on the IoT features. Therefore, we will rename certain ventilation related features:
ventilation.operating.programs.levelOne >> ventilation.levels.levelOne
ventilation.operating.programs.levelTwo >> ventilation.levels.levelTwo
ventilation.operating.programs.levelThree >> ventilation.levels.levelThree
ventilation.operating.programs.levelFour >> ventilation.levels.levelFour
ventilation.operating.programs.holiday >> ventilation.quickmodes.holiday
ventilation.operating.programs.comfort >> ventilation.quickmodes.comfort
ventilation.operating.programs.eco >> ventilation.quickmodes.eco
ventilation.operating.programs.silent >> ventilation.quickmodes.silent
ventilation.operating.programs.forcedLevelFour >> ventilation.quickmodes.forcedLevelFour
The IoT features are only renamed. There is no change in availibilty or functionality of the features itself.
The changes are not active as of now. We will inform you here as soon as the change is active.
Changes in IoT features
The following IoT features has been renamed in the API:
Old: heating.sensors.volumetricFlow.return:
New: heating.sensors.volumetricFlow.allengra
Shows information about volumetric flow on the return
Additionally, the following feature is now also available in the basic Version:
heating.solar.power.cumulativeProduced
Shows the cumulated value of power produced of the solar thermal in kWh
Hallo zusammen. Erst mal ganz herzlichen Dank an Tombox für diesen Adapter!!
Meine neue Heizung (Vitodens 200w) wird ab Montag installiert. Ich habe den Adapter Viessmann API schon in ioB installiert, mir einen Developer Account angelegt und diesen erfolgreich mit ioB verbunden.
BITTE NICHT LACHEN: Jetzt eine vielleicht dusselige Frage. Wie kommen die Daten meiner neuen Heizung dann in den Developer Account bzw. in den Adapter?
Auf der (https://app.developer.viessmann.com/) habe ich ja den Account erstellt und eine clientID für ioB.
Muss ich nun die neue Heizung in der Viessmann App (ViCare) per Handy / Wlan "nur" mit den selben Zugangsdaten des Developer Accounts (gleicher Benutzername und Password) in Betrieb nehmen und die Anlage wird dann automatisch im Developer Account eingefügt und alles läuft dann automatisch?Danke Euch
LG
LEM -
Hallo zusammen. Erst mal ganz herzlichen Dank an Tombox für diesen Adapter!!
Meine neue Heizung (Vitodens 200w) wird ab Montag installiert. Ich habe den Adapter Viessmann API schon in ioB installiert, mir einen Developer Account angelegt und diesen erfolgreich mit ioB verbunden.
BITTE NICHT LACHEN: Jetzt eine vielleicht dusselige Frage. Wie kommen die Daten meiner neuen Heizung dann in den Developer Account bzw. in den Adapter?
Auf der (https://app.developer.viessmann.com/) habe ich ja den Account erstellt und eine clientID für ioB.
Muss ich nun die neue Heizung in der Viessmann App (ViCare) per Handy / Wlan "nur" mit den selben Zugangsdaten des Developer Accounts (gleicher Benutzername und Password) in Betrieb nehmen und die Anlage wird dann automatisch im Developer Account eingefügt und alles läuft dann automatisch?Danke Euch
LG
LEMBei meiner WP habe ich eine kleine Box (optolink) dazu erhalten, welche mit der Heizung verbunden und Wlan fähig ist. Du richtest dir einen Account ein und verknüpfst die Box mit deinem Account (im Zuge der Einrichtung) und bringst sie im Einrichtungsprozess in dein Wlan.
Ggf gibt es mittlerweile andere Lösungen.
-
Super, danke dir. Das ich den falschen Datenpunkt hatte habe ich auch gemerkt.
Dann werd ich wohl den Zeitplan temporär manipulieren müssen um zum Ziel zu kommen?
Hat das jemand mit der neuen Version des Adapters schon umgesetzt?@createch2 sagte in Test ViessmannAPI v2.0.0:
Super, danke dir. Das ich den falschen Datenpunkt hatte habe ich auch gemerkt.
Dann werd ich wohl den Zeitplan temporär manipulieren müssen um zum Ziel zu kommen?
Hat das jemand mit der neuen Version des Adapters schon umgesetzt?ich greife das mal auf: das sollte ja dann eigentlich zum einschalten über bewegungsmelder so laufen, das ich in viessmannapi.0.2050879.0.features.heating.dhw.pumps.circulation.schedule.commands.setSchedule.setValue bei auslösung des bewegungsmelders einen zeitplan mit der aktuellen zeit + ne stunde oder so eintrage und wenn keine bewegung mehr, dann einen leeren zeitplan. oder bin ich da jetzt ganz auf dem holzweg?
-
October 2021
Update zu neuen Device Features - Gas / Power consumption
Folgende Features sind nun über die API zugänglich.heating.gas.consumption.summary.heating
heating.gas.consumption.summary.dhw
heating.power.consumption.summary.heating
heating.power.consumption.summary.dhw
-
Dein Adapter ist wirklich sehr hilfreich. Dickes Dankeschön.
du hast hier geschrieben dass die Features rund um gas.consumption über die API zugänglich sind, bei mir erscheint der node gas nicht unter heating. Woran kann das liegen?

-
@quotschmacher sagte in Test ViessmannAPI v2.0.0:
ich greife das mal auf: das sollte ja dann eigentlich zum einschalten über bewegungsmelder so laufen, das ich in viessmannapi.0.2050879.0.features.heating.dhw.pumps.circulation.schedule.commands.setSchedule.setValue bei auslösung des bewegungsmelders einen zeitplan mit der aktuellen zeit + ne stunde oder so eintrage und wenn keine bewegung mehr, dann einen leeren zeitplan. oder bin ich da jetzt ganz auf dem holzweg?
nochmal der vollständigkeithalber: zirkulationspumpe steuern geht soweit ganz gut (vitodens 200).
// schedule zum einschalten, allerdings nur zwischen 6 und 21 uhr var pump_on = '{"mon":[{"start":"06:00","end":"21:00","mode":"on","position":0}],"tue":[{"start":"06:00","end":"21:00","mode":"on","position":0}],"wed":[{"start":"06:00","end":"21:00","mode":"on","position":0}],"thu":[{"start":"06:00","end":"21:00","mode":"on","position":0}],"fri":[{"start":"06:00","end":"21:00","mode":"on","position":0}],"sat":[{"start":"06:00","end":"21:00","mode":"on","position":0}],"sun":[{"start":"06:00","end":"21:00","mode":"on","position":0}]}' // schedule leeren - pumpe ausschalten var pump_off = '{"mon":[], "tue":[],"wed":[],"thu":[],"fri":[],"sat":[],"sun":[]}' setState("viessmannapi.0.xxx.features.heating.dhw.pumps.circulation.schedule.commands.setSchedule.setValue", JSON.parse(pump_on)); // oder pump_offder vorteil das ganze über ein "begrenztes" schedule zu lösen: man muss bei der auswertung eines bewegungsmelders keine zeiten mehr auswerten. wenn der melder nach 21 triggert und das schedule neu gesetzt wird, startet die pumpe eh nicht.
ich hab gestern ganz wild die schedules hin und her geschaltet und es hat super funktioniert.
danke für den adapter @tombox
-
@quotschmacher sagte in Test ViessmannAPI v2.0.0:
ich greife das mal auf: das sollte ja dann eigentlich zum einschalten über bewegungsmelder so laufen, das ich in viessmannapi.0.2050879.0.features.heating.dhw.pumps.circulation.schedule.commands.setSchedule.setValue bei auslösung des bewegungsmelders einen zeitplan mit der aktuellen zeit + ne stunde oder so eintrage und wenn keine bewegung mehr, dann einen leeren zeitplan. oder bin ich da jetzt ganz auf dem holzweg?
nochmal der vollständigkeithalber: zirkulationspumpe steuern geht soweit ganz gut (vitodens 200).
// schedule zum einschalten, allerdings nur zwischen 6 und 21 uhr var pump_on = '{"mon":[{"start":"06:00","end":"21:00","mode":"on","position":0}],"tue":[{"start":"06:00","end":"21:00","mode":"on","position":0}],"wed":[{"start":"06:00","end":"21:00","mode":"on","position":0}],"thu":[{"start":"06:00","end":"21:00","mode":"on","position":0}],"fri":[{"start":"06:00","end":"21:00","mode":"on","position":0}],"sat":[{"start":"06:00","end":"21:00","mode":"on","position":0}],"sun":[{"start":"06:00","end":"21:00","mode":"on","position":0}]}' // schedule leeren - pumpe ausschalten var pump_off = '{"mon":[], "tue":[],"wed":[],"thu":[],"fri":[],"sat":[],"sun":[]}' setState("viessmannapi.0.xxx.features.heating.dhw.pumps.circulation.schedule.commands.setSchedule.setValue", JSON.parse(pump_on)); // oder pump_offder vorteil das ganze über ein "begrenztes" schedule zu lösen: man muss bei der auswertung eines bewegungsmelders keine zeiten mehr auswerten. wenn der melder nach 21 triggert und das schedule neu gesetzt wird, startet die pumpe eh nicht.
ich hab gestern ganz wild die schedules hin und her geschaltet und es hat super funktioniert.
danke für den adapter @tombox
@quotschmacher sagte in Test ViessmannAPI v2.0.0:
@quotschmacher sagte in Test ViessmannAPI v2.0.0:
ich greife das mal auf: das sollte ja dann eigentlich zum einschalten über bewegungsmelder so laufen, das ich in viessmannapi.0.2050879.0.features.heating.dhw.pumps.circulation.schedule.commands.setSchedule.setValue bei auslösung des bewegungsmelders einen zeitplan mit der aktuellen zeit + ne stunde oder so eintrage und wenn keine bewegung mehr, dann einen leeren zeitplan. oder bin ich da jetzt ganz auf dem holzweg?
nochmal der vollständigkeithalber: zirkulationspumpe steuern geht soweit ganz gut (vitodens 200).
// schedule zum einschalten, allerdings nur zwischen 6 und 21 uhr var pump_on = '{"mon":[{"start":"06:00","end":"21:00","mode":"on","position":0}],"tue":[{"start":"06:00","end":"21:00","mode":"on","position":0}],"wed":[{"start":"06:00","end":"21:00","mode":"on","position":0}],"thu":[{"start":"06:00","end":"21:00","mode":"on","position":0}],"fri":[{"start":"06:00","end":"21:00","mode":"on","position":0}],"sat":[{"start":"06:00","end":"21:00","mode":"on","position":0}],"sun":[{"start":"06:00","end":"21:00","mode":"on","position":0}]}' // schedule leeren - pumpe ausschalten var pump_off = '{"mon":[], "tue":[],"wed":[],"thu":[],"fri":[],"sat":[],"sun":[]}' setState("viessmannapi.0.xxx.features.heating.dhw.pumps.circulation.schedule.commands.setSchedule.setValue", JSON.parse(pump_on)); // oder pump_offder vorteil das ganze über ein "begrenztes" schedule zu lösen: man muss bei der auswertung eines bewegungsmelders keine zeiten mehr auswerten. wenn der melder nach 21 triggert und das schedule neu gesetzt wird, startet die pumpe eh nicht.
ich hab gestern ganz wild die schedules hin und her geschaltet und es hat super funktioniert.
danke für den adapter @tombox
Hey, da will ich mich mal dran hängen. Ich hatte überlegt, mir einen kippschalter im Bad irgendwo zu platzieren, mit dem ich die Zirkulationspumpe ad hoc starten kann (Use Case: man steht im Bad und will duschen/ das Waschbecken mit WW benutzen). Eigentlich sollte es doch mit dem Skript kein Problem sein:
- Eine Schaltervariable (bool) in den eigenen Datenpunkten zu setzen, welche von einem Blockly überwacht wird
- ist die Variable auf true, wird der schedule (pump_on) gesetzt -> die Zirkulation läuft an
- nach z.B. 5min wird automatisch pump_off gesetzt
Verstehe ich es richtig, dass mit deinem Skript die Zirkulationspumpe von 6-21 Uhr durch laufen würde, wenn sie nicht wieder deaktiviert wird?
edit: hab mal ein blockly gebaut
<xml xmlns="https://developers.google.com/blockly/xml"> <block type="procedures_defcustomnoreturn" id="C|6p3lu0hRewiE]Z{qnx" x="188" y="88"> <mutation statements="false"></mutation> <field name="NAME">start-zirk</field> <field name="SCRIPT">Ly8gc2NoZWR1bGUgenVtIGVpbnNjaGFsdGVuLCBhbGxlcmRpbmdzIG51ciB6d2lzY2hlbiA2IHVuZCAyMSB1aHINCg0KdmFyIHB1bXBfb24gPSAneyJtb24iOlt7InN0YXJ0IjoiMDA6MDAiLCJlbmQiOiIyMzo1OSIsIm1vZGUiOiJvbiIsInBvc2l0aW9uIjowfV0sInR1ZSI6W3sic3RhcnQiOiIwNjowMCIsImVuZCI6IjIxOjAwIiwibW9kZSI6Im9uIiwicG9zaXRpb24iOjB9XSwid2VkIjpbeyJzdGFydCI6IjA2OjAwIiwiZW5kIjoiMjE6MDAiLCJtb2RlIjoib24iLCJwb3NpdGlvbiI6MH1dLCJ0aHUiOlt7InN0YXJ0IjoiMDY6MDAiLCJlbmQiOiIyMTowMCIsIm1vZGUiOiJvbiIsInBvc2l0aW9uIjowfV0sImZyaSI6W3sic3RhcnQiOiIwNjowMCIsImVuZCI6IjIxOjAwIiwibW9kZSI6Im9uIiwicG9zaXRpb24iOjB9XSwic2F0IjpbeyJzdGFydCI6IjA2OjAwIiwiZW5kIjoiMjE6MDAiLCJtb2RlIjoib24iLCJwb3NpdGlvbiI6MH1dLCJzdW4iOlt7InN0YXJ0IjoiMDY6MDAiLCJlbmQiOiIyMTowMCIsIm1vZGUiOiJvbiIsInBvc2l0aW9uIjowfV19Jw0KDQpzZXRTdGF0ZSgidmllc3NtYW5uYXBpLjAuNjQ4NTEuMC5mZWF0dXJlcy5oZWF0aW5nLmRody5wdW1wcy5jaXJjdWxhdGlvbi5zY2hlZHVsZS5jb21tYW5kcy5zZXRTY2hlZHVsZS5zZXRWYWx1ZSIsIEpTT04ucGFyc2UocHVtcF9vbikpOyAvLyBvZGVyIHB1bXBfb2Zm</field> <comment pinned="false" h="80" w="160">Beschreibe diese Funktion …</comment> </block> <block type="on_ext" id="OrrP|oAEW44xm)#CHi/x" x="563" y="88"> <mutation xmlns="http://www.w3.org/1999/xhtml" items="1"></mutation> <field name="CONDITION">ne</field> <field name="ACK_CONDITION"></field> <value name="OID0"> <shadow type="field_oid" id="Vf:2${EvnUSG~})eift%"> <field name="oid">0_userdata.0.EigeneDatenpunkte.Heizung.ZirkulationAn</field> </shadow> </value> <statement name="STATEMENT"> <block type="controls_if" id=")wR[o:^O40MXsYo|IaVD"> <value name="IF0"> <block type="logic_compare" id="vKpLM;XY_RcIGh6,W8}T"> <field name="OP">EQ</field> <value name="A"> <block type="on_source" id=")fMs4Fcf$,iYXBW!bX,$"> <field name="ATTR">state.val</field> </block> </value> <value name="B"> <block type="logic_boolean" id="J5ijXAEjpY!7;c[{N/*G"> <field name="BOOL">TRUE</field> </block> </value> </block> </value> <statement name="DO0"> <block type="procedures_callcustomnoreturn" id="cPECRG/O*H71[C0pKS3W"> <mutation name="start-zirk"></mutation> <next> <block type="telegram" id="T9Dc^Salh?]_(:9YeLNs"> <field name="INSTANCE"></field> <field name="LOG"></field> <field name="SILENT">FALSE</field> <field name="PARSEMODE">default</field> <field name="DISABLE_WEB_PAGE_PREVIEW">FALSE</field> <value name="MESSAGE"> <shadow type="text" id="1_-=OC9}y+2rbxEF,Ps7"> <field name="TEXT">Zirkulationspumpe gestartet. 5 Minuten Timeout</field> </shadow> </value> <next> <block type="timeouts_wait" id="^+@b5Hgy=9Kt_8[LpCQ#"> <field name="DELAY">5</field> <field name="UNIT">min</field> <next> <block type="update" id="3`LHXWh~d.hYJhTrvq]*"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">0_userdata.0.EigeneDatenpunkte.Heizung.ZirkulationAn</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="logic_boolean" id="ex|rf*=(uRZ~2{=|JWFM"> <field name="BOOL">FALSE</field> </block> </value> <next> <block type="procedures_callcustomnoreturn" id="/vYJRv|tZ55;~!uax+W3"> <mutation name="stop-zirk"></mutation> <next> <block type="telegram" id=":QA|!PHN6C*+Eo6eIfHX"> <field name="INSTANCE"></field> <field name="LOG"></field> <field name="SILENT">FALSE</field> <field name="PARSEMODE">default</field> <field name="DISABLE_WEB_PAGE_PREVIEW">FALSE</field> <value name="MESSAGE"> <shadow type="text" id="G!f5)/iMynkY@xR7o@ZR"> <field name="TEXT">Zirkulationspumpe gestoppt.</field> </shadow> </value> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block> </statement> </block> </statement> </block> <block type="procedures_defcustomnoreturn" id="]0SXN4W+S6mvOy.:^$No" x="188" y="113"> <mutation statements="false"></mutation> <field name="NAME">stop-zirk</field> <field name="SCRIPT">Ly8gc2NoZWR1bGUgbGVlcmVuIC0gcHVtcGUgYXVzc2NoYWx0ZW4NCg0KdmFyIHB1bXBfb2ZmID0gJ3sibW9uIjpbXSwgInR1ZSI6W10sIndlZCI6W10sInRodSI6W10sImZyaSI6W10sInNhdCI6W10sInN1biI6W119JyANCg0KIA0KDQpzZXRTdGF0ZSgidmllc3NtYW5uYXBpLjAuNjQ4NTEuMC5mZWF0dXJlcy5oZWF0aW5nLmRody5wdW1wcy5jaXJjdWxhdGlvbi5zY2hlZHVsZS5jb21tYW5kcy5zZXRTY2hlZHVsZS5zZXRWYWx1ZSIsIEpTT04ucGFyc2UocHVtcF9vZmYpKTsgLy8gb2RlciBwdW1wX29mZg==</field> <comment pinned="false" h="80" w="160">Beschreibe diese Funktion …</comment> </block> </xml>Danke!
mading -
@quotschmacher sagte in Test ViessmannAPI v2.0.0:
@quotschmacher sagte in Test ViessmannAPI v2.0.0:
ich greife das mal auf: das sollte ja dann eigentlich zum einschalten über bewegungsmelder so laufen, das ich in viessmannapi.0.2050879.0.features.heating.dhw.pumps.circulation.schedule.commands.setSchedule.setValue bei auslösung des bewegungsmelders einen zeitplan mit der aktuellen zeit + ne stunde oder so eintrage und wenn keine bewegung mehr, dann einen leeren zeitplan. oder bin ich da jetzt ganz auf dem holzweg?
nochmal der vollständigkeithalber: zirkulationspumpe steuern geht soweit ganz gut (vitodens 200).
// schedule zum einschalten, allerdings nur zwischen 6 und 21 uhr var pump_on = '{"mon":[{"start":"06:00","end":"21:00","mode":"on","position":0}],"tue":[{"start":"06:00","end":"21:00","mode":"on","position":0}],"wed":[{"start":"06:00","end":"21:00","mode":"on","position":0}],"thu":[{"start":"06:00","end":"21:00","mode":"on","position":0}],"fri":[{"start":"06:00","end":"21:00","mode":"on","position":0}],"sat":[{"start":"06:00","end":"21:00","mode":"on","position":0}],"sun":[{"start":"06:00","end":"21:00","mode":"on","position":0}]}' // schedule leeren - pumpe ausschalten var pump_off = '{"mon":[], "tue":[],"wed":[],"thu":[],"fri":[],"sat":[],"sun":[]}' setState("viessmannapi.0.xxx.features.heating.dhw.pumps.circulation.schedule.commands.setSchedule.setValue", JSON.parse(pump_on)); // oder pump_offder vorteil das ganze über ein "begrenztes" schedule zu lösen: man muss bei der auswertung eines bewegungsmelders keine zeiten mehr auswerten. wenn der melder nach 21 triggert und das schedule neu gesetzt wird, startet die pumpe eh nicht.
ich hab gestern ganz wild die schedules hin und her geschaltet und es hat super funktioniert.
danke für den adapter @tombox
Hey, da will ich mich mal dran hängen. Ich hatte überlegt, mir einen kippschalter im Bad irgendwo zu platzieren, mit dem ich die Zirkulationspumpe ad hoc starten kann (Use Case: man steht im Bad und will duschen/ das Waschbecken mit WW benutzen). Eigentlich sollte es doch mit dem Skript kein Problem sein:
- Eine Schaltervariable (bool) in den eigenen Datenpunkten zu setzen, welche von einem Blockly überwacht wird
- ist die Variable auf true, wird der schedule (pump_on) gesetzt -> die Zirkulation läuft an
- nach z.B. 5min wird automatisch pump_off gesetzt
Verstehe ich es richtig, dass mit deinem Skript die Zirkulationspumpe von 6-21 Uhr durch laufen würde, wenn sie nicht wieder deaktiviert wird?
edit: hab mal ein blockly gebaut
<xml xmlns="https://developers.google.com/blockly/xml"> <block type="procedures_defcustomnoreturn" id="C|6p3lu0hRewiE]Z{qnx" x="188" y="88"> <mutation statements="false"></mutation> <field name="NAME">start-zirk</field> <field name="SCRIPT">Ly8gc2NoZWR1bGUgenVtIGVpbnNjaGFsdGVuLCBhbGxlcmRpbmdzIG51ciB6d2lzY2hlbiA2IHVuZCAyMSB1aHINCg0KdmFyIHB1bXBfb24gPSAneyJtb24iOlt7InN0YXJ0IjoiMDA6MDAiLCJlbmQiOiIyMzo1OSIsIm1vZGUiOiJvbiIsInBvc2l0aW9uIjowfV0sInR1ZSI6W3sic3RhcnQiOiIwNjowMCIsImVuZCI6IjIxOjAwIiwibW9kZSI6Im9uIiwicG9zaXRpb24iOjB9XSwid2VkIjpbeyJzdGFydCI6IjA2OjAwIiwiZW5kIjoiMjE6MDAiLCJtb2RlIjoib24iLCJwb3NpdGlvbiI6MH1dLCJ0aHUiOlt7InN0YXJ0IjoiMDY6MDAiLCJlbmQiOiIyMTowMCIsIm1vZGUiOiJvbiIsInBvc2l0aW9uIjowfV0sImZyaSI6W3sic3RhcnQiOiIwNjowMCIsImVuZCI6IjIxOjAwIiwibW9kZSI6Im9uIiwicG9zaXRpb24iOjB9XSwic2F0IjpbeyJzdGFydCI6IjA2OjAwIiwiZW5kIjoiMjE6MDAiLCJtb2RlIjoib24iLCJwb3NpdGlvbiI6MH1dLCJzdW4iOlt7InN0YXJ0IjoiMDY6MDAiLCJlbmQiOiIyMTowMCIsIm1vZGUiOiJvbiIsInBvc2l0aW9uIjowfV19Jw0KDQpzZXRTdGF0ZSgidmllc3NtYW5uYXBpLjAuNjQ4NTEuMC5mZWF0dXJlcy5oZWF0aW5nLmRody5wdW1wcy5jaXJjdWxhdGlvbi5zY2hlZHVsZS5jb21tYW5kcy5zZXRTY2hlZHVsZS5zZXRWYWx1ZSIsIEpTT04ucGFyc2UocHVtcF9vbikpOyAvLyBvZGVyIHB1bXBfb2Zm</field> <comment pinned="false" h="80" w="160">Beschreibe diese Funktion …</comment> </block> <block type="on_ext" id="OrrP|oAEW44xm)#CHi/x" x="563" y="88"> <mutation xmlns="http://www.w3.org/1999/xhtml" items="1"></mutation> <field name="CONDITION">ne</field> <field name="ACK_CONDITION"></field> <value name="OID0"> <shadow type="field_oid" id="Vf:2${EvnUSG~})eift%"> <field name="oid">0_userdata.0.EigeneDatenpunkte.Heizung.ZirkulationAn</field> </shadow> </value> <statement name="STATEMENT"> <block type="controls_if" id=")wR[o:^O40MXsYo|IaVD"> <value name="IF0"> <block type="logic_compare" id="vKpLM;XY_RcIGh6,W8}T"> <field name="OP">EQ</field> <value name="A"> <block type="on_source" id=")fMs4Fcf$,iYXBW!bX,$"> <field name="ATTR">state.val</field> </block> </value> <value name="B"> <block type="logic_boolean" id="J5ijXAEjpY!7;c[{N/*G"> <field name="BOOL">TRUE</field> </block> </value> </block> </value> <statement name="DO0"> <block type="procedures_callcustomnoreturn" id="cPECRG/O*H71[C0pKS3W"> <mutation name="start-zirk"></mutation> <next> <block type="telegram" id="T9Dc^Salh?]_(:9YeLNs"> <field name="INSTANCE"></field> <field name="LOG"></field> <field name="SILENT">FALSE</field> <field name="PARSEMODE">default</field> <field name="DISABLE_WEB_PAGE_PREVIEW">FALSE</field> <value name="MESSAGE"> <shadow type="text" id="1_-=OC9}y+2rbxEF,Ps7"> <field name="TEXT">Zirkulationspumpe gestartet. 5 Minuten Timeout</field> </shadow> </value> <next> <block type="timeouts_wait" id="^+@b5Hgy=9Kt_8[LpCQ#"> <field name="DELAY">5</field> <field name="UNIT">min</field> <next> <block type="update" id="3`LHXWh~d.hYJhTrvq]*"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">0_userdata.0.EigeneDatenpunkte.Heizung.ZirkulationAn</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="logic_boolean" id="ex|rf*=(uRZ~2{=|JWFM"> <field name="BOOL">FALSE</field> </block> </value> <next> <block type="procedures_callcustomnoreturn" id="/vYJRv|tZ55;~!uax+W3"> <mutation name="stop-zirk"></mutation> <next> <block type="telegram" id=":QA|!PHN6C*+Eo6eIfHX"> <field name="INSTANCE"></field> <field name="LOG"></field> <field name="SILENT">FALSE</field> <field name="PARSEMODE">default</field> <field name="DISABLE_WEB_PAGE_PREVIEW">FALSE</field> <value name="MESSAGE"> <shadow type="text" id="G!f5)/iMynkY@xR7o@ZR"> <field name="TEXT">Zirkulationspumpe gestoppt.</field> </shadow> </value> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block> </statement> </block> </statement> </block> <block type="procedures_defcustomnoreturn" id="]0SXN4W+S6mvOy.:^$No" x="188" y="113"> <mutation statements="false"></mutation> <field name="NAME">stop-zirk</field> <field name="SCRIPT">Ly8gc2NoZWR1bGUgbGVlcmVuIC0gcHVtcGUgYXVzc2NoYWx0ZW4NCg0KdmFyIHB1bXBfb2ZmID0gJ3sibW9uIjpbXSwgInR1ZSI6W10sIndlZCI6W10sInRodSI6W10sImZyaSI6W10sInNhdCI6W10sInN1biI6W119JyANCg0KIA0KDQpzZXRTdGF0ZSgidmllc3NtYW5uYXBpLjAuNjQ4NTEuMC5mZWF0dXJlcy5oZWF0aW5nLmRody5wdW1wcy5jaXJjdWxhdGlvbi5zY2hlZHVsZS5jb21tYW5kcy5zZXRTY2hlZHVsZS5zZXRWYWx1ZSIsIEpTT04ucGFyc2UocHVtcF9vZmYpKTsgLy8gb2RlciBwdW1wX29mZg==</field> <comment pinned="false" h="80" w="160">Beschreibe diese Funktion …</comment> </block> </xml>Danke!
mading -
@quotschmacher sagte in Test ViessmannAPI v2.0.0:
@quotschmacher sagte in Test ViessmannAPI v2.0.0:
ich greife das mal auf: das sollte ja dann eigentlich zum einschalten über bewegungsmelder so laufen, das ich in viessmannapi.0.2050879.0.features.heating.dhw.pumps.circulation.schedule.commands.setSchedule.setValue bei auslösung des bewegungsmelders einen zeitplan mit der aktuellen zeit + ne stunde oder so eintrage und wenn keine bewegung mehr, dann einen leeren zeitplan. oder bin ich da jetzt ganz auf dem holzweg?
nochmal der vollständigkeithalber: zirkulationspumpe steuern geht soweit ganz gut (vitodens 200).
// schedule zum einschalten, allerdings nur zwischen 6 und 21 uhr var pump_on = '{"mon":[{"start":"06:00","end":"21:00","mode":"on","position":0}],"tue":[{"start":"06:00","end":"21:00","mode":"on","position":0}],"wed":[{"start":"06:00","end":"21:00","mode":"on","position":0}],"thu":[{"start":"06:00","end":"21:00","mode":"on","position":0}],"fri":[{"start":"06:00","end":"21:00","mode":"on","position":0}],"sat":[{"start":"06:00","end":"21:00","mode":"on","position":0}],"sun":[{"start":"06:00","end":"21:00","mode":"on","position":0}]}' // schedule leeren - pumpe ausschalten var pump_off = '{"mon":[], "tue":[],"wed":[],"thu":[],"fri":[],"sat":[],"sun":[]}' setState("viessmannapi.0.xxx.features.heating.dhw.pumps.circulation.schedule.commands.setSchedule.setValue", JSON.parse(pump_on)); // oder pump_offder vorteil das ganze über ein "begrenztes" schedule zu lösen: man muss bei der auswertung eines bewegungsmelders keine zeiten mehr auswerten. wenn der melder nach 21 triggert und das schedule neu gesetzt wird, startet die pumpe eh nicht.
ich hab gestern ganz wild die schedules hin und her geschaltet und es hat super funktioniert.
danke für den adapter @tombox
Hey, da will ich mich mal dran hängen. Ich hatte überlegt, mir einen kippschalter im Bad irgendwo zu platzieren, mit dem ich die Zirkulationspumpe ad hoc starten kann (Use Case: man steht im Bad und will duschen/ das Waschbecken mit WW benutzen). Eigentlich sollte es doch mit dem Skript kein Problem sein:
- Eine Schaltervariable (bool) in den eigenen Datenpunkten zu setzen, welche von einem Blockly überwacht wird
- ist die Variable auf true, wird der schedule (pump_on) gesetzt -> die Zirkulation läuft an
- nach z.B. 5min wird automatisch pump_off gesetzt
Verstehe ich es richtig, dass mit deinem Skript die Zirkulationspumpe von 6-21 Uhr durch laufen würde, wenn sie nicht wieder deaktiviert wird?
edit: hab mal ein blockly gebaut
<xml xmlns="https://developers.google.com/blockly/xml"> <block type="procedures_defcustomnoreturn" id="C|6p3lu0hRewiE]Z{qnx" x="188" y="88"> <mutation statements="false"></mutation> <field name="NAME">start-zirk</field> <field name="SCRIPT">Ly8gc2NoZWR1bGUgenVtIGVpbnNjaGFsdGVuLCBhbGxlcmRpbmdzIG51ciB6d2lzY2hlbiA2IHVuZCAyMSB1aHINCg0KdmFyIHB1bXBfb24gPSAneyJtb24iOlt7InN0YXJ0IjoiMDA6MDAiLCJlbmQiOiIyMzo1OSIsIm1vZGUiOiJvbiIsInBvc2l0aW9uIjowfV0sInR1ZSI6W3sic3RhcnQiOiIwNjowMCIsImVuZCI6IjIxOjAwIiwibW9kZSI6Im9uIiwicG9zaXRpb24iOjB9XSwid2VkIjpbeyJzdGFydCI6IjA2OjAwIiwiZW5kIjoiMjE6MDAiLCJtb2RlIjoib24iLCJwb3NpdGlvbiI6MH1dLCJ0aHUiOlt7InN0YXJ0IjoiMDY6MDAiLCJlbmQiOiIyMTowMCIsIm1vZGUiOiJvbiIsInBvc2l0aW9uIjowfV0sImZyaSI6W3sic3RhcnQiOiIwNjowMCIsImVuZCI6IjIxOjAwIiwibW9kZSI6Im9uIiwicG9zaXRpb24iOjB9XSwic2F0IjpbeyJzdGFydCI6IjA2OjAwIiwiZW5kIjoiMjE6MDAiLCJtb2RlIjoib24iLCJwb3NpdGlvbiI6MH1dLCJzdW4iOlt7InN0YXJ0IjoiMDY6MDAiLCJlbmQiOiIyMTowMCIsIm1vZGUiOiJvbiIsInBvc2l0aW9uIjowfV19Jw0KDQpzZXRTdGF0ZSgidmllc3NtYW5uYXBpLjAuNjQ4NTEuMC5mZWF0dXJlcy5oZWF0aW5nLmRody5wdW1wcy5jaXJjdWxhdGlvbi5zY2hlZHVsZS5jb21tYW5kcy5zZXRTY2hlZHVsZS5zZXRWYWx1ZSIsIEpTT04ucGFyc2UocHVtcF9vbikpOyAvLyBvZGVyIHB1bXBfb2Zm</field> <comment pinned="false" h="80" w="160">Beschreibe diese Funktion …</comment> </block> <block type="on_ext" id="OrrP|oAEW44xm)#CHi/x" x="563" y="88"> <mutation xmlns="http://www.w3.org/1999/xhtml" items="1"></mutation> <field name="CONDITION">ne</field> <field name="ACK_CONDITION"></field> <value name="OID0"> <shadow type="field_oid" id="Vf:2${EvnUSG~})eift%"> <field name="oid">0_userdata.0.EigeneDatenpunkte.Heizung.ZirkulationAn</field> </shadow> </value> <statement name="STATEMENT"> <block type="controls_if" id=")wR[o:^O40MXsYo|IaVD"> <value name="IF0"> <block type="logic_compare" id="vKpLM;XY_RcIGh6,W8}T"> <field name="OP">EQ</field> <value name="A"> <block type="on_source" id=")fMs4Fcf$,iYXBW!bX,$"> <field name="ATTR">state.val</field> </block> </value> <value name="B"> <block type="logic_boolean" id="J5ijXAEjpY!7;c[{N/*G"> <field name="BOOL">TRUE</field> </block> </value> </block> </value> <statement name="DO0"> <block type="procedures_callcustomnoreturn" id="cPECRG/O*H71[C0pKS3W"> <mutation name="start-zirk"></mutation> <next> <block type="telegram" id="T9Dc^Salh?]_(:9YeLNs"> <field name="INSTANCE"></field> <field name="LOG"></field> <field name="SILENT">FALSE</field> <field name="PARSEMODE">default</field> <field name="DISABLE_WEB_PAGE_PREVIEW">FALSE</field> <value name="MESSAGE"> <shadow type="text" id="1_-=OC9}y+2rbxEF,Ps7"> <field name="TEXT">Zirkulationspumpe gestartet. 5 Minuten Timeout</field> </shadow> </value> <next> <block type="timeouts_wait" id="^+@b5Hgy=9Kt_8[LpCQ#"> <field name="DELAY">5</field> <field name="UNIT">min</field> <next> <block type="update" id="3`LHXWh~d.hYJhTrvq]*"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">0_userdata.0.EigeneDatenpunkte.Heizung.ZirkulationAn</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="logic_boolean" id="ex|rf*=(uRZ~2{=|JWFM"> <field name="BOOL">FALSE</field> </block> </value> <next> <block type="procedures_callcustomnoreturn" id="/vYJRv|tZ55;~!uax+W3"> <mutation name="stop-zirk"></mutation> <next> <block type="telegram" id=":QA|!PHN6C*+Eo6eIfHX"> <field name="INSTANCE"></field> <field name="LOG"></field> <field name="SILENT">FALSE</field> <field name="PARSEMODE">default</field> <field name="DISABLE_WEB_PAGE_PREVIEW">FALSE</field> <value name="MESSAGE"> <shadow type="text" id="G!f5)/iMynkY@xR7o@ZR"> <field name="TEXT">Zirkulationspumpe gestoppt.</field> </shadow> </value> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block> </statement> </block> </statement> </block> <block type="procedures_defcustomnoreturn" id="]0SXN4W+S6mvOy.:^$No" x="188" y="113"> <mutation statements="false"></mutation> <field name="NAME">stop-zirk</field> <field name="SCRIPT">Ly8gc2NoZWR1bGUgbGVlcmVuIC0gcHVtcGUgYXVzc2NoYWx0ZW4NCg0KdmFyIHB1bXBfb2ZmID0gJ3sibW9uIjpbXSwgInR1ZSI6W10sIndlZCI6W10sInRodSI6W10sImZyaSI6W10sInNhdCI6W10sInN1biI6W119JyANCg0KIA0KDQpzZXRTdGF0ZSgidmllc3NtYW5uYXBpLjAuNjQ4NTEuMC5mZWF0dXJlcy5oZWF0aW5nLmRody5wdW1wcy5jaXJjdWxhdGlvbi5zY2hlZHVsZS5jb21tYW5kcy5zZXRTY2hlZHVsZS5zZXRWYWx1ZSIsIEpTT04ucGFyc2UocHVtcF9vZmYpKTsgLy8gb2RlciBwdW1wX29mZg==</field> <comment pinned="false" h="80" w="160">Beschreibe diese Funktion …</comment> </block> </xml>Danke!
mading@mading sagte in Test ViessmannAPI v2.0.0:
Verstehe ich es richtig, dass mit deinem Skript die Zirkulationspumpe von 6-21 Uhr durch laufen würde, wenn sie nicht wieder deaktiviert wird?
das tut sie so auch, dadurch das meist jemand zu hause ist. da ist es schon eine verbesserung denke ich mal, wenn sie ab und mal nicht korrekt schalten sollte, aber meist schon.
-
@quotschmacher sagte in Test ViessmannAPI v2.0.0:
@quotschmacher sagte in Test ViessmannAPI v2.0.0:
ich greife das mal auf: das sollte ja dann eigentlich zum einschalten über bewegungsmelder so laufen, das ich in viessmannapi.0.2050879.0.features.heating.dhw.pumps.circulation.schedule.commands.setSchedule.setValue bei auslösung des bewegungsmelders einen zeitplan mit der aktuellen zeit + ne stunde oder so eintrage und wenn keine bewegung mehr, dann einen leeren zeitplan. oder bin ich da jetzt ganz auf dem holzweg?
nochmal der vollständigkeithalber: zirkulationspumpe steuern geht soweit ganz gut (vitodens 200).
// schedule zum einschalten, allerdings nur zwischen 6 und 21 uhr var pump_on = '{"mon":[{"start":"06:00","end":"21:00","mode":"on","position":0}],"tue":[{"start":"06:00","end":"21:00","mode":"on","position":0}],"wed":[{"start":"06:00","end":"21:00","mode":"on","position":0}],"thu":[{"start":"06:00","end":"21:00","mode":"on","position":0}],"fri":[{"start":"06:00","end":"21:00","mode":"on","position":0}],"sat":[{"start":"06:00","end":"21:00","mode":"on","position":0}],"sun":[{"start":"06:00","end":"21:00","mode":"on","position":0}]}' // schedule leeren - pumpe ausschalten var pump_off = '{"mon":[], "tue":[],"wed":[],"thu":[],"fri":[],"sat":[],"sun":[]}' setState("viessmannapi.0.xxx.features.heating.dhw.pumps.circulation.schedule.commands.setSchedule.setValue", JSON.parse(pump_on)); // oder pump_offder vorteil das ganze über ein "begrenztes" schedule zu lösen: man muss bei der auswertung eines bewegungsmelders keine zeiten mehr auswerten. wenn der melder nach 21 triggert und das schedule neu gesetzt wird, startet die pumpe eh nicht.
ich hab gestern ganz wild die schedules hin und her geschaltet und es hat super funktioniert.
danke für den adapter @tombox
Hey, da will ich mich mal dran hängen. Ich hatte überlegt, mir einen kippschalter im Bad irgendwo zu platzieren, mit dem ich die Zirkulationspumpe ad hoc starten kann (Use Case: man steht im Bad und will duschen/ das Waschbecken mit WW benutzen). Eigentlich sollte es doch mit dem Skript kein Problem sein:
- Eine Schaltervariable (bool) in den eigenen Datenpunkten zu setzen, welche von einem Blockly überwacht wird
- ist die Variable auf true, wird der schedule (pump_on) gesetzt -> die Zirkulation läuft an
- nach z.B. 5min wird automatisch pump_off gesetzt
Verstehe ich es richtig, dass mit deinem Skript die Zirkulationspumpe von 6-21 Uhr durch laufen würde, wenn sie nicht wieder deaktiviert wird?
edit: hab mal ein blockly gebaut
<xml xmlns="https://developers.google.com/blockly/xml"> <block type="procedures_defcustomnoreturn" id="C|6p3lu0hRewiE]Z{qnx" x="188" y="88"> <mutation statements="false"></mutation> <field name="NAME">start-zirk</field> <field name="SCRIPT">Ly8gc2NoZWR1bGUgenVtIGVpbnNjaGFsdGVuLCBhbGxlcmRpbmdzIG51ciB6d2lzY2hlbiA2IHVuZCAyMSB1aHINCg0KdmFyIHB1bXBfb24gPSAneyJtb24iOlt7InN0YXJ0IjoiMDA6MDAiLCJlbmQiOiIyMzo1OSIsIm1vZGUiOiJvbiIsInBvc2l0aW9uIjowfV0sInR1ZSI6W3sic3RhcnQiOiIwNjowMCIsImVuZCI6IjIxOjAwIiwibW9kZSI6Im9uIiwicG9zaXRpb24iOjB9XSwid2VkIjpbeyJzdGFydCI6IjA2OjAwIiwiZW5kIjoiMjE6MDAiLCJtb2RlIjoib24iLCJwb3NpdGlvbiI6MH1dLCJ0aHUiOlt7InN0YXJ0IjoiMDY6MDAiLCJlbmQiOiIyMTowMCIsIm1vZGUiOiJvbiIsInBvc2l0aW9uIjowfV0sImZyaSI6W3sic3RhcnQiOiIwNjowMCIsImVuZCI6IjIxOjAwIiwibW9kZSI6Im9uIiwicG9zaXRpb24iOjB9XSwic2F0IjpbeyJzdGFydCI6IjA2OjAwIiwiZW5kIjoiMjE6MDAiLCJtb2RlIjoib24iLCJwb3NpdGlvbiI6MH1dLCJzdW4iOlt7InN0YXJ0IjoiMDY6MDAiLCJlbmQiOiIyMTowMCIsIm1vZGUiOiJvbiIsInBvc2l0aW9uIjowfV19Jw0KDQpzZXRTdGF0ZSgidmllc3NtYW5uYXBpLjAuNjQ4NTEuMC5mZWF0dXJlcy5oZWF0aW5nLmRody5wdW1wcy5jaXJjdWxhdGlvbi5zY2hlZHVsZS5jb21tYW5kcy5zZXRTY2hlZHVsZS5zZXRWYWx1ZSIsIEpTT04ucGFyc2UocHVtcF9vbikpOyAvLyBvZGVyIHB1bXBfb2Zm</field> <comment pinned="false" h="80" w="160">Beschreibe diese Funktion …</comment> </block> <block type="on_ext" id="OrrP|oAEW44xm)#CHi/x" x="563" y="88"> <mutation xmlns="http://www.w3.org/1999/xhtml" items="1"></mutation> <field name="CONDITION">ne</field> <field name="ACK_CONDITION"></field> <value name="OID0"> <shadow type="field_oid" id="Vf:2${EvnUSG~})eift%"> <field name="oid">0_userdata.0.EigeneDatenpunkte.Heizung.ZirkulationAn</field> </shadow> </value> <statement name="STATEMENT"> <block type="controls_if" id=")wR[o:^O40MXsYo|IaVD"> <value name="IF0"> <block type="logic_compare" id="vKpLM;XY_RcIGh6,W8}T"> <field name="OP">EQ</field> <value name="A"> <block type="on_source" id=")fMs4Fcf$,iYXBW!bX,$"> <field name="ATTR">state.val</field> </block> </value> <value name="B"> <block type="logic_boolean" id="J5ijXAEjpY!7;c[{N/*G"> <field name="BOOL">TRUE</field> </block> </value> </block> </value> <statement name="DO0"> <block type="procedures_callcustomnoreturn" id="cPECRG/O*H71[C0pKS3W"> <mutation name="start-zirk"></mutation> <next> <block type="telegram" id="T9Dc^Salh?]_(:9YeLNs"> <field name="INSTANCE"></field> <field name="LOG"></field> <field name="SILENT">FALSE</field> <field name="PARSEMODE">default</field> <field name="DISABLE_WEB_PAGE_PREVIEW">FALSE</field> <value name="MESSAGE"> <shadow type="text" id="1_-=OC9}y+2rbxEF,Ps7"> <field name="TEXT">Zirkulationspumpe gestartet. 5 Minuten Timeout</field> </shadow> </value> <next> <block type="timeouts_wait" id="^+@b5Hgy=9Kt_8[LpCQ#"> <field name="DELAY">5</field> <field name="UNIT">min</field> <next> <block type="update" id="3`LHXWh~d.hYJhTrvq]*"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">0_userdata.0.EigeneDatenpunkte.Heizung.ZirkulationAn</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="logic_boolean" id="ex|rf*=(uRZ~2{=|JWFM"> <field name="BOOL">FALSE</field> </block> </value> <next> <block type="procedures_callcustomnoreturn" id="/vYJRv|tZ55;~!uax+W3"> <mutation name="stop-zirk"></mutation> <next> <block type="telegram" id=":QA|!PHN6C*+Eo6eIfHX"> <field name="INSTANCE"></field> <field name="LOG"></field> <field name="SILENT">FALSE</field> <field name="PARSEMODE">default</field> <field name="DISABLE_WEB_PAGE_PREVIEW">FALSE</field> <value name="MESSAGE"> <shadow type="text" id="G!f5)/iMynkY@xR7o@ZR"> <field name="TEXT">Zirkulationspumpe gestoppt.</field> </shadow> </value> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block> </statement> </block> </statement> </block> <block type="procedures_defcustomnoreturn" id="]0SXN4W+S6mvOy.:^$No" x="188" y="113"> <mutation statements="false"></mutation> <field name="NAME">stop-zirk</field> <field name="SCRIPT">Ly8gc2NoZWR1bGUgbGVlcmVuIC0gcHVtcGUgYXVzc2NoYWx0ZW4NCg0KdmFyIHB1bXBfb2ZmID0gJ3sibW9uIjpbXSwgInR1ZSI6W10sIndlZCI6W10sInRodSI6W10sImZyaSI6W10sInNhdCI6W10sInN1biI6W119JyANCg0KIA0KDQpzZXRTdGF0ZSgidmllc3NtYW5uYXBpLjAuNjQ4NTEuMC5mZWF0dXJlcy5oZWF0aW5nLmRody5wdW1wcy5jaXJjdWxhdGlvbi5zY2hlZHVsZS5jb21tYW5kcy5zZXRTY2hlZHVsZS5zZXRWYWx1ZSIsIEpTT04ucGFyc2UocHVtcF9vZmYpKTsgLy8gb2RlciBwdW1wX29mZg==</field> <comment pinned="false" h="80" w="160">Beschreibe diese Funktion …</comment> </block> </xml>Danke!
madinghallo, verstehe ich dein Blockly richtig, das du über deinen eigenen Datenpunkt die Zirkulationspumpe für 5min einschaltest und diese dann automatisch wieder ausgeht??
bei uns läuft die Pumpe aktuell nur Früh (4:30 - 11:00)und Abends (16:00 - 22:00) ich überlege das aber per Anwesenheit zu machen, falls keiner da ist, soll sie eben aus sein..
hoffe damit lässt sich noch bissel Energie sparen
könntest du mir eventuell helfen das Blockly anzupassen?
-
hallo, verstehe ich dein Blockly richtig, das du über deinen eigenen Datenpunkt die Zirkulationspumpe für 5min einschaltest und diese dann automatisch wieder ausgeht??
bei uns läuft die Pumpe aktuell nur Früh (4:30 - 11:00)und Abends (16:00 - 22:00) ich überlege das aber per Anwesenheit zu machen, falls keiner da ist, soll sie eben aus sein..
hoffe damit lässt sich noch bissel Energie sparen
könntest du mir eventuell helfen das Blockly anzupassen?
@banditfg das Blockly schaltet die ZP ein als würde sie dauernd laufen. Nach 5 Min Timeout schaltet sie den schedule wieder aus.
Klar, helfe gern. Welcher Datenpunkt bestimmt bei dir, ob jemand da ist?
Blöde Frage: läuft bei dir die Zirkulationspumpe wirklich stundenlang? Du verlierst doch wahnsinnig viel Wärme.
-
@banditfg das Blockly schaltet die ZP ein als würde sie dauernd laufen. Nach 5 Min Timeout schaltet sie den schedule wieder aus.
Klar, helfe gern. Welcher Datenpunkt bestimmt bei dir, ob jemand da ist?
Blöde Frage: läuft bei dir die Zirkulationspumpe wirklich stundenlang? Du verlierst doch wahnsinnig viel Wärme.
der Datenpunkt der bei mir bestimmt ob jemand da ist heißt einfach "Anwesend", der steht auf true wenn entweder das Handy meine Frau oder meins Zuhause ist. (per Geofency)
Ja die Zirkulationspumpe läuft aktuell Früh (4:30 - 11:00)und Abends (16:00 - 22:00) in dem 5/10 (im Zeitraum von 10Minuten läuft die Pumpe 5min) Intervall.
Das hab ich erst vor paar tagen so eingestellt, vorher lief die immer durch..
Du hast schon recht, in der Zeit wo die Zirkulationspumpe läuft kann man zusehen wie die Boilertemperatur runter geht..
Das 5/25 Intervall würde vielleicht noch was sparen...Deswegen war nun meine Überlegung die Zirkulationspumpe nur bei Anwesenheit in den Zeitfenstern laufen zu lassen.. denkst du das ist machbar??
-
der Datenpunkt der bei mir bestimmt ob jemand da ist heißt einfach "Anwesend", der steht auf true wenn entweder das Handy meine Frau oder meins Zuhause ist. (per Geofency)
Ja die Zirkulationspumpe läuft aktuell Früh (4:30 - 11:00)und Abends (16:00 - 22:00) in dem 5/10 (im Zeitraum von 10Minuten läuft die Pumpe 5min) Intervall.
Das hab ich erst vor paar tagen so eingestellt, vorher lief die immer durch..
Du hast schon recht, in der Zeit wo die Zirkulationspumpe läuft kann man zusehen wie die Boilertemperatur runter geht..
Das 5/25 Intervall würde vielleicht noch was sparen...Deswegen war nun meine Überlegung die Zirkulationspumpe nur bei Anwesenheit in den Zeitfenstern laufen zu lassen.. denkst du das ist machbar??
-
bin zufällig im Viessmann Forum darüber gestolpert, falls es jemanden interessiert: kostenloses geofencing: https://www.viessmann-community.com/t5/The-Viessmann-API/Geofencing-for-free/td-p/261838
-
Hallo alle die hier mitlesen!
Habe den Adapter installiert, bei Viessmann eingeloggt, code geholt und eingegeben.
Adapter wird grün, im Log folgende Info:viessmannapi.0 2022-02-20 15:29:01.452 info No installation found viessmannapi.0 2022-02-20 15:28:53.519 info starting. Version 2.0.8 in /opt/iobroker/node_modules/iobroker.viessmannapi, node: v14.19.0, js-controller: 4.0.14Ich versuche die Daten der Heizung meines Sohnes auszulesen. Es werden keine Datenpunkte angelegt.
Kann es daran liegen, dass ich nicht der Eigentümer (Admin) bin, sondern nur einen "Lesezugang" mit Vitodata 100 habe?
Die Anlage ist unter #1 aufgeführt (Festbrennstoffkessel VT 200 FO1).@tontechniker
Dein Eintrag ist ja schon eine Weile her.
Ich habe keine Antwort gesehen.
konntest DU das Problem lösen?
Ich hab dasselbe Problem.Hier mal die LOG Einträge.
viessmannapi.0
2022-10-09 20:38:39.419 info No installation foundviessmannapi.0
2022-10-09 20:38:39.418 debug {"data":[],"cursor":{"next":""}}viessmannapi.0
2022-10-09 20:38:38.444 debug {"access_token":"eyJlbmMiOiJBMjU2R0NNIiwiYWxnIjoiUlNBLU9BRVAtMjU2In0.k17v5lsevgJxufY5wyZnSJAisQMWGywsIQJ_Lhe5C6BI7VbWYk2ntdxguV4TgzJOpGqm862UBQxLtauOY94CExr2S44kzOROcluZ_AA-JhzlCrDeO0GFr0IvZqWkJx7SmHkGNIBb7cxa20UemLL-T_G63nKLWg0aMkOeBLjSL4nFhtijUIHpLUAnlciUdwjOl2BdWixKg3Px1HbI-PKJNdqYG2PPP7iDc6_m-TAwBd6fDeb-AdrQ144VJ5BMFbX8KtG5AFlhuZFTbNAjivEYeQUCYfpVyK1aQp42DjGe5DYnNmehn__SbF326Rb_45tg4nD88oTtF-JpwUSu3ENyw2AsjdeqXre-jDVbgoaUP_Jd8tscsPoZONMF5KfVhKnNMuc8dBLlxVgCPGEcee3WTQU7wNMunpYZhevtxIsRARFbtHERfmXwGij5jGWiKzH-OdMlpzczuvjFUM_Dn2J8Vx2LucyD_vFqJjknrT95GzUJzgYqRxDHVLj2DC4xvh07KFHLyMrt4ufVrBV_5Cd4ILo-flQnT3j9H31QIRpXVJWprgE9ojjjXEDqy5n6M_vdm2etd23xLjWvxm-_dwf2WTyg2HRYC1g3Wu_ndlKSs7iRAtFmae9TxZ7D2JG1Ja8brTGFPYrA-jbYv7YNkmoDo-X4jWmD4SzexvINUAjOack.vu4sNyF4slRz36zJ.Py0DPNPqvzdwPFanmIgwsmrTfTZHoO9iIWAkTGsOFoIap97zjfQLNb4rBDPblCXru2EPwYHct5tMVD46IX6C88puipwhoiNIm5tb0p_GLQzr2abIfZwc3e5Q5M3zUF5UbpUWSWpSTt_SLRsERcxR7lkprLHN19IQSyiC7gZ-wf__c2_H5pyJPG53GDZ29noI_6AyQvWQR6A-dUpj8HLeSUPTZMRsCM3X1XaG5EiZsxwdZ58A-MNJTCbM7OrLWSj3zdLhR5mbVrMdG-S4J334HtAqvg_DNkxXvrWKqRUluK3n91vFmE1Cgh5lFEPyJSIMbpc_xaffE9AcubM2ZJ83V15RjDNbOCxfxEpCG0mFyexz2v6ulxrpPWEDI1lz-H5NPS7n-qOjGKkj53PSeRXdNMh2qmjwplGTBT1QmRDps6-1cO2u6F_rm2C3QKfoeYTY00K7XNi-ezvev01_f7f-RSMHVo9SfOhvMZ5quQU-vVhzdJnbyUkoPzz4Ix3R1Vvf5uxmagFmfiV_btgdoAbEgjC2L8Et3FuuT5mY6TZb_u-kPB7f-IFCvuPFrrWMHSDYsMk6pkJyHeW-BlNqLtwMgpxGw8s_Req4JDD2ap_Dmqofc9SMH6062BQMaWGMsEYARUg-xQZvEfZtldxQ6NJUQB_nE5RnqJGTSaHE6kRXs0YZRoF2euUDV4eALJ89WDrk_tRXqVcxSoP5XVQeps36LJHZiiIWSkOG9JkDuXzNDGyfcgLCBJDjMm8PYugualy44mnwR6uvMts8cXzz4xXpC5UnJgh_2780-1-zaoks8coL3utvjmuUVkuadI5r8oASw51wmzEOQLl4duN3LlHGXyT9YC3-y_SgyUyR_5xhonthWvdXBvQ7WsICcMTbBXl9NXkRqjzC-vrt66lQJsHQQAnepli0Di2YneueqhAWZr6tDhQW-sTwpAZPPcPeHcNCuh3zBwyDsSu3hk2CEU2dYx70qMLyU8mdWAEH1eWapu9e8FtBXp1CmaafolcPuQdwKU36GAg3wkUzE0bpxc3fTQF4QqJPraAb_701PB1Ti05uevw7n6oF4RbIJMWu6vKIPfXCwho4Da0cJsWZvQ2dd2EQguuCrIaqn_NanxFR2s6gNF1Efb5wJXDao4l5YnHsg-TLxahBKpQgvEnr9bwXa8bTL_GWKoTNbpD25N-KqUwWsW03mLo99-CrlNmeA2mNwglTUrccgBSMtl_lkv283fiaRYekZMjGUpEDZztt9x300VDLwpcyP13t6Mct9FZab4swjLpRtXMWH8ezEQthiztW-EnMQ-PYX7bdy6I2Yq-zoCM1SaMZN6Wndj3tZZDQe_wlJEQEOB0nfBw7YpNFJ4MuxGCwS_iHhjC5yvhG_jJjnglaZ-._XziCb3bqtfMbq_hshkUMw","refresh_token":"eb8a26ea252e6e55479407fb87fbf91c","token_type":"Bearer","expires_in":3600}viessmannapi.0
2022-10-09 20:38:34.216 debug 5S0XNH5XqMXVf5an2azIKUVN1Y3Y7B-u6NtOpfCJMH8viessmannapi.0
2022-10-09 20:38:34.211 debug "http://localhost:4200/?code=5S0XNH5XqMXVf5an2azIKUVN1Y3Y7B-u6NtOpfCJMH8"viessmannapi.0
2022-10-09 20:38:16.991 debug " \n\n \n\n\n\n \n\n\n \n<!DOCTYPE html>\n<html>\n\t<head>\n\t\t<title>Viessmann Login</title>\n\t\t<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">\n <link rel="icon" href="/login/resources/nevislogrend/applications/IDM_OIDC_IDP_V2/webdata/images/favicon.png" type="image/png">\n\t\t<link rel="stylesheet" href="https://fonts.googleapis.com/icon?family=Material+Icons\"/>\n \t<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Roboto:100,300,400,500,700,900\"/>\n\t\t<link rel="stylesheet" href="/login/resources/nevislogrend/applications/IDM_OIDC_IDP_V2/webdata/css/material.min.css"/>\n \t<link rel="stylesheet" href="/login/resources/nevislogrend/applications/IDM_OIDC_IDP_V2/webdata/css/customerRegistration.css"/>\n <script src="/login/resources/nevislogrend/applications/IDM_OIDC_IDP_V2/webdata/js/material.min.js"></script>\n <script src="/login/resources/nevislogrend/applications/IDM_OIDC_IDP_V2/webdata/js/showpw.js"></script>\n\t\t<meta name="viewport" content="width=device-width, initial-scale=1.0">\n\t</head>\n\t<body>\n\t<div class="b2b-main-background"> \t <div class="font-size-20px b2b-regestration-headline"> <div class="mdl-grid mdl-grid--no-spacing"> <div class="b2b-regestration-headline-item" style="margin-left:24px">Login</div>\n </div> </div> \n <div class="b2b-main-container"> <div class="b2b-sub-container"> <div class="mdl-grid mdl-grid--no-spacing"> <div class="mdl-layout-spacer"></div>\n <img src="/login/resources/nevislogrend/applications/IDM_OIDC_IDP_V2/webdata/images/viessmann-logo.png" alt="viessmann-logo" class="b2b-vi-image"/>\n <div class="mdl-layout-spacer"></div>\n </div> <form class="b2b-form-space" id="AuthUidDialogWithoutCaptcha" name="AuthUidDialogWithoutCaptcha" method="POST" target="_self" action="https://iam.viessmann.com/idp/v2/authorize?client_id=xxxxxxxx&response_type=code&scope=IoT+User+offline_access&code_challenge_method=S256&code_challenge=hc_rtsIo7m8_iu4PuMaawQkTMYb-_zETWg9vHRsxJJA&redirect_uri=http:%2F%2Flocalhost:4200%2F\" autocomplete="off" accept-charset="UTF-8"> \n\n\n \n \n\n\n\n\n\n\n <div class="mdl-textfield mdl-js-textfield mdl-textfield--floating-label input-style"> <input class="mdl-textfield__input b2b-profile-completion-input-margin" autocorrect="off" autocapitalize="off" autocomplete="username" spellcheck="false" \n type="text" name="isiwebuserid" size="20" maxlength="255" value="" tabindex="2" placeholder="User name">\n <input type="password" style="display:none" name="hiddenPassword" autocomplete="off">\n </div> \n\n\n \n \n\n\n\n\n\n\n<div class="mdl-grid mdl-grid--no-spacing" style="padding-top:16px"> <div class="mdl-cell" style="width:auto"> <label class="mdl-checkbox mdl-js-checkbox mdl-js-ripple-effect" for="checkbox"> <input type="checkbox" name="stayloggedin" value="Stay logged on" tabindex="3" class="mdl-checkbox__input" id="checkbox" style="margin-left:0">\n <span class="mdl-checkbox__label">Stay logged on</span>\n </label> </div> </div> \n\n\n \n\n\n\n \n\n\n\n\n\n\n<div class="mdl-grid mdl-grid--no-spacing" style="padding-top:60px"> <div class="mdl-layout-spacer" style="min-width: 50px;"></div>\n <div class="mdl-cell" style="width:auto"> <button class="mdl-button mdl-js-button mdl-button--raised mdl-button--colored login-button" type="submit" name="submitbtn" value="Next" id="loginButton">Next</button>\n </div> </div> \n\n \n </form> <script type="text/javascript">document.forms['AuthUidDialogWithoutCaptcha'].elements[0].focus()</script>\n </div> </div> <div class="mdl-layout-spacer"></div> </div> \n\t\t\t\t<script src="/login/resources/nevislogrend/applications/IDM_OIDC_IDP_V2/webdata/js/jquery-3.3.1.min.js"></script>\n\t\t<script src="/login/resources/nevislogrend/applications/IDM_OIDC_IDP_V2/webdata/js/dropdown.js"></script>\n <script src="/login/resources/nevislogrend/applications/IDM_OIDC_IDP_V2/webdata/js/nevislogrend.js"></script>\n\t</body> </html> \n\n\n\n "viessmannapi.0
2022-10-09 20:38:04.284 info starting. Version 2.0.9 in /opt/iobroker/node_modules/iobroker.viessmannapi, node: v14.19.1, js-controller: 4.0.21viessmannapi.0
2022-10-09 20:38:03.841 debug Plugin sentry Initialize Plugin (enabled=true)viessmannapi.0
2022-10-09 20:38:03.657 debug States connected to redis: 127.0.0.1:9000viessmannapi.0
2022-10-09 20:38:03.573 debug States create User PubSub Clientviessmannapi.0
2022-10-09 20:38:03.571 debug States create System PubSub Clientviessmannapi.0
2022-10-09 20:38:03.457 debug Redis States: Use Redis connection: 127.0.0.1:9000viessmannapi.0
2022-10-09 20:38:03.407 debug Objects connected to redis: 127.0.0.1:9001viessmannapi.0
2022-10-09 20:38:03.399 debug Objects client initialize lua scriptsviessmannapi.0
2022-10-09 20:38:03.302 debug Objects create User PubSub Clientviessmannapi.0
2022-10-09 20:38:03.301 debug Objects create System PubSub Clientviessmannapi.0
2022-10-09 20:38:03.299 debug Objects client ready ... initialize nowviessmannapi.0
2022-10-09 20:38:03.246 debug Redis Objects: Use Redis connection: 127.0.0.1:9001 -
@tontechniker
Dein Eintrag ist ja schon eine Weile her.
Ich habe keine Antwort gesehen.
konntest DU das Problem lösen?
Ich hab dasselbe Problem.Hier mal die LOG Einträge.
viessmannapi.0
2022-10-09 20:38:39.419 info No installation foundviessmannapi.0
2022-10-09 20:38:39.418 debug {"data":[],"cursor":{"next":""}}viessmannapi.0
2022-10-09 20:38:38.444 debug {"access_token":"eyJlbmMiOiJBMjU2R0NNIiwiYWxnIjoiUlNBLU9BRVAtMjU2In0.k17v5lsevgJxufY5wyZnSJAisQMWGywsIQJ_Lhe5C6BI7VbWYk2ntdxguV4TgzJOpGqm862UBQxLtauOY94CExr2S44kzOROcluZ_AA-JhzlCrDeO0GFr0IvZqWkJx7SmHkGNIBb7cxa20UemLL-T_G63nKLWg0aMkOeBLjSL4nFhtijUIHpLUAnlciUdwjOl2BdWixKg3Px1HbI-PKJNdqYG2PPP7iDc6_m-TAwBd6fDeb-AdrQ144VJ5BMFbX8KtG5AFlhuZFTbNAjivEYeQUCYfpVyK1aQp42DjGe5DYnNmehn__SbF326Rb_45tg4nD88oTtF-JpwUSu3ENyw2AsjdeqXre-jDVbgoaUP_Jd8tscsPoZONMF5KfVhKnNMuc8dBLlxVgCPGEcee3WTQU7wNMunpYZhevtxIsRARFbtHERfmXwGij5jGWiKzH-OdMlpzczuvjFUM_Dn2J8Vx2LucyD_vFqJjknrT95GzUJzgYqRxDHVLj2DC4xvh07KFHLyMrt4ufVrBV_5Cd4ILo-flQnT3j9H31QIRpXVJWprgE9ojjjXEDqy5n6M_vdm2etd23xLjWvxm-_dwf2WTyg2HRYC1g3Wu_ndlKSs7iRAtFmae9TxZ7D2JG1Ja8brTGFPYrA-jbYv7YNkmoDo-X4jWmD4SzexvINUAjOack.vu4sNyF4slRz36zJ.Py0DPNPqvzdwPFanmIgwsmrTfTZHoO9iIWAkTGsOFoIap97zjfQLNb4rBDPblCXru2EPwYHct5tMVD46IX6C88puipwhoiNIm5tb0p_GLQzr2abIfZwc3e5Q5M3zUF5UbpUWSWpSTt_SLRsERcxR7lkprLHN19IQSyiC7gZ-wf__c2_H5pyJPG53GDZ29noI_6AyQvWQR6A-dUpj8HLeSUPTZMRsCM3X1XaG5EiZsxwdZ58A-MNJTCbM7OrLWSj3zdLhR5mbVrMdG-S4J334HtAqvg_DNkxXvrWKqRUluK3n91vFmE1Cgh5lFEPyJSIMbpc_xaffE9AcubM2ZJ83V15RjDNbOCxfxEpCG0mFyexz2v6ulxrpPWEDI1lz-H5NPS7n-qOjGKkj53PSeRXdNMh2qmjwplGTBT1QmRDps6-1cO2u6F_rm2C3QKfoeYTY00K7XNi-ezvev01_f7f-RSMHVo9SfOhvMZ5quQU-vVhzdJnbyUkoPzz4Ix3R1Vvf5uxmagFmfiV_btgdoAbEgjC2L8Et3FuuT5mY6TZb_u-kPB7f-IFCvuPFrrWMHSDYsMk6pkJyHeW-BlNqLtwMgpxGw8s_Req4JDD2ap_Dmqofc9SMH6062BQMaWGMsEYARUg-xQZvEfZtldxQ6NJUQB_nE5RnqJGTSaHE6kRXs0YZRoF2euUDV4eALJ89WDrk_tRXqVcxSoP5XVQeps36LJHZiiIWSkOG9JkDuXzNDGyfcgLCBJDjMm8PYugualy44mnwR6uvMts8cXzz4xXpC5UnJgh_2780-1-zaoks8coL3utvjmuUVkuadI5r8oASw51wmzEOQLl4duN3LlHGXyT9YC3-y_SgyUyR_5xhonthWvdXBvQ7WsICcMTbBXl9NXkRqjzC-vrt66lQJsHQQAnepli0Di2YneueqhAWZr6tDhQW-sTwpAZPPcPeHcNCuh3zBwyDsSu3hk2CEU2dYx70qMLyU8mdWAEH1eWapu9e8FtBXp1CmaafolcPuQdwKU36GAg3wkUzE0bpxc3fTQF4QqJPraAb_701PB1Ti05uevw7n6oF4RbIJMWu6vKIPfXCwho4Da0cJsWZvQ2dd2EQguuCrIaqn_NanxFR2s6gNF1Efb5wJXDao4l5YnHsg-TLxahBKpQgvEnr9bwXa8bTL_GWKoTNbpD25N-KqUwWsW03mLo99-CrlNmeA2mNwglTUrccgBSMtl_lkv283fiaRYekZMjGUpEDZztt9x300VDLwpcyP13t6Mct9FZab4swjLpRtXMWH8ezEQthiztW-EnMQ-PYX7bdy6I2Yq-zoCM1SaMZN6Wndj3tZZDQe_wlJEQEOB0nfBw7YpNFJ4MuxGCwS_iHhjC5yvhG_jJjnglaZ-._XziCb3bqtfMbq_hshkUMw","refresh_token":"eb8a26ea252e6e55479407fb87fbf91c","token_type":"Bearer","expires_in":3600}viessmannapi.0
2022-10-09 20:38:34.216 debug 5S0XNH5XqMXVf5an2azIKUVN1Y3Y7B-u6NtOpfCJMH8viessmannapi.0
2022-10-09 20:38:34.211 debug "http://localhost:4200/?code=5S0XNH5XqMXVf5an2azIKUVN1Y3Y7B-u6NtOpfCJMH8"viessmannapi.0
2022-10-09 20:38:16.991 debug " \n\n \n\n\n\n \n\n\n \n<!DOCTYPE html>\n<html>\n\t<head>\n\t\t<title>Viessmann Login</title>\n\t\t<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">\n <link rel="icon" href="/login/resources/nevislogrend/applications/IDM_OIDC_IDP_V2/webdata/images/favicon.png" type="image/png">\n\t\t<link rel="stylesheet" href="https://fonts.googleapis.com/icon?family=Material+Icons\"/>\n \t<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Roboto:100,300,400,500,700,900\"/>\n\t\t<link rel="stylesheet" href="/login/resources/nevislogrend/applications/IDM_OIDC_IDP_V2/webdata/css/material.min.css"/>\n \t<link rel="stylesheet" href="/login/resources/nevislogrend/applications/IDM_OIDC_IDP_V2/webdata/css/customerRegistration.css"/>\n <script src="/login/resources/nevislogrend/applications/IDM_OIDC_IDP_V2/webdata/js/material.min.js"></script>\n <script src="/login/resources/nevislogrend/applications/IDM_OIDC_IDP_V2/webdata/js/showpw.js"></script>\n\t\t<meta name="viewport" content="width=device-width, initial-scale=1.0">\n\t</head>\n\t<body>\n\t<div class="b2b-main-background"> \t <div class="font-size-20px b2b-regestration-headline"> <div class="mdl-grid mdl-grid--no-spacing"> <div class="b2b-regestration-headline-item" style="margin-left:24px">Login</div>\n </div> </div> \n <div class="b2b-main-container"> <div class="b2b-sub-container"> <div class="mdl-grid mdl-grid--no-spacing"> <div class="mdl-layout-spacer"></div>\n <img src="/login/resources/nevislogrend/applications/IDM_OIDC_IDP_V2/webdata/images/viessmann-logo.png" alt="viessmann-logo" class="b2b-vi-image"/>\n <div class="mdl-layout-spacer"></div>\n </div> <form class="b2b-form-space" id="AuthUidDialogWithoutCaptcha" name="AuthUidDialogWithoutCaptcha" method="POST" target="_self" action="https://iam.viessmann.com/idp/v2/authorize?client_id=xxxxxxxx&response_type=code&scope=IoT+User+offline_access&code_challenge_method=S256&code_challenge=hc_rtsIo7m8_iu4PuMaawQkTMYb-_zETWg9vHRsxJJA&redirect_uri=http:%2F%2Flocalhost:4200%2F\" autocomplete="off" accept-charset="UTF-8"> \n\n\n \n \n\n\n\n\n\n\n <div class="mdl-textfield mdl-js-textfield mdl-textfield--floating-label input-style"> <input class="mdl-textfield__input b2b-profile-completion-input-margin" autocorrect="off" autocapitalize="off" autocomplete="username" spellcheck="false" \n type="text" name="isiwebuserid" size="20" maxlength="255" value="" tabindex="2" placeholder="User name">\n <input type="password" style="display:none" name="hiddenPassword" autocomplete="off">\n </div> \n\n\n \n \n\n\n\n\n\n\n<div class="mdl-grid mdl-grid--no-spacing" style="padding-top:16px"> <div class="mdl-cell" style="width:auto"> <label class="mdl-checkbox mdl-js-checkbox mdl-js-ripple-effect" for="checkbox"> <input type="checkbox" name="stayloggedin" value="Stay logged on" tabindex="3" class="mdl-checkbox__input" id="checkbox" style="margin-left:0">\n <span class="mdl-checkbox__label">Stay logged on</span>\n </label> </div> </div> \n\n\n \n\n\n\n \n\n\n\n\n\n\n<div class="mdl-grid mdl-grid--no-spacing" style="padding-top:60px"> <div class="mdl-layout-spacer" style="min-width: 50px;"></div>\n <div class="mdl-cell" style="width:auto"> <button class="mdl-button mdl-js-button mdl-button--raised mdl-button--colored login-button" type="submit" name="submitbtn" value="Next" id="loginButton">Next</button>\n </div> </div> \n\n \n </form> <script type="text/javascript">document.forms['AuthUidDialogWithoutCaptcha'].elements[0].focus()</script>\n </div> </div> <div class="mdl-layout-spacer"></div> </div> \n\t\t\t\t<script src="/login/resources/nevislogrend/applications/IDM_OIDC_IDP_V2/webdata/js/jquery-3.3.1.min.js"></script>\n\t\t<script src="/login/resources/nevislogrend/applications/IDM_OIDC_IDP_V2/webdata/js/dropdown.js"></script>\n <script src="/login/resources/nevislogrend/applications/IDM_OIDC_IDP_V2/webdata/js/nevislogrend.js"></script>\n\t</body> </html> \n\n\n\n "viessmannapi.0
2022-10-09 20:38:04.284 info starting. Version 2.0.9 in /opt/iobroker/node_modules/iobroker.viessmannapi, node: v14.19.1, js-controller: 4.0.21viessmannapi.0
2022-10-09 20:38:03.841 debug Plugin sentry Initialize Plugin (enabled=true)viessmannapi.0
2022-10-09 20:38:03.657 debug States connected to redis: 127.0.0.1:9000viessmannapi.0
2022-10-09 20:38:03.573 debug States create User PubSub Clientviessmannapi.0
2022-10-09 20:38:03.571 debug States create System PubSub Clientviessmannapi.0
2022-10-09 20:38:03.457 debug Redis States: Use Redis connection: 127.0.0.1:9000viessmannapi.0
2022-10-09 20:38:03.407 debug Objects connected to redis: 127.0.0.1:9001viessmannapi.0
2022-10-09 20:38:03.399 debug Objects client initialize lua scriptsviessmannapi.0
2022-10-09 20:38:03.302 debug Objects create User PubSub Clientviessmannapi.0
2022-10-09 20:38:03.301 debug Objects create System PubSub Clientviessmannapi.0
2022-10-09 20:38:03.299 debug Objects client ready ... initialize nowviessmannapi.0
2022-10-09 20:38:03.246 debug Redis Objects: Use Redis connection: 127.0.0.1:9001@aftershowman Bitte den forum Beitrag löschen und dein Passwort von deinem Account ändern. Der Log erhält sensible Informationen.
Es kann einfach unter dem account keine Installationen finden anscheinend ist der Account nicht richtig verknüpft -
Das mit der Zirkulationspumpe über die Viessmann Cloud ansteuern funktioniert zwar, aber durch die eingeschränkte Anzahl der Calls pro Tag nur unzuverlässig. Vielleicht hilft derPost ja dem ein oder anderen: https://forum.iobroker.net/topic/48853/ww-zirkulationspumpe-bedarfsgerecht-ein-und-ausschalten/15?_=1665419497824
-
Hi ich habe ein neuen Adapter für Viessman erstellt
Man benötigt eine ClientID von der Viessmann API
https://app.developer.viessmann.com besuchen und eine Client ID mit diesen Optionen erstellen:
Name: iobroker
Google reCAPTCHA deaktivieren
Redirect URI: http://localhost:4200/Die Client ID in die Einstellungen kopieren
Außentemperatur findet sich z.B. hier:
viessmannapi.0.XXXXX.0.features.heating.sensors.temperature.outside.properties.value.value
Weitere Beispiele siehe UntenRemote Befehle sind möglich unter
viessmannapi.0.XXXXX.0.features.heating.dhw.temperature.main.commands.setTargetTemperature.setValueZum Installieren:
Via AdaptersucheIn den Instanzoptionen die jeweiligen Optionen einstellen.
Github
https://github.com/TA2k/ioBroker.viessmannapiKompatibilitätsliste:
https://documentation.viessmann.com/static/compatibility
Regelungen für Wand- oder Kompaktgeräte
Vitotronic 200, Typ HO1, HO1A, HO1B, HO1D, HO2B, HO2C
Vitotronic 200 RF, Typ HO1C, HO1E
Regelungen für bodenstehende Heizkessel
Vitotronic 200, Typ KO1B, KO2B, KW6, KW6A, KW6B, KW1, KW2, KW4, KW5
Vitotronic 300, Typ KW3
Regelungen für Wärmepumpen und Hybridgeräte
Vitotronic 200, Typ WO1A, WO1B, WO1C
Regelungen für Festbrennstoffkessel
Vitoligno 200-S mit Ecotronic (ab Softwarestand 2.03)
Vitoligno 250-S mit Ecotronic (ab Softwarestand 2.00)
Vitoligno 300-C mit Ecotronic (ab Softwarestand 2.12)
Vitoligno 300-P mit Vitotronic 200 FO1
Vitoligno 300-S mit Ecotronic (ab Softwarestand 2.04)Liste aller Datenpunkte:
https://documentation.viessmann.com/static/iot/data-pointsFrage zu fehlende Datenpunkte bitte direkt an Viessmann
https://www.viessmann-community.com/t5/The-Viessmann-API/bd-p/dev-viessmann-apiBeispiele:
Vorlauftemperatur: viessmannapi.0.XXXX.features.heating.circuits.0.sensors.temperature.supply.properties.value.value, Brennerstatus: viessmannapi.0.XXXX.0.features.heating.burners.0.properties.active.value Anzahl Zündungen: viessmannapi.0.XXXXX.features.heating.burners.0.statistics.properties.starts.value Betriebsstunden viessmannapi.0.XXXXX.features.heating.burners.0.statistics.properties.hours.value Kesseltemperatur viessmannapi.0.XXXXX.features.heating.boiler.sensors.temperature.main.properties.unit.value Kompressor aktiv: viessmannapi.0.xxx.0.features.heating.compressors.0.properties.active.value Heizkreispumpe aktiv: viessmannapi.0.xxx.0.features.heating.circuits.1.circulation.pump.properties.status.value Warmwasserbereitung: viessmannapi.0.xxx.0.features.heating.dhw.charging.properties.active.value Heizungsmodus: viessmannapi.0.xxx.0.features.heating.circuits.1.operating.modes.active.properties.value.value Heizprogramm: viessmannapi.0.xxx.0.features.heating.circuits.1.operating.programs.active.properties.value.value Temperatur Heizprogramm normal: viessmannapi.0.xxx.0.features.heating.circuits.1.operating.programs.normal.properties.temperature.value Temperatur Heizprogramm reduz.: viessmannapi.0.xxx.0.features.heating.circuits.1.operating.programs.reduced.properties.temperature.value Warmwasser Soll Temperatur: viessmannapi.0.xxx.0.features.heating.dhw.temperature.properties.value.value Warmwasser Ist Temperatur: viessmannapi.0.xxx.0.features.heating.dhw.sensors.temperature.hotWaterStorage.properties.value.value Temperatur Außensensor: viessmannapi.0.xxx.0.features.heating.sensors.temperature.outside.properties.value.value Statistik Kompressor Starts: viessmannapi.0.xxx.0.features.heating.compressors.0.statistics.properties.starts.value Statistik Kompressor Stunden: viessmannapi.0.xxx.0.features.heating.compressors.0.statistics.properties.hours.value Temperatursensoren der Heizkreise: viessmannapi.0.xxxxxxx.0.features.heating.circuits.0.sensors.temperature.supply.properties.value.value Primärkreis Vorlauftemperatur: viessmann.0.xxx.0.features.heating.primaryCircuit.sensors.temperature.supply.properties.value.value Sekundärkreis Vorlauftemperatur: viessmann.0.xxx.0.features.heating.secondaryCircuit.sensors.temperature.supply.properties.value.value Sekundärkreis Rücklauftemperatur: viessmann.0.xxx.0.features.heating.secondaryCircuit.sensors.temperature.return.properties.value.value ? viessmann.0.xxx.0.features.heating.sensors.temperature.return.properties.value.value Heizung an (Kompressor): viessmannapi.0.x.0.features.heating.compressors.0.properties.active.value WW Temp viessmannapi.0.x.0.features.heating.dhw.sensors.temperature.hotWaterStorage.properties.value.value HW Temp viessmannapi.0.x.0.features.heating.buffer.sensors.temperature.main.properties.value.value ZP features.heating.circuits.1.circulation.pump.properties.status.value WP_Aussentemperatur 0.features.heating.sensors.temperature.outside.properties.value.value WP_gemeinsame Vorlauftemperatur 0.features.heating.boiler.sensors.temperature.commonSupply.properties.value.value WP_Temperatur Pufferspeicher 0.features.heating.buffer.sensors.temperature.main.properties.value.value WP_Heizkörper_Umwälzpumpe ON/OFF 0.features.heating.circuits.0.circulation.pump.properties.status.value WP_Heizkörper_Umwälzpumpe_Frostschutz 0.features.heating.circuits.0.frostprotection.properties.status.value WP_Heizkörper_Niveau 0.features.heating.circuits.0.heating.curve.properties.shift.value WP_Heizkörper_Neigung 0.features.heating.circuits.0.heating.curve.properties.slope.value WP_Heizkörper_Zeitplan 0.features.heating.circuits.0.heating.schedule.properties.entries.value WP_Heizkörper_Komfort_Solltemperatur 0.features.heating.circuits.0.operating.programs.comfortHeating.properties.temperature.value WP_Heizkörper_Normal_Solltemperatur 0.features.heating.circuits.0.operating.programs.normalHeating.properties.temperature.value WP_Heizkörper_Reduziert_Solltemperatur 0.features.heating.circuits.0.operating.programs.reducedHeating.properties.temperature.value WP_Vorlauftemperatur Heizkörper 0.features.heating.circuits.0.sensors.temperature.supply.properties.value.value ???? 0.features.heating.circuits.0.operating.programs.comfortEnergySaving.properties.reason.value ???? 0.features.heating.circuits.0.operating.programs.normalEnergySaving.properties.reason.value WP_Heizkörper_FBH ON/OFF 0.features.heating.circuits.1.circulation.pump.properties.status.value WP_FBH_Umwälzpumpe_Frostschutz 0.features.heating.circuits.1.frostprotection.properties.status.value WP_FBH_Niveau 0.features.heating.circuits.1.heating.curve.properties.shift.value WP_FBH_Neigung 0.features.heating.circuits.1.heating.curve.properties.slope.value WP_FBH_Zeitplan 0.features.heating.circuits.1.heating.schedule.properties.entries.value WP_FBH_Komfort_Solltemperatur 0.features.heating.circuits.1.operating.programs.comfortHeating.properties.temperature.value WP_FBH_Normal_Solltemperatur 0.features.heating.circuits.1.operating.programs.normalHeating.properties.temperature.value WP_FBH_Reduziert_Solltemperatur 0.features.heating.circuits.1.operating.programs.reducedHeating.properties.temperature.value WP_FBH_Vorlauftemperatur 0.features.heating.circuits.1.sensors.temperature.supply.properties.value.value WP_Stromverbrauch_HEUTE 0.features.heating.power.consumption.summary.heating.properties.currentDay.value WP_Stromverbrauch_MONAT 0.features.heating.power.consumption.summary.heating.properties.currentMonth.value WP_Stromverbrauch_JAHR 0.features.heating.power.consumption.summary.heating.properties.currentYear.value WP_Stromverbrauch_LETZTER_MONAT 0.features.heating.power.consumption.summary.heating.properties.lastMonth.value WP_Stromverbrauch_LETZTEN_7_TAGE 0.features.heating.power.consumption.summary.heating.properties.lastSevenDays.value WP_Stromverbrauch_LETZTES_JAHR 0.features.heating.power.consumption.summary.heating.properties.lastYear.value WP_Primärkreis_Temperatur 0.features.heating.primaryCircuit.sensors.temperature.supply.properties.value.value WP_Sekundärkreis_Temperatur 0.features.heating.secondaryCircuit.sensors.temperature.supply.properties.value.value WP_Rücklauftemperatur 0.features.heating.sensors.temperature.return.properties.value.value WP_Volumenstrom 0.features.heating.sensors.volumetricFlow.allengra.properties.value.value Betriebsstunden Verdichter 0.features.heating.compressors.0.statistics.properties.hours.valueBeispiel zum setzen eines Schedule:
var standard = '{"mon":[{"start":"00:00","end":"24:00","mode":"standard","position":0}],"tue":[{"start":"00:00","end":"24:00","mode":"standard","position":0}],\ "wed":[{"start":"00:00","end":"24:00","mode":"standard","position":0}],"thu":[{"start":"00:00","end":"24:00","mode":"standard","position":0}],\ "fri":[{"start":"00:00","end":"24:00","mode":"standard","position":0}],"sat":[{"start":"00:00","end":"24:00","mode":"standard","position":0}],\ "sun":[{"start":"00:00","end":"24:00","mode":"standard","position":0}]}' setState("viessmannapi.0.xxxxxxx.0.features.ventilation.schedule.commands.setSchedule.setValue", JSON.parse(standard));Beispiel zirkulationspumpe
// schedule zum einschalten, allerdings nur zwischen 6 und 21 uhr var pump_on = '{"mon":[{"start":"06:00","end":"21:00","mode":"on","position":0}],"tue":[{"start":"06:00","end":"21:00","mode":"on","position":0}],"wed":[{"start":"06:00","end":"21:00","mode":"on","position":0}],"thu":[{"start":"06:00","end":"21:00","mode":"on","position":0}],"fri":[{"start":"06:00","end":"21:00","mode":"on","position":0}],"sat":[{"start":"06:00","end":"21:00","mode":"on","position":0}],"sun":[{"start":"06:00","end":"21:00","mode":"on","position":0}]}' // schedule leeren - pumpe ausschalten var pump_off = '{"mon":[], "tue":[],"wed":[],"thu":[],"fri":[],"sat":[],"sun":[]}' setState("viessmannapi.0.xxx.features.heating.dhw.pumps.circulation.schedule.commands.setSchedule.setValue", JSON.parse(pump_on)); // oder pump_offDie Max. Heizleistung gibt es nicht als API Datenpunkt, kann nur am Gerät geändert werden.
Kostenlose Paket enthält:

@tombox Hallo, hab mal eine Anfängerfrage. Werden die Datenpunkte automatisch angelegt, oder muss ich das manuell erledigen. Habe installiert wie angegeben und alle Punkte der Instanz sind grün.
-
@tombox Hallo, hab mal eine Anfängerfrage. Werden die Datenpunkte automatisch angelegt, oder muss ich das manuell erledigen. Habe installiert wie angegeben und alle Punkte der Instanz sind grün.
@tontechniker wenn verknüpfte Installationen gefunden werden dan werden sie automatisch angelegt einfach im Protokoll nachschauen
-
@tontechniker wenn verknüpfte Installationen gefunden werden dan werden sie automatisch angelegt einfach im Protokoll nachschauen
@tombox Danke!