jvmahon / Homebridge-HomeSeer4

Homebridge Plugin for HomeSeer 3 and 4
29 stars 8 forks source link

UnhandledPromiseRejectionWarning: TypeError: getStatusInfo.Devices is not iterable #105

Closed mmoud closed 4 years ago

mmoud commented 4 years ago

I am running this plugin in HOOBS and getting following error

8/19/2020, 10:24:10 AM Loaded plugin "homebridge-homeseer4". 8/19/2020, 10:24:10 AM homebridge API version: 2.5 8/19/2020, 10:24:10 AM [HomeSeer] Start 8/19/2020, 10:24:10 AM Load homebridge-HomeSeerPlatform.HomeSeer 8/19/2020, 10:24:10 AM (node:5123) UnhandledPromiseRejectionWarning: TypeError: getStatusInfo.Devices is not iterable 8/19/2020, 10:24:10 AM at HomeSeerSystem.initialize (/hoobs/node_modules/homebridge-homeseer4/lib/HomeSeerSystemObject.js:477:42) 8/19/2020, 10:24:10 AM at processTicksAndRejections (internal/process/task_queues.js:97:5) 8/19/2020, 10:24:10 AM at async HomeSeerPlatform.accessories (/hoobs/node_modules/homebridge-homeseer4/index.js:96:24) 8/19/2020, 10:24:10 AM (node:5123) 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) 8/19/2020, 10:24:10 AM (node:5123) [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.

Plugin config is very basic for now

{ "platform": "HomeSeer", "name": "HomeSeer", "host": "http://192.168.2.26", "login": "homebridge", "password": "homebridge", "ASCIIport": 11000, "lightbulbs": [ 18, 138, 63, 60, 57, 54, 51, 48, 45, 42, 36, 134, 133, 132 ] }

jvmahon commented 4 years ago

Its failing at the initial attempt to connect to homeseer. This may be a password / login error. I'll try to add a more detailed error message, but in the meantime, check if you have the login and password configured properly. From a "normal" browser on your computer running homebridge, enter:

http://homebridge:homebridge@192.168.2.26/JSON?request=getstatus

If you get back an array of values, then you have your password set. If you get back an error, you need to check your password settings. Let me know if this works.

If the password looks OK, but you still can't get it to work, let me know the node version you are running. Run

node -v

from a command line to check this.

mmoud commented 4 years ago

Login seems to be working fine

First few lines from the output

{"Name":"HomeSeer Devices","Version":"1.0","Devices":[{"ref":155,"name":"Closet Timer","location":"Timers","location2":"Counters-Timers","value":21366825.7194196,"status":"247:07:13:44","device_type_string":"Timer","last_change":"\/Date(1597860688017-

/usr/src/hoobs # node -v
v12.16.2

I am running this in docker container but also tried directly on a server with same result

mmoud commented 4 years ago

Actually I had no auth enabled for local network . I just disabled that and it seems to went next step but still no good. I removed all lightbulb refrences except one to reduce number of errors

non-zero exit code. 8/19/2020, 2:26:34 PM Loaded plugin "homebridge-homeseer4". 8/19/2020, 2:26:34 PM homebridge API version: 2.5 8/19/2020, 2:26:34 PM [HomeSeer] Start 8/19/2020, 2:26:34 PM Load homebridge-HomeSeerPlatform.HomeSeer 8/19/2020, 2:26:34 PM [HomeSeer] End 8/19/2020, 2:26:34 PM Creating HomeKit devices from HomeSeer data. 8/19/2020, 2:26:34 PM [HomeSeer] Checking Configuration Data 8/19/2020, 2:26:34 PM (node:16661) UnhandledPromiseRejectionWarning: TypeError: Cannot read property 'find' of undefined 8/19/2020, 2:26:34 PM at HomeSeerSystem.getControlPairs (/hoobs/node_modules/homebridge-homeseer4/lib/HomeSeerSystemObject.js:133:55) 8/19/2020, 2:26:34 PM at HomeSeerSystem.supportsDimming (/hoobs/node_modules/homebridge-homeseer4/lib/HomeSeerSystemObject.js:153:21) 8/19/2020, 2:26:34 PM at Object.checkConfig (/hoobs/node_modules/homebridge-homeseer4/lib/HomeSeerUtilities.js:107:33) 8/19/2020, 2:26:34 PM at HomeSeerPlatform.accessories (/hoobs/node_modules/homebridge-homeseer4/index.js:160:17) 8/19/2020, 2:26:34 PM at processTicksAndRejections (internal/process/task_queues.js:97:5) 8/19/2020, 2:26:34 PM (node:16661) 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) 8/19/2020, 2:26:34 PM (node:16661) [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.

mmoud commented 4 years ago

It worked. I was using control device refernce instead of switch ref.

Question though, Now that HS4 supports webhooks , cannot all devices be pulled /pushed to bridge automatically ?