NEWS
Test ViessmannAPI v2.0.0
-
Hallo zusammen,
ich schaffe es nicht die Zeitprogramme für Wasser oder für die Heizung zu ändern. Wenn ich setValue aufrufe, dann erhalte ich nachfolgenden Fehler:
statusCode":502,"errorType":"DEVICE_COMMUNICATION_ERROR","message":"DEVICE_COMMUNICATION_ERROR","extendedPayload":{"code":"500","reason":"INTERNAL_SERVER_ERROR","details":"entries[cur].map is not a function"}}
Ich habe bei zum Beispiel folgenden Wert bei viessmannapi.0.XXX.0.features.heating.dhw.schedule.commands.setSchedule.setValue verwendet:
{ "mon": [ { "start": "05:30", "end": "19:30", "mode": "on", "position": 0 } ] }
Wenn ich das Heizprogramm verändere, dann erhalte ich den gleichen Fehler.
-
@schueli86 Hast du mal hier gefragt
https://www.viessmann-community.com/t5/Getting-started-programming-with/bd-p/dev-viessmann-api-getting-started
ob sie helfen können wie der request korrekt aussehen soll -
@tombox bis jetzt noch nicht. Werde ich heute Abend mal machen. Ich hatte die Hoffnung, dass es hier schon jemand geschafft hat.
-
@schueli86 Ich habe in die github version die error message verbessert dann hilft es die frage zu stellen
-
@schueli86 Bei der Lüftung habe ich es nun hinbekommen, nachdem ein "Fehler" in der Viessmann API gefixed wurde.
Mit JSON.parse war bei mir der Fehler "entries[cur].map" .... weg.
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));
-
@tiger-vi Das funktioniert bei mir leider nicht
Hab jetzt folgenden Code von dir genommen und erhalte den gleichen Fehler.
var standard = '{"mon":[{"start":"00:00","end":"24:00","mode":"normal","position":0}],"tue":[{"start":"00:00","end":"24:00","mode":"normal","position":0}],\ "wed":[{"start":"00:00","end":"24:00","mode":"normal","position":0}],"thu":[{"start":"00:00","end":"24:00","mode":"normal","position":0}],\ "fri":[{"start":"00:00","end":"24:00","mode":"normal","position":0}],"sat":[{"start":"00:00","end":"24:00","mode":"normal","position":0}],\ "sun":[{"start":"00:00","end":"24:00","mode":"normal","position":0}]}' setState('viessmannapi.0.XXX.0.features.heating.circuits.0.heating.schedule.commands.setSchedule.setValue', JSON.parse(standard));
Am Ende macht JSON.pars ja auch nur wieder einen JSON aus dem String. Ich hatte es bei mir mit den alten Adapter auch schon als JSON. Schade, hätte klappen können.
-
Hallo @tombox,
Ich habe den Fehler gefunden. Im Iobroker ist bei setValue als String angegeben. Wenn ich es auf JSON umstelle, dann funktioniert es. Können wir dies im Adapter ändern?
-
@schueli86 ich habe mal auf object gesetzt.
installiere neu
alle objekte löschen
instanze neustarten
und dann testen ob string werte und json funktionieren -
@tombox scheinbar wird dann wieder ein String verwendet. Es kommt bei setSchedule wieder der Fehler. Umstellung auf JSON funktioniert dann wieder bei mir.
-
@schueli86 was änderst du genau auf JSON
-
-
@schueli86 Das ist auch der einzige Zustandstyp der bei dir funktioniert
-
@tombox gemischt scheint auch zu funktionieren.
-
@schueli86 Bei mir hat es funktioniert, weil "ventilation.schedule.commands.setSchedule.setValue" schon "type": "json" war.
Im Gegensatz zum Heizungsparameter vom Typ "String". Hab es auch gerade erst bemerkt. -
@schueli86 Kannst du nochmal neuinstallieren und alle objekte löschen es müsste jetzt mixed sein. testen ob noch alle setvalues gehen
-
@tombox hab es gerade getestet. Es scheint alles zu funktionieren. Danke für deine ganze Arbeit an diesem Adapter.
-
August 2021
Updates zu neuen und geänderten Device Features
Folgende Features sind nun über die API zugänglich. Zum Teil ersetzen sie frühere (veraltete) Features:heating.gas.consumption.total
heating.power.consumption.total >> ersetzt heating.power.consumption
heating.power.consumption.heating
heating.power.consumption.dhw
heating.dhw.temperature.main >> ersetzt heating.dhw.temperature
heating.dhw.temperature.hygiene
heating.dhw.temperature.temp2
heating.compressors.N >> ersetzt heating.compressor
heating.compressors.N.statistics >> ersetzt heating.compressor.statistics
-
@schueli86 said in Test ViessmannAPI v2.0.0:
@tiger-vi Das funktioniert bei mir leider nicht
Hab jetzt folgenden Code von dir genommen und erhalte den gleichen Fehler.
var standard = '{"mon":[{"start":"00:00","end":"24:00","mode":"normal","position":0}],"tue":[{"start":"00:00","end":"24:00","mode":"normal","position":0}],\ "wed":[{"start":"00:00","end":"24:00","mode":"normal","position":0}],"thu":[{"start":"00:00","end":"24:00","mode":"normal","position":0}],\ "fri":[{"start":"00:00","end":"24:00","mode":"normal","position":0}],"sat":[{"start":"00:00","end":"24:00","mode":"normal","position":0}],\ "sun":[{"start":"00:00","end":"24:00","mode":"normal","position":0}]}' setState('viessmannapi.0.XXX.0.features.heating.circuits.0.heating.schedule.commands.setSchedule.setValue', JSON.parse(standard));
Klappt bei mir mittlerweile auch.
Allerdings immer nur das Umschalten auf mode:normal.
Hat es schon einer geschafft auf "Reduziert" oder "Komfort" zuschalten?
Habe eine Vitodens 300-W ohne Warmwasser...Danke für den klasse Adapter!
-
@jensemann man gibt bei den Zeiten nur an, wann der Modus normal sein soll. Die fehlenden Zeiten sind dann automatisch der reduzierte Modus. Ich hatte von 00:00 bis 24:00 nur für den Test genommen.
-
@schueli86
Ok, danke.Mein Hintergrund ist, dass ich gerne je nach Anwesenheit von normal auf reduziert umschalten möchte.
Wenn morgens alle aus dem haus sind, soll von normal auf reduziert gestellt werden und umgekehrt.
Hat jemand eine Idee wie ich das umsetzen könnte?