quicksander / homebridge-mieleathome Goto Github PK
View Code? Open in Web Editor NEWThis project forked from talsalis/homebridge-miele-hood
License: Apache License 2.0
This project forked from talsalis/homebridge-miele-hood
License: Apache License 2.0
Hello,
I just noticed what maybe a side effect of the fridge characteristic implementation (at least, it was not like that in version 2.6.x of the plugin):
When "Not in use", "Current Temperature" accessory for Dish Washer and Wash Machine show 1° instead of 0°
Hello Sander,
I know that you are working on the refresh token system, so maybe this is normal at this time: after a few hours (1h10 here) of the token use, a "refresh token" occurs and seems to succeed, but subsequent API calls fail with "Unauthorized":
[25/01/2021 22:27:10] [Miele] Refreshing token...
[25/01/2021 22:27:10] [Miele] Token succesfully refreshed and saved in persistent storage.
[25/01/2021 22:27:16] [Miele] Miele API request https://api.mcs3.miele.com/v1/devices/000116035470/state failed with status 401: "Unauthorized".
[25/01/2021 22:27:16] [Miele] Miele API request https://api.mcs3.miele.com/v1/devices/mac-001D63FFFE0203B4/state failed with status 401: "Unauthorized".
[25/01/2021 22:28:16] [Miele] Miele API request https://api.mcs3.miele.com/v1/devices/000116035470/state failed with status 401: "Unauthorized".
[25/01/2021 22:28:16] [Miele] Miele API request https://api.mcs3.miele.com/v1/devices/mac-001D63FFFE0203B4/state failed with status 401: "Unauthorized".
However, just restarting the homebridge instance makes the API calls succeed without manually reentering new tokens (hence, I do not know if the plugin uses te initially manually provided ones or the "refreshed" ones):
[25/01/2021 23:40:23] [Miele] Miele API request https://api.mcs3.miele.com/v1/devices/000116035470/state failed with status 401: "Unauthorized".
[25/01/2021 23:41:23] [Miele] Miele API request https://api.mcs3.miele.com/v1/devices/000116035470/state failed with status 401: "Unauthorized".
[25/01/2021 23:41:23] [Miele] Miele API request https://api.mcs3.miele.com/v1/devices/mac-001D63FFFE0203B4/state failed with status 401: "Unauthorized".
[25/01/2021 23:42:23] [Miele] Miele API request https://api.mcs3.miele.com/v1/devices/000116035470/state failed with status 401: "Unauthorized".
[25/01/2021 23:42:23] [Miele] Miele API request https://api.mcs3.miele.com/v1/devices/mac-001D63FFFE0203B4/state failed with status 401: "Unauthorized".
[25/01/2021 23:42:33] [Homebridge UI] Homebridge restart request received
[25/01/2021 23:42:33] [Homebridge UI] UI / Bridge settings have not changed; only restarting Homebridge process
[25/01/2021 23:42:33] [HB Supervisor] Sending SIGTERM to Homebridge
[25/01/2021 23:42:33] Got SIGTERM, shutting down Homebridge...
[25/01/2021 23:42:38] [HB Supervisor] Homebridge Process Ended. Code: 143, Signal: null
[25/01/2021 23:42:43] [HB Supervisor] Restarting Homebridge...
[25/01/2021 23:42:43] [HB Supervisor] Starting Homebridge with extra flags: -I
[25/01/2021 23:42:43] [HB Supervisor] Starting Homebridge with custom env: {"NODE_OPTIONS":"--trace-warnings"}
[25/01/2021 23:42:43] [HB Supervisor] Started Homebridge v1.2.5 with PID: 74383
[25/01/2021 23:42:43] Loaded config.json with 0 accessories and 2 platforms.
[25/01/2021 23:42:43] ---
[25/01/2021 23:42:44] Loaded plugin: [email protected]
[25/01/2021 23:42:44] Registering platform 'homebridge-camera-ffmpeg.Camera-ffmpeg'
[25/01/2021 23:42:44] ---
[25/01/2021 23:42:44] Loaded plugin: [email protected]
[25/01/2021 23:42:44] Registering platform 'homebridge-config-ui-x.config'
[25/01/2021 23:42:44] ---
[25/01/2021 23:42:44] Loaded plugin: [email protected]
[25/01/2021 23:42:44] Registering accessory 'homebridge-contactnotifier.ContactNotifier'
[25/01/2021 23:42:44] ---
[25/01/2021 23:42:44] Loaded plugin: [email protected]
[25/01/2021 23:42:44] Registering accessory 'homebridge-daikin-local.Daikin-Local'
[25/01/2021 23:42:44] ---
[25/01/2021 23:42:44] Loaded plugin: [email protected]
[25/01/2021 23:42:44] Registering accessory 'homebridge-http-switch.HTTP-SWITCH'
[25/01/2021 23:42:44] ---
[25/01/2021 23:42:44] Loaded plugin: [email protected]
[25/01/2021 23:42:44] Registering platform 'homebridge-mieleathome.Miele@home'
[25/01/2021 23:42:44] ---
[25/01/2021 23:42:44] Loaded plugin: [email protected]
[25/01/2021 23:42:44] Registering accessory 'homebridge-outsidetemperature.OutsideTemperature'
[25/01/2021 23:42:44] ---
[25/01/2021 23:42:44] Loaded plugin: [email protected]
[25/01/2021 23:42:44] Registering platform 'homebridge-platform-wemo.BelkinWeMo'
[25/01/2021 23:42:44] ---
[25/01/2021 23:42:44] Loaded plugin: [email protected]
[25/01/2021 23:42:44] Registering accessory 'homebridge-roomba2.Roomba2'
[25/01/2021 23:42:44] ---
[25/01/2021 23:42:44] Loaded plugin: [email protected]
[25/01/2021 23:42:44] Registering accessory 'homebridge-script2.Script2'
[25/01/2021 23:42:44] ---
[25/01/2021 23:42:44] Loaded plugin: [email protected]
[25/01/2021 23:42:44] Registering accessory 'homebridge-sonytvremote.SonyTV'
[25/01/2021 23:42:44] ---
[25/01/2021 23:42:45] Loaded plugin: [email protected]
[25/01/2021 23:42:45] Registering platform 'homebridge-videodoorbell.Video-doorbell'
[25/01/2021 23:42:45] ---
[25/01/2021 23:42:45] Loaded plugin: [email protected]
[25/01/2021 23:42:45] Registering accessory 'homebridge-watervolume.WaterVolume'
[25/01/2021 23:42:45] ---
[25/01/2021 23:42:45] Loading 2 platforms...
[25/01/2021 23:42:45] [Corniche Homebridge-Three Config] Initializing config platform...
[25/01/2021 23:42:45] [Corniche Homebridge-Three Config] Running in Service Mode
[25/01/2021 23:42:45] [Miele] Initializing Miele@home platform...
[25/01/2021 23:42:45] [Miele] Loading accessory data from cache: Lave-vaisselle
[25/01/2021 23:42:45] [Miele] Loading accessory data from cache: Lave-linge
Setup Payload:
X-HM://0024AOUT1H5JD
Enter this code with your HomeKit app on your iOS device to pair with Homebridge:
┌────────────┐
│ 499-82-453 │
└────────────┘
[25/01/2021 23:42:45] Homebridge v1.2.5 is running on port 51809.
[25/01/2021 23:42:45] [Miele] Discovered device: id: mac-001D63FFFE0203B2, name: Four, model:
[25/01/2021 23:42:45] [Miele] Ignoring unsupported device. Device: "Four" with raw type value: 12.
[25/01/2021 23:42:45] [Miele] Discovered device: id: 000127334912, name: Taque, model:
[25/01/2021 23:42:45] [Miele] Ignoring unsupported device. Device: "Taque" with raw type value: 14.
[25/01/2021 23:42:45] [Miele] Discovered device: id: mac-001D63FFFE0203B4, name: Lave-vaisselle, model:
[25/01/2021 23:42:45] [Miele] Re-creating existing accessory with data from cache: Lave-vaisselle
[25/01/2021 23:42:45] [Miele] Discovered device: id: 000116035470, name: Lave-linge, model:
[25/01/2021 23:42:45] [Miele] Re-creating existing accessory with data from cache: Lave-linge
[25/01/2021 23:42:45] [Miele] Discovered device: id: mac-00124B0005AB4D8B, name: Frigo, model:
[25/01/2021 23:42:45] [Miele] Ignoring unsupported device. Device: "Frigo" with raw type value: 19.
After installing the plugin and setup I see this in homebridge logs.
[11/01/2021, 21:24:48] [Miele@Home] Discovered device: id: xxx, name: Washing machine, model: WCG370
[11/01/2021, 21:24:48] [Miele@Home] Skipping unsupported device "Washing machine with type identifier: 1.
(Slightly censored) Response from curl -X GET "https://api.mcs3.miele.com/v1/devices?language=en" -H "accept: application/json; charset=utf-8" -H "Authorization: Bearer xxx"
{
"xxx": {
"ident": {
"type": {
"key_localized": "Device type",
"value_raw": 1,
"value_localized": "Washing machine"
},
"deviceName": "",
"deviceIdentLabel": {
"fabNumber": "xxx",
"fabIndex": "19",
"techType": "WCG370",
"matNumber": "11283770",
"swids": [
"5031",
"20456",
"25213",
"25191",
"25304",
"25205",
"25312",
"25319",
"5031",
"20456",
"25213",
"25191",
"25304",
"25205",
"25312",
"25319"
]
},
"xkmIdentLabel": {
"techType": "EK037",
"releaseVersion": "03.58"
}
},
"state": {
"ProgramID": {
"value_raw": 3,
"value_localized": "Minimum iron",
"key_localized": "Program name"
},
"status": {
"value_raw": 5,
"value_localized": "In use",
"key_localized": "status"
},
"programType": {
"value_raw": 1,
"value_localized": "Own programme",
"key_localized": "Program type"
},
"programPhase": {
"value_raw": 260,
"value_localized": "Main wash",
"key_localized": "Program phase"
},
"remainingTime": [
1,
33
],
"startTime": [
0,
0
],
"targetTemperature": [
{
"value_raw": 3000,
"value_localized": 30,
"unit": "Celsius"
},
{
"value_raw": -32768,
"value_localized": null,
"unit": "Celsius"
},
{
"value_raw": -32768,
"value_localized": null,
"unit": "Celsius"
}
],
"temperature": [
{
"value_raw": -32768,
"value_localized": null,
"unit": "Celsius"
},
{
"value_raw": -32768,
"value_localized": null,
"unit": "Celsius"
},
{
"value_raw": -32768,
"value_localized": null,
"unit": "Celsius"
}
],
"signalInfo": false,
"signalFailure": false,
"signalDoor": false,
"remoteEnable": {
"fullRemoteControl": true,
"smartGrid": false,
"mobileStart": false
},
"light": 0,
"elapsedTime": [
0,
5
],
"spinningSpeed": {
"unit": "rpm",
"value_raw": 1200,
"value_localized": "1200",
"key_localized": "Spin speed"
},
"dryingStep": {
"value_raw": null,
"value_localized": "",
"key_localized": "Drying level"
},
"ventilationStep": {
"value_raw": null,
"value_localized": "",
"key_localized": "Fan level"
},
"plateStep": [],
"ecoFeedback": {
"currentWaterConsumption": {
"unit": "l",
"value": 12
},
"currentEnergyConsumption": {
"unit": "kWh",
"value": 0.1
},
"waterForecast": 0.4,
"energyForecast": 0.3
},
"batteryLevel": null
}
}
}
Hello Sander,
I saw this morning you published the 3.0.7 version to reduce the amount of logs due to reconnection.
The previous issue is closed, but I am sorry to report that for some reason, what should be "ServerConnectionLost" as a reason for reconnection is seen as "SelfInitiated" hence the logs continue to flow here :-( (I put it in Debug mode, it shows that the connection is correctly detected lost from Miele side (lines marked with '*') but the reconnection reason is wrong and therefore logged as "info" instead of "debug" (lines marked with '**').
[29/03/2021 11:24:41] [Miele] Discovered devices: [
'mac-001D63FFFE0203B2',
'000127334912',
'mac-001D63FFFE0203B4',
'000116035470',
'mac-00124B0005AB4D8B'
]
[29/03/2021 11:24:41] [Miele] Discovered device: id: mac-001D63FFFE0203B2, name: Four, model: Unknown Miele model
[29/03/2021 11:24:41] [Miele] Ignoring unsupported device. Device: "Four" with raw type value: 12.
[29/03/2021 11:24:41] [Miele] Discovered device: id: 000127334912, name: Taque, model: Unknown Miele model
[29/03/2021 11:24:41] [Miele] Ignoring unsupported device. Device: "Taque" with raw type value: 14.
[29/03/2021 11:24:41] [Miele] Discovered device: id: mac-001D63FFFE0203B4, name: Lave-vaisselle, model: Unknown Miele model
[29/03/2021 11:24:41] [Miele] Re-creating existing accessory with data from cache: Lave-vaisselle
[29/03/2021 11:24:41] [Miele] Discovered device: id: 000116035470, name: Lave-linge, model: Unknown Miele model
[29/03/2021 11:24:41] [Miele] Re-creating existing accessory with data from cache: Lave-linge
[29/03/2021 11:24:41] [Miele] Discovered device: id: mac-00124B0005AB4D8B, name: Frigo, model: Unknown Miele model
[29/03/2021 11:24:41] [Miele] Re-creating existing accessory with data from cache: Frigo
[29/03/2021 11:24:41] [Miele] Lave-vaisselle: Initial connection with Miele event server successfully established.
[29/03/2021 11:24:41] [Miele] Lave-linge: Initial connection with Miele event server successfully established.
[29/03/2021 11:24:41] [Miele] Frigo: Initial connection with Miele event server successfully established.
[29/03/2021 11:24:41] [Miele] Lave-vaisselle: Event 'device' received.
[29/03/2021 11:24:41] [Miele] Lave-vaisselle: Updating characteristic Active to 1.
[29/03/2021 11:24:41] [Miele] Lave-vaisselle: Remaing Duration update received: 0[s]
[29/03/2021 11:24:41] [Miele] Frigo: Event 'device' received.
[29/03/2021 11:24:41] [Miele] Frigo: Updating characteristic CurrentHeatingCoolingState to 2.
[29/03/2021 11:24:41] [Miele] Frigo: Updating characteristic TargetHeatingCoolingState to 2.
[29/03/2021 11:24:41] [Miele] Frigo: Zone 1 Current Temperature update received: 400[C/100]
[29/03/2021 11:24:41] [Miele] Frigo: Updating characteristic CurrentTemperature to 4.
[29/03/2021 11:24:41] [Miele] Frigo: Zone 1 Target Temperature update received: 400[C/100]
[29/03/2021 11:24:41] [Miele] Frigo: Updating characteristic TargetTemperature to 4.
[29/03/2021 11:24:41] [Miele] Lave-linge: Event 'device' received.
[29/03/2021 11:24:41] [Miele] Lave-linge: Remaing Duration update received: 0[s]
[29/03/2021 11:24:42] [Miele] Lave-vaisselle: Returning 1 for Active.
[29/03/2021 11:24:42] [Miele] Lave-vaisselle: Returning 0 for InUse.
[29/03/2021 11:24:42] [Miele] Lave-vaisselle: Returning 0 for RemainingDuration.
[29/03/2021 11:24:42] [Miele] Frigo: Returning 2 for CurrentHeatingCoolingState.
[29/03/2021 11:24:42] [Miele] Frigo: Returning 2 for TargetHeatingCoolingState.
[29/03/2021 11:24:42] [Miele] Frigo: Returning 4 for CurrentTemperature.
[29/03/2021 11:24:42] [Miele] Frigo: Returning 4 for TargetTemperature.
[29/03/2021 11:24:42] [Miele] Frigo: Returning 0 for TemperatureDisplayUnits.
[29/03/2021 11:24:42] [Miele] Lave-linge: Returning 0 for Active.
[29/03/2021 11:24:42] [Miele] Lave-linge: Returning 0 for InUse.
[29/03/2021 11:24:42] [Miele] Lave-linge: Returning 0 for RemainingDuration.
*[29/03/2021 11:27:10] [Miele] Frigo: Miele event server connection lost. Auto-reconnect after 60[s]
*[29/03/2021 11:27:10] [Miele] Lave-linge: Miele event server connection lost. Auto-reconnect after 60[s]
*[29/03/2021 11:27:10] [Miele] Lave-vaisselle: Miele event server connection lost. Auto-reconnect after 60[s]
[29/03/2021 11:27:28] [Miele] Lave-vaisselle: Returning 1 for Active.
[29/03/2021 11:27:28] [Miele] Lave-vaisselle: Returning 0 for InUse.
[29/03/2021 11:27:28] [Miele] Lave-vaisselle: Returning 0 for RemainingDuration.
[29/03/2021 11:27:28] [Miele] Frigo: Returning 2 for CurrentHeatingCoolingState.
[29/03/2021 11:27:28] [Miele] Frigo: Returning 2 for TargetHeatingCoolingState.
[29/03/2021 11:27:28] [Miele] Frigo: Returning 4 for CurrentTemperature.
[29/03/2021 11:27:28] [Miele] Frigo: Returning 4 for TargetTemperature.
[29/03/2021 11:27:28] [Miele] Frigo: Returning 0 for TemperatureDisplayUnits.
[29/03/2021 11:27:28] [Miele] Lave-linge: Returning 0 for Active.
[29/03/2021 11:27:28] [Miele] Lave-linge: Returning 0 for InUse.
[29/03/2021 11:27:28] [Miele] Lave-linge: Returning 0 for RemainingDuration.
**[29/03/2021 11:28:10] [Miele] Lave-vaisselle: Self initiated reconnect with Miele event server successful.
**[29/03/2021 11:28:10] [Miele] Lave-linge: Self initiated reconnect with Miele event server successful.
**[29/03/2021 11:28:10] [Miele] Frigo: Self initiated reconnect with Miele event server successful.
It is like the line "this.reconnectReason = ReconnectReason.ServerConnectionLost" is overwritten with "this.reconnectReason = ReconnectReason.SelfInitiated;", possibly at the "setTimeout()" definition ?
Maybe one way is to move the "this.reconnectReason = ReconnectReason.SelfInitiated;" line from the setTimeout() definition to higher in the code, as an initialisation ?
I tried like this (modified lines tagged with "// RMI"):
// Error handling.
this.eventSource.onerror = (error) => {
var _a;
(_a = this.eventSource) === null || _a === void 0 ? void 0 : _a.close();
const errorObj = error;
this.reconnectReason = ReconnectReason.SelfInitiated; // RMI
// If Miele closed the connection on their end, EventSource raises an empty error object.
if (!errorObj.status) {
this.platform.log.debug(`${this.accessory.context.device.displayName}: Miele event server ` +
`connection lost. Auto-reconnect after ${settings_1.EVENT_SERVER_RECONNECT_DELAY_S}[s]`);
this.reconnectReason = ReconnectReason.ServerConnectionLost;
}
else {
this.platform.log.error(`${this.accessory.context.device.displayName}: Error received from Miele event server. ` +
`Status: ${errorObj.status}. Message: '${errorObj.message}'`);
this.mainService.setCharacteristic(this.platform.Characteristic.StatusFault, this.platform.Characteristic.StatusFault.GENERAL_FAULT);
this.platform.log.info(`${this.accessory.context.device.displayName}: Will attempt to reconnect to the Miele event server after` +
` ${settings_1.EVENT_SERVER_RECONNECT_DELAY_S}[s].`);
this.reconnectReason = ReconnectReason.Error;
}
setTimeout(() => {
// RMI
this.connectToEventServer();
}, settings_1.EVENT_SERVER_RECONNECT_DELAY_S * 1000);
};
This modification works (reconnection due to Miele side disconnect is now in debug and correctly labeled as such), but I have no idea if this modification has no side effect as I do not have any other issue happening leading to another type of disconnection.
Hi,
I receive a "UnhandledPromiseRejectionWarning: Error" because it seems that something is seen wrong in the persist/AccessoryInfo.0E4EB8423210.json file.
I removed the platform and the homebridge instance (I use a separate instance for my tests, so no big deal) and installed everything again, but the problem still occur.
(node:75050) UnhandledPromiseRejectionWarning: Error: [node-persist][readFile] /Users/mrabozee/.homebridge-three/persist/AccessoryInfo.0E4EB8423210.json does not look like a valid storage file!
at /usr/local/lib/node_modules/homebridge-mieleathome/node_modules/node-persist/src/local-storage.js:314:89
at FSReqCallback.readFileAfterClose [as oncomplete] (internal/fs/read_file_context.js:63:3)
(Use `node --trace-warnings ...` to show where the warning was created)
(node:75050) UnhandledPromiseRejectionWarning: Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). To terminate the node process on unhandled promise rejection, use the CLI flag `--unhandled-rejections=strict` (see https://nodejs.org/api/cli.html#cli_unhandled_rejections_mode). (rejection id: 1)
(node:75050) [DEP0018] DeprecationWarning: Unhandled promise rejections are deprecated. In the future, promise rejections that are not handled will terminate the Node.js process with a non-zero exit code.
(node:75050) UnhandledPromiseRejectionWarning: Error: [node-persist][readFile] /Users/mrabozee/.homebridge-three/persist/AccessoryInfo.0E4EB8423210.json does not look like a valid storage file!
at /usr/local/lib/node_modules/homebridge-mieleathome/node_modules/node-persist/src/local-storage.js:314:89
at FSReqCallback.readFileAfterClose [as oncomplete] (internal/fs/read_file_context.js:63:3)
(node:75050) UnhandledPromiseRejectionWarning: Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). To terminate the node process on unhandled promise rejection, use the CLI flag `--unhandled-rejections=strict` (see https://nodejs.org/api/cli.html#cli_unhandled_rejections_mode). (rejection id: 2)
(node:75050) UnhandledPromiseRejectionWarning: Error: [node-persist][readFile] /Users/mrabozee/.homebridge-three/persist/AccessoryInfo.0E4EB8423210.json does not look like a valid storage file!
at /usr/local/lib/node_modules/homebridge-mieleathome/node_modules/node-persist/src/local-storage.js:314:89
at FSReqCallback.readFileAfterClose [as oncomplete] (internal/fs/read_file_context.js:63:3)
(node:75050) UnhandledPromiseRejectionWarning: Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). To terminate the node process on unhandled promise rejection, use the CLI flag `--unhandled-rejections=strict` (see https://nodejs.org/api/cli.html#cli_unhandled_rejections_mode). (rejection id: 3)
Hi, im getting this error after setting up the plugin and restarting homebridge.
Any idea why it has an empty displayName?
[2/19/2021, 6:52:03 PM] [Miele@home] Discovered device: id: 153657114, name: , model: RX2 [2/19/2021, 6:52:03 PM] [Miele@home] Error: Accessories must be created with a non-empty displayName. at new Accessory (/usr/lib/node_modules/homebridge/node_modules/hap-nodejs/src/lib/Accessory.ts:232:29) at new PlatformAccessory (/usr/lib/node_modules/homebridge/src/platformAccessory.ts:69:9) at MieleAtHomePlatform.discoverDevices (/usr/lib/node_modules/homebridge-mieleathome/src/platform.ts:139:29) at processTicksAndRejections (internal/process/task_queues.js:93:5)
[8/27/2021, 7:23:04 PM] [homebridge-mieleathome] This plugin generated a warning from the characteristic 'Target Temperature': characteristic was supplied illegal value: number 10 exceeded maximum of 9. See https://git.io/JtMGR for more info.
I hope you will not kill me :-)
2.7.2 fixes the temperature for the dish washer and wash machine, and still no Warning or Error at startup !
but I think two side effects occur:
(1) there is now an "Off" label where the target temperature for fridge used to be. And this "Off" label remains even if you change the target temperature.
And BTW, when you do change the target temperature, a 400 error now appears in the log:
[10/03/2021 19:45:07] [Miele] Miele API request https://api.mcs3.miele.com/v1/devices/mac-00124B0005AB4D8B/actions failed. Status 400: "Bad Request".Error: Request failed with status code 400
(2) whilst my washing machine is switched off, it now appears "Running" (Active = 1, In Use = 0)
I am quite sure it was not the case with 2.7.1 (a switched off wash machine was Active = 0, In Use = 0). Strangely enough, I went back installing 2.7.1, 2.7.0, even 2.6.1 but I could no more get the Fridge to display the Target Temperature or the Wash Machine to indicate "Off" when it is off (I guess it is due to caching, but I always fear the consequences of deleting caches...)
Originally posted by @MichelRabozee in #15 (reply in thread)
I managed to enable remote turn on on my dishwasher by changing the request header to as follows:
headers: {
accept: "*/*",
Authorization: this.token?.getAccessToken(),
"Content-Type": "application/json",
},
I basically just added accept value and it seems to work. Would be willing to submit a PR if this modification does not break anything.
Does not seem to be able to connect to my Oven or Steam Oven, are these really unsupported?
Discovered name XXXXXX,: Oven, model: H7264BP
[4/18/2021, 11:50:06 AM] [Miele@home] Ignoring unsupported device. Device: "Oven" with raw type value: 12.
[4/18/2021, 11:50:06 AM] [Miele@home] Discovered device: id: XXXXXX, name: Dishwasher, model: G7599
[4/18/2021, 11:50:06 AM] [Miele@home] Dishwasher: Adding temperature sensor.
[4/18/2021, 11:50:06 AM] [Miele@home] Registering new accessory: Dishwasher
[4/18/2021, 11:50:06 AM] [Miele@home] Discovered device: id: XXXXXX, name: Oven, model: H7860BP
[4/18/2021, 11:50:06 AM] [Miele@home] Ignoring unsupported device. Device: "Oven" with raw type value: 12.
[4/18/2021, 11:50:06 AM] [Miele@home] Discovered device: id: XXXXXX, name: Steam combination oven, model: DGC7440
[4/18/2021, 11:50:06 AM] [Miele@home] Ignoring unsupported device. Device: "Steam combination oven" with raw type value: 31.
[4/18/2021, 11:50:07 AM] [Miele@home] Dishwasher: Initial connection with Miele event server successfully established.
Shouldn't all devices be supported?
Hi,
It appears the process for retrieving the tokens has changed somehow.
This URL https://api.mcs3.miele.com/thirdparty/login?client_id=your client id&response_type=code&redirect_uri=http://localhost&state=1
does not redirect me to an URL with a code.
Instead it returns to the same Miele-login page where I started.
I cant find a way to run this plugin since I keep getting failed with status 401: "Unauthorized"
Do you have any advice?
Hello,
my wash machine has ended its program (but I still did not unload it), and the InUse characteristic seems to hesitate between 1 and 0.
Here is the log (in DEBUG mode, filtered for only "Lave-Linge", the INFO lines are prefixed by a "*", and with my "fix" (see #29) for correctly labelling the reconnections)
[30/03/2021 10:31:40] [Miele] Lave-linge: Returning 0 for Active.
[30/03/2021 10:31:40] [Miele] Lave-linge: Returning 1 for InUse.
[30/03/2021 10:31:40] [Miele] Lave-linge: Returning 7020 for RemainingDuration.
[30/03/2021 10:31:41] [Miele] Lave-linge: Event 'device' received.
*[30/03/2021 10:31:41] [Miele] Lave-linge: Updating characteristic InUse to 0.
[30/03/2021 10:31:41] [Miele] Lave-linge: Remaing Duration update received: 7020[s]
[30/03/2021 10:31:43] [Miele] Lave-linge: Event 'device' received.
*[30/03/2021 10:31:43] [Miele] Lave-linge: Updating characteristic InUse to 1.
[30/03/2021 10:31:43] [Miele] Lave-linge: Remaing Duration update received: 0[s]
[30/03/2021 10:31:43] [Miele] Lave-linge: Updating characteristic RemainingDuration to 0.
[30/03/2021 10:31:57] [Miele] Lave-linge: Returning 0 for Active.
[30/03/2021 10:31:57] [Miele] Lave-linge: Returning 1 for InUse.
[30/03/2021 10:31:57] [Miele] Lave-linge: Returning 0 for RemainingDuration.
[30/03/2021 10:34:47] [Miele] Lave-linge: Returning 0 for Active.
[30/03/2021 10:34:47] [Miele] Lave-linge: Returning 1 for InUse.
[30/03/2021 10:34:47] [Miele] Lave-linge: Returning 0 for RemainingDuration.
[30/03/2021 10:36:23] [Miele] Lave-linge: Miele event server connection lost. Auto-reconnect after 60[s]
[30/03/2021 10:37:24] [Miele] Lave-linge: Connection with Miele event server successfully recovered from stale server connection.
[30/03/2021 10:37:24] [Miele] Lave-linge: Event 'device' received.
[30/03/2021 10:37:24] [Miele] Lave-linge: Remaing Duration update received: 7020[s]
[30/03/2021 10:37:24] [Miele] Lave-linge: Updating characteristic RemainingDuration to 7020.
[30/03/2021 10:39:24] [Miele] Lave-linge: Miele event server connection lost. Auto-reconnect after 60[s]
[30/03/2021 10:40:24] [Miele] Lave-linge: Connection with Miele event server successfully recovered from stale server connection.
[30/03/2021 10:40:24] [Miele] Lave-linge: Event 'device' received.
[30/03/2021 10:40:24] [Miele] Lave-linge: Remaing Duration update received: 7020[s]
[30/03/2021 10:42:24] [Miele] Lave-linge: Miele event server connection lost. Auto-reconnect after 60[s]
[30/03/2021 10:43:24] [Miele] Lave-linge: Connection with Miele event server successfully recovered from stale server connection.
[30/03/2021 10:43:24] [Miele] Lave-linge: Event 'device' received.
[30/03/2021 10:43:24] [Miele] Lave-linge: Remaing Duration update received: 7020[s]
[30/03/2021 10:44:51] [Miele] Lave-linge: Event 'device' received.
*[30/03/2021 10:44:51] [Miele] Lave-linge: Updating characteristic InUse to 0.
[30/03/2021 10:44:51] [Miele] Lave-linge: Remaing Duration update received: 7020[s]
[30/03/2021 10:44:53] [Miele] Lave-linge: Event 'device' received.
*[30/03/2021 10:44:53] [Miele] Lave-linge: Updating characteristic InUse to 1.
[30/03/2021 10:44:53] [Miele] Lave-linge: Remaing Duration update received: 0[s]
[30/03/2021 10:44:53] [Miele] Lave-linge: Updating characteristic RemainingDuration to 0.
[30/03/2021 10:46:39] [Miele] Lave-linge: Connection with Miele event server successfully recovered from stale server connection.
[30/03/2021 10:46:40] [Miele] Lave-linge: Event 'device' received.
[30/03/2021 10:46:40] [Miele] Lave-linge: Remaing Duration update received: 7020[s]
[30/03/2021 10:46:40] [Miele] Lave-linge: Updating characteristic RemainingDuration to 7020.
[30/03/2021 10:49:24] [Miele] Lave-linge: Miele event server connection lost. Auto-reconnect after 60[s]
[30/03/2021 10:50:24] [Miele] Lave-linge: Connection with Miele event server successfully recovered from stale server connection.
[30/03/2021 10:50:25] [Miele] Lave-linge: Event 'device' received.
[30/03/2021 10:50:25] [Miele] Lave-linge: Remaing Duration update received: 7020[s]
[30/03/2021 10:53:24] [Miele] Lave-linge: Miele event server connection lost. Auto-reconnect after 60[s]
[30/03/2021 10:54:25] [Miele] Lave-linge: Connection with Miele event server successfully recovered from stale server connection.
[30/03/2021 10:54:25] [Miele] Lave-linge: Event 'device' received.
[30/03/2021 10:54:25] [Miele] Lave-linge: Remaing Duration update received: 7020[s]
[30/03/2021 10:55:03] [Miele] Lave-linge: Event 'device' received.
*[30/03/2021 10:55:03] [Miele] Lave-linge: Updating characteristic InUse to 0.
[30/03/2021 10:55:03] [Miele] Lave-linge: Remaing Duration update received: 7020[s]
[30/03/2021 10:55:08] [Miele] Lave-linge: Event 'device' received.
*[30/03/2021 10:55:08] [Miele] Lave-linge: Updating characteristic InUse to 1.
[30/03/2021 10:55:08] [Miele] Lave-linge: Remaing Duration update received: 0[s]
[30/03/2021 10:55:08] [Miele] Lave-linge: Updating characteristic RemainingDuration to 0.
[30/03/2021 10:55:10] [Miele] Lave-linge: Event 'device' received.
[30/03/2021 10:55:10] [Miele] Lave-linge: Remaing Duration update received: 7020[s]
[30/03/2021 10:55:10] [Miele] Lave-linge: Updating characteristic RemainingDuration to 7020.
[30/03/2021 10:56:24] [Miele] Lave-linge: Returning 0 for Active.
[30/03/2021 10:56:24] [Miele] Lave-linge: Returning 1 for InUse.
[30/03/2021 10:56:24] [Miele] Lave-linge: Returning 7020 for RemainingDuration.
And here is the state as returned by Miele server:
{
"ProgramID": {
"value_raw": 2164260866,
"value_localized": "Cottons",
"key_localized": "Program name"
},
"status": {
"value_raw": 7,
"value_localized": "Finished",
"key_localized": "status"
},
"programType": {
"value_raw": 2,
"value_localized": "Automatic programme",
"key_localized": "Program type"
},
"programPhase": {
"value_raw": 268,
"value_localized": "Finished",
"key_localized": "Program phase"
},
"remainingTime": [
1,
57
],
"startTime": [
0,
0
],
"targetTemperature": [
{
"value_raw": -32768,
"value_localized": null,
"unit": "Celsius"
}
],
"temperature": [],
"signalInfo": false,
"signalFailure": false,
"signalDoor": false,
"remoteEnable": {
"fullRemoteControl": false,
"smartGrid": false,
"mobileStart": false
},
"ambientLight": null,
"light": null,
"elapsedTime": [
0,
0
],
"spinningSpeed": {
"unit": "rpm",
"value_raw": 0,
"value_localized": "0",
"key_localized": "Spin speed"
},
"dryingStep": {
"value_raw": null,
"value_localized": "",
"key_localized": "Drying level"
},
"ventilationStep": {
"value_raw": null,
"value_localized": "",
"key_localized": "Fan level"
},
"plateStep": [],
"ecoFeedback": null,
"batteryLevel": null
}
Hi Guys,
I'm trying to Manually retrieve token as shown in Wiki but on Step 4. I get the "Client credentials are not valid" Message.
Any Ideas how to fix this?
Hey,
does anybody know, how I can reset my
Miele@mobile Account?
during the installation process, there is an error, that the password is incorrect.
There is no way to get the plugin running
Why do I get this error message now? Have not actually changed anything?
Hello, I have several Miele devices connected through XGW3000. Will it be possible to handle them ?
What kind of information do you need for them ? Of course, I am available to provide anything (the capabilities of any of the device I can retrieve through Swagger for instance, you just need to give me directions).
Here is the list of my items:
Fridge K 37442 iDF
Dish Washer G 6995 SCVi XXL K2O
Washer W 5965-WPS
Hob KM 6223
Oven H 6860 BP
Have a nice day !
Hello,
I played a bit today with some settings I never touched :-)
I disabled the "temperature sensor" for my dish washer, and it still appears (the log also still says "Lave-vaisselle: Adding temperature sensor.")
I did the same for the Washing Machine, and it worked: the log said "removing temperature sensor" and it was effective.
Event server connection will not become established when config key "reconnectEventServerInterval" does not exist.
Provide default when not filled.
Model: DA3698
The control of lighting is possible, but the fan control does not work at all...
Any idea why that might be?
In Homekit "Faucets" cannot have automations.
To be able to run automations upon "program finished" for washingmachines etc. it would be nice to add a plain switch-device.
Also I noticed a typo, in homekit I found a nice new device with name "Masmachine". Edit: The typo was mine hahha
Hope you are able to add the switch though! It would give us great feature-possibilities :)
A deactivated washer produces warnings in the log caused by invalid temperatue value.
Miele WWV980
[12/07/2021, 07:58:21] [homebridge-mieleathome] This plugin generated a warning from the characteristic 'Current Temperature': characteristic was supplied illegal value: number -327.66 exceeded minimum of 0. See https://git.io/JtMGR for more info.
The washing machine is stuck after the program is finished on the on state.
The temprature display always shows 0 celsius.
If it is supposed to show time how long it will take until the program finishes (not sure about that) it does not show that at all in homekit.
Hello,
I just installed the version 2.0.0. I saw that I needed to modify the Platform name to "Miele@home", however
Config:
{
"bridge": {
"name": "Corniche Homebridge-Three",
"username": "[redacted]",
"port": 51809,
"pin": "[redacted]"
},
"platforms": [
{
"name": "Corniche Homebridge-Three Config",
"port": 8082,
"auth": "form",
"theme": "red",
"tempUnits": "c",
"lang": "auto",
"platform": "config"
},
{
"name": "Miele",
"clientID": "[redacted]",
"clientSecret": "[redacted]",
"token": "[redacted]",
"language": "en",
"pollInterval": 60,
"disableStopActionFor": [
"Washing Machines",
"Dishwashers"
],
"platform": "Miele@home"
}
],
"accessories": []
}
Log:
[25/01/2021 10:04:45] [HB Supervisor] Restarting Homebridge...
[25/01/2021 10:04:45] [HB Supervisor] Starting Homebridge with extra flags: -I
[25/01/2021 10:04:45] [HB Supervisor] Started Homebridge v1.2.5 with PID: 34581
[25/01/2021 10:04:45] Loaded config.json with 0 accessories and 2 platforms.
[25/01/2021 10:04:45] ---
[25/01/2021 10:04:45] Loaded plugin: [email protected]
[25/01/2021 10:04:45] Registering platform 'homebridge-camera-ffmpeg.Camera-ffmpeg'
[25/01/2021 10:04:45] ---
[25/01/2021 10:04:45] Loaded plugin: [email protected]
[25/01/2021 10:04:45] Registering platform 'homebridge-config-ui-x.config'
[25/01/2021 10:04:45] ---
[25/01/2021 10:04:45] Loaded plugin: [email protected]
[25/01/2021 10:04:45] Registering accessory 'homebridge-contactnotifier.ContactNotifier'
[25/01/2021 10:04:45] ---
[25/01/2021 10:04:46] Loaded plugin: [email protected]
[25/01/2021 10:04:46] Registering accessory 'homebridge-daikin-local.Daikin-Local'
[25/01/2021 10:04:46] ---
[25/01/2021 10:04:46] Loaded plugin: [email protected]
[25/01/2021 10:04:46] Registering accessory 'homebridge-http-switch.HTTP-SWITCH'
[25/01/2021 10:04:46] ---
[25/01/2021 10:04:46] ====================
[25/01/2021 10:04:46] ERROR LOADING PLUGIN homebridge-mieleathome:
[25/01/2021 10:04:46] Error: Cannot find module 'node-persist'
Require stack:
- /usr/local/lib/node_modules/homebridge-mieleathome/dist/token.js
- /usr/local/lib/node_modules/homebridge-mieleathome/dist/platform.js
- /usr/local/lib/node_modules/homebridge-mieleathome/dist/index.js
- /usr/local/lib/node_modules/homebridge/lib/plugin.js
- /usr/local/lib/node_modules/homebridge/lib/pluginManager.js
- /usr/local/lib/node_modules/homebridge/lib/api.js
- /usr/local/lib/node_modules/homebridge/lib/server.js
- /usr/local/lib/node_modules/homebridge/lib/cli.js
- /usr/local/lib/node_modules/homebridge/bin/homebridge
at Function.Module._resolveFilename (internal/modules/cjs/loader.js:880:15)
at Function.Module._load (internal/modules/cjs/loader.js:725:27)
at Module.require (internal/modules/cjs/loader.js:952:19)
at require (internal/modules/cjs/helpers.js:88:18)
at Object.<anonymous> (/usr/local/lib/node_modules/homebridge-mieleathome/src/token.ts:4:1)
at Module._compile (internal/modules/cjs/loader.js:1063:30)
at Object.Module._extensions..js (internal/modules/cjs/loader.js:1092:10)
at Module.load (internal/modules/cjs/loader.js:928:32)
at Function.Module._load (internal/modules/cjs/loader.js:769:14)
at Module.require (internal/modules/cjs/loader.js:952:19)
[25/01/2021 10:04:46] ====================
[25/01/2021 10:04:46] Loaded plugin: [email protected]
[25/01/2021 10:04:46] Registering accessory 'homebridge-outsidetemperature.OutsideTemperature'
[25/01/2021 10:04:46] ---
[25/01/2021 10:04:46] Loaded plugin: [email protected]
[25/01/2021 10:04:46] Registering platform 'homebridge-platform-wemo.BelkinWeMo'
[25/01/2021 10:04:46] ---
[25/01/2021 10:04:46] Loaded plugin: [email protected]
[25/01/2021 10:04:46] Registering accessory 'homebridge-roomba2.Roomba2'
[25/01/2021 10:04:46] ---
[25/01/2021 10:04:46] Loaded plugin: [email protected]
[25/01/2021 10:04:46] Registering accessory 'homebridge-script2.Script2'
[25/01/2021 10:04:46] ---
[25/01/2021 10:04:46] Loaded plugin: [email protected]
[25/01/2021 10:04:46] Registering accessory 'homebridge-sonytvremote.SonyTV'
[25/01/2021 10:04:46] ---
[25/01/2021 10:04:47] Loaded plugin: [email protected]
[25/01/2021 10:04:47] Registering platform 'homebridge-videodoorbell.Video-doorbell'
[25/01/2021 10:04:47] ---
[25/01/2021 10:04:47] Loaded plugin: [email protected]
[25/01/2021 10:04:47] Registering accessory 'homebridge-watervolume.WaterVolume'
[25/01/2021 10:04:47] ---
[25/01/2021 10:04:47] Loading 2 platforms...
[25/01/2021 10:04:47] [Corniche Homebridge-Three Config] Initializing config platform...
[25/01/2021 10:04:47] [Corniche Homebridge-Three Config] Running in Service Mode
[25/01/2021 10:04:47] Error loading platform requested in your config.json at position 2
[25/01/2021 10:04:47] Error: The requested platform 'Miele@home' was not registered by any plugin.
at PluginManager.getPluginForPlatform (/usr/local/lib/node_modules/homebridge/src/pluginManager.ts:224:15)
at /usr/local/lib/node_modules/homebridge/src/server.ts:385:37
at Array.forEach (<anonymous>)
at Server.loadPlatforms (/usr/local/lib/node_modules/homebridge/src/server.ts:372:27)
at Server.start (/usr/local/lib/node_modules/homebridge/src/server.ts:151:29)
at cli (/usr/local/lib/node_modules/homebridge/src/cli.ts:80:10)
at Object.<anonymous> (/usr/local/lib/node_modules/homebridge/bin/homebridge:17:22)
at Module._compile (internal/modules/cjs/loader.js:1063:30)
at Object.Module._extensions..js (internal/modules/cjs/loader.js:1092:10)
at Module.load (internal/modules/cjs/loader.js:928:32)
at Function.Module._load (internal/modules/cjs/loader.js:769:14)
at Function.executeUserEntryPoint [as runMain] (internal/modules/run_main.js:72:12)
at internal/main/run_main_module.js:17:47
[25/01/2021 10:04:47] Got SIGTERM, shutting down Homebridge...
It seems that there is a requirement not fulfilled (node-persist), even after having installed it (sudo npm install node-persist)
Hello,
I think I discovered a small regression:
I just installed 1.2.0 over 1.1.1 and noticed that when an appliance like "Dish Washer" is running, the Active status is set to 0 while In Use is correctly "1". This leads to the appliance being displayed as going towards the STOP state (the Icon in Home app shows a spinning icon with "Arrêt..." as displayed status text - sorry, app in French, maybe "Stopping..." in English -) regardless of the fact it is running. Also, a switched on appliance in stand-by is now seen as "Switched Off" (active and in use = 0)
In version 1.1.1, both "active" and "in use" were set to "1" when the appliance was running, hence the Icon in Home app correctly displayed a pouring tap with the remaining time while the appliance is running. Also, when the Washing Machine was switched ON (Stand By), the "active" was "1" and "in use" was "0".
PS thanks for the "Thanks" ;-)
Hello Sander, I take advantage of your new release (cool !) to mention that during installation, there are some warnings appearing. It is from the beginning of me using the miele@home plugin. As the warnings occur only with this plugin, I wonder if it is due to a wrong installation from my side or if it is nothing to worry about.
npm WARN deprecated [email protected]: request has been deprecated, see https://github.com/request/request/issues/3142
npm WARN deprecated [email protected]: this library is no longer supported
npm WARN deprecated [email protected]: request-promise has been deprecated because it extends the now deprecated request package, see https://github.com/request/request/issues/3142
npm WARN deprecated [email protected]: core-js@<3 is no longer maintained and not recommended for usage due to the number of issues. Please, upgrade your dependencies to the actual version of core-js@3.
npm WARN deprecated [email protected]: 'github' has been renamed to '@octokit/rest' (https://git.io/vNB11)
Do I have to try to force install other version of those dependencies ?
Hi, if i turn on the coffee machine with the homebridge app and the device clean itself, it does that after some time powered off, its nothing more than flushing some water, the coffee machine gives 3 beeping errors and flashing led lights. power on and off after that wont causing the issue again. so the cleaning process generates a error when powering on. if i use the button on the coffee machine to power on, no errors or beeping, also turning on with the miele home app no beeping or flashing leds. i have a video of the issue if you want. power off is working perfectly if i turn the coffee machine on manual with the button or the miele home app.
when I login to miele api website
api.mcs3.miele.com,
some error below
{"code":500,"message":"A technical error occured. Please try again later. (Error-ID: fbb92fe63265043f)"}
Hello,
just to mention that the recurrent warnings about Target Temperature have returned:
[13/03/2021 12:56:07] [homebridge-mieleathome] This plugin generated a warning from the characteristic 'Target Temperature': characteristic was supplied illegal value: number 0 exceeded minimum of 10. See https://git.io/JtMGR for more info.
[13/03/2021 12:56:24] [homebridge-mieleathome] This plugin generated a warning from the characteristic 'Target Temperature': characteristic was supplied illegal value: number 0 exceeded minimum of 10. See https://git.io/JtMGR for more info.
[13/03/2021 12:56:35] [homebridge-mieleathome] This plugin generated a warning from the characteristic 'Target Temperature': characteristic was supplied illegal value: number 0 exceeded minimum of 10. See https://git.io/JtMGR for more info.
[13/03/2021 12:58:06] [homebridge-mieleathome] This plugin generated a warning from the characteristic 'Target Temperature': characteristic was supplied illegal value: number 0 exceeded minimum of 10. See https://git.io/JtMGR for more info.
[13/03/2021 12:58:21] [homebridge-mieleathome] This plugin generated a warning from the characteristic 'Target Temperature': characteristic was supplied illegal value: number 0 exceeded minimum of 10. See https://git.io/JtMGR for more info.
[13/03/2021 12:59:06] [homebridge-mieleathome] This plugin generated a warning from the characteristic 'Target Temperature': characteristic was supplied illegal value: number 0 exceeded minimum of 10. See https://git.io/JtMGR for more info.
[13/03/2021 12:59:17] [homebridge-mieleathome] This plugin generated a warning from the characteristic 'Target Temperature': characteristic was supplied illegal value: number 0 exceeded minimum of 10. See https://git.io/JtMGR for more info.
[13/03/2021 13:00:06] [homebridge-mieleathome] This plugin generated a warning from the characteristic 'Target Temperature': characteristic was supplied illegal value: number 0 exceeded minimum of 10. See https://git.io/JtMGR for more info.
[13/03/2021 13:01:06] [homebridge-mieleathome] This plugin generated a warning from the characteristic 'Target Temperature': characteristic was supplied illegal value: number 0 exceeded minimum of 10. See https://git.io/JtMGR for more info.
Reverting to 2.7.2 makes the warnings go away again.
On a positive note, the remaining time for the Wash Machine can now exceed the 3600 seconds \o/ :
Hi,
any plan to add support for Miele H 6800 BMX?
Hey,
Request token error: Request failed with status code 401
This is the error message I get every time, even if my data is correct. What can you do there?
HOOBS is unable to "login" to an specific miele account due to it not starting the authentication server... Only thing that is available in HOOBS are those settings (no NEXT button or port configuration, therefore no token grabbing)
Hello, since some time, I see in the homebridge accessory page the fact that the current temperature of the fridge is 4.1° instead of 4°. The Home application displays 4.0°, only because it truncate to the 1/10th of unit.
The State API returns:
"temperature": [
{
"value_raw": 400,
"value_localized": 4,
"unit": "Celsius"
}
I guess this comes during the division of value_raw by 100, but I do not understand why 400/100 gives 4.05 ??? Maybe because the division is done on integers with a float result ? Maybe it is needed to first cast value_raw to float ? or truncate the result to an integer ?
i keep getting this error message?
16/02/2022, 17:27:24] [Miele@home] Waschmaschine: Updating characteristic Active to 1.
[16/02/2022, 17:27:24] [Miele@home] Trockner: Updating characteristic Active to 1.
[16/02/2022, 17:27:26] [Miele@home] Trockner: Updating characteristic Active to 0.
[16/02/2022, 17:27:27] [Miele@home] Waschmaschine: Updating characteristic Active to 0.
[16/02/2022, 17:37:27] [Miele@home] Trockner: Updating characteristic Active to 1.
[16/02/2022, 17:37:27] [Miele@home] Waschmaschine: Updating characteristic Active to 1.
[16/02/2022, 17:37:29] [Miele@home] Trockner: Updating characteristic Active to 0.
[16/02/2022, 17:37:29] [Miele@home] Waschmaschine: Updating characteristic Active to 0.
[16/02/2022, 17:47:29] [Miele@home] Waschmaschine: Updating characteristic Active to 1.
[16/02/2022, 17:47:29] [Miele@home] Trockner: Updating characteristic Active to 1.
[16/02/2022, 17:47:31] [Miele@home] Trockner: Updating characteristic Active to 0.
[16/02/2022, 17:47:32] [Miele@home] Waschmaschine: Updating characteristic Active to 0.
[16/02/2022, 17:57:32] [Miele@home] Waschmaschine: Updating characteristic Active to 1.
[16/02/2022, 17:57:32] [Miele@home] Trockner: Updating characteristic Active to 1.
[16/02/2022, 17:57:34] [Miele@home] Trockner: Updating characteristic Active to 0.
[16/02/2022, 17:57:35] [Miele@home] Waschmaschine: Updating characteristic Active to 0.
[16/02/2022, 18:07:35] [Miele@home] Trockner: Updating characteristic Active to 1.
[16/02/2022, 18:07:35] [Miele@home] Waschmaschine: Updating characteristic Active to 1.
[16/02/2022, 18:07:37] [Miele@home] Trockner: Updating characteristic Active to 0.
[16/02/2022, 18:07:37] [Miele@home] Waschmaschine: Updating characteristic Active to 0.
[16/02/2022, 18:17:37] [Miele@home] Waschmaschine: Updating characteristic Active to 1.
[16/02/2022, 18:17:37] [Miele@home] Trockner: Updating characteristic Active to 1.
[16/02/2022, 18:17:39] [Miele@home] Trockner: Updating characteristic Active to 0.
[16/02/2022, 18:17:39] [Miele@home] Waschmaschine: Updating characteristic Active to 0.
[16/02/2022, 18:27:39] [Miele@home] Waschmaschine: Updating characteristic Active to 1.
[16/02/2022, 18:27:39] [Miele@home] Trockner: Updating characteristic Active to 1.
[16/02/2022, 18:27:41] [Miele@home] Trockner: Updating characteristic Active to 0.
[16/02/2022, 18:27:41] [Miele@home] Waschmaschine: Updating characteristic Active to 0.
[16/02/2022, 18:37:41] [Miele@home] Trockner: Updating characteristic Active to 1.
[16/02/2022, 18:37:41] [Miele@home] Waschmaschine: Updating characteristic Active to 1.
[16/02/2022, 18:37:43] [Miele@home] Trockner: Updating characteristic Active to 0.
[16/02/2022, 18:37:43] [Miele@home] Waschmaschine: Updating characteristic Active to 0.
[16/02/2022, 18:47:43] [Miele@home] Waschmaschine: Updating characteristic Active to 1.
[16/02/2022, 18:47:43] [Miele@home] Trockner: Updating characteristic Active to 1.
[16/02/2022, 18:47:45] [Miele@home] Trockner: Updating characteristic Active to 0.
[16/02/2022, 18:47:45] [Miele@home] Waschmaschine: Updating characteristic Active to 0.
[16/02/2022, 18:57:45] [Miele@home] Waschmaschine: Updating characteristic Active to 1.
[16/02/2022, 18:57:45] [Miele@home] Trockner: Updating characteristic Active to 1.
[16/02/2022, 18:57:47] [Miele@home] Trockner: Updating characteristic Active to 0.
[16/02/2022, 18:57:47] [Miele@home] Waschmaschine: Updating characteristic Active to 0.
[16/02/2022, 19:07:47] [Miele@home] Waschmaschine: Updating characteristic Active to 1.
[16/02/2022, 19:07:47] [Miele@home] Trockner: Updating characteristic Active to 1.
[16/02/2022, 19:07:49] [Miele@home] Trockner: Updating characteristic Active to 0.
[16/02/2022, 19:07:49] [Miele@home] Waschmaschine: Updating characteristic Active to 0.
[16/02/2022, 19:17:49] [Miele@home] Waschmaschine: Updating characteristic Active to 1.
[16/02/2022, 19:17:49] [Miele@home] Trockner: Updating characteristic Active to 1.
[16/02/2022, 19:17:53] [Miele@home] Trockner: Updating characteristic Active to 0.
[16/02/2022, 19:17:53] [Miele@home] Waschmaschine: Updating characteristic Active to 0.
[16/02/2022, 19:27:53] [Miele@home] Trockner: Updating characteristic Active to 1.
[16/02/2022, 19:27:53] [Miele@home] Waschmaschine: Updating characteristic Active to 1.
[16/02/2022, 19:27:56] [Miele@home] Trockner: Updating characteristic Active to 0.
[16/02/2022, 19:27:56] [Miele@home] Waschmaschine: Updating characteristic Active to 0.
[16/02/2022, 19:37:56] [Miele@home] Trockner: Updating characteristic Active to 1.
[16/02/2022, 19:37:56] [Miele@home] Waschmaschine: Updating characteristic Active to 1.
[16/02/2022, 19:37:59] [Miele@home] Trockner: Updating characteristic Active to 0.
[16/02/2022, 19:38:00] [Miele@home] Waschmaschine: Updating characteristic Active to 0.
[16/02/2022, 19:48:00] [Miele@home] Trockner: Updating characteristic Active to 1.
[16/02/2022, 19:48:00] [Miele@home] Waschmaschine: Updating characteristic Active to 1.
[16/02/2022, 19:48:03] [Miele@home] Trockner: Updating characteristic Active to 0.
[16/02/2022, 19:48:03] [Miele@home] Waschmaschine: Updating characteristic Active to 0.
[16/02/2022, 19:58:03] [Miele@home] Waschmaschine: Updating characteristic Active to 1.
[16/02/2022, 19:58:03] [Miele@home] Trockner: Updating characteristic Active to 1.
[16/02/2022, 19:58:06] [Miele@home] Trockner: Updating characteristic Active to 0.
[16/02/2022, 19:58:06] [Miele@home] Waschmaschine: Updating characteristic Active to 0.
[16/02/2022, 20:08:06] [Miele@home] Trockner: Updating characteristic Active to 1.
[16/02/2022, 20:08:06] [Miele@home] Waschmaschine: Updating characteristic Active to 1.
[16/02/2022, 20:08:09] [Miele@home] Trockner: Updating characteristic Active to 0.
[16/02/2022, 20:08:10] [Miele@home] Waschmaschine: Updating characteristic Active to 0.
[16/02/2022, 20:18:10] [Miele@home] Waschmaschine: Updating characteristic Active to 1.
[16/02/2022, 20:18:10] [Miele@home] Trockner: Updating characteristic Active to 1.
[16/02/2022, 20:18:12] [Miele@home] Trockner: Updating characteristic Active to 0.
[16/02/2022, 20:18:12] [Miele@home] Waschmaschine: Updating characteristic Active to 0.
After update to 2.7.0
[7.03.2021, 08:42:16] [homebridge-mieleathome] This plugin generated a warning from the characteristic 'Target Temperature': characteristic was supplied illegal value: number 1 exceeded minimum of 10. See https://git.io/JtMGR for more info.
Log:
[11/27/2021, 6:19:01 PM] [Miele@home] Washing machine: Updating characteristic InUse to 0.
[11/27/2021, 6:19:01 PM] [homebridge-mieleathome] This plugin generated a warning from the characteristic 'Remaining Duration': characteristic value expected valid finite number and received "NaN" (number). See https://git.io/JtMGR for more info.
Currently token refresh needs to be done manually every month which is cumbersome.
Hey there,
I recently have recognized that my washer didn't act in HomeKit. During the reboot the message from above appears. Reinstallation and requesting new tokens I already did. For now I have no clue :-(
Regards
René
Hello,
I updated Homebridge to 1.3 this morning (I was on latest 1.2.x). Visibly there are a lot of supplemental checks... and the single digit model number is not well appreciated. I suggest to prepend some string like "MieleDeviceModel-" to the Model 1-digit returned by Miele API (which seems empty in my case BTW).
[20/02/2021 11:29:31] [homebridge-mieleathome] This plugin threw an error from the characteristic 'Model': Error: [Model] characteristic must have a length of more than 1 character otherwise HomeKit will reject this accessory. Ignoring new value.
at Characteristic.validateUserInput (/usr/local/lib/node_modules/homebridge/node_modules/hap-nodejs/src/lib/Characteristic.ts:1991:38)
at Characteristic.<anonymous> (/usr/local/lib/node_modules/homebridge/node_modules/hap-nodejs/src/lib/Characteristic.ts:1457:21)
at step (/usr/local/lib/node_modules/homebridge/node_modules/tslib/tslib.js:143:27)
at Object.next (/usr/local/lib/node_modules/homebridge/node_modules/tslib/tslib.js:124:57)
at /usr/local/lib/node_modules/homebridge/node_modules/tslib/tslib.js:117:75
at new Promise (<anonymous>)
at Object.__awaiter (/usr/local/lib/node_modules/homebridge/node_modules/tslib/tslib.js:113:16)
at Characteristic.handleGetRequest (/usr/local/lib/node_modules/homebridge/node_modules/hap-nodejs/dist/lib/Characteristic.js:632:24)
at Characteristic.<anonymous> (/usr/local/lib/node_modules/homebridge/node_modules/hap-nodejs/src/lib/Characteristic.ts:2127:22)
at step (/usr/local/lib/node_modules/homebridge/node_modules/tslib/tslib.js:143:27)
at Object.next (/usr/local/lib/node_modules/homebridge/node_modules/tslib/tslib.js:124:57)
at /usr/local/lib/node_modules/homebridge/node_modules/tslib/tslib.js:117:75
at new Promise (<anonymous>)
at Object.__awaiter (/usr/local/lib/node_modules/homebridge/node_modules/tslib/tslib.js:113:16)
at Characteristic.toHAP (/usr/local/lib/node_modules/homebridge/node_modules/hap-nodejs/dist/lib/Characteristic.js:1355:24)
at _loop_1 (/usr/local/lib/node_modules/homebridge/node_modules/hap-nodejs/src/lib/Service.ts:601:24)
at /usr/local/lib/node_modules/homebridge/node_modules/hap-nodejs/dist/lib/Service.js:450:21
at new Promise (<anonymous>)
at Service.toHAP (/usr/local/lib/node_modules/homebridge/node_modules/hap-nodejs/src/lib/Service.ts:549:12)
at /usr/local/lib/node_modules/homebridge/node_modules/hap-nodejs/src/lib/Accessory.ts:1034:72
at Array.map (<anonymous>)
at Accessory.<anonymous> (/usr/local/lib/node_modules/homebridge/node_modules/hap-nodejs/src/lib/Accessory.ts:1034:49) See https://git.io/JtMGR for more info.
Currently the mapping is as follows:
Miele State | HomeKit InUse | HomeKit Active | Displayed in Home |
---|---|---|---|
Off = 1 | 0 | 0 | Off |
ProgramSelected = 3 | 0 | 1 | Starting |
WaitingToStart = 4 | 0 | 1 | Starting |
InUse = 5 | 1 | 1 | Running |
Finished = 7 | 0 | 1 | Starting |
Cancelled = 9 | 0 | 1 | Starting |
Finished / Cancelled could be mapped as follows instead:
Miele State | HomeKit InUse | HomeKit Active | Displayed in Home |
---|---|---|---|
Off = 1 | 0 | 0 | Off |
ProgramSelected = 3 | 0 | 1 | Starting |
WaitingToStart = 4 | 0 | 1 | Starting |
InUse = 5 | 1 | 1 | Running |
Finished = 7 | 1 | 0 | Stopping |
Cancelled = 9 | 1 | 0 | Stopping |
@MichelRabozee Would this be an improvement, or would it break your automation possibilities?
Originally posted by @QuickSander in #8
With 2.5.2 the Miele URL is incorrectly formed and does not contain the port for the authorization grant server.
What gets opened in another window:
This redirects back to the main homebridge ui window and will not pass the token.
If manually changing the URL in the newly opened window to
https://api.mcs3.miele.com/thirdparty/login?client_id=[redacted]&response_type=code&redirect_uri=http://192.168.1.109:8582/auth_grant&state=[redacted] the redirect suceeds and the authentication tokens are taken.
Hi @QuickSander !
Today I received an e-mail from miele saying that I have to change my miele@mobile app password.
Since I did that I get below error:
.....
[4/7/2021, 7:57:59 PM] [Miele@home] Finished initializing platform: Miele@home
[4/7/2021, 7:57:59 PM] [Miele@home] Loading accessory data from cache: Oven
[4/7/2021, 7:57:59 PM] [Miele@home] Loading accessory data from cache: Espresso
[4/7/2021, 7:57:59 PM] Loaded 73 cached accessories from cachedAccessories.0E191647D4E5.
Preparing Advertiser for 'Miele@home 31BE' using bonjour-hap backend!
[4/7/2021, 7:57:59 PM] [Miele@home] Executed didFinishLaunching callback
[4/7/2021, 7:57:59 PM] [Miele@home] tokenData: {"access_token":"xxxxxxxxxxxxxxxxxxxxxx","refresh_token":"xxxxxxxxxxxxxxxxxxxxxxxxxx","token_type":"Bearer","expires_in":2592000,"creation_date":"2021-03-27T22:05:14.094Z"}
[4/7/2021, 7:57:59 PM] [Miele@home] Token loaded from persistent storage.
[4/7/2021, 7:57:59 PM] [Miele@home] Requesting devices: "https://api.mcs3.miele.com/v1/devices?language=en"
Starting to advertise 'Miele@home 31BE' using bonjour-hap backend!
[4/7/2021, 7:57:59 PM] Homebridge v1.3.4 (Miele@home) is running on port xxxxxxxx.
[4/7/2021, 7:58:00 PM] [Miele@home] Miele API request https://api.mcs3.miele.com/v1/devices?language=en failed with status 401: "Unauthorized".
.....
Do u have an idea what is going on?
Hello,
since a few days the state of my MIELE washing machine is set to „starting“.
But it is turned off…
many ideas or workarounds?
Hey guys,
I really need help. I'm a bloody beginner with Homebridge and so on, I got some basic knowledge about this whole theme but its really basic. I'm trying to get this plugin to work but it fails every single time. At first I didn't got to the authentication process where you have to put in your miele@home credentials. I then downgraded the version. Then I got to the authentication process, I put my login credentials in and clicked authenticate. Then the browser times out and nothing happens. After a minute or something like that the plugin says nothing and Homebridge wants me to restart it. After the restart there is no real error code everything loads up but Homebridge isn't showing any new products. After I update the plugin and restart Homebridge I get this error code in the Homebridge plugin settings "Authorization grant server not reachable at "https://homebridge.local:8582/"! Choose a port which is reachable from within this network.". I don't really know what I should do now, I tried to take another port but then it gives me other error codes. In the Homebridge protocol I get this red error: "Miele API request https://api.mcs3.miele.com/v1/devices?language=en failed with status 401: "Unauthorized".". Would be great if somebody could help me.
I'm using a raspberry pi3 with the Homebridge os installed.
the raspberry is connected via ethernet with my network.
Node.js Version: v14.17.3
Nem version: v6.14.13
[15/07/2021, 20:43:23] Got SIGTERM, shutting down Homebridge...
[15/07/2021, 20:43:28] [Hue] goodbye
[15/07/2021, 20:43:28] [HB Supervisor] Homebridge Process Ended. Code: 143, Signal: null
[15/07/2021, 20:43:33] [HB Supervisor] Restarting Homebridge...
[15/07/2021, 20:43:33] [HB Supervisor] Starting Homebridge with extra flags: -I
[15/07/2021, 20:43:33] [HB Supervisor] Started Homebridge v1.3.4 with PID: 10312
Initializing HAP-NodeJS v0.9.4...
[15/07/2021, 20:43:34] Loaded config.json with 0 accessories and 3 platforms.
[15/07/2021, 20:43:34] Loaded 0 cached accessories from cachedAccessories.
[15/07/2021, 20:43:34] ---
[15/07/2021, 20:43:35] Loaded plugin: [email protected]
[15/07/2021, 20:43:35] Registering platform 'homebridge-config-ui-x.config'
[15/07/2021, 20:43:35] ---
[15/07/2021, 20:43:37] Loaded plugin: [email protected]
[15/07/2021, 20:43:37] Registering platform 'homebridge-hue.Hue'
[15/07/2021, 20:43:37] ---
[15/07/2021, 20:43:37] Loaded plugin: [email protected]
[15/07/2021, 20:43:37] Registering platform 'homebridge-mieleathome.Miele@home'
[15/07/2021, 20:43:37] ---
[15/07/2021, 20:43:37] Loading 3 platforms...
[15/07/2021, 20:43:37] [Config] Initializing config platform...
[15/07/2021, 20:43:37] [Config] Running in Service Mode
[15/07/2021, 20:43:37] [Hue] Initializing Hue platform...
[15/07/2021, 20:43:37] [Hue] homebridge-hue v0.13.17, node v14.17.3, homebridge v1.3.4
[15/07/2021, 20:43:37] [Hue] warning: recommended version: node v14.17.2 LTS
[15/07/2021, 20:43:37] [Miele@home] Initializing Miele@home platform...
[15/07/2021, 20:43:37] [Miele@home] Token loaded from persistent storage.
[15/07/2021, 20:43:37] [Hue] Philips hue: Signify Netherlands B.V. BSB002 bridge v1945163030, api v1.45.0
[15/07/2021, 20:43:37] [Miele@home] Miele API request https://api.mcs3.miele.com/v1/devices?language=en failed with status 401: "Unauthorized".
Hi All,
Wasn't quite sure where to ask but: how do I actually authenticate to use this plugin? I have my client_id and client_secret keys.
I can authenticate via https://www.miele.com/developer/swagger-ui/swagger.html#/ and can use the test requests to see my specific Miele devices but I am instead seeing this detail in my logs:
[Miele@home] Miele API request https://api.mcs3.miele.com/v1/devices?language=en failed with status 401: "Unauthorized".
[Miele@home] No valid refresh token known. Token will not be auto refreshed and will expire soon.
I did note that in the notes for the plugin there is an authentication walk through however I didn't see any of this. I should also be clear I'm using HOOBS. Any help much appreciated!
Hello,
thank you for version 3.0.1, it works great.
I only receive regularly (every +/- 4 minutes) errors about "Error received from Miele event server". I marked them with "*" in the log excerpt below. My network is working very fine (ping time from my MacMini to my router = 1.850 ms average, to an OVH Roubaix-bbased server: 17.166 ms average, to www.miele.com: 14.950 ms average.
[21/03/2021 13:42:15] [Miele] Discovered device: id: mac-001D63FFFE0203B2, name: Four, model: Unknown Miele model
[21/03/2021 13:42:15] [Miele] Ignoring unsupported device. Device: "Four" with raw type value: 12.
[21/03/2021 13:42:15] [Miele] Discovered device: id: 000127334912, name: Taque, model: Unknown Miele model
[21/03/2021 13:42:15] [Miele] Ignoring unsupported device. Device: "Taque" with raw type value: 14.
[21/03/2021 13:42:15] [Miele] Discovered device: id: mac-001D63FFFE0203B4, name: Lave-vaisselle, model: Unknown Miele model
[21/03/2021 13:42:15] [Miele] Re-creating existing accessory with data from cache: Lave-vaisselle
[21/03/2021 13:42:15] [Miele] Lave-vaisselle: Removed temperature sensor.
[21/03/2021 13:42:15] [Miele] Discovered device: id: 000116035470, name: Lave-linge, model: Unknown Miele model
[21/03/2021 13:42:15] [Miele] Re-creating existing accessory with data from cache: Lave-linge
[21/03/2021 13:42:15] [Miele] Discovered device: id: mac-00124B0005AB4D8B, name: Frigo, model: Unknown Miele model
[21/03/2021 13:42:15] [Miele] Re-creating existing accessory with data from cache: Frigo
[21/03/2021 13:42:15] [Miele] Lave-vaisselle: Connection with Miele event server succesfully (re-)established.
[21/03/2021 13:42:15] [Miele] Frigo: Connection with Miele event server succesfully (re-)established.
[21/03/2021 13:42:15] [Miele] Lave-linge: Connection with Miele event server succesfully (re-)established.
[21/03/2021 13:42:15] [Miele] Lave-vaisselle: Updating characteristic Active to 1.
[21/03/2021 13:42:15] [Miele] Frigo: Updating characteristic CurrentHeatingCoolingState to 2.
[21/03/2021 13:42:15] [Miele] Frigo: Updating characteristic TargetHeatingCoolingState to 2.
[21/03/2021 13:42:15] [Miele] Frigo: Updating characteristic CurrentTemperature to 4.
[21/03/2021 13:42:15] [Miele] Frigo: Updating characteristic TargetTemperature to 4.
[21/03/2021 13:42:48] [Homebridge UI] [mickey] Accessory layout changes saved.
*[21/03/2021 13:44:22] [Miele] Frigo: Error received from Miele event server: '{"type":"error"}'
[21/03/2021 13:44:22] [Miele] Frigo: Will attempt to reconnect to the Miele event server after 60[s].
*[21/03/2021 13:44:22] [Miele] Lave-vaisselle: Error received from Miele event server: '{"type":"error"}'
[21/03/2021 13:44:22] [Miele] Lave-vaisselle: Will attempt to reconnect to the Miele event server after 60[s].
*[21/03/2021 13:44:22] [Miele] Lave-linge: Error received from Miele event server: '{"type":"error"}'
[21/03/2021 13:44:22] [Miele] Lave-linge: Will attempt to reconnect to the Miele event server after 60[s].
[21/03/2021 13:45:22] [Miele] Frigo: Connection with Miele event server succesfully (re-)established.
[21/03/2021 13:45:22] [Miele] Lave-vaisselle: Connection with Miele event server succesfully (re-)established.
[21/03/2021 13:45:22] [Miele] Lave-linge: Connection with Miele event server succesfully (re-)established.
*[21/03/2021 13:47:22] [Miele] Lave-linge: Error received from Miele event server: '{"type":"error"}'
*[21/03/2021 13:47:22] [Miele] Lave-vaisselle: Error received from Miele event server: '{"type":"error"}'
*[21/03/2021 13:47:22] [Miele] Frigo: Error received from Miele event server: '{"type":"error"}'
[21/03/2021 13:47:22] [Miele] Lave-linge: Will attempt to reconnect to the Miele event server after 60[s].
[21/03/2021 13:47:22] [Miele] Lave-vaisselle: Will attempt to reconnect to the Miele event server after 60[s].
[21/03/2021 13:47:22] [Miele] Frigo: Will attempt to reconnect to the Miele event server after 60[s].
[21/03/2021 13:48:22] [Miele] Lave-linge: Connection with Miele event server succesfully (re-)established.
[21/03/2021 13:48:22] [Miele] Frigo: Connection with Miele event server succesfully (re-)established.
[21/03/2021 13:48:22] [Miele] Lave-vaisselle: Connection with Miele event server succesfully (re-)established.
*[21/03/2021 13:51:22] [Miele] Lave-linge: Error received from Miele event server: '{"type":"error"}'
[21/03/2021 13:51:22] [Miele] Lave-linge: Will attempt to reconnect to the Miele event server after 60[s].
*[21/03/2021 13:51:22] [Miele] Frigo: Error received from Miele event server: '{"type":"error"}'
[21/03/2021 13:51:22] [Miele] Frigo: Will attempt to reconnect to the Miele event server after 60[s].
*[21/03/2021 13:51:22] [Miele] Lave-vaisselle: Error received from Miele event server: '{"type":"error"}'
[21/03/2021 13:51:22] [Miele] Lave-vaisselle: Will attempt to reconnect to the Miele event server after 60[s].
[21/03/2021 13:52:23] [Miele] Frigo: Connection with Miele event server succesfully (re-)established.
[21/03/2021 13:52:23] [Miele] Lave-linge: Connection with Miele event server succesfully (re-)established.
[21/03/2021 13:52:23] [Miele] Lave-vaisselle: Connection with Miele event server succesfully (re-)established.
*[21/03/2021 13:55:23] [Miele] Lave-vaisselle: Error received from Miele event server: '{"type":"error"}'
[21/03/2021 13:55:23] [Miele] Lave-vaisselle: Will attempt to reconnect to the Miele event server after 60[s].
*[21/03/2021 13:55:23] [Miele] Frigo: Error received from Miele event server: '{"type":"error"}'
[21/03/2021 13:55:23] [Miele] Frigo: Will attempt to reconnect to the Miele event server after 60[s].
*[21/03/2021 13:55:23] [Miele] Lave-linge: Error received from Miele event server: '{"type":"error"}'
[21/03/2021 13:55:23] [Miele] Lave-linge: Will attempt to reconnect to the Miele event server after 60[s].
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.