24_TPLinkHS110.pm: Support für TPLink HS100/HS110 v1/2/3 Steckdosen

Begonnen von Volker Kettenbach, 25 August 2016, 18:03:57

Vorheriges Thema - Nächstes Thema

Volker Kettenbach

##########################
#
# Es gibt zwei Git-Repositories mit dem Sourcecode:
# https://gitlab.com/volkerkettenbach/FHEM-TPLink-Kasa
# https://github.com/kettenbach-it/FHEM-TPLink-HS110/
#
##########################

Hallo,

wie bereits in (1) angekündigt, habe ich ein Modul für die TP-Link HS-110 und HS-100 WLAN-Steckdosen geschrieben.

Der Unterschied zwischen der HS100 und HS110 besteht darin, dass die HS110 eine Echtzeit-Messung von
Strom, Spannung sowie Leistung durchführt.
Das Modul erkennt automatisch, welchen Typ Sie verwenden und passt die Readings entsprechend an.

Das Modul implementiert nicht alle Funktionen der HS100/110.
Derzeit werden alle für den sinnvollen Betrieb an FHEM benötigten Parameter ausgelesen.
Geschrieben werden jedoch nur die Schaltzustände "An", "Aus" sowie der Nachtmodus An/Aus (Nachtmodus = LEDs der Steckdose ausschalten).
Für eine weitergehende Programmierung der Steckdosen wird daher die TP Link App "Kasa" empfohlen, wobei deren
Funktionen wie Timer etc. letztlich redundant zu Kernfunktionen von FHEM sind.

Für alles weitere am besten in die Doku im Modul schauen.

Das Modul ist hier zum Testen erhältlich:

https://github.com/kettenbach-it/FHEM-TPLink-HS110

Bugreports bitte hier!
Change Requests bitte als Patch über die Pull-Request Funktion von github submitten.

Nach einer Testphase werde ich das Modul in das offizielle FHEM Repository einchecken.

Gruß
Volker


(1) https://forum.fhem.de/index.php/topic,52124.0.html

stefan_kah

Hallo Volker,

vielen Dank für das Modul. Leider startet es nicht bei mir.

Im Log steht folgendes:
2016.08.27 11:46:14 1: reload: Error:Modul 24_TPLinkHS110 deactivated:
Can't locate IO/Socket/Timeout.pm in @INC (@INC contains: /etc/perl /usr/local/lib/perl/5.14.2 /usr/local/share/perl/5.14.2 /usr/lib/perl5 /usr/share/perl5 /usr/lib/perl/5.14 /usr/share/perl/5.14 /usr/local/lib/site_perl . ./FHEM) at ./FHEM/24_TPLinkHS110.pm line 31, <$fh> line 597.
BEGIN failed--compilation aborted at ./FHEM/24_TPLinkHS110.pm line 31, <$fh> line 597.

2016.08.27 11:46:14 0: Can't locate IO/Socket/Timeout.pm in @INC (@INC contains: /etc/perl /usr/local/lib/perl/5.14.2 /usr/local/share/perl/5.14.2 /usr/lib/perl5 /usr/share/perl5 /usr/lib/perl/5.14 /usr/share/perl/5.14 /usr/local/lib/site_perl . ./FHEM) at ./FHEM/24_TPLinkHS110.pm line 31, <$fh> line 597.
BEGIN failed--compilation aborted at ./FHEM/24_TPLinkHS110.pm line 31, <$fh> line 597.



Die Perl Module habe ich installiert, denke ich.

Viele Grüße
Stefan
FHEM 5.7 RPi 2, Hue, JeeLink-Clone, LaCrosse

bjoernbo

So ein Teil eben gekauft, nachdem ich im Geschäft geprüft habe ob es mit FHEM funktioniert.
Frage: Wie komme ich an die IP Adresse??? Das Gerät wird mir in der FritzBox nicht angezeigt, obwohl es bereits mit der APP funktioniert.
Raspberry Pi 3 - FB6490C - Synology NAS DS916+ - NETATMO - HUE - SIEMENS G-Tag'S - FTUI - EchoDOT -

bjoernbo

Auszug aus dem LOG:
Zitat2016.08.27 13:32:49 1: reload: Error:Modul 24_TPLinkHS110 deactivated:
Can't locate IO/Socket/Timeout.pm in @INC (@INC contains: /etc/perl /usr/local/lib/perl/5.14.2 /usr/local/share/perl/5.14.2 /usr/lib/perl5 /usr/share/perl5 /usr/lib/perl/5.14 /usr/share/perl/5.14 /usr/local/lib/site_perl . ./FHEM) at ./FHEM/24_TPLinkHS110.pm line 31.
BEGIN failed--compilation aborted at ./FHEM/24_TPLinkHS110.pm line 31.

