Homeconnect

Adapter für Homeconnect-Geräte

Aktueller Release
1.6.1
Entwickler
TA2k, iobroker-community-adapters
Lizenz
MIT

Hausgeräte von Bosch, Siemens, NEFF und Gaggenau über die offizielle Home-Connect-Cloud-API steuern und überwachen — Geschirrspüler, Waschmaschinen, Trockner, Backöfen, Kochfelder, Dunstabzugshauben, Kühl- und Gefriergeräte, Kaffeevollautomaten, Saugroboter und mehr.

Jeder Wert kommt in einer Form an, mit der sich direkt arbeiten lässt: Ein/Aus als Boolean, eine feste Auswahl als lesbarer Name, ein Messwert als Zahl mit Einheit und Grenzen. Änderungen treffen live über einen einzigen Ereignisstrom ein, und Programme lassen sich aus ioBroker heraus wählen, einstellen und starten.

Voraussetzungen

  • Node.js >= 22
  • js-controller >= 7.2.5
  • Admin >= 8.2.0
  • Ein kostenloses Home-Connect-Entwicklerkonto für Client ID und Client Secret

Zugangsdaten bei Home Connect anlegen

Drei Dinge gehören zusammen: das normale Home-Connect-Konto (das der Home-Connect-App, in dem die Geräte gekoppelt sind), ein damit verlinktes Entwicklerkonto und eine darin registrierte Anwendung. Die Einstellungsseite zeigt dieselben Schritte als Checkliste, mit Knöpfen zum Anlegen des Entwicklerkontos, zum Registrieren der Anwendung und zu den eigenen Anwendungen.

  1. Auf developer.home-connect.com ein kostenloses Entwicklerkonto anlegen. Als Default Home Connect Account for Testing die E-Mail-Adresse des Home-Connect-App-Kontos eintragen — genau wie in der App, in Kleinbuchstaben. Das verlinkt die beiden Konten; ohne das wird die Anmeldung abgelehnt.
  2. Eine Anwendung registrieren: Application ID beliebig, OAuth Flow Device Flow (der Adapter läuft auf einem Server ohne Browser; das Verfahren lässt sich später nicht ändern), Success Redirect leer, One Time Token Mode aus.
  3. 15 bis 60 Minuten warten — eine neue oder geänderte Anwendung ist erst danach bei Home Connect aktiv.
  4. Client ID (64 Zeichen) und Client Secret in die Adapter-Einstellungen übernehmen und speichern.

Anmelden

Nach dem Speichern der Zugangsdaten fordert der Adapter einen Anmelde-Link an. Das Einstellungs-Panel zeigt ihn zusammen mit dem Code, der zu bestätigen ist. Link öffnen, mit dem Home-Connect-Konto anmelden, Zugriff bestätigen — der Adapter merkt die Freigabe innerhalb weniger Sekunden von selbst und speichert die Anmeldung verschlüsselt. Die Benachrichtigung verweist nur auf die Einstellungen: der Code wechselt alle fünf Minuten, das Panel zeigt immer den aktuellen.

Solange der Link wartet, erneuert er sich alle fünf Minuten. Bestätigt eine Stunde lang niemand, fragt der Adapter Home Connect nicht mehr nach neuen Links; Neuen Anmelde-Link anfordern im Panel startet neu, ein Neustart der Instanz ebenso. Anmeldung zurücksetzen vergisst die Anmeldung und startet eine neue — etwa um zu einem anderen Home-Connect-Konto zu wechseln. Die Schaltfläche Verbindung testen fragt Home Connect wirklich: sie meldet, wie viele Geräte das Konto führt und wie viele davon gerade verbunden sind, und ob die Live-Updates laufen.

Angemeldet wird einmal. Der Adapter erneuert seinen Zugang selbst; eine neue Anmeldung ist nur nötig, wenn der Zugriff im Home-Connect-Konto widerrufen wurde, wenn Home Connect die Anwendung ablehnt (deaktiviert, gelöscht, neues Secret) oder wenn die ioBroker-Daten auf ein anderes System umgezogen sind — dort ist die gespeicherte Anmeldung nicht lesbar, und das Log sagt das.

Lehnt Home Connect die Anmeldung ab, zeigt das Panel die Antwort und was zu tun ist; auth.lastError hält die Antwort fest (siehe Fehlersuche).

Der Objektbaum

Jedes Gerät bekommt einen Ordner. Sein Name ist das Modell und die letzten vier Zeichen der eigenen Home-Connect-Nummer des Geräts (zum Beispiel sx87tx02ce-5775) — unveränderlich und bei zwei Geräten desselben Modells verschieden, was weder der Gerätename aus der App noch die E-Nummer vom Typenschild ist. Der App-Name bleibt als Anzeigename des Ordners sichtbar und folgt der App live. Enden zwei Geräte eines Modells auf dieselben vier Zeichen, bekommt das zweite seine ganze Nummer.

Unter jedem Gerät — welche Kanäle ein Gerät bekommt, hängt von seinem Typ ab; Kühl-, Gefrier- und Weinkühlgeräte haben keine Programme:

KanalWas darin liegt
inforeachable — ob das Gerät gerade mit Home Connect verbunden ist (der grün/graue Punkt am Ordner); firmware — der Firmware-Stand einer Waschmaschine, eines Trockners oder Waschtrockners; Home Connect kennt keine Abfrage dafür, er erscheint, sobald das Gerät seine Versionen von sich aus schickt, und bleibt dann stehen
statusNur-Lese-Zustand des Geräts: Betriebszustand, programRunning, Fern- und Vor-Ort-Bedienung, Innenlicht, Störungen, Akku
runDas laufende Programm: Rest-, Lauf- und Gesamtzeit, Fortschritt, Phase, Energie- und Wasserprognose, Empfehlungen — leer, solange kein Programm läuft
settingsSchreibbare Einstellungen: Betriebszustand, Kindersicherung, Innenbeleuchtung, Kühltemperaturen
doorsJede Tür des Geräts als Boolean: door (die Gerätetür), doorLocked und bei Kühlgeräten jedes Fach (freezer, refrigerator …)
eventsJedes Ereignis dieses Gerätetyps als Boolean: Programm beendet, Salz fast leer, Klarspüler leer, Filter gesättigt, Türalarm …
countersGesamtzähler: Läufe, Laufzeit, Energie, Wasser, Waschmittel, Weichspüler, Getränke
programsselectedProgram, activeProgram sowie die Schaltflächen start und stop
optionsDie Optionen, die man für ein Programm wählt: Temperatur, Schleuderdrehzahl, Intensivzone, Startverzögerung …
commandsMomentschalter, die das Gerät anbietet, etwa das Quittieren eines Ereignisses
historyDie Läufe, je ein Kanal: latest, previous, thirdLatest … mit Programm und Dauer; latest trägt dazu Start, Ende, wie er endete, sowie Wasser, Energie, Waschmittel und Weichspüler, wo das Gerät sie meldet
statisticsJe Programm: gestartete und abgeschlossene Läufe, Laufzeit

