Seite 2 von 2
Re: Fehler Viessmann API Bridge
Verfasst: 24. Sep 2025 09:52
von rebell21
Danke für Deine Hilfe. Hat soweit funktioniert.
Wenn ich das richtig verstehe, ist auch der Zugriff über Smarthome/J ein Zugriff über die Viessmann API und unterliegt damit dem API_LIMIT.
Das API Limit wurde am 12.9. von Viessmann von 1450 auf 400 geändert.
Auszug aus einer Viessmann Community Info
Code: Alles auswählen
1450 Calls waren es bis zum 12.9., seit dem gelten die Konditionen wie in der (viessmann) Mail vom 4.9. bekanntgegeben, also nur noch 400 Calls.
Oben auf der Pricing-Seite steht ja auch, das im Moment an neuen Pakten gearbeitet wird.
Damit habe ich auch mit smarthome/J das gleiche Problem der API_LIMIT_EXCEEDS Fehler
Meine Viessmann Things haben ca. 10 Items.
Sind 10 Items in einem Thing 10 API Zugriffe oder ein API Zugriff ?
Re: Fehler Viessmann API Bridge
Verfasst: 25. Sep 2025 18:29
von udo1toni
Nein, definitiv nicht. Ich habe insgesamt 125 Items mit dem Thing verbunden, welches meine Heizung darstellt, und ich habe (Stand 18:20 Uhr) 144 API Calls getätigt.
So sieht die Bridge Definition aus:
Code: Alles auswählen
label: Viessmann Connect Bridge
thingTypeUID: viessmann:bridge
configuration:
disablePolling: false
password: meinPasswort
apiKey: meinAPIkey
gatewaySerial: "die Seriennummer"
pollingIntervalErrors: 60
apiCallLimit: 1450
pollingInterval: 0
installationId: "Die Installateurs-ID"
bufferApiCommands: 450
user: mein Username
channels:
- id: countApiCalls
channelTypeUID: viessmann:type-number
label: Count API Calls
configuration: {}
- id: errorIsActive
channelTypeUID: viessmann:errorIsActive
label: Error is active
configuration: {}
- id: lastErrorMessage
channelTypeUID: viessmann:lastErrorMessage
label: Last error message
configuration: {}
- id: runQueryOnce
channelTypeUID: viessmann:runQueryOnce
label: Run device query once
configuration: {}
- id: runErrorQueryOnce
channelTypeUID: viessmann:runErrorQueryOnce
label: Run error query once
configuration: {}
Ich denke der Knackpunkt ist hier der Buffer für die API Commands, wobei ich da nichts aktiv konfiguriert habe (oder zumindest kann ich mich nicht daran erinnern... Das Addon hat das alles "selbst" entschieden.
EDIT:
Da ich das gerade ein wenig analysiere: da scheint es heute eine Störung zu geben, weil offenbar nur ein Teil der API Calls beantwortet wird. Um Mitternacht startet der Counter bei 1, um 12:25 ist er bei 138, dann aber erfolgen nur noch ganz wenige Calls. Gestern hingegen waren es um 18:20 schon 205 Calls und kurz vor Mitternacht dann 268, was einem API Call etwa alle 5 -6 Minuten entspricht.
Das Chart für ide API Calls kann man ganz gut verwenden, um im Nachhinein Störungen des Dienstes zu finden, gewöhnlich ist es einfach ein Sägezahnmuster mit der Spitze kurz vor Mitternacht mit anschließendem Sprung auf 0 (oder 1?), aber es gibt immer mal wieder Tage, wo sich das Muster anders verhält, z.B. ein sehr flacher Sägezahn (es wurden nur wenige Calls beantwortet, diese aber regelmäßig, z.B. nur einer pro Stunde) oder auch über mehrere Tage ein durchgehender Anstieg ohne Zurücksetzen des Zählers.
Re: Fehler Viessmann API Bridge
Verfasst: 25. Sep 2025 19:18
von oh73
Da ich das gerade ein wenig analysiere: da scheint es heute eine Störung zu geben
Störung, weiß ich nicht genau, aber die sind an der Api am arbeiten, da ich die Datenpunkte ja anders abrufe, gab es Heute auch wieder Fehler, die Datenpunkte haben sich fast alle um 1 Punkt geändert!
Beispiel: Boiler Temperatur war gestern noch bei Element 108, Heute auf 109!
bin gerade am basteln, wie ich das per Script abfangen kann, meine Java Kenntnisse sind da aber noch sehr bescheiden, in node-red läuft das aber schon mal nur in openhab noch nicht!
Re: Fehler Viessmann API Bridge
Verfasst: 25. Sep 2025 20:14
von Harka
Moin,
versuch es mal nach dem Muster
Code: Alles auswählen
$.data[?(@.feature=='heating.sensors.temperature.return')].properties.value.value
Für JsonPath stehen diese Optionen zur Verfügung
https://github.com/json-path/JsonPath und nach dem was ich zur Rückgabe von dem von Dir geposteten NodeRed Dings mit
Code: Alles auswählen
https://api.viessmann-climatesolutions.com/iot/v2/features/installations/{{installationID}}/gateways/{{gatewaySerial}}/devices/{{deviceId}}/features/
gefunden habe sollte es damit gehen.
Re: Fehler Viessmann API Bridge
Verfasst: 25. Sep 2025 20:38
von oh73
Super, das kann so einfach sein, wenn man nur weiß wie!
den Wert 'heating.sensors.temperature.return'
muss ich natürlich anpassen,
aber das scheint zu funktionieren!
Re: Fehler Viessmann API Bridge
Verfasst: 26. Sep 2025 07:47
von Harka
oh73 hat geschrieben: 25. Sep 2025 20:38
Super, das kann so einfach sein, wenn man nur weiß wie!
hatte nur die Ahnung, dass es damit gehen könnte. Habe es am Ende auch nur mir
https://www.perplexity.ai/ hin bekommen
Das hat mir auch bei folgender Überlegung geholfen: wäre doch schön, wenn man
$.heating.sensors.temperature.return.properties.value.value nutzen könnte. Gibt eine imho bessere JSON-Baumstruktur und sollte auch performanter sein.
Dazu in Node-Red noch vor dem MQTT-Block ein function-Block mit folgendem Code einfügen.
Data bleibt erhalten, so das nicht gleich wieder alles geändert werden muss.
Code: Alles auswählen
const input = msg.payload;
const result = {};
input.data.forEach(entry => {
const keys = entry.feature.split(".");
let node = result;
// Objektstruktur rekursiv aufbauen
keys.forEach((key, idx) => {
if (!node[key]) node[key] = {};
if (idx === keys.length - 1) {
Object.assign(node[key], entry); // am untersten Punkt Objekt zuweisen/mergen
} else {
node = node[key];
}
});
});
result.data = input.data; // das data-Array noch hinzufügen
msg.payload = result;
return msg;
Re: Fehler Viessmann API Bridge
Verfasst: 26. Sep 2025 09:33
von oh73
oh, so gut bin ich jetzt auch wieder nicht!
der Block sagt mir erst mal nicht was er bezwecken soll?
was ich gemacht habe , einen Switch davor der nur Daten an Mqtt durch lässt wenn das Array 'data' vorhanden ist.
bin jetzt noch dran da bisschen auf zu teilen,
sind eigentlich nur 2 Datenpunkte die ich vielleicht alle 2 Minuten abrufen möchte,
dann so 10 Datenpunkte alle 5 Minuten,
der Rest 1 x am Tag.
speichere da zu die featureList in eine Variable und sende Zeit gesteuert an 3 verschiedene Mqtt Topic.
ob das Sinn macht weiß ich noch nicht, denke nur openhab hat weniger zu tun wenn ich nicht alle 2 Minuten alle 30 Items mit transform JSONPATH befülle ?
ansonsten funktionieren meine 30 Items schon, wenn auch nicht immer die Werte manch mal etwas verzögert kommen.
Beispiel der Wasserdruck ist bei openhab und in der App 1.7 bar, an der Heizung 1.6 bar
Re: Fehler Viessmann API Bridge
Verfasst: 26. Sep 2025 10:41
von Harka
Top, wenn alles funktioniert
Die Funktion bringt nur eine andere Struktur in die Daten, in dem es aus dem feature-Argument eigene Unterordner bastelt. Geschmacksache . Hier in einer vereinfachten Darstellung.
Code: Alles auswählen
{
"data": [
{...},
{...},
{...}
],
"heating": {
"sensors": {
"temperature": {
"return": {
"properties": {
"value": {
"type": "number",
"unit": "celsius",
"value": 37.7
}
}
}
}
}
}
}
Re: Fehler Viessmann API Bridge
Verfasst: 26. Sep 2025 14:28
von oh73
ja, hab den Block mal dazwischen gemacht.
sieht so doch viel ordentlicher aus!
Funktioniert bisher in openhab ohne Fehler im Log!
Re: Fehler Viessmann API Bridge
Verfasst: 30. Sep 2025 14:45
von rebell21
Mit SmartHome/J - Viessmann läuft es jetzt besser. Ich vermute, das alte Viessmann Binding hat in Version openhab 5.0.1 nicht mehr gut funktioniert. Das neue Viessmann Binding in SmartHome/J enthältauch deutlich mehr Kanäle.
Habe jetzt auch keine Probleme mehr mit den API LIMITS
Danke für den Hinweis.