Weitere Perl-Module für 7390 Labor/FHEM Labor installieren

Begonnen von Guest, 29 September 2011, 11:44:53

Vorheriges Thema - Nächstes Thema

Guest

Originally posted by: <email address deleted>

Hallo zusammen,

wie ist es möglich in der Umgebung FritzBox 7390 / Fritz Labor FHEM Image
weitere Perlmodule zu installieren?
Genau brauche ich wwwlib-perl (LWP, HTTP-Request, HTTP-Header), um einen
Server per POST aufzurufen.

Plz help!!!

--
To unsubscribe from this group, send email to
fhem-users+unsubscribe@googlegroups.com

rudolfkoenig

                                                   

> wie ist es möglich in der Umgebung FritzBox 7390 / Fritz Labor FHEM Image
> weitere Perlmodule zu installieren?

Das haben wir hier in der Gruppe auch schon erwaehnt:
1. Fuer Anfaenger: An AVM eine Bittschrift schreiben
2. Fuer Fortgeschrittene:  Crosscompiler installieren, perl uebersetzen, Modul installieren
3. Fuer Experten:  Compiler direkt auf dem FB installieren, perl uebersetzen,
   Modul installieren


> Genau brauche ich wwwlib-perl (LWP, HTTP-Request, HTTP-Header), um einen
> Server per POST aufzurufen.

Dazu braucht man doch nicht unbedingt diese Module, das kann man auch selber
Programmieren.  Einfacher als Punkt 2 bzw. 3 ist das allemal.

--
To unsubscribe from this group, send email to
fhem-users+unsubscribe@googlegroups.com

Guest

Originally posted by: <email address deleted>

Hallo,

danke für die Antwort, ich werds selber programmieren und hier posten.

René

--
To unsubscribe from this group, send email to
fhem-users+unsubscribe@googlegroups.com

Guest

Originally posted by: <email address deleted>

Hier meine nicht ganz ausprogrammierte Lösung:

use Socket;

sub
PostHttpFile($$$)
{
  my $host = shift;
  my $name = shift;
  my $event = shift;

  my ($iaddr, $paddr);
  $iaddr = inet_aton($host);
  $paddr = sockaddr_in(80, $iaddr);

  unless(socket(SOCKET, PF_INET, SOCK_STREAM, 6))
  {
    die "init socket: $!\n";
  }
  unless(connect(SOCKET, $paddr))
  {
    die "no connect: $!\n";
  }

  my $content = "\n".
                "\n".
                  "<$name>\n".
                  "<$event>\n".
                "
\n";

  my $contentlength = length($content);

  my $header = "POST $value{channeluri} HTTP/1.1\r\n".
    "Host: $host\r\n".
    "Content-type: text/html\r\n".
    "Content-length: $contentlength\r\n".
    "X-NotificationClass: 3\r\n".
    "Connection: keep-alive\r\n\r\n";

  select SOCKET;
  $| = 1;
  binmode SOCKET;

  print SOCKET $header;
  print SOCKET $content;

  shutdown SOCKET, 1;

  my @data = ();
  print STDOUT "RESULT:\n@data\n";

  close SOCKET;
}

--
To unsubscribe from this group, send email to
fhem-users+unsubscribe@googlegroups.com