NEWS
Test ViessmannAPI v2.0.0
-
@skokarl setValue auf true setzen geht nicht?
-
erklär mir mal bitte den Zusammenhang von active ( setvalue ), deactivate ( setvalue ), jeweils isExecutble mit true/false
und dann noch properties active value .....ich bin gerade überfordet,
eigentlich dachte ich man könnte wie in der APP über die Schnellwahltasten, Wasser an und ausschalten.das ist jetzt keine Kritik, ich raffe es gerade nicht. ( 36 Grad im Schatten )
Bei dem Schreibschutz hatte ich den properties active value gemeint, dachte der reicht für an und ausschalten
-
@skokarl Ein wert der setExecutable true hat kann verändert werden in dem setValue auf true gesetzt wird zum einschalten auf activate.setValue zum ausschalten deactivate.setValue
den aktuellen Stand kann man sehen active.value
-
besten Dank..... kriegst Du die Zirkulationspumpe auch noch hin ? ( Schreibschutz drin )
-
@skokarl status werte gehen nicht musst du den passenden setValue finden
-
Hallo zusammen.
Wir haben bei uns vor einem Jahr eine neue Vitodens 333-F B3TG-11 installieren lassen.
Momentan ist die Heizungsanlage nur Witterungsgeführt und würde gerne einen Temperaturfühler zur Raumaufschaltung integrieren.
Das einfachste wäre es hierzu, eine Vitotrol 200/300-E dafür zu integrieren. Ich benötige hier jedoch nur den Temperaturfühler, nicht gleich die ganze Funktion der Fernbedienung. Jedoch ist es mit der Vitotrol möglich einen, dass die Raumtemperatur Einfluss auf die Heizkurve nimmt.
Ist es möglich die Raumtemperatur über iobroker anderweitig der Vitodens mitzuteilen?
Wieso das ganze? Ein Temperaturfühler befindet sich bei uns im Erdgeschoss. Unser Erdgeschoss ist fast komplett offen geschnitten. Scheint die Sonne, oder der Kamin ist an, wird es deutlich zu warm und die Heizung heizt munter weiter. Die Heizkurve ist aktuell so optimiert, dass die Heizung ohne Sonne und Kamin die gewünschte Temperatur gerade nochm so erreicht.
PS.: Nimmt die Heizung Bezug auf einen dieser Werte für mein Vorhaben?
heating.circuits.N.sensors.temperature.room
Shows the status and the value of the room temperature sensor for circuit N
heating.circuits.N.sensors.temperature.supply
Shows the status and the value of the supply temperature sensor for circuit N
-
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 -
Bei 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.
-
@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?
-
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?
-
@crinc Sowas im viessmann forum anfragen. Der Adapter zeigt exakt das an was die API zurückgibt
-
@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_off
der 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_off
der 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 scheint zu funktionieren, die ZP bekommt strom und zirkuliert.
-
@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.
-
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.
-
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??
-
@banditfg ich habe sowas nicht implementiert, aber vermutlich brauchst du einen trigger, der alle paar minuten anläuft (cron). Innerhalb des triggers prüfst du die zeit und darin prüfst du, ob jemand anwesend ist. Falls ja -> starten