vojtamolda / homebridge-ecobee3-sensors

Homebridge plugin that exposes Ecobee 3 sensors as HomeKit accessories.
https://www.npmjs.com/package/homebridge-ecobee3-sensors
MIT License
26 stars 15 forks source link

Ecobee 4 Support #19

Closed macjeff closed 7 years ago

macjeff commented 7 years ago

Got an Ecobee 4 and it says Not Supported. Its basically a 3 with alexa built in

vojtamolda commented 7 years ago

Hello @macjeff,

Thanks for opening the issue. I don't have an Ecobee 4 to test it myself, but if it's 3 with some new features it should be fairly straightforward to add support for it.

Can you try running Homebridge in debug mode and posting the log here, please? Like this:

homebridge -D
macjeff commented 7 years ago

sorry for the delay. Here is my log

I replaced some tokens with xxxx

[6/5/2017, 9:42:54 PM] Loaded plugin: homebridge-ecobee3-sensors
Homebridge API version: 2.2
[6/5/2017, 9:42:54 PM] Registering platform 'homebridge-ecobee3-sensors.Ecobee 3 Sensors'
[6/5/2017, 9:42:54 PM] ---
[6/5/2017, 9:42:54 PM] Loaded plugin: homebridge-isy-js
[6/5/2017, 9:42:54 PM] Registering platform 'homebridge-isy-js.isy-js'
[6/5/2017, 9:42:54 PM] ---
[6/5/2017, 9:42:54 PM] Loaded config.json with 0 accessories and 1 platforms.
[6/5/2017, 9:42:54 PM] ---
[6/5/2017, 9:42:54 PM] Loading 1 platforms...
[6/5/2017, 9:42:54 PM] [Ecobee] Initializing Ecobee 3 Sensors platform...
[6/5/2017, 9:42:54 PM] [Ecobee] Configuring chached Homebridge accessory...
[6/5/2017, 9:42:54 PM] [Ecobee] PlatformAccessory {
  displayName: 'Ashtons Room',
  UUID: 'ced52970-07b4-495d-a5f3-7ae71f7385ff',
  category: 1,
  services: 
   [ Service {
       displayName: undefined,
       UUID: '0000003E-0000-1000-8000-0026BB765291',
       subtype: undefined,
       iid: null,
       characteristics: [Object],
       optionalCharacteristics: [] },
     Service {
       displayName: 'Temperature',
       UUID: '0000008A-0000-1000-8000-0026BB765291',
       subtype: undefined,
       iid: null,
       characteristics: [Object],
       optionalCharacteristics: [] },
     Service {
       displayName: 'Occupancy',
       UUID: '00000086-0000-1000-8000-0026BB765291',
       subtype: undefined,
       iid: null,
       characteristics: [Object],
       optionalCharacteristics: [] } ],
  reachable: false,
  context: 
   { code: 'xxxx',
     access_token: 'xxxxx',
     refresh_token: 'xxxxx' },
  _associatedPlugin: 'homebridge-ecobee3-sensors',
  _associatedPlatform: 'Ecobee 3 Sensors' }
[6/5/2017, 9:42:54 PM] [Ecobee] Cached | Ashtons Room | V32S
[6/5/2017, 9:42:54 PM] [Ecobee] Configuring chached Homebridge accessory...
[6/5/2017, 9:42:54 PM] [Ecobee] PlatformAccessory {
  displayName: 'Tuckers Room',
  UUID: '3b00d762-8131-46ef-bead-cc94fb6ab267',
  category: 1,
  services: 
   [ Service {
       displayName: undefined,
       UUID: '0000003E-0000-1000-8000-0026BB765291',
       subtype: undefined,
       iid: null,
       characteristics: [Object],
       optionalCharacteristics: [] },
     Service {
       displayName: 'Temperature',
       UUID: '0000008A-0000-1000-8000-0026BB765291',
       subtype: undefined,
       iid: null,
       characteristics: [Object],
       optionalCharacteristics: [] },
     Service {
       displayName: 'Occupancy',
       UUID: '00000086-0000-1000-8000-0026BB765291',
       subtype: undefined,
       iid: null,
       characteristics: [Object],
       optionalCharacteristics: [] } ],
  reachable: false,
  context: 
   { code: 'xxxx',
     access_token: 'xxxxx',
     refresh_token: 'xxxx' },
  _associatedPlugin: 'homebridge-ecobee3-sensors',
  _associatedPlatform: 'Ecobee 3 Sensors' }
[6/5/2017, 9:42:54 PM] [Ecobee] Cached | Tuckers Room | RJC6
[6/5/2017, 9:42:54 PM] [Ecobee] Configuring chached Homebridge accessory...
[6/5/2017, 9:42:54 PM] [Ecobee] PlatformAccessory {
  displayName: 'Guest Room',
  UUID: 'b35dfd16-b5a1-497f-a707-9eb9ecb58b3a',
  category: 1,
  services: 
   [ Service {
       displayName: undefined,
       UUID: '0000003E-0000-1000-8000-0026BB765291',
       subtype: undefined,
       iid: null,
       characteristics: [Object],
       optionalCharacteristics: [] },
     Service {
       displayName: 'Temperature',
       UUID: '0000008A-0000-1000-8000-0026BB765291',
       subtype: undefined,
       iid: null,
       characteristics: [Object],
       optionalCharacteristics: [] },
     Service {
       displayName: 'Occupancy',
       UUID: '00000086-0000-1000-8000-0026BB765291',
       subtype: undefined,
       iid: null,
       characteristics: [Object],
       optionalCharacteristics: [] } ],
  reachable: false,
  context: 
   { code: ‘xxxx’,
     access_token: ‘xxxx’,
     refresh_token: ‘xxxxx’ },
  _associatedPlugin: 'homebridge-ecobee3-sensors',
  _associatedPlatform: 'Ecobee 3 Sensors' }
