FHEM Forum

FHEM - Hausautomations-Systeme => Sonstige Systeme => Thema gestartet von: heig am 24 März 2021, 17:30:26

Titel: TAPO P100
Beitrag von: heig am 24 März 2021, 17:30:26
Hallo zusammen,

hat sich von euch schonmal jemand mit der TAPO P100 Steckdose beschäftigt? Ich habe gesehen, dass die Schnittstelle wohl komplett anders ist als die der HS100 von TP-Link.

Es gibt wohl auch schon ein Python Modul für die Steuerung: https://github.com/fishbigger/TapoP100 - allerdings habe ich keine Skills um das in PERL nachzubauen... Daher - vielleicht hat sich ja schon jemand dran gemacht? Über die Suche habe ich leider nichts gefunden :(

Danke

Titel: Antw:TAPO P100
Beitrag von: brembs am 22 Juli 2021, 10:39:53
Habe auch gesucht und nichts gefunden. Sieht wohl schlecht aus...
Titel: Antw:TAPO P100
Beitrag von: Batocin am 07 November 2021, 22:44:13
Also in NodeRed kann man die P100 steuern...dafür einfach node-red-contrib-tplink-tapo-connect-api installieren
Und NodeRed und FHEM kommunizieren dann mittels Mqtt
Titel: Antw:TAPO P100
Beitrag von: erdferkel am 24 Mai 2022, 09:11:37
Hallo,

ich habe mir aus dem Python Code eine Perl Lib gebaut, die ich zum Schalten der P100 verwende.
Mit den FHEM Modulen kenne ich mich leider nicht aus, um das direkt in FHEM einzubauen. Aber vielleicht hilft der Code ja trotzdem irgend jemandem. ;)

Die Lib kann z.B. so genutzt werden:

use TapoP100;

my $p100=TapoP100->new('steckdose.mylan.de');
$p100->login('mail@example.org', 'secret');
$p100->switch(1);
print $p100->name().': '.($p100->isOn() ? 'on' : 'off')."\n";


Viele Grüße, Peter
Titel: Antw:TAPO P100
Beitrag von: jnewton957 am 17 Dezember 2022, 12:46:25
Das klingt ja schon super.

Kannst (jemand) hier bitte etwas genauer post, wie man nun die Steckdosen einbindet und die defines macht.

Danke
Jörg
Titel: Antw:TAPO P100
Beitrag von: erdferkel am 17 Dezember 2022, 14:00:33
Hallo Jörg,

wie ich geschrieben hatte, kenne ich mich mit der Struktur/API der FHEM Module leider nicht aus, daher kann man die Steckdosen mit dieser Lib auch nicht direkt aus FHEM ansteuern.
Ich schalte die Dosen einfach per cronjob, was für meine Zwecke völlig ausreichend ist.
Aber vielleicht erbarmt sich ja irgend jemand und macht ein FHEM Modul daraus. ;)

Grüße, Peter
Titel: Antw:TAPO P100
Beitrag von: erdferkel am 06 Februar 2023, 17:43:26
Hallo,

ich habe mich jetzt doch mal näher mit den FHEM Modulen beschäftigt und die Bibliothek entsprechend umgebaut.
Diese Perl Datei kann in den FHEM Ordner kopiert werden und nach Neustart sollte es möglich sein, die Steckdose einzubinden:
define <name> TapoP100 <hostname/IP> <username> <password>

Die Werte des Geräts werden regelmäßig ausgelesen und in Readings gespeichert. Geschaltet werden kann natürlich auch.

Gerne testen und berichten... :)

  Grüße, Peter
Titel: Antw:TAPO P100
Beitrag von: derHeimwerker am 07 Februar 2023, 23:28:57
Hallo,
ich bekomme diese Fehlermeldung

Can't locate Crypt/CBC.pm in @INC (you may need to install the Crypt::CBC module) (@INC contains: /opt/fhem ./lib ./FHEM . /etc/perl /usr/local/lib/arm-linux-gnueabihf/perl/5.28.1 /usr/local/share/perl/5.28.1 /usr/lib/arm-linux-gnueabihf/perl5/5.28 /usr/share/perl5 /usr/lib/arm-linux-gnueabihf/perl/5.28 /usr/share/perl/5.28 /usr/local/lib/site_perl /usr/lib/arm-linux-gnueabihf/perl-base ./FHEM/lib) at ./FHEM/99_TapoP100.pm line 16.
BEGIN failed--compilation aborted at ./FHEM/99_TapoP100.pm line 16.

Titel: Antw:TAPO P100
Beitrag von: erdferkel am 08 Februar 2023, 06:59:01
Hallo,

das Modul benötigt verschiedene Bibltiotheken, von denen manche evtl. nicht installiert sind.
Die folgenden Pakete werden verwendet (dahinter jeweils der Paketname unter Debian/Ubuntu):
Crypt::CBC -> libcrypt-cbc-perl
Crypt::Cipher::AES -> libcryptx-perl
Crypt::OpenSSL::RSA -> libcrypt-openssl-rsa-perl
Digest::SHA -> libperl5.32
JSON -> libjson-perl
LWP -> libwww-perl
MIME::Base64 -> libperl5.32
UUID -> libuuid-perl

  Grüße, Peter
Titel: Antw:TAPO P100
Beitrag von: derHeimwerker am 08 Februar 2023, 17:06:36
funktioniert wunderbar!!
Danke
Titel: Antw:TAPO P100
Beitrag von: derHeimwerker am 08 Februar 2023, 19:24:46
muss mich leider korrigieren...
Seitdem funktioniert mein firmata device, der als Lichtschalter fungier,t nicht mehr :-(
Kannst du da weiter helfen?
Titel: Antw:TAPO P100
Beitrag von: erdferkel am 08 Februar 2023, 19:39:06
Firmata sagt mir jetzt leider gar nichts.
Ist das auch irgendwie mit dem Tapo Switch verbunden?
Funktioniert der Lichtschalter, wenn Du das Tapo Device wieder entfernst?

Ich habe noch verschiedene ZWave Sensoren und Steckdosen in FHEM eingebunden. Bisher konnte ich noch keine Probleme feststellen, seitdem das Tapo Device aktiv ist.
Titel: Antw:TAPO P100
Beitrag von: derHeimwerker am 08 Februar 2023, 21:45:54
Sorry, da hatte ich noch einen anderen Fehler im System. Läuft jetzt alles. Vielen Dank!
Titel: Antw:TAPO P100 - Version 0.5
Beitrag von: erdferkel am 24 Februar 2023, 10:58:17
Nachdem mir doch endlich die Entwickler Doku im Wiki begegnet ist 8) , habe ich das Modul nochmal überarbeitet.
Da es schon eine fertige Routine für HTTP Requests im Hintergrund gibt, ist der bisher verwendete BlockingCall nicht nötig.
Außerdem sollte der Dateiname nicht mit "99_" beginnen, da das Modul sonst auch ohne entsprechendes Device geladen wird.

Neue set-Funktionen: on-for-timer, off-for-timer, nickname, reboot

PS: Meine Schaltdosen haben bisher immer nach 49 Tagen den Dienst mit Fehlercode "9999" eingestellt. Evtl. kann man das mit einem regelmäßigen Reboot umgehen - habe ich aber noch nicht testen können. Die Funktion 'set ... reboot' gibt es jetzt jedenfalls im Modul.

Titel: Aw: TAPO P100
Beitrag von: chriskl am 28 März 2023, 09:55:54
Hallo,
Da bin ich auch interessiert :)
Unterstützt das Modul auch die TAPO P110 bzw. P115? Also mit Energiemessung?

Danke vor ab

Christoph
Titel: Aw: TAPO P100
Beitrag von: erdferkel am 28 März 2023, 11:38:59
Ich habe nur die P100 Version, daher kann ich zu den anderen Modellen leider nichts sagen.
Wenn sich das Protokoll nicht geändert hat, sollten die Werte aber mit allen anderen Readings ausgelesen werden.
Titel: Aw: TAPO P100
Beitrag von: chriskl am 28 März 2023, 12:05:25
Dann bestell ich mal und melde das Ergebnis  ;D
Titel: Aw: TAPO P100
Beitrag von: neo_28 am 03 April 2023, 15:31:30
Hallo,

die Integration einer P110 funktioniert soweit, aber leider werden die Energiewerte nicht übermittelt.

Gruß

Neo28
Titel: Aw: TAPO P100
Beitrag von: chriskl am 04 April 2023, 12:04:48
Ich habe gestern meine P115 bekommen :)
Wie neo28 schon berichtet hat funktioniert das problemlos, bis auf die Energiewerte  >:(
Ich hab das von https://github.com/fishbigger/TapoP100 mal probiert und siehe da das funktioniert:

>>> p110.getEnergyUsage()
{'result': {'today_runtime': 160, 'month_runtime': 188, 'today_energy': 0, 'month_energy': 0, 'local_time': '2023-04-04 11:44:09', 'electricity_charge': [0, 0, 0], 'current_power': 0}, 'error_code': 0}

Da stellt sich die Frage ob man erdferkel zu einer Erweiterung bewegen kann  ;)

Ich fände das super.
Titel: Aw: TAPO P100
Beitrag von: neo_28 am 06 April 2023, 07:53:57
Darüber würde ich mich auch riesig freuen>!

Mir fehlt es da leider am KnowHow :-\
Titel: Aw: TAPO P100
Beitrag von: chriskl am 13 April 2023, 11:52:36
Hi,
ich hab mir das Modul mal angeschaut und eine Möglichkeit gefunden die Energiewerte zu erhalten.
Leider ist das nicht die optimale Lösung, funktioniert aber für mich ;D

Ich habe 00_TapoP100.pm nach 00_TapoP110.pm kopiert und dort folgende Änderungen gemacht:
- ersetze alle "P100" durch "P110"
- ersetze "get_device_info" durch "get_energy_usage"

Nach einem Restart von FHEM lässt sich zusätzlich zum TapoP100-Device ein TapoP110-Device erstellen.
Hier landen dann die Energie-Werte.
Mit den userReadings erreiche ich gleiche Readings wie bei meinen bisher genutzten TPLink KASA KP115 ;)

defmod P115_01 TapoP100 ip user password
defmod P115_01_energy TapoP110 ip user password
attr P115_01_energy userReadings daily_total:today_energy.* {sprintf("%.3f", ReadingsVal($name,"today_energy","0")/1000)},\
power:current_power.* {sprintf("%.3f", ReadingsVal($name,"current_power","0")/1000)}
attr P115_01_energy webCmd :

Ich hab auch versucht die Methode get_energy_usage zusätzlich ins Modul TapoP100.pm einzubauen, bin dabei aber kläglich gescheitert :'(

Gruß

Christoph
Titel: Aw: TAPO P100
Beitrag von: erdferkel am 27 Mai 2023, 18:51:22
Hallo,
leider bekomme ich anscheinend keine Benachrichtigung mehr über neue Beiträge...  >:(

Ich habe mir jetzt auch von den P115 bestellt und erweitere das Modul, sobald die da sind. Ohne Testobjekt ist das sonst etwas schwierig.

Eigentlich wollte ich kurz mitteilen, dass die 49 Tage Grenze durch den Reboot wieder neu gestartet wird. Mir war beim Testen ein Stromausfall dazwischen gekommen. ;)  Also z.B. einmal im Monat per Timer rebooten und dann sollte es keine Ausfälle mehr geben.

Grüße, Peter
Titel: Aw: TAPO P100 (v0.6)
Beitrag von: erdferkel am 31 Mai 2023, 16:31:06
Die Steckdosen sind angekommen und das Modul erweitert.  ;D

Wenn das Modell P110 oder P115 erkannt wird, erfolgt jetzt automatisch im Anschluß an das Update eine Abfrage der Energiewerte und wird einfach mit allen anderen Readings aktualisiert.
Den P110 habe ich nicht, gehe aber davon aus, dass es damit genauso wie mit dem P115 funktioniert.

PS: Hat jemand eine Idee, was "electricity_charge" sein soll?

Grüße, Peter
Titel: Aw: TAPO P100
Beitrag von: chriskl am 06 Juni 2023, 11:57:20
Hallo Peter,
DANKE für das Update.
Funktioniert bei mir  ;D

electricity charge = Stromgebühr.
Könnte mir vorstellen dass man den Preis pro kWh irgendwo einstellen kann und dann € angezeigt werden?
Hab in der App aber auch nix gefunden  :(

Ich habe bei power " W" rausgenommen, passt so besser bei mir rein.

Hast du eine Idee warum stateFormat nicht in der Attr-Liste ist? Würde das gerne nutzen.

Gruß

Christoph
Titel: Aw: TAPO P100
Beitrag von: erdferkel am 06 Juni 2023, 17:55:52
Hallo Christoph,

danke für den Tipp mit der Preisberechnung, das könnte natürlich sein.

Warum "stateFormat" nicht automatisch bei den Attributen auftaucht, weiß ich auch nicht - es ist ja ein "framework" Attribut. Wenn man es aber im Initialize einfach ergänzt, scheint es zu funktionieren.
$hash->{AttrList}='interval power_divisor timeout verbose:0,1,2,3,4,5'
  .' event-on-change-reading event-on-update-reading timestamp-on-change-reading stateFormat';

  Grüße, Peter
Titel: Aw: TAPO P100
Beitrag von: chriskl am 07 Juni 2023, 11:05:22
Hallo Peter,
ich hab mal in anderen Modulen "geschnaust" und hab das bei mir so geändert:
 $hash->{AttrList}='interval power_divisor timeout ' .
        "$readingFnAttributes";

Gruß

Christoph
Titel: Aw: TAPO P100 (v0.7)
Beitrag von: erdferkel am 07 Juni 2023, 17:00:40
Hallo Christoph,

Super - danke, das war mir irgendwie entgangen.  :)
Hier ist eine neue Version mit dieser Änderung.

