* 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
* Fix extension path to make debugginge easier in VScode
* Fix linting error
* Add setting "cache_state_persist_on_leave" (default false)
This setting does not remove a device from State if it leaves the network
* Merge from upstream kk/dev
* Re-define cache_state_persist_on_leave to be a timeout
Allows the config to specify how long the state should be held (and the device to re-join & maintain the state).
Remove all pending deletions if the system is stopped
* Add debug. Fix "time" test
* Disable esline warnings for long debug lines
* Simplify state maintenance for leave/join devices
* Restore default configuration.yaml
* Don't track device presence via events, but examine herdsman on system stop
* Update configuration.yaml
* Update state.ts
* Update state.ts
* Update controller.test.js
* Update eventBus.ts
* Update eventBus.ts
Co-authored-by: Koen Kanters <koenkanters94@gmail.com>
* Fix mnodule resolution
Allows the correct module path to be found if installed as a package
* Correct signature to avoid TS error
* Allow module to be included in another module
Only create hash ot auto-start if it is the main module, otherwise export the `start` function
* Ensure filtered_attributes and filtered_optimistic are also regex
Bring filtered_attributes and filtered_optimistic in line with the newer filtered_cache.
All three of them are now regex matches instead of absolute matches.
* update tests to use regex ^$ anchors
* utils: add filterProperties