From f2d20cd96e06336f62e35e0f68974ce29f973cf0 Mon Sep 17 00:00:00 2001 From: "J.H. Artworks" <98522442+jhartworks@users.noreply.github.com> Date: Fri, 5 Jan 2024 08:00:35 +0100 Subject: [PATCH] Add files via upload --- ModCreator/form.json | 17 +++++++++++ ModCreator/module.json | 14 +++++++++ ModCreator/module.php | 65 ++++++++++++++++++++++++++++++++++++++++++ library.json | 13 +++++++++ 4 files changed, 109 insertions(+) create mode 100644 ModCreator/form.json create mode 100644 ModCreator/module.json create mode 100644 ModCreator/module.php create mode 100644 library.json diff --git a/ModCreator/form.json b/ModCreator/form.json new file mode 100644 index 0000000..f9af2f7 --- /dev/null +++ b/ModCreator/form.json @@ -0,0 +1,17 @@ +{ + "elements": + [ + { "type": "SelectCategory", "name": "PropertyCategoryID", "caption": "Target" }, + { "type": "SelectInstance", "name": "PropertyGatewayID", "caption": "Gateway" }, + { "type": "SelectMedia", "name": "PropertyMediaID", "caption": "Media / CSV" } + ], + "actions": + [ + + { "type": "Button", "label": "Create", "onClick": "VTMC_createObjects($id);" } + ], + "status": + [ + + ] +} \ No newline at end of file diff --git a/ModCreator/module.json b/ModCreator/module.json new file mode 100644 index 0000000..7c85be3 --- /dev/null +++ b/ModCreator/module.json @@ -0,0 +1,14 @@ +{ + "id": "{C3286C5E-8AAB-15C8-6662-13CE28C0C85C}", + "name": "ModCreator", + "type": 3, + "vendor": "J.H. Artworks", + "aliases": + [ + ], + "url": "https://jh-artworks.com", + "parentRequirements": [], + "childRequirements": [], + "implemented": [], + "prefix": "VLS" +} \ No newline at end of file diff --git a/ModCreator/module.php b/ModCreator/module.php new file mode 100644 index 0000000..aaedbab --- /dev/null +++ b/ModCreator/module.php @@ -0,0 +1,65 @@ +RegisterPropertyInteger("PropertyCategoryID"); + $this->RegisterPropertyInteger("PropertyGatewayID"); + $this->RegisterPropertyInteger("PropertyMediaID"); + + } + + // Überschreibt die intere IPS_ApplyChanges($id) Funktion + public function ApplyChanges() { + // Diese Zeile nicht löschen + parent::ApplyChanges(); + } + /** + * Die folgenden Funktionen stehen automatisch zur Verfügung, wenn das Modul über die "Module Control" eingefügt wurden. + * Die Funktionen werden, mit dem selbst eingerichteten Prefix, in PHP und JSON-RPC wiefolgt zur Verfügung gestellt: + * + * + */ + private function createModobject($socket, $catId, $objectName,$adressread,$fcread, $adresswrite, $fcwrite, $datatype,$factor) { + + + $newInstance = IPS_CreateInstance("{CB197E50-273D-4535-8C91-BB35273E3CA5}"); + IPS_DisconnectInstance($newInstance); + IPS_ConnectInstance($newInstance, $socket); + IPS_SetName($newInstance, $objectName); + + IPS_SetConfiguration($newInstance, '{"ReadFunctionCode":'.$fcread.',"WriteFunctionCode":'.$fcwrite.',"Factor":'.$factor.',"DataType":'.$datatype.',"WriteAddress":'.$adresswrite.',"ReadAddress":'.$adressread.'}'); + IPS_ApplyChanges($newInstance); + + IPS_SetParent($newInstance, $catId); + IPS_ApplyChanges($newInstance); + + + } + + public function createModobjects(){ + + $idCat = $this->ReadPropertyInteger("PropertyCategoryID"); + $idGw = $this->ReadPropertyInteger("PropertyGatewayID"); + $idMedia = $this->ReadPropertyInteger("PropertyMediaID"); + + $csv = base64_decode(IPS_GetMediaContent($idMedia)); + + + while (($data = str_getcsv($csv)) !== FALSE) { + + $row++; + + + if ($row>2){ + //createModobject($socket, $catId, $objectName,$adressread, $fcread, $adresswrite, $fcwrite, $datatype, $factor) + createModobject($idGw, $idCat, $data[0], $data[1], $data[2], $data[3], $data[4], $data[5], $data[6]); + } + + + } +} +?> \ No newline at end of file diff --git a/library.json b/library.json new file mode 100644 index 0000000..af6cebb --- /dev/null +++ b/library.json @@ -0,0 +1,13 @@ +{ + "id": "{34065973-58B9-07E5-9FF2-09964F230304}", + "author": "J.H. Artworks", + "name": "VariableTools", + "url": "https://jh-artworks.com", + "compatibility": { + "version": "6.0", + "date": 1491343200 + }, + "version": "1.0", + "build": 0, + "date": 0 +} \ No newline at end of file