Auf Instanzebene fassen info.devicesTotal, info.devicesOnline und info.devicesAllOnline das Konto zusammen; info.connection ist grün, wenn der Adapter angemeldet ist und die Live-Updates laufen, und auth.lastError hält die Antwort von Home Connect auf eine abgelehnte Anmeldung fest (leer, solange die Anmeldung steht; Unknown, solange noch nichts gefragt wurde).

Woher die Datenpunkte kommen:

  • Status, Einstellungen, Programme, Optionen und Befehle meldet das Gerät selbst an Home Connect — genau diese legt der Adapter an. Unter options steht nur, was man für ein Programm wählt; Werte, die das Gerät während eines Programms meldet (Restzeit, Fortschritt, Prognosen, Programmphase), stehen unter run.
  • Ereignisse sind die Ausnahme. Home Connect kann nicht beantworten, welche Ereignisse ein Gerät schicken kann — ein Ereignis kommt erst in dem Moment, in dem es eintritt. Deshalb legt der Adapter alle bekannten Ereignisse des Gerätetyps vorab aus seinem eigenen Katalog an: ein Skript auf „Salz leer“ lässt sich heute bauen, statt Monate zu warten, bis das Salz einmal ausgeht. Ein Gerät kann deshalb Ereignis-Datenpunkte haben, die es nie nutzt; ein Ereignis, das der Katalog nicht kennt, kommt dazu, sobald das Gerät es zum ersten Mal schickt.

Zwei Eigenschaften sind wichtig zu wissen:

  • Jeder Datenpunkt existiert ab dem ersten Lesen des verbundenen Geräts — die Ereignisse des Gerätetyps schon ab dem ersten Start, und die Optionen aller Programme, nicht nur die des gerade gewählten.
  • Kein Datenpunkt verschwindet je. Ein ausgeschaltetes Gerät meldet der Cloud sehr viel weniger, aber das heißt nie, dass es eine Fähigkeit verloren hätte. Nur ein aus dem Home-Connect-Konto entferntes Gerät verliert seinen Ordner. (Ausnahme: ein Statistik-Kanal program<Nummer> zieht auf den Programmnamen um, sobald der Adapter ihn gelernt hat oder seine Programmtabelle die Nummer kennt; Aufzeichnungen, Aliase, Räume und Funktionen ziehen mit.)

Geräte bedienen

  • Eine Einstellung: den Wert in den Datenpunkt unter settings schreiben. "true", 1 und true funktionieren gleichermaßen — der Adapter wandelt vor dem Senden in den Typ des Datenpunkts.
  • Ein Programm starten: in programs.selectedProgram wählen, die gewünschten Optionen unter options setzen, dann programs.start auf true. Der Adapter schickt die gewählten Optionen mit dem Start; verweigert das Gerät diese Kombination, wiederholt er einmal mit den Vorgaben des Programms.
  • Ein Programm stoppen: programs.stop auf true setzen.
  • Einen Befehl auslösen: die Schaltfläche unter commands auf true setzen; sie fällt von selbst auf false zurück.

Ein geschriebener Wert gilt als erledigt (ack), sobald das Gerät ihn zurückmeldet. Lehnt das Gerät ihn ab, springt der Datenpunkt auf den echten Wert des Geräts zurück.

Home Connect lässt eine Fernbedienung nur zu, wenn das Gerät es erlaubt — die meisten Maschinen brauchen dafür Fernstart am Gerät selbst, und viele verweigern eine Änderung, während ein Programm läuft. status.remoteControlActive und status.remoteControlStartAllowed sagen, was das Gerät gerade zulässt.

Namen und Beschreibungen der Datenpunkte

Die eigenen Namen des Adapters gehen vor: Er benennt die Ereignisse, die üblichen Status-Werte und Einstellungen, die Programm-Optionen und seine eigene Struktur in elf Sprachen. Wo er keinen eigenen Namen hat, nimmt er den lokalisierten Namen, den Home Connect in der ioBroker-Systemsprache schickt, und zuletzt einen aus der Kennung abgeleiteten lesbaren Namen. Die Beschreibung erklärt, was ein Datenpunkt bedeutet, wiederholt nie den Herstellerbezeichner und bleibt leer, wo es nichts zu erklären gibt.

Namen und Beschreibungen gehören dem Adapter: ein Update zieht bestehende Anlagen mit, ein Baum aus einer älteren Fassung behält also keine alten Bezeichnungen. Wer eigene Benennungen will, nutzt Aliase oder eigene Datenpunkte unter 0_userdata.

Umstieg von 1.x

Version 2.0 ersetzt den Roh-Datenbaum der Community-Versionen bis 1.6.x durch einen lesbaren je Gerät. Beispiel: aus homeconnect.0.012345678901234567.status.BSH_Common_Status_DoorState wird homeconnect.0.kg49nsbbf-4567.status.doorOpen — der Geräte-Ordner heißt nach dem Modell und den letzten vier Stellen der eigenen Nummer des Geräts.

Den Baum stellt das Update selbst um: Anmeldung und Client ID bleiben, und Räume, Funktionen und Aliase ziehen zu dem Datenpunkt um, der den alten ersetzt, sobald das Gerät einmal gelesen ist. Eine Aufzeichnungs-Einstellung zieht nur an einem Baum mit, an dem auch ein Raum, eine Funktion oder ein Alias hängt, und nur dort, wo genau ein neuer Datenpunkt gleichen Werttyps den alten ersetzt. Wo sich der Typ geändert hat (ein Tür-Text wurde Ja/Nein) oder aus einem alten Datenpunkt mehrere wurden (Betriebszustand → Betriebszustand + Programm läuft), startet der neue Datenpunkt ohne Aufzeichnung — dort neu einschalten. Das Log zählt die mitgezogenen Raum-/Funktionseinträge und Aliase sowie die Datenpunkte mit Raum oder Alias, die kein Gegenstück hatten.

