karlg100 / homebridge-frigidaire

homebridge Platform plugin for Frigidaire connected appliances
29 stars 10 forks source link

new 2.1.2 version - need testers #32

Closed karlg100 closed 3 years ago

karlg100 commented 3 years ago

new version released, looking for some folks to test.

Please manually update both this and the lib plugin from GitHub versions.

mjk5025 commented 3 years ago

I'd be happy to help test, but having a hard time updating to the new files. ANy tips?

amaisano commented 3 years ago

I'll test! @karlg100 do you have some CLI commands to run to ensure we get this right version in our HB containers?

karlg100 commented 3 years ago

@amaisano, grab the latest support frigidaire checkin. Fixed some more issues this morning.

Just update the homebridge-frigidiare/index.js for homebridge-frigidiare and the node_modules/frigidaire/lib/frigidaire.js from the latest checked in version on GitHub.

After a few days of testing and if things are stable, I'll push a new npm package, and everyone should just update.

amaisano commented 3 years ago

Upon replacing those two files and restarting my container, got repeating error messages, and no accessories:

UPDATE - accessories eventually loaded in - took 10 minutes.

Error: Attribute 1004 not found in device telemetry
    at Frigidaire.getValue (/homebridge/node_modules/homebridge-frigidaire/node_modules/frigidaire/lib/frigidaire.js:829:20)
    at Frigidaire.getCleanAir (/homebridge/node_modules/homebridge-frigidaire/node_modules/frigidaire/lib/frigidaire.js:1044:11)
    at FrigidaireAirConditionerAccessory.getCleanAir (/homebridge/node_modules/homebridge-frigidaire/index.js:171:13)
    at On.emit (events.js:376:20)
    at /usr/local/lib/node_modules/homebridge/node_modules/hap-nodejs/src/lib/Characteristic.ts:1508:14
    at new Promise (<anonymous>)
    at On.<anonymous> (/usr/local/lib/node_modules/homebridge/node_modules/hap-nodejs/src/lib/Characteristic.ts:1506:12)
    at step (/usr/local/lib/node_modules/homebridge/node_modules/tslib/tslib.js:143:27)
    at Object.next (/usr/local/lib/node_modules/homebridge/node_modules/tslib/tslib.js:124:57)
    at /usr/local/lib/node_modules/homebridge/node_modules/tslib/tslib.js:117:75
[6/16/2021, 4:21:45 PM] [homebridge-frigidaire] This plugin slows down Homebridge. The read handler for the characteristic 'On' was slow to respond! See https://git.io/JtMGR for more info.
[6/16/2021, 4:21:52 PM] [homebridge-frigidaire] This plugin slows down Homebridge. The read handler for the characteristic 'On' didn't respond at all!. Please check that you properly call the callback! See https://git.io/JtMGR for more info.

Once we get going, lots of these, and I'm not able to control the accessory:

mode() - max retries exceeded # tried to set to OFF
getCoolingState() - max retries exceeded
getFanMode() - max retries exceeded
getUnit() - max retries exceeded
getTemp() - max retries exceeded
getRoomTemp() - max retries exceeded
getMode() - max retries exceeded
getMode() - max retries exceeded
getCoolingState() - max retries exceeded
getTemp() - max retries exceeded
getFanMode() - max retries exceeded
getUnit() - max retries exceeded
getRoomTemp() - max retries exceeded
getRoomTemp() - max retries exceeded
getUnit() - max retries exceeded
getMode() - max retries exceeded
getCoolingState() - max retries exceeded
getTemp() - max retries exceeded
getFanMode() - max retries exceeded
getTemp() - max retries exceeded
getCleanAir() - max retries exceeded
getCoolingState() - max retries exceeded
getMode() - max retries exceeded
getRoomTemp() - max retries exceeded
getUnit() - max retries exceeded
getMode() - max retries exceeded
getCoolingState() - max retries exceeded
getTemp() - max retries exceeded
getRoomTemp() - max retries exceeded
getFanMode() - max retries exceeded
getCoolingState() - max retries exceeded
getMode() - max retries exceeded
getFanMode() - max retries exceeded
getUnit() - max retries exceeded
getTemp() - max retries exceeded
getRoomTemp() - max retries exceeded
getCleanAir() - max retries exceeded
getFanMode() - max retries exceeded
getRoomTemp() - max retries exceeded
getCoolingState() - max retries exceeded
getTemp() - max retries exceeded
getUnit() - max retries exceeded
getMode() - max retries exceeded

image

karlg100 commented 3 years ago

Interesting, does your device have a “clean air” toggle on the front?

Karl

On Jun 16, 2021, at 4:23 PM, Adamo Maisano @.***> wrote:

Upon replacing those two files and restarting my container, got repeating error messages, and no accessories:

Error: Attribute 1004 not found in device telemetry at Frigidaire.getValue (/homebridge/node_modules/homebridge-frigidaire/node_modules/frigidaire/lib/frigidaire.js:829:20) at Frigidaire.getCleanAir (/homebridge/node_modules/homebridge-frigidaire/node_modules/frigidaire/lib/frigidaire.js:1044:11) at FrigidaireAirConditionerAccessory.getCleanAir (/homebridge/node_modules/homebridge-frigidaire/index.js:171:13) at On.emit (events.js:376:20) at /usr/local/lib/node_modules/homebridge/node_modules/hap-nodejs/src/lib/Characteristic.ts:1508:14 at new Promise () at On. (/usr/local/lib/node_modules/homebridge/node_modules/hap-nodejs/src/lib/Characteristic.ts:1506:12) at step (/usr/local/lib/node_modules/homebridge/node_modules/tslib/tslib.js:143:27) at Object.next (/usr/local/lib/node_modules/homebridge/node_modules/tslib/tslib.js:124:57) at /usr/local/lib/node_modules/homebridge/node_modules/tslib/tslib.js:117:75 [6/16/2021, 4:21:45 PM] [homebridge-frigidaire] This plugin slows down Homebridge. The read handler for the characteristic 'On' was slow to respond! See https://git.io/JtMGR for more info. [6/16/2021, 4:21:52 PM] [homebridge-frigidaire] This plugin slows down Homebridge. The read handler for the characteristic 'On' didn't respond at all!. Please check that you properly call the callback! See https://git.io/JtMGR for more info. — You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/karlg100/homebridge-frigidaire/issues/32#issuecomment-862693926, or unsubscribe https://github.com/notifications/unsubscribe-auth/AA4SB56GKIJNLMWEMF6HKDLTTEB3NANCNFSM46VE4XYQ.

amaisan0 commented 3 years ago

No - it does not have that feature.

brydoyle commented 3 years ago

Is it a setting in the app? Many of the models dont have a button but feature is within app and unit will beep if set.

On Wed, Jun 16, 2021 at 7:15 PM Adamo Maisano @.***> wrote:

No - it does not have that feature.

— You are receiving this because you are subscribed to this thread. Reply to this email directly, view it on GitHub https://github.com/karlg100/homebridge-frigidaire/issues/32#issuecomment-862792005, or unsubscribe https://github.com/notifications/unsubscribe-auth/ACJVPQXOCBDCMPAL6HEEGZTTTEV7LANCNFSM46VE4XYQ .

karlg100 commented 3 years ago

ok. clearly that was a bad assumption....

the issue with the non responsiveness is because of the failed get when trying to access the clean air toggle. Good news is the changes I made this morning are still running without issue. Hopefully we're zeroing in on another stable release.

I'll go back and see if I can detect the clean air toggle based on telemetry.

if you can, go into the node_modules/frigidaire dir, update the demo.js with your account's credentials, and run node demo.js [serial number] get

Please post output here. just want to make sure if I write a test, that it will detect correctly on your model.

amaisano commented 3 years ago
/homebridge/node_modules/homebridge-frigidaire/node_modules/frigidaire # node demo.js 90220223 get
starting up
Unknown command: 90220223
Available commands are: get|telem, telemUpdate, testReauth, devices, getMode, getCoolingState, off, cool, econ, fan, getUnit, f|fahrenheit, c|celcius, getClean, clean, rec, getFan, auto, high, med, low, setTemp, getTemp, getRoomTemp

if i flip the command order, i get this:

/homebridge/node_modules/homebridge-frigidaire/node_modules/frigidaire # node demo.js get 90220223
starting up
/homebridge/node_modules/homebridge-frigidaire/node_modules/frigidaire/lib/frigidaire.js:746
     var urlQueryString = "?pnc=" + self.deviceList[applianceIndex].pnc + "&elc=" + self.deviceList[applianceIndex].elc + "&sn=" + self.deviceList[applianceIndex].sn + "&mac=" + self.deviceList[applianceIndex].mac;
                                                                    ^

TypeError: Cannot read property 'pnc' of undefined
    at Frigidaire.getTelem (/homebridge/node_modules/homebridge-frigidaire/node_modules/frigidaire/lib/frigidaire.js:746:69)
    at Timeout._onTimeout (/homebridge/node_modules/homebridge-frigidaire/node_modules/frigidaire/lib/frigidaire.js:739:47)
    at listOnTimeout (internal/timers.js:555:17)
    at processTimers (internal/timers.js:498:7)
karlg100 commented 3 years ago

ahh, the problem is you still have the old demo.js. Please update it as well from GitHub.

