Ich hab etwas gesucht, um auf Android-Geräten auf FHEM-Events reagieren zu können. Das Ganze sollte mit Tasker funktionieren und vor allem sollten die Events direkt über das lokale Netzwerk an das Android-Gerät gehen. Ohne Umwege übers Interenet wie zB bei Google Cloud Messaging. Ich bin dann auf das Tasker-Plugin "Tasker Network Event Server" gestoßen, welchse auf dem Android-Gerät einen HTTP-Server laufen lässt, dem man dann beliebige Events schicken kann, auf die man dann in Tasker reagieren kann:
https://play.google.com/store/apps/details?id=bidoismorgan.httpevent&hl=de (https://play.google.com/store/apps/details?id=bidoismorgan.httpevent&hl=de)
Ich hab mir dann dafür ein kleines FHEM-Modul gebastelt, welches alle FHEM-Events an einen solchen HTTP-Server weiterleitet (im Anhang).
Das Modul wird mit der URL definiert, an die die Events geschickt werden sollen. ZB.:
define tsen TNES http://192.168.2.22:8765/
192.168.2.22 ist in dem Fall die IP des Android-Gerätes. Der Default-Port auf dem TNES auf dem Android-Gerät lauscht ist 8765. Ab jetzt werden alle FHEM-Events als HTTP-POSTs auch an das Android-Gerät geschickt.
Mit dem Attribut "stateFilter" kann man über ein RegEx die Events einschränken, die an Android geschickt werden sollen. Syntax angelehnt an notify.
Die Events, die in Tasker ankommen haben immer eine Variable "device", die den Namen des triggernden Geräts enthält. Und dann noch eine zusätzliche Variable, die den Namen und den Wert des Events enthält. Also zB "device=fl_tablet" und "state=on".
Auf Android-Seite legt man dann unter Tasker ein neues Profil an:
- Plugin -> "TNES: Tasker Network..."
- Dann unter Konfiguration zeilenweise Variablen angeben, die in dem Event drin sein müssen. ZB "device==fl_tablet" und in der nächsten Zeile "state==on", wenn man darauf triggern möchte, dass "fl_tablet" auf "on" geschaltet wird. Lässt man den Wert weg (also zB nur "state" anstelle von "state==on", dann kann ein beliebiger Wert drin stehen. Aber die Variable muss enthalten sein).
Ich habe mir zB in FHEM ein dummy angelegt, welches ich ein und auschalte und auch ein Reading "brightness" setze. Diese Events greife ich dann auf dem Android-Tablet ab und schalte das Display ein oder aus oder ändere die Bildschrimhelligkeit.
Evtl. kann ja jemand etwas damit anfangen...
Hier auch eine Variante, die AutoRemote für Tasker anstelle von TNES nutzt:
https://forum.fhem.de/index.php/topic,72163.0.html (https://forum.fhem.de/index.php/topic,72163.0.html)
Und warum verwendest Du dafür nicht AMAD. Mit. AMAD kannst Du Android Geräte steuern so wie Du es beschrieben hast. Also zum Beispiel die Bildschirmhelligkeit ändern.
Das hat verschiedene Gründe. Der offensichtlichste ist wohl, dass AMAD meines Wissens nach Tasker nicht unterstützt. Da Tasker in meinen Augen der "de-facto"-Standard im Bereich Android-Automatisierung ist, war allein das für mich schon ein wichtiges Kriterium (wie eingangs geschrieben).
Und AMAD ist mir einfach zu kompliziert. Zwei neue FHEM-Module und zusätzlich noch der Flowset für die Automagic-App, die in korrekter Reihenfolge aktiviert werden müssen (laut Wiki). Ich mag's halt, wenn Sachen simpel sind ;)
Außerdem bringt mir AMAD zu viel eigene Logik mit. Ich wollte einen simplen Ansatz, der keine Logik mitbringt. Das Modul hier ist wirklich nur ein strunzdummes Gateway. Alle Events werden 1:1 an Android weitergeschickt. So hab ich dann auf Tasker-Seite alle Freiheiten und alle Möglichkeiten. So wie ich es verstanden habe (ich mag mich irren), bringt AMAD eine ganze Reihe hardverdrahteter Readings und Befehle mit, die dann unterstützt werden (und auf Android-Seite im Flowset hinterlegt sind?). Finde ich persönlich vom Ansatz her nicht so gut (wobei der Ansatz sicherlich auch Vorteile hat). Aber das ist sicherlich auch Geschmackssache.
Naja das mit der Reihenfolge ist nur damit wirklich nichts schief gehen kann. Eigentlich nicht nötig.
Und es ist ja nur ein Modul. ;D
Aber Du hast Recht. AMAD kann nur feste Befehle. Es gibt vom Gedanken her Ansätze für User definierte Befehle. Leider bin ich noch nicht so weit bei der Umsetzung.
Soll ich Dir mal was lustiges erzählen. Ich finde Tasker wahnsinnig kompliziert ;D
Ich habe eigentlich nur geschrieben weil ich dachte Du kennst AMAD noch nicht.
Grüße
Hallo, ich hab es schon mal geschrieben, man kann doch fhem eigentlich auch direkt in tasker verwenden...
Profil anlegen
Plugin
Fhem
Status auswählen...
Nur funktioniert das nicht, weiß jemand an was das liegt?
Gesendet von meinem SM-G935F mit Tapatalk
Hallo zelli,
ich denke du meinst bei Plugin "andFHEM", ansonsten weiß ich nicht von welchem Plugin du sprichst.
Und ich denke das kann nur funktionieren, wenn du die Steuerung deiner Geräte auch durch andFHEM vornimmst. Die App bekommt ja keine Rückmeldung durch fhem, sondern kann immer nur selber den Status abfragen.
Das Modul hier funktioniert ja ganz anders. Es schickt immer alle Ereignisse übers Netzwerk raus...
An dieser Stelle mal ein ganz herzliches Dankeschön von mir für die Erstellung dieses Moduls. Dadurch habe ich endlich die Möglichkeit bekommen meine Tasker Widgets bei Statusänderungen automatisch anzupassen. Ich habe einige Widgets zur Beleuchtungssteuerung auf meinem Homescreen und finde es super, dass diese jetzt auch auf Änderungen der Beleuchtung reagieren, wenn das Licht per Taster, oder Tablet gesteuert wird!
Und Mal davon ab ging es in diesem Thread darum mit FHEM das Android Geräte zu steuern. Also auf FHEM Events am Gerät zu reagieren.
Im Grunde genau das was AMAD macht nur ohne AMAD.
Zitat von: CoolTux am 20 Februar 2017, 05:18:35
Im Grunde genau das was AMAD macht nur ohne AMAD.
...was aber nur stimmt, wenn AMAD jetzt auch Tasker und das Verarbeiten komplett eigener Befehle unterstützt.
Ich hab hier übrigens noch ein anders Modul für Tasker liegen. Das kann dann mit Tasker per AutoRemote-Plugin reden. Werde ich mal hochladen bei Gelegenheit... Falls jemand gesteigertes Interesse daran haben sollte, dann bitte Bescheid sagen. Dann würde ich das vorziehen...
Wenn Tasker eine Netzverbindung zu lässt, dann könnte man sich zusammen tun und versuchen das ganze Automagic Gedöns in Tasker zu adaptieren.
Grüße
Nett!
Etwas hackelig in der Benutzung, aber tut, was es soll...
Zitat von: vbs am 20 Februar 2017, 09:00:36
...was aber nur stimmt, wenn AMAD jetzt auch Tasker und das Verarbeiten komplett eigener Befehle unterstützt.
Genau das ist es ja!
Ich habe schon alles fertig in Tasker und brauchte nur die Meldungen aus fhem, was gerade passiert.
Dafür will ich mir doch nicht noch zusätzlich Automagic installieren müssen und darin nochmal alles konfigurieren!
Das einzige Problem was ich habe, ist dass TNES anscheinend nicht alle Status Änderungen immer mitbekommt, wenn sie schnell hintereinander geschickt werden. Oder Tasker kann nicht alles weiterverarbeiten, weil meine Tasks zu lange dauern...
Frage dazu:
Kann man das Senden ein- und ausschalten? (Klar per disable)
Hintergrund: Ich brauche keine Events ans Handy schicken, wenn das gar nicht im Heimnetz ist.
Attribut disable wird vom Modul aber nicht unterstützt. Ansonsten wird nur über die Moduldefinition gesteuert, welche Nachrichten an welche Devices gehen.
Zitat von: vbs am 20 Februar 2017, 09:00:36
Ich hab hier übrigens noch ein anders Modul für Tasker liegen. Das kann dann mit Tasker per AutoRemote-Plugin reden. Werde ich mal hochladen bei Gelegenheit... Falls jemand gesteigertes Interesse daran haben sollte, dann bitte Bescheid sagen. Dann würde ich das vorziehen...
Hallo vbs,
bin gerade auch dabei Werte von FHEM über AutoRemote in TASKER zu bekommen, das funktioniert auch erst mal wie gewünscht:
https://forum.fhem.de/index.php/topic,38495.msg637400.html#msg637400 (https://forum.fhem.de/index.php/topic,38495.msg637400.html#msg637400)
Allerdings wäre mir eine Lösung über ein richtiges Modul schon lieber.
Hätte jedenfalls Interesse an dein Modul. :)
Gruß Schlimbo
Hab das Modul mal hier gepostet:
https://forum.fhem.de/index.php/topic,72163.0.html
Und aus dem Kopf etwas zur Funktionsweise geschriebe, ich hoffe das stimmt noch so!
Vielen Dank, werde ich die Tage mal ausprobieren.
Gibt es für TNES eigentlich auch die Möglichkeit den WIFI Service zu deaktivieren?
Habe dazu nichts gefunden. Will den Port am Handy nur im eigenen Heimnetz öffnen.
Sorry, kann ich nix zu sagen. Bin irgendwann dann auf AutoRemote umgestiegen. Aber der Entwickler von TNES leistet super Support und beantwortet auch Emails zeitnah.
Hallo
Bin auf der suche wie ich TNES konfigurieren muss.
Oben in der Konfig steht unter HTTP server at
192.168.7.105:8765 # Das ist die Adresse vom Handy
In der Zeile darunter Romote broker Adress:
http://thachabuapp.com/ # was muss hier eingetragen werden
Event name: # fl_tablet ?
Filter (one per line)
Wo wird denn "device=fl_tablet" und "state=on" eigegeben?
Gruß NetFritz
Hallo
Hat sich erledigt.
Habe hier die Lösung gefunden.
http://forum.iobroker.net/viewtopic.php?t=1572
Gruß NetFritz
Vielleicht von mir mal eine Info, die ich mir mit Trial-and-Error "erarbeitet" habe:
Man kann auch über einen in der FTUI-Oberfläche eingebauten Link zu TNES ein Ereignis auf dem Gerät auslösen.
Syntax: http://0.0.0.0:8765/?ausloeser=
Wobei auf dem Android-Gerät unter TNES das Wort "ausloeser" dann als Filter in TNES hinterlegt wird.
Das Profil auf dem Android-Gerät reagiert auf "ausloeser" und löst einen Task aus. Funktioniert.
So. Kommando zurück. Hat fünf Minuten funktioniert, jetzt unterscheidet TNES nur noch selten nach den unterschiedlichen URLs. Ich forsche weiter und melde mich zurück, falls ich es gelöst bekomme. Bin natürlich auch für Tips dankbar, woran es liegen könnte. ;-)
Nach ein wenig weiterem Testen und Auswertung karger Informationen im Internet scheine ich eine brauchbare Lösung gefunden zu haben.
Wichtig ist scheinbar, daß es KEIN Default-Event gibt.
Ich muß drei verschiedene Ereignisse auslösen. Eine kommt von der Klingel (die gab es schon vor meiner FTUI-Oberfläche), die war bislang default (also ohne Parameter) und wurde von der Klingel mittels http://ip:8765 aufgerufen. Ging schon immer ohne Probleme.
Für meine FTUI-UI mußte ich nun aber zwei weitere Ereignisse hinzufügen. In schöner Regelmäßigkeit wurde aber das Default-Event ausgelöst. Das gibt es jetzt nicht mehr, die Klingel sendet nun den Parameter "dingdong".
Die anderen beiden Ereignisse arbeiten wie folgt:
<li data-row="3" data-col="8" data-sizey="1" data-sizex="1">
<div class="hbox">
<div data-type="link" class="white bigger"
data-icon="oa-it_camera"
data-url="http://0.0.0.0:8765/broadcast?allkam"></div>
</div>
</li>
<li data-row="2" data-col="8" data-sizey="1" data-sizex="1">
<div class="hbox">
<div data-type="link" class="white bigger"
data-icon="mi-hd"
data-url="http://0.0.0.0:8765/broadcast?hatu"></div>
</div>
</li>
Ob das "broadcast wirklich erforderlich ist, weiß ich nicht, aber es funktioniert, deshalb lasse ich es jetzt einfach so. ;-)
In TNES habe ich dingdong, hatu und allkam jeweils als "event name" und "filters" im Profil eingegeben.
Wen der Hintergrund interessiert: Event "dingdong" ruft eine Seite für meine Haustüre aus. Da wird von der Kamera der Türsprechanlage ein Bild (als img mit 1s refresh) geholt. Da die Videointegration in FTUI nicht so einfach ist, ich aber auf den echten Videostream nicht verzichten mag, löst ein Button einen Task auf dem Tablet aus, der eine Kamera-App mit dem gewünschten Stream startet. Ein zweiter Button startet weitere Kameras. Durch Verwendung des FullyBrowsers bringt der Homebutton mich zurück auf die index.html.
Das läßt sich natürlich mit jeder beliebigen anderen App auf dem Gerät mittels Tasker genauso realisieren.