From e8170bb8d7e875d2781d2d97d2323e8c1889d47f Mon Sep 17 00:00:00 2001 From: hank Date: Thu, 18 Nov 2021 23:54:32 +0100 Subject: [PATCH 1/2] Add SSP 302 --- .homeycompose/app.json | 1 + README.md | 3 +- README.txt | 1 + app.json | 79 +++++++++++++++++++++ drivers/ssp302/assets/images/large.jpg | Bin 0 -> 18642 bytes drivers/ssp302/assets/images/learnmode.svg | 5 ++ drivers/ssp302/assets/images/small.jpg | Bin 0 -> 2432 bytes drivers/ssp302/device.js | 13 ++++ drivers/ssp302/driver.compose.json | 51 +++++++++++++ drivers/ssp302/icon.svg | 5 ++ 10 files changed, 157 insertions(+), 1 deletion(-) create mode 100644 drivers/ssp302/assets/images/large.jpg create mode 100644 drivers/ssp302/assets/images/learnmode.svg create mode 100644 drivers/ssp302/assets/images/small.jpg create mode 100644 drivers/ssp302/device.js create mode 100644 drivers/ssp302/driver.compose.json create mode 100644 drivers/ssp302/icon.svg diff --git a/.homeycompose/app.json b/.homeycompose/app.json index 16b8356..cdd818b 100644 --- a/.homeycompose/app.json +++ b/.homeycompose/app.json @@ -25,6 +25,7 @@ "ses303", "srt321", "srt323", + "ssp302", "ssr302", "ssr303", "HRT4-ZW", diff --git a/README.md b/README.md index 7b43108..64f7c39 100644 --- a/README.md +++ b/README.md @@ -13,7 +13,8 @@ Adds support for Secure (previously Horstmann) devices to Homey. - [SES 302 Temperature Sensor](https://products.z-wavealliance.org/products/1240) - [Manual](https://products.z-wavealliance.org/ProductManual/File?folder=&filename=MarketCertificationFiles/1240/SES%20302%20and%20303%20TH%20Sensors%20User%20Installation%20Manual,%20(Secure%20Controls%20UK%20Ltd)%20BGX501-923-R02.pdf) - [SES 303 Temperature & Humidity Sensor](https://products.z-wavealliance.org/products/1175) - [Manual](https://products.z-wavealliance.org/ProductManual/File?folder=&filename=MarketCertificationFiles/1240/SES%20302%20and%20303%20TH%20Sensors%20User%20Installation%20Manual,%20(Secure%20Controls%20UK%20Ltd)%20BGX501-923-R02.pdf) - [SRT 323 Thermostat](https://products.z-wavealliance.org/products/1241) -- [SSR 302 Dual Channel Power Switch](https://products.z-wavealliance.org/products/1619) - [Manual](https://products.z-wavealliance.org/ProductManual/File?folder=&filename=MarketCertificationFiles/1619/SSR%20302%20User%20Manual.pdf) +- [SRP 302 Thermostat](https://products.z-wavealliance.org/products/1241) +- [SSR 302 Smart Plug](https://products.z-wavealliance.org/products/1257) - [Manual](https://products.z-wavealliance.org/ProductManual/File?folder=&filename=MarketCertificationFiles/1257/SSP%20302%20User%20Manual%20for%20Web.pdf) - [SSR 303 / ASR-ZW Power Switch](https://products.z-wavealliance.org/products/1618) - [Manual](https://products.z-wavealliance.org/ProductManual/File?folder=&filename=MarketCertificationFiles/1618/SSR%20303%20User%20Manual.pdf) diff --git a/README.txt b/README.txt index 81fab3f..82b9dd6 100644 --- a/README.txt +++ b/README.txt @@ -10,5 +10,6 @@ SES 202 SES 302 SES 303 SRT 323 +SSP 302 SSR 302 SSR 303 / ASR-ZW diff --git a/app.json b/app.json index ba5cc80..a5043f4 100644 --- a/app.json +++ b/app.json @@ -26,6 +26,7 @@ "ses303", "srt321", "srt323", + "ssp302", "ssr302", "ssr303", "HRT4-ZW", @@ -619,6 +620,84 @@ } ] }, + { + "class": "socket", + "capabilities": [ + "onoff" + ], + "images": { + "large": "/drivers/ssp302/assets/images/large.jpg", + "small": "/drivers/ssp302/assets/images/small.jpg" + }, + "pair": [ + { + "id": "list_devices", + "template": "list_devices", + "navigation": { + "next": "add_devices" + } + }, + { + "id": "add_devices", + "template": "add_devices" + } + ], + "id": "ssp302", + "name": { + "en": "SSP302" + }, + "zwave": { + "manufacturerId": 89, + "productTypeId": 17, + "productId": [ + 1, + 2 + ], + "zwaveAllianceProductId": 1257, + "zwaveAllianceProductDocumentation": "https://products.z-wavealliance.org/ProductManual/File?folder=&filename=MarketCertificationFiles/1257/SSP%20302%20User%20Manual%20for%20Web.pdf", + "associationGroups": [ + 1, + 2, + 3, + 4, + 5 + ], + "associationGroupsOptions": { + "1": { + "hint": { + "en": "Lifeline" + } + }, + "2": { + "hint": { + "en": "Power" + } + }, + "3": { + "hint": { + "en": "Electrical Parameter" + } + }, + "4": { + "hint": { + "en": "Relay Status" + } + }, + "5": { + "hint": { + "en": "Time" + } + } + }, + "wakeUpInterval": 1800, + "learnmode": { + "image": "/drivers/ssp302/assets/images/learnmode.svg", + "instruction": { + "en": "Press and hold the button on SSP 302 for 4 to 7 seconds then release.\nThe network status LED will start flashing.\nOn successful inclusion the LED will turn off." + } + } + } + }, { "class": "socket", "capabilities": [ diff --git a/drivers/ssp302/assets/images/large.jpg b/drivers/ssp302/assets/images/large.jpg new file mode 100644 index 0000000000000000000000000000000000000000..6a71a8f1fb25283a08c56f31045492a7e0b5be18 GIT binary patch literal 18642 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 Zx;B(P!j^LQiOb^uLZ$!Dpn4zm|1as5`j-Fz literal 0 HcmV?d00001 diff --git a/drivers/ssp302/assets/images/learnmode.svg b/drivers/ssp302/assets/images/learnmode.svg new file mode 100644 index 0000000..04cc2a9 --- /dev/null +++ b/drivers/ssp302/assets/images/learnmode.svg @@ -0,0 +1,5 @@ + + + + SSP302 + diff --git a/drivers/ssp302/assets/images/small.jpg b/drivers/ssp302/assets/images/small.jpg new file mode 100644 index 0000000000000000000000000000000000000000..9cb69b82bee6d0c6d61b3d9f655713e81f55365a GIT binary patch literal 2432 zcma)63s@6Z7M?svcmz!fwuo9oP;13xCLw@K3C|D|nwlVMOM%+SWPm9o6Osu8Sk%J$ zSnUJogJRc(u6!#jAO!)9x(lqX&!R;|1#K(rie<&3u+rUD$mmo-a4|%(?&h z&$;)Wa~(Gv13*ix4NnJv4I9<~t^feA04akB_)(gS9+d7&%}Lb2cd-EmH5;ixOO&3_ zVM0wNK@yfs!X%UhN+98CHG<+s+VV2x4auZpDfL^IB$L7NAUH@G07+p80@wgh%BBAS zNG5~a%2`fkTR#9WtEZwQP;0C?IvtU=0f1u!5Gbu^RzBrJGlWs50oJ2Tk~F~}XtYQW zIxz`K7(g3h0;LiN1i~V0CIrpGNTCkPz>Nyg=>LV4FhZB!?-THiIIe6GCPwL{rD{hFT+xA0s2CLNvXr zyu3U~UZ8|9XMobs&`=PPfijtxLWnK-MiQ}!jTZkI1|?=e&A5rg38Ro^M0A9eREVfl zr}khl&C)*eux5aIbQWi_nzNn3^(csCV+PDfTBw7S()*twRjX&=&!jaNX3-Wh5qr9~ zXQC}h`6diZ#4Lo>jA9hrpAKb$W6T&r66Pd=$eua!`73aa3#LR!Od*K>N77{U{ z*aoFSL~T!k<9awWD0p3Tlu9XwVuPg8*qC)HRkSiTG(;L55)-2eQqA}(3Dip8#Eh^0 zsc-DOzI0I=OjKkgX2x?dy~<1&gwFeb@%eL!o|kXhS3iF)G4uL@R5Bo4p>ryB#zeIN zt&jpG$q}Yuopae7bn#@$(fuz_1u7PmVNQ?QdCiVo!-S$>)ON zwXychntkVA-7z9?KPL}P90s=8bbsym{%+&xYw-hD9$7AT=k_NgU7KvMg8~0YC_C1! zV0UK(aXTUl?pNR`FTF!}+K)@uUNHRJRrq1qMf4?JIc%@eFgG{f3b?W7M75BToexi? zgq6fZhN=1JbsKNllQa9bz1MoYvXPg4rOUhNGQ6bj{;GGe?9Yng+9q!O(*IO4v^6Dj zSJxj3F7eV<{=C=l%})5+AJ$j*3({1b9>!$P18=%33FKmg4D37?xPyGc|W^Ddjlb38!>#uLG{-mZ%(#eY$NhubwDo-@$Tc|N1BG*wHF@`K5`3xaWd_Xt+!5=?%gq|?OvF@s!F*w@BG~f zdoQcj>+6qR&Wbzt)&5}%bZqPQ-5$RiuNygT^#y88nPYv?Hr!+V&D4fRTzdm3ZV370 zf~9cl-*yjPZ2RI!@K9^RKy_AT(4 zAIhl;a4W3byoc{L+O)t8JiV!?DEIJ5|Ne^QS)UgDrY78@*2?!xX$aYrHqcpjsLy); zq%k+)No6j$Do}POKWF#8j2HgYH`d4f?TVIfb!Q(hj;y$UuDO&?N%D~o1orO3rGF{g zV&Cxox0gJZkK^<{NL_tnE5bqH0`m zHDpt4+UV_;mVowq>H8jD?pOY6XxmTi+S6|2;qEc~?R&R1c^LuiHJ@jsBM%ZwjRw&; zvDfzD(aO`wK=>JW|AjT(i?np}aXN;!ten{T)9#3s>ERFCdMsWi>OS8xY~ywo^YQws zxZG}gmSOCA@r@#B!cq&T*tR`o1=`fi>A7=86g+fs-z!H^>$UjcVeCl{LPkCixqim- fZz49f@q*veobi%>sUbhQwh@n-*gi)}9DV-=k!eEQ literal 0 HcmV?d00001 diff --git a/drivers/ssp302/device.js b/drivers/ssp302/device.js new file mode 100644 index 0000000..7bad567 --- /dev/null +++ b/drivers/ssp302/device.js @@ -0,0 +1,13 @@ +'use strict'; + +const { ZwaveDevice } = require('homey-zwavedriver'); + +class SSP302Device extends ZwaveDevice { + async onNodeInit() { + this.log('SSP302Device Init'); + + this.registerCapability('onoff', 'SWITCH_BINARY'); + } +} + +module.exports = SSP302Device; diff --git a/drivers/ssp302/driver.compose.json b/drivers/ssp302/driver.compose.json new file mode 100644 index 0000000..4111b3d --- /dev/null +++ b/drivers/ssp302/driver.compose.json @@ -0,0 +1,51 @@ +{ + "id": "ssp302", + "name": { + "en": "SSP302" + }, + "class": "socket", + "capabilities": ["onoff"], + "zwave": { + "manufacturerId": 89, + "productTypeId": 17, + "productId": [1, 2], + "zwaveAllianceProductId": 1257, + "zwaveAllianceProductDocumentation": "https://products.z-wavealliance.org/ProductManual/File?folder=&filename=MarketCertificationFiles/1257/SSP%20302%20User%20Manual%20for%20Web.pdf", + "associationGroups": [1, 2, 3, 4, 5], + "associationGroupsOptions": { + "1": { + "hint": { + "en": "Lifeline" + } + }, + "2": { + "hint": { + "en": "Power" + } + }, + "3": { + "hint": { + "en": "Electrical Parameter" + } + }, + "4": { + "hint": { + "en": "Relay Status" + } + }, + "5": { + "hint": { + "en": "Time" + } + } + }, + "wakeUpInterval": 1800, + "learnmode": { + "image": "{{driverAssetsPath}}/images/learnmode.svg", + "instruction": { + "en": "Press and hold the button on SSP 302 for 4 to 7 seconds then release.\nThe network status LED will start flashing.\nOn successful inclusion the LED will turn off." + } + } + }, + "$extends": ["defaults"] +} diff --git a/drivers/ssp302/icon.svg b/drivers/ssp302/icon.svg new file mode 100644 index 0000000..04cc2a9 --- /dev/null +++ b/drivers/ssp302/icon.svg @@ -0,0 +1,5 @@ + + + + SSP302 + From 230f69181c68a96ebca8e0d7b63a1ee7d5e8b4af Mon Sep 17 00:00:00 2001 From: hank Date: Thu, 18 Nov 2021 23:55:31 +0100 Subject: [PATCH 2/2] Bump version to v0.6.6 Changelog: Add support for SSP 302 --- .homeychangelog.json | 3 +++ .homeycompose/app.json | 2 +- app.json | 2 +- 3 files changed, 5 insertions(+), 2 deletions(-) diff --git a/.homeychangelog.json b/.homeychangelog.json index 67d051a..0c5cd4e 100644 --- a/.homeychangelog.json +++ b/.homeychangelog.json @@ -91,5 +91,8 @@ }, "0.6.5": { "en": "Update SSR302" + }, + "0.6.6": { + "en": "Add support for SSP 302" } } diff --git a/.homeycompose/app.json b/.homeycompose/app.json index cdd818b..1e511b8 100644 --- a/.homeycompose/app.json +++ b/.homeycompose/app.json @@ -1,6 +1,6 @@ { "id": "com.horstmann", - "version": "0.6.5", + "version": "0.6.6", "compatibility": ">=5.0.0", "sdk": 3, "name": { diff --git a/app.json b/app.json index a5043f4..670c3ca 100644 --- a/app.json +++ b/app.json @@ -1,7 +1,7 @@ { "_comment": "This file is generated. Please edit .homeycompose/app.json instead.", "id": "com.horstmann", - "version": "0.6.5", + "version": "0.6.6", "compatibility": ">=5.0.0", "sdk": 3, "name": {