[98_TNES] Modul für Tasker Network Event Server (Android)

Begonnen von vbs, 04 Juni 2016, 19:24:09

Vorheriges Thema - Nächstes Thema

vbs

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

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

CoolTux

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.
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

vbs

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.

CoolTux

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
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

zelli001

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


fhemler

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!

CoolTux

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.
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

vbs

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...

CoolTux

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
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

JoeALLb

Nett!
Etwas hackelig in der Benutzung, aber tut, was es soll...
FHEM-Server auf IntelAtom+Debian (8.1 Watt), KNX,
RasPi-2 Sonos-FHEM per FHEM2FHEM,RasPi-3 Versuchs-RasPi für WLAN-Tests
Gateways: DuoFern Stick, CUL866 PCA301, CUL HM, HMLan, JeeLink, LaCrosse,VCO2
Synology. Ardurino UNO für 1-Wire Tests, FB7270

fhemler



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...

rabehd

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.
Auch funktionierende Lösungen kann man hinterfragen.

vbs

Attribut disable wird vom Modul aber nicht unterstützt. Ansonsten wird nur über die Moduldefinition gesteuert, welche Nachrichten an welche Devices gehen.

Schlimbo

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
Allerdings wäre mir eine Lösung über ein richtiges Modul schon lieber.
Hätte jedenfalls Interesse an dein Modul. :)

Gruß Schlimbo

vbs

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!