Grüße, Peter
Titel: Aw: TAPO P100
Beitrag von: donaldo am 19 Juli 2023, 20:22:33
Kann mir vielleicht jemand helfen ? Komme nicht weiter.

Habe alle hier empfohlenen Pakete nachinstalliert. Bekomme beim Installationsversuch  die Fehlermeldung :

"Can't locate UUID.pm in @INC (you may need to install the UUID module) (@INC contains: ./FHEM/lib ./lib ./FHEM . /etc/perl /usr/local/lib/aarch64-linux-gnu/perl/5.32.1 /usr/local/share/perl/5.32.1 /usr/lib/aarch64-linux-gnu/perl5/5.32 /usr/share/perl5 /usr/lib/aarch64-linux-gnu/perl-base /usr/lib/aarch64-linux-gnu/perl/5.32 /usr/share/perl/5.32 /usr/local/lib/site_perl) at ./FHEM/00_TapoP100.pm line 22.
BEGIN failed--compilation aborted at ./FHEM/00_TapoP100.pm line 22."

Die Datei UUID.pm befindet sich bei mir im Verzeichnis: /usr/lib/aarch64-linux-gnu/perl5/5.32/Data/UUID.pm

Wenn ich die ins /opt/fhem/FHEM kopiere und define <name> TapoP100 <hostname/IP> <username> <password> ausführe, stürzt bei mir FHEM ab.

Gruß
Martin
Titel: Aw: TAPO P100
Beitrag von: erdferkel am 20 Juli 2023, 06:38:37
Hallo Martin,

unter Debian gibt es zwei Pakete mit der Datei "UUID.pm": libdata-uuid-perl und libuuid-perl. Beim ersten liegt die Datei im Unterverzeichnis Data/ und müsste über "use Data::UUID" eingebunden werden. Da ich aber nicht weiß, ob das damit funktioniert, solltest Du noch das zweite Paket "libuuid-perl" installieren. Wenn Du kein Debian hast, heißt das Paket evtl. auch anders.

Grüße, Peter
Titel: Aw: TAPO P100
Beitrag von: donaldo am 20 Juli 2023, 10:56:15
vielen Dank, mit der Installation von libuuid-perl hat es geklappt !
Titel: Aw: TAPO P100
Beitrag von: donaldo am 29 September 2023, 19:40:13
Plötzlich kriege ich keinen Zugang mehr zur TAPOP100. In den Readings kommt die Fehlermeldung: "state
Invalid cookie header". Kann jemand damit was anfangen ? Finde keine Hinweise im Internet was damit gemeint ist.
Titel: Aw: TAPO P100
Beitrag von: erdferkel am 03 Oktober 2023, 07:43:52
Bei mir funktionieren die Geräte (Hardware V1.20) wie bisher.
Hast Du evtl. eine neue Firmware installiert? Ich habe eben gesehen, dass es für die Hardware V2 eine neue vom 12.09.2023 gibt. Vielleicht hat sich damit etwas geändert.
Titel: Aw: TAPO P100
Beitrag von: donaldo am 03 Oktober 2023, 09:43:07
Ja, ich hatte automatisches Update Download an. Toll, jetzt sind die Schalter mit fhem nicht nutzbar. Und die alte Firmware kann man nicht manuell installieren. Auch mit Home Assistant funktionieren die nicht mehr. Wer billig kauft, kauft doppelt  :'(
Titel: Aw: TAPO P100
Beitrag von: donaldo am 03 Oktober 2023, 10:13:35
Meine Firmware scheint vom August zu sein:
1.2.1 build 230894 rel 190902
Titel: Aw: TAPO P100
Beitrag von: erdferkel am 03 Oktober 2023, 11:44:27
Du kannst evtl. probieren, ob es nur an dem Cookie Header hängt.
Z.B. in der 00_TapoP100.pm Datei, dieses vor Zeile 196 einfügen und FHEM neu starten:
Log3($hash->{NAME}, 1, 'HTTP Header: '.$param->{httpheader});Dann sollte die aktuelle Antwort vom Gerät im FHEM Log stehen. Wenn sich etwas geändert hat, den Regex in der Prüfung danach entsprechend anpassen.

