Moin,
wo finde ich einen Startguide dafür? Mache meine ersten Schritte und falle immer hin. Die Zusammenhänge sind mir teilweise noch nicht klar. Vielleicht kann mich jemand an die Hand nehmen (gern auch per PM)? Am Ende soll es in meinem ersten „Testmodul“ darum gehen, in der Konfig ein Variable und das Webfronts abzufragen. Verändert sich der Wert der Variablen, soll eine Notification im Webfront erscheinen. Alle sicher sehr unspektakulär, aber für den Anfang schon eine Herausforderung. Habe dafür eine eigene Installaton vom IPS gemacht, um ungestört probieren zu können.
form.json
{
"elements":
[
{ "type": "Label", "label": "Variable, welche bei Veränderung eine Meldung im Webfront auslöst" },
{ "type": "SelectVariable", "name": "sourceid", "caption": "Quellvariable" },
{ "type": "Label", "label": "ID des Webfronts für Benachrichtigung" },
{ "type": "SelectInstance", "name": "webfrontid", "caption": "Webfront"}
]
}
module.json
{
"id": "{DE42EA47-3D65-4E44-ABBC-28185A303F10}",
"name": "Testmodul",
"type": 3,
"vendor": "Andreas seine Firma",
"aliases":
[
"Testmodul"
],
"parentRequirements": [],
"childRequirements": [],
"implemented": [],
"prefix": "TMHA"
}
module.php
<?
// Klassendefinition
class Testmodul extends IPSModule {
// Der Konstruktor des Moduls
// Ãœberschreibt den Standard Kontruktor von IPS
public function __construct($InstanceID) {
// Diese Zeile nicht löschen
parent::__construct($InstanceID);
$this->RegisterPropertyInteger("sourceid", 0);
$this->RegisterPropertyInteger("webfrontid", 0);
}
// Ãœberschreibt die interne IPS_Create($id) Funktion
public function Create() {
// Diese Zeile nicht löschen.
parent::Create();
$this->RegisterVariableInteger("Timestamp", "letzte Änderung", "~UnixTimestamp");
$this->RegisterVariableBoolean("Push", "Meldung versendet", "");
}
// Ãœberschreibt die intere IPS_ApplyChanges($id) Funktion
public function ApplyChanges() {
// Diese Zeile nicht löschen
parent::ApplyChanges();
$source_variable = $this->ReadPropertyInteger("sourceid");
$webfront = $this->ReadPropertyInteger("webfrontid");
}
/**
* 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:
*
* ABC_MeineErsteEigeneFunktion($id);
*
*/
public function MeineErsteEigeneFunktion() {
// Selbsterstellter Code
echo "Toll gemacht!";
}
}
?>