Was du tun musst:

  1. Vor dem Update ein Backup machen. Zurück auf 1.x geht nicht — der alte Baum wird entfernt, sobald er übergeben ist, und 1.x kann die Anmeldung nicht lesen, die 2.0 verschlüsselt speichert.
  2. Skripte und Visualisierungen auf die neuen IDs umstellen. Die Tabelle nennt zum letzten Teil jeder alten ID den Datenpunkt, der sie ersetzt (unter dem neuen Geräte-Ordner). Zeilen mit (entschlüsselt) sind neue Datenpunkte aus dem alten Rohwert; Räume, Funktionen, Aliase und Aufzeichnungen des alten Roh-Datenpunkts ziehen nicht mit.
Alte ID, letzter Teil (1.x)Neuer Datenpunkt (2.0)
BSH_Common_Command_AcknowledgeEventcommands.acknowledgeEvent
BSH_Common_Command_DeactivateWiFi— (geräteintern, wird nicht mehr angelegt)
BSH_Common_Command_OpenDoorcommands.openDoor
BSH_Common_Command_PartlyOpenDoorcommands.partlyOpenDoor
BSH_Common_Command_PauseProgramcommands.pauseProgram
BSH_Common_Command_ResumeProgramcommands.resumeProgram
BSH_Common_Command_StopProgramprograms.stop
BSH_Common_Event_AlarmClockElapsedevents.alarmClockElapsed
BSH_Common_Event_AquaStopOccuredevents.aquaStopOccured
BSH_Common_Event_Favorite_001_ExternalTriggerevents.favorite001ExternalTrigger
BSH_Common_Event_Favorite_002_ExternalTriggerevents.favorite002ExternalTrigger
BSH_Common_Event_LowWaterPressureevents.lowWaterPressure
BSH_Common_Event_ProgramAbortedevents.programAborted
BSH_Common_Event_ProgramFinishedevents.programFinished
BSH_Common_Option_BaseProgramprograms.baseProgram
BSH_Common_Option_CurrentStepRemainingTimerun.currentStepRemainingTime
BSH_Common_Option_Durationoptions.duration
BSH_Common_Option_ElapsedProgramTimerun.elapsedProgramTime
BSH_Common_Option_ElapsedProgramTime_AutoCountingrun.elapsedProgramTimeAutoCounting
BSH_Common_Option_EnergyForecastrun.energyForecast
BSH_Common_Option_EstimatedTotalProgramTimerun.estimatedTotalProgramTime
BSH_Common_Option_FinishInRelativeoptions.finishInRelative
BSH_Common_Option_ProgramNameprograms.programName
BSH_Common_Option_ProgramProgressrun.programProgress
BSH_Common_Option_RemainingProgramTimerun.remainingProgramTime
BSH_Common_Option_RemainingProgramTime_AutoCountingrun.remainingProgramTimeAutoCounting
BSH_Common_Option_RemainingProgramTimeEstimationStaterun.remainingProgramTimeEstimationState
BSH_Common_Option_RemainingProgramTimeIsEstimatedrun.remainingProgramTimeIsEstimated
BSH_Common_Option_SmartEnergyService_SmartStartEnabledstatus.smartEnergyServiceSmartStartEnabled
BSH_Common_Option_StartInRelativeoptions.startInRelative
BSH_Common_Option_WaterForecastrun.waterForecast
BSH_Common_Root_ActiveProgramprograms.activeProgram
BSH_Common_Root_SelectedProgramprograms.selectedProgram
BSH_Common_Setting_AlarmClocksettings.alarmClock
BSH_Common_Setting_AllowBackendConnection— (geräteintern, wird nicht mehr angelegt)
BSH_Common_Setting_AmbientLightBrightnesssettings.ambientLightBrightness
BSH_Common_Setting_AmbientLightColorsettings.ambientLightColor
BSH_Common_Setting_AmbientLightCustomColorsettings.ambientLightCustomColor
BSH_Common_Setting_AmbientLightEnabledsettings.ambientLightEnabled
BSH_Common_Setting_ChildLocksettings.childLock
BSH_Common_Setting_LiquidVolumeUnitsettings.liquidVolumeUnit
BSH_Common_Setting_PowerStatesettings.powerState
BSH_Common_Setting_TemperatureUnitsettings.temperatureUnit
BSH_Common_Status_BackendConnected— (geräteintern, wird nicht mehr angelegt)
BSH_Common_Status_BatteryChargingStatestatus.batteryChargingState
BSH_Common_Status_BatteryLevelstatus.batteryLevel
BSH_Common_Status_ChargingConnectionstatus.chargingConnection
BSH_Common_Status_DoorStatedoors.door (+ doors.doorLocked bei Geräten mit verriegelbarer Tür)
BSH_Common_Status_ErrorCodesListstatus.errorCodes, status.faultActive (entschlüsselt)
BSH_Common_Status_InteriorIlluminationActivestatus.interiorIlluminationActive
BSH_Common_Status_LocalControlActivestatus.localControlActive
BSH_Common_Status_OperationStatestatus.operationState, status.programRunning
BSH_Common_Status_Program_All_Count_Completedcounters.programAllCountCompleted
BSH_Common_Status_Program_All_Count_Startedcounters.programAllCountStarted
BSH_Common_Status_Program_All_Energy_Consumedcounters.programAllEnergyConsumed
BSH_Common_Status_Program_All_Time_Effectivecounters.programAllTimeEffective
BSH_Common_Status_Program_All_Water_Consumedcounters.programAllWaterConsumed
BSH_Common_Status_ProgramSessionSummary_Latesthistory.latest.* (entschlüsselt)
BSH_Common_Status_RemoteControlActivestatus.remoteControlActive
BSH_Common_Status_RemoteControlStartAllowedstatus.remoteControlStartAllowed
BSH_Common_Status_RemoteControlStartAllowedSincestatus.remoteControlStartAllowedSince
BSH_Common_Status_SoftwareUpdateTransactionID— (geräteintern, wird nicht mehr angelegt)
BSH_Common_Status_Video_CameraStatestatus.videoCameraState
ConsumerProducts_CleaningRobot_Event_DockingStationNotFoundevents.dockingStationNotFound
ConsumerProducts_CleaningRobot_Event_DustBin_NotInstalledevents.dustBinNotInstalled
ConsumerProducts_CleaningRobot_Event_EmptyDustBoxAndCleanFilterevents.emptyDustBoxAndCleanFilter
ConsumerProducts_CleaningRobot_Event_Robot_Liftedevents.robotLifted
ConsumerProducts_CleaningRobot_Event_RobotIsStuckevents.robotIsStuck
ConsumerProducts_CleaningRobot_Option_CarpetBoostEnabledoptions.carpetBoostEnabled
ConsumerProducts_CleaningRobot_Option_CleaningModeoptions.cleaningMode
ConsumerProducts_CleaningRobot_Option_CleaningPassesoptions.cleaningPasses
ConsumerProducts_CleaningRobot_Option_CleaningSpeedoptions.cleaningSpeed
ConsumerProducts_CleaningRobot_Option_MopExtensionEnabledoptions.mopExtensionEnabled
ConsumerProducts_CleaningRobot_Option_ProcessPhaserun.processPhase
ConsumerProducts_CleaningRobot_Option_ReferenceMapIdoptions.referenceMapId
ConsumerProducts_CleaningRobot_Option_SuctionPoweroptions.suctionPower
ConsumerProducts_CleaningRobot_Option_WaterFlowRateoptions.waterFlowRate
ConsumerProducts_CleaningRobot_Setting_CurrentMapsettings.currentMap
ConsumerProducts_CleaningRobot_Setting_NameOfMap1settings.nameOfMap1
ConsumerProducts_CleaningRobot_Setting_NameOfMap2settings.nameOfMap2
ConsumerProducts_CleaningRobot_Setting_NameOfMap3settings.nameOfMap3
ConsumerProducts_CleaningRobot_Setting_NameOfMap4settings.nameOfMap4
ConsumerProducts_CleaningRobot_Setting_NameOfMap5settings.nameOfMap5
ConsumerProducts_CleaningRobot_Status_DustBoxInsertedstatus.dustBoxInserted
ConsumerProducts_CleaningRobot_Status_LastSelectedMapstatus.lastSelectedMap
ConsumerProducts_CleaningRobot_Status_Liftedstatus.lifted
ConsumerProducts_CleaningRobot_Status_Loststatus.lost
ConsumerProducts_CleaningRobot_Status_ProcessPhaserun.processPhase
ConsumerProducts_CoffeeMaker_Event_BeanContainerEmptyevents.beanContainerEmpty
ConsumerProducts_CoffeeMaker_Event_CalcNCleanIn10Cupsevents.calcNCleanIn10Cups
ConsumerProducts_CoffeeMaker_Event_CalcNCleanIn15Cupsevents.calcNCleanIn15Cups
ConsumerProducts_CoffeeMaker_Event_CalcNCleanIn20Cupsevents.calcNCleanIn20Cups
ConsumerProducts_CoffeeMaker_Event_CalcNCleanIn5Cupsevents.calcNCleanIn5Cups
ConsumerProducts_CoffeeMaker_Event_DescalingIn10Cupsevents.descalingIn10Cups
ConsumerProducts_CoffeeMaker_Event_DescalingIn15Cupsevents.descalingIn15Cups
ConsumerProducts_CoffeeMaker_Event_DescalingIn20Cupsevents.descalingIn20Cups
ConsumerProducts_CoffeeMaker_Event_DescalingIn5Cupsevents.descalingIn5Cups
ConsumerProducts_CoffeeMaker_Event_DeviceCalcNCleanBlockageevents.deviceCalcNCleanBlockage
ConsumerProducts_CoffeeMaker_Event_DeviceCalcNCleanOverdueevents.deviceCalcNCleanOverdue
ConsumerProducts_CoffeeMaker_Event_DeviceCleaningOverdueevents.deviceCleaningOverdue
ConsumerProducts_CoffeeMaker_Event_DeviceDescalingBlockageevents.deviceDescalingBlockage
ConsumerProducts_CoffeeMaker_Event_DeviceDescalingOverdueevents.deviceDescalingOverdue
ConsumerProducts_CoffeeMaker_Event_DeviceShouldBeCalcNCleanedevents.deviceShouldBeCalcNCleaned
ConsumerProducts_CoffeeMaker_Event_DeviceShouldBeCleanedevents.deviceShouldBeCleaned
ConsumerProducts_CoffeeMaker_Event_DeviceShouldBeDescaledevents.deviceShouldBeDescaled
ConsumerProducts_CoffeeMaker_Event_DripTrayFullevents.dripTrayFull
ConsumerProducts_CoffeeMaker_Event_KeepMilkTankCoolevents.keepMilkTankCool
ConsumerProducts_CoffeeMaker_Event_WaterTankEmptyevents.waterTankEmpty
ConsumerProducts_CoffeeMaker_Option_AromaSelectoptions.aromaSelect
ConsumerProducts_CoffeeMaker_Option_BeanAmountoptions.beanAmount
ConsumerProducts_CoffeeMaker_Option_BeanContainerSelectionoptions.beanContainerSelection
ConsumerProducts_CoffeeMaker_Option_BeverageSizeoptions.beverageSize
ConsumerProducts_CoffeeMaker_Option_BeveragesRemainingstatus.beveragesRemaining
ConsumerProducts_CoffeeMaker_Option_Coarsnessoptions.coarsness
ConsumerProducts_CoffeeMaker_Option_Coarsness_Recommendationrun.coarsnessRecommendation
ConsumerProducts_CoffeeMaker_Option_CoffeeMilkRatiooptions.coffeeMilkRatio
ConsumerProducts_CoffeeMaker_Option_CoffeeStrengthoptions.coffeeStrength
ConsumerProducts_CoffeeMaker_Option_CoffeeStrength_Recommendationrun.coffeeStrengthRecommendation
ConsumerProducts_CoffeeMaker_Option_CoffeeTemperatureoptions.coffeeTemperature
ConsumerProducts_CoffeeMaker_Option_CoffeeTemperature_Recommendationrun.coffeeTemperatureRecommendation
ConsumerProducts_CoffeeMaker_Option_FillQuantityoptions.fillQuantity
ConsumerProducts_CoffeeMaker_Option_FillQuantity_Recommendationrun.fillQuantityRecommendation
ConsumerProducts_CoffeeMaker_Option_FlowRateoptions.flowRate
ConsumerProducts_CoffeeMaker_Option_FlowRate_Recommendationrun.flowRateRecommendation
ConsumerProducts_CoffeeMaker_Option_HotWaterTemperatureoptions.hotWaterTemperature
ConsumerProducts_CoffeeMaker_Option_MultipleBeveragesoptions.multipleBeverages
ConsumerProducts_CoffeeMaker_Option_Shot_Countoptions.shotCount
ConsumerProducts_CoffeeMaker_Setting_CupWarmersettings.cupWarmer
ConsumerProducts_CoffeeMaker_Status_BeverageCounterCoffeecounters.beverageCounterCoffee
ConsumerProducts_CoffeeMaker_Status_BeverageCounterCoffeeAndMilkcounters.beverageCounterCoffeeAndMilk
ConsumerProducts_CoffeeMaker_Status_BeverageCounterFrothyMilkcounters.beverageCounterFrothyMilk
ConsumerProducts_CoffeeMaker_Status_BeverageCounterHotMilkcounters.beverageCounterHotMilk
ConsumerProducts_CoffeeMaker_Status_BeverageCounterHotWatercounters.beverageCounterHotWater
ConsumerProducts_CoffeeMaker_Status_BeverageCounterHotWaterCupscounters.beverageCounterHotWaterCups
ConsumerProducts_CoffeeMaker_Status_BeverageCounterMilkcounters.beverageCounterMilk
ConsumerProducts_CoffeeMaker_Status_BeverageCounterPowderCoffeecounters.beverageCounterPowderCoffee
ConsumerProducts_CoffeeMaker_Status_BeverageCounterRistrettoEspressocounters.beverageCounterRistrettoEspresso
Cooking_Common_Event_Hood_GreaseFilterMaxSaturationNearlyReachedevents.hoodGreaseFilterMaxSaturationNearlyReached
Cooking_Common_Event_Hood_GreaseFilterMaxSaturationReachedevents.hoodGreaseFilterMaxSaturationReached
Cooking_Common_Option_Hood_Boostoptions.hoodBoost
Cooking_Common_Option_Hood_IntensiveLeveloptions.hoodIntensiveLevel
Cooking_Common_Option_Hood_VentingLeveloptions.hoodVentingLevel
Cooking_Common_Setting_Lightingsettings.lighting
Cooking_Common_Setting_LightingBrightnesssettings.lightingBrightness
Cooking_Hob_Setting_Ventilationsettings.ventilation
Cooking_Hood_Setting_ColorTemperaturesettings.colorTemperature
Cooking_Hood_Setting_ColorTemperaturePercentsettings.colorTemperaturePercent
Cooking_Oven_Event_PreheatFinishedevents.preheatFinished
Cooking_Oven_Event_RegularPreheatFinishedevents.regularPreheatFinished
Cooking_Oven_Option_AirExchangeoptions.airExchange
Cooking_Oven_Option_CavitySelectoroptions.cavitySelector
Cooking_Oven_Option_FastPreHeatoptions.fastPreHeat
Cooking_Oven_Option_HeatupProgressrun.heatupProgress
Cooking_Oven_Option_Leveloptions.level
Cooking_Oven_Option_MeatProbeTemperatureV2options.meatProbeTemperatureV2
Cooking_Oven_Option_MicrowavePoweroptions.microwavePower
Cooking_Oven_Option_PyrolysisLeveloptions.pyrolysisLevel
Cooking_Oven_Option_SetpointTemperatureoptions.setpointTemperature
Cooking_Oven_Option_SteamAssistLeveloptions.steamAssistLevel
Cooking_Oven_Option_SteamBoostoptions.steamBoost
Cooking_Oven_Option_WarmingLeveloptions.warmingLevel
Cooking_Oven_Setting_SabbathModesettings.sabbathMode
Cooking_Oven_Status_CurrentCavityTemperaturestatus.currentCavityTemperature
Dishcare_Dishwasher_Event_MachineCareAndFilterCleaningReminderevents.machineCareAndFilterCleaningReminder
Dishcare_Dishwasher_Event_MachineCareAndLowMaintenanceFilterCleaningReminderevents.machineCareAndLowMaintenanceFilterCleaningReminder
Dishcare_Dishwasher_Event_MachineCareReminderevents.machineCareReminder
Dishcare_Dishwasher_Event_ProgramBlockedSaltLackevents.programBlockedSaltLack
Dishcare_Dishwasher_Event_RinseAidLackevents.rinseAidLack
Dishcare_Dishwasher_Event_RinseAidNearlyEmptyevents.rinseAidNearlyEmpty
Dishcare_Dishwasher_Event_SaltLackevents.saltLack
Dishcare_Dishwasher_Event_SaltNearlyEmptyevents.saltNearlyEmpty
Dishcare_Dishwasher_Event_SmartFilterCleaningReminderevents.smartFilterCleaningReminder
Dishcare_Dishwasher_Option_BrillianceDryoptions.brillianceDry
Dishcare_Dishwasher_Option_DelicateBasketoptions.delicateBasket
Dishcare_Dishwasher_Option_EcoDryoptions.ecoDry
Dishcare_Dishwasher_Option_EnergySafeoptions.energySafe
Dishcare_Dishwasher_Option_ExtraDryoptions.extraDry
Dishcare_Dishwasher_Option_ExtraRinseoptions.extraRinse
Dishcare_Dishwasher_Option_FixedZoneoptions.fixedZone
Dishcare_Dishwasher_Option_FlexSpray_BackLeftoptions.flexSprayBackLeft
Dishcare_Dishwasher_Option_FlexSpray_BackRightoptions.flexSprayBackRight
Dishcare_Dishwasher_Option_FlexSpray_FrontLeftoptions.flexSprayFrontLeft
Dishcare_Dishwasher_Option_FlexSpray_FrontRightoptions.flexSprayFrontRight
Dishcare_Dishwasher_Option_FlexSpray_Typeoptions.flexSprayType
Dishcare_Dishwasher_Option_HalfLoadoptions.halfLoad
Dishcare_Dishwasher_Option_HolidayModeoptions.holidayMode
Dishcare_Dishwasher_Option_HygienePlusoptions.hygienePlus
Dishcare_Dishwasher_Option_IntensivZoneoptions.intensivZone
Dishcare_Dishwasher_Option_LearningDishwasher_CleaningLeveloptions.learningDishwasherCleaningLevel
Dishcare_Dishwasher_Option_LearningDishwasher_DryingLeveloptions.learningDishwasherDryingLevel
Dishcare_Dishwasher_Option_LearningDishwasher_DurationLeveloptions.learningDishwasherDurationLevel
Dishcare_Dishwasher_Option_Pretreatmentoptions.pretreatment
Dishcare_Dishwasher_Option_SanitationUCoptions.sanitationUC
Dishcare_Dishwasher_Option_SilenceOnDemandoptions.silenceOnDemand
Dishcare_Dishwasher_Option_StorageFunctionoptions.storageFunction
Dishcare_Dishwasher_Option_Turbooptions.turbo
Dishcare_Dishwasher_Option_VarioSpeedoptions.varioSpeed
Dishcare_Dishwasher_Option_VarioSpeedPlusoptions.varioSpeedPlus
Dishcare_Dishwasher_Option_ZeoliteDryoptions.zeoliteDry
Dishcare_Dishwasher_Setting_TimeLightsettings.timeLight
Dishcare_Dishwasher_Status_EcoDryActiverun.ecoDryActive
Dishcare_Dishwasher_Status_ProgramPhaserun.programPhase
LaundryCare_Common_Event_DelayedShutdownevents.delayedShutdown
LaundryCare_Common_Event_DelayedShutdownCanceledevents.delayedShutdownCanceled
LaundryCare_Common_Event_DoorNotLockableevents.doorNotLockable
LaundryCare_Common_Event_DoorNotUnlockableevents.doorNotUnlockable
LaundryCare_Common_Event_DoorOpenevents.doorOpen
LaundryCare_Common_Event_FatalErrorOccuredevents.fatalErrorOccured
LaundryCare_Common_Event_FoamDetectionevents.foamDetection
LaundryCare_Common_Event_SupplyPower_BlackedOutevents.supplyPowerBlackedOut
LaundryCare_Common_Event_SupplyPower_SupplyVoltageTooLowevents.supplyPowerSupplyVoltageTooLow
LaundryCare_Common_Option_LoadRecommendationrun.loadRecommendation
LaundryCare_Common_Option_LowTemperatureHygieneoptions.lowTemperatureHygiene
LaundryCare_Common_Option_ProcessPhaserun.processPhase
LaundryCare_Common_Option_SilentModeoptions.silentMode
LaundryCare_Common_Option_SpeedPerfectoptions.speedPerfect
LaundryCare_Common_Option_VarioPerfectoptions.varioPerfect
LaundryCare_Common_Setting_Brightnesssettings.brightness
LaundryCare_Common_Setting_EndSignalVolumesettings.endSignalVolume
LaundryCare_Common_Setting_KeySignalVolumesettings.keySignalVolume
LaundryCare_Common_Status_Program_Details_Program01statistics.<Programm>.* (entschlüsselt)
LaundryCare_Common_Status_Program_Details_Program02statistics.<Programm>.* (entschlüsselt)
LaundryCare_Common_Status_Program_Details_Program06statistics.<Programm>.* (entschlüsselt)
LaundryCare_Common_Status_Program_Details_Program08statistics.<Programm>.* (entschlüsselt)
LaundryCare_Common_Status_Program_Details_Program09statistics.<Programm>.* (entschlüsselt)
LaundryCare_Common_Status_Program_Details_Program10statistics.<Programm>.* (entschlüsselt)
LaundryCare_Common_Status_Program_Details_Program11statistics.<Programm>.* (entschlüsselt)
LaundryCare_Common_Status_Program_Details_Program20statistics.<Programm>.* (entschlüsselt)
LaundryCare_Common_Status_Program_History_EffectiveTimehistory.latest.*, history.previous.*, … (entschlüsselt)
LaundryCare_Common_Status_Program_History_Uidhistory.latest.*, history.previous.*, … (entschlüsselt)
LaundryCare_Common_Status_Version_Smm_DomainFwinfo.firmware (nur die Versionsnummer)
LaundryCare_Common_Status_Version_Smm_HcFw— (geräteintern, wird nicht mehr angelegt)
LaundryCare_Dryer_Event_DryingProcessFinishedevents.dryingProcessFinished
LaundryCare_Dryer_Option_ConnectedDry_OriginalProgramTimerun.connectedDryOriginalProgramTime
LaundryCare_Dryer_Option_DryingTargetoptions.dryingTarget
LaundryCare_Dryer_Option_DryingTargetAdjustmentoptions.dryingTargetAdjustment
LaundryCare_Dryer_Option_Gentleoptions.gentle
LaundryCare_Dryer_Option_HalfLoadoptions.halfLoad
LaundryCare_Dryer_Option_ProcessPhaserun.processPhase
LaundryCare_Dryer_Option_Refresheroptions.refresher
LaundryCare_Dryer_Option_WrinkleGuardoptions.wrinkleGuard
LaundryCare_Washer_Event_Circulation_Pump_ErrorLockedRotorevents.circulationPumpErrorLockedRotor
LaundryCare_Washer_Event_Circulation_Pump_ErrorMaxTorqueevents.circulationPumpErrorMaxTorque
LaundryCare_Washer_Event_IDos1FillLevelPoorevents.iDos1FillLevelPoor
LaundryCare_Washer_Event_IDos2FillLevelPoorevents.iDos2FillLevelPoor
LaundryCare_Washer_Event_IDosUnitDefectevents.iDosUnitDefect
LaundryCare_Washer_Event_PumpErrorevents.pumpError
LaundryCare_Washer_Event_Spin_SpinAbortevents.spinSpinAbort
LaundryCare_Washer_Event_WaterSupply_WarmWaterAbsentevents.waterSupplyWarmWaterAbsent
LaundryCare_Washer_Option_EISAoptions.eISA
LaundryCare_Washer_Option_IDos1_Activeoptions.iDos1Active
LaundryCare_Washer_Option_IDos1Activeoptions.iDos1Active
LaundryCare_Washer_Option_IDos1DosingLeveloptions.iDos1DosingLevel
LaundryCare_Washer_Option_IDos2_Activeoptions.iDos2Active
LaundryCare_Washer_Option_IDos2Activeoptions.iDos2Active
LaundryCare_Washer_Option_IDos2DosingLeveloptions.iDos2DosingLevel
LaundryCare_Washer_Option_IntensivePlusoptions.intensivePlus
LaundryCare_Washer_Option_LessIroningoptions.lessIroning
LaundryCare_Washer_Option_MiniLoadoptions.miniLoad
LaundryCare_Washer_Option_MultipleSoakoptions.multipleSoak
LaundryCare_Washer_Option_Prewashoptions.prewash
LaundryCare_Washer_Option_ProcessPhaserun.processPhase
LaundryCare_Washer_Option_RinseHoldoptions.rinseHold
LaundryCare_Washer_Option_RinsePlusoptions.rinsePlus
LaundryCare_Washer_Option_RinsePlus1options.rinsePlus1
LaundryCare_Washer_Option_SilentWashoptions.silentWash
LaundryCare_Washer_Option_Soakoptions.soak
LaundryCare_Washer_Option_SpeedPerfectoptions.speedPerfect
LaundryCare_Washer_Option_SpinSpeedoptions.spinSpeed
LaundryCare_Washer_Option_Stainsoptions.stains
LaundryCare_Washer_Option_Temperatureoptions.temperature
LaundryCare_Washer_Option_WaterAndRinsePlus1options.waterAndRinsePlus1
LaundryCare_Washer_Option_WaterPlusoptions.waterPlus
LaundryCare_Washer_Setting_EnableDrumCleanRemindersettings.enableDrumCleanReminder
LaundryCare_Washer_Setting_IDos1BaseLevelsettings.iDos1BaseLevel
LaundryCare_Washer_Setting_IDos1_ContentNamesettings.iDos1ContentName
LaundryCare_Washer_Setting_IDos2BaseLevelsettings.iDos2BaseLevel
LaundryCare_Washer_Setting_IDos2Contentsettings.iDos2Content
LaundryCare_Washer_Setting_IDos2_ContentNamesettings.iDos2ContentName
LaundryCare_Washer_Status_Detergent_All_Consumedcounters.detergentAllConsumed
LaundryCare_Washer_Status_Softener_All_Consumedcounters.softenerAllConsumed
LaundryCare_WasherDryer_Option_DryingTargetoptions.dryingTarget
LaundryCare_WasherDryer_Option_LowTemperatureHygieneoptions.lowTemperatureHygiene
LaundryCare_WasherDryer_Option_ProgramModeoptions.programMode
LaundryCare_WasherDryer_Option_WrinkleGuardBoostoptions.wrinkleGuardBoost
Refrigeration_Common_Setting_BottleCooler_SetpointTemperaturesettings.bottleCoolerSetpointTemperature
Refrigeration_Common_Setting_ChillerCommon_SetpointTemperaturesettings.chillerCommonSetpointTemperature
Refrigeration_Common_Setting_ChillerLeft_SetpointTemperaturesettings.chillerLeftSetpointTemperature
Refrigeration_Common_Setting_ChillerRight_SetpointTemperaturesettings.chillerRightSetpointTemperature
Refrigeration_Common_Setting_Dispenser_Enabledsettings.dispenserEnabled
Refrigeration_Common_Setting_Door_AssistantForceFreezersettings.doorAssistantForceFreezer
Refrigeration_Common_Setting_Door_AssistantForceFridgesettings.doorAssistantForceFridge
Refrigeration_Common_Setting_Door_AssistantFreezersettings.doorAssistantFreezer
Refrigeration_Common_Setting_Door_AssistantFridgesettings.doorAssistantFridge
Refrigeration_Common_Setting_Door_AssistantTimeoutFreezersettings.doorAssistantTimeoutFreezer
Refrigeration_Common_Setting_Door_AssistantTimeoutFridgesettings.doorAssistantTimeoutFridge
Refrigeration_Common_Setting_Door_AssistantTriggerFreezersettings.doorAssistantTriggerFreezer
Refrigeration_Common_Setting_Door_AssistantTriggerFridgesettings.doorAssistantTriggerFridge
Refrigeration_Common_Setting_EcoModesettings.ecoMode
Refrigeration_Common_Setting_FreshModesettings.freshMode
Refrigeration_Common_Setting_Light_External_Brightnesssettings.lightExternalBrightness
Refrigeration_Common_Setting_Light_External_Powersettings.lightExternalPower
Refrigeration_Common_Setting_Light_Internal_Brightnesssettings.lightInternalBrightness
Refrigeration_Common_Setting_Light_Internal_EnableTheaterModesettings.lightInternalEnableTheaterMode
Refrigeration_Common_Setting_Light_Internal_Powersettings.lightInternalPower
Refrigeration_Common_Setting_SabbathModesettings.sabbathMode
Refrigeration_Common_Setting_VacationModesettings.vacationMode
Refrigeration_Common_Setting_WineCompartment_SetpointTemperaturesettings.wineCompartmentSetpointTemperature
Refrigeration_Common_Setting_WineCompartment2_SetpointTemperaturesettings.wineCompartment2SetpointTemperature
Refrigeration_Common_Setting_WineCompartment3_SetpointTemperaturesettings.wineCompartment3SetpointTemperature
Refrigeration_Common_Status_Door_BottleCoolerdoors.bottleCooler
Refrigeration_Common_Status_Door_Chillerdoors.chiller
Refrigeration_Common_Status_Door_ChillerCommondoors.chillerCommon
Refrigeration_Common_Status_Door_ChillerLeftdoors.chillerLeft
Refrigeration_Common_Status_Door_ChillerRightdoors.chillerRight
Refrigeration_Common_Status_Door_FlexCompartmentdoors.flexCompartment
Refrigeration_Common_Status_Door_Freezerdoors.freezer
Refrigeration_Common_Status_Door_Refrigeratordoors.refrigerator
Refrigeration_Common_Status_Door_Refrigerator2doors.refrigerator2
Refrigeration_Common_Status_Door_Refrigerator3doors.refrigerator3
Refrigeration_Common_Status_Door_WineCompartmentdoors.wineCompartment
Refrigeration_FridgeFreezer_Event_DoorAlarmFreezerevents.doorAlarmFreezer
Refrigeration_FridgeFreezer_Event_DoorAlarmRefrigeratorevents.doorAlarmRefrigerator
Refrigeration_FridgeFreezer_Event_TemperatureAlarmFreezerevents.temperatureAlarmFreezer
Refrigeration_FridgeFreezer_Setting_SetpointTemperatureFreezersettings.setpointTemperatureFreezer
Refrigeration_FridgeFreezer_Setting_SetpointTemperatureRefrigeratorsettings.setpointTemperatureRefrigerator
Refrigeration_FridgeFreezer_Setting_SuperModeFreezersettings.superModeFreezer
Refrigeration_FridgeFreezer_Setting_SuperModeRefrigeratorsettings.superModeRefrigerator
general.brand— (wird nicht mehr angelegt)
general.connectedinfo.reachable
general.enumber— (wird nicht mehr angelegt)
general.haId— (wird nicht mehr angelegt)
general.name— (wird nicht mehr angelegt)
general.type— (wird nicht mehr angelegt)
general.vib— (wird nicht mehr angelegt)
own_request.request_json— (wird nicht mehr angelegt)
own_request.response— (wird nicht mehr angelegt)
rateLimit.*, rateTokenLimit.* (unter homeconnect.0)— (entfernt)