[6/5/2017, 9:42:54 PM] [Ecobee] Cached | Guest Room | V7NR
[6/5/2017, 9:42:54 PM] [Ecobee] Configuring chached Homebridge accessory...
[6/5/2017, 9:42:54 PM] [Ecobee] PlatformAccessory {
  displayName: 'Upstairs Ecobee3',
  UUID: '420f80a0-fb2f-4da5-8e6c-1b36c6c011c1',
  category: 1,
  services: 
   [ Service {
       displayName: undefined,
       UUID: '0000003E-0000-1000-8000-0026BB765291',
       subtype: undefined,
       iid: null,
       characteristics: [Object],
       optionalCharacteristics: [] },
     Service {
       displayName: 'Temperature',
       UUID: '0000008A-0000-1000-8000-0026BB765291',
       subtype: undefined,
       iid: null,
       characteristics: [Object],
       optionalCharacteristics: [] },
     Service {
       displayName: 'Humidity',
       UUID: '00000082-0000-1000-8000-0026BB765291',
       subtype: undefined,
       iid: null,
       characteristics: [Object],
       optionalCharacteristics: [] },
     Service {
       displayName: 'Occupancy',
       UUID: '00000086-0000-1000-8000-0026BB765291',
       subtype: undefined,
       iid: null,
       characteristics: [Object],
       optionalCharacteristics: [] } ],
  reachable: false,
  context: 
   { code: '311059459667',
     access_token: ‘xxxxx’,
     refresh_token: ‘xxxx’ },
  _associatedPlugin: 'homebridge-ecobee3-sensors',
  _associatedPlatform: 'Ecobee 3 Sensors' }
[6/5/2017, 9:42:54 PM] [Ecobee] Cached | Upstairs Ecobee3 | 311059459667
[6/5/2017, 9:42:54 PM] [Ecobee] Configuring chached Homebridge accessory...
[6/5/2017, 9:42:54 PM] [Ecobee] PlatformAccessory {
  displayName: 'Lil\'bee',
  UUID: '061f3631-0ca0-403a-92e5-5cd0686c79a4',
  category: 1,
  services: 
   [ Service {
       displayName: undefined,
       UUID: '0000003E-0000-1000-8000-0026BB765291',
       subtype: undefined,
       iid: null,
       characteristics: [Object],
       optionalCharacteristics: [] },
     Service {
       displayName: 'Temperature',
       UUID: '0000008A-0000-1000-8000-0026BB765291',
       subtype: undefined,
       iid: null,
       characteristics: [Object],
       optionalCharacteristics: [] },
     Service {
       displayName: 'Occupancy',
       UUID: '00000086-0000-1000-8000-0026BB765291',
       subtype: undefined,
       iid: null,
       characteristics: [Object],
       optionalCharacteristics: [] } ],
  reachable: false,
  context: 
   { code: ‘xxxx’,
     access_token: ‘xxxx’,
     refresh_token: ‘xxxxx’ },
  _associatedPlugin: 'homebridge-ecobee3-sensors',
  _associatedPlatform: 'Ecobee 3 Sensors' }
[6/5/2017, 9:42:54 PM] [Ecobee] Cached | Lil'bee | V32W
Scan this code with your HomeKit App on your iOS device to pair with Homebridge:

    ┌────────────┐     
    │ 031-45-154 │     
    └────────────┘     

[6/5/2017, 9:42:54 PM] [Ecobee] Finished launching...
[6/5/2017, 9:42:54 PM] [Ecobee] Updating sensors with fresh data...
[6/5/2017, 9:42:54 PM] [Ecobee] ClientRequest {
  domain: null,
  _events: 
   { response: { [Function: bound onceWrapper] listener: [Function: bound ] },
     socket: { [Function: bound onceWrapper] listener: [Function: onSocket] },
     error: [Function: bound ] },
  _eventsCount: 3,
  _maxListeners: undefined,
  output: [],
  outputEncodings: [],
  outputCallbacks: [],
  outputSize: 0,
  writable: true,
  _last: true,
  upgrading: false,
  chunkedEncoding: false,
  shouldKeepAlive: false,
  useChunkedEncodingByDefault: false,
  sendDate: false,
  _removedHeader: {},
  _contentLength: null,
  _hasBody: true,
  _trailer: '',
  finished: false,
  _headerSent: false,
  socket: null,
  connection: null,
  _header: null,
  _headers: 
   { 'content-type': 'application/json',
     authorization: 'Bearer 8lEzFoAXnShJIWscFKbqWEtXoYOMFvmZ',
     host: 'api.ecobee.com' },
  _headerNames: 
   { 'content-type': 'Content-Type',
     authorization: 'authorization',
     host: 'Host' },
  _onPendingData: null,
  agent: 
   Agent {
     domain: null,
     _events: { free: [Function] },
     _eventsCount: 1,
     _maxListeners: undefined,
     defaultPort: 443,
     protocol: 'https:',
     options: { path: null },
     requests: {},
     sockets: { 'api.ecobee.com:443:::::::::': [Object] },
     freeSockets: {},
     keepAliveMsecs: 1000,
     keepAlive: false,
     maxSockets: Infinity,
     maxFreeSockets: 256,
     maxCachedSessions: 100,
     _sessionCache: { map: {}, list: [] } },
  socketPath: undefined,
  timeout: undefined,
  method: 'GET',
  path: '/1/thermostat?json=%7B%22selection%22%3A%7B%22selectionType%22%3A%22registered%22%2C%22selectionMatch%22%3A%22%22%2C%22includeSensors%22%3Atrue%7D%7D',
  _ended: false,
  res: null,
  aborted: undefined,
  timeoutCb: null,
  upgradeOrConnect: false,
  parser: null,
  maxHeadersCount: null }
[6/5/2017, 9:42:54 PM] Homebridge is running on port 51828.
[6/5/2017, 9:42:55 PM] [Ecobee] { page: { page: 1, totalPages: 1, pageSize: 3, total: 3 },
  thermostatList: 
   [ { identifier: '511864300882',
       name: 'Main Floor',
       thermostatRev: '170605225117',
       isRegistered: true,
       modelNumber: 'apolloSmart',
       brand: 'ecobee',
       features: 'HomeKit',
       lastModified: '2017-06-05 22:51:17',
       thermostatTime: '2017-06-05 21:44:06',
       utcTime: '2017-06-06 01:44:06',
       remoteSensors: [Object] },
     { identifier: '170767287984',
       name: 'Sunroom',
       thermostatRev: '170605000554',
       isRegistered: true,
       modelNumber: 'idtSmart',
       brand: 'ecobee',
       features: '',
       lastModified: '2017-06-05 00:05:54',
       thermostatTime: '2017-06-05 21:44:06',
       utcTime: '2017-06-06 01:44:06',
       remoteSensors: [Object] },
     { identifier: '311059459667',
       name: 'Upstairs',
       thermostatRev: '170605223652',
       isRegistered: true,
       modelNumber: 'athenaSmart',
       brand: 'ecobee',
       features: 'HomeKit',
       lastModified: '2017-06-05 22:36:52',
       thermostatTime: '2017-06-05 21:44:06',
       utcTime: '2017-06-06 01:44:06',
       remoteSensors: [Object] } ],
  status: { code: 0, message: '' } }
[6/5/2017, 9:42:55 PM] [Ecobee] Update sensors
[6/5/2017, 9:42:55 PM] [Ecobee] Setting values of sensors...
[6/5/2017, 9:42:55 PM] [Ecobee] Not supported thermostat | Main Floor (apolloSmart)
[6/5/2017, 9:42:55 PM] [Ecobee] Not supported thermostat | Sunroom (idtSmart)
[6/5/2017, 9:42:55 PM] [Ecobee] Cached | Ashtons Room | V32S
[6/5/2017, 9:42:55 PM] [Ecobee] [Ashtons Room] Initializing sensor...
[6/5/2017, 9:42:55 PM] [Ecobee] { id: 'rs:100',
  name: 'Ashtons Room',
  type: 'ecobee3_remote_sensor',
  code: 'V32S',
  inUse: true,
  capability: 
   [ { id: '1', type: 'temperature', value: '723' },
     { id: '2', type: 'occupancy', value: 'false' } ] }
[6/5/2017, 9:42:55 PM] [Ecobee] [Ashtons Room] Initialized | V32S
[6/5/2017, 9:42:55 PM] [Ecobee] [Ashtons Room] Updating sensor measurement...
[6/5/2017, 9:42:55 PM] [Ecobee] { id: 'rs:100',
  name: 'Ashtons Room',
  type: 'ecobee3_remote_sensor',
  code: 'V32S',
  inUse: true,
  capability: 
   [ { id: '1', type: 'temperature', value: '723' },
     { id: '2', type: 'occupancy', value: 'false' } ] }
[6/5/2017, 9:42:55 PM] [Ecobee] [Ashtons Room] 22.4°C | Vacant
[6/5/2017, 9:42:55 PM] [Ecobee] Cached | Tuckers Room | RJC6
[6/5/2017, 9:42:55 PM] [Ecobee] [Tuckers Room] Initializing sensor...
[6/5/2017, 9:42:55 PM] [Ecobee] { id: 'rs:101',
  name: 'Tuckers Room',
  type: 'ecobee3_remote_sensor',
  code: 'RJC6',
  inUse: true,
  capability: 
   [ { id: '1', type: 'temperature', value: '730' },
     { id: '2', type: 'occupancy', value: 'false' } ] }
[6/5/2017, 9:42:55 PM] [Ecobee] [Tuckers Room] Initialized | RJC6
[6/5/2017, 9:42:55 PM] [Ecobee] [Tuckers Room] Updating sensor measurement...
[6/5/2017, 9:42:55 PM] [Ecobee] { id: 'rs:101',
  name: 'Tuckers Room',
  type: 'ecobee3_remote_sensor',
  code: 'RJC6',
  inUse: true,
  capability: 
   [ { id: '1', type: 'temperature', value: '730' },
     { id: '2', type: 'occupancy', value: 'false' } ] }
