fjs21 / homebridge-kumo

Control your Kumo cloud devices using Homebridge.
https://www.npmjs.com/package/homebridge-kumo
Apache License 2.0
34 stars 8 forks source link

Temperature inconsistencies #6

Closed GitHubRR1867 closed 3 years ago

GitHubRR1867 commented 3 years ago

I'm seeing temperature reading inconsistencies from HomeKit to the Kumo app with regards to the room temperature. The kumo app shows that the room is 69° F (which is most likely the correct temperature at the unit), but in HomeKit through the plug-in, the room shows as 56°. It doesn't look like a C to F conversion because the numbers don't match. (For reference - I have a MSZ-FH12NA, and an MSZ-FH18NA interior unit, and MXZ3C30NHZ exterior unit). Happy to help troubleshoot, as this plugin is a game changer for me.

fjs21 commented 3 years ago

Can you turn on debugging in homebridge? The plugin should then provide the actual responses from the device and we can hopefully work out what's going on. Cheers, Fraser

GitHubRR1867 commented 3 years ago

Great - I've done that. However, I think I'm having another problem - I'm now having problems accessing the kumo settings at all in HomeBridge (I'm getting "This accessory is not responding"). ( #7 )

That being said, here are some of the log messages I see today:

[9/20/2020, 06:20:39] [Kumo] First entry Downstairs: 0 [9/20/2020, 06:20:39] [Kumo] Last entry Downstairs: 7e [9/20/2020, 06:20:39] [Kumo] Used memory Downstairs: 7e [9/20/2020, 06:20:39] [Kumo] 116 Downstairs: 6228010000000000153c162503 0102 0202 03027f00c00f00000000000000000101 [9/20/2020, 06:20:39] [Kumo] First entry Upstairs: 0 [9/20/2020, 06:20:39] [Kumo] Last entry Upstairs: 7e [9/20/2020, 06:20:39] [Kumo] Used memory Upstairs: 7e [9/20/2020, 06:20:39] [Kumo] 116 Upstairs: 6228010000000000153c162503 0102 0202 03027f00c00f00000000000000000101

fjs21 commented 3 years ago

Hmm. A lot of that debug info seems to be coming from the fakegato-history plugin. I'm turn that debugging info off (its not really needed now that it works) and then I will bump the version so we can get a clearer view of what is being reported from Kumo and the device.

fjs21 commented 3 years ago

Please update to 1.2.2 and see if you can post some of the JSON responses from the device. They have {} in them and lots of lines...

fjs21 commented 3 years ago

One last thing. Please check that you have a successful login to Kumo. This occurs right after startup of homebridge. So once you have turned on debugging in 1.2.2 restart and look for that. The temp and not responding in the Home app could all be coming from a failure to authenticate.

GitHubRR1867 commented 3 years ago

Sorry for the delay - it looks like home bridge and the kumo plug in is connecting to my kumo account. ("Kumo API: Successfully connected to the Kumo API."

Here is a sample of what I think is the JSON responses when I start home bridge:

[9/29/2020, 18:51:15] [Kumo] [ { device: null, token: '[redacted]', username: '[redacted]' }, { filterReminder: true, lastUpdate: 1482878764216, sendAnalytics: 1 }, { children: [ { '$$hashKey': 'object:110', children: [], id: '1482878764218-765819019', label: 'Music Hall', lastScheduleChange: 1600922310155, lastUpdate: 1484240658683, level: 2, network: { name: 'Durebroek', password: '' }, program: { deactivated: null, events: [ [Object], [Object] ], timeZone: 'America/New_York' }, reportedCondition: { more: {}, operation_mode: 3, power: 1, set_temp: 16, sp_cool: 11.5, sp_heat: 10 }, zoneTable: { '1605070040': { '$$hashKey': 'object:155', _isRespondingLocally: true, _requestRescan: 0, address: '192.168.1.50', desiredConditionStack: [], eqcStageThreeBacksupChannels: [Object], eqcUpdatedLocally: [Object], equipmentControllerSettings: {}, errorHandler: [Object], forceCloudUpdates: false, hasElectricHeatingOption: false, holdChanged: 0, label: 'Downstairs', lastUpdate: 1601143919548, ledDisabled: false, localAdapterStatus: 'NORMAL', mac: '00:1d:c9:99:94:51', mhk2Settings: [Object], optimalStart: false, overrideSettings: {}, port: 80, profileCodeFrames: [Array], programEventSettings: [Object], prohibits: [Object], prohibitsChanged: 0, reportedCondition: [Object], rssi: [Object], sendDesiredConditionsPending: false, sendDesiredConditionsTime: '2020-09-20T15:02:52.256Z', serial: '1605070040', systemChangeoverSettings: [Object], timezone: 'America/New_York' }, '1606300072': { '$$hashKey': 'object:156', _isRespondingLocally: true, _requestRescan: 0, address: '192.168.1.180', desiredConditionStack: [], eqcStageThreeBacksupChannels: [Object], eqcUpdatedLocally: [Object], equipmentControllerSettings: {}, errorHandler: [Object], forceCloudUpdates: false, hasElectricHeatingOption: false, holdChanged: 0, label: 'Upstairs', lastUpdate: 1601143919549, ledDisabled: false, localAdapterStatus: 'NORMAL', mac: '00:1d:c9:99:7c:a0', mhk2Settings: [Object], optimalStart: false, overrideSettings: {}, port: 80, profileCodeFrames: [Array], programEventSettings: [Object], prohibits: [Object], prohibitsChanged: 0, reportedCondition: [Object], rssi: [Object], sendDesiredConditionsPending: false, sendDesiredConditionsTime: '2020-09-20T10:24:39.871Z', serial: '1606300072', systemChangeoverSettings: [Object], timezone: 'America/New_York' } } } ], id: '1482878764206-2401448951', label: 'Home', lastScheduleChange: 0, lastUpdate: 1601506275534, level: 1, version: 1577, zoneTable: {} }, 'no device token' ]

fjs21 commented 3 years ago

I agree. It looks like you are logged in and there are two devices that should be added - "Upstairs" and "Downstairs" Does Homebridge Log report that two devices were added? Do you see both in the Home app? And are you getting the wrong temperature for both?

GitHubRR1867 commented 3 years ago

HomeKit shows both units, but, unfortunately, they are showing "No Response". But when it was working, I was indeed getting the wrong temp for both units.

GitHubRR1867 commented 3 years ago

I can access some of the settings via the HomeBridge UI - and it shows that the thermostats are sensing 15°C which is not correct (59°F). The kumo app displays 75°F which is correct.

fjs21 commented 3 years ago

I need to tweak the debugging a little to have it report what information you are getting back from each devices when you are requesting information like temperature. The line in the code is currently commented out so I'll need to make a small change and post a new version onto NPM later on (hopefully today but likely Friday).

fjs21 commented 3 years ago

Ok. Try version v1.2.4. This one will report back the JSON response every time your device is queried.

Also try deleting the devices in Homebridge UI and restart.

fjs21 commented 3 years ago

Immediately after the long JSON debug message. You should see something like the following:

[10/7/2020, 1:58:27 PM] [Kumo] Serial: 1605070040 [10/7/2020, 1:58:27 PM] [Kumo] Label: Downstairs [10/7/2020, 1:58:27 PM] [Kumo] Serial: 1606300072 [10/7/2020, 1:58:27 PM] [Kumo] Label: Upstairs [10/7/2020, 1:58:27 PM] [Kumo] Number of devices found: 2

Let me know. I will close for now.

GitHubRR1867 commented 3 years ago

Hi there-

Thanks so much for helping with this. Here’s all the info that is added in debug mode with the Kumo plugin :

[10/7/2020, 14:25:41] [Kumo] [ { device: null, token: ‘[xxxxxx]', username: ‘[xxxxxx]' }, { filterReminder: true, lastUpdate: 1482878764216, sendAnalytics: 1 }, { children: [ { '$$hashKey': 'object:110', children: [], id: '1482878764218-765819019', label: 'Music Hall', lastScheduleChange: 1600922310155, lastUpdate: 1484240658683, level: 2, network: { name: ‘[xxxx]', password: '' }, program: { deactivated: null, events: [ [Object], [Object] ], timeZone: 'America/New_York' }, reportedCondition: { more: {}, operation_mode: 3, power: 1, set_temp: 16, sp_cool: 11.5, sp_heat: 10 }, zoneTable: { '1605070040': { '$$hashKey': 'object:155', _isRespondingLocally: null, _requestRescan: 0, address: '192.168.1.50', desiredConditionStack: [], eqcStageThreeBacksupChannels: [Object], eqcUpdatedLocally: [Object], equipmentControllerSettings: {}, errorHandler: [Object], forceCloudUpdates: false, hasElectricHeatingOption: false, holdChanged: 0, label: 'Downstairs', lastUpdate: 1601496218936, ledDisabled: false, localAdapterStatus: 'NORMAL', mac: '00:1d:c9:99:94:51', mhk2Settings: [Object], optimalStart: false, overrideSettings: {}, port: 80, profileCodeFrames: [Array], programEventSettings: [Object], prohibits: [Object], prohibitsChanged: 0, reportedCondition: [Object], rssi: {}, sendDesiredConditionsPending: false, sendDesiredConditionsTime: '2020-09-20T15:02:52.256Z', serial: '1605070040', systemChangeoverSettings: [Object], timezone: 'America/New_York' }, '1606300072': { '$$hashKey': 'object:156', _isRespondingLocally: null, _requestRescan: 0, address: '192.168.1.180', desiredConditionStack: [], eqcStageThreeBacksupChannels: [Object], eqcUpdatedLocally: [Object], equipmentControllerSettings: {}, errorHandler: [Object], forceCloudUpdates: false, hasElectricHeatingOption: false, holdChanged: 0, label: 'Upstairs', lastUpdate: 1601496218937, ledDisabled: false, localAdapterStatus: 'NORMAL', mac: '00:1d:c9:99:7c:a0', mhk2Settings: [Object], optimalStart: false, overrideSettings: {}, port: 80, profileCodeFrames: [Array], programEventSettings: [Object], prohibits: [Object], prohibitsChanged: 0, reportedCondition: [Object], rssi: {}, sendDesiredConditionsPending: false, sendDesiredConditionsTime: '2020-09-20T10:24:39.871Z', serial: '1606300072', systemChangeoverSettings: [Object], timezone: 'America/New_York' } } } ], id: '1482878764206-2401448951', label: 'Home', lastScheduleChange: 0, lastUpdate: 1602181541505, level: 1, version: 1582, zoneTable: {} }, 'no device token' ] [10/7/2020, 14:25:41] [Kumo] Kumo API: Successfully connected to the Kumo API. [10/7/2020, 14:25:41] [Kumo] Parsing child: [ { '$$hashKey': 'object:110', children: [], id: '1482878764218-765819019', label: 'Music Hall', lastScheduleChange: 1600922310155, lastUpdate: 1484240658683, level: 2, network: { name: ‘[xxxx]', password: '' }, program: { deactivated: null, events: [ [Object], [Object] ], timeZone: 'America/New_York' }, reportedCondition: { more: {}, operation_mode: 3, power: 1, set_temp: 16, sp_cool: 11.5, sp_heat: 10 }, zoneTable: { '1605070040': { '$$hashKey': 'object:155', _isRespondingLocally: null, _requestRescan: 0, address: '192.168.1.50', desiredConditionStack: [], eqcStageThreeBacksupChannels: [Object], eqcUpdatedLocally: [Object], equipmentControllerSettings: {}, errorHandler: [Object], forceCloudUpdates: false, hasElectricHeatingOption: false, holdChanged: 0, label: 'Downstairs', lastUpdate: 1601496218936, ledDisabled: false, localAdapterStatus: 'NORMAL', mac: '00:1d:c9:99:94:51', mhk2Settings: [Object], optimalStart: false, overrideSettings: {}, port: 80, profileCodeFrames: [Array], programEventSettings: [Object], prohibits: [Object], prohibitsChanged: 0, reportedCondition: [Object], rssi: {}, sendDesiredConditionsPending: false, sendDesiredConditionsTime: '2020-09-20T15:02:52.256Z', serial: '1605070040', systemChangeoverSettings: [Object], timezone: 'America/New_York' }, '1606300072': { '$$hashKey': 'object:156', _isRespondingLocally: null, _requestRescan: 0, address: '192.168.1.180', desiredConditionStack: [], eqcStageThreeBacksupChannels: [Object], eqcUpdatedLocally: [Object], equipmentControllerSettings: {}, errorHandler: [Object], forceCloudUpdates: false, hasElectricHeatingOption: false, holdChanged: 0, label: 'Upstairs', lastUpdate: 1601496218937, ledDisabled: false, localAdapterStatus: 'NORMAL', mac: '00:1d:c9:99:7c:a0', mhk2Settings: [Object], optimalStart: false, overrideSettings: {}, port: 80, profileCodeFrames: [Array], programEventSettings: [Object], prohibits: [Object], prohibitsChanged: 0, reportedCondition: [Object], rssi: {}, sendDesiredConditionsPending: false, sendDesiredConditionsTime: '2020-09-20T10:24:39.871Z', serial: '1606300072', systemChangeoverSettings: [Object], timezone: 'America/New_York' } } } ] [10/7/2020, 14:25:41] [Kumo] Serial: 1605070040 [10/7/2020, 14:25:41] [Kumo] Label: Downstairs [10/7/2020, 14:25:41] [Kumo] Serial: 1606300072 [10/7/2020, 14:25:41] [Kumo] Label: Upstairs [10/7/2020, 14:25:41] [Kumo] Parsing child: [] [10/7/2020, 14:25:41] [Kumo] Number of devices found: 2 [10/7/2020, 14:25:41] [Kumo] Token: [xxxxx] [10/7/2020, 14:25:41] [Kumo] Adding new accessory: Downstairs [10/7/2020, 14:25:41] [Kumo] Adding new accessory: Upstairs (node:5612) UnhandledPromiseRejectionWarning: InvalidCharacterError: at /usr/local/lib/node_modules/homebridge-kumo/node_modules/base-64/base64.js:23:36 at Object. (/usr/local/lib/node_modules/homebridge-kumo/node_modules/base-64/base64.js:165:2) at Module._compile (internal/modules/cjs/loader.js:1133:30) at Object.Module._extensions..js (internal/modules/cjs/loader.js:1153:10) at Module.load (internal/modules/cjs/loader.js:977:32) at Function.Module._load (internal/modules/cjs/loader.js:877:14) at Module.require (internal/modules/cjs/loader.js:1019:19) at require (internal/modules/cjs/helpers.js:77:18) at Object. (/usr/local/lib/node_modules/homebridge-kumo/src/kumo-api.ts:6:1) at Module._compile (internal/modules/cjs/loader.js:1133:30) (node:5612) 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) (node:5612) [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:5612) UnhandledPromiseRejectionWarning: InvalidCharacterError: at /usr/local/lib/node_modules/homebridge-kumo/node_modules/base-64/base64.js:23:36 at Object. (/usr/local/lib/node_modules/homebridge-kumo/node_modules/base-64/base64.js:165:2) at Module._compile (internal/modules/cjs/loader.js:1133:30) at Object.Module._extensions..js (internal/modules/cjs/loader.js:1153:10) at Module.load (internal/modules/cjs/loader.js:977:32) at Function.Module._load (internal/modules/cjs/loader.js:877:14) at Module.require (internal/modules/cjs/loader.js:1019:19) at require (internal/modules/cjs/helpers.js:77:18) at Object. (/usr/local/lib/node_modules/homebridge-kumo/src/kumo-api.ts:6:1) at Module._compile (internal/modules/cjs/loader.js:1133:30) (node:5612) 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: 4)

On Oct 7, 2020, at 2:10 PM, Fraser Sim notifications@github.com wrote:

Immediately after the long JSON debug message. You should see something like the following:

[10/7/2020, 1:58:27 PM] [Kumo] Serial: 1605070040 [10/7/2020, 1:58:27 PM] [Kumo] Label: Downstairs [10/7/2020, 1:58:27 PM] [Kumo] Serial: 1606300072 [10/7/2020, 1:58:27 PM] [Kumo] Label: Upstairs [10/7/2020, 1:58:27 PM] [Kumo] Number of devices found: 2

Let me know. I will close for now.

— You are receiving this because you authored the thread. Reply to this email directly, view it on GitHub https://github.com/fjs21/homebridge-kumo/issues/6#issuecomment-705106546, or unsubscribe https://github.com/notifications/unsubscribe-auth/AIDOGVPFIKKRJ5BQU2PPBMDSJSVKNANCNFSM4RTBHIZQ.

fjs21 commented 3 years ago

Ok. So the two devices are being loaded correctly but you have an error occurring on line 6 of the kumo-api.ts file.

import base64 from 'base-64';

I'm going to keep this issued closed as this is now a duplicate of #9. I'll post something there shortly as a potential workaround.