* 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
* POC: Allow hierarchical filtering of logger namespaces
matches the closes defined namespace log level:
advanced:
log_namespaced_levels:
'zh:zstack:unpi': info
would also apply to zh:zstack:unpi:write and zh:zstack:unpi:parse
To limit runtime penalty uses the namespacedLevels as a lazy cache
* Move namespace levels to separate cache
Avoid poluting the namespacedLevel in the config / UI
Add cache reset on config time log level change
* Actually use the cache
* Optimize/Cleanup
* Add some namespace hierarchy filter tests
* More coverage.
* Fix#22935
---------
Co-authored-by: Nerivec <62446222+Nerivec@users.noreply.github.com>
* Add function resolveEntityByID() function as an improved alternative for parseEntityID()
* Port deviceGroupMembership.ts from parseEntityID() to resolveEntityByID()
* Migrade groups.ts from parseEntityID() to resolveEntityByID()
* Improve test coverage on groups functionality
* Migrate from parseEntityID() to resolveEntityByID() for bridge functionality
* Migrate from parseEntityID() to resolveEntityByID() for bind functionality
* Finally get rid of parseEntityID() function
* Fix linter issues
* Move resolveEntityAndEndpoint() function to zigbee.ts
---------
Co-authored-by: Koen Kanters <koenkanters94@gmail.com>
* Add endpoint matching based on the endpoint names list in the device definition
* Cleanup debug prints
* Correct creating endpoint names list, filter out null elements
* Correct test due to slightly changed behavior
* Fix endpoint name lookup when converter does not provide full name-to-id mapping
* Simplify topic name matching
* Remove obsolete branches, improve code coverage
* Make linter happy
* Make linter happy
* Remove dependency on endpoint names while removing device from all groups
* Get rid of predefined list of endpoints when processing group state update
---------
Co-authored-by: Koen Kanters <koenkanters94@gmail.com>
* Always return an object when loading a YAML file, even when it is empty or containing the `null` value.
Fixes#20283
* Add unit test for having multiple device files, with one is empty. This test breaks without the proposed.
* Add device info for Zigbee Groups
* Move Scene and getScenes to utils.ts
* Add auto-discovery for group scenes
* Update scene auto-discovery on change
* Add support for single endpoint scenes
* Add test for onScenesChanged
* Move Scene to types.d.ts
* Allow optional object_id_postfix key in payload
* Add scene name to object_id for nicer HA entity_id
* fix for TypeError: The "path" argument must be of type string in writeDevicesOrGroups
* added test case that produces the error when running on old implementation
Summary of all failing tests
FAIL test/settings.test.js
● Settings › Should add devices even when devices exist empty
TypeError: The "path" argument must be of type string. Received undefined
275 |
276 | jest.mock('../../lib/util/data', () => ({
> 277 | joinPath: (file) => require('path').join(mockDir, file),
| ^
278 | getPath: () => mockDir,
279 | }));
280 |
at Object.join [as joinPath] (test/stub/data.js:277:41)
at joinPath (lib/util/settings.ts:245:38)
at writeDevicesOrGroups (lib/util/settings.ts:250:5)
at Object.write [as addDevice] (lib/util/settings.ts:555:5)
at Object.addDevice (test/settings.test.js:128:18)