Closed matijus91 closed 3 years ago
It would certainly be possible. We would have to have a complete json-answer for your type fo device. You should be able to achieve this by adding something like
this.log(locations);
in-between 96/97. You can post the response here (please be sure to remove personal data).
[2018-3-31 16:04:32] [Thermostaat] Logged into Evohome! [2018-3-31 16:04:33] [Thermostaat] [ Location { locationID: '—', name: 'Thuis —', streetAddress: '—', city: '—', country: 'Netherlands', postcode: '—', locationType: 'Residential', devices: [ [Object] ], daylightSavingTimeEnabled: true, timeZone: Timezone { timeZoneId: 'WEuropeStandardTime', displayName: '(UTC+01:00) Amsterdam, Berlijn, Bern, Rome, Stockholm, Wenen', offsetMinutes: 60, currentOffsetMinutes: 120, supportsDaylightSaving: true }, systemId: '968367' } ] [2018-3-31 16:04:33] [Thermostaat] You have 1 location(s). This instance will be using Index No 0 [2018-3-31 16:04:33] [Thermostaat] You have 1 device(s). [2018-3-31 16:04:34] [Thermostaat] 0: Thermostat (21°) [2018-3-31 16:04:34] [Thermostaat] Initializing platform accessory 'Evohome Away Mode'... [2018-3-31 16:04:34] [Thermostaat] Initializing platform accessory 'Evohome Day Off Mode'... [2018-3-31 16:04:34] [Thermostaat] Initializing platform accessory 'Evohome Heating Off Mode'... [2018-3-31 16:04:34] [Thermostaat] Initializing platform accessory 'Evohome Eco Mode'... [2018-3-31 16:04:34] [Thermostaat] Initializing platform accessory 'Evohome Custom Mode'...
It shows 1 termostate and his temperature in the log as you can see. In home app it will not appare... the mode buttons I can see in de home app.
Okay, great. We will have to have a look into the devices object. Please change the line to:
this.log(locations[0].devices);
The evohome system in another Pi is working great. Logs down here:
[2018-3-31 16:36:42] [Thermostaat] Logged into Evohome! [2018-3-31 16:36:43] [Thermostaat] [ Location { locationID: '—', name: '—', streetAddress: '—', city: '—', country: 'Netherlands', postcode: '—', locationType: 'Residential', devices: [ [Object], [Object], [Object], [Object], [Object] ], daylightSavingTimeEnabled: true, timeZone: Timezone { timeZoneId: 'WEuropeStandardTime', displayName: '(UTC+01:00) Amsterdam, Berlijn, Bern, Rome, Stockholm, Wenen', offsetMinutes: 60, currentOffsetMinutes: 120, supportsDaylightSaving: true }, systemId: '621859' } ] [2018-3-31 16:36:43] [Thermostaat] You have 1 location(s). This instance will be using Index No 0 [2018-3-31 16:36:43] [Thermostaat] You have 5 device(s). [2018-3-31 16:36:44] [Thermostaat] 0: Woonkamer (23°) [2018-3-31 16:36:44] [Thermostaat] 1: Slaapkamer (23°) [2018-3-31 16:36:44] [Thermostaat] 2: Badkamer (22.5°) [2018-3-31 16:36:44] [Thermostaat] 3: Slp. Boven (undefined°) [2018-3-31 16:36:44] [Thermostaat] 4: Hal (23.5°) [2018-3-31 16:36:44] [Thermostaat] Initializing platform accessory 'Woonkamer Thermostat'... [2018-3-31 16:36:44] [Thermostaat] Initializing platform accessory 'Slaapkamer Thermostat'... [2018-3-31 16:36:44] [Thermostaat] Initializing platform accessory 'Badkamer Thermostat'... [2018-3-31 16:36:44] [Thermostaat] Initializing platform accessory 'Slp. Boven Thermostat'... [2018-3-31 16:36:44] [Thermostaat] Initializing platform accessory 'Hal Thermostat'... [2018-3-31 16:36:44] [Thermostaat] Initializing platform accessory 'Evohome Away Mode'... [2018-3-31 16:36:44] [Thermostaat] Initializing platform accessory 'Evohome Day Off Mode'... [2018-3-31 16:36:44] [Thermostaat] Initializing platform accessory 'Evohome Heating Off Mode'... [2018-3-31 16:36:44] [Thermostaat] Initializing platform accessory 'Evohome Eco Mode'... [2018-3-31 16:36:44] [Thermostaat] Initializing platform accessory 'Evohome Custom Mode'...
[2018-3-31 16:41:18] [Thermostaat] Logged into Evohome! [2018-3-31 16:41:18] [Thermostaat] [ Device { zoneID: '—', zoneType: 'Thermostat', modelType: 'RoundWireless', name: 'Thermostat', maxHeatSetpoint: 35, minHeatSetpoint: 5, valueResolution: 0.5 } ] [2018-3-31 16:41:18] [Thermostaat] You have 1 location(s). This instance will be using Index No 0 [2018-3-31 16:41:18] [Thermostaat] You have 1 device(s). [2018-3-31 16:41:19] [Thermostaat] 0: Thermostat (21°) [2018-3-31 16:41:19] [Thermostaat] Initializing platform accessory 'Evohome Away Mode'... [2018-3-31 16:41:19] [Thermostaat] Initializing platform accessory 'Evohome Day Off Mode'... [2018-3-31 16:41:19] [Thermostaat] Initializing platform accessory 'Evohome Heating Off Mode'... [2018-3-31 16:41:19] [Thermostaat] Initializing platform accessory 'Evohome Eco Mode'... [2018-3-31 16:41:19] [Thermostaat] Initializing platform accessory 'Evohome Custom Mode'... Setup Payload:
Okay, it gets ignored because of line 127
because the modelType is not HeatingZone but RoundWireless. You can try this workaround:
Replace device.modelType == "HeatingZone"
with device.modelType == "HeatingZone" || device.modelType == "RoundWireless"
.
This should add your RoundWireless to home.app. It might still not be working perfectly. Please let me know how it goes.
You are great! I see it and can change the temps!
It would be great is it can work together wit the round en evohome. Now I tested it where only is a round, but in another home there is a evohome and round together but now evohome system won’t work I think with this work around.
So it works where there is ONLY a Round but doesn't where both exist side by side? Let me have a look into that. Does it throw you an error?
I have to leave right now... I will have a look into it tomorrow! Let you now!
No Problem. We'll find a solution and evolve this Plugin to perfection :D
Very nice! Thanks so far!
Hello,
I tried it now as you said, but it gives a error. The other time I tried it by changing it to:
// create accessory (only if it is "RoundWireless")
if (device.modelType == "RoundWireless") {
But now I get this error:
[2018-4-2 12:34:27] ==================== [2018-4-2 12:34:27] ERROR LOADING PLUGIN homebridge-evohome: [2018-4-2 12:34:27] /usr/local/lib/node_modules/homebridge-evohome/index.js:127 if (device.modelType == "HeatingZone || device.modelType == "RoundWireless") { ^^^^^^^^^^^^^
SyntaxError: Unexpected identifier at createScript (vm.js:74:10) at Object.runInThisContext (vm.js:116:10) at Module._compile (module.js:533:28) at Object.Module._extensions..js (module.js:580:10) at Module.load (module.js:503:32) at tryModuleLoad (module.js:466:12) at Function.Module._load (module.js:458:3) at Module.require (module.js:513:17) at require (internal/module.js:11:18) at Plugin.load (/usr/local/lib/node_modules/homebridge/lib/plugin.js:72:22) [2018-4-2 12:34:27] ====================
So this doesn’t work 😔
I found out it is in the other home another divicename is. So I did change it like this:
(device.modelType == "HeatingZone" || device.modelType == "RoundModulation")
Now it give no error when I set only location 1 (there is where the RoundModulation is from) but it shows no thermostat in the home app.
When I change locations to 0, 1 this is what I get as error:
[2018-4-2 13:37:26] [Thermostaat boven] [ Device {
zoneID: '—',
zoneType: 'RadiatorZone',
modelType: 'HeatingZone',
name: 'Slaapkamer 2',
maxHeatSetpoint: 35,
minHeatSetpoint: 5,
valueResolution: 0.5 },
Device {
zoneID: '—',
zoneType: 'RadiatorZone',
modelType: 'HeatingZone',
name: 'Badkamer',
maxHeatSetpoint: 35,
minHeatSetpoint: 5,
valueResolution: 0.5 },
Device {
zoneID: '—',
zoneType: 'RadiatorZone',
modelType: 'HeatingZone',
name: 'Hal',
maxHeatSetpoint: 35,
minHeatSetpoint: 5,
valueResolution: 0.5 },
Device {
zoneID: '—',
zoneType: 'RadiatorZone',
modelType: 'HeatingZone',
name: 'Slaapkamer 1',
maxHeatSetpoint: 35,
minHeatSetpoint: 5,
valueResolution: 0.5 },
Device {
zoneID: '—',
zoneType: 'Unknown',
modelType: 'Unknown',
name: '',
maxHeatSetpoint: 30,
minHeatSetpoint: 5,
valueResolution: 0.5 } ]
[2018-4-2 13:37:26] [Thermostaat boven] [ Device {
zoneID: '—',
zoneType: 'Thermostat',
modelType: 'RoundModulation',
name: 'Thermostat',
maxHeatSetpoint: 35,
minHeatSetpoint: 5,
valueResolution: 0.5 } ]
[2018-4-2 13:37:26] [Thermostaat boven] You have 2 location(s). This instance will be using Index No 0, 1
[2018-4-2 13:37:26] [Thermostaat boven] Evohome Failed: TypeError: Cannot read property 'devices' of undefined
at EvohomePlatform.
When I set everything back to only heatingzone and in the Json only location 0 now non of the thermostat will work. The say “no reaction” in HomeKit.
Ive tested some more. It now works both separate from each other. I see the RoundModulation when only using location 1 and the HeatingZone when using location 0.
As you can see he gives me an TypeError and that looks like that is because both have different type names: RadiatorZone and Thermostat.
Do you now where I can change that in the .js ?
Is there a zoneID that is used double? I suppose you blanked them, right?
No double zoneIDs... just blank them
If you have some time this week maybe you can look with me on the Pi with TeamViewer. You can contact me on Twitter maybe? @matijus91
Hey, sorry for the long pause. Have you gotten anywhere with this?
I did the || device.modelType == “RoundWireless” to get my round thermostat working. All good!
My friend has full 12 zone Evohome and I can add hers to my home and control it nicely. However, it’s really confusing as it’s easy for Siri to accidentally refer to both homes as they both appear in my home.
Is it possible to use one homebridge to control Evohome’s in two homes (that are different locations in the one account)? Can I say some devices are in another home? That way I wouldn’t need another homebridge in the other house!
@honeywelluser would you create a pull request? I would love to integrate it into this version!
As for multiple systems: This is a limitation of Homebridge. You would need to run two instances of homebridge, one for each home as these "bridges" are what is added to specific homes. I have the same setup (for other plugins), where I have multiple homebridges for my home, a vacation home and my parents place. Beware that automatic location switching is based on your Apple TV or iPad - so that will not work.
@matijus91 @honeywelluser
I just created a new branch implementing the changes you proposed. Would one of you try to run it? I have no way of testing this feature. Fingers crossed 🤞
Installation:
npm install https://github.com/luc-ass/homebridge-evohome.git#honeywell-round-connected
Reverting to the main version should be done from configuration ui (i.e. delete and re-download the plugin).
Hi, I tried it immediately but the installer didn’t work. Lots of error messages.
I also tried to update to 0.7.4. but there was no visible difference to 0.7.3.
Hm, the installation seems to be different using hoobs. Do you possibly need sudo
? How did you install the other plugins?
Version 0.7.4 does indeed not change anything visible. It's just a maintenance update.
In Hoobs normally you just search for the plugin and click on “install”. That’s all. And your 0.7.4. Showed as an update so I only needed to click on it.
I ran the command that you published but that generated the error. I’ve no idea what sudo means because I’m quite new to this playground....
SUCCES! I read about sudo and reinstalled ! I now see the thermostat and the current room temperature. I will continu to test soon.
Great news! I'll wait for your feedback and merge the branch back into the master
if all works out.
All seems to work fine for now. I removed the schedule from honeywell completely. I am running now with 2 timed events in automations. So tomorrow is the big test, if I wake up in a cold house or if it really works fine :-) I’ll let you know!
I Woke up in a warm house, however not warm enough :-) I created an automation to set the temperature at 21.5 oC at 6.20. But in reality the target temperature was set at 21.0 instead of 21.5. I rechecked everything and the target temp is set correctly to 21.5, but the setpoint read directly from the display of the thermostat states 21.0 ?!?!
That's really strange. Would you mind opening another issue for that behavior?
I’m still investigating but i think that the problem is slightly different. If I change the setting to 18.0 then after a minute the honywell app jumps back to 21.0 ! At that moment the home and eve app both say that the setpoint is 18.0 ?!?! For some reason the app automatically jumps back to 21.0 but there is no schedule in the honeywell app anymore.
I do see something strange in the log. Does your plugin send a “until” command without info? Is that the reason that the temperature is only set for 1 minute??
Honeywell Round Devices are now supported Check out version 0.8.0 or above Feel free to reopen this if you encounter problems
I have a evohome system and it works great in HomeKit with this plugin now! Thanks for the add that it sets temps to next time schedule! Now it works even greater!
I als use a Honeywell round connected for the zones Where I have floor heating. This also works in the same account with a different location. Now with the possibility of multiple locations I can make it show the scenes as away, eco, ..... but it not shows the thermostat (round connected) any option that I can let this work? If not can you look if there is a possibility you can make an add?
It would help me a lot.