Use relative timestamps for the network map (e.g, `1 hour, 43 minutes ago` or `15 minutes, 10 seconds ago`), since that is easier to understand/decode than the standard ISO timestamps.
This introduces an additional (light weight) dependency to [humanize-duration](https://github.com/EvanHahn/HumanizeDuration.js) which in itself doesn't have any additional dependencies.
Co-authored-by: Konstantin Baumann <konstantin.baumann@autodesk.com>
* 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>
* 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
* Added log_file name setting
Added log_file to schema while preserving the default log.txt setting.
Added option to logger to use the filename and support for the %timestamp% var.
* Update logger.js
Added the filename to the console/log output.
* Added endpoints for Busch-Jaeger
* Added RM01 to homeassistant.js
* Updated mapping to reflect latest change in converter
* Renamed endpoint according to converted PR
Co-authored-by: Koen Kanters <koenkanters94@gmail.com>
* Accept json for add_group so a groupID can be provided, also set retain property on group creation
* Update util/settings tests for groupID and retain
* Update bridgeConfig tests for add_group with json