FHEM Forum

CUL - Entwicklung => Wunschliste => Thema gestartet von: Borkk am 03 Dezember 2013, 22:41:48

Titel: Modul für Belkin WeMo Geräte
Beitrag von: Borkk am 03 Dezember 2013, 22:41:48
Hallo Zusammen,

der Wunsch ist nicht neu und es gab ja auch schon mal Aktivitäten hier im Forum dazu.
http://forum.fhem.de/index.php/topic,7335.msg33471.html#msg33471

Hat denn jemand diese 29_Wemo.pm schon mal gesehen bzw. sogar im Einsatz?
Titel: Antw:Modul für Belkin WeMo Geräte
Beitrag von: plin am 19 Januar 2015, 18:36:33
Alternative siehe http://forum.fhem.de/index.php/topic,18524.0.html?PHPSESSID=icek836brgk7r9e8qhch0mlne5 (http://forum.fhem.de/index.php/topic,18524.0.html?PHPSESSID=icek836brgk7r9e8qhch0mlne5)
Titel: Antw:Modul für Belkin WeMo Geräte
Beitrag von: Borkk am 20 Januar 2015, 18:33:42
Danke, ich habe inzwischen alle WeMo Geräte verkauft und durch Homematic Devices ersetzt.
Titel: Antw:Modul für Belkin WeMo Geräte
Beitrag von: plin am 22 Januar 2015, 19:10:18
Hallo,

ich habe mittlerweile etwas gebastelt:

98_wemo.pm

##############################################
package main;

BEGIN { push( @INC ); }

use strict;
use warnings;
use IO::Socket::INET;
use Switch;

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

sub
wemo_Initialize($)
{
  my ($hash) = @_;

  $hash->{SetFn}     = "wemo_Set";
  $hash->{DefFn}     = "wemo_Define";
  $hash->{AttrList}  = "remote_ip";
#print "##### Init #####\n";
#print Dumper $hash;
}

###################################
sub
wemo_Set($@)
{
  my ($hash, @a) = @_;
  my $rc = undef;

  return "no set value specified" if(int(@a) < 2);
  return "on off" if($a[1] eq "?");

  shift @a;
  my $command = shift @a;

  Log 3, "wemo command: $command";

  $rc = commitwemo($hash, $command);

  if ($rc) {
     $hash->{CHANGED}[0] = $command;
     $hash->{STATE} = $command;
     $hash->{READINGS}{state}{TIME} = TimeNow();
     $hash->{READINGS}{state}{VAL} = $command;
  };

  return undef;
}

sub
wemo_Define($$)
{
  my ($hash, $def) = @_;
  my @a = split("[ \t][ \t]*", $def);

  return undef;
}


sub commitwemo
{
  my ($hash, $onoff) = @_;
  my $name   = $hash->{NAME};
  #my $param = $onoff ? "on" : "off";
  my $remote_ip = AttrVal($name, "remote_ip", '127.0.0.1');
  my ($mywemo);

  # flush after every write
  $| = 1;

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

  if($onoff eq "on")
  {
    $wemo->on();
  }
  if($onoff eq "off")
  {
    $wemo->off();
  }

#print "##### Set #####\n";
#print Dumper $hash;

  return 1;
}

1;


Den Doku-Teil muss ich noch anpassen.

Voraussetzung: Die Perl-Belkin-WeMo-API-master installieren wie im vorherigen Posting verlinkt.

Syntax in der fhem.cfg:

define WemoTest wemo
attr WemoTest room z_frei
attr WemoTest remote_ip 192.168.3.141
attr WemoTest icon light_light_dim_100

Mein aktuelles Problem: Ich würde gerne beim FHEM-Start automatisch den aktuellen Status des WeMo-Switches auslesen - aber wie???

Viele Grüße
Peter
Titel: Antw:Modul für Belkin WeMo Geräte
Beitrag von: abrocker am 02 Mai 2016, 17:03:38
Hallo,

hast du schon eine Lösung um den Status der Wemo Switches einzublenden?

Grüße
Philipp
Titel: Antw:Modul für Belkin WeMo Geräte
Beitrag von: plin am 12 Mai 2016, 21:42:02
Zitat von: abrocker am 02 Mai 2016, 17:03:38
Hallo,

hast du schon eine Lösung um den Status der Wemo Switches einzublenden?

Grüße
Philipp

nee, habe ich nicht. Da ich keine native Unterstützung realisiert habe und auf die "Zuarbeit" des Perl-Belkin-WeMo-API-master angewiesen bin, habe ich nach einigen Hängern die Entwicklung eingestellt. Anscheinend vergisst die Perl-Belkin-WeMo-API-master die Liste der Devices und diese muss regelmäßig aktualisiert werden.

Ciao,
Peter