2016.08.27 13:32:49 0: Can't locate IO/Socket/Timeout.pm in @INC (@INC contains: /etc/perl /usr/local/lib/perl/5.14.2 /usr/local/share/perl/5.14.2 /usr/lib/perl5 /usr/share/perl5 /usr/lib/perl/5.14 /usr/share/perl/5.14 /usr/local/lib/site_perl . ./FHEM) at ./FHEM/24_TPLinkHS110.pm line 31.
BEGIN failed--compilation aborted at ./FHEM/24_TPLinkHS110.pm line 31.

2016.08.27 13:33:09 1: reload: Error:Modul 24_TPLinkHS110 deactivated:
Can't locate IO/Socket/Timeout.pm in @INC (@INC contains: /etc/perl /usr/local/lib/perl/5.14.2 /usr/local/share/perl/5.14.2 /usr/lib/perl5 /usr/share/perl5 /usr/lib/perl/5.14 /usr/share/perl/5.14 /usr/local/lib/site_perl . ./FHEM) at ./FHEM/24_TPLinkHS110.pm line 31.
BEGIN failed--compilation aborted at ./FHEM/24_TPLinkHS110.pm line 31.

2016.08.27 13:33:09 0: Can't locate IO/Socket/Timeout.pm in @INC (@INC contains: /etc/perl /usr/local/lib/perl/5.14.2 /usr/local/share/perl/5.14.2 /usr/lib/perl5 /usr/share/perl5 /usr/lib/perl/5.14 /usr/share/perl/5.14 /usr/local/lib/site_perl . ./FHEM) at ./FHEM/24_TPLinkHS110.pm line 31.
BEGIN failed--compilation aborted at ./FHEM/24_TPLinkHS110.pm line 31.
Raspberry Pi 3 - FB6490C - Synology NAS DS916+ - NETATMO - HUE - SIEMENS G-Tag'S - FTUI - EchoDOT -

stefan_kah

Zitat von: bjoernbo am 27 August 2016, 13:29:09
So ein Teil eben gekauft, nachdem ich im Geschäft geprüft habe ob es mit FHEM funktioniert.
Frage: Wie komme ich an die IP Adresse??? Das Gerät wird mir in der FritzBox nicht angezeigt, obwohl es bereits mit der APP funktioniert.
Hallo,
für das iPhone gibt es eine App, die scannt das lokale Netz nach IP Adressen (fing):
https://itunes.apple.com/de/app/fing-network-scanner/id430921107?mt=8

Gruß
Stefan
FHEM 5.7 RPi 2, Hue, JeeLink-Clone, LaCrosse

bjoernbo

Danke!
Also IP Adresse habe ich nun!
define VerbrKuehlschr TPLinkHS110 192.168.178.52 sagt mir aber:
ZitatCannot load module TPLinkHS110

