diff --git a/.gitignore b/.gitignore index 24c6aa9..2e1cedc 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,6 @@ +# Zigbee2MQTT repo rule +config/configuration.yaml + # ---> Linux *~ diff --git a/bin/c2r.py b/bin/c2r.py new file mode 100644 index 0000000..b9331b7 --- /dev/null +++ b/bin/c2r.py @@ -0,0 +1,47 @@ +#!/bin/python3 +# +import re +import sys + +s = """homeassistant: false +permit_join: false +mqtt: + base_topic: zigbee/gfw + server: mqtt://mqtt + user: smarthome + password: Tc1IsZENNnSldRu8CGA6 +serial: + port: /dev/ttyACM0 +advanced: + ikea_ota_use_test_url: true + legacy_api: false + log_level: debug + channel: 15 + homeassistant_legacy_entity_attributes: false + legacy_availability_payload: false +""" +try: + src_file = sys.argv[1] + dst_file = sys.argv[2] +except IndexError: + print(sys.argv[0], " ") + sys.exit(17) + +try: + with open(src_file, 'r') as fh: + s = fh.read() +except (PermissionError, FileNotFoundError) as e: + print("Unable to open", '"' + src_file + '"') + sys.exit(18) + +n = re.sub('^.*server: .*', ' server: ', s, flags=re.MULTILINE) +n = re.sub('^.*user: .*', ' user: ', n, flags=re.MULTILINE) +n = re.sub('^.*password: .*', ' password: ', n, flags=re.MULTILINE) +n = re.sub('^.*auth_token: .*', ' auth_token: ', n, flags=re.MULTILINE) + +try: + with open(dst_file, 'w') as fh: + fh.write(n) +except PermissionError: + print("Unable to write", '"' + dst_file + '"') + sys.exit(19) diff --git a/config/coordinator_backup.json b/config/coordinator_backup.json new file mode 100644 index 0000000..d20b357 --- /dev/null +++ b/config/coordinator_backup.json @@ -0,0 +1,46 @@ +{ + "metadata": { + "format": "zigpy/open-coordinator-backup", + "version": 1, + "source": "zigbee-herdsman@0.16.0", + "internal": { + "date": "2023-10-07T17:24:28.826Z", + "ezspVersion": 8 + } + }, + "stack_specific": { + "ezsp": { + "hashed_tclk": "3efc7b979ea73a945f94929a94c0b116" + } + }, + "coordinator_ieee": "e0798dfffe718d5d", + "pan_id": "1a62", + "extended_pan_id": "dddddddddddddddd", + "nwk_update_id": 0, + "security_level": 5, + "channel": 15, + "channel_mask": [ + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 23, + 24, + 25, + 26 + ], + "network_key": { + "key": "0c9cdb83d43567de1ce0dc36a08f07e7", + "sequence_number": 0, + "frame_counter": 12830023 + }, + "devices": [] +} \ No newline at end of file diff --git a/config/database.db b/config/database.db new file mode 100644 index 0000000..42f1583 --- /dev/null +++ b/config/database.db @@ -0,0 +1,9 @@ +{"id":1,"type":"Coordinator","ieeeAddr":"0xe0798dfffe718d5d","nwkAddr":0,"manufId":0,"epList":[1,242],"endpoints":{"1":{"profId":260,"epId":1,"devId":48879,"inClusterList":[0,3,6,10,25,26,768],"outClusterList":[0,3,4,5,6,8,32,768,1024,1026,1029,1030,1280,2817,2819,2820,1794,4096,64513,64514],"clusters":{},"binds":[],"configuredReportings":[],"meta":{}},"242":{"profId":41440,"epId":242,"devId":97,"inClusterList":[],"outClusterList":[33],"clusters":{},"binds":[],"configuredReportings":[],"meta":{}}},"interviewCompleted":true,"meta":{},"lastSeen":1690531391508,"defaultSendRequestWhen":"immediate"} +{"id":2,"type":"Router","ieeeAddr":"0x003c84fffe42092a","nwkAddr":34671,"manufId":4476,"manufName":"IKEA of Sweden","powerSource":"Mains (single phase)","modelId":"TRADFRI bulb E14 WS globe 470lm","epList":[1,242],"endpoints":{"1":{"profId":260,"epId":1,"devId":268,"inClusterList":[0,3,4,5,6,8,768,4096,64599],"outClusterList":[25],"clusters":{"genBasic":{"attributes":{"modelId":"TRADFRI bulb E14 WS globe 470lm","manufacturerName":"IKEA of Sweden","powerSource":1,"zclVersion":8,"appVersion":17,"stackVersion":106,"hwVersion":1,"dateCode":"20211201","swBuildId":"1.1.003"}},"lightingColorCtrl":{"attributes":{"colorCapabilities":16,"colorTempPhysicalMin":250,"colorTempPhysicalMax":454}}},"binds":[],"configuredReportings":[],"meta":{}},"242":{"profId":41440,"epId":242,"devId":97,"inClusterList":[33],"outClusterList":[33],"clusters":{},"binds":[],"configuredReportings":[],"meta":{}}},"appVersion":17,"stackVersion":106,"hwVersion":1,"dateCode":"20211201","swBuildId":"1.1.003","zclVersion":8,"interviewCompleted":true,"meta":{"configured":88764544},"lastSeen":1696410662038,"defaultSendRequestWhen":"immediate"} +{"id":3,"type":"EndDevice","ieeeAddr":"0x000b57fffec5c877","nwkAddr":53251,"manufId":4476,"manufName":"IKEA of Sweden","powerSource":"Battery","modelId":"TRADFRI remote control","epList":[1],"endpoints":{"1":{"profId":260,"epId":1,"devId":2080,"inClusterList":[0,1,3,32,4096,64636],"outClusterList":[3,4,5,6,8,25,4096],"clusters":{"genPollCtrl":{"attributes":{"checkinInterval":172800}},"genPowerCfg":{"attributes":{"batteryPercentageRemaining":60}}},"binds":[{"cluster":32,"type":"endpoint","deviceIeeeAddress":"0xe0798dfffe718d5d","endpointID":1},{"cluster":6,"type":"endpoint","deviceIeeeAddress":"0xe0798dfffe718d5d","endpointID":1},{"cluster":1,"type":"endpoint","deviceIeeeAddress":"0xe0798dfffe718d5d","endpointID":1}],"configuredReportings":[{"cluster":1,"attrId":33,"minRepIntval":3600,"maxRepIntval":62000,"repChange":0}],"meta":{}}},"appVersion":33,"stackVersion":98,"hwVersion":1,"dateCode":"20210727","swBuildId":"2.3.080","zclVersion":3,"interviewCompleted":true,"meta":{"configured":2040954255},"lastSeen":1696745953351,"defaultSendRequestWhen":"active","checkinInterval":43200} +{"id":4,"type":"EndDevice","ieeeAddr":"0x84ba20fffe82ed8c","nwkAddr":35866,"manufId":4098,"manufName":"_TZE200_hhrtiq0x","powerSource":"Battery","modelId":"TS0601","epList":[1],"endpoints":{"1":{"profId":260,"epId":1,"devId":81,"inClusterList":[0,4,5,61184],"outClusterList":[25,10],"clusters":{"genBasic":{"attributes":{"65503":"B\n�,\u0011�\n�,\u0011","65506":31,"65508":0,"modelId":"TS0601","manufacturerName":"_TZE200_hhrtiq0x","powerSource":3,"zclVersion":3,"appVersion":85,"stackVersion":0,"hwVersion":1,"dateCode":""}}},"binds":[],"configuredReportings":[],"meta":{}}},"appVersion":85,"stackVersion":0,"hwVersion":1,"dateCode":"","zclVersion":3,"interviewCompleted":true,"meta":{},"lastSeen":1696745702404,"defaultSendRequestWhen":"immediate"} +{"id":5,"type":"Router","ieeeAddr":"0x000b57fffeb2332c","nwkAddr":8884,"manufId":4476,"manufName":"IKEA of Sweden","powerSource":"Mains (single phase)","modelId":"FLOALT panel WS 30x30","epList":[1],"endpoints":{"1":{"profId":49246,"epId":1,"devId":544,"inClusterList":[0,3,4,5,6,8,768,2821,4096],"outClusterList":[5,25,32,4096],"clusters":{"genBasic":{"attributes":{"modelId":"FLOALT panel WS 30x30","manufacturerName":"IKEA of Sweden","powerSource":1,"zclVersion":1,"appVersion":18,"stackVersion":87,"hwVersion":1,"dateCode":"20200107","swBuildId":"1.2.224"}},"lightingColorCtrl":{"attributes":{"colorCapabilities":16,"colorTempPhysicalMin":250,"colorTempPhysicalMax":454}}},"binds":[],"configuredReportings":[],"meta":{}}},"appVersion":18,"stackVersion":87,"hwVersion":1,"dateCode":"20200107","swBuildId":"1.2.224","zclVersion":1,"interviewCompleted":true,"meta":{"configured":88764544},"lastSeen":1696531443856,"defaultSendRequestWhen":"immediate"} +{"id":6,"type":"EndDevice","ieeeAddr":"0x84ba20fffe82ea89","nwkAddr":45098,"manufId":4098,"manufName":"_TZE200_hhrtiq0x","powerSource":"Battery","modelId":"TS0601","epList":[1],"endpoints":{"1":{"profId":260,"epId":1,"devId":81,"inClusterList":[0,4,5,61184],"outClusterList":[25,10],"clusters":{"genBasic":{"attributes":{"65503":"w\n�,\u0011�\n�,\u0011","65506":31,"65508":0,"modelId":"TS0601","manufacturerName":"_TZE200_hhrtiq0x","powerSource":3,"zclVersion":3,"appVersion":85,"stackVersion":0,"hwVersion":1,"dateCode":""}}},"binds":[],"configuredReportings":[],"meta":{}}},"appVersion":85,"stackVersion":0,"hwVersion":1,"dateCode":"","zclVersion":3,"interviewCompleted":true,"meta":{},"lastSeen":1696746106229,"defaultSendRequestWhen":"immediate"} +{"id":7,"type":"EndDevice","ieeeAddr":"0xcc86ecfffea41814","nwkAddr":50175,"manufId":4619,"manufName":"_TZ1800_fcdjzz3s","powerSource":"Battery","modelId":"TY0202","epList":[1],"endpoints":{"1":{"profId":260,"epId":1,"devId":1026,"inClusterList":[0,1,3,1280,2821],"outClusterList":[25],"clusters":{"genBasic":{"attributes":{"modelId":"TY0202","manufacturerName":"_TZ1800_fcdjzz3s","powerSource":3,"zclVersion":1,"appVersion":67,"stackVersion":2,"hwVersion":1,"dateCode":"2021.1.5"}},"ssIasZone":{"attributes":{"iasCieAddr":"0xe0798dfffe718d5d","zoneState":1}},"genPowerCfg":{"attributes":{"batteryPercentageRemaining":190,"batteryVoltage":29}}},"binds":[{"cluster":1,"type":"endpoint","deviceIeeeAddress":"0xe0798dfffe718d5d","endpointID":1}],"configuredReportings":[{"cluster":1,"attrId":32,"minRepIntval":3600,"maxRepIntval":62000,"repChange":0},{"cluster":1,"attrId":33,"minRepIntval":3600,"maxRepIntval":62000,"repChange":0}],"meta":{}}},"appVersion":67,"stackVersion":2,"hwVersion":1,"dateCode":"2021.1.5","zclVersion":1,"interviewCompleted":true,"meta":{"configured":172811876},"lastSeen":1696744975177,"defaultSendRequestWhen":"immediate"} +{"id":8,"type":"Router","ieeeAddr":"0xb4e3f9fffe08e0e9","nwkAddr":24345,"manufId":4098,"manufName":"_TZ3210_p9ao60da","powerSource":"Mains (single phase)","modelId":"TS0505B","epList":[1,242],"endpoints":{"1":{"profId":260,"epId":1,"devId":269,"inClusterList":[0,3,4,5,6,4096,8,768,61184],"outClusterList":[25,10],"clusters":{"genBasic":{"attributes":{"modelId":"TS0505B","manufacturerName":"_TZ3210_p9ao60da","powerSource":1,"zclVersion":3,"appVersion":64,"stackVersion":0,"hwVersion":1,"dateCode":""}},"lightingColorCtrl":{"attributes":{"colorCapabilities":29}},"genOnOff":{"attributes":{"onOff":1}}},"binds":[],"configuredReportings":[],"meta":{}},"242":{"profId":41440,"epId":242,"devId":97,"inClusterList":[],"outClusterList":[33],"clusters":{},"binds":[],"configuredReportings":[],"meta":{}}},"appVersion":64,"stackVersion":0,"hwVersion":1,"dateCode":"","zclVersion":3,"interviewCompleted":true,"meta":{"configured":1842547789},"lastSeen":1696702355547,"defaultSendRequestWhen":"immediate"} +{"id":9,"type":"Router","ieeeAddr":"0x540f57fffe9411c5","nwkAddr":11732,"manufId":4098,"manufName":"_TZ3210_p9ao60da","powerSource":"Mains (single phase)","modelId":"TS0505B","epList":[1,242],"endpoints":{"1":{"profId":260,"epId":1,"devId":269,"inClusterList":[0,3,4,5,6,4096,8,768,61184],"outClusterList":[25,10],"clusters":{"genBasic":{"attributes":{"modelId":"TS0505B","manufacturerName":"_TZ3210_p9ao60da","powerSource":1,"zclVersion":3,"appVersion":64,"stackVersion":0,"hwVersion":1,"dateCode":""}},"lightingColorCtrl":{"attributes":{"colorCapabilities":29}},"genOnOff":{"attributes":{"onOff":1}}},"binds":[],"configuredReportings":[],"meta":{}},"242":{"profId":41440,"epId":242,"devId":97,"inClusterList":[],"outClusterList":[33],"clusters":{},"binds":[],"configuredReportings":[],"meta":{}}},"appVersion":64,"stackVersion":0,"hwVersion":1,"dateCode":"","zclVersion":3,"interviewCompleted":true,"meta":{"configured":1842547789},"lastSeen":1696702355600,"defaultSendRequestWhen":"immediate"} \ No newline at end of file diff --git a/config/state.json b/config/state.json new file mode 100644 index 0000000..0ce77d6 --- /dev/null +++ b/config/state.json @@ -0,0 +1,79 @@ +{ + "0x003c84fffe42092a": { + "color_mode": "color_temp", + "update": { + "state": "idle" + }, + "brightness": 178, + "state": "ON", + "color_temp": 413, + "linkquality": 248 + }, + "0x84ba20fffe82ed8c": { + "battery": 5, + "local_temperature": 25.1, + "linkquality": 216, + "window_detection": "ON", + "current_heating_setpoint": 25, + "preset": "manual", + "away_mode": "OFF", + "system_mode": "heat", + "valve_detection": "ON", + "child_lock": "UNLOCK" + }, + "0x000b57fffeb2332c": { + "color_mode": "color_temp", + "update": { + "state": "idle", + "installed_version": 304235891, + "latest_version": 304235891 + }, + "linkquality": 240, + "brightness": 107, + "state": "ON", + "color_temp": 413 + }, + "0xcc86ecfffea41814": { + "battery": 95, + "voltage": 2900, + "occupancy": false, + "tamper": false, + "battery_low": false, + "linkquality": 156 + }, + "0x84ba20fffe82ea89": { + "battery": 5, + "linkquality": 168, + "local_temperature": 22.8, + "window_detection": "ON", + "current_heating_setpoint": 23, + "preset": "manual", + "away_mode": "OFF", + "system_mode": "heat", + "valve_detection": "ON", + "child_lock": "UNLOCK" + }, + "0x540f57fffe9411c5": { + "brightness": 19, + "state": "ON", + "color_mode": "color_temp", + "color_temp": 413, + "linkquality": 116 + }, + "0xb4e3f9fffe08e0e9": { + "brightness": 19, + "state": "ON", + "color_mode": "color_temp", + "color_temp": 413, + "linkquality": 60 + }, + "0x000b57fffec5c877": { + "battery": 60, + "linkquality": 196, + "update": { + "state": "idle", + "installed_version": 587728433, + "latest_version": 587286065 + } + } +} \ No newline at end of file diff --git a/config_example/.gitkeep b/config_example/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/config_example/configuration.yaml b/config_example/configuration.yaml new file mode 100644 index 0000000..bae0ae4 --- /dev/null +++ b/config_example/configuration.yaml @@ -0,0 +1,42 @@ +homeassistant: false +permit_join: false +mqtt: + base_topic: zigbee/gfw + server: + user: + password: +serial: + port: /dev/ttyACM0 +advanced: + ikea_ota_use_test_url: true + legacy_api: false + log_level: debug + channel: 15 + homeassistant_legacy_entity_attributes: false + legacy_availability_payload: false +frontend: + port: 8038 + host: 0.0.0.0 + auth_token: + url: http://localhost +devices: + '0x84ba20fffe82ed8c': + friendly_name: dirk/heating_valve + '0xcc86ecfffea41814': + friendly_name: stairway/motion_sensor_gf + '0x60a423fffe07bc02': + friendly_name: marion/desk_light + '0x003c84fffe42092a': + friendly_name: dirk/desk_light + '0x84ba20fffe82ea89': + friendly_name: marion/heating_valve + '0xb4e3f9fffe08e0e9': + friendly_name: floor/main_light_1 + '0x540f57fffe9411c5': + friendly_name: floor/main_light_2 + '0xb4e3f9fffe7813eb': + friendly_name: sunroom/router + '0x000b57fffeb2332c': + friendly_name: dirk/main_light + '0x000b57fffec5c877': + friendly_name: dirk/input_device