Umstieg von 1.7 – 1.23

Die Geräte-Ordner hießen nach dem App-Namen (bis 1.12) oder nach der E-Nummer vom Typenschild (1.13 – 1.23, sx87tx02ce-60), und die benennt nur das Modell. Mit dieser Version zieht jeder Ordner einmal auf Modell und eigene Nummer des Geräts um (sx87tx02ce-5775). Werte, Aufzeichnungs-Einstellungen, Räume, Funktionen und Aliase ziehen mit, aufgezeichnete Verläufe laufen in ihrer bisherigen Reihe weiter. Skripte und Visualisierungen mit den alten IDs müssen angepasst werden.

Das laufende Programm, die Türen und die Gesamtzähler haben jetzt eigene Kanäle: status.remainingProgramTime → run.remainingProgramTime (ebenso Laufzeit, Fortschritt, Phase, Prognosen und Empfehlungen), status.doorOpen → doors.door, status.doorLocked → doors.doorLocked, status.programAllCountCompleted → counters.programAllCountCompleted (ebenso jeder Gesamtzähler). Ein Ereignis oder eine Fachtür, die in einem 2.0-Testbau ein eigener Kanal war (events.programFinished.active, doors.freezer.open), wird wieder ein einfacher Datenpunkt (events.programFinished, doors.freezer). Der letzte Lauf gehört zum Verlauf: lastRun.start → history.latest.start (ebenso Ende, wie er endete und der Verbrauch); wo der Verlauf Programm und Dauer schon hatte, bleiben diese, die zwei aus lastRun entfallen. Werte, Aufzeichnungen, Aliase, Räume und Funktionen ziehen mit.

