Hallo zusammen
Ich habe gestern das Plugin "Anwesenheitssimulation.pl" komplett neu geschrieben und neu ins SVN eingestellt. Das neue Plugin ist wesentlich robuster gegen Störeinflüsse und ist auch besser getestet (dennoch wie immer "ohne Gewähr").
Hier eine kurze Beschreibung der (neuen) Funktionsweise:
Voraussetzung: im Webmin (
http://wiregateXXX:10000) unter System->Logdatei-Rotation, dort "eib.log" anklicken und einstellen Rotationszeitplan = WÖCHENTLICH und Maximale Größe = 15M oder mehr. Sinn und Zweck ist dabei, eine gesamte Woche des
KNX-Busprotokolls einzufangen, aus dem später die
Anwesenheitssimulation extrahiert werden kann. Ich _empfehle_ ferner, für
eib.log die Komprimierung auszuschalten. Das spart Zyklen im Plugin.
Ach ja, mindestens
Wiregate-PL32 ist auch erforderlich.
Das Plugin
Anwesenheitssimulation.pl enthält einen sehr kurzen Abschnitt oben im File, in dem alle konfigurierbaren Parameter enthalten sind.
* $source ist entweder
eib.log.1,
eib.log.2 oder ein anderes
eib.log-Archiv... Auch
eib.log selbst sollte funktionieren, ich empfehle aber eine der Archivdateien (also bspw
eib.log.1), weil die einen gesamten Zyklus (eine Woche) enthalten (natürlich nur falls die o.g. Optionen im Webmin bereits seit entsprechend langer Zeit aktiv sind).
* $erzeugen ist eine
KNX-
Gruppenadresse (GA) vom
DPT-Typ 1, die das Plugin
Anwesenheitssimulation.pl abonniert. Wird auf diese
GA eine 1 gesendet, so erzeugt
Anwesenheitssimulation.pl aus dem Sourcefile $source ein zweites Plugin namens "AnwSimSkript.pl", das die erste Woche aus $source nach Licht- und Jalousiekommandos filtert und diese endlos wiederholt abspielt. AnwSimSkript.pl wird dabei in /etc/wiregate/plugin erzeugt, ist also bei Erzeugung noch NICHT aktiv.
* $starten ist eine
KNX-
Gruppenadresse (GA) vom
DPT-Typ 1, die das Plugin
Anwesenheitssimulation.pl abonniert. Wird auf diese
GA eine 1 gesendet, so wird das oben erzeugte AnwSimSkript.pl von /etc/wiregate/plugin nach /etc/wiregate/plugin/generic kopiert, wird also aktiv. Ab dann werden also zyklisch Telegramme für Licht und Jalousien erzeugt.
Dabei achtet AnwSimSkript darauf, dass die Telegramme an dem Wochentag und der Uhrzeit gesendet werden, wo sie auch in der Vorlage $source vorkamen. (das ist wesentlich für eine überzeugende Simulation) Wird auf die
GA $starten eine 0 gesendet, so wird /etc/wiregate/plugin/generic/AnwSimSkript.pl wieder gelöscht und der Spuk somit beendet.
* @gafilter ist schlichtweg eine Liste der GAs, die in die
Anwesenheitssimulation aufgenommen werden sollen. Diese Liste erzeugt man am besten durch einen kleinen Trick, zum Beispiel nimmt
Code:
my @gafilter=grep m!^(6/2/|6/3/)!, keys %eibgaconf;
alle GAs der Haupt/Mittelgruppen 6/2 und 6/3 in die Simulation auf. Empfehlenswert ist es übrigens, nur Licht und Jalousien aufzunehmen!
* $use_shorts setzt man am besten auf 0, es sei denn, man verwendet das gleiche
GA-Namensschema wie ich: bei mir haben alle
GA Namen, die im ersten Wort (Zeichen bis zum ersten Space) eine EINDEUTIGE Kennzeichnung enthalten. Weil das bei mir so ist, kann ich den @gafilter oben einfach so definieren:
Code:
my @gafilter=grep /^(LI|LD|JA|JS|JP)\S*$/, keys %eibgaconf;
Damit sind alle Lichtschalt- und -dimmaktionen, alle
Jalousie auf/ab, stop und Positionierungsbefehle drin und sonst nichts.
Das war's bezüglich der Konfiguration!
Anwesenheitssimulation schreibt für jede Aktivität etwas in /var/log/wiregate_plugin.log, damit man sich nicht wundert, wo der Traffic herkommt...
Ich freue mich über Erfolgsmeldungen sowie Verbesserungen und auch Bugreports. Hauptsache, jemand findet es nützlich.
Have fun!
Fry