Autor Thema: Modul für Belkin WeMo Geräte  (Gelesen 2929 mal)

Offline Borkk

  • Jr. Member
  • **
  • Beiträge: 96
Modul für Belkin WeMo Geräte
« 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?
----------
FHEM: Raspi2
Reverse Proxy mit CA; HMLAN; HUE2; Netatmo; Withings; Squeezbox; Pushover; Jawbone; Pioneer; Harmony, FritzBox, Tado°, HomeKit, Alexa, div. Homematic Akt- und Sensoren

Offline plin

  • Developer
  • Full Member
  • ****
  • Beiträge: 105

Offline Borkk

  • Jr. Member
  • **
  • Beiträge: 96
Antw:Modul für Belkin WeMo Geräte
« Antwort #2 am: 20 Januar 2015, 18:33:42 »
Danke, ich habe inzwischen alle WeMo Geräte verkauft und durch Homematic Devices ersetzt.
----------
FHEM: Raspi2
Reverse Proxy mit CA; HMLAN; HUE2; Netatmo; Withings; Squeezbox; Pushover; Jawbone; Pioneer; Harmony, FritzBox, Tado°, HomeKit, Alexa, div. Homematic Akt- und Sensoren

Offline plin

  • Developer
  • Full Member
  • ****
  • Beiträge: 105
Antw:Modul für Belkin WeMo Geräte
« Antwort #3 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
« Letzte Änderung: 22 Januar 2015, 19:48:25 von plin »

Offline abrocker

  • Newbie
  • Beiträge: 1
Antw:Modul für Belkin WeMo Geräte
« Antwort #4 am: 02 Mai 2016, 17:03:38 »
Hallo,

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

Grüße
Philipp

Offline plin

  • Developer
  • Full Member
  • ****
  • Beiträge: 105
Antw:Modul für Belkin WeMo Geräte
« Antwort #5 am: 12 Mai 2016, 21:42:02 »
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