amaisano commented 3 years ago
/homebridge/node_modules/homebridge-frigidaire/node_modules/frigidaire # node demo.js 90220223 get
starting up
Got Telem
[
  {
    numberValue: 0,
    stringValue: 'Good',
    spkTimestamp: 1621797900000,
    description: 'AC-Clean Filter Alert',
    haclCode: '1021',
    source: 'AC1',
    containers: []
  },
  {
    numberValue: 46710,
    spkTimestamp: 1623881398000,
    description: 'AC-Compressor Cooling Runtime',
    haclCode: '1030',
    source: 'AC1',
    containers: []
  },
  {
    numberValue: 7,
    stringValue: 'Auto',
    spkTimestamp: 1623794297000,
    description: 'AC-Fan Speed Setting',
    haclCode: '1002',
    source: 'AC1',
    containers: []
  },
  {
    numberValue: 0,
    spkTimestamp: 1606151648000,
    description: 'AC-Scheduler Event Count',
    haclCode: '1052',
    source: 'AC1',
    containers: []
  },
  {
    stringValue: '0000000000000000',
    spkTimestamp: 1606151648000,
    description: 'AC-Scheduler Event Friday',
    haclCode: '1058',
    source: 'AC1',
    containers: []
  },
  {
    stringValue: '0000000000000000',
    spkTimestamp: 1606151648000,
    description: 'AC-Scheduler Event Monday',
    haclCode: '1054',
    source: 'AC1',
    containers: []
  },
  {
    stringValue: '000000000000000000',
    spkTimestamp: 1606151648000,
    description: 'AC-Scheduler Event One Time',
    haclCode: '105A',
    source: 'AC1',
    containers: []
  },
  {
    stringValue: '0000000000000000',
    spkTimestamp: 1606151648000,
    description: 'AC-Scheduler Event Saturday',
    haclCode: '1059',
    source: 'AC1',
    containers: []
  },
  {
    stringValue: '0000000000000000',
    spkTimestamp: 1606151648000,
    description: 'AC-Scheduler Event Sunday',
    haclCode: '1053',
    source: 'AC1',
    containers: []
  },
  {
    stringValue: '0000000000000000',
    spkTimestamp: 1606151648000,
    description: 'AC-Scheduler Event Thursday',
    haclCode: '1057',
    source: 'AC1',
    containers: []
  },
  {
    stringValue: '0000000000000000',
    spkTimestamp: 1606151648000,
    description: 'AC-Scheduler Event Tuesday',
    haclCode: '1055',
    source: 'AC1',
    containers: []
  },
  {
    stringValue: '0000000000000000',
    spkTimestamp: 1606151648000,
    description: 'AC-Scheduler Event Wednesday',
    haclCode: '1056',
    source: 'AC1',
    containers: []
  },
  {
    numberValue: 0,
    stringValue: 'Off',
    spkTimestamp: 1606151648000,
    description: 'AC-Scheduler Mode',
    haclCode: '1050',
    source: 'AC1',
    containers: []
  },
  {
    spkTimestamp: 1623887260,
    description: 'Alert Event',
    haclCode: '0470',
    source: 'AC1',
    containers: [
      {
        propertyName: 'Number',
        tId: '0',
        group: 0,
        numberValue: 0,
        translation: 'Number'
      }
    ]
  },
  {
    spkTimestamp: 1623887260000,
    description: 'Ambient Temperature',
    haclCode: '0430',
    source: 'AC1',
    containers: [
      {
        propertyName: 'Coefficient',
        tId: '1',
        group: 0,
        numberValue: 77,
        translation: 'Coefficient'
      },
      {
        propertyName: 'Exponent',
        tId: '3',
        group: 0,
        numberValue: 0,
        translation: 'Exponent'
      },
      {
        propertyName: 'Unit',
        tId: '0',
        group: 0,
        numberValue: 1,
        translation: 'Unit'
      }
    ]
  },
  {
    stringValue: '950133021',
    spkTimestamp: 1605338198000,
    description: 'Appliance PNC',
    haclCode: '0007',
    source: 'AC1',
    containers: []
  },
  {
    numberValue: 2,
    stringValue: 'Running',
    spkTimestamp: 1623887214000,
    description: 'Appliance State',
    haclCode: '0401',
    source: 'AC1',
    containers: []
  },
  {
    numberValue: 1,
    stringValue: 'On',
    spkTimestamp: 1623887230000,
    description: 'Compressor State',
    haclCode: '04A1',
    source: 'AC1',
    containers: []
  },
  {
    stringValue: '90220223',
    spkTimestamp: 1605338200000,
    description: 'Appliance Serial Number',
    haclCode: '0002',
    source: 'AC1',
    containers: []
  },
  {
    numberValue: 0,
    stringValue: 'Off',
    spkTimestamp: 1606151648000,
    description: 'Sleep Mode',
    haclCode: '0428',
    source: 'AC1',
    containers: []
  },
  {
    spkTimestamp: 1623887214000,
    description: 'Target Temperature',
    haclCode: '0432',
    source: 'AC1',
    containers: [
      {
        propertyName: 'Coefficient',
        tId: '1',
        group: 0,
        numberValue: 72,
        translation: 'Coefficient'
      },
      {
        propertyName: 'Exponent',
        tId: '3',
        group: 0,
        numberValue: 0,
        translation: 'Exponent'
      },
      {
        propertyName: 'Unit',
        tId: '0',
        group: 0,
        numberValue: 1,
        translation: 'Unit'
      }
    ]
  },
  {
    numberValue: 1,
    stringValue: 'Fahrenheit',
    spkTimestamp: 1623214498000,
    description: 'Temperature Representation',
    haclCode: '0420',
    source: 'AC1',
    containers: []
  },
  {
    numberValue: 4,
    stringValue: 'Economy',
    spkTimestamp: 1623887214000,
    description: 'AC-Mode',
    haclCode: '1000',
    source: 'AC1',
    containers: []
  },
  {
    stringValue: 'v5.2.1rc1',
    spkTimestamp: 1605338196000,
    description: 'Connectivity Node SW version',
    haclCode: '0011',
    source: 'NIU',
    containers: []
  },
  {
    numberValue: 0,
    stringValue: 'Idle',
    spkTimestamp: 1608054983000,
    description: 'NIU FW Update State',
    haclCode: '0060',
    source: 'NIU',
    containers: []
  },
  {
    numberValue: 5,
    stringValue: 'Excellent',
    spkTimestamp: 1623822283000,
    description: 'Link Quality Indicator',
    haclCode: '0032',
    source: 'NIU',
    containers: []
  },
  {
    stringValue: 'F8A2D6244323',
    spkTimestamp: 1605338196000,
    description: 'MAC Address',
    haclCode: '0030',
    source: 'NIU',
    containers: []
  },
  {
    spkTimestamp: 1606151649000,
    description: 'NIU Alert Event',
    haclCode: '0473',
    source: 'NIU',
    containers: [
      {
        propertyName: 'Number',
        tId: '0',
        group: 0,
        numberValue: 0,
        translation: 'Number'
      }
    ]
  },
  {
    stringValue: 'Mercury',
    spkTimestamp: 1608054983000,
    description: 'Network Name',
    haclCode: '0070',
    source: 'NIU',
    containers: []
  },
  {
    stringValue: 'S00005666A',
    spkTimestamp: 1605338196000,
    description: 'Undefined',
    haclCode: '00C1',
    source: 'NIU',
    containers: []
  },
  {
    stringValue: 'connect',
    spkTimestamp: 1623801866003,
    description: 'ConnectivityState',
    haclCode: '0000',
    source: 'APL',
    containers: []
  }
]
karlg100 commented 3 years ago

outstanding! Thanks! working on a fix.... I may just end up testing for the attribute, which means you'll have the slider show up in the home app.. but it just won't do anything

amaisano commented 3 years ago

Great to hear. Yeah if you were grep'ing for Clean it may have picked up that Clean Filter flag instead of the actual Clear Air flag. Either way, if you need to do any synchronous chat with me, I'm in the Homebridge Discord server.

karlg100 commented 3 years ago

Fixed! update the lib/frigidaire.js again, and restart homebridge.

We're not testing on the text via a grep style pattern match... more checking the attribute ID number. We've mapped out the ones we know about (and care about) in the lib/frigidaire.js. Just happens, apparently, there's models that don't have all the same attributes. (first time I've seen that)

Also please post like you did before if things hang again. I added self destruct for calls that never complete because telemetry isn't updating. But I suspect that the timer is getting killed for some reason. In theory, the timer should fire even if one call fails... but seems this may not be the case. We'll see. going to run the latest bleeding code overnight and the next few days and see what happens.

amaisano commented 3 years ago

Control is working. All my debug from before today's updates are gone FYI - I used to get a lot of feedback on what was going on, but all seems to be working.

Have these warnings though, repeating:

Starting to advertise 'Homebridge Climate 0E9A' using bonjour-hap backend!
[6/16/2021, 9:46:21 PM] Homebridge v1.3.4 (Homebridge Climate) is running on port 53448.
[6/16/2021, 9:46:22 PM] [homebridge-frigidaire] This plugin generated a warning from the characteristic 'On': characteristic value expected boolean and received undefined. See https://git.io/JtMGR for more info.
[6/16/2021, 9:46:22 PM] [homebridge-frigidaire] Error: 
    at On.Characteristic.characteristicWarning (/usr/local/lib/node_modules/homebridge/node_modules/hap-nodejs/src/lib/Characteristic.ts:2038:105)
    at On.Characteristic.validateUserInput (/usr/local/lib/node_modules/homebridge/node_modules/hap-nodejs/src/lib/Characteristic.ts:1915:14)
    at /usr/local/lib/node_modules/homebridge/node_modules/hap-nodejs/src/lib/Characteristic.ts:1533:24
    at /usr/local/lib/node_modules/homebridge/node_modules/hap-nodejs/src/lib/util/once.ts:9:18
    at /homebridge/node_modules/homebridge-frigidaire/index.js:177:7
    at Frigidaire.getCleanAir (/homebridge/node_modules/homebridge-frigidaire/node_modules/frigidaire/lib/frigidaire.js:1069:10)
    at Timeout._onTimeout (/homebridge/node_modules/homebridge-frigidaire/node_modules/frigidaire/lib/frigidaire.js:1062:47)
    at listOnTimeout (internal/timers.js:555:17)
    at processTimers (internal/timers.js:498:7)
amaisano commented 3 years ago

...aaand it's gone (AC to null and can't control). Two chunks of code here. The errors, followed by demo.js output:

getCleanAir() - max retries exceeded
getRoomTemp() - max retries exceeded
getRoomTemp() - max retries exceeded
getMode() - max retries exceeded
getUnit() - max retries exceeded
getFanMode() - max retries exceeded
getCoolingState() - max retries exceeded
getFanMode() - max retries exceeded
getTemp() - max retries exceeded
getUnit() - max retries exceeded
getTemp() - max retries exceeded
getCoolingState() - max retries exceeded
getMode() - max retries exceeded
getRoomTemp() - max retries exceeded
getUnit() - max retries exceeded
getFanMode() - max retries exceeded
getMode() - max retries exceeded
getCoolingState() - max retries exceeded
getTemp() - max retries exceeded
mode() - max retries exceeded
getTemp() - max retries exceeded
getUnit() - max retries exceeded
getFanMode() - max retries exceeded
getCoolingState() - max retries exceeded
getCleanAir() - max retries exceeded
getMode() - max retries exceeded
[6/16/2021, 9:59:12 PM] [homebridge-frigidaire] This plugin slows down Homebridge. The read handler for the characteristic 'Current Heating Cooling State' was slow to respond! See https://git.io/JtMGR for more info.
[6/16/2021, 9:59:12 PM] [homebridge-frigidaire] This plugin slows down Homebridge. The read handler for the characteristic 'Target Heating Cooling State' was slow to respond! See https://git.io/JtMGR for more info.
[6/16/2021, 9:59:12 PM] [homebridge-frigidaire] This plugin slows down Homebridge. The read handler for the characteristic 'Current Temperature' was slow to respond! See https://git.io/JtMGR for more info.
[6/16/2021, 9:59:12 PM] [homebridge-frigidaire] This plugin slows down Homebridge. The read handler for the characteristic 'Target Temperature' was slow to respond! See https://git.io/JtMGR for more info.
[6/16/2021, 9:59:12 PM] [homebridge-frigidaire] This plugin slows down Homebridge. The read handler for the characteristic 'Temperature Display Units' was slow to respond! See https://git.io/JtMGR for more info.
[6/16/2021, 9:59:12 PM] [homebridge-frigidaire] This plugin slows down Homebridge. The read handler for the characteristic 'Rotation Speed' was slow to respond! See https://git.io/JtMGR for more info.
[6/16/2021, 9:59:12 PM] [homebridge-frigidaire] This plugin slows down Homebridge. The read handler for the characteristic 'On' was slow to respond! See https://git.io/JtMGR for more info.
getRoomTemp() - max retries exceeded
getCoolingState() - max retries exceeded
getUnit() - max retries exceeded
getFanMode() - max retries exceeded
getMode() - max retries exceeded
getRoomTemp() - max retries exceeded
getTemp() - max retries exceeded
getMode() - max retries exceeded
[6/16/2021, 9:59:18 PM] [homebridge-frigidaire] This plugin slows down Homebridge. The read handler for the characteristic 'Current Heating Cooling State' didn't respond at all!. Please check that you properly call the callback! See https://git.io/JtMGR for more info.
[6/16/2021, 9:59:18 PM] [homebridge-frigidaire] This plugin slows down Homebridge. The read handler for the characteristic 'Target Heating Cooling State' didn't respond at all!. Please check that you properly call the callback! See https://git.io/JtMGR for more info.
[6/16/2021, 9:59:18 PM] [homebridge-frigidaire] This plugin slows down Homebridge. The read handler for the characteristic 'Current Temperature' didn't respond at all!. Please check that you properly call the callback! See https://git.io/JtMGR for more info.
[6/16/2021, 9:59:18 PM] [homebridge-frigidaire] This plugin slows down Homebridge. The read handler for the characteristic 'Target Temperature' didn't respond at all!. Please check that you properly call the callback! See https://git.io/JtMGR for more info.
[6/16/2021, 9:59:18 PM] [homebridge-frigidaire] This plugin slows down Homebridge. The read handler for the characteristic 'Temperature Display Units' didn't respond at all!. Please check that you properly call the callback! See https://git.io/JtMGR for more info.
[6/16/2021, 9:59:18 PM] [homebridge-frigidaire] This plugin slows down Homebridge. The read handler for the characteristic 'Rotation Speed' didn't respond at all!. Please check that you properly call the callback! See https://git.io/JtMGR for more info.
[6/16/2021, 9:59:18 PM] [homebridge-frigidaire] This plugin slows down Homebridge. The read handler for the characteristic 'On' didn't respond at all!. Please check that you properly call the callback! See https://git.io/JtMGR for more info.

And demo.js:

/homebridge # cd /homebridge/node_modules/homebridge-frigidaire/node_modules/frigidaire
/homebridge/node_modules/homebridge-frigidaire/node_modules/frigidaire # node demo.js 90220223 get
starting up
Got Telem
[
  {
    numberValue: 0,
    stringValue: 'Good',
    spkTimestamp: 1621797900000,
    description: 'AC-Clean Filter Alert',
    haclCode: '1021',
    source: 'AC1',
    containers: []
  },
  {
    numberValue: 46830,
    spkTimestamp: 1623894417000,
    description: 'AC-Compressor Cooling Runtime',
    haclCode: '1030',
    source: 'AC1',
    containers: []
  },
  {
    numberValue: 7,
    stringValue: 'Auto',
    spkTimestamp: 1623794297000,
    description: 'AC-Fan Speed Setting',
    haclCode: '1002',
    source: 'AC1',
    containers: []
  },
  {
    numberValue: 0,
    spkTimestamp: 1606151648000,
    description: 'AC-Scheduler Event Count',
    haclCode: '1052',
    source: 'AC1',
    containers: []
  },
  {
    stringValue: '0000000000000000',
    spkTimestamp: 1606151648000,
    description: 'AC-Scheduler Event Friday',
    haclCode: '1058',
    source: 'AC1',
    containers: []
  },
  {
    stringValue: '0000000000000000',
    spkTimestamp: 1606151648000,
    description: 'AC-Scheduler Event Monday',
    haclCode: '1054',
    source: 'AC1',
    containers: []
  },
  {
    stringValue: '000000000000000000',
    spkTimestamp: 1606151648000,
    description: 'AC-Scheduler Event One Time',
    haclCode: '105A',
    source: 'AC1',
    containers: []
  },
  {
    stringValue: '0000000000000000',
    spkTimestamp: 1606151648000,
    description: 'AC-Scheduler Event Saturday',
    haclCode: '1059',
    source: 'AC1',
    containers: []
  },
  {
    stringValue: '0000000000000000',
    spkTimestamp: 1606151648000,
    description: 'AC-Scheduler Event Sunday',
    haclCode: '1053',
    source: 'AC1',
    containers: []
  },
  {
    stringValue: '0000000000000000',
    spkTimestamp: 1606151648000,
    description: 'AC-Scheduler Event Thursday',
    haclCode: '1057',
    source: 'AC1',
    containers: []
  },
  {
    stringValue: '0000000000000000',
    spkTimestamp: 1606151648000,
    description: 'AC-Scheduler Event Tuesday',
    haclCode: '1055',
    source: 'AC1',
    containers: []
  },
  {
    stringValue: '0000000000000000',
    spkTimestamp: 1606151648000,
    description: 'AC-Scheduler Event Wednesday',
    haclCode: '1056',
    source: 'AC1',
    containers: []
  },
  {
    numberValue: 0,
    stringValue: 'Off',
    spkTimestamp: 1606151648000,
    description: 'AC-Scheduler Mode',
    haclCode: '1050',
    source: 'AC1',
    containers: []
  },
  {
    spkTimestamp: 1623895007,
    description: 'Alert Event',
    haclCode: '0470',
    source: 'AC1',
    containers: [
      {
        propertyName: 'Number',
        tId: '0',
        group: 0,
        numberValue: 0,
        translation: 'Number'
      }
    ]
  },
  {
    spkTimestamp: 1623895007000,
    description: 'Ambient Temperature',
    haclCode: '0430',
    source: 'AC1',
    containers: [
      {
        propertyName: 'Coefficient',
        tId: '1',
        group: 0,
        numberValue: 75,
        translation: 'Coefficient'
      },
      {
        propertyName: 'Exponent',
        tId: '3',
        group: 0,
        numberValue: 0,
        translation: 'Exponent'
      },
      {
        propertyName: 'Unit',
        tId: '0',
        group: 0,
        numberValue: 1,
        translation: 'Unit'
      }
    ]
  },
  {
    stringValue: '950133021',
    spkTimestamp: 1605338198000,
    description: 'Appliance PNC',
    haclCode: '0007',
    source: 'AC1',
    containers: []
  },
  {
    numberValue: 2,
    stringValue: 'Running',
    spkTimestamp: 1623894426000,
    description: 'Appliance State',
    haclCode: '0401',
    source: 'AC1',
    containers: []
  },
  {
    numberValue: 1,
    stringValue: 'On',
    spkTimestamp: 1623894596000,
    description: 'Compressor State',
    haclCode: '04A1',
    source: 'AC1',
    containers: []
  },
  {
    stringValue: '90220223',
    spkTimestamp: 1605338200000,
    description: 'Appliance Serial Number',
    haclCode: '0002',
    source: 'AC1',
    containers: []
  },
  {
    numberValue: 0,
    stringValue: 'Off',
    spkTimestamp: 1606151648000,
    description: 'Sleep Mode',
    haclCode: '0428',
    source: 'AC1',
    containers: []
  },
  {
    spkTimestamp: 1623887214000,
    description: 'Target Temperature',
    haclCode: '0432',
    source: 'AC1',
    containers: [
      {
        propertyName: 'Coefficient',
        tId: '1',
        group: 0,
        numberValue: 72,
        translation: 'Coefficient'
      },
      {
        propertyName: 'Exponent',
        tId: '3',
        group: 0,
        numberValue: 0,
        translation: 'Exponent'
      },
      {
        propertyName: 'Unit',
        tId: '0',
        group: 0,
        numberValue: 1,
        translation: 'Unit'
      }
    ]
  },
  {
    numberValue: 1,
    stringValue: 'Fahrenheit',
    spkTimestamp: 1623214498000,
    description: 'Temperature Representation',
    haclCode: '0420',
    source: 'AC1',
    containers: []
  },
  {
    numberValue: 4,
    stringValue: 'Economy',
    spkTimestamp: 1623894426000,
    description: 'AC-Mode',
    haclCode: '1000',
    source: 'AC1',
    containers: []
  },
  {
    stringValue: 'v5.2.1rc1',
    spkTimestamp: 1605338196000,
    description: 'Connectivity Node SW version',
    haclCode: '0011',
    source: 'NIU',
    containers: []
  },
  {
    numberValue: 0,
    stringValue: 'Idle',
    spkTimestamp: 1608054983000,
    description: 'NIU FW Update State',
    haclCode: '0060',
    source: 'NIU',
    containers: []
  },
  {
    numberValue: 5,
    stringValue: 'Excellent',
    spkTimestamp: 1623822283000,
    description: 'Link Quality Indicator',
    haclCode: '0032',
    source: 'NIU',
    containers: []
  },
  {
    stringValue: 'F8A2D6244323',
    spkTimestamp: 1605338196000,
    description: 'MAC Address',
    haclCode: '0030',
    source: 'NIU',
    containers: []
  },
  {
    spkTimestamp: 1606151649000,
    description: 'NIU Alert Event',
    haclCode: '0473',
    source: 'NIU',
    containers: [
      {
        propertyName: 'Number',
        tId: '0',
        group: 0,
        numberValue: 0,
        translation: 'Number'
      }
    ]
  },
  {
    stringValue: 'Mercury',
    spkTimestamp: 1608054983000,
    description: 'Network Name',
    haclCode: '0070',
    source: 'NIU',
    containers: []
  },
  {
    stringValue: 'S00005666A',
    spkTimestamp: 1605338196000,
    description: 'Undefined',
    haclCode: '00C1',
    source: 'NIU',
    containers: []
  },
  {
    stringValue: 'connect',
    spkTimestamp: 1623801866003,
    description: 'ConnectivityState',
    haclCode: '0000',
    source: 'APL',
    containers: []
  }
]
amaisano commented 3 years ago

Bonus errors on a restart:

Starting to advertise 'Homebridge Climate 0E9A' using bonjour-hap backend!
[6/16/2021, 10:07:02 PM] Homebridge v1.3.4 (Homebridge Climate) is running on port 53448.
[6/16/2021, 10:07:04 PM] TypeError: Cannot read property 'forEach' of null
    at /homebridge/node_modules/homebridge-frigidaire/node_modules/frigidaire/lib/frigidaire.js:501:30
    at /homebridge/node_modules/homebridge-frigidaire/node_modules/frigidaire/lib/frigidaire.js:782:21
    at Request._callback (/homebridge/node_modules/homebridge-frigidaire/node_modules/frigidaire/lib/frigidaire.js:237:25)
    at self.callback (/homebridge/node_modules/homebridge-frigidaire/node_modules/request/request.js:185:22)
    at Request.emit (events.js:376:20)
    at Request.onRequestError (/homebridge/node_modules/homebridge-frigidaire/node_modules/request/request.js:877:8)
    at ClientRequest.emit (events.js:376:20)
    at TLSSocket.socketErrorListener (_http_client.js:475:9)
    at TLSSocket.emit (events.js:376:20)
    at emitErrorNT (internal/streams/destroy.js:106:8)
[6/16/2021, 10:07:04 PM] Got SIGTERM, shutting down Homebridge...
[6/16/2021, 10:07:09 PM] [HB Supervisor] Homebridge Process Ended. Code: 143, Signal: null
[6/16/2021, 10:10:29 PM] Homebridge v1.3.4 (Homebridge Climate) is running on port 53448.
[6/16/2021, 10:10:30 PM] [homebridge-frigidaire] This plugin generated a warning from the characteristic 'On': characteristic value expected boolean and received undefined. See https://git.io/JtMGR for more info.
[6/16/2021, 10:10:30 PM] [homebridge-frigidaire] Error: 
    at On.Characteristic.characteristicWarning (/usr/local/lib/node_modules/homebridge/node_modules/hap-nodejs/src/lib/Characteristic.ts:2038:105)
    at On.Characteristic.validateUserInput (/usr/local/lib/node_modules/homebridge/node_modules/hap-nodejs/src/lib/Characteristic.ts:1915:14)
    at /usr/local/lib/node_modules/homebridge/node_modules/hap-nodejs/src/lib/Characteristic.ts:1533:24
    at /usr/local/lib/node_modules/homebridge/node_modules/hap-nodejs/src/lib/util/once.ts:9:18
    at /homebridge/node_modules/homebridge-frigidaire/index.js:177:7
    at Frigidaire.getCleanAir (/homebridge/node_modules/homebridge-frigidaire/node_modules/frigidaire/lib/frigidaire.js:1069:10)
    at FrigidaireAirConditionerAccessory.getCleanAir (/homebridge/node_modules/homebridge-frigidaire/index.js:171:13)
    at On.emit (events.js:376:20)
    at /usr/local/lib/node_modules/homebridge/node_modules/hap-nodejs/src/lib/Characteristic.ts:1508:14
    at new Promise (<anonymous>)
karlg100 commented 3 years ago

Use DEBUG=Frigidaire:* instead. This way both plug-in debug can be enabled at the same time.

If you can, put the same error below with the lines leading up to it with the above DEBUG enabled.

Karl Grindley

On Jun 16, 2021, at 9:49 PM, Adamo Maisano @.***> wrote:

 Control is working. All my debug from before today's updates are gone FYI - I used to get a lot of feedback on what was going on, but all seems to be working.

Have these warnings though, repeating:

Starting to advertise 'Homebridge Climate 0E9A' using bonjour-hap backend! [6/16/2021, 9:46:21 PM] Homebridge v1.3.4 (Homebridge Climate) is running on port 53448. [6/16/2021, 9:46:22 PM] [homebridge-frigidaire] This plugin generated a warning from the characteristic 'On': characteristic value expected boolean and received undefined. See https://git.io/JtMGR for more info. [6/16/2021, 9:46:22 PM] [homebridge-frigidaire] Error: at On.Characteristic.characteristicWarning (/usr/local/lib/node_modules/homebridge/node_modules/hap-nodejs/src/lib/Characteristic.ts:2038:105) at On.Characteristic.validateUserInput (/usr/local/lib/node_modules/homebridge/node_modules/hap-nodejs/src/lib/Characteristic.ts:1915:14) at /usr/local/lib/node_modules/homebridge/node_modules/hap-nodejs/src/lib/Characteristic.ts:1533:24 at /usr/local/lib/node_modules/homebridge/node_modules/hap-nodejs/src/lib/util/once.ts:9:18 at /homebridge/node_modules/homebridge-frigidaire/index.js:177:7 at Frigidaire.getCleanAir (/homebridge/node_modules/homebridge-frigidaire/node_modules/frigidaire/lib/frigidaire.js:1069:10) at Timeout._onTimeout (/homebridge/node_modules/homebridge-frigidaire/node_modules/frigidaire/lib/frigidaire.js:1062:47) at listOnTimeout (internal/timers.js:555:17) at processTimers (internal/timers.js:498:7) — You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub, or unsubscribe.

