Fehler Viessmann API Bridge

Einrichtung der openHAB Umgebung und allgemeine Konfigurationsthemen.

Moderatoren: seppy, udo1toni

rebell21
Beiträge: 180
Registriert: 23. Aug 2024 09:34
Answers: 0

Re: Fehler Viessmann API Bridge

Beitrag 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 ?
openhab 5.0.1 in Proxmox LXC Container mit debian bookworm (openhabian) auf Intel NUC

Benutzeravatar
udo1toni
Beiträge: 15440
Registriert: 11. Apr 2018 18:05
Answers: 248
Wohnort: Darmstadt

Re: Fehler Viessmann API Bridge

Beitrag 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.
openHAB5.0.1 stable in einem Debian-Container (trixie, OpenJDK 21 headless runtime) (Proxmox 9.0.11, LXC)

oh73
Beiträge: 308
Registriert: 7. Mär 2021 14:49
Answers: 1

Re: Fehler Viessmann API Bridge

Beitrag 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!
OH 4.3.0 auf HP 26o G1 Dm Mini Pc mit MX_Linux

Harka
Beiträge: 544
Registriert: 30. Apr 2021 13:13
Answers: 19

Re: Fehler Viessmann API Bridge

Beitrag 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.

oh73
Beiträge: 308
Registriert: 7. Mär 2021 14:49
Answers: 1

Re: Fehler Viessmann API Bridge

Beitrag 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!
OH 4.3.0 auf HP 26o G1 Dm Mini Pc mit MX_Linux

Harka
Beiträge: 544
Registriert: 30. Apr 2021 13:13
Answers: 19

Re: Fehler Viessmann API Bridge

Beitrag 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 :lol:

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;

oh73
Beiträge: 308
Registriert: 7. Mär 2021 14:49
Answers: 1

Re: Fehler Viessmann API Bridge

Beitrag 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
OH 4.3.0 auf HP 26o G1 Dm Mini Pc mit MX_Linux

Harka
Beiträge: 544
Registriert: 30. Apr 2021 13:13
Answers: 19

Re: Fehler Viessmann API Bridge

Beitrag 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
						}
					}
				}
			}
		}
	}
}

oh73
Beiträge: 308
Registriert: 7. Mär 2021 14:49
Answers: 1

Re: Fehler Viessmann API Bridge

Beitrag von oh73 »

ja, hab den Block mal dazwischen gemacht.

sieht so doch viel ordentlicher aus!

Funktioniert bisher in openhab ohne Fehler im Log!
OH 4.3.0 auf HP 26o G1 Dm Mini Pc mit MX_Linux

rebell21
Beiträge: 180
Registriert: 23. Aug 2024 09:34
Answers: 0

Re: Fehler Viessmann API Bridge

Beitrag 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.
openhab 5.0.1 in Proxmox LXC Container mit debian bookworm (openhabian) auf Intel NUC

Antworten