Meine Schalter sind alle in einem VLAN ohne Internetzugang - die machen keine ungewollten Updates. ;)
Titel: Aw: TAPO P100
Beitrag von: donaldo am 03 Oktober 2023, 12:37:55
Habe ich gemacht. Nach Anlegen des Devices bekomme ich in Log Datei die Meldung:

2023.10.03 12:31:18 1: HTTP Header: HTTP/1.1 200 OK
Content-Type: application/json;charset=UTF-8
Server: SHIP 2.0
Content-Length: 19
2023.10.03 12:31:18 1: Tapo100_1 Invalid cookie header
2023.10.03 12:31:23 1: RMDIR: ./restoreDir/save/2023-09-29

Nach drücken auf on:

2023.10.03 12:34:45 3: Tapo100_1 set on
2023.10.03 12:34:45 1: HTTP Header: HTTP/1.1 200 OK
Content-Type: application/json;charset=UTF-8
Server: SHIP 2.0
Content-Length: 19
2023.10.03 12:34:45 1: Tapo100_1 Invalid cookie header


Titel: Aw: TAPO P100
Beitrag von: donaldo am 03 Oktober 2023, 12:43:08
was auf ein Problem mit Update hindeutet ist, dass ich auch mit Home Assistant die TAposP100 nicht mehr einbinden kann. Habe das an 2 Stücke ausprobiert. Die P115 funktionieren in fhem und HA weiterhin
Titel: Aw: TAPO P100
Beitrag von: erdferkel am 03 Oktober 2023, 14:16:57
Das sieht aus, als ob gar kein Cookie gesetzt wird - ohne das kann eigentlich ein Login nicht funktionieren.
Evtl. passiert es aber erst später oder die haben irgendwas ganz anderes gebastelt.

Du kannst mal diese Änderung ab Zeile 194 probieren, ich denke aber nicht, dass es funktioniert. Damit wird das Cookie gespeichert sobald eines übermittelt wird, es gibt aber keinen Fehler mehr, wenn nicht.
  if (!defined $hash->{priv}{COOKIE}) {
    # store cookie for further requests
    $hash->{priv}{COOKIE}=$1 if ($param->{httpheader}=~/^Set-Cookie: (TP_SESSIONID=\w+)/m);
  }
Titel: Aw: TAPO P100
Beitrag von: Groby am 25 Oktober 2023, 12:00:41
Hallo Zusammen,

ich habe mal den Support von TP-Link bemüht und folgende Antwort erhalten:
Zitat"Die neue Firmware unserer IOT-Geräte hat die Verschlüsselung verbessert, was dazu führen kann, dass sie nicht in der Lage sind, mit nicht autorisierten Anwendungen von Drittanbietern zu arbeiten."
Vielleicht kann ja jemand damit etwas anfangen...

MfGroby
Titel: Aw: TAPO P100
Beitrag von: Groby am 25 November 2023, 06:15:36
Hallo Zusammen,

ich habe den Black-Friday genutzt, um günstig einen Lichtstreifen (LS900) zu bekommen. Ich habe das Gerät in der FritzBox über die MAC-Adresse angemeldet, die Internet Sperre für das Gerät aktiviert und siehe da, sie lässt sich einbinden und über fhem an- und ausschalten.

Also bleibt es ein Glücksspiel mit den Tapo Lagerbeständen. Hoffen das man eine alte Firmware erwischt, sofern niemand das Problem mit der Verschlüsselung löst. Denn ein Firmware Downgrade ist technisch nicht möglich oder seitens TP-Link nicht gewollt:
Zitat...Ich habe mit unserem leitenden Ingenieur gesprochen und wir können kein Downgrade anbieten...

MfGroby
Titel: Aw: TAPO P100
Beitrag von: Groby am 09 April 2024, 06:14:24
Hallo Zusammen,

die upgedateten Tapo Devices sind "KLAP"-Devices. Hier 2 Log's dazu auf github:

 https://github.com/petretiandrea/plugp100/issues/113 (https://github.com/petretiandrea/plugp100/issues/113)
 https://github.com/python-kasa/python-kasa/pull/477 (https://github.com/python-kasa/python-kasa/pull/477)

Vielleicht hilft es das Problem zu lösen...

MfGroby