amaisano commented 3 years ago
6/16/2021, 10:20:15 PM] [HB Supervisor] OS: Linux 5.4.83-v7l arm
[6/16/2021, 10:20:15 PM] [HB Supervisor] Node.js v14.17.0 /usr/local/bin/node
[6/16/2021, 10:20:15 PM] [HB Supervisor] Homebridge Path: /usr/local/lib/node_modules/homebridge/bin/homebridge
[6/16/2021, 10:20:15 PM] [HB Supervisor] UI Path: /usr/local/lib/node_modules/homebridge-config-ui-x/dist/bin/standalone.js
[6/16/2021, 10:20:20 PM] [Homebridge UI] Homebridge Config UI X v4.41.1 is listening on :: port XXXX
[6/16/2021, 10:20:20 PM] [HB Supervisor] Starting Homebridge with extra flags: -I -P /homebridge/node_modules -D
[6/16/2021, 10:20:20 PM] [HB Supervisor] Starting Homebridge with custom env: {"DEBUG":"Frigidaire:*"}
[6/16/2021, 10:20:21 PM] [HB Supervisor] Started Homebridge v1.3.4 with PID: 3109
Initializing HAP-NodeJS v0.9.4...
[6/16/2021, 10:20:22 PM] Loaded config.json with 0 accessories and 2 platforms.
[6/16/2021, 10:20:22 PM] Loaded 0 cached accessories from cachedAccessories.
[6/16/2021, 10:20:22 PM] ---
[6/16/2021, 10:20:23 PM] Warning: skipping plugin found at '/usr/local/lib/node_modules/homebridge-frigidaire' since we already loaded the same plugin from '/homebridge/node_modules/homebridge-frigidaire'.
[6/16/2021, 10:20:23 PM] Loaded plugin: homebridge-dummy@0.5.0
[6/16/2021, 10:20:23 PM] Registering accessory 'homebridge-dummy.DummySwitch'
[6/16/2021, 10:20:23 PM] ---
[6/16/2021, 10:20:24 PM] Loaded plugin: homebridge-frigidaire@2.0.0
[6/16/2021, 10:20:24 PM] Registering platform 'homebridge-frigidaire.Frigidaire'
[6/16/2021, 10:20:24 PM] ---
[6/16/2021, 10:20:24 PM] Loaded plugin: homebridge-config-ui-x@4.41.1
[6/16/2021, 10:20:24 PM] Registering platform 'homebridge-config-ui-x.config'
[6/16/2021, 10:20:24 PM] ---
[6/16/2021, 10:20:24 PM] Loading 2 platforms...
[6/16/2021, 10:20:24 PM] [Config] Initializing config platform...
[6/16/2021, 10:20:24 PM] [Config] Running in Service Mode
[6/16/2021, 10:20:24 PM] [Frigidaire] Initializing Frigidaire platform...
Serial number provided, only setting up one accessory...
Found device specified!
creating accessory for AC unit labeled: Office AC (90220223-XXXXXXXXXXXX)
[6/16/2021, 10:20:27 PM] Initializing platform accessory 'Office AC'...
Preparing Advertiser for 'Homebridge Climate 917F' using bonjour-hap backend!
Setup Payload:
X-HM://XXXXXXXXXXX
Enter this code with your HomeKit app on your iOS device to pair with Homebridge:

    ┌────────────┐     
    │ XXX-XX-XXX │     
    └────────────┘     

Starting to advertise 'Homebridge Climate 917F' using bonjour-hap backend!
[6/16/2021, 10:20:27 PM] Homebridge v1.3.4 (Homebridge Climate) is running on port 53448.
[6/16/2021, 10:20:28 PM] [homebridge-frigidaire] This plugin generated a warning from the characteristic 'On': characteristic value expected boolean and received undefined. See https://git.io/JtMGR for more info.
[6/16/2021, 10:20:28 PM] [homebridge-frigidaire] Error: 
    at On.Characteristic.characteristicWarning (/usr/local/lib/node_modules/homebridge/node_modules/hap-nodejs/src/lib/Characteristic.ts:2038:105)
    at On.Characteristic.validateUserInput (/usr/local/lib/node_modules/homebridge/node_modules/hap-nodejs/src/lib/Characteristic.ts:1915:14)
    at /usr/local/lib/node_modules/homebridge/node_modules/hap-nodejs/src/lib/Characteristic.ts:1533:24
    at /usr/local/lib/node_modules/homebridge/node_modules/hap-nodejs/src/lib/util/once.ts:9:18
    at /homebridge/node_modules/homebridge-frigidaire/index.js:177:7
    at Frigidaire.getCleanAir (/homebridge/node_modules/homebridge-frigidaire/node_modules/frigidaire/lib/frigidaire.js:1069:10)
    at FrigidaireAirConditionerAccessory.getCleanAir (/homebridge/node_modules/homebridge-frigidaire/index.js:171:13)
    at On.emit (events.js:376:20)
    at /usr/local/lib/node_modules/homebridge/node_modules/hap-nodejs/src/lib/Characteristic.ts:1508:14
    at new Promise (<anonymous>)
karlg100 commented 3 years ago

I’ve pushed another update. Wrapped the JSON parser to try to detect a null value. Also now the clean air toggle is a global on/off config. It’ll default to off unless explicitly enabled.

We’ll see if we find more issues where data returned from the server side trips up the module. Please update both js files and see what happens.

On Jun 16, 2021, at 10:23 PM, Adamo Maisano @.***> wrote:

6/16/2021, 10:20:15 PM] [HB Supervisor] OS: Linux 5.4.83-v7l arm [6/16/2021, 10:20:15 PM] [HB Supervisor] Node.js v14.17.0 /usr/local/bin/node [6/16/2021, 10:20:15 PM] [HB Supervisor] Homebridge Path: /usr/local/lib/node_modules/homebridge/bin/homebridge [6/16/2021, 10:20:15 PM] [HB Supervisor] UI Path: /usr/local/lib/node_modules/homebridge-config-ui-x/dist/bin/standalone.js [6/16/2021, 10:20:20 PM] [Homebridge UI] Homebridge Config UI X v4.41.1 is listening on :: port XXXX [6/16/2021, 10:20:20 PM] [HB Supervisor] Starting Homebridge with extra flags: -I -P /homebridge/node_modules -D [6/16/2021, 10:20:20 PM] [HB Supervisor] Starting Homebridge with custom env: {"DEBUG":"Frigidaire:*"} [6/16/2021, 10:20:21 PM] [HB Supervisor] Started Homebridge v1.3.4 with PID: 3109 Initializing HAP-NodeJS v0.9.4... [6/16/2021, 10:20:22 PM] Loaded config.json with 0 accessories and 2 platforms. [6/16/2021, 10:20:22 PM] Loaded 0 cached accessories from cachedAccessories. [6/16/2021, 10:20:22 PM] --- [6/16/2021, 10:20:23 PM] Warning: skipping plugin found at '/usr/local/lib/node_modules/homebridge-frigidaire' since we already loaded the same plugin from '/homebridge/node_modules/homebridge-frigidaire'. [6/16/2021, 10:20:23 PM] Loaded plugin: @. [6/16/2021, 10:20:23 PM] Registering accessory 'homebridge-dummy.DummySwitch' [6/16/2021, 10:20:23 PM] --- [6/16/2021, 10:20:24 PM] Loaded plugin: @. [6/16/2021, 10:20:24 PM] Registering platform 'homebridge-frigidaire.Frigidaire' [6/16/2021, 10:20:24 PM] --- [6/16/2021, 10:20:24 PM] Loaded plugin: @.*** [6/16/2021, 10:20:24 PM] Registering platform 'homebridge-config-ui-x.config' [6/16/2021, 10:20:24 PM] --- [6/16/2021, 10:20:24 PM] Loading 2 platforms... [6/16/2021, 10:20:24 PM] [Config] Initializing config platform... [6/16/2021, 10:20:24 PM] [Config] Running in Service Mode [6/16/2021, 10:20:24 PM] [Frigidaire] Initializing Frigidaire platform... Serial number provided, only setting up one accessory... Found device specified! creating accessory for AC unit labeled: Office AC (90220223-XXXXXXXXXXXX) [6/16/2021, 10:20:27 PM] Initializing platform accessory 'Office AC'... Preparing Advertiser for 'Homebridge Climate 917F' using bonjour-hap backend! Setup Payload: X-HM://XXXXXXXXXXX Enter this code with your HomeKit app on your iOS device to pair with Homebridge:

┌────────────┐     
│ XXX-XX-XXX │     
└────────────┘     

Starting to advertise 'Homebridge Climate 917F' using bonjour-hap backend! [6/16/2021, 10:20:27 PM] Homebridge v1.3.4 (Homebridge Climate) is running on port 53448. [6/16/2021, 10:20:28 PM] [homebridge-frigidaire] This plugin generated a warning from the characteristic 'On': characteristic value expected boolean and received undefined. See https://git.io/JtMGR for more info. [6/16/2021, 10:20:28 PM] [homebridge-frigidaire] Error: at On.Characteristic.characteristicWarning (/usr/local/lib/node_modules/homebridge/node_modules/hap-nodejs/src/lib/Characteristic.ts:2038:105) at On.Characteristic.validateUserInput (/usr/local/lib/node_modules/homebridge/node_modules/hap-nodejs/src/lib/Characteristic.ts:1915:14) at /usr/local/lib/node_modules/homebridge/node_modules/hap-nodejs/src/lib/Characteristic.ts:1533:24 at /usr/local/lib/node_modules/homebridge/node_modules/hap-nodejs/src/lib/util/once.ts:9:18 at /homebridge/node_modules/homebridge-frigidaire/index.js:177:7 at Frigidaire.getCleanAir (/homebridge/node_modules/homebridge-frigidaire/node_modules/frigidaire/lib/frigidaire.js:1069:10) at FrigidaireAirConditionerAccessory.getCleanAir (/homebridge/node_modules/homebridge-frigidaire/index.js:171:13) at On.emit (events.js:376:20) at /usr/local/lib/node_modules/homebridge/node_modules/hap-nodejs/src/lib/Characteristic.ts:1508:14 at new Promise () — You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/karlg100/homebridge-frigidaire/issues/32#issuecomment-862865117, or unsubscribe https://github.com/notifications/unsubscribe-auth/AA4SB5YX3VXW46ZCRLXLWDTTTFMANANCNFSM46VE4XYQ.

amaisano commented 3 years ago

With all the latest packages/commits:

[6/17/2021, 5:58:24 PM] [HB Supervisor] Restarting Homebridge...
[6/17/2021, 5:58:24 PM] [HB Supervisor] Starting Homebridge with extra flags: -I -P /homebridge/node_modules -D
[6/17/2021, 5:58:24 PM] [HB Supervisor] Starting Homebridge with custom env: {"DEBUG":"Frigidaire:*"}
[6/17/2021, 5:58:24 PM] [HB Supervisor] Started Homebridge v1.3.4 with PID: 13987
Initializing HAP-NodeJS v0.9.4...
[6/17/2021, 5:58:25 PM] Loaded config.json with 0 accessories and 2 platforms.
[6/17/2021, 5:58:25 PM] Loaded 0 cached accessories from cachedAccessories.
[6/17/2021, 5:58:25 PM] ---
[6/17/2021, 5:58:27 PM] Warning: skipping plugin found at '/usr/local/lib/node_modules/homebridge-frigidaire' since we already loaded the same plugin from '/homebridge/node_modules/homebridge-frigidaire'.
[6/17/2021, 5:58:27 PM] Loaded plugin: homebridge-dummy@0.5.0
[6/17/2021, 5:58:27 PM] Registering accessory 'homebridge-dummy.DummySwitch'
[6/17/2021, 5:58:27 PM] ---
[6/17/2021, 5:58:28 PM] Loaded plugin: homebridge-frigidaire@2.1.0
[6/17/2021, 5:58:28 PM] Registering platform 'homebridge-frigidaire.Frigidaire'
[6/17/2021, 5:58:28 PM] ---
[6/17/2021, 5:58:28 PM] Loaded plugin: homebridge-config-ui-x@4.41.1
[6/17/2021, 5:58:28 PM] Registering platform 'homebridge-config-ui-x.config'
[6/17/2021, 5:58:28 PM] ---
[6/17/2021, 5:58:28 PM] Loading 2 platforms...
[6/17/2021, 5:58:28 PM] [Config] Initializing config platform...
[6/17/2021, 5:58:28 PM] [Config] Running in Service Mode
[6/17/2021, 5:58:28 PM] [Frigidaire] Initializing Frigidaire platform...
Serial number provided, only setting up one accessory...
Found device specified!
creating accessory for AC unit labeled: Office AC (90220223-XXXXXXXXXX)
[6/17/2021, 5:58:29 PM] Initializing platform accessory 'Office AC'...
Preparing Advertiser for 'Homebridge Climate 917F' using bonjour-hap backend!
Setup Payload:
X-HM://XXXXXXXXXX
Enter this code with your HomeKit app on your iOS device to pair with Homebridge:

    ┌────────────┐     
    │ XXX-XX-XXX │     
    └────────────┘     

