Koen Kanters
3ef7555ca2
Refactor
2020-04-05 00:05:05 +02:00
Koen Kanters
e0076367d3
Start on legacy api isolation. https://github.com/Koenkk/zigbee2mqtt/issues/3281
2020-04-04 22:47:23 +02:00
Koen Kanters
1d9d63062a
Add missing devices to configuration. #3263
2020-04-04 19:15:24 +02:00
Dustin Sallings
97a4b6b539
Add support for expiring retained messages. ( #3082 )
...
* Add support for expiring retained messages.
For most of my environmental monitoring use cases, I want the readings
retained so I can pick them up from clients at any time, but if the
sensor (or zigbee2mqtt) fails, I want the readings to go away so I can
tell the difference between a stale reading and a missing reading.
This is easily accomplished in MQTTv5 using the "message expiry
interval" property. To add that to zigbee2mqtt, I added a 'version'
option to the mqtt section so I can specify to connect with version 5
and added a 'retention' property to devices allowing me to specify how
long items should be retained.
e.g.
mqtt:
base_topic: site/zigbee2mqtt
server: 'mqtt://myserver'
user: zigbee
version: 5
serial:
port: /dev/ttyACM0
devices:
'0x00358d00022308da':
friendly_name: someroom
retain: true
retention: 900
* Also get from deviceOptions
* Update settings.js
* Update controller.js
Co-authored-by: Koen Kanters <koenkanters94@gmail.com>
2020-03-12 20:25:37 +01:00
nightdeveloper
b59d761ca6
publish announces to log topic ( #3101 )
...
* publish announces to log topic
* publish announces to log topic #test fix
* Update controller.js
* Update controller.test.js
* Update deviceAvailability.test.js
Co-authored-by: Andrey Sergeew <avsergeev@neoflex.ru>
Co-authored-by: Koen Kanters <koenkanters94@gmail.com>
2020-03-11 18:21:06 +01:00
Jorge Schrauwen
b17b9c76ef
#3009 filtered_attributes should also work in device_options ( #3057 )
2020-03-03 18:30:54 +01:00
Jorge Schrauwen
658cc21b4d
#3009 allow filtering of mqtt topics and payloads ( #3037 )
...
* Allow filtering of attributes in mqtt json payload or published attributes
* Add test for mqtt_attribute_filter
Just doing attribute_and_json should be fine as the code changes are run before this. Doing this tests lets us varify both json or seperate topic get properly filtered.
* Add test for mqtt_attribute_filter on group
* Rename mqtt_attribute_filter to filtered_attributes
2020-03-02 20:08:51 +01:00
Koen Kanters
ed75c85b69
Implement Home Assistant MQTT device trigger. #3033
2020-02-29 18:07:15 +01:00
Koen Kanters
342d4c17b9
Fix debounce, debounce_ignore, retain and qos in device_options not honored. #3004
2020-02-27 21:06:27 +01:00
Koen Kanters
83291e242e
OTA https://github.com/Koenkk/zigbee-herdsman/issues/60 ( #2920 )
...
* ota
* Bla
* Update converters.
2020-02-08 19:55:26 +01:00
Koen Kanters
4926fb85ae
Await permit join before continuing with startup. https://github.com/Koenkk/zigbee2mqtt/issues/2617
2020-01-31 22:52:39 +01:00
lukeIam
4a0059afcd
Allow attribute and json in parallel ( #2712 )
...
* Allow attribute and json in parallel
* Fix tests
Co-authored-by: Koen Kanters <koenkanters94@gmail.com>
2020-01-12 15:07:06 +01:00
Koen Kanters
cb0b0b5af9
Clear Home Assistant MQTT discovery on device remove. #2678
2020-01-09 21:47:19 +01:00
Koen Kanters
d0e9889f7d
Fix race condition when Zigbee starts. #2591
2020-01-03 23:43:04 +01:00
Koen Kanters
6b7bd9da37
Re-add model to device information. #2497
2019-12-11 20:15:42 +01:00
Wilmar den Ouden
694c45fd96
Make logging transports configurable ( #2231 )
...
* feat: Make logging optional
Signed-off-by: wilmardo <info@wilmardenouden.nl>
* feat: be more verbose about what logging is enabled
Signed-off-by: wilmardo <info@wilmardenouden.nl>
* feat: adds tests
Signed-off-by: wilmardo <info@wilmardenouden.nl>
* Updates.
* Updates
* fix tests.
* Remove onlythis.
* Remove another onlythis
* Improve test stability
* Remove another onlythis
2019-11-29 23:36:57 +01:00
Koen Kanters
af770acd2d
Make retain a optional option and default it to false.
2019-11-06 20:30:33 +01:00
Koen Kanters
cb3ec45294
Fix lint.
2019-10-26 18:25:51 +02:00
Tommy Goode
ec5064bc4d
Store last_seen in state.json, so that it is sent out correctly on restart. ( #2197 )
2019-10-24 07:46:19 +02:00
Koen Kanters
6a8abd8ff4
Fix tests.
2019-10-01 20:58:08 +02:00
Koen Kanters
b492b0ce5f
Improve logging.
2019-10-01 20:50:05 +02:00
Koen Kanters
c8eb503ae7
Simplify group optimistic mode. https://github.com/Koenkk/zigbee2mqtt/issues/764
2019-09-29 14:35:05 +02:00
Andreas Brett
d12943556c
Update controller.js ( #2040 )
...
fixed typo
2019-09-26 09:30:12 +02:00
Koen Kanters
9964d8e462
Fix various crashes when removing a device. https://github.com/Koenkk/zigbee2mqtt/issues/2004
2019-09-26 01:14:58 +02:00
Koen Kanters
62e67e99d2
Don’t publish chached states when cache_state is disabled. https://github.com/Koenkk/zigbee2mqtt/issues/2033
2019-09-25 13:15:30 +02:00
Koen Kanters
cfefaeb73c
Validate settings on startup with JSON schema.
2019-09-25 12:08:39 +02:00
Koen Kanters
41e68c8ffe
Update zigbee-herdsman to 0.7.0.
2019-09-23 22:21:27 +02:00
Koen Kanters
9e94148459
Fix group membership args. https://github.com/Koenkk/zigbee2mqtt/issues/2003
2019-09-20 22:09:11 +02:00
Koen Kanters
d4f01e6893
Replace Livolo extension with DeviceEvent. https://github.com/Koenkk/zigbee2mqtt/issues/592
2019-09-19 20:36:05 +02:00
Koenkk
1f1c771075
Make logging consistent. https://github.com/Koenkk/zigbee2mqtt/issues/1965
2019-09-15 09:13:02 +02:00
Koen Kanters
9c5b3bf4d1
Use lastSeen from zigbee-herdsman.
2019-09-12 22:48:23 +02:00
Koen Kanters
8b4e0fd865
Log stack on zigbee start error.
2019-09-10 22:07:31 +02:00
Koen Kanters
d83085ea7f
Zigbee-herdsman ( #1945 )
...
* Update zigbee-herdsman and zigbee-shepherd-converters.
* Force Aqara S2 Lock endvices (#1764 )
* Start on zigbee-herdsman controller refactor.
* More updates.
* Cleanup zapp.
* updates.
* Propagate adapter disconnected event.
* Updates.
* Initial refactor to zigbee-herdsman.
* Refactor deviceReceive to zigbee-herdsman.
* Rename
* Refactor deviceConfigure.
* Finish bridge config.
* Refactor availability.
* Active homeassistant extension and more refactors.
* Refactor groups.
* Enable soft reset.
* Activate group membership
* Start on tests.
* Enable reporting.
* Add more controller tests.
* Add more tests
* Fix linting error.
* Data en deviceReceive tests.
* Move to zigbee-herdsman-converters.
* More device publish tests.
* Cleanup dependencies.
* Bring device publish coverage to 100.
* Bring home assistant test coverage to 100.
* Device configure tests.
* Attempt to fix tests.
* Another attempt.
* Another one.
* Another one.
* Another.
* Add wait.
* Longer wait.
* Debug.
* Update dependencies.
* Another.
* Begin on availability tests.
* Improve availability tests.
* Complete deviceAvailability tests.
* Device bind tests.
* More tests.
* Begin networkmap refactors.
* start on networkmap tests.
* Network map tests.
* Add utils tests.
* Logger tests.
* Settings and logger tests.
* Ignore some stuff for coverage and add todos.
* Add remaining missing tests.
* Enforce 100% test coverage.
* Start on groups test and refactor entityPublish to resolveEntity
* Remove joinPathStorage, not used anymore as group information is stored into zigbee-herdsman database.
* Fix linting issues.
* Improve tests.
* Add groups.
* fix group membership.
* Group: log names.
* Convert MQTT message to string by default.
* Fix group name.
* Updates.
* Revert configuration.yaml.
* Add new line.
* Fixes.
* Updates.
* Fix tests.
* Ignore soft reset extension.
2019-09-09 19:48:09 +02:00
didiht
c9ec198c1f
correct log of groupid #1785 ( #1787 )
2019-08-11 14:13:44 +02:00
Koen Kanters
304b2efa48
Don’t publish emtpy messages. #1599
2019-06-19 18:11:35 +02:00
Koen Kanters
82dc8437a1
Get rid of logging during test cases.
2019-06-10 00:01:48 +02:00
Koen Kanters
8ad6aee43a
Identify QBKG04LM and QBKG03LM as end device. https://github.com/Koenkk/zigbee2mqtt/issues/1594
2019-06-04 19:23:58 +02:00
rachetfoot
caff94559e
Iterate objects recursively and support array output ( #1573 )
...
* Iterate objects recursively and support array output
* Fix eslint errors
* Improve array handling and expand related test
* Improve tests and array support, add special case for color attributes
2019-05-28 20:01:46 +02:00
Koen Kanters
c6617fb7d9
Always keep state. https://github.com/Koenkk/zigbee2mqtt/issues/1489
2019-05-02 20:14:44 +02:00
Koen Kanters
0d587f304e
Respond to time requests. https://github.com/Koenkk/zigbee2mqtt/issues/1214
2019-04-26 21:33:29 +02:00
Andreas Brett
32b76edb7c
Improve non-JSON output ( #1462 )
...
* Update controller.js
Do not use JSON.stringify when outputting Non-JSON to MQTT. When using JSON.stringify strings are quoted in the MQTT messages but they should not be quoted (MQTT is different from JSON).
* Update controller.js
* Update controller.js
* Update controller.js
2019-04-22 16:29:47 +02:00
Koen Kanters
7015741a08
Add dateCode to getDeviceInfoForMqtt. #1213
2019-03-28 19:58:21 +01:00
Koen Kanters
9ef4d2b810
Check if message has endpoints.
2019-03-27 17:31:25 +01:00
Koen Kanters
e96dac2596
Log endpoint on zigbee message received. #642
2019-03-27 17:09:55 +01:00
Oli
1b066d9f59
extend controller.js function getDeviceInfoForMqtt ( #1274 )
...
* Add Discord channel. https://github.com/Koenkk/zigbee2mqtt.io/issues/31
* extend controller.js function getDeviceInfoForMqtt
extend controller.js with
``
zclVersion,
appVersion,
stackVersion,
hwVersion,
swBuildId,
``
* Rework #2
Only Publish hwVersion and swBuildId as this seems to be valid as posible.
Map with default option 'unknown' to be in a good way.
* Fix tests
* Update README.md
2019-03-19 20:29:41 +01:00
Koen Kanters
5c9b31b2fc
Don’t create state when cache_state is set to false. #1287
2019-03-19 20:02:17 +01:00
Stoinov
6d24a49062
Expand attribute output. #493 ( #1277 )
...
* Expand attribute output. #493
If attribute is actually an Object, expand it in the format `topic/key-subkey` in order to keep the same amount of topic levels for predictable parsing.
This only expands the first level of contained object. If more expansion are needed a more robust method should be implemented rather than just nesting `if`s.
* Fixing whitespace
fixing https://travis-ci.org/Koenkk/zigbee2mqtt/builds/507616980
* first time splitting line... obviously
Not sure what the proper approach is, but I guess we can put all params on new line.
* identation... really...
How is that `eslint`? any other requests?
2019-03-18 18:17:29 +01:00
Koenkk
36bba0154d
Fix groupid logging.
2019-03-18 17:32:53 +01:00
Oli
a2a90bcdbd
Log zigbee2mqtt version information to bridge/config ( #1267 )
...
* add coordinator_firmware to bridge/config
* Add zigbee2mqtt version and commit
* Whoops
2019-03-17 20:07:24 +01:00
Koen Kanters
8b4b9bea19
Refactor property cache responsibility to state.
2019-03-15 23:18:19 +01:00
Koen Kanters
d4d85633d2
Log groupID. #1238
2019-03-15 19:07:26 +01:00
qm3ster
9321a04ecc
Move resolveEntity
into settings.js
...
Had to refer to `module.exports.`
because all of those functions get mocked in tests.
2019-03-09 16:30:05 +01:00
Koen Kanters
6427da244f
Implement attribute output. https://github.com/Koenkk/zigbee2mqtt/issues/493
2019-03-04 18:13:36 +01:00
Koen Kanters
cd2fb54615
Changes to report/bind functionallity.
2019-02-26 20:46:34 +01:00
Koen Kanters
ba77860489
Exit when zigbee-shepherd fails to start. https://github.com/Koenkk/zigbee2mqtt/issues/1110
2019-02-18 19:24:26 +01:00
Glen Takahashi
3238687f60
Add group membership command ( #1056 )
...
* Group membership
* Fix lint
* Update deviceGroupMembership.js
* Update deviceGroupMembership.js
2019-02-18 18:21:54 +01:00
Koen Kanters
259a3417e2
Coordinator group is not needed anymore. #102
2019-02-18 17:42:50 +01:00
Koen Kanters
17a6fff3ce
Publish group state. #764
2019-02-14 18:13:51 +01:00
Koen Kanters
f171d54e4b
Refactor extension names.
2019-02-13 21:03:23 +01:00
Koen Kanters
7642b295e1
Add option to enable livolo code. #592
2019-02-04 18:39:45 +01:00
Koen Kanters
c9c599b60b
Refactor publishDeviceState to publishEntityState (for future group support).
2019-02-04 18:36:49 +01:00
Koen Kanters
2302240897
Fix linting.
2019-02-03 14:39:35 +01:00
Koen Kanters
35f0def29f
Comment out Livolo switch code. #592 #1005
2019-02-03 14:25:01 +01:00
ptvo
37d516d770
Some improvements (extPanId, .configure, Livolo) ( #982 )
...
* Added the new ext_pan_id options (required update of zigbee-shepherd)
Improved code for configure
Added the new extension for Livolo.
* Formatting corrections
* Update controller.js
* Updated Livolo extension
* Improvements in the extensions for Livolo.
* Fixed conflict.
* Add default ext_pan_id.
* Remove duplicate extension.
* Update deviceConfigure.
* Update comment.
* Updates.
2019-02-02 20:09:20 +01:00
Koen Kanters
054892641b
Check availability for new devices. #775
2019-02-02 17:58:38 +01:00
Koen Kanters
b8744ce890
Add reporting feature. #966
2019-02-01 19:04:49 +01:00
Koen Kanters
17874cfdc1
Make availability_timeout non experimental. #775
2019-01-29 20:17:56 +01:00
Koen Kanters
755d101738
Fix crash when there are no endpoints. #819
2019-01-09 20:49:22 +01:00
Koen Kanters
6fdd58be8a
Update zigbee-shepherd-converters to 7.0.12.
2019-01-08 22:07:13 +01:00
Koen Kanters
92de1ca942
Implement binding feature. #765 #782 ( #783 )
...
* Start on bind implementation. https://github.com/Koenkk/zigbee2mqtt/issues/765
* Finish binding implementation.
2018-12-30 22:42:55 +01:00
Koen Kanters
5453c082c4
Fix typo availablility -> availability. #777 #775
2018-12-30 20:08:31 +01:00
Gergely Markics
afeed4f372
Add device availability functionality for HASS based on router devices ping and attribute reporting also available on battery-powered devices ( #761 )
...
* Discovery on HASS restart and last_message attribute added
- On restarting Home Assistant, resending device discovery information
- Add timestamp on receiving message from Zigbee
* Add option: add_timestamp in settings
* typo
* Update homeassistant.js
* Update homeassistant.js
* Update homeassistant.js
* Update controller.js
* Update zigbee.js
* Add files via upload
* Update zigbee.js
* Update deviceAvailabilityHandler.js
* Update deviceAvailabilityHandler.js
* Update deviceAvailabilityHandler.js
* Update deviceAvailabilityHandler.js
* Update deviceAvailabilityHandler.js
* Update deviceAvailabilityHandler.js
* Update deviceAvailabilityHandler.js
* Update homeassistant.js
* Update deviceAvailabilityHandler.js
* Update deviceAvailabilityHandler.js
* Update homeassistant.js
* Fix checkonline callback.
* Refactor.
* Refactor.
2018-12-29 19:55:59 +01:00
Koen Kanters
d3f705162d
Group support #15 ( #745 )
...
* Start on group support. #15
* Implement publishing to zigbee groups. https://github.com/Koenkk/zigbee2mqtt/issues/15
* Complete first version of group support.
* Fix tests.
2018-12-22 00:07:53 +01:00
Koenkk
698b40554e
Improve tests.
2018-12-06 21:27:41 +01:00
Koenkk
cb9beaa2ad
Fix getDeviceInfoForMqtt crash. https://github.com/Koenkk/zigbee2mqtt/issues/632
2018-12-06 21:27:41 +01:00
Koenkk
6df4e39f18
Refactor!
2018-12-06 21:27:36 +01:00
Koenkk
9119e54c2c
Prepare for read commands. https://github.com/Koenkk/zigbee2mqtt/issues/518
2018-11-05 21:55:30 +01:00
Koenkk
ddb83cc6e4
Handle zigbee commands sequentially (and refactor it). #529
2018-10-23 20:39:48 +02:00
Simon van der Veldt
c04ed81adb
Fix typo in logging messages ( #486 )
2018-10-16 17:51:54 +02:00
Koen Kanters
a1cf75456b
Fix state caching. #485
2018-10-16 17:34:46 +02:00
Koenkk
1db926173d
Refactor router polling & only poll Xiaomi routers, refactor soft reset timeout and disable by default. #274
2018-10-02 21:15:12 +02:00
Koenkk
da9ee71d80
Fix crash when deviceSettings are missing.
2018-10-02 20:35:14 +02:00
Koenkk
e55252b9ff
Mock state ON when moveToLevelWithOnOff succeeds. https://github.com/Koenkk/zigbee-shepherd-converters/pull/81
2018-09-29 23:05:18 +02:00
Koenkk
71d12c3c71
Revert "Allow joining through specified device."
...
This reverts commit bf85ea1494
.
2018-09-29 23:05:18 +02:00
Koenkk
bc7b2bd5e0
Allow joining through specified device.
2018-09-29 23:05:18 +02:00
Koenkk
50d58d3dff
Always call zigbee shepherd permit join (in both true and false).
2018-09-29 23:05:18 +02:00
Viet Dzung
b06e3b61f2
Support cfg in foundation and functional ( #390 )
...
* Support cfg in foundation and functional
* Update zigbee-shepherd-converters.
2018-09-29 23:05:18 +02:00
Stanislav Demydiuk
03d913defc
Add ability to send device information in MQTT message payload ( #374 )
2018-09-29 23:05:18 +02:00
Koen Kanters
75acffa8c7
Fix topicPrefix parsing. #387
2018-09-21 11:12:51 +02:00
Koenkk
ade84dc6c0
Fix MQTT command with prefix, introduced in #c22f8b3. #387
2018-09-20 16:16:57 +02:00
Koen Kanters
53051e9192
Merge pull request #351 from lolorc/linkquality0
...
don't ignore linkquality when its value is 0
2018-09-11 21:42:03 +02:00
Koen Kanters
b82f0e46aa
Use hasOwnProperty for linkquality check. https://stackoverflow.com/questions/13632999/if-key-in-object-or-ifobject-hasownpropertykey
2018-09-11 21:38:01 +02:00
Koenkk
8433571b1e
Refactor multiple foundation.
2018-09-11 21:28:30 +02:00
Koenkk
f463ca68a5
Improve zigbee message debug logging.
2018-09-10 18:06:29 +02:00
Laurent
7502ba5312
don't ignore linkquality when its value is 0
2018-09-09 19:28:38 +02:00
Koen Kanters
c05b70b30b
Merge pull request #325 from sebastianheierhoff/master
...
Fix issue #306 : Sending config msg works only with default topic
2018-09-03 16:24:23 +02:00
sebastianheierhoff
c22f8b36ba
Fix issue #306 : Sending config msg works only with default topic
2018-08-31 12:34:59 +02:00
Koen Kanters
1b7549dd73
Merge pull request #316 from sebastianheierhoff/master
...
Fix issue #229 : router devices can't be managed by zigbee2mqtt
2018-08-30 17:59:22 +02:00
sebastianheierhoff
ad43d61f28
Fix issue #229 : router devices can't be managed by zigbee2mqtt
2018-08-29 19:22:36 +02:00
sebastianheierhoff
ed5c52654f
Fix issue #229 : router devices can't be managed by zigbee2mqtt
2018-08-29 19:19:54 +02:00