homebridge / plugins

Information and resources for Homebridge plugins.
https://homebridge.io/w/Verified-Plugins
GNU General Public License v3.0
368 stars 17 forks source link

homebridge-ecoforest-thermostat #616

Closed CyberMrProper closed 11 months ago

CyberMrProper commented 11 months ago

Link To GitHub Repo

https://github.com/CyberMrProper/homebridge-ecoforest-thermostat/

Link To NPM Package

https://www.npmjs.com/package/homebridge-ecoforest-thermostat

Plugin Icon (Optional)

logo

github-actions[bot] commented 11 months ago

:white_check_mark: Pre-checks completed successfully.

github-actions[bot] commented 11 months ago


Comment /check to run checks again.

bwp91 commented 11 months ago

Hi @CyberMrProper we recently added a criteria that plugins must be dynamic platform based, rather than accessory type.

A brief look at the plugin and it seems like this really wouldn't suit a platform type right? I mean, there is no login into an external cloud provider, the device is found and discovered locally?

bwp91 commented 11 months ago

And I assume that most users would only have one of these devices anyway (rather than multiple)?

CyberMrProper commented 11 months ago

It is a local/device with its own IP, and the device is a pellet stove. For now this is a single device, not sure if this brand eventually will launch additional devices. So for now, keeping it as a single accessory makes sense to me.

bwp91 commented 11 months ago

With a config of this:

    "accessories": [
        {
            "name": "Example",
            "apiroute": "1.1.1.1",
            "username": "b",
            "temperatureColdTolerance": 0.5,
            "temperatureHotTolerance": 0.5,
            "minPowerLevel": 1,
            "maxPowerLevel": 9,
            "pullInterval": 10000,
            "accessory": "EcoforestThermostat"
        }
    ],

An unhandled error is thrown:

[14/12/2023, 19:38:09] [Example] Initializing EcoforestThermostat accessory...
[14/12/2023, 19:38:09] [Example] Example 1.1.1.1
[14/12/2023, 19:38:10] TypeError: The "path" argument must be of type string or an instance of Buffer or URL. Received undefined
    at Object.readFile (node:fs:389:10)
    at EcoforestThermostat.updateTemperatureFromFile (/usr/local/lib/node_modules/homebridge-ecoforest-thermostat/index.js:125:8)
    at EcoforestThermostat.refreshEcoforestThermostatStatus (/usr/local/lib/node_modules/homebridge-ecoforest-thermostat/index.js:92:10)
    at EcoforestThermostat.getServices (/usr/local/lib/node_modules/homebridge-ecoforest-thermostat/index.js:343:10)
    at BridgeService.createHAPAccessory (/usr/local/lib/node_modules/homebridge/src/bridgeService.ts:462:41)
    at /usr/local/lib/node_modules/homebridge/src/server.ts:382:44
    at Array.forEach (<anonymous>)
    at Server.loadAccessories (/usr/local/lib/node_modules/homebridge/src/server.ts:299:29)
    at Server.start (/usr/local/lib/node_modules/homebridge/src/server.ts:179:12)
[14/12/2023, 19:38:10] Got SIGTERM, shutting down Homebridge...
[14/12/2023, 19:38:10] AssertionError [ERR_ASSERTION]: Cannot generate setupURI on an accessory that isn't published yet!
    at Bridge.Accessory.setupURI (/usr/local/lib/node_modules/homebridge/node_modules/hap-nodejs/src/lib/Accessory.ts:994:11)
    at Server.setServerStatus (/usr/local/lib/node_modules/homebridge/src/server.ts:155:45)
    at Server.teardown (/usr/local/lib/node_modules/homebridge/src/server.ts:199:10)
    at signalHandler (/usr/local/lib/node_modules/homebridge/src/cli.ts:93:12)
    at process.emit (node:events:514:28)
    at process.emit (/usr/local/lib/node_modules/homebridge/node_modules/source-map-support/source-map-support.js:516:21)
[14/12/2023, 19:38:15] [HB Supervisor] Homebridge Process Ended. Code: 143, Signal: null
[14/12/2023, 19:38:20] [HB Supervisor] Restarting Homebridge...

Please remember that the validation in the config schema file is not enforced on the user, so they can end up with a config like mine (i did this via the plugin settings UI) so all formations of a config need to be accounted for

CyberMrProper commented 11 months ago

You are right! thanks for pointing it out, adding the fix in v1.1.6

bwp91 commented 11 months ago

Nice, I have tried various weird combinations of other configs and I cannot get it to crash so thanks for fixing that one!

The other things I would maybe suggest, but not necessary for verification:

github-actions[bot] commented 11 months ago

Congratulations! Your plugin has been verified.

You can now add one of the Verified by Homebridge badges to your plugin's README:

verified-by-homebridge

[![verified-by-homebridge](https://badgen.net/badge/homebridge/verified/purple)](https://github.com/homebridge/homebridge/wiki/Verified-Plugins)

verified-by-homebridge

[![verified-by-homebridge](https://img.shields.io/badge/homebridge-verified-blueviolet?color=%23491F59&style=for-the-badge&logoColor=%23FFFFFF&logo=homebridge)](https://github.com/homebridge/homebridge/wiki/Verified-Plugins)

Your plugin is now also eligible to display a :heart: Donate button on its tile in the Homebridge UI. See https://github.com/homebridge/homebridge/wiki/Donation-Links for instructions.

If for any reason in the future you can no longer maintain your plugin, please consider transferring it to our unmaintained plugins repo. We can take ownership until another willing developer comes along.

Don't forget to join the official Homebridge Discord server, where plugin developers can get tips and advice from other developers and the Homebridge project team in the #plugin-development channel!

Thank you for your contribution to the Homebridge Community. https://homebridge.io

CyberMrProper commented 11 months ago

Thank you!!

bwp91 commented 11 months ago

Icon added too :)