hier folgen nach und nach Beispielmodule, am besten in der folgenden Reihenfolge durch arbeiten:
- String Receiver by NallChan
- zerlegeString
Die Githubs werden in IPS unter Kern-Instanzen --> Module
hinzugefügt und bei Bedarf auch upgedatet.
Leider ist die in der Liste dann links zu sehende Bezeichnung der
Also wählt ihn mit Bedacht und Aussagefähig genug,
denn nichts ist schlimmer als wenn 20-mal dort IPS erscheint.
Ich hab meine mal überarbeitet, sieht jetzt so aus:
Zum Editieren der Dateien benutze ich persönlich den folgenden Editor:
Michael nutzt:
Vorteil: Der hat Git integriert und ein Plugin für Markdown (dieses README.md File) ist auch zu finden.
Unterhalb von Modules eigenes Unterverzeichnis erstellen.
Da rein gehört die Datei:
aus einem anderen Modul rüber kopieren und alles anpassen:
wichtig: eine neue id generieren, z.B. mit:
Kommentare sollten in einer .json Datei nicht mit den üblichen Slashes angelegt werden, das nimmt einem das Modul sehr übel.
Falls das ganze später auf Github veröffentlicht werden sollte eine Datei
anlegen und anhand dieses Beispieles sich die Syntax selber zusammen reiben.
Sollen dort auch Bilder mit erscheinen ein Unterverzeichnis mit dem Namen Doku erstellen und alle .png s dort hinein.
Dort hinein gehören mindestens 3 Dateien:
In dieser Datei wird der Aufbau der Seite des Modules erzeugt, sie teilt sich in 3 Bereiche und ist momentan sogar schon in der Doku zu finden:
Die nennen sich Konfigurationsformulare.
Ähnlich der library.json. Same Procedure wie oben.
hier tobt das eigentliche Modulleben
Randbemerkungen (Danke an Michael für die Infos):
PHP Module haben eine maximale Laufzeit von 30 Sekunden,
daher ist es nicht möglich einen Port für eingehende Informationen offen zu halten.
Alternativ sollte in solchen Fällen auf IPS hauseigenen Module zugegriffen werden indem man diese mit einbindet.
Doch aufgemerkt: die haben oft noch interne GUIDs welche an der richtigen Stelle positioniert werden muessen.
Wie finde ich die vorhandenen GUIDs:
<?php
foreach(IPS_GetModuleList() as $guid)
{
$module = IPS_GetModule($guid);
$pair[$module['ModuleName']] = $guid;
}
ksort($pair);
foreach($pair as $key=>$guid)
{
echo $key." = ".$guid."\n";
}
?>
möchte man gerne wissen welche Parameter beispielsweise die serieelle Schnittstelle kennt:
<?php
print_r(IPS_GetConfiguration(ID des Serial Port));
?>
offenbart:
{"Open":false,"Port":"COM3","BaudRate":"115200","DataBits":"8","StopBits":"1","Parity":"None"}
oder ähnliches,
ab jetzt weiss man mit welchem Zauberwort der entsprechende Wert gesetzt werden kann und zwar per:
<?php
IPS_SetProperty(ID des Serial Port, 'StopBits', '1');
?>
auslesen einzelner Werte geht analog dazu:
<?php
IPS_GetProperty(ID des Serial Port, 'StopBits')
?>
wunderbar um Parameter zu checken.
In diesem Zusammenhang hilft uns auch die Doku weiter: