Moin,
ich beschäftige mich derzeit mit der Erstellung eines Moduls und vor allem damit, den Datenfluss im IPS zu verstehen
Da ist der Modul-Generator eine große Hilfe, cooles Teil, damit kann man gerade als Anfänger zügig zu einem lauffähigen Modul kommen, auf welchem man aufsetzen kann.
Ich glaube jedoch, dass sich im Modul-Generator ein Fehler eingeschlichen hat. Ich habe versucht ein Modul mit Device - Splitter - und IO anzulegen.
Die Datenfluss Richtung habe ich mit Device -> Splitter und Splitter -> IO angelegt. Dies führt zu folgenden module.jason Files:
device: module.json
{
"id": "{5C71DE68-3DB9-2B14-58E3-C3A6D5A426C2}",
"name": "HCLD",
"type": 3,
"vendor": "Fibaro",
"aliases": [],
"parentRequirements": [
"{1590D5D7-2F2F-BF7F-3C3A-D9581874BF46}"
],
"childRequirements": [],
"implemented": [
"{66D69490-42AD-A343-0F75-185A31AA08BA}"
],
"prefix": "HCLD",
"url": "http://www.test.de"
}
splitter: module.json
{
"id": "{518933FA-6D8A-2ADA-5774-8413A058EA2A}",
"name": "HCLSPLIT",
"type": 2,
"vendor": "Fibaro",
"aliases": [],
"parentRequirements": [
"{6DEAE164-60E6-BF7A-53B7-A24588741E4D}"
],
"childRequirements": [
"{66D69490-42AD-A343-0F75-185A31AA08BA}",
"{66D69490-42AD-A343-0F75-185A31AA08BA}",
"{66D69490-42AD-A343-0F75-185A31AA08BA}"
],
"implemented": [
"{1590D5D7-2F2F-BF7F-3C3A-D9581874BF46}",
"{1590D5D7-2F2F-BF7F-3C3A-D9581874BF46}",
"{D443C558-D963-4B2A-D017-B97CF576CB3A}",
"{1590D5D7-2F2F-BF7F-3C3A-D9581874BF46}"
],
"prefix": "HCLS",
"url": "http://www.test.de"
}
io: module.json
{
"id": "{0BE7FA45-4866-1A55-2736-D0CAB9C70680}",
"name": "HCLIO",
"type": 1,
"vendor": "Fibaro",
"aliases": [],
"parentRequirements": [],
"childRequirements": [
"{D443C558-D963-4B2A-D017-B97CF576CB3A}",
"{D443C558-D963-4B2A-D017-B97CF576CB3A}"
],
"implemented": [
"{6DEAE164-60E6-BF7A-53B7-A24588741E4D}",
"{6DEAE164-60E6-BF7A-53B7-A24588741E4D}"
],
"prefix": "HCLI",
"url": "http://www.test.de"
}
Meiner Meinung nach sollte es für splitter und io wie folgt aussehen:
splitter: module.json
{
"id": "{518933FA-6D8A-2ADA-5774-8413A058EA2A}",
"name": "HCLSPLIT",
"type": 2,
"vendor": "Fibaro",
"aliases": [],
"parentRequirements": [
"{6DEAE164-60E6-BF7A-53B7-A24588741E4D}"
],
"childRequirements": [
"{66D69490-42AD-A343-0F75-185A31AA08BA}"
],
"implemented": [
"{D443C558-D963-4B2A-D017-B97CF576CB3A}",
"{1590D5D7-2F2F-BF7F-3C3A-D9581874BF46}"
],
"prefix": "HCLS",
"url": "http://www.test.de"
}
io: module.json
{
"id": "{0BE7FA45-4866-1A55-2736-D0CAB9C70680}",
"name": "HCLIO",
"type": 1,
"vendor": "Fibaro",
"aliases": [],
"parentRequirements": [],
"childRequirements": [
"{D443C558-D963-4B2A-D017-B97CF576CB3A}"
],
"implemented": [
"{6DEAE164-60E6-BF7A-53B7-A24588741E4D}"
],
"prefix": "HCLI",
"url": "http://www.test.de"
}
Dies führt dann auch zur fehlerhaften ReceiveData-Funktion im Splitter und Send-Funktion im IO
splitter: module.php
$this->SendDataToChildren(json_encode(Array("DataID" => "{66D69490-42AD-A343-0F75-185A31AA08BA}","Buffer" => $data->Buffer)));
//$this->SendDataToChildren(json_encode(Array("DataID" => "{66D69490-42AD-A343-0F75-185A31AA08BA},{66D69490-42AD-A343-0F75-185A31AA08BA},{66D69490-42AD-A343-0F75-185A31AA08BA}", $data->Buffer)));
io: module.php
$this->SendDataToChildren(json_encode(Array("DataID" => "{D443C558-D963-4B2A-D017-B97CF576CB3A}", "Buffer" => $Text)));
//$this->SendDataToChildren(json_encode(Array("DataID" => "{D443C558-D963-4B2A-D017-B97CF576CB3A},{D443C558-D963-4B2A-D017-B97CF576CB3A}", "Buffer" => $Text)));
Weiterhin fehlt in den Funktionen Forwarddata und ReceiveData des Splitter im Array der Key „Buffer“
Vielleicht kann sich mal jemand vom Symcom-Team den Generator anschauen.
Liebe Grüße Detlev.