TP-Link smart plug HS100/HS110
-
chrisG4269
- Messages : 29
- Inscription : 30 mars 2017, 21:27
TP-Link smart plug HS100/HS110
Bonjour
j'ai profité de la promo amazon pour débuter en domotique ( HS = 15.99 )
config : raspberry pi 3 jessie lite, raspian, tp link h100
Quelqu'un aurait il la solution pour intégrer cette prise dans domoticz
J ai copier le scipt suivant dans /usr/bin
https://raw.githubusercontent.com/softS ... artplug.py
que faut il faire merci
j'ai profité de la promo amazon pour débuter en domotique ( HS = 15.99 )
config : raspberry pi 3 jessie lite, raspian, tp link h100
Quelqu'un aurait il la solution pour intégrer cette prise dans domoticz
J ai copier le scipt suivant dans /usr/bin
https://raw.githubusercontent.com/softS ... artplug.py
que faut il faire merci
Re: TP-Link smart plug HS100/HS110
Salut
Moi j'utilise ceux script nommer "tplink-smartplug.py" a placer dans le dossier
Lui attribué les droits d’exécution:
Tu crée une switch virtuel, avec comme: on action et off action (remplace l'ip par celui de ton DZ et fait une réservation DHCP dans ton routeur pour t'assurer que l'adresse de tes plug ne change pas)
Source: http://www.domoticz.com/forum/viewtopic.php?t=13290
Moi j'utilise ceux script nommer "tplink-smartplug.py" a placer dans le dossier
Code : Tout sélectionner
/home/pi/domoticz/scripts/pythonCode : Tout sélectionner
#!/usr/bin/env python
#
# TP-Link Wi-Fi Smart Plug Protocol Client
# For use with TP-Link HS-100 or HS-110
#
# by Lubomir Stroetmann
# Copyright 2016 softScheck GmbH
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#
#
import socket
import argparse
version = 0.1
# Check if IP is valid
def validIP(ip):
try:
socket.inet_pton(socket.AF_INET, ip)
except socket.error:
parser.error("Invalid IP Address.")
return ip
# Predefined Smart Plug Commands
# For a full list of commands, consult tplink_commands.txt
commands = {'info' : '{"system":{"get_sysinfo":{}}}',
'on' : '{"system":{"set_relay_state":{"state":1}}}',
'off' : '{"system":{"set_relay_state":{"state":0}}}',
'cloudinfo': '{"cnCloud":{"get_info":{}}}',
'wlanscan' : '{"netif":{"get_scaninfo":{"refresh":0}}}',
'time' : '{"time":{"get_time":{}}}',
'schedule' : '{"schedule":{"get_rules":{}}}',
'countdown': '{"count_down":{"get_rules":{}}}',
'antitheft': '{"anti_theft":{"get_rules":{}}}',
'reboot' : '{"system":{"reboot":{"delay":1}}}',
'reset' : '{"system":{"reset":{"delay":1}}}'
}
# Encryption and Decryption of TP-Link Smart Home Protocol
# XOR Autokey Cipher with starting key = 171
def encrypt(string):
key = 171
result = "\0\0\0\0"
for i in string:
a = key ^ ord(i)
key = a
result += chr(a)
return result
def decrypt(string):
key = 171
result = ""
for i in string:
a = key ^ ord(i)
key = ord(i)
result += chr(a)
return result
# Parse commandline arguments
parser = argparse.ArgumentParser(description="TP-Link Wi-Fi Smart Plug Client v" + str(version))
parser.add_argument("-t", "--target", metavar="<ip>", required=True, help="Target IP Address", type=validIP)
group = parser.add_mutually_exclusive_group(required=True)
group.add_argument("-c", "--command", metavar="<command>", help="Preset command to send. Choices are: "+", ".join(commands), choices=commands)
group.add_argument("-j", "--json", metavar="<JSON string>", help="Full JSON string of command to send")
args = parser.parse_args()
# Set target IP, port and command to send
ip = args.target
port = 9999
if args.command is None:
cmd = args.json
else:
cmd = commands[args.command]
# Send command and receive reply
try:
sock_tcp = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
sock_tcp.connect((ip, port))
sock_tcp.send(encrypt(cmd))
data = sock_tcp.recv(2048)
sock_tcp.close()
print "Sent: ", cmd
print "Received: ", decrypt(data[4:])
except socket.error:
quit("Cound not connect to host " + ip + ":" + str(port))
Code : Tout sélectionner
chmod a+x tplink-smartplug.pyCode : Tout sélectionner
script:///home/pi/domoticz/scripts/python/tplink-smartplug.py -t 192.168.1.63 -c onCode : Tout sélectionner
script:///home/pi/domoticz/scripts/python/tplink-smartplug.py -t 192.168.1.63 -c offSource: http://www.domoticz.com/forum/viewtopic.php?t=13290
-
Darkangel54360
- Messages : 9
- Inscription : 16 juil. 2018, 09:46
Re: TP-Link smart plug HS100/HS110
Bonjour,
Je remonte ce post, mais je viens juste confirmer le fonctionnement pour mes 2 prises TP Link HS100.
Merci beaucoup
Je remonte ce post, mais je viens juste confirmer le fonctionnement pour mes 2 prises TP Link HS100.
Merci beaucoup
Re: TP-Link smart plug HS100/HS110
hello,
Je test domoticz sur PC (installation sous Windows) et je ne parviens pas à exécuter les commandes 'ON' et 'OFF'. Sous Windows j'utilise DOS, mais j'imagine que mon problème viens de là... Une idée ?
Je test domoticz sur PC (installation sous Windows) et je ne parviens pas à exécuter les commandes 'ON' et 'OFF'. Sous Windows j'utilise DOS, mais j'imagine que mon problème viens de là... Une idée ?
Re: TP-Link smart plug HS100/HS110
Bonjour à toutes et tous.
J'ai installé cette prise et j'arrive a la contrôler avec son appli Android.
J'ai suivi scrupuleusement le tuto pour l'installer dans Domoticz sur Raspberry PI3.
J'ai procédé par copier/coller pour éviter le fautes de frappe et mis la bonne adresse IP dans les actions On/Off de l'interrupteur virtuel de Domoticz et pourtant cela ne fonctionne pas.
Quelqu'un peut il me dire comment je peux debugger çà et trouver mon erreur ?
Merci
@+
Chris
J'ai installé cette prise et j'arrive a la contrôler avec son appli Android.
J'ai suivi scrupuleusement le tuto pour l'installer dans Domoticz sur Raspberry PI3.
J'ai procédé par copier/coller pour éviter le fautes de frappe et mis la bonne adresse IP dans les actions On/Off de l'interrupteur virtuel de Domoticz et pourtant cela ne fonctionne pas.
Quelqu'un peut il me dire comment je peux debugger çà et trouver mon erreur ?
Merci
@+
Chris
Domoticz sur RaspberryPi3 - RFXCom - Zwave
Re: TP-Link smart plug HS100/HS110
bonjour,
c'est curieux car pour ma par ça fonctionne parfaitement.
eJ'ai cependant besoin d'une aide: je souhaite être prévenu quand la prise est allumée manuellement (pas par l'interface domoticz) via les notifications prowl. Cela fonctionne quand j'actionne la prise par domoticz, mais pas quand j'appuie directement sur le bouton. Est-il possible de récupérer l'état de la prise par un script toute les min?
Merci pour les réponses
c'est curieux car pour ma par ça fonctionne parfaitement.
eJ'ai cependant besoin d'une aide: je souhaite être prévenu quand la prise est allumée manuellement (pas par l'interface domoticz) via les notifications prowl. Cela fonctionne quand j'actionne la prise par domoticz, mais pas quand j'appuie directement sur le bouton. Est-il possible de récupérer l'état de la prise par un script toute les min?
Merci pour les réponses
domoticz sur Pi3, RFXCOM , Hue bridge et interrupteur DIO
Re: TP-Link smart plug HS100/HS110
Bonjour les gars!
c'est mon premier post sur ce forum (mais pas le premier sur un tableau ...)
Je viens de faire une nouvelle installation de mon RPI avec Domoticz, et enfin mis en place une méthode propre pour gérer la prise HS110
J'ai commencé avec ce plugin: https://github.com/dahallgren/domoticz-tplink-smartplug, un peu modifié avec quelques morceaux de code utiles trouvés sur le forum EN, et une pincée de code maison
Je devais gérer les 2 versions de HS110, la v1 qui parle en unités complètes et la v2 qui travaille avec des millis
voici le résultat: https://github.com/lordzurp/domoticz-tplink-smartplug
Nouveau type d'appareil
changement du type de périphérique Domoticz pour reporter correctement la consommation d'énergie
résultats arrondis, pour éviter les résultats débiles comme 2.377066 W [/ i], et ajout de la consommation totale d'énergie rapportée par la prise
une nouvelle branche pour la v2, avec une division par 1000
et quelques corrections mineures pour fonctionner avec le nouveau type v2
j'espère que cela fonctionnera sur votre système
PS : désolé pour la grammaire, c'est la traduction automatique de mon message sur la board EN
c'est mon premier post sur ce forum (mais pas le premier sur un tableau ...)
Je viens de faire une nouvelle installation de mon RPI avec Domoticz, et enfin mis en place une méthode propre pour gérer la prise HS110
J'ai commencé avec ce plugin: https://github.com/dahallgren/domoticz-tplink-smartplug, un peu modifié avec quelques morceaux de code utiles trouvés sur le forum EN, et une pincée de code maison
Je devais gérer les 2 versions de HS110, la v1 qui parle en unités complètes et la v2 qui travaille avec des millis
voici le résultat: https://github.com/lordzurp/domoticz-tplink-smartplug
Nouveau type d'appareil
Code : Tout sélectionner
<option label = "HS100" value = "HS100" default = "true" />
<option label = "HS110" value = "HS110" default = "false" />
<option label = "HS110v2" value = "HS110v2" default = "false" />
Code : Tout sélectionner
Domoticz.Device (Name = "(W)", Unité = 4, Type = 243, Sous-type = 29). Créer ()
Code : Tout sélectionner
Devices [2] .Update (nValue = 0, sValue = str (round (realtime_result ['current'], 2)))
Périphériques [3] .Update (nValue = 0, sValue = str (round (realtime_result ['voltage'], 2)))
Périphériques [4] .Update (nValue = 0, sValue = str (round (realtime_result ['power'], 2)) + +; ";" + str (realtime_result ['total'] * 1000))
Code : Tout sélectionner
si Paramètres ["Mode1"] == "HS110v2":
[...]
Périphériques [2] .Update (nValue = 0, sValue = str (round (realtime_result ['current_ma'] / 1000,2)))
Périphériques [3] .Update (nValue = 0, sValue = str (round (realtime_result ['voltage_mv'] / 1000,2)))
Périphériques [4] .Update (nValue = 0, sValue = str (round (realtime_result ['power_mw'] / 1000,2)) + ";" + str (realtime_result ['total_wh']))
j'espère que cela fonctionnera sur votre système
PS : désolé pour la grammaire, c'est la traduction automatique de mon message sur la board EN
Un gus et ses serveurs, dans la cave
Re: TP-Link smart plug HS100/HS110
Bonjour,
j'avais des connections en attente a moitié fermé, en LAST_ACK pour tout dire, je pense qu'il faudrait deplacer le
sock.close() dans un finally, car en cas d'expction le sock.close ne se fait pas
data = sock.recv(1024)
Domoticz.Debug('data len: {}'.format(len(data)))
# il etait ici le sock.close
except socket.error as e:
Domoticz.Log('send command error: {}'.format(str(e)))
raise
finally:
sock.close()
bon, j'avoue je suis pas bon en python, mais ca semble marcher et ca semble cohérent
j'avais des connections en attente a moitié fermé, en LAST_ACK pour tout dire, je pense qu'il faudrait deplacer le
sock.close() dans un finally, car en cas d'expction le sock.close ne se fait pas
data = sock.recv(1024)
Domoticz.Debug('data len: {}'.format(len(data)))
# il etait ici le sock.close
except socket.error as e:
Domoticz.Log('send command error: {}'.format(str(e)))
raise
finally:
sock.close()
bon, j'avoue je suis pas bon en python, mais ca semble marcher et ca semble cohérent
Re: TP-Link smart plug HS100/HS110
Bonjour à tous,
Je remonte ce sujet, car j'essaye pas tout les moyens de faire fonctionner mon TP-Link HS110.
Mais malheureusement je n'y arrive pas!!
A mon avis je m'y prend mal avec la création du script.
J'ai créer le fichier via Filezilla et mi sous le répertoire python.
Est-ce correct? Pourriez-vous m'aider svp.
Je remonte ce sujet, car j'essaye pas tout les moyens de faire fonctionner mon TP-Link HS110.
Mais malheureusement je n'y arrive pas!!
A mon avis je m'y prend mal avec la création du script.
J'ai créer le fichier via Filezilla et mi sous le répertoire python.
Est-ce correct? Pourriez-vous m'aider svp.
Re: TP-Link smart plug HS100/HS110
2020-05-03 19:47:24.586 Status: Executing script: /home/pi/domoticz/scripts/HS110.py
2020-05-03 19:47:24.624 Error: Error executing script command (/home/pi/domoticz/scripts/HS110.py). returned: 32512
J'obtiens ceci quand j'execute le script
Pourriez-vous m'aider?
2020-05-03 19:47:24.624 Error: Error executing script command (/home/pi/domoticz/scripts/HS110.py). returned: 32512
J'obtiens ceci quand j'execute le script
Pourriez-vous m'aider?