Hauptmenü

UDP Telegramm an Woli App

Begonnen von eberlrudi, 24 Februar 2015, 13:13:15

Vorheriges Thema - Nächstes Thema

eberlrudi

Hallo,

Um mein Tablet per Notify zu wecken möchte ich gerne ein UDP-Telegramm zur Woli App "https://play.google.com/store/apps/details?id=at.asp1.woli&hl=de" auf meinem Tablet senden. Ich weiß leider überhaupt nicht wie sich der Befehl zusammensetzt.

Mit einem "Packet-Sender" (siehe Anhang) lässt sich das Display wunderbar aktivieren und deaktivieren. Was müsste ich da ins Notify schreiben?

Vielleicht kennt sich jemand aus und kann mir helfen.

eberlrudi


Wzut

ohne deine Woli App zu kennen , wenn ich ein UDP Paket auf Port 6666 in meinem Netz an einen Host schicken wollte würde ich in der 99_myUtils mir zuerst einen Funktion anlegen :

use IO::Socket;

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";
}


und dann mit einem notify ala
define sende_woli_on  notify mein_schalter:on {UDP_Msg("192.168.2.7" , "wolido:displayon");}
Maintainer der Module: MAX, MPD, UbiquitiMP, UbiquitiOut, SIP, BEOK, readingsWatcher

eberlrudi

Vielen Dank schon mal für die Hilfe.

Ich habe 99_myUtils.pm erstellt und den Code hineinkopiert. (habe als letzte Zeile noch 1; eingefügt)

Dann habe ich  {UDP_Msg("192.168.2.7" , "wolido:displayon");} in mein vorhandenes funktionierendes Notify eingefügt.


Leider tut sich nichts beim auslösen. Muss ich an dem Code noch etwas ändern?

Wzut

Maintainer der Module: MAX, MPD, UbiquitiMP, UbiquitiOut, SIP, BEOK, readingsWatcher

eberlrudi

#5
Klar. Genau so. ;)

Daher weiß ich auch dass man mit 1; abschließen soll


was kann ich jetzt noch versuchen? Oder muss die Funktion erst aktiviert werden?



##############################################
# $Id: myUtilsTemplate.pm 7570 2015-01-14 18:31:44Z rudolfkoenig $
#
# Save this file as 99_myUtils.pm, and create your own functions in the new
# file. They are then available in every Perl expression.

package main;

use strict;
use warnings;
use POSIX;

sub
myUtils_Initialize($$)
{
  my ($hash) = @_;
}

# Enter you functions below _this_ line.
use IO::Socket;

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";
}


1;

eberlrudi

Muss Ich evtl. im Server etwas freischalten oder installieren?
Fhem läuft auf einem Debian-Server

Wzut

nach dem Erstellen ein reload 99_myUtlis gemacht ?
was sagt denn dein Logfile ?
da sollte doch irgend etwas drin stehen, egal ob es geklappt hat oder nicht !?!
Maintainer der Module: MAX, MPD, UbiquitiMP, UbiquitiOut, SIP, BEOK, readingsWatcher

eberlrudi

reload 99_myUtils.pm gemacht.

Logfile - finde ich nicht ??? Ich habe nur für meine Autoren, Sensoren und Wetter Logfiles... (vielleicht mal ausversehen gelöscht).

Wzut

...stöhn ... und was steht bei Dir im Webinterface über dem Wort bzw Link Commandref ?
Halt stop nicht sofort antworten,  einfach draufklicken ,lesen , kopieren und "richtig" mit Code Tags posten ...
Maintainer der Module: MAX, MPD, UbiquitiMP, UbiquitiOut, SIP, BEOK, readingsWatcher

eberlrudi

Sorry dass ich immer falsch gepostet habe.

Wahrscheinlich habe ich das Logfile beim aufräumen mal gelöscht...  :-[
kann ich das wieder erstellen?

eberlrudi

Ich habe mir das Logfile wieder erstellt und eine Fehlermeldung entdeckt, wenn ich reload 99_myUtils.pm mache.


2015.02.25 16:59:52 0: Server started with 46 defined entities (version $Id: fhem.pl 8066 2015-02-22 13:33:26Z rudolfkoenig $, os linux, user fhem, pid 3598)
2015.02.25 17:00:28 1: PERL WARNING: Subroutine myUtils_Initialize redefined at ./FHEM/99_myUtils.pm line 15.
2015.02.25 17:00:28 1: PERL WARNING: Subroutine UDP_Msg redefined at ./FHEM/99_myUtils.pm line 23.

marvin78

Das sind keine Fehler sondern nur Warnings, wie es auch dort steht.

Hast du mal

{UDP_Msg("192.168.2.7" , "wolido:displayon")}

In die Kommandozeile eingegeben?

eberlrudi

#13
 :o Ich weiß grad nicht was vorher falsch war aber mit dem Code den du JETZT gepostet hast geht es ;D

Vielen Dank für die Hilfe!




Hinten war ein Semikolon zu viel...

marvin78