[6/5/2017, 9:42:55 PM] [Ecobee] [Tuckers Room] 22.8°C | Vacant
[6/5/2017, 9:42:55 PM] [Ecobee] Cached | Guest Room | V7NR
[6/5/2017, 9:42:55 PM] [Ecobee] [Guest Room] Initializing sensor...
[6/5/2017, 9:42:55 PM] [Ecobee] { id: 'rs:102',
  name: 'Guest Room',
  type: 'ecobee3_remote_sensor',
  code: 'V7NR',
  inUse: true,
  capability: 
   [ { id: '1', type: 'temperature', value: '730' },
     { id: '2', type: 'occupancy', value: 'false' } ] }
[6/5/2017, 9:42:55 PM] [Ecobee] [Guest Room] Initialized | V7NR
[6/5/2017, 9:42:55 PM] [Ecobee] [Guest Room] Updating sensor measurement...
[6/5/2017, 9:42:55 PM] [Ecobee] { id: 'rs:102',
  name: 'Guest Room',
  type: 'ecobee3_remote_sensor',
  code: 'V7NR',
  inUse: true,
  capability: 
   [ { id: '1', type: 'temperature', value: '730' },
     { id: '2', type: 'occupancy', value: 'false' } ] }
[6/5/2017, 9:42:55 PM] [Ecobee] [Guest Room] 22.8°C | Vacant
[6/5/2017, 9:42:55 PM] [Ecobee] Cached | Upstairs | 311059459667
[6/5/2017, 9:42:55 PM] [Ecobee] [Upstairs] Initializing sensor...
[6/5/2017, 9:42:55 PM] [Ecobee] { id: 'ei:0',
  name: 'Upstairs',
  type: 'thermostat',
  inUse: true,
  capability: 
   [ { id: '1', type: 'temperature', value: '749' },
     { id: '2', type: 'humidity', value: '41' },
     { id: '3', type: 'occupancy', value: 'true' } ],
  code: '311059459667' }
[6/5/2017, 9:42:55 PM] [Ecobee] [Upstairs] Initialized | 311059459667
[6/5/2017, 9:42:55 PM] [Ecobee] [Upstairs] Updating sensor measurement...
[6/5/2017, 9:42:55 PM] [Ecobee] { id: 'ei:0',
  name: 'Upstairs',
  type: 'thermostat',
  inUse: true,
  capability: 
   [ { id: '1', type: 'temperature', value: '749' },
     { id: '2', type: 'humidity', value: '41' },
     { id: '3', type: 'occupancy', value: 'true' } ],
  code: '311059459667' }
[6/5/2017, 9:42:55 PM] [Ecobee] [Upstairs] 23.8°C | 41% | Occupied
[6/5/2017, 9:42:55 PM] [Ecobee] Cached | SERVERS | V32W
[6/5/2017, 9:42:55 PM] [Ecobee] [SERVERS] Initializing sensor...
[6/5/2017, 9:42:55 PM] [Ecobee] { id: 'rs:106',
  name: 'SERVERS',
  type: 'ecobee3_remote_sensor',
  code: 'V32W',
  inUse: true,
  capability: 
   [ { id: '1', type: 'temperature', value: '848' },
     { id: '2', type: 'occupancy', value: 'true' } ] }
[6/5/2017, 9:42:55 PM] [Ecobee] [SERVERS] Initialized | V32W
[6/5/2017, 9:42:55 PM] [Ecobee] [SERVERS] Updating sensor measurement...
[6/5/2017, 9:42:55 PM] [Ecobee] { id: 'rs:106',
  name: 'SERVERS',
  type: 'ecobee3_remote_sensor',
  code: 'V32W',
  inUse: true,
  capability: 
   [ { id: '1', type: 'temperature', value: '848' },
     { id: '2', type: 'occupancy', value: 'true' } ] }
