Android-Tablet per Miniserver steuern
Mit Hilfe von zusätzlicher Software kann ein Android-Tablet oder -Smartphone über UDP/HTTP(S) vom Miniserver aus ferngesteuert werden. So kann z. B. das Tablet per Bewegungsmelder oder Präsenzmelder eingeschaltet werden, wenn sich niemand mehr in der Nähe befindet wird es automatisch wieder ausgeschaltet. Auch die Displayhelligkeit kann gezielt in der Nacht heruntergedimmt werden. Eine weitere Möglichkeit ist die Steuerung des Ladegeräts in Abhängigkeit der Batterieladung (dann muss das Ladegerät an einen Ausgang des Miniservers angeschlossen werden).
Hier werden 2 Varianten mit unterschiedlicher Software beschrieben:
mit WOLi - gratis, nur im eigenen Netzwerk, eingeschränkte Funktionalität
mit Tasker - <€5, auch über Internet, riesiger Funktionsumfang
Variante 1: Software WOLi
Benötigte Software auf dem Android-Gerät
WOLi von C. Prenner, 0.00 €: https://play.google.com/store/apps/details?id=at.asp1.woli&hl=de
Einrichtung des Android-Gerätes
Dein Android-Gerät benötigt immer die gleiche IP-Adresse, damit die UDP-Verbindung zwischen Miniserver und Android-Gerät stabil funktioniert. Vergeb also in Deinem Router entweder eine feste IP-Adresse für das Android-Gerät oder konfiguriere den DHCP-Server im Router so, dass er dem Android-Gerät immer die gleiche IP-Adresse zuweist.
Zunächst installieren wir WOLi aus dem Playstore. Nach dem ersten Starten muss man dem Tool noch die Berechtigungen zuweisen, dass es auch Android-Systemeinstellungen ändern darf. Dazu ruft WOLi gleich die passende Konfigurstionsseite der Android-Einstellungen auf. Von hand findet man die Einstellungen unter Einstellungen → Anwendungen → Anwendungsmanager → Mehr → Systemeinstellungen ändern. Man aktiviert diese Option für die Software WOLi:
Um das Display an- und ausschalten zu können aktiviert man zunächst in WOLi die Option "WakeLock". Anschließend muss die Option über den Schraubenschlüssel konfiguriert werden. Wenn man möchte kann man hier noch eine Meldung einblenden lassen, wenn das Display automatisch an- und abgeschaltet wird. Ansonsten lässt man die Felder leer. Zudem kann man noch einen Timeout (Fallback) definieren, nach dessen Ablauf die Regelung des Displays wieder an Android übergeben wird. Ich empfehle hier einen hohen Wert, z. B. 100 Minuten.
Jetzt konfiguriert man die UDP-Funktion. Dazu aktiviert man die Option "Use IP" und konfiguriert wieder über den Schraubenschlüssel. Hier muss "use UDP" aktiviert werden und ein entsprechender Port vergeben werden, auf dem der Service lauscht. Zusätzlich gibt man noch einen Trigger an, dieser signalisiert WOLi, dass es sich um einen UDP-Befehl handelt, der für WOLi bestimmt ist. Man sollte diesen Trigger auf dem Standard "wolido:" belassen.
Für jede Funktion, die man vom Miniserver aus starten will, fügt man nun über "Add command" einen neuen Befehl hinzu. Zum Steuern des Displays fügt man hier die Funktion "WakeLock" hinzu und vergibt einen eindeutigen Erkennungstext, der später per UDP vom Miniserver aus gesendet werden soll (z. B. "wakelock"). Das Gleiche muss man nun noch anlegen, wenn man die Displayhelligkeit steuern will. Hier heisst die entsprechende Funktion "ScreenBrightness".
Nachdem man alle Befehle angelegt hat, geht man mit dem "Zurück"-Button wieder in den Ausgangsbildschirm zurück. Das speichert die Einstellungen. Hier kontrolliert man noch, ob der Service läuft: Oben links muss "WOLi...ON" stehen). Wenn nicht, dann schaltet man einmal den Button "use IP" aus und wieder ein und klickt dann anschlie0end oben rechts auf "Start WOLi".
Loxone Config
Um die einzelnen Aktionen aus der Programmierung des Miniservers zu steuern legen wir zunächst einen Virtuellen UDP-Ausgang mit der IP des Tablets an:
Adresse: /dev/udp/IP-ADRESSE/PORT
z. B.: /dev/udp/192.168.3.66/5000
Die IP-Adresse und den eingerichteten Port kann man aus der Konfiguration von WOLi (siehe oben) auslesen. Beides muss logischerweise identisch sein.
Jetzt legt man für jede Aktion einen eigenen Virtuellen Ausgang Befehl an. Im Folgenden zeigen wir im Beispiel das Ein- und Ausschalten des Displays. Die Beispiele hier verwenden jeweils nur einen Ausgang Befehl für Tablet an/aus. Somit funktionieren die Befehle in der Config wie ein Schalter (mehr dazu etwas später). Eine andere Alternative wäre für jeden Befehl (Einschalten und Ausschalten) einen eigenen Virtuellen Ausgang anzulegen. Dann würden diese wie ein Taster funktionieren.
Wir legen also einen neuen Virtuellen Ausgang Befehl an und nennen diesen Tablet an/aus oder ähnlich. Folgende Einstellungen werden gemacht:
Befehl bei EIN: wolido:wakelock1\n
Befehl bei AUS: wolido:wakelock0\n
Erste Wiederholung: 0
Abstand Wiederholung: 0
Als Digitaleingang verwenden: Angehakt
Wichtig: die Befehle bei Befehl EIN und Befehl AUS müssen exakt mit denen übereinstimmen, die in WOLi angegeben worden sind. Er setzt sich aus dem Trigger + UDP-Befehl zusammen gefolgt von einem Parameter (0=Aus, 1=Ein).
Wird dieser Ausgang nun innerhalb der Config auf EIN gestellt, so sendet er wolido:wakelock1 an das Android-Gerät. Wird er wieder auf AUS gestellt, so sendet er wolido:wakelock0.
Für alle weiteren Aktionen geht man exakt gleich vor. zur Steuerung der Displayhelligkeit ist der Parameter, der an den Befehl angehängt werden muss, nicht 0 und 1 sondern 1-255 (1=dunkel, 255=Max. Helligkeit).
Variante 2: Software Tasker + Plugin AutoRemote
Benötigte Software auf dem Android-Gerät
Tasker von joaomgcd 3,59€: https://play.google.com/store/apps/details?id=net.dinglisch.android.taskerm
AutoRemote Plugin von joaomgcd, 3,59€: https://play.google.com/store/apps/details?id=com.joaomgcd.autoremote - Alternative dazu AutoRemoteLite, 0,00 € (Messages auf 2 Buchstaben eingeschränkt): https://play.google.com/store/apps/details?id=com.joaomgcd.autoremote.lite
Alternativ unterstützt Tasker mittlerweile ein HTTP Event und es wird kein Plugin mehr benötigt siehe: Virtueller HTTP Ausgang
Einrichtung des Android-Gerätes
Dein Android-Gerät benötigt immer die gleiche IP-Adresse, damit die UDP-Verbindung zwischen Miniserver und Android-Gerät stabil funktioniert. Vergeb also in Deinem Router entweder eine feste IP-Adresse für das Android-Gerät oder konfiguriere den DHCP-Server im Router so, dass er dem Android-Gerät immer die gleiche IP-Adresse zuweist.
Zunächst installieren wir Tasker und das AutoRemote Tasker Plugin aus dem Playstore.
Tasker - Wifi einrichten
Nun richten wir in Tasker das AutoRemote Plugin so ein, dass es immer auf HTTP requests horcht. Dazu legen wir in Tasker zunächst einen Task an (zum Starten des Wifi Services), welcher dann über ein Profile gestartet wird, welches beim Systemstart (des Android-Gerätes) startet:
Klick auf unter "Tasks" (um einen Task hinzuzufügen)
den Task z.B. "Start Wifi Services" nennen
Klick auf (um eine Aktion hinzuzufügen)
Auswahl von Plugin / AutoRemote / Wifi
"Wifi Service" anhaken und speichern (damit die Wifi Services gestartet werden)
Klick auf unter "Profiles"
Auswahl von Ereignis / System / Gerät Hochfahren
den eben angelegten Task "Start Wifi Services" auswählen
Damit sollte das Android-Gerät auf z.B. HTTP requests hören können. Um das erstmalig zu testen kann man den Task "Start WiFi Services" ausführen, damit sollte man am Android-Gerät folgende Notification bekommen "AutoRemote Wifi Service: Can receive messages via Wifi"
Tasker - Fernsteuerung einrichten
Beispielhaft sollen in dieser Anleitung eine Applikation auf dem Tablet gestartet werden.
Als erstes müssen wir einen Task anlegen, der beim Empfang eines HTTP Requests ausgeführt wird. Dazu wechseln wir in den Bereich Tasks und legen über das Plus unten rechts einen neuen Task an. Als Name vergeben wir startMyApp (Achtung! Auf exakte Schreibweise und Groß- und Kleinbuchstaben achten!).
Anschließend befinden wir uns im Einstellungsdialog für den Task. Über das Plus am unteren Bildschirmrand fügen wir jetzt eine Aktion unserem Task hinzu:
Auswahl von App / Lade Applikation / die gewünschte Applikation auswählen
Dieser Task wird jetzt mit einem Profil verknüpft, welches beim Empfang eines HTTP Requests gestartet wird:
Klick auf unter "Profiles"
Auswahl von Ereignis / Plugin / AutoRemote / AutoRemote
In der Konfiguration kann dann z.B. eingestellt werden, ob nur auf bestimmte Messages gehört werden soll
Auswahl des eben angelegten Tasks "startMyApp"
Loxone Config
Um die einzelnen Aktionen aus der Programmierung des Miniservers zu steuern legen wir zunächst einen Virtuellen HTTP-Ausgang mit der IP des Android-Gerätes an:
Adresse: http://<ip-Adresse>:1817
z. B.: http://192.168.1.97:1817 - der Port ist immer 1817
"Verbindung nach Senden schließen" anhaken
Jetzt legt man für jede Aktion einen eigenen Virtuellen Ausgang Befehl an. Die Befehle (bei EIN bzw. AUS) lauten immer "/?message=<my message text>"
Die Message muss mit dem übereinstimmen, was zum Unterscheiden der Aktionen in Tasker (beim Filter) eingestellt wurde.
Die AutoRemoteLite Version kann nur Messages mit max. 2 Buchstaben unterscheiden