lukasroegner / homebridge-dyson-pure-cool

Plugin for using the Dyson Pure Cool fans in homebridge.
MIT License
294 stars 51 forks source link

DP01 Not compatible #34

Closed alan-g-p closed 4 years ago

alan-g-p commented 4 years ago

This plugin says my device is not compatible

My device is Dyson Pure Cool Link™ DP01 purifying fan

[1/11/2020, 2:35:36 PM] [DysonPureCoolPlatform] Signed in. [1/11/2020, 2:35:37 PM] [DysonPureCoolPlatform] Device with serial number XXX not added, as it is not supported by this plugin. Product type: 469 [1/11/2020, 2:35:37 PM] [DysonPureCoolPlatform] Got devices from the Dyson API.

alan-g-p commented 4 years ago

I noted I updated some info in the dyson-pure-cool-platform and dyson-pure-cool-device to include product 469 and was able to get it to load into homebridge and homekit, however homekit throws errors when I attempt to control it etc

lukasroegner commented 4 years ago

DP01 seems to be the first iteration of the Dyson Pure Cool Link devices. Those might work in a different way than the DP02 and DP04 models. You can try to go through the error messages and try to fix them (I would appreciate a PR when you are finished!). The best way to learn more about the "API" of the DP01 is to start homebridge in debug mode and take a look at the MQTT messages coming from the device.

krystoffuk commented 4 years ago

Hi - same problem here, although not a real problem as the device is unsupported From what I know DP02 was a model that wasn’t widely available DP01 and TP02 were the main 1st generation Dyson cool link devices with the same functionality and share the same remotes etc In theory should be the same calls but written to DP01 rather than the TP02 They all work flawlessly under hassio, but trying to split my bridge presentations to HomeKit right now I have DP04 & HP02 and on the dev branch they both load fine (some missing characteristics in the config files it complains about) Can post the logs about the characteristics if that helps also?

alan-g-p commented 4 years ago

I now have it appearing in HomeKit. Although 2 issues remain. Air quality always shows poor and all sensors show 0. Temp and humidity show correct figures. 2 characteristics are not set Ip but added anyway HAP warnings appear on initial load (or when persistent and accessory folders deleted) When shutting gown HomeKit, it throws an error

lukasroegner commented 4 years ago

@alan-g-p In order to support the DP01, please provide all the details of your findings, otherwise I cannot help:

The warnings of HAP can be ignored. I use some characteristics on services that are not "supported" in the standard, however, they work fine and also display correctly in the Home app.

alan-g-p commented 4 years ago

Sorry I have been away for work. A few of the changes I have made are: In npm\node_modules\homebridge-dyson-pure-cool\src folder in dyson-pure-cool-device javascript file added: case '469': model = 'Dyson Pure Cool Desk'; hardwareRevision = 'DP04'; hasJetFocus = false; hasAdvancedAirQualitySensors = true; break;

in dyson-pure-cool-platform javascript file added 469 into this // Initializes the configuration platform.config.username = platform.config.username || null; platform.config.password = platform.config.password || null; platform.config.countryCode = platform.config.countryCode || 'AU'; platform.config.devices = platform.config.devices || []; platform.config.apiUri = 'https://api.cp.dyson.com'; platform.config.supportedProductTypes = ['438', '469', '475', '520'];

These are the ones that I can remember. How do I start homebridge in debug on windows?

When shutting down homebridge via CTRL C: [1/15/2020, 8:37:48 PM] ReferenceError: devices is not defined at API. (C:\Users\USERNAME\AppData\Roaming\npm\node_modules\homebridge-dyson-pure-cool\src\dyson-pure-cool-platform.js:43:28) at API.emit (events.js:223:5) at process. (C:\Users\Alan Player\AppData\Roaming\npm\node_modules\homebridge\lib\cli.js:48:19) at process.emit (events.js:223:5)

lukasroegner commented 4 years ago