Habe 24_TPLinkHS110.PM in das Verzeichnis in das FHEM Verzeichnis kopiert. Dort wo auch alle anderen .PM Dateien sind. Danach ein Shutdown restart  :-[
Raspberry Pi 3 - FB6490C - Synology NAS DS916+ - NETATMO - HUE - SIEMENS G-Tag'S - FTUI - EchoDOT -

bjoernbo

OK. Ich denke mir fehlt das Modul
ZitatPerl Module: IO::Socket::Timeout
. Wo bekomme ich das her und wie richte ich das ein. Wird das auf Kommandozeilenebene installiert?
Raspberry Pi 3 - FB6490C - Synology NAS DS916+ - NETATMO - HUE - SIEMENS G-Tag'S - FTUI - EchoDOT -

Volker Kettenbach

Zitat von: stefan_kah am 27 August 2016, 11:50:50

2016.08.27 11:46:14 0: Can't locate IO/Socket/Timeout.pm in @INC (@INC contains: /etc/perl /usr/local/lib/perl/5.14.2 /usr/local/share/perl/5.14.2 /usr/lib/perl5 /usr/share/perl5 /usr/lib/perl/5.14 /usr/share/perl/5.14 /usr/local/lib/site_perl . ./FHEM) at ./FHEM/24_TPLinkHS110.pm line 31, <$fh> line 597.
BEGIN failed--compilation aborted at ./FHEM/24_TPLinkHS110.pm line 31, <$fh> line 597.

Die Perl Module habe ich installiert, denke ich.


Welche Distribution verwendest Du?

Volker Kettenbach

Zitat von: bjoernbo am 27 August 2016, 13:36:49
Auszug aus dem LOG:

Wie in der Doku steht: das Modul benötigt das Perl Modul IO::Socket::Timeout.pm
Im Falle von Debian/Raspbian/Ubuntu:

apt-get install libio-socket-timeout-perl

bjoernbo

Zitatpi@raspberrypi ~ $ sudo apt-get install libio-socket-timeout-perl
Reading package lists... Done
Building dependency tree       
Reading state information... Done
E: Unable to locate package libio-socket-timeout-perl

:-\
Raspberry Pi 3 - FB6490C - Synology NAS DS916+ - NETATMO - HUE - SIEMENS G-Tag'S - FTUI - EchoDOT -

stefan_kah

Zitat von: Volker Kettenbach am 27 August 2016, 19:58:38
Wie in der Doku steht: das Modul benötigt das Perl Modul IO::Socket::Timeout.pm
Im Falle von Debian/Raspbian/Ubuntu:

apt-get install libio-socket-timeout-perl

Danke für deine Antwort.

pi@fhem ~ $ sudo apt-get install libio-socket-timeout-perl
Paketlisten werden gelesen... Fertig
Abhängigkeitsbaum wird aufgebaut.       
Statusinformationen werden eingelesen.... Fertig
E: Paket libio-socket-timeout-perl kann nicht gefunden werden.

sudo apt-get update hab ich vorher gemacht

pi@fhem ~ $ uname -a
Linux fhem 4.1.19-v7+ #858 SMP Tue Mar 15 15:56:00 GMT 2016 armv7l GNU/Linux

ist ein Raspbian wheezy auf einem Raspberry Pi 2
FHEM 5.7 RPi 2, Hue, JeeLink-Clone, LaCrosse

Volker Kettenbach

Entweder auf jessie updaten, denn da gibt es das Paket.
Oder das Paket mittels cpan installieren. Hier steht im Abschnitt 'Install Perl Modules using CPAN automatically' wie das geht.

bjoernbo

schade auch mit jessie funktioniert es leider nicht!! Somit kann ich das Modul auch nicht testen  :-\
Raspberry Pi 3 - FB6490C - Synology NAS DS916+ - NETATMO - HUE - SIEMENS G-Tag'S - FTUI - EchoDOT -

stefan_kah

Zitat von: Volker Kettenbach am 28 August 2016, 00:20:56
Entweder auf jessie updaten, denn da gibt es das Paket.
Oder das Paket mittels cpan installieren. Hier steht im Abschnitt 'Install Perl Modules using CPAN automatically' wie das geht.

habe cpan eingerichtet, das Modul installiert, und den server neu gestartet:

cpan[1]> install IO::Socket::INET
Going to read '/home/pi/.cpan/Metadata'
  Database was generated on Sun, 28 Aug 2016 05:17:02 GMT
IO::Socket::INET is up to date (1.31).

cpan[2]> install IO::Socket::Timeout
IO::Socket::Timeout is up to date (0.32).

geht leider nicht.
werde heute abend mal jessie neu aufsetzen. auf einer frischen SD Karte.

2016.08.28 13:40:15 0: Can't locate IO/Socket/Timeout.pm in @INC (@INC contains: /etc/perl /usr/local/lib/perl/5.14.2 /usr/local/share/perl/5.14.2 /usr/lib/perl5 /usr/share/perl5 /usr/lib/perl/5.14 /usr/share/perl/5.14 /usr/local/lib/site_perl . ./FHEM) at ./FHEM/24_TPLinkHS110.pm line 31, <$fh> line 593.
BEGIN failed--compilation aborted at ./FHEM/24_TPLinkHS110.pm line 31, <$fh> line 593.
FHEM 5.7 RPi 2, Hue, JeeLink-Clone, LaCrosse

bjoernbo

Zitatwerde heute abend mal jessie neu aufsetzen. auf einer frischen SD Karte.
Ich denke das werden die wenigsten machen, nur für ein neues Modul!
Raspberry Pi 3 - FB6490C - Synology NAS DS916+ - NETATMO - HUE - SIEMENS G-Tag'S - FTUI - EchoDOT -