* feat: Live loading of external JS (converters/extensions)
* Fix imports
* Improve error message on MQTT save
* Handle non-existing base path
* Throw on bad converter
* Add tests
* Fix use of ext conv in network map tests.
* More coverage.
* Dont mock zhc for basics, tests actual live loading
* Update
* feat: Live loading of external JS (converters/extensions)
* Fix imports
* Improve error message on MQTT save
* Handle non-existing base path
* Throw on bad converter
* Add tests
* Fix use of ext conv in network map tests.
* More coverage.
* Dont mock zhc for basics, tests actual live loading
* Update
* Fix rebase
* Fix
* Bump zhc
* pretty
* fix typing
* Cleanup `external_converters` setting remnants.
---------
Co-authored-by: Koen Kanters <koenkanters94@gmail.com>
* fix: Use async for mqtt.
* Update mocks, fix expects
* Prettier.
* Use appropriate error for publish
* Set max listeners immediately after connect
* Add mqtt v5+ `disconnect` event handler
* Set maximum packet size in `CONNECT` packet
* Fix tests.
* Add setting for maximum packet size.
* Add `reasonString` to disconnect logs
* Fix tests
* Fix
* Prettier
* Improve bind/bridge/groups parsing and resolving consistency
* Fix mqtt payload casing. Improve typing.
* Cleanup tests
* Add test for bind endpoint by ID.
* Match behavior for group response 'default' endpoint.
Old versions of connect-gzip-static are not compatible with node 23,
new versions of connect-gzip-static are not compatible with node 18,
but we want to support both. express-static-gzip is compatible with
all versions.
* basic spam control
* used npm run pretty:write
* add test for SPAMMER description to comply with 100% coverage test
* define friendly name to spammer test devices
* Update README.md
Co-authored-by: Koen Kanters <koenkanters94@gmail.com>
* trying now with throttleit library
* lint corrections
* last lint request
* correct await / async definiction
* remove description support
* change first command to be executed
---------
Co-authored-by: Koen Kanters <koenkanters94@gmail.com>
* Fire event when group gets removed
* Add a unit test for the new behavior
* Make prettier happy
* Add missing return type
* Merge device and group removal events
* Unbreak bridgeLegacy.ts
* Update homeassistant.ts
* Update bridge.ts
* Update bridge.ts
---------
Co-authored-by: Koen Kanters <koenkanters94@gmail.com>
* Added function to override payloads for non-conforming devices
* override implementation for Bosch BTH-RA
* unit test including mockup for this device
* Experimental and broken integration of overrideHaConfig
* Not working experiments; mqtt publish debug output
* fixes
* Updates
* fix
---------
Co-authored-by: Koen Kanters <koenkanters94@gmail.com>
* fix: OTA loses version info for develco/frient
This fix is not perfect, as it will still print that it got updated from null to null.
We just moved the reconfigure later, which will trigger this https://github.com/Koenkk/zigbee-herdsman-converters/blob/000041cba216822dab151151c493b560678da91a/src/devices/develco.ts#L36
for develco/frient devices that have it in their configure. (Which should be all of them)
Of note though, ZCL marks both dateCode and swBuildId as optional attributes, so Develco/Frient returning UNSUPPORTED_ATTRIBUTE here is not outside of spec. Although I'm not sure there is a cleaner way to do this.
* Update otaUpdate.test.js
* Update otaUpdate.ts
---------
Co-authored-by: Koen Kanters <koenkanters94@gmail.com>
* exclude homeassistant entries from null cleanup
* Add a test
* Don't hardcode the exclude list, add one more test
* implement suggested changes as per review
* Differentiate the spammy "MQTT publish"/"received MQTT message" from regular logs
Rather than creating subnamespaces, keep the z2m:mqtt logger namespace only for those 2 , move back to z2m default for the rest.
* fix tests