From e00c827b2c1fbae323c5a0301a13956a03d6abfa Mon Sep 17 00:00:00 2001 From: Kai Schnittcher Date: Sun, 18 Feb 2024 20:36:48 +0100 Subject: [PATCH] =?UTF-8?q?BLU=20Gateway=20hinzugef=C3=BCgt=20und=20Gen3?= =?UTF-8?q?=20Shelly=20PM=20Mini=20im=20Konfigurator=20gefixt?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ShellyBLUGateway/README.md | 17 +++++ ShellyBLUGateway/README_en.md | 18 ++++++ ShellyBLUGateway/form.json | 114 ++++++++++++++++++++++++++++++++++ ShellyBLUGateway/locale.json | 24 +++++++ ShellyBLUGateway/module.json | 17 +++++ ShellyBLUGateway/module.php | 42 +++++++++++++ ShellyConfigurator/module.php | 15 ++++- 7 files changed, 244 insertions(+), 3 deletions(-) create mode 100644 ShellyBLUGateway/README.md create mode 100644 ShellyBLUGateway/README_en.md create mode 100644 ShellyBLUGateway/form.json create mode 100644 ShellyBLUGateway/locale.json create mode 100644 ShellyBLUGateway/module.json create mode 100644 ShellyBLUGateway/module.php diff --git a/ShellyBLUGateway/README.md b/ShellyBLUGateway/README.md new file mode 100644 index 0000000..a1e9f6d --- /dev/null +++ b/ShellyBLUGateway/README.md @@ -0,0 +1,17 @@ +# ShellyBLUGateway + Dieses Modul ermöglicht es, ein Shelly BLU Gateway in IP-Symcon zu integrieren. + +## Inhaltverzeichnis +- [ShellyBLUGateway](#shellyblugateway) + - [Inhaltverzeichnis](#inhaltverzeichnis) + - [1. Konfiguration](#1-konfiguration) + - [2. Funktionen](#2-funktionen) + +## 1. Konfiguration + +Feld | Beschreibung +------------ | ---------------- +MQTT Topic | Hier wird das Topic (shellyblugw-deviceid) des Shelly BLU Gateway eingetragen. + +## 2. Funktionen +Zur Zeit sind keine öffentlichen Funktionen vorhanden. \ No newline at end of file diff --git a/ShellyBLUGateway/README_en.md b/ShellyBLUGateway/README_en.md new file mode 100644 index 0000000..6ac2f70 --- /dev/null +++ b/ShellyBLUGateway/README_en.md @@ -0,0 +1,18 @@ +# ShellyBLUGateway + This module enables the integration of a Shelly BLU Gateway in IP-Symcon. + +## Table of Contents +- [ShellyBLUGateway](#shellyblugateway) + - [Table of Contents](#table-of-contents) + - [1. Configuration](#1-configuration) + - [2. Functions](#2-functions) + +## 1. Configuration + +Field | Description +------------ | ------------- +MQTT Topic | The Topic (shellyblugw-deviceid) of the Shelly BLU Gateway is entered here. + +## 2. Functions + +Currently, there are no public functions available. \ No newline at end of file diff --git a/ShellyBLUGateway/form.json b/ShellyBLUGateway/form.json new file mode 100644 index 0000000..eb32d31 --- /dev/null +++ b/ShellyBLUGateway/form.json @@ -0,0 +1,114 @@ +{ + "elements": [ + { + "type": "ValidationTextBox", + "name": "MQTTTopic", + "caption": "MQTT Topic" + }, + { + "type": "List", + "name": "Variables", + "caption": "", + "add": false, + "delete": false, + "columns": [ + { + "caption": "Ident", + "name": "Ident", + "visible": false, + "width": "0px", + "save": true + }, + { + "caption": "Index", + "name": "Pos", + "width": "100px", + "save": true + }, + { + "caption": "Name", + "name": "Name", + "width": "auto", + "save": true + }, + { + "caption": "Type", + "name": "VarType", + "visible": false, + "width": "0px", + "save": true + }, + { + "caption": "Profile", + "name": "Profile", + "visible": false, + "width": "0px", + "save": true + }, + { + "caption": "Devices", + "name": "Devices", + "visible": false, + "width": "100px", + "save": true + }, + { + "caption": "DeviceType", + "name": "DeviceType", + "visible": false, + "width": "100px", + "save": true + }, + { + "caption": "Action", + "name": "Action", + "visible": false, + "width": "0px", + "save": true + }, + { + "caption": "Active", + "name": "Keep", + "width": "75px", + "edit": { + "caption": "Active", + "type": "CheckBox" + } + } + ], + "values": [] + } + ], + "actions": [ + { + "type": "TestCenter" + }, + { + "type": "Label", + "caption": "Spenden / Schenkung" + }, + { + "type": "Label", + "caption": "Dieses Modul ist für die nicht kommerzielle Nutzung kostenlos, Schenkungen als Unterstützung für den Autor werden hier akzeptiert: " + }, + { + "type": "RowLayout", + "items": [ + { + "type": "Image", + "onClick": "echo 'https://www.paypal.com/donate?hosted_button_id=EK4JRP87XLSHW';", + "image": "data:image/png;base64,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ZrBplgJXJ/3OA0do9FRbgAMdMwKlYjyPei1SAu5FhYGVXbSC6ZrRTMbTv5gMZgem2CeF2pdEB7F4vKvJLQHbFVdgbjvNQ5hAROuNbZCJ3eQ9wA2Kap2BBiCGPI2CdgT4rRDKUR5bdW9b2UVR2sEOmm6jcYFzmCH/HBOJg6lrJexUsVgqxjYaS9H3H8vcToYpe4BkVAfESru141QF7kfZPtkcVXvPQs1t/w64CLgUS/PakslZB9yssEVMyN2SXIvAFlU2S+O7jtDcAI4AawT2ZEvoilINoZJX/RJwMzV9at7kVoDtkz12FSGWqw+FfLgUeDOW3czFUsj1wG+wghWYvjghedfDtXcFjeUo4fOYQeQwz7VRYWcrP5k5bj6/Wfi93ezdt5dAyCPMwvZkKZk0nWw4Sc4LZmMG9YrM5R8jvBflyOPx7WFyVCwgs4AOhDGNjJALVdm1i4EPPOvxmt4JOW4MoCX0bSKYb1qOicd0erUbeAPwD5WArj5zCi948tHqbwKf4MEomKtdTWNufS3oRsAXP8WTxgDCmkLt84lLaHT9m4DrQY6bz86PF540BoCAKidjojT9YUoR6CP1IYczzpPDAK78O8kBzNuwL2yU8Y9Hf4RlEsdSl/i/oZUfhT5xhFrGpjdjYq+Wez8M3IkyTNv0T84cx3Ecx3Ecx3Ecx3Ecx3Ecx3Ecx3Ecx3Ecx3Ecx3Ecx3Ecx3Ecx3Ecx3Ecx3Ecx3Ecx3Ecx3Ecx3Ecx3Ecx3Ecx3Ecx3Ecx3Ecx3Gmx/8AQ1faHO6uaXsAAAAldEVYdGRhdGU6Y3JlYXRlADIwMTgtMDUtMjVUMTI6NDA6MTArMDI6MDB4/FYOAAAAJXRFWHRkYXRlOm1vZGlmeQAyMDE4LTA1LTI1VDEyOjQwOjEwKzAyOjAwCaHusgAAAEZ0RVh0c29mdHdhcmUASW1hZ2VNYWdpY2sgNi43LjgtOSAyMDE2LTA2LTE2IFExNiBodHRwOi8vd3d3LmltYWdlbWFnaWNrLm9yZ+a/NLYAAAAYdEVYdFRodW1iOjpEb2N1bWVudDo6UGFnZXMAMaf/uy8AAAAYdEVYdFRodW1iOjpJbWFnZTo6aGVpZ2h0ADUxMsDQUFEAAAAXdEVYdFRodW1iOjpJbWFnZTo6V2lkdGgANTEyHHwD3AAAABl0RVh0VGh1bWI6Ok1pbWV0eXBlAGltYWdlL3BuZz+yVk4AAAAXdEVYdFRodW1iOjpNVGltZQAxNTI3MjQ0ODEwnCKKMAAAABN0RVh0VGh1bWI6OlNpemUAMTIuOEtCQhoRQ10AAABCdEVYdFRodW1iOjpVUkkAZmlsZTovLy4vdXBsb2Fkcy81Ni9rSWZ4SUF5LzE0ODcvODM5My1wYXlwYWxfMTAyNDYxLnBuZ6xvuXsAAAAASUVORK5CYII=" + }, + { + "type": "Label", + "caption": "" + }, + { + "type": "Image", + "onClick": "echo 'https://www.amazon.de/hz/wishlist/ls/3JVWED9SZMDPK?ref_=wl_share';", + "image": "data:image/png;base64,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" + } + ] + } + ] +} \ No newline at end of file diff --git a/ShellyBLUGateway/locale.json b/ShellyBLUGateway/locale.json new file mode 100644 index 0000000..84d823a --- /dev/null +++ b/ShellyBLUGateway/locale.json @@ -0,0 +1,24 @@ +{ + "translations": { + "de": { + "Active": "Aktiv", + "Input 1": "Eingang 1", + "Input 2": "Eingang 2", + "Input 3": "Eingang 3", + "Input 4": "Eingang 4", + "External Temperature 1": "externe Temperatur 1", + "External Temperature 2": "externe Temperatur 2", + "External Temperature 3": "externe Temperatur 3", + "External Temperature 4": "externe Temperatur 4", + "External Temperature 5": "externe Temperatur 5", + "External Humidity": "externe Luftfeuchte", + "External Input": "externer Eingang", + "External Voltmeter": "externes Voltmeter", + "Reachable": "Erreichbar", + "Event Component": "Ereignis Komponente", + "Event": "Ereignis", + "Device": "Gerät", + "Devices": "Geräte" + } + } +} \ No newline at end of file diff --git a/ShellyBLUGateway/module.json b/ShellyBLUGateway/module.json new file mode 100644 index 0000000..f041282 --- /dev/null +++ b/ShellyBLUGateway/module.json @@ -0,0 +1,17 @@ +{ + "id": "{5B4C60D3-A1AB-CA1D-323C-A0CDCEB1D990}", + "name": "ShellyBLUGateway", + "type": 3, + "vendor": "Shelly", + "aliases": [ + "Shelly Bluetooth Gateway" + ], + "parentRequirements": [ + "{043EA491-0325-4ADD-8FC2-A30C8EEB4D3F}" + ], + "childRequirements": [], + "implemented": [ + "{7F7632D9-FA40-4F38-8DEA-C83CD4325A32}" + ], + "prefix": "SHELLY" +} \ No newline at end of file diff --git a/ShellyBLUGateway/module.php b/ShellyBLUGateway/module.php new file mode 100644 index 0000000..958749c --- /dev/null +++ b/ShellyBLUGateway/module.php @@ -0,0 +1,42 @@ +ReadPropertyString('MQTTTopic'))) { + $Buffer = json_decode($JSONString, true); + $this->SendDebug('JSON', $Buffer, 0); + + //Für MQTT Fix in IPS Version 6.3 + if (IPS_GetKernelDate() > 1670886000) { + $Buffer['Payload'] = utf8_decode($Buffer['Payload']); + } + + $Payload = json_decode($Buffer['Payload'], true); + if (array_key_exists('Topic', $Buffer)) { + if (fnmatch('*/online', $Buffer['Topic'])) { + $this->SetValue('Reachable', $Payload); + } + if (fnmatch('*/events/rpc', $Buffer['Topic'])) { + if (array_key_exists('params', $Payload)) { + if (array_key_exists('events', $Payload['params'])) { + $events = $Payload['params']['events'][0]; + $this->SetValue('EventComponent', $events['component']); + $this->SetValue('Event', $events['event']); + } + } + } + } + } + } +} diff --git a/ShellyConfigurator/module.php b/ShellyConfigurator/module.php index 66361b3..c0a322e 100644 --- a/ShellyConfigurator/module.php +++ b/ShellyConfigurator/module.php @@ -287,6 +287,10 @@ class ShellyConfigurator extends IPSModule 'Name' => 'Shelly Pro 4PM V2', 'GUID' => '{4E416C32-833A-4469-97B3-D4A41413A272}' ], + 'SNGW-BT01' => [ + 'Name' => 'Shelly Bluetooth Gateway', + 'GUID' => '{5B4C60D3-A1AB-CA1D-323C-A0CDCEB1D990}' + ] ]; public function Create() @@ -516,8 +520,10 @@ public function GetConfigurationForm() case 'SPSW-004PE16EU': case 'SPSW-104PE16EU': case 'SNDM-00100WW': + case 'SNGW-BT01': + case 'S3PM-001PCEU16': $AddValue['create'] = [ - 'name' => $Shelly['ID'], + 'name' => $Shelly['ID'], 'moduleID' => $moduleID, 'info' => $Shelly['IP'], 'configuration' => [ @@ -831,7 +837,7 @@ private function getShellyInstances($ShellyID) //Shelly Plus H&T & Gen 3 $InstanceIDs[] = IPS_GetInstanceListByModuleID('{41C32508-A08D-40E8-870C-AF051A8DB6B4}'); - + //Shelly Plus Plug S $InstanceIDs[] = IPS_GetInstanceListByModuleID('{D7769710-EED1-4835-AC2D-C0AC8356E900}'); @@ -875,11 +881,14 @@ private function getShellyInstances($ShellyID) $InstanceIDs[] = IPS_GetInstanceListByModuleID('{D6B33C50-1855-F2B2-EC6A-0C14F4259952}'); //Gen3ShellyPMMini - $InstanceIDs[] = IPS_GetInstanceListByModuleID('{EA5280A7-811D-D2E3-A5A1-DF6C81505CE8}'); + $InstanceIDs[] = IPS_GetInstanceListByModuleID('{EA5280A7-811D-D2E3-A5A1-DF6C81505CE8}'); //Shelly Plus 0-10V Dimmer $InstanceIDs[] = IPS_GetInstanceListByModuleID('{88F80513-AE05-84EF-7120-E3F0E02C7F52}'); + //Shelly BLUE Gateway + $InstanceIDs[] = IPS_GetInstanceListByModuleID('{5B4C60D3-A1AB-CA1D-323C-A0CDCEB1D990}'); + foreach ($InstanceIDs as $IDs) { foreach ($IDs as $id) { if (strtolower(IPS_GetProperty($id, 'MQTTTopic')) == strtolower($ShellyID)) {