WeMo-Device (Perl-API gibt es schon)

Begonnen von nine42, 08 Januar 2014, 14:22:27

Vorheriges Thema - Nächstes Thema

nine42

Belkin bringt gerade wieder neue WeMo-Modelle auf den Markt.
(siehe z.B.: http://www.heise.de/newsticker/meldung/Belkin-Lichtsteuerung-Bastler-Kit-und-Netz-Kochtopf-fuer-Heimautomatisierung-WeMo-2076889.html)
Die sind zwischenzeitlich recht verbreitet.

.. wär' doch nett, wenn man die auch mit FHEM ansteuern könnte.
Es gibt sogar schon eine Perl-API: https://github.com/ericblue/Perl-Belkin-WeMo-API ;-)

(Ich kenn' mich - noch - zu schlecht mit der FHEM-Programmierung aus, sonst würd' ich es selbst machen ...)

plin

Hallo zusammen,

ich habe gestern den aktuellesten Stand von github runter geladen, installiert und auf meinem RaspPi in FHEM integriert. Funktioniert.

Wie ging's? Die Kurzfassung:

Die echte Installation verlief nicht ganz so glatt, da mir cpanm fehlte.

Dazu gibt es dann die Scripte

wemoon.pl
#!/usr/bin/perl

BEGIN { push( @INC ); }

use WebService::Belkin::WeMo::Device;
use WebService::Belkin::WeMo::Discover;
use Data::Dumper;
use strict;

my ($mywemo);
$mywemo  = shift || 'localhost';

my $wemo = WebService::Belkin::WeMo::Device->new(ip => $mywemo, db => '/etc/belkin.db');

print "Turning on...\n";
$wemo->on();


sowie
wemooff.pl
#!/usr/bin/perl

BEGIN { push( @INC ); }

use WebService::Belkin::WeMo::Device;
use WebService::Belkin::WeMo::Discover;
use Data::Dumper;
use strict;

my ($mywemo);
$mywemo  = shift || 'localhost';

my $wemo = WebService::Belkin::WeMo::Device->new(ip => $mywemo, db => '/etc/belkin.db');

print "Turning on...\n";
$wemo->off();


Die liegen bei mir unter /home/scripts.

Wer die IP-Adresse seines Switches nicht kennt kann die im Unterverzeichnis ~/Perl-Belkin-WeMo-API-master/examples mitgelieferte Script scan.pl verwenden.

In der fhem.cfg sieht's dann so aus
define WemoSwitch FS20 11114444 aa
attr WemoSwitch dummy 8
attr WemoSwitch room Dachstudio
define wemo01 notify WemoSwitch {\
if ("%" ne "off") {\
  system("sudo /home/scripts/wemoon.pl 192.168.3.141")\
}\
  else {\
  system("sudo /home/scripts/wemooff.pl 192.168.3.141")\
}\
}
attr wemo01 icon light_light_dim_100


Ciao,
Peter
FHEM1 (Main) Raspi4 mit CUL, Homematic, SDUINO 433/OOK, zentrale Steuerung
FHEM2 (Keller) x86 mit CUL/hmland, IP-basierte Module
FHEM3 (Erdgeschoss) Raspi2 mit SDUINO 868/GFSK
FHEM4 (Hausanschlussraum), USV und OBIS-Modul
FHEM5 (Docker) mit FHEM2FHEM, InfluxDB

Mad-at

Nur weil ich gerade dran herumgespielt habe: Für eine frische installation fehlt noch "sudo apt-get install libdist-zilla-perl" um dzil zu installieren und die lib::local zu installieren. Leider läuft der Build trotzdem nicht durch "aborting; duplicate files would be produced at /home/pi/perl5/lib/perl5/Dist/Zilla/App/Command/build.pm" - das scheint mir aber ein Fehler der Sourcen zu sein? Wie auch immer...