[6/5/2017, 9:42:55 PM] [Ecobee] [SERVERS] 29.3°C | Occupied
[6/5/2017, 9:42:55 PM] [Ecobee] Cleaning unused cached Homebridge accessories...
[6/5/2017, 9:42:55 PM] [Ecobee] {}
[6/5/2017, 9:42:55 PM] [Ecobee] Wait | 30 seconds
[6/5/2017, 9:43:26 PM] [Ecobee] Updating sensors with fresh data...
[6/5/2017, 9:43:26 PM] [Ecobee] ClientRequest {
  domain: null,
  _events: 
   { response: { [Function: bound onceWrapper] listener: [Function: bound ] },
     socket: { [Function: bound onceWrapper] listener: [Function: onSocket] },
     error: [Function: bound ] },
  _eventsCount: 3,
  _maxListeners: undefined,
  output: [],
  outputEncodings: [],
  outputCallbacks: [],
  outputSize: 0,
  writable: true,
  _last: true,
  upgrading: false,
  chunkedEncoding: false,
  shouldKeepAlive: false,
  useChunkedEncodingByDefault: false,
  sendDate: false,
  _removedHeader: {},
  _contentLength: null,
  _hasBody: true,
  _trailer: '',
  finished: false,
  _headerSent: false,
  socket: null,
  connection: null,
  _header: null,
  _headers: 
   { 'content-type': 'application/json',
     authorization: 'Bearer 8lEzFoAXnShJIWscFKbqWEtXoYOMFvmZ',
     host: 'api.ecobee.com' },
  _headerNames: 
   { 'content-type': 'Content-Type',
     authorization: 'authorization',
     host: 'Host' },
  _onPendingData: null,
  agent: 
   Agent {
     domain: null,
     _events: { free: [Function] },
     _eventsCount: 1,
     _maxListeners: undefined,
     defaultPort: 443,
     protocol: 'https:',
     options: { path: null },
     requests: {},
     sockets: { 'api.ecobee.com:443:::::::::': [Object] },
     freeSockets: {},
     keepAliveMsecs: 1000,
     keepAlive: false,
     maxSockets: Infinity,
     maxFreeSockets: 256,
     maxCachedSessions: 100,
     _sessionCache: { map: [Object], list: [Object] } },
  socketPath: undefined,
  timeout: undefined,
  method: 'GET',
  path: '/1/thermostat?json=%7B%22selection%22%3A%7B%22selectionType%22%3A%22registered%22%2C%22selectionMatch%22%3A%22%22%2C%22includeSensors%22%3Atrue%7D%7D',
  _ended: false,
  res: null,
  aborted: undefined,
  timeoutCb: null,
  upgradeOrConnect: false,
  parser: null,
  maxHeadersCount: null }
[6/5/2017, 9:43:26 PM] [Ecobee] { page: { page: 1, totalPages: 1, pageSize: 3, total: 3 },
  thermostatList: 
   [ { identifier: '511864300882',
       name: 'Main Floor',
       thermostatRev: '170605225117',
       isRegistered: true,
       modelNumber: 'apolloSmart',
       brand: 'ecobee',
       features: 'HomeKit',
       lastModified: '2017-06-05 22:51:17',
       thermostatTime: '2017-06-05 21:44:37',
       utcTime: '2017-06-06 01:44:37',
       remoteSensors: [Object] },
     { identifier: '170767287984',
       name: 'Sunroom',
       thermostatRev: '170605000554',
       isRegistered: true,
       modelNumber: 'idtSmart',
       brand: 'ecobee',
       features: '',
       lastModified: '2017-06-05 00:05:54',
       thermostatTime: '2017-06-05 21:44:37',
       utcTime: '2017-06-06 01:44:37',
       remoteSensors: [Object] },
     { identifier: '311059459667',
       name: 'Upstairs',
       thermostatRev: '170605223652',
       isRegistered: true,
       modelNumber: 'athenaSmart',
       brand: 'ecobee',
       features: 'HomeKit',
       lastModified: '2017-06-05 22:36:52',
       thermostatTime: '2017-06-05 21:44:37',
       utcTime: '2017-06-06 01:44:37',
       remoteSensors: [Object] } ],
  status: { code: 0, message: '' } }
[6/5/2017, 9:43:26 PM] [Ecobee] Update sensors
[6/5/2017, 9:43:26 PM] [Ecobee] Setting values of sensors...
[6/5/2017, 9:43:26 PM] [Ecobee] Not supported thermostat | Main Floor (apolloSmart)
[6/5/2017, 9:43:26 PM] [Ecobee] Not supported thermostat | Sunroom (idtSmart)
[6/5/2017, 9:43:26 PM] [Ecobee] [Ashtons Room] Updating sensor measurement...
[6/5/2017, 9:43:26 PM] [Ecobee] { id: 'rs:100',
  name: 'Ashtons Room',
  type: 'ecobee3_remote_sensor',
  code: 'V32S',
  inUse: true,
  capability: 
   [ { id: '1', type: 'temperature', value: '723' },
     { id: '2', type: 'occupancy', value: 'false' } ] }
[6/5/2017, 9:43:26 PM] [Ecobee] [Ashtons Room] 22.4°C | Vacant
[6/5/2017, 9:43:26 PM] [Ecobee] [Tuckers Room] Updating sensor measurement...
[6/5/2017, 9:43:26 PM] [Ecobee] { id: 'rs:101',
  name: 'Tuckers Room',
  type: 'ecobee3_remote_sensor',
  code: 'RJC6',
  inUse: true,
  capability: 
   [ { id: '1', type: 'temperature', value: '730' },
     { id: '2', type: 'occupancy', value: 'false' } ] }
[6/5/2017, 9:43:26 PM] [Ecobee] [Tuckers Room] 22.8°C | Vacant
[6/5/2017, 9:43:26 PM] [Ecobee] [Guest Room] Updating sensor measurement...
[6/5/2017, 9:43:26 PM] [Ecobee] { id: 'rs:102',
  name: 'Guest Room',
  type: 'ecobee3_remote_sensor',
  code: 'V7NR',
  inUse: true,
  capability: 
   [ { id: '1', type: 'temperature', value: '730' },
     { id: '2', type: 'occupancy', value: 'false' } ] }
[6/5/2017, 9:43:26 PM] [Ecobee] [Guest Room] 22.8°C | Vacant
[6/5/2017, 9:43:26 PM] [Ecobee] [Upstairs] Updating sensor measurement...
[6/5/2017, 9:43:26 PM] [Ecobee] { id: 'ei:0',
  name: 'Upstairs',
  type: 'thermostat',
  inUse: true,
  capability: 
   [ { id: '1', type: 'temperature', value: '749' },
     { id: '2', type: 'humidity', value: '41' },
     { id: '3', type: 'occupancy', value: 'true' } ],
  code: '311059459667' }
[6/5/2017, 9:43:26 PM] [Ecobee] [Upstairs] 23.8°C | 41% | Occupied
[6/5/2017, 9:43:26 PM] [Ecobee] [SERVERS] Updating sensor measurement...
[6/5/2017, 9:43:26 PM] [Ecobee] { id: 'rs:106',
  name: 'SERVERS',
  type: 'ecobee3_remote_sensor',
  code: 'V32W',
  inUse: true,
  capability: 
   [ { id: '1', type: 'temperature', value: '848' },
     { id: '2', type: 'occupancy', value: 'true' } ] }
[6/5/2017, 9:43:26 PM] [Ecobee] [SERVERS] 29.3°C | Occupied
[6/5/2017, 9:43:26 PM] [Ecobee] Cleaning unused cached Homebridge accessories...
[6/5/2017, 9:43:26 PM] [Ecobee] {}
[6/5/2017, 9:43:26 PM] [Ecobee] Wait | 30 seconds
[6/5/2017, 9:43:57 PM] [Ecobee] Updating sensors with fresh data...
[6/5/2017, 9:43:57 PM] [Ecobee] ClientRequest {
  domain: null,
  _events: 
   { response: { [Function: bound onceWrapper] listener: [Function: bound ] },
     socket: { [Function: bound onceWrapper] listener: [Function: onSocket] },
     error: [Function: bound ] },
  _eventsCount: 3,
  _maxListeners: undefined,
  output: [],
  outputEncodings: [],
  outputCallbacks: [],
  outputSize: 0,
  writable: true,
  _last: true,
  upgrading: false,
  chunkedEncoding: false,
  shouldKeepAlive: false,
  useChunkedEncodingByDefault: false,
  sendDate: false,
  _removedHeader: {},
  _contentLength: null,
  _hasBody: true,
  _trailer: '',
  finished: false,
  _headerSent: false,
  socket: null,
  connection: null,
  _header: null,
  _headers: 
   { 'content-type': 'application/json',
     authorization: 'Bearer 8lEzFoAXnShJIWscFKbqWEtXoYOMFvmZ',
     host: 'api.ecobee.com' },
  _headerNames: 
   { 'content-type': 'Content-Type',
     authorization: 'authorization',
     host: 'Host' },
  _onPendingData: null,
  agent: 
   Agent {
     domain: null,
     _events: { free: [Function] },
     _eventsCount: 1,
     _maxListeners: undefined,
     defaultPort: 443,
     protocol: 'https:',
     options: { path: null },
     requests: {},
     sockets: { 'api.ecobee.com:443:::::::::': [Object] },
     freeSockets: {},
     keepAliveMsecs: 1000,
     keepAlive: false,
     maxSockets: Infinity,
     maxFreeSockets: 256,
     maxCachedSessions: 100,
     _sessionCache: { map: [Object], list: [Object] } },
  socketPath: undefined,
  timeout: undefined,
  method: 'GET',
  path: '/1/thermostat?json=%7B%22selection%22%3A%7B%22selectionType%22%3A%22registered%22%2C%22selectionMatch%22%3A%22%22%2C%22includeSensors%22%3Atrue%7D%7D',
  _ended: false,
  res: null,
  aborted: undefined,
  timeoutCb: null,
  upgradeOrConnect: false,
  parser: null,
  maxHeadersCount: null }
[6/5/2017, 9:43:57 PM] [Ecobee] { page: { page: 1, totalPages: 1, pageSize: 3, total: 3 },
  thermostatList: 
   [ { identifier: '511864300882',
       name: 'Main Floor',
       thermostatRev: '170605225117',
       isRegistered: true,
       modelNumber: 'apolloSmart',
       brand: 'ecobee',
       features: 'HomeKit',
       lastModified: '2017-06-05 22:51:17',
       thermostatTime: '2017-06-05 21:45:08',
       utcTime: '2017-06-06 01:45:08',
       remoteSensors: [Object] },
     { identifier: '170767287984',
       name: 'Sunroom',
       thermostatRev: '170605000554',
       isRegistered: true,
       modelNumber: 'idtSmart',
       brand: 'ecobee',
       features: '',
       lastModified: '2017-06-05 00:05:54',
       thermostatTime: '2017-06-05 21:45:08',
       utcTime: '2017-06-06 01:45:08',
       remoteSensors: [Object] },
     { identifier: '311059459667',
       name: 'Upstairs',
       thermostatRev: '170605223652',
       isRegistered: true,
       modelNumber: 'athenaSmart',
       brand: 'ecobee',
       features: 'HomeKit',
       lastModified: '2017-06-05 22:36:52',
       thermostatTime: '2017-06-05 21:45:08',
       utcTime: '2017-06-06 01:45:08',
       remoteSensors: [Object] } ],
  status: { code: 0, message: '' } }
[6/5/2017, 9:43:57 PM] [Ecobee] Update sensors
[6/5/2017, 9:43:57 PM] [Ecobee] Setting values of sensors...
[6/5/2017, 9:43:57 PM] [Ecobee] Not supported thermostat | Main Floor (apolloSmart)
[6/5/2017, 9:43:57 PM] [Ecobee] Not supported thermostat | Sunroom (idtSmart)
[6/5/2017, 9:43:57 PM] [Ecobee] [Ashtons Room] Updating sensor measurement...
[6/5/2017, 9:43:57 PM] [Ecobee] { id: 'rs:100',
  name: 'Ashtons Room',
  type: 'ecobee3_remote_sensor',
  code: 'V32S',
  inUse: true,
  capability: 
   [ { id: '1', type: 'temperature', value: '723' },
     { id: '2', type: 'occupancy', value: 'false' } ] }
[6/5/2017, 9:43:57 PM] [Ecobee] [Ashtons Room] 22.4°C | Vacant
[6/5/2017, 9:43:57 PM] [Ecobee] [Tuckers Room] Updating sensor measurement...
[6/5/2017, 9:43:57 PM] [Ecobee] { id: 'rs:101',
  name: 'Tuckers Room',
  type: 'ecobee3_remote_sensor',
  code: 'RJC6',
  inUse: true,
  capability: 
   [ { id: '1', type: 'temperature', value: '730' },
     { id: '2', type: 'occupancy', value: 'false' } ] }
[6/5/2017, 9:43:57 PM] [Ecobee] [Tuckers Room] 22.8°C | Vacant
[6/5/2017, 9:43:57 PM] [Ecobee] [Guest Room] Updating sensor measurement...
[6/5/2017, 9:43:57 PM] [Ecobee] { id: 'rs:102',
  name: 'Guest Room',
  type: 'ecobee3_remote_sensor',
  code: 'V7NR',
  inUse: true,
  capability: 
   [ { id: '1', type: 'temperature', value: '730' },
     { id: '2', type: 'occupancy', value: 'false' } ] }
[6/5/2017, 9:43:57 PM] [Ecobee] [Guest Room] 22.8°C | Vacant
[6/5/2017, 9:43:57 PM] [Ecobee] [Upstairs] Updating sensor measurement...
[6/5/2017, 9:43:57 PM] [Ecobee] { id: 'ei:0',
  name: 'Upstairs',
  type: 'thermostat',
  inUse: true,
  capability: 
   [ { id: '1', type: 'temperature', value: '749' },
     { id: '2', type: 'humidity', value: '41' },
     { id: '3', type: 'occupancy', value: 'true' } ],
  code: '311059459667' }
[6/5/2017, 9:43:57 PM] [Ecobee] [Upstairs] 23.8°C | 41% | Occupied
[6/5/2017, 9:43:57 PM] [Ecobee] [SERVERS] Updating sensor measurement...
[6/5/2017, 9:43:57 PM] [Ecobee] { id: 'rs:106',
  name: 'SERVERS',
  type: 'ecobee3_remote_sensor',
  code: 'V32W',
  inUse: true,
  capability: 
   [ { id: '1', type: 'temperature', value: '848' },
     { id: '2', type: 'occupancy', value: 'true' } ] }
[6/5/2017, 9:43:57 PM] [Ecobee] [SERVERS] 29.3°C | Occupied
[6/5/2017, 9:43:57 PM] [Ecobee] Cleaning unused cached Homebridge accessories...
[6/5/2017, 9:43:57 PM] [Ecobee] {}
[6/5/2017, 9:43:57 PM] [Ecobee] Wait | 30 seconds
vojtamolda commented 7 years ago

Thanks for the logs, @macjeff, this is exactly what I needed!

There's a new new branch ecobee4 with a change that adds support for the 4 (361bd8707d9e265bd6320aa28c505b0615030aa0). Can you try if it works?

macjeff commented 7 years ago

Tonight I will. Do I have to go line by line and add and delete lines of code or can I actually run a command to update to that version.

vojtamolda commented 7 years ago

The fastest way is to copy and paste the change. It's only one line in source/platform.js:226:

    if ((thermostatConfig.modelNumber != 'athenaSmart') && (thermostatConfig.modelNumber != 'apolloSmart')) {
macjeff commented 7 years ago

If you want to get into my system I would help if we talk offline.

I have three units. Ecobee 2, 3, and 4. Ecobee 2 not supported either but The amazon Alexa supports it with their skill so it should be doable.

I also have about 12 sensors split between the ecobee 3 and 4.

macjeff commented 7 years ago

Maybe I did something wrong but I just updated the platforms.js file in the Source folder and then tried it again. I even tried deleting the cached accessaries folder.

Same thing Unsupported thermostat for both the ecobee 4 and ecobee 2

vojtamolda commented 7 years ago

Thanks for taking a look at it, @macjeff. It's really a shame. If you have the right version of the file I'm not exactly sure why this is happening and to be honest at the moment I don't have time to work on it.

Just out of curiosity, what do you use this plugin for? One of the recent updates of the Ecobee 3 exposed the sensors into HomeKit in the same way this plugin does. I'm assuming 4 is pretty much the same in this regard.

macjeff commented 7 years ago

I use it because they have a 6 sensor limit for Siri. I think the first 6. Plus their integration is terrible. Works sometimes and sometimes does not.

Would access to my system help?

I literally opened the platform.js file and deleted all. I selected all in the raw code for the branch you posted and pasted. That way I should have every change even if you had just one. Correct?

Sent from my iPhone

On Jun 7, 2017, at 8:43 AM, Vojta Molda notifications@github.com wrote:

Thanks for taking a look at it, @macjeff. It's really a shame. If you have the right version of the file I'm not exactly sure why this is happening and to be honest at the moment I don't have time to work on it.

Just out of curiosity, what do you use this plugin for? One of the recent updates of the Ecobee 3 exposed the sensors into HomeKit in the same way this plugin does. I'm assuming 4 is pretty much the same in this regard.

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub, or mute the thread.

vojtamolda commented 7 years ago

Oh... That's interesting. I didn't know about the 6 sensor limit. Their integration works perfectly for me. I would expect my code to be more broken :smile:

Correct. The way to tell the right version of source/platform.js is that it contains an "apolloSmart" string. Guaranteed way to get the right files is to make npm install directly from the branch:

npm install github:vojtamolda/homebridge-ecobee3-sensors#ecobee4

Thanks for the offer access offer, but at the moment I'm too busy with other projects. If you know a little bit of JavaScript it shouldn't be complicated to implement it yourself.

macjeff commented 7 years ago

I called them because things were not working with home kit. Even the main sensor was not showing up

They looked at my account and said I am over the sensor limit. So they had me remove a few and it worked.

Thats why I got the Ecobee4. I split the sensors up now rather than put them all on one unit.

But tried it again and no luck. I guess I will just give up on this for now.

On Jun 7, 2017, at 10:19 AM, Vojta Molda notifications@github.com wrote:

Oh... That's interesting. I didn't know about the 6 sensor limit. Their integration works perfectly for me. I would expect mine code to be more broken 😄

Correct. The way to tell the right version of source/platform.js is that it contains an "apolloSmart" string. Guaranteed way to get the right files is to make npm install directly from the branch:

npm install github:vojtamolda/homebridge-ecobee3-sensors#ecobee4 Thanks for the offer access offer, but at the moment I'm too busy with other projects. If you know a little bit of JavaScript it shouldn't be complicated to implement it yourself.

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/vojtamolda/homebridge-ecobee3-sensors/issues/19#issuecomment-306809468, or mute the thread https://github.com/notifications/unsubscribe-auth/ATbg_pC0mJLsquqLEY7d760Jyd_6eX-Lks5sBrF2gaJpZM4Nl3JK.

i2023u commented 6 years ago

Can you update the version for ecobee4 ? I'm using docker and it's keeping overwiting 0.1.5 version so I cannot use.

macjeff commented 6 years ago

I asked this before and was told ecobee 4 supports HomeKit as does ecobee 3 so this is basically a discontinued plugin.

Jeff

Sent from my iPhone

On Nov 29, 2017, at 11:25 PM, i2023u notifications@github.com wrote:

Can you update the version for ecobee4 ? I'm using docker and it's keeping overwiting 0.1.5 version so I cannot use.

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub, or mute the thread.

vojtamolda commented 6 years ago

Hello @i2023u,

As @macjeff wrote this plugin was relevant for about a year long period where Ecobees didn't ship with HomeKit support for the wireless sensors. Then they released an update that enabled it.

There's still some things this plugin can do but the "stock" Ecobee can't, but that's a tiny corner case. What would you like to do with the plugin?

i2023u commented 6 years ago

Oh, that's why it crashed when it's adding remote sensors. I'm trying to implement Machine learning algorithm like nest so that based on inside/outside temperatures and /regular/overridden schedules, it can control the temperature automatically and save energy. I think these plugin is still interesting for development in AI fields. especially I have a v2 raspberry pi which I don't use anymore. I hope you can continue to update the plugin. Thank you for the reply.

On Thu, Nov 30, 2017 at 10:14 AM, Vojta Molda notifications@github.com wrote:

Hello @i2023u https://github.com/i2023u,

As @macjeff https://github.com/macjeff wrote this plugin was relevant for about a year long period where Ecobees didn't ship with HomeKit support for the wireless sensors. Then they released an update that enabled it.

There's still some things this plugin can do but the "stock" Ecobee can't, but that's a tiny corner case. What would you like to do with the plugin?

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/vojtamolda/homebridge-ecobee3-sensors/issues/19#issuecomment-348217780, or mute the thread https://github.com/notifications/unsubscribe-auth/AgSd-H-bXc3h4_p3Z_SR4u7dXT6FaM_3ks5s7sZygaJpZM4Nl3JK .

vojtamolda commented 6 years ago

In that case this plugin isn't what you're looking for anyway. Check out the Ecobee API: https://www.ecobee.com/home/developer/api/introduction/index.shtml You can get all you need to feed your machine learning algorithms.

This plugin is essentially a wrapper that maps the Ecobee API onto Apple's HomeKit API.

i2023u commented 6 years ago

I was looking at it too. Thank you for confirming.

fratinize commented 3 years ago

FYI This Worked for Me TY Funny Note, In the Logs The Temp is Shown as Celsius, But in The Home App it Shows Fahrenheit. Works for me.

mozilla33 commented 3 years ago

I made this change to the source code a few weeks ago and it didn't do anything, but I just noticed today that it was working!