Hallo,
Fhem ist noch relativ neu für mich. Ich habe bisher mein bescheidene Automation mit Tasker und Eventghost lösen können, leider hört der Spass dann auf wenn man Funksteckdosen einbinden will.
Für das übertragen von Tasker zu Fhem gibt es ja das nette Plugin von andFHEM aber wie kann man Signal von Fhem zu Tasker (alternativ auch über den Umweg Eventhgost) übertragen?
Ich möchte zum Beispiel das Signal eines 433 MHZ Bewegungsmelder zu Android übertragen damit Tasker das Display automatisch einschaltet wenn der Bewegungsmelder auslöst?
Viele Grüße
Hallo,
ich hab es selber noch nicht gemacht, aber ich denke, daß hier pushover-notifications ein gangbarer weg wären.
schau mal hier:
http://www.meintechblog.de/2014/01/homematic-funk-steckdose-mit-leistungsmessung-deine-waschmaschine-ist-fertig/
cheers,
Pula
Kein Tasker, funktioniert aber:
https://play.google.com/store/apps/details?id=at.asp1.woli&hl=de (https://play.google.com/store/apps/details?id=at.asp1.woli&hl=de)
Und mit einer ähnlichen Funktion, wie dieser, eine UDP-Message schicken:
sub UDP_Msg($$)
{
my ($dest,$cmd) = @_;
my $sock = IO::Socket::INET->new(
Proto => 'udp',
PeerPort => 6666,
PeerAddr => $dest
) or die "Could not create socket: $!\n";
$sock->send($cmd) or die "Send error: $!\n";
return "send $cmd";
}
mit Tasker gehts auch, wie pula gesagt hat.
Man kann mit andfhem und gcm eine Notification senden lassen, auf die dann Tasker reagieren kann.
Vielen lieben Dank für die Lösungsvorschläge. Das bringt mich schon mal ein ganzes Stück weiter.
Nur noch als Ergänzung:
Es gibt für Tasker das Plugin Autoremote. Damit kann man Nachrichten versenden und empfangen. Von FHEM aus geht das Versenden von Nachrichten beispielsweise einfach mit einem Systemaufruf von curl.
Der Unterschied (und meiner Meinung nach Vorteil) im Vergleich zu GCM-basierten Lösungen ist, dass man Autoremote auch direkt über das lokale Netzwerk nutzen kann. Dabei macht das Plugin auf dem Android-Gerät einen lokalen Server auf, der auf eingehende Daten wartet. Geht also ohne Internetverbindung, die Daten bleiben lokal und kommen meiner Erfahrung nach deutlich schneller und zuverlässiger an als bei GCM, Pushover & Co.. Ich habe das so schon länger im produktiven Einsatz und sehr gute Erfahrungen damit gemacht (FHEM steuert darüber zwei Android-Tablets im Haus sowie mein Smartphone zuhause und unterwegs an). Und da es als Plugin direkt in Tasker integriert ist, hat man sehr flexible Nutzungsmöglichkeiten.
Autoremote klingt spannend. wäre auch eine möglichkeit, per android commands auf einer linux-maschine auszuführen. zb vdr zu killen, wenn es sich aufgehängt hat...
würde den WAF definitiv erhöhen :D
Zitat von: Brockmann am 26 Juni 2015, 18:01:08
Es gibt für Tasker das Plugin Autoremote. Damit kann man Nachrichten versenden und empfangen. Von FHEM aus geht das Versenden von Nachrichten beispielsweise einfach mit einem Systemaufruf von curl.
Der Unterschied (und meiner Meinung nach Vorteil) im Vergleich zu GCM-basierten Lösungen ist, dass man Autoremote auch direkt über das lokale Netzwerk nutzen kann. Dabei macht das Plugin auf dem Android-Gerät einen lokalen Server auf, der auf eingehende Daten wartet. Geht also ohne Internetverbindung, die Daten bleiben lokal und kommen meiner Erfahrung nach deutlich schneller und zuverlässiger an als bei GCM, Pushover & Co.. Ich habe das so schon länger im produktiven Einsatz und sehr gute Erfahrungen damit gemacht (FHEM steuert darüber zwei Android-Tablets im Haus sowie mein Smartphone zuhause und unterwegs an). Und da es als Plugin direkt in Tasker integriert ist, hat man sehr flexible Nutzungsmöglichkeiten.
Hallo Brockmann, ich versuche momentan auch die Kommunikation von FHEM nach Android hinzubekommen. Leider scheint mir die lokale Autoremote Schnittstelle nicht gut dokumentiert zu sein. Kannst du vielleicht mal ein Beispiel possten welche Aktionen FHEM bei dir absetzt und wie die Tasker Profile/Tasks aussehen, die darauf reagieren? Ich tue mich schwer die curl Befehle richtig zu formulieren.
Danke und Gruß
Leo
Zitat von: LeoSum am 08 März 2016, 07:29:53
Hallo Brockmann, ich versuche momentan auch die Kommunikation von FHEM nach Android hinzubekommen. Leider scheint mir die lokale Autoremote Schnittstelle nicht gut dokumentiert zu sein. Kannst du vielleicht mal ein Beispiel possten welche Aktionen FHEM bei dir absetzt und wie die Tasker Profile/Tasks aussehen, die darauf reagieren? Ich tue mich schwer die curl Befehle richtig zu formulieren.
{system("curl -silent -X POST -d '{message:\"".<NACHRICHT>."\",sender:FHEM,communication_base_params:{type:Message,fallback:false,via:Wifi}}' <GERÄT>:1817 --header Content-Type:application/json > /dev/null &")}}
<NACHRICHT> und <GERÄT> durch passende Daten ersetzen und die Portnummer ggf. anpassen.
Danke, mit leichter Abänderung hat es bei mir nun geklappt!
{system("curl -silent -X POST -d '{message:'<NACHRICHT>',sender:FHEM,communication_base_params:{type:Message,fallback:false,via:Wifi}}' <GERÄT>:1817 --header Content-Type:application/json > /dev/null &")}
Für die Verbindung von FHEM zu Android gibt es auch das AMAD Modul.
Grüße
Danke für den Hinweis, das hatte ich mir auch angesehen. Aber leider ist das nicht so mächtig wie Tasker mit all seinen Zusatzplugins.
Automagic kann auch Taskerplugins. Und dann wäre noch die Frage, welche Plugins von den "all seinen" brauchst Du denn?
Grüße
Hallo, fhem gibt es doch auch direkt als Event plugin... Funktioniert nur leider irgendwie nicht
Gesendet von meinem SM-G935F mit Tapatalk
Zitat von: LeoSum am 12 März 2016, 19:01:57
Danke, mit leichter Abänderung hat es bei mir nun geklappt!
{system("curl -silent -X POST -d '{message:'<NACHRICHT>',sender:FHEM,communication_base_params:{type:Message,fallback:false,via:Wifi}}' <GERÄT>:1817 --header Content-Type:application/json > /dev/null &")}
Hallo zusammen,
ich versuche nun auch schon eine ganze Weile so eine Benachrichtigung von FHEM an Tasker zu senden. Leider hat dies bisher bei mir nicht funktioniert.
Bin wie folgt vorgegangen: Den oben dargestellten Befehl hab ich auf meine Bedigungen angepasst
{system("curl -silent -X POST -d '{message:'hi',sender:FHEM,communication_base_params:{type:Message,fallback:false,via:Wifi}}' 192.168.0.11:1817 --header Content-Type:application/json > /dev/null &")}
und zum Test in die Befehlszeile von FHEM eingegeben. Dort hab ich dann nur folgende Rückmeldung erhalten: -1
Auf dem Tabelt ist leider nichts angekommen. Autoremote und Tasker sind natürlich installiert und eingerichtet. Muss hier evtl noch etwas spezielles beachtet werden?
Zitat von: Banis am 06 März 2017, 12:19:24
Auf dem Tabelt ist leider nichts angekommen. Autoremote und Tasker sind natürlich installiert und eingerichtet. Muss hier evtl noch etwas spezielles beachtet werden?
Was genau heißt "eingerichtet"? Ist der Autoremote-Wife-Service durch Tasker gestartet? Erst dann geht Autoremote "auf Empfang".
Super vielen Dank für den Hinweis, jetzt klappt es
Hallo,
ich versuche gerade eine Verbindung von FHEM zum Android tablet mit Tasker und Autoremote herzustellen. Leider erfolglos.
{system("curl -silent -X POST -d '{message:'<NACHRICHT>',sender:FHEM,communication_base_params:{type:Message,fallback:false,via:Wifi}}' <GERÄT>:1817 --header Content-Type:application/json > /dev/null &")}
Ich bekomme aus der Befehlszeile immer -1 zurück!
Im Logfile steh "Device is not available."
Wo kann der Fehler liegen?
ZitatWas genau heißt "eingerichtet"? Ist der Autoremote-Wife-Service durch Tasker gestartet? Erst dann geht Autoremote "auf Empfang".
wo genau kann man das einstellen?
Nachrichten aus von der Internetseite können verschickt werden: http://autoremotejoaomgcd.appspot.com/ diese Nachrichten werden von Autoremote und Tasker verarbeitet !??
Danke für eure Hilfe
Besten Gruß Dominik
Zitat von: Clockwork am 16 Mai 2017, 16:27:53
Hallo,
ich versuche gerade eine Verbindung von FHEM zum Android tablet mit Tasker und Autoremote herzustellen. Leider erfolglos.
{system("curl -silent -X POST -d '{message:'<NACHRICHT>',sender:FHEM,communication_base_params:{type:Message,fallback:false,via:Wifi}}' <GERÄT>:1817 --header Content-Type:application/json > /dev/null &")}
Ich bekomme aus der Befehlszeile immer -1 zurück!
Im Logfile steh "Device is not available."
Wo kann der Fehler liegen?
wo genau kann man das einstellen?
Nachrichten aus von der Internetseite können verschickt werden: http://autoremotejoaomgcd.appspot.com/ diese Nachrichten werden von Autoremote und Tasker verarbeitet !??
Danke für eure Hilfe
Besten Gruß Dominik
Schaue Dir mal das AMAD Modul an. Da kannst Du Dein Androiden mit steuern und bekommst diverse Zustandsinformationen als Readings.
Hallo,
aber ich möchte eigentlich "nur" Tasker aus FHEM ansteuern....
Beste Gruß
Ach so. Ok
Wäre echt super wenn mir dabei jemand kurz helfen könnte
qx statt system
funktioniert leider auch nicht. Muss ich irgendwas aktivieren das ich vom fhem server über das lokale netzwer an die den Autoremote Server was schicken kann?
Was genau soll Dein Aufruf denn machen? Ich hatte es so verstanden das Du einen Rückgabewert erwartest.
es soll eigentlich nur das gesendete bei tasker ankommen. Ich weiss nicht was ich bei Tasker oder bei Autoremote noch einstellen muss. Muss ich den Raspberry irgendwo registrieren? Über das Internet empfängt Taske die Nachricht. über <IP>:1817 im Netzwerk nicht
Ah, ok. Da kann ich dann leider auch nicht helfen.
Was bekommst du denn wenn du den curl Aufruf in der bash abschickst?
In der Bash kommt folgendes:
pi@raspberrypi:~ $ curl -X POST -d '{message:'hi',sender:FHEM,communication_base_params:{type:Message,fallback:false,via:Wifi}}' 192.168.157.30:1817 --header Content-Type:application/json > /dev/null
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
0 0 0 0 0 0 0 0 --:--:-- --:--:-- --:--:-- 0curl: (7) Failed to connect to 192.168.157.30 port 1817: Connection refused
Irgendwie kann keine Verbindung zum Tablet aufgebaut werden
Entweder Firewall oder es läuft kein Dienst hinter dem Port.
Ich habe auch nirgendwo gefunden wo ich den port am tablet/tasker autoremote freischalten kann. Firewall hab ich nicht
Also wenn schaltest Du da keinen Port frei sondern hinter dem Port muss ein entsprechender Dienst laufen.
Kenne Radler und Autoremote aber nicht.
Ja und diesen Dienst muss ich wohl irgendwie freischalten !? Ich finde leider nichts darüber, aber bei allen andere scheint das ja zu laufen !? Vielleicht kann sich da ja mal jemand zu melden.
Hi Clockwork,
um für Autoremote den WIFI Service zu starten, musst du in Tasker einen neuen Task erstellen:
Plugin -> AutoRemote --> Wifi --> Wifi Service
Gruß Schlimbo
Besten Dank werde das morgen mal testen 8)
Und? Wenn's funktioniert bitte auf [Gelöst] setzen (Subject des ersten Posts ändern)
Hallo,
Danke Schlimbo für den Ansatz Autoremote zu aktivieren. Es funktioniert nun so wie es soll!
Nun kommt bei Ausführung aus der Bash keine Fehlermeldung mehr:
pi@raspberrypi:~ $ % Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 326 100 237 100 89 762 286 --:--:-- --:--:-- --:--:-- 764
Aufgefallen ist mir jetzt folgendes:
Wenn ich in Tasker den Task mit dem Wifi Service per Hand starte (Play Taste) funktioniert alles wie gewollt. Nach einiger Zeit scheint sich der Service allerdings zu deaktivieren! Wo kann man einstellen das dieser Task bzw. der Wifi Service immer aktiv bleibt?
Hallo Clockwork,
ich habe mir in Tasker ein Profil angelegt das den Wifi Service startet sobald ich mit meinem Heim-WLAN verbunden bin und den Service wieder stoppt wenn ich das WLAN verlasse.
Wenn der Service von alleine beendet wird könntest du auch mal versuchen die Akku-Leistungsoptimierung für die AutoRemote App zu deaktivieren.
Android Einstellungen --> Akku --> Akku-Leistungsoptimierung
Wenn jemand das msg Modul (https://forum.fhem.de/index.php/topic,39983.0.html) zum Senden von AutoRemote Nachrichten verwenden möchte, hier mein Setup:
Ein Dummy "AutoRemote" erstellten:
defmod AutoRemote dummy
attr AutoRemote userattr ipaddr msgCmdPush msgCmdPushHigh msgCmdPushLow msgTitlePush
attr AutoRemote msgCmdPush set %DEVICE% msg %TITLE%=:=%MSG%
attr AutoRemote msgCmdPushHigh set %DEVICE% msg %TITLE%=:=%MSG%
attr AutoRemote msgCmdPushLow set %DEVICE% msg %TITLE%=:=%MSG%
attr AutoRemote msgTitlePush FHEM
attr AutoRemote msgType push
attr AutoRemote readingList msg presence
attr AutoRemote setList msg presence:present,absent
IP des Device auf dem AutoRemote läuft muss im Anschluss noch im Attribut "ipaddr" hinterlegt werden (z.B. attr AutoRemote ipaddr 192.168.1.10)
Zum Senden noch ein Notify anlegen:
defmod AutoRemote.ntfy notify AutoRemote:msg.* {\
$EVENT =~ s/msg: //g;;\
my $ipaddr = AttrVal($NAME, 'ipaddr','');; \
if ($ipaddr eq ''){\
readingsSingleUpdate($defs{$NAME}, "ipaddr", 'Fehler: Attribut "ipaddr" ist nicht gesetzt', 1);;\
}\
else{\
readingsSingleUpdate($defs{$NAME}, "ipaddr", "$ipaddr", 1);;\
system("curl -silent -X POST -d '{message:\"".$EVENT."\",sender:FHEM,communication_base_params:{type:Message,fallback:false,via:Wifi}}' $ipaddr:1817 --header Content-Type:application/json > /dev/null &")\
}\
}
Jetzt können über msg Nachrichten versendet werden.
z.B.
msg push @AutoRemote <text>
Ich hatte schon länger für mich mal ein Modul gemacht um Events an Tasker zu schicken. Habe es gerade mal hier gepostet:
https://forum.fhem.de/index.php/topic,72163.0.html (https://forum.fhem.de/index.php/topic,72163.0.html)
Vielleicht hat ja jemand Verwendung dafür...
Hallo,
danke Schlimbo, habs nochmal getestet, anscheinend habe ich durch mein gefukkel den Diesnst selber beendet ??? werde es beobachten und evtl. ein Profil in Tasker setzten und den Wifi Dienst einmal am Tag neustarten.
Die Verbindung von FHEM zu Tasker über Autoremote steht nun!
Jetzt habe ich das Problem das ich gerne Textstrings mit "Leerzeichen" nach Tasker schicken möchte. Autoremote akzepiert aber scheinbar keine Leerzeichen. Kann ich den Text in einem anderen Format nach Autoremote schicken? Ich habe auch schon probiert mit %20 als Leerzeichen, ohne Erfolg.
Danke für Eure Hilfe
Das Problem hatte ich auch anfänglich.
Du verwendest wahrscheinlich den Code aus diesem Beitrag:
Zitat von: LeoSum am 12 März 2016, 19:01:57
Danke, mit leichter Abänderung hat es bei mir nun geklappt!
{system("curl -silent -X POST -d '{message:'<NACHRICHT>',sender:FHEM,communication_base_params:{type:Message,fallback:false,via:Wifi}}' <GERÄT>:1817 --header Content-Type:application/json > /dev/null &")}
Hiermit konnte ich auch keinen Text mit Leerzeichen Senden.
Lösung:
Die Anführungszeichen müssen mit einen Backslash (\) Maskiert werden.
So wie es in dem Ursprünglichen Code auch schon vorhanden war:
Zitat von: Brockmann am 08 März 2016, 09:06:20
{system("curl -silent -X POST -d '{message:\"".<NACHRICHT>."\",sender:FHEM,communication_base_params:{type:Message,fallback:false,via:Wifi}}' <GERÄT>:1817 --header Content-Type:application/json > /dev/null &")}}
Zu beachten ist hier, dass <NACHRICHT> eine Variable ist. Außerdem ist die letzte geschweifte Klammer zu viel.
Wenn der Text nicht in einer Variable steht sieht es dann so aus:
{system("curl -silent -X POST -d '{message:\"<NACHRICHT>\",sender:FHEM,communication_base_params:{type:Message,fallback:false,via:Wifi}}' <GERÄT>:1817 --header Content-Type:application/json > /dev/null &")}
Vielen Dank,
es klappt nun alles super! Ich wäre da nie alleine drauf gekommen das war schon echt frustrierend! Besten Dank!!!
Schön dass es klappt :-) Setzt du das Thema dann noch auf [Gelöst]? (Subject des ersten Posts editieren). Danke!