@alan-g-p I integrated the basic settings for DP01 and fixed the settings (the DP01 does not have hasAdvancedAirQualitySensors. Shutdown issue has been fixed.

Please install from the branch development-dp01 and test it out (npm install -g https://github.com/lukasroegner/homebridge-dyson-pure-cool.git#development-dp01).

alan-g-p commented 4 years ago

"hasAdvancedAirQualitySensors" is this the Humidity, temp and air quality data available on the DP01? I can see the temp and humidity correctly in the Home App however air quality on Dyson link App "good, poor etc" does not transfer into Home App. It only remains at poor even though dyson link app states it is currently good

alan-g-p commented 4 years ago

LOg when trying to install npm install -g https://github.com/lukasroegner/homebridge-dyson-pure-cool.git#development-dp01: 0 info it worked if it ends with ok 1 verbose cli [ 1 verbose cli 'C:\Program Files\nodejs\node.exe', 1 verbose cli 'C:\Program Files\nodejs\node_modules\npm\bin\npm-cli.js', 1 verbose cli 'install', 1 verbose cli '-g', 1 verbose cli 'https://github.com/lukasroegner/homebridge-dyson-pure-cool.git#development-dp01' 1 verbose cli ] 2 info using npm@6.13.4 3 info using node@v12.14.1 4 verbose npm-session 35ff22061061f18f 5 silly install loadCurrentTree 6 silly install readGlobalPackageData 7 silly fetchPackageMetaData error for git+https://github.com/lukasroegner/homebridge-dyson-pure-cool.git#development-dp01 Error while executing: 7 silly fetchPackageMetaData undefined ls-remote -h -t https://github.com/lukasroegner/homebridge-dyson-pure-cool.git 7 silly fetchPackageMetaData 7 silly fetchPackageMetaData 7 silly fetchPackageMetaData spawn git ENOENT 8 timing stage:rollbackFailedOptional Completed in 1ms 9 timing stage:runTopLevelLifecycles Completed in 290ms 10 verbose stack Error: spawn git ENOENT 10 verbose stack at Process.ChildProcess._handle.onexit (internal/child_process.js:264:19) 10 verbose stack at onErrorNT (internal/child_process.js:456:16) 10 verbose stack at processTicksAndRejections (internal/process/task_queues.js:81:21) 11 verbose cwd C:\WINDOWS\system32 12 verbose Windows_NT 10.0.18363 13 verbose argv "C:\Program Files\nodejs\node.exe" "C:\Program Files\nodejs\node_modules\npm\bin\npm-cli.js" "install" "-g" "https://github.com/lukasroegner/homebridge-dyson-pure-cool.git#development-dp01" 14 verbose node v12.14.1 15 verbose npm v6.13.4 16 error code ENOENT 17 error syscall spawn git 18 error path git 19 error errno ENOENT 20 error enoent Error while executing: 20 error enoent undefined ls-remote -h -t https://github.com/lukasroegner/homebridge-dyson-pure-cool.git 20 error enoent 20 error enoent 20 error enoent spawn git ENOENT 21 error enoent This is related to npm not being able to find a file. 22 verbose exit [ 1, true ]

lukasroegner commented 4 years ago

Sure, the variable hasAdvancedAirQualitySensors determines whether your model has detailed information for PM 2.5, PM 10, NOX and VOC. Those are also not available in the TP02 version.

Regarding your log: Seems that something is wrong with your git installation. What does git --version say?

alan-g-p commented 4 years ago

hasAdvancedAirQualitySensors - changed to false, now Home App shows "Excellent" for air quality

C:\WINDOWS\system32>git --version 'git' is not recognized as an internal or external command, operable program or batch file.

lukasroegner commented 4 years ago

Ok, so you haven't installed git, which is why you cannot install from a git branch. I would recommend to install git, it might be also helpful in the future if you want to install plugins that are not on NPM.

If everything works for you in this configuration, I would reintegrate the development branch into master and publish a new NPM version, so that you can install it via NPM. Is that the case?

One thing to mention: you changed the line platform.config.countryCode = platform.config.countryCode || 'AU';. Please use the configuration property countryCode and set it to AU in your config.json.

alan-g-p commented 4 years ago

With these minor changes all appears to be working now.

I am downloading git now to install

Thanks for your help

lukasroegner commented 4 years ago

Plugin is compatible now with DP01, merged with #36, new version 1.3.0 on NPM.

alan-g-p commented 4 years ago

Is there a way to set it to default to Oscillate automatically rather than having to manually turn it on?

lukasroegner commented 4 years ago

The plugin behaves like the app, if oscillation has been enabled before and you activate the device, it will oscillate.