Anfragegrenzen

Home Connect gewährt 1000 Anfragen pro Tag je Anwendung und Konto, höchstens 50 pro Minute, und sperrt für zehn Minuten nach zehn fehlgeschlagenen Anfragen in Folge. Der Adapter ist darauf gebaut: ein dauerhafter Ereignisstrom statt Abfragen im Takt, dauerhaft gemerkte Programmdefinitionen, höchstens 50 Anfragen pro Minute (der erste Start nach einem Update oder mit einem neuen Gerät liest deshalb einige Minuten), deine Befehle vor wartenden Leseanfragen, und eine selbsttätige Pause nach einer Grenz-Antwort — das Log nennt die Grenze und wie lange Home Connect sperrt. Einzustellen ist nichts — aber eine zweite eigene Anwendung mit denselben Zugangsdaten teilt sich dasselbe Kontingent.

Fehlersuche

SymptomUrsache und Abhilfe
info.connection bleibt rotNicht angemeldet, oder der Ereignisstrom liegt. Verbindung testen in den Einstellungen nennt den Grund.
Es erscheinen keine GeräteDas Entwicklerkonto muss mit dem App-Konto verlinkt sein (im Profil: Standard-Testkonto = E-Mail-Adresse der App), und die Anmeldung muss bestätigt sein.
Der Anmelde-Link funktioniert nichtCodes laufen nach wenigen Minuten ab. Der Adapter fordert selbsttätig einen neuen an; das Einstellungs-Panel zeigt ihn von selbst.
Es gibt keinen Anmelde-Link mehrEine Stunde lang hat niemand bestätigt, deshalb fragt der Adapter nicht mehr nach. Neuen Anmelde-Link anfordern in den Einstellungen.
unauthorized_client: Invalid client idDie Client ID ist unbekannt — noch einmal aus der Anwendung kopieren (64 Zeichen).
unauthorized_client: request rejected by client authorization authority (developer portal)Die Anwendung ist noch nicht aktiv — nach dem Registrieren oder Ändern 15 bis 60 Minuten warten, prüfen, dass ihr Status Enabled ist, dann einen neuen Anmelde-Link anfordern.
unauthorized_client: client not authorized for this oauth flow (grant_type)Die Anwendung nutzt ein anderes OAuth-Verfahren — eine neue mit Device Flow registrieren.
invalid_clientDas Client Secret wurde abgelehnt — prüfen.
access_deniedDas Konto wurde abgelehnt — in der Home-Connect-App prüfen (SingleKey ID, akzeptierte Nutzungsbedingungen) und ob es das im Entwicklerportal eingetragene Konto ist.
In ChinaHome Connect in China (api.home-connect.cn) wird nicht unterstützt.
Ein Gerät bleibt grauEs ist ausgeschaltet oder ohne Netz. Seine Datenpunkte bleiben mit ihren letzten Werten stehen.
Ein Schreibvorgang bewirkt nichtsDas Gerät lässt gerade keine Fernbedienung zu (status.remoteControlActive), oder die Option gehört nicht zum gewählten Programm.
Im Log steht „SDK.Error.NoProgramActive"Das ist die normale Antwort eines untätigen Geräts, kein Fehler — sie wird auf Debug-Stufe protokolliert.

Diagnosebericht

Tut ein Gerät nicht, was es soll: Instanz-Einstellungen öffnen, Reiter Experte, Gerät wählen und den Diagnosebericht herunterladen. Er enthält, was Home Connect für dieses Gerät geantwortet hat (bei einem verbundenen Gerät auch frisch gelesen: Status, Einstellungen und Programme), die Ereignisse des Live-Stroms, die Datenpunkte des Geräts mit ihren Werten und die letzten Logzeilen des Adapters. Die Datei an ein Issue mit dem Formular Gerät melden anhängen — die Karte verlinkt es.

Der Bericht entsteht nur auf Anforderung, bleibt bis zum Herunterladen im Speicher und schreibt nichts. Seriennummern, die Namen deiner Geräte und deine Anmeldedaten stehen darin nur als Platzhalter.

Unterstützung

Fragen, Fehlerberichte und Ideen: github.com/iobroker-community-adapters/ioBroker.homeconnect.

Changelog

2.0.0-alpha.0 (2026-10-21)

  • (krobipd) Changed: complete rewrite with a new object tree and new datapoint IDs — breaking for existing scripts and visualizations
  • (krobipd) Changed: readable values with units and labels in the user's language
  • (krobipd) New: program history and the consumption of the last run as readable datapoints
  • (krobipd) Changed: the adapter requires js-controller 7.2.5 and Admin 8.2.0 or newer now
  • (krobipd) New: sign-in panel in the instance settings with a connection test and a reset of the login
  • (krobipd) Improved: an update from 1.x keeps rooms, functions, aliases and the Home Connect sign-in
  • (krobipd) Fixed: the object database no longer grows with every value change (#387), and the start stays within the Home Connect request limits (#327, #58)
  • (krobipd) New: diagnostics report on the Expert tab, with a 'Report a device' issue form for it

1.6.1 (2026-05-12)

  • (TA2k) Login/Refresh flow improved

1.6.0 (2026-05-11)

  • (copilot) Adapter requires node.js >= 22 now
  • (copilot) Adapter requires admin >= 7.7.22 now
  • (Lucky-ESA) Fixed adapter crash if URI is empty
  • (Lucky-ESA) Save remaining time in active folder
  • (Lucky-ESA) Device monitoring starts only after the adapter has started (this may take up to 2 minutes)

1.5.2 (2025-12-14)

  • (Lucky-ESA) Rate limit of 50 requests per minute intercepted at adapter startup
  • (Lucky-ESA) Added custom request

1.5.1 (2025-09-20)

  • (Lucky-ESA) Fixed: Name of the objects are deleted

License

The MIT License (MIT)

Copyright (c) 2019-2026 TA2k tombox2020@gmail.com
Copyright (c) 2024-2026 iobroker-community-adapters iobroker-community-adapters@gmx.de
Copyright (c) 2026 krobi krobi@power-dreams.com

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.