Starting to advertise 'Homebridge Climate 917F' using bonjour-hap backend!
[6/17/2021, 5:58:30 PM] Homebridge v1.3.4 (Homebridge Climate) is running on port 53448.
getTemp() - max retries exceeded
getUnit() - max retries exceeded
getMode() - max retries exceeded
getCoolingState() - max retries exceeded
getFanMode() - max retries exceeded
getRoomTemp() - max retries exceeded
[6/17/2021, 5:58:34 PM] [homebridge-frigidaire] This plugin slows down Homebridge. The read handler for the characteristic 'Current Heating Cooling State' was slow to respond! See https://git.io/JtMGR for more info.
[6/17/2021, 5:58:34 PM] [homebridge-frigidaire] This plugin slows down Homebridge. The read handler for the characteristic 'Target Heating Cooling State' was slow to respond! See https://git.io/JtMGR for more info.
[6/17/2021, 5:58:34 PM] [homebridge-frigidaire] This plugin slows down Homebridge. The read handler for the characteristic 'Current Temperature' was slow to respond! See https://git.io/JtMGR for more info.
[6/17/2021, 5:58:34 PM] [homebridge-frigidaire] This plugin slows down Homebridge. The read handler for the characteristic 'Target Temperature' was slow to respond! See https://git.io/JtMGR for more info.
[6/17/2021, 5:58:34 PM] [homebridge-frigidaire] This plugin slows down Homebridge. The read handler for the characteristic 'Temperature Display Units' was slow to respond! See https://git.io/JtMGR for more info.
[6/17/2021, 5:58:34 PM] [homebridge-frigidaire] This plugin slows down Homebridge. The read handler for the characteristic 'Rotation Speed' was slow to respond! See https://git.io/JtMGR for more info.
[6/17/2021, 5:58:40 PM] [homebridge-frigidaire] This plugin slows down Homebridge. The read handler for the characteristic 'Current Heating Cooling State' didn't respond at all!. Please check that you properly call the callback! See https://git.io/JtMGR for more info.
[6/17/2021, 5:58:40 PM] [homebridge-frigidaire] This plugin slows down Homebridge. The read handler for the characteristic 'Target Heating Cooling State' didn't respond at all!. Please check that you properly call the callback! See https://git.io/JtMGR for more info.
[6/17/2021, 5:58:40 PM] [homebridge-frigidaire] This plugin slows down Homebridge. The read handler for the characteristic 'Current Temperature' didn't respond at all!. Please check that you properly call the callback! See https://git.io/JtMGR for more info.
[6/17/2021, 5:58:40 PM] [homebridge-frigidaire] This plugin slows down Homebridge. The read handler for the characteristic 'Target Temperature' didn't respond at all!. Please check that you properly call the callback! See https://git.io/JtMGR for more info.
[6/17/2021, 5:58:40 PM] [homebridge-frigidaire] This plugin slows down Homebridge. The read handler for the characteristic 'Temperature Display Units' didn't respond at all!. Please check that you properly call the callback! See https://git.io/JtMGR for more info.
[6/17/2021, 5:58:40 PM] [homebridge-frigidaire] This plugin slows down Homebridge. The read handler for the characteristic 'Rotation Speed' didn't respond at all!. Please check that you properly call the callback! See https://git.io/JtMGR for more info.
amaisano commented 3 years ago

REmoved the deviceID and serial from the config, and got the same errors/warnings, but now it's showing me all 3 ACs i have in the house, which is great.

[6/17/2021, 6:00:48 PM] [Frigidaire] Initializing Frigidaire platform...
Autodetecting all devices...
craeting accessory for AC unit labeled : Office AC
craeting accessory for AC unit labeled : Nursery AC
craeting accessory for AC unit labeled : Bedroom AC
[6/17/2021, 6:00:52 PM] Initializing platform accessory 'Office AC'...
[6/17/2021, 6:00:53 PM] Initializing platform accessory 'Nursery AC'...
[6/17/2021, 6:00:53 PM] Initializing platform accessory 'Bedroom AC'...
Preparing Advertiser for 'Homebridge Climate 917F' using bonjour-hap backend!

Except that they immediately exceed retries...

PS: typo on "craeting accessory"

karlg100 commented 3 years ago

Got home, mine crashed too. Going to collect some debug and will post something when ready for you to try something new.

Karl Grindley

On Jun 17, 2021, at 6:02 PM, Adamo Maisano @.***> wrote:

 REmoved the deviceID and serial from the config, and got the same errors/warnings, but now it's showing me all 3 ACs i have in the house, which is great.

[6/17/2021, 6:00:48 PM] [Frigidaire] Initializing Frigidaire platform... Autodetecting all devices... craeting accessory for AC unit labeled : Office AC craeting accessory for AC unit labeled : Nursery AC craeting accessory for AC unit labeled : Bedroom AC [6/17/2021, 6:00:52 PM] Initializing platform accessory 'Office AC'... [6/17/2021, 6:00:53 PM] Initializing platform accessory 'Nursery AC'... [6/17/2021, 6:00:53 PM] Initializing platform accessory 'Bedroom AC'... Preparing Advertiser for 'Homebridge Climate 917F' using bonjour-hap backend! Except that they immediately exceed retries...

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

amaisano commented 3 years ago

Thanks. Are all of those "max retries exceeded" messages expected? Is it normal to see the loading animation on these accessories all the time? Sorry - not sure if this stuff is still in flux/being debugged, or if it's "ok" to see some of these messages at this time.

image

The process eventually crashed for me, after an hour or so of those warning messages.

enz1ey commented 3 years ago

I cannot get this plugin to load at all. With the plugin just installed using the normal command, my HomeBridge instance just reboots and then never completes loading until I remove any config pertaining to homebridge-frigidaire.

When I replace the files with the ones specified here (index.js from this repo and frigidaire.js from the karlg100/frigidaire repo) it throws this:


ERROR LOADING PLUGIN homebridge-frigidaire:
[6/20/2021, 11:00:47 AM] /usr/local/lib/node_modules/homebridge-frigidaire/index.js:7
<!DOCTYPE html>
^

SyntaxError: Unexpected token <
    at new Script (vm.js:83:7)
    at createScript (vm.js:267:10)
    at Object.runInThisContext (vm.js:319:10)
    at Module._compile (internal/modules/cjs/loader.js:685:28)
    at Object.Module._extensions..js (internal/modules/cjs/loader.js:733:10)
    at Module.load (internal/modules/cjs/loader.js:620:32)
    at tryModuleLoad (internal/modules/cjs/loader.js:560:12)
    at Function.Module._load (internal/modules/cjs/loader.js:552:3)
    at Module.require (internal/modules/cjs/loader.js:658:17)
    at require (internal/modules/cjs/helpers.js:22:18)
enz1ey commented 3 years ago

Okay, I got it to start correctly. I was doing something stupid and using wget with links to the files instead of cloning the repo and copying them.

Now, I'm having the same issue with version 2.1.0 as I was with version 2.0.0: I install the plugin and HomeBridge starts fine, but as soon as I enter any configuration info under the Firigidaire platform section, HomeBridge says it's not running and no accessories show up in the web UI, and all accessories show "no response" in Home.app. Checking the HomeBridge logs, however, shows nothing out of the ordinary; no error messages, and it says the Frigidaire plugin is initialized but doesn't give any kind of error info. According to the logs, HomeBridge should be working fine, but it's not.

Removing the Frigidaire config from config.json returns HomeBridge to a working state.

karlg100 commented 3 years ago

I just checked in a bunch of updates and removed a bunch of timers. I've tried to streamline things from init() to ongoing operation and reduce callbacks.

Mine is already working better. we'll see if it gets tripped up by server side responses.

Please update both .js files again and report back if you have problems.

Please remember to run with export DEBUG=frigidaire:*; homebridge

amaisan0 commented 3 years ago

Will do. This is a tough battle when even the 1st party software is flaky:

image

karlg100 commented 3 years ago

Agreed. and this plugin will do the same if the Electrolux service chokes on a request. but you won't get that error in the face and a retry may happen automatically with homeKit. Also with the change I checked in today, it'll make parallel calls. It used to be serial because the old Electrolux service couldn't handle parallel calls.

if it does turn out to be a big problem (failed calls makes the end user experience sucky) we can try to add setTimeout retries back in. I just ripped those out for now because they were causing so many issues.

amaisano commented 3 years ago

Was working well for at least 2 hours last night. Woke up this morning and it was stalled :(

Mon, 21 Jun 2021 13:49:21 GMT frigidaire:homebridge getName: Office AC
Mon, 21 Jun 2021 13:49:21 GMT frigidaire:homebridge getCurrentHeatingCoolingState:  2
Mon, 21 Jun 2021 13:49:21 GMT frigidaire:lib getCoolingState()
Mon, 21 Jun 2021 13:49:21 GMT frigidaire:lib telemPopulated() - no deviceList
Mon, 21 Jun 2021 13:49:21 GMT frigidaire:lib getCoolingState() - no telementry, exiting
getCoolingState() - no telementry, exiting
Mon, 21 Jun 2021 13:49:21 GMT frigidaire:lib getMode()
Mon, 21 Jun 2021 13:49:21 GMT frigidaire:lib telemPopulated() - no deviceList
Mon, 21 Jun 2021 13:49:21 GMT frigidaire:lib null
Mon, 21 Jun 2021 13:49:21 GMT frigidaire:lib getMode() - no telementry, exiting
getMode() - no telementry, exiting
Mon, 21 Jun 2021 13:49:21 GMT frigidaire:lib getRoomTemp()
Mon, 21 Jun 2021 13:49:21 GMT frigidaire:lib telemPopulated() - no deviceList
Mon, 21 Jun 2021 13:49:21 GMT frigidaire:lib getRoomTemp() - no telementry, exiting
getRoomTemp() - no telementry, exiting
Mon, 21 Jun 2021 13:49:21 GMT frigidaire:lib getTemp()
Mon, 21 Jun 2021 13:49:21 GMT frigidaire:lib telemPopulated() - no deviceList
Mon, 21 Jun 2021 13:49:21 GMT frigidaire:lib getTemp() - no telementry, exiting
getTemp() - no telementry, exiting
Mon, 21 Jun 2021 13:49:21 GMT frigidaire:lib getUnit()
Mon, 21 Jun 2021 13:49:21 GMT frigidaire:lib telemPopulated() - no deviceList
Mon, 21 Jun 2021 13:49:21 GMT frigidaire:lib getUnit() - no telementry, exiting
getUnit() - no telementry, exiting
Mon, 21 Jun 2021 13:49:21 GMT frigidaire:lib getFanMode()
Mon, 21 Jun 2021 13:49:21 GMT frigidaire:lib telemPopulated() - no deviceList
Mon, 21 Jun 2021 13:49:21 GMT frigidaire:lib getFanMode() - no telementry, exiting
getFanMode() - no telementry, exiting
Mon, 21 Jun 2021 13:49:21 GMT frigidaire:homebridge getName: Nursery AC
Mon, 21 Jun 2021 13:49:21 GMT frigidaire:homebridge getCurrentHeatingCoolingState:  0
Mon, 21 Jun 2021 13:49:21 GMT frigidaire:lib getCoolingState()
Mon, 21 Jun 2021 13:49:21 GMT frigidaire:lib telemPopulated() - no deviceList
Mon, 21 Jun 2021 13:49:21 GMT frigidaire:lib getCoolingState() - no telementry, exiting
getCoolingState() - no telementry, exiting
Mon, 21 Jun 2021 13:49:21 GMT frigidaire:lib getMode()
Mon, 21 Jun 2021 13:49:21 GMT frigidaire:lib telemPopulated() - no deviceList
Mon, 21 Jun 2021 13:49:21 GMT frigidaire:lib null
Mon, 21 Jun 2021 13:49:21 GMT frigidaire:lib getMode() - no telementry, exiting
getMode() - no telementry, exiting
Mon, 21 Jun 2021 13:49:21 GMT frigidaire:lib getRoomTemp()
Mon, 21 Jun 2021 13:49:21 GMT frigidaire:lib telemPopulated() - no deviceList
Mon, 21 Jun 2021 13:49:21 GMT frigidaire:lib getRoomTemp() - no telementry, exiting
getRoomTemp() - no telementry, exiting
Mon, 21 Jun 2021 13:49:21 GMT frigidaire:lib getTemp()
Mon, 21 Jun 2021 13:49:21 GMT frigidaire:lib telemPopulated() - no deviceList
Mon, 21 Jun 2021 13:49:21 GMT frigidaire:lib getTemp() - no telementry, exiting
getTemp() - no telementry, exiting
Mon, 21 Jun 2021 13:49:21 GMT frigidaire:lib getUnit()
Mon, 21 Jun 2021 13:49:21 GMT frigidaire:lib telemPopulated() - no deviceList
Mon, 21 Jun 2021 13:49:21 GMT frigidaire:lib getUnit() - no telementry, exiting
getUnit() - no telementry, exiting
Mon, 21 Jun 2021 13:49:21 GMT frigidaire:lib getFanMode()
Mon, 21 Jun 2021 13:49:21 GMT frigidaire:lib telemPopulated() - no deviceList
Mon, 21 Jun 2021 13:49:21 GMT frigidaire:lib getFanMode() - no telementry, exiting
getFanMode() - no telementry, exiting
Mon, 21 Jun 2021 13:49:21 GMT frigidaire:homebridge getName: Bedroom AC
Mon, 21 Jun 2021 13:49:21 GMT frigidaire:homebridge getCurrentHeatingCoolingState:  0
Mon, 21 Jun 2021 13:49:21 GMT frigidaire:lib getCoolingState()
Mon, 21 Jun 2021 13:49:21 GMT frigidaire:lib telemPopulated() - no deviceList
Mon, 21 Jun 2021 13:49:21 GMT frigidaire:lib getCoolingState() - no telementry, exiting
getCoolingState() - no telementry, exiting
Mon, 21 Jun 2021 13:49:21 GMT frigidaire:lib getMode()
Mon, 21 Jun 2021 13:49:21 GMT frigidaire:lib telemPopulated() - no deviceList
Mon, 21 Jun 2021 13:49:21 GMT frigidaire:lib null
Mon, 21 Jun 2021 13:49:21 GMT frigidaire:lib getMode() - no telementry, exiting
getMode() - no telementry, exiting
Mon, 21 Jun 2021 13:49:21 GMT frigidaire:lib getRoomTemp()
Mon, 21 Jun 2021 13:49:21 GMT frigidaire:lib telemPopulated() - no deviceList
Mon, 21 Jun 2021 13:49:21 GMT frigidaire:lib getRoomTemp() - no telementry, exiting
getRoomTemp() - no telementry, exiting
Mon, 21 Jun 2021 13:49:21 GMT frigidaire:lib getTemp()
Mon, 21 Jun 2021 13:49:21 GMT frigidaire:lib telemPopulated() - no deviceList
Mon, 21 Jun 2021 13:49:21 GMT frigidaire:lib getTemp() - no telementry, exiting
getTemp() - no telementry, exiting
Mon, 21 Jun 2021 13:49:21 GMT frigidaire:lib getUnit()
Mon, 21 Jun 2021 13:49:21 GMT frigidaire:lib telemPopulated() - no deviceList
Mon, 21 Jun 2021 13:49:21 GMT frigidaire:lib getUnit() - no telementry, exiting
getUnit() - no telementry, exiting
Mon, 21 Jun 2021 13:49:21 GMT frigidaire:lib getFanMode()
Mon, 21 Jun 2021 13:49:21 GMT frigidaire:lib telemPopulated() - no deviceList
Mon, 21 Jun 2021 13:49:21 GMT frigidaire:lib getFanMode() - no telementry, exiting
getFanMode() - no telementry, exiting
Mon, 21 Jun 2021 13:49:21 GMT frigidaire:lib getDevices()
Mon, 21 Jun 2021 13:49:21 GMT frigidaire:lib getDevices() - auth is pending, reschedluing this call in 1000
Mon, 21 Jun 2021 13:49:22 GMT frigidaire:lib getDevices()
Mon, 21 Jun 2021 13:49:22 GMT frigidaire:lib getDevices() - auth is pending, reschedluing this call in 1000
Mon, 21 Jun 2021 13:49:23 GMT frigidaire:lib getDevices()
Mon, 21 Jun 2021 13:49:23 GMT frigidaire:lib getDevices() - auth is pending, reschedluing this call in 1000
[6/21/2021, 9:49:24 AM] [homebridge-frigidaire] This plugin slows down Homebridge. The read handler for the characteristic 'Current Heating Cooling State' was slow to respond! See https://git.io/JtMGR for more info.
[6/21/2021, 9:49:24 AM] [homebridge-frigidaire] This plugin slows down Homebridge. The read handler for the characteristic 'Target Heating Cooling State' was slow to respond! See https://git.io/JtMGR for more info.
amaisano commented 3 years ago

Noticing some other issues. It seems like if I make a lot of adjustments to my Office AC in homebridge, it makes it show as "lost connection" in the Frigidaire app. Secondly, I can WRITE changes (change temp) from HB to the ac, but the temperature changes are not reflecting in HB. For example, I moved it from 22 C to 25 C in HB, and it made the physical AC change correctly IRL, but the temp displayed in HB never changed.

The app finally reconnected with my office AC and is now showing the same temperature I set from HB, but HB itself is not showing the correct target temperature. Sorry this is so confusing - again it may just be flakiness with the 1st party API.

Update: I just observed that setting the temp from HB correctly changed my AC unit, but immediately broke the connection in the Frigidaire App with that AC. Are your APIs somehow interfering with their APIs?

karlg100 commented 3 years ago

I noticed the same thing after the screenshot above. It seems they only allow one session at a time. which means that if you open the app, may cause the home bridge app to get wonky.

I made more changes this morning and ripped/replaced the JSON.parse with the wrapped parseJSON() call for error trapping. Also added a detection to getTelem() to check the last time it attempted an update, and if goes too long, resets the whole plugin. Been running since this morning and so far so good.

I'll try updating the appliances and see how long it takes to reflect in homeKit. in theory it's pulling telemetry every 10 seconds. But there may be more that has to happen to get homeKit to see the updates besides user's interacting with it.

karlg100 commented 3 years ago

Fixed the set point temp update. Also, for all the updated values, it now only calls back to homeKit if the value is different than the last time it updated. Looks like HomeKit really doesn't like large quantities of updates and struggles with that.

Just checked those changes into homebridge-frigidaire.

Also re the errors, they seem to have disappeared from my Frigidaire app.

Now updates done in the app or on the device now take <10 seconds to appear in the Home app.

brydoyle commented 3 years ago

Let me know when stable enough to try out heatercooler type.

On Mon, Jun 21, 2021 at 6:47 PM Karl G @.***> wrote:

Fixed the set point temp update. Also, for all the updated values, it now only calls back to homeKit if the value is different than the last time it updated. Looks like HomeKit really doesn't like large quantities of updates and struggles with that.

Just checked those changes into homebridge-frigidaire.

Also re the errors, they seem to have disappeared from my Frigidaire app.

Now updates done in the app or on the device now take <10 seconds to appear in the Home app.

— You are receiving this because you commented.

Reply to this email directly, view it on GitHub https://github.com/karlg100/homebridge-frigidaire/issues/32#issuecomment-865392896, or unsubscribe https://github.com/notifications/unsubscribe-auth/ACJVPQQUIYBLBGJCNDMNHWTTT66OJANCNFSM46VE4XYQ .

amaisano commented 3 years ago

Ok. Same problems for me with the latest code checkout. In HB UI, temp (celsius) 25 to 23.1. The AC unit beeps and it changes correctly, but NO change in temperature in the UI. Even after waiting 15 minutes, and then adjusting the temperature again.

I noticed here in the logs a couple things:

  1. Fahrenheit is being used when everything is set to be Celsius.
  2. The trace for the very first getTemp() after sending the temp command is showing the following, which doesn't make sense. It set 23.1. Then it gets 25 back, but somehow knows the actual temp at that moment was 23.1 ("old: 23.1").
Tue, 22 Jun 2021 03:21:00 GMT frigidaire:lib applianceSn 90220223 attribute 0432 has the value 25
Tue, 22 Jun 2021 03:21:00 GMT frigidaire:homebridge getTargetTemperature 25 -> 25 (old: 23.1)
2021-06-22T03:21:00.032Z HAP-NodeJS:Accessory [Homebridge Climate 917F] Got Characteristic "Target Temperature" value: "25"

Here is the full snippet from my latest attempt to change the temp from HB:

UPDATE - After an hour, I restarted HB, and it's STILL not showing the correct temperature in HB. However, I just opened up the official app, and the app itself has the wrong temp as well (I re-checked the AC display). The AC is actually at 23, but both HB and the Frigidaire app say 25. Fun times.

2021-06-22T03:20:59.620Z HAP-NodeJS:EventedHTTPServer [::ffff:192.168.86.36] New connection from client on interface eth0 (::ffff:192.168.86.36)
2021-06-22T03:20:59.620Z HAP-NodeJS:EventedHTTPServer:Connection [::ffff:192.168.86.36] Internal HTTP server listening on 127.0.0.1:35869
2021-06-22T03:20:59.622Z HAP-NodeJS:EventedHTTPServer:Connection [::ffff:192.168.86.36] Internal HTTP socket connected. HAPConnection now fully set up!
2021-06-22T03:20:59.623Z HAP-NodeJS:EventedHTTPServer:Connection [::ffff:192.168.86.36] HTTP request: /characteristics
2021-06-22T03:20:59.624Z HAP-NodeJS:HAPServer [0E:17:9A:64:F4:F5] HAP Request: PUT /characteristics
2021-06-22T03:20:59.624Z HAP-NodeJS:Accessory [Homebridge Climate 917F] Processing characteristic set: {"characteristics":[{"aid":2,"iid":13,"value":23.1}]}
Tue, 22 Jun 2021 03:20:59 GMT frigidaire:lib setTemp()
Tue, 22 Jun 2021 03:20:59 GMT frigidaire:lib getDevice() - sn: 90220223
Tue, 22 Jun 2021 03:20:59 GMT frigidaire:lib found appliance match!
Tue, 22 Jun 2021 03:20:59 GMT frigidaire:lib changing temp for 90220223 to 73.58000000000001
Tue, 22 Jun 2021 03:20:59 GMT frigidaire:lib post()
Tue, 22 Jun 2021 03:20:59 GMT frigidaire:lib {
  appliance_type: '950133021_00',
  appliance_id: '90220223-F8A2D6244323',
  pnc: '950133021',
  elc: '00',
  sn: '90220223',
  mac: 'F8A2D6244323',
  cpv: '00',
  nickname: 'Office AC',
  telem: [
    {
      numberValue: 2,
      stringValue: 'Change',
      spkTimestamp: 1624325804000,
      description: 'AC-Clean Filter Alert',
      haclCode: '1021',
      source: 'AC1',
      containers: []
    },
    {
      numberValue: 49282,
      spkTimestamp: 1624328118000,
      description: 'AC-Compressor Cooling Runtime',
      haclCode: '1030',
      source: 'AC1',
      containers: []
    },
    {
      numberValue: 7,
      stringValue: 'Auto',
      spkTimestamp: 1624135350000,
      description: 'AC-Fan Speed Setting',
      haclCode: '1002',
      source: 'AC1',
      containers: []
    },
    {
      numberValue: 0,
      spkTimestamp: 1606151648000,
      description: 'AC-Scheduler Event Count',
      haclCode: '1052',
      source: 'AC1',
      containers: []
    },
    {
      stringValue: '0000000000000000',
      spkTimestamp: 1606151648000,
      description: 'AC-Scheduler Event Friday',
      haclCode: '1058',
      source: 'AC1',
      containers: []
    },
    {
      stringValue: '0000000000000000',
      spkTimestamp: 1606151648000,
      description: 'AC-Scheduler Event Monday',
      haclCode: '1054',
      source: 'AC1',
      containers: []
    },
    {
      stringValue: '000000000000000000',
      spkTimestamp: 1606151648000,
      description: 'AC-Scheduler Event One Time',
      haclCode: '105A',
      source: 'AC1',
      containers: []
    },
    {
      stringValue: '0000000000000000',
      spkTimestamp: 1606151648000,
      description: 'AC-Scheduler Event Saturday',
      haclCode: '1059',
      source: 'AC1',
      containers: []
    },
    {
      stringValue: '0000000000000000',
      spkTimestamp: 1606151648000,
      description: 'AC-Scheduler Event Sunday',
      haclCode: '1053',
      source: 'AC1',
      containers: []
    },
    {
      stringValue: '0000000000000000',
      spkTimestamp: 1606151648000,
      description: 'AC-Scheduler Event Thursday',
      haclCode: '1057',
      source: 'AC1',
      containers: []
    },
    {
      stringValue: '0000000000000000',
      spkTimestamp: 1606151648000,
      description: 'AC-Scheduler Event Tuesday',
      haclCode: '1055',
      source: 'AC1',
      containers: []
    },
    {
      stringValue: '0000000000000000',
      spkTimestamp: 1606151648000,
      description: 'AC-Scheduler Event Wednesday',
      haclCode: '1056',
      source: 'AC1',
      containers: []
    },
    {
      numberValue: 0,
      stringValue: 'Off',
      spkTimestamp: 1606151648000,
      description: 'AC-Scheduler Mode',
      haclCode: '1050',
      source: 'AC1',
      containers: []
    },
    {
      spkTimestamp: 1624328333,
      description: 'Alert Event',
      haclCode: '0470',
      source: 'AC1',
      containers: [Array]
    },
    {
      spkTimestamp: 1624328333000,
      description: 'Ambient Temperature',
      haclCode: '0430',
      source: 'AC1',
      containers: [Array]
    },
    {
      stringValue: '950133021',
      spkTimestamp: 1605338198000,
      description: 'Appliance PNC',
      haclCode: '0007',
      source: 'AC1',
      containers: []
    },
    {
      numberValue: 2,
      stringValue: 'Running',
      spkTimestamp: 1624283469000,
      description: 'Appliance State',
      haclCode: '0401',
      source: 'AC1',
      containers: []
    },
    {
      numberValue: 1,
      stringValue: 'On',
      spkTimestamp: 1624328297000,
      description: 'Compressor State',
      haclCode: '04A1',
      source: 'AC1',
      containers: []
    },
    {
      stringValue: '90220223',
      spkTimestamp: 1605338200000,
      description: 'Appliance Serial Number',
      haclCode: '0002',
      source: 'AC1',
      containers: []
    },
    {
      numberValue: 0,
      stringValue: 'Off',
      spkTimestamp: 1606151648000,
      description: 'Sleep Mode',
      haclCode: '0428',
      source: 'AC1',
      containers: []
    },
    {
      spkTimestamp: 1624296383000,
      description: 'Target Temperature',
      haclCode: '0432',
      source: 'AC1',
      containers: [Array]
    },
    {
      numberValue: 0,
      stringValue: 'Celsius',
      spkTimestamp: 1623986101000,
      description: 'Temperature Representation',
      haclCode: '0420',
      source: 'AC1',
      containers: []
    },
    {
      numberValue: 4,
      stringValue: 'Economy',
      spkTimestamp: 1624283479000,
      description: 'AC-Mode',
      haclCode: '1000',
      source: 'AC1',
      containers: []
    },
    {
      stringValue: 'v5.2.1rc1',
      spkTimestamp: 1605338196000,
      description: 'Connectivity Node SW version',
      haclCode: '0011',
      source: 'NIU',
      containers: []
    },
    {
      numberValue: 0,
      stringValue: 'Idle',
      spkTimestamp: 1608054983000,
      description: 'NIU FW Update State',
      haclCode: '0060',
      source: 'NIU',
      containers: []
    },
    {
      numberValue: 5,
      stringValue: 'Excellent',
      spkTimestamp: 1624300163000,
      description: 'Link Quality Indicator',
      haclCode: '0032',
      source: 'NIU',
      containers: []
    },
    {
      stringValue: 'F8A2D6244323',
      spkTimestamp: 1605338196000,
      description: 'MAC Address',
      haclCode: '0030',
      source: 'NIU',
      containers: []
    },
    {
      spkTimestamp: 1606151649000,
      description: 'NIU Alert Event',
      haclCode: '0473',
      source: 'NIU',
      containers: [Array]
    },
    {
      stringValue: 'Mercury',
      spkTimestamp: 1608054983000,
      description: 'Network Name',
      haclCode: '0070',
      source: 'NIU',
      containers: []
    },
    {
      stringValue: 'S00005666A',
      spkTimestamp: 1605338196000,
      description: 'Undefined',
      haclCode: '00C1',
      source: 'NIU',
      containers: []
    },
    {
      stringValue: 'connect',
      spkTimestamp: 1624320316595,
      description: 'ConnectivityState',
      haclCode: '0000',
      source: 'APL',
      containers: []
    }
  ]
}
Tue, 22 Jun 2021 03:20:59 GMT frigidaire:lib url: https://api.latam.ecp.electrolux.com/commander/remote/sendjson?pnc=950133021&elc=00&sn=90220223&mac=F8A2D6244323
Tue, 22 Jun 2021 03:20:59 GMT frigidaire:lib attempts: 6
Tue, 22 Jun 2021 03:21:00 GMT frigidaire:lib {
  status: 'OK',
  code: 'ECP1000',
  message: 'HACL command ad41433152503104320401004a00 was sent to IoTP',
  data: null
}
Tue, 22 Jun 2021 03:21:00 GMT frigidaire:lib testing for maximum retries
Tue, 22 Jun 2021 03:21:00 GMT frigidaire:lib reseting attempts
Tue, 22 Jun 2021 03:21:00 GMT frigidaire:homebridge setTargetTemperature to:  23.1
2021-06-22T03:21:00.006Z HAP-NodeJS:EventedHTTPServer [::ffff:192.168.86.36] Muting event '2.13' notification for this connection since it originated here.
2021-06-22T03:21:00.007Z HAP-NodeJS:Accessory [Homebridge Climate 917F] Setting Characteristic "Target Temperature" to value 23.1
2021-06-22T03:21:00.010Z HAP-NodeJS:EventedHTTPServer:Connection [::ffff:192.168.86.36] HTTP Response is finished
2021-06-22T03:21:00.012Z HAP-NodeJS:EventedHTTPServer:Connection [::ffff:192.168.86.36] HTTP connection was closed
2021-06-22T03:21:00.013Z HAP-NodeJS:EventedHTTPServer:Connection [::ffff:192.168.86.36] HTTP server was closed
2021-06-22T03:21:00.013Z HAP-NodeJS:EventedHTTPServer:Connection [::ffff:192.168.86.36] Client connection closed
2021-06-22T03:21:00.014Z HAP-NodeJS:EventedHTTPServer:Connection [::ffff:192.168.86.36] HTTP server was closed
2021-06-22T03:21:00.018Z HAP-NodeJS:EventedHTTPServer [::ffff:192.168.86.36] New connection from client on interface eth0 (::ffff:192.168.86.36)
2021-06-22T03:21:00.019Z HAP-NodeJS:EventedHTTPServer:Connection [::ffff:192.168.86.36] Internal HTTP server listening on 127.0.0.1:36147
2021-06-22T03:21:00.023Z HAP-NodeJS:EventedHTTPServer:Connection [::ffff:192.168.86.36] Internal HTTP socket connected. HAPConnection now fully set up!
2021-06-22T03:21:00.024Z HAP-NodeJS:EventedHTTPServer:Connection [::ffff:192.168.86.36] HTTP request: /characteristics?id=2.13
2021-06-22T03:21:00.024Z HAP-NodeJS:HAPServer [0E:17:9A:64:F4:F5] HAP Request: GET /characteristics?id=2.13
Tue, 22 Jun 2021 03:21:00 GMT frigidaire:lib getTemp()
Tue, 22 Jun 2021 03:21:00 GMT frigidaire:lib getDevice() - sn: 90220223
Tue, 22 Jun 2021 03:21:00 GMT frigidaire:lib found appliance match!
Tue, 22 Jun 2021 03:21:00 GMT frigidaire:lib getting temp for 90220223
Tue, 22 Jun 2021 03:21:00 GMT frigidaire:lib getValue(attribute: 0432)
Tue, 22 Jun 2021 03:21:00 GMT frigidaire:lib getDeviceIndex() - sn: 90220223
Tue, 22 Jun 2021 03:21:00 GMT frigidaire:lib found appliance match!
Tue, 22 Jun 2021 03:21:00 GMT frigidaire:lib applianceSn 90220223 attribute 0432 has the value 25
Tue, 22 Jun 2021 03:21:00 GMT frigidaire:homebridge getTargetTemperature 25 -> 25 (old: 23.1)
2021-06-22T03:21:00.032Z HAP-NodeJS:Accessory [Homebridge Climate 917F] Got Characteristic "Target Temperature" value: "25"
2021-06-22T03:21:00.035Z HAP-NodeJS:EventedHTTPServer:Connection [::ffff:192.168.86.36] HTTP Response is finished
2021-06-22T03:21:00.037Z HAP-NodeJS:EventedHTTPServer:Connection [::ffff:192.168.86.36] HTTP connection was closed
2021-06-22T03:21:00.037Z HAP-NodeJS:EventedHTTPServer:Connection [::ffff:192.168.86.36] HTTP server was closed
2021-06-22T03:21:00.038Z HAP-NodeJS:EventedHTTPServer:Connection [::ffff:192.168.86.36] Client connection closed
2021-06-22T03:21:00.038Z HAP-NodeJS:EventedHTTPServer:Connection [::ffff:192.168.86.36] HTTP server was closed
2021-06-22T03:21:00.041Z HAP-NodeJS:EventedHTTPServer [::ffff:192.168.86.36] New connection from client on interface eth0 (::ffff:192.168.86.36)
2021-06-22T03:21:00.042Z HAP-NodeJS:EventedHTTPServer:Connection [::ffff:192.168.86.36] Internal HTTP server listening on 127.0.0.1:40063
2021-06-22T03:21:00.045Z HAP-NodeJS:EventedHTTPServer:Connection [::ffff:192.168.86.36] Internal HTTP socket connected. HAPConnection now fully set up!
2021-06-22T03:21:00.046Z HAP-NodeJS:EventedHTTPServer:Connection [::ffff:192.168.86.36] HTTP request: /accessories
2021-06-22T03:21:00.046Z HAP-NodeJS:HAPServer [0E:17:9A:64:F4:F5] HAP Request: GET /accessories
2021-06-22T03:21:00.051Z HAP-NodeJS:EventedHTTPServer:Connection [::ffff:192.168.86.36] HTTP Response is finished
2021-06-22T03:21:00.052Z HAP-NodeJS:EventedHTTPServer:Connection [::ffff:192.168.86.36] HTTP connection was closed
2021-06-22T03:21:00.052Z HAP-NodeJS:EventedHTTPServer:Connection [::ffff:192.168.86.36] HTTP server was closed
2021-06-22T03:21:00.053Z HAP-NodeJS:EventedHTTPServer:Connection [::ffff:192.168.86.36] Client connection closed
2021-06-22T03:21:00.053Z HAP-NodeJS:EventedHTTPServer:Connection [::ffff:192.168.86.36] HTTP server was closed
2021-06-22T03:21:00.257Z HAP-NodeJS:EventedHTTPServer:Connection [::ffff:192.168.86.36] Sending HAP event notifications [ { aid: 2, iid: 13, value: 25 } ]
2021-06-22T03:21:01.569Z HAP-NodeJS:EventedHTTPServer [::ffff:192.168.86.36] New connection from client on interface eth0 (::ffff:192.168.86.36)
2021-06-22T03:21:01.569Z HAP-NodeJS:EventedHTTPServer:Connection [::ffff:192.168.86.36] Internal HTTP server listening on 127.0.0.1:45639
2021-06-22T03:21:01.576Z HAP-NodeJS:EventedHTTPServer [::ffff:192.168.86.36] New connection from client on interface eth0 (::ffff:192.168.86.36)
2021-06-22T03:21:01.577Z HAP-NodeJS:EventedHTTPServer:Connection [::ffff:192.168.86.36] Internal HTTP server listening on 127.0.0.1:43975
2021-06-22T03:21:01.585Z HAP-NodeJS:EventedHTTPServer [::ffff:192.168.86.36] New connection from client on interface eth0 (::ffff:192.168.86.36)
2021-06-22T03:21:01.585Z HAP-NodeJS:EventedHTTPServer:Connection [::ffff:192.168.86.36] Internal HTTP server listening on 127.0.0.1:36247
2021-06-22T03:21:01.589Z HAP-NodeJS:EventedHTTPServer [::ffff:192.168.86.36] New connection from client on interface eth0 (::ffff:192.168.86.36)
2021-06-22T03:21:01.590Z HAP-NodeJS:EventedHTTPServer:Connection [::ffff:192.168.86.36] Internal HTTP server listening on 127.0.0.1:45971
2021-06-22T03:21:01.593Z HAP-NodeJS:EventedHTTPServer:Connection [::ffff:192.168.86.36] Internal HTTP socket connected. HAPConnection now fully set up!
2021-06-22T03:21:01.594Z HAP-NodeJS:EventedHTTPServer:Connection [::ffff:192.168.86.36] Internal HTTP socket connected. HAPConnection now fully set up!
2021-06-22T03:21:01.595Z HAP-NodeJS:EventedHTTPServer:Connection [::ffff:192.168.86.36] Internal HTTP socket connected. HAPConnection now fully set up!
2021-06-22T03:21:01.597Z HAP-NodeJS:EventedHTTPServer:Connection [::ffff:192.168.86.36] Internal HTTP socket connected. HAPConnection now fully set up!
2021-06-22T03:21:01.598Z HAP-NodeJS:EventedHTTPServer:Connection [::ffff:192.168.86.36] HTTP request: /characteristics?id=1.9
2021-06-22T03:21:01.599Z HAP-NodeJS:HAPServer [0E:17:9A:64:F4:F5] HAP Request: GET /characteristics?id=1.9
2021-06-22T03:21:01.600Z HAP-NodeJS:Accessory [Homebridge Climate 917F] Got Characteristic "Version" value: "1.1.0"
2021-06-22T03:21:01.602Z HAP-NodeJS:EventedHTTPServer:Connection [::ffff:192.168.86.36] HTTP request: /characteristics?id=2.10,2.11,2.12,2.13,2.14,2.15
2021-06-22T03:21:01.602Z HAP-NodeJS:HAPServer [0E:17:9A:64:F4:F5] HAP Request: GET /characteristics?id=2.10,2.11,2.12,2.13,2.14,2.15
Tue, 22 Jun 2021 03:21:01 GMT frigidaire:homebridge getCurrentHeatingCoolingState:  2
Tue, 22 Jun 2021 03:21:01 GMT frigidaire:lib getCoolingState()
Tue, 22 Jun 2021 03:21:01 GMT frigidaire:lib getDevice() - sn: 90220223
Tue, 22 Jun 2021 03:21:01 GMT frigidaire:lib found appliance match!
Tue, 22 Jun 2021 03:21:01 GMT frigidaire:lib getting cooling state for 90220223
Tue, 22 Jun 2021 03:21:01 GMT frigidaire:lib getValue(attribute: 04A1)
Tue, 22 Jun 2021 03:21:01 GMT frigidaire:lib getDeviceIndex() - sn: 90220223
Tue, 22 Jun 2021 03:21:01 GMT frigidaire:lib found appliance match!
Tue, 22 Jun 2021 03:21:01 GMT frigidaire:lib applianceSn 90220223 attribute 04A1 has the value 1
Tue, 22 Jun 2021 03:21:01 GMT frigidaire:homebridge getCurrentHeatingCoolingState:  2
Tue, 22 Jun 2021 03:21:01 GMT frigidaire:lib getMode()
Tue, 22 Jun 2021 03:21:01 GMT frigidaire:lib getDevice() - sn: 90220223
Tue, 22 Jun 2021 03:21:01 GMT frigidaire:lib found appliance match!
Tue, 22 Jun 2021 03:21:01 GMT frigidaire:lib getValue(attribute: 1000)
Tue, 22 Jun 2021 03:21:01 GMT frigidaire:lib getDeviceIndex() - sn: 90220223
Tue, 22 Jun 2021 03:21:01 GMT frigidaire:lib found appliance match!
Tue, 22 Jun 2021 03:21:01 GMT frigidaire:lib applianceSn 90220223 attribute 1000 has the value 4
Tue, 22 Jun 2021 03:21:01 GMT frigidaire:homebridge getTargetHeatingCoolingState:  3
Tue, 22 Jun 2021 03:21:01 GMT frigidaire:lib getRoomTemp()
Tue, 22 Jun 2021 03:21:01 GMT frigidaire:lib getDevice() - sn: 90220223
Tue, 22 Jun 2021 03:21:01 GMT frigidaire:lib found appliance match!
Tue, 22 Jun 2021 03:21:01 GMT frigidaire:lib getting room temp for 90220223
Tue, 22 Jun 2021 03:21:01 GMT frigidaire:lib getValue(attribute: 0430)
Tue, 22 Jun 2021 03:21:01 GMT frigidaire:lib getDeviceIndex() - sn: 90220223
Tue, 22 Jun 2021 03:21:01 GMT frigidaire:lib found appliance match!
Tue, 22 Jun 2021 03:21:01 GMT frigidaire:lib applianceSn 90220223 attribute 0430 has the value 25
Tue, 22 Jun 2021 03:21:01 GMT frigidaire:homebridge getCurrentTemperature: 25 -> 25
Tue, 22 Jun 2021 03:21:01 GMT frigidaire:lib getTemp()
Tue, 22 Jun 2021 03:21:01 GMT frigidaire:lib getDevice() - sn: 90220223
Tue, 22 Jun 2021 03:21:01 GMT frigidaire:lib found appliance match!
Tue, 22 Jun 2021 03:21:01 GMT frigidaire:lib getting temp for 90220223
Tue, 22 Jun 2021 03:21:01 GMT frigidaire:lib getValue(attribute: 0432)
Tue, 22 Jun 2021 03:21:01 GMT frigidaire:lib getDeviceIndex() - sn: 90220223
Tue, 22 Jun 2021 03:21:01 GMT frigidaire:lib found appliance match!
Tue, 22 Jun 2021 03:21:01 GMT frigidaire:lib applianceSn 90220223 attribute 0432 has the value 25
Tue, 22 Jun 2021 03:21:01 GMT frigidaire:homebridge getTargetTemperature 25 -> 25 (old: 25)
Tue, 22 Jun 2021 03:21:01 GMT frigidaire:lib getUnit()
Tue, 22 Jun 2021 03:21:01 GMT frigidaire:lib getDevice() - sn: 90220223
Tue, 22 Jun 2021 03:21:01 GMT frigidaire:lib found appliance match!
Tue, 22 Jun 2021 03:21:01 GMT frigidaire:lib getting units for 90220223
Tue, 22 Jun 2021 03:21:01 GMT frigidaire:lib getValue(attribute: 0420)
Tue, 22 Jun 2021 03:21:01 GMT frigidaire:lib getDeviceIndex() - sn: 90220223
Tue, 22 Jun 2021 03:21:01 GMT frigidaire:lib found appliance match!
Tue, 22 Jun 2021 03:21:01 GMT frigidaire:lib applianceSn 90220223 attribute 0420 has the value 0
Tue, 22 Jun 2021 03:21:01 GMT frigidaire:homebridge getTemperatureDisplayUnits:  0
Tue, 22 Jun 2021 03:21:01 GMT frigidaire:lib getFanMode()
Tue, 22 Jun 2021 03:21:01 GMT frigidaire:lib getDevice() - sn: 90220223
Tue, 22 Jun 2021 03:21:01 GMT frigidaire:lib found appliance match!
Tue, 22 Jun 2021 03:21:01 GMT frigidaire:lib getting fan mode for 90220223
Tue, 22 Jun 2021 03:21:01 GMT frigidaire:lib getValue(attribute: 1002)
Tue, 22 Jun 2021 03:21:01 GMT frigidaire:lib getDeviceIndex() - sn: 90220223
Tue, 22 Jun 2021 03:21:01 GMT frigidaire:lib found appliance match!
Tue, 22 Jun 2021 03:21:01 GMT frigidaire:lib applianceSn 90220223 attribute 1002 has the value 7
Tue, 22 Jun 2021 03:21:01 GMT frigidaire:homebridge current fan mode is 7
Tue, 22 Jun 2021 03:21:01 GMT frigidaire:homebridge getFanSpeed:  100
2021-06-22T03:21:01.613Z HAP-NodeJS:Accessory [Homebridge Climate 917F] Got Characteristic "Current Heating Cooling State" value: "2"
2021-06-22T03:21:01.613Z HAP-NodeJS:Accessory [Homebridge Climate 917F] Got Characteristic "Target Heating Cooling State" value: "3"
2021-06-22T03:21:01.613Z HAP-NodeJS:Accessory [Homebridge Climate 917F] Got Characteristic "Current Temperature" value: "25"
2021-06-22T03:21:01.614Z HAP-NodeJS:Accessory [Homebridge Climate 917F] Got Characteristic "Target Temperature" value: "25"
2021-06-22T03:21:01.614Z HAP-NodeJS:Accessory [Homebridge Climate 917F] Got Characteristic "Temperature Display Units" value: "0"
2021-06-22T03:21:01.615Z HAP-NodeJS:Accessory [Homebridge Climate 917F] Got Characteristic "Rotation Speed" value: "100"
2021-06-22T03:21:01.616Z HAP-NodeJS:EventedHTTPServer:Connection [::ffff:192.168.86.36] HTTP request: /characteristics?id=3.10,3.11,3.12,3.13,3.14,3.15
2021-06-22T03:21:01.616Z HAP-NodeJS:HAPServer [0E:17:9A:64:F4:F5] HAP Request: GET /characteristics?id=3.10,3.11,3.12,3.13,3.14,3.15
amaisano commented 3 years ago

Maybe I should log out and NOT use the iOS app... I'm noticing the same behavior in it as here. Set a temp, it changes the AC correctly, but times out and never reports the new temperature. Even after quitting the app and restarting it, it continues to read an old temperature.

I wonder if these HB plugins are overwhelming their API? That would be sad...

karlg100 commented 3 years ago

Latest changes ran all night. Still responsive, and no crashes, scenes still working and automation also ran. Still getting updates when changed manually.

Give it the latest try.

Re the Frigidaire app - I bought 2 more units, and now up to 4. The new units don't have the dual login issue. I can make adjustments and no errors in the native app and HB. But the old units, don't like getting commands from more than one session. They're also reporting no wifi signal and seem to disconnect frequency.

For the units you're having issues with, is the firmware version something like ~"PW1R420_210422f" or ~"v1.9.0_srac" format? It appears they've got at least two (and I bet many more) branches of the IoT side. The 1.9.0 is the brand new units.

With the wifi issues I'm having and the API issues, there appears to be bugs with the older firmware and perhaps legacy support infrastructure when they transitioned to 2.0.

karlg100 commented 3 years ago

So far nearly 24 hours no crashing. Just added clean air switch back in. Things are updating now in HB and I think we're dialing into a stable release. Please update and let me know if you have any trouble.

karlg100 commented 3 years ago

I took a leap of faith and published an update to npm. Please update to the latest package using npm.

enz1ey commented 3 years ago

I’ve noticed sometimes when making a change in Home.app, the AC bounces back to the previous setting in a second or two and I have to make the change again.

On Jun 22, 2021, at 20:40, Karl G @.***> wrote:

 I took a leap of faith and published an update to npm. Please update to the latest package using npm.

— You are receiving this because you commented. Reply to this email directly, view it on GitHub, or unsubscribe.

royale56 commented 3 years ago

I just updated to the latest version vis npm and now my homebridge won’t start. I’m getting this line - “this homebridge is taking long term to load and preventing homebridge from starting”.

karlg100 commented 3 years ago

Check your configuration. Are you specifying a serial number?

On Jun 22, 2021, at 9:05 PM, royale56 @.***> wrote:

 I just updated to the latest version vis npm and now my homebridge won’t start. I’m getting this line - “this homebridge is taking long term to load and preventing homebridge from starting”.

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

karlg100 commented 3 years ago

Does this happen with 2.1.1?

On Jun 22, 2021, at 8:55 PM, enz1ey @.***> wrote:

 I’ve noticed sometimes when making a change in Home.app, the AC bounces back to the previous setting in a second or two and I have to make the change again.

On Jun 22, 2021, at 20:40, Karl G @.***> wrote:

 I took a leap of faith and published an update to npm. Please update to the latest package using npm.

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

royale56 commented 3 years ago

This is with 2.1.1 - I was on the version right before this and had it up and running fine (other than it crashing randomly). I do have the serial and deviceid in the config. I did not add anything for the clean air toggle but my device does have that as a feature.

amaisano commented 3 years ago

FWIW, I'm not specifying anything in my config except platform, user, and password... I have multiple units and their S/Ns are being picked up and discovered no issues.

royale56 commented 3 years ago

I’ll give the minimum config a try.

royale56 commented 3 years ago

Just gave it a try and I receive the same issue with either config options.

ct-peter commented 3 years ago

I just updated via NPM and it kicked a lot of errors on homebridge startup, but then the service auto restarted and it loaded. Amazingly, all my ACs show up in home.app again now.

Using minimal config of just platform, username, and password specified.

Thank you so much!

royale56 commented 3 years ago

I just realized I made a mistake when I tried the minimum config. Fixed it and now it span right back up. Minimum config was the answer! Thank you for the quick response and all your help.

karlg100 commented 3 years ago

confirmed, the issue is the init for a single device. I've removed that for now, new version 2.1.2 has been published. please update. The new version will just ignore a serial number if specified.