FHEM Forum

FHEM - Entwicklung => Wunschliste => Thema gestartet von: nine42 am 08 Januar 2014, 14:22:27

Titel: WeMo-Device (Perl-API gibt es schon)
Beitrag von: nine42 am 08 Januar 2014, 14:22:27
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 ...)
Titel: Antw:WeMo-Device (Perl-API gibt es schon)
Beitrag von: plin am 19 Januar 2015, 18:34:59
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
Titel: Antw:WeMo-Device (Perl-API gibt es schon)
Beitrag von: Mad-at am 12 Oktober 2017, 20:03:09
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...