Ich habe gerade ein Update für 4.1 hochgeladen, wo nun auch die Batteriespannung von NUT und APCUPSD mit angezeigt wird. Wenn Du Dir den Diff von diesem Commit im Github ansiehst, wirst Du es verstehen.
Das NUT und APCUPSD Modul sind weitestgehend funktional identisch, weil als Copy/Paste entstanden Ich bemühe mich, das auch so zu halten, wenn es geht.
Das Einpflegen Deiner Änderungen macht das Git alles für Dich mit wenigen Befehlen.
Du kannst Dir z.B. Dein eigenes Repository aus einem Fork oder auch nur einen eigenen Branch erstellen. Das stellst Du im IPS als Repository ein. Dann kannst Du Änderungen von meinem Repository mergen.
Du kannst mir auch einen PR mit Deinen Anpassungen schicken. Dann schaue ich es mir an, ob ich es in das Standard-Repository übernehme.
gute Frage, habe ich selbst nicht gemacht. Hat in den letzten 5 Jahren bisher auch noch keiner gebraucht
Normalerweise wird das benötigte Switchgerät erst definiert, wenn ein vom CUL empfangener Befehl den Hauscode und den Status liefert. Erst dann kann man eine Action von IPS im Testcenter auslösen, die man zum Konfigurieren nutzen kann. Das SwitchDevice manuell anzulegen ist etwas haarig, da die sonst automatisch angelegten Verknüpfungen über die Properties hergestellt werden müssen.
Evtl. baue ich mal eine Funktion in den Splitter ein.
Ich habe jetzt in 4.1 die Parse Funktion Public gemacht, so das man den Eingang eines CUL-Datenpakets simulieren und was damit die Erstellung einer Geräteinstance auslösen kann. Wenn man nun im Testcenter den Action Button nutzt, sollte der CUL einen Befehl mit den dort hinterlegten Geräteadressen senden, der zum Konfigurieren des physischen Gerätes nutzbar sein sollte.
/* Aufbau Paket gemäß CULFW Doku
FHHHHAACCTTSS
0123456789012
HHHH Homecode (CUL Hex Format
AA Address (CUL Hex Format )
CC FS20Actioncode z.B. "00" =aus
TT Timer code: (nur bei einem Dimcode erforderlich)
SS Signal (zum Anlegen mit beliebigen Wert nötig)
*/
$id_splitter=12345; //anpassen
$paket="F4880011114"; // (HC 21313111 Addr 1112 Action "11"=On, Signal "14"=-64db
CUL_Parse($id_splitter,$paket);
Zum „Übersetzen“ der Adressen in die CUL Hex Syntax kannst Du die FHZhelper:four2hex Methode verwenden
Schau mal nach ob in der public Function der Variablentyp ausgewiesen ist ansonsten zeigt dort IP-Symcon nichts an.
Siehe Für einen absoluten Anfänger Schaltung bei Zeit
Gegebenenfalls muss das halt noch ergänzt werden.
Gut, jetzt weiß ich auch, wozu die Type Hints gut sein sollen. Die „Befehl testen“ Funktion habe ich bisher in 11Jahren IPS noch nie genutzt. Man hätte ja auch ein einfaches Eingabefeld zur Verfügung stellen können, wenn keine Type Hints vorhanden sind.
Mit diesen Hints hatte ich auch schon mal Ärger, weil dann was anderes nicht funktioniert hat. Außerdem schreit meine IDE, weil Scalar Type Hints erst offiziell mit PHP7 verfügbar sind, hier aber noch PHP5 eingesetzt wird.
Ereignisse greifen da aber auch drauf zurück nicht nur die Funktion Befehl testen. Ansonsten muss man jedesmal mit Skripten und einem Ereignis rumbasteln, weil es mit Ereignissen alleine dann auch nicht geht den Befehl in IP-Symcon zuzuweisen.
Ich verstehe schon, das es innerhalb von IPS so funktioniert.
Das Ist aber in PHP5.6 noch keine offizielle Funktion, sondern von Paresy schon mal vorab in seinem privaten IPS PHP implementiert worden. Scalar Type Hints gibt es offiziell erst ab PHP7.0 siehe PHP: New features - Manual.
Als IDE verwende ich IntelliJ mit dem Webstorm PHP Plugin. Die gibt mir ein fettes rotes Ausrufungszeichen und lässt mich nur unter Protest einchecken. Und PHP7 Kompatibilität kann ich noch nicht einstellen.
Hm da müsste dann paresy mal dazu was schreiben. Es scheint ja auch so das PHP 7 dann wieder etwas anderes erwartet als jetzt, int statt integer, muss man dann in Zukunft wieder alles abändern oder geht dann beides?