Delta Dore X2D/X3D (Tydom)

Forum pour tous les autres protocoles : Enocean, X10, les cartes piface.razberry ...
Pour les questions concernant le choix de protocoles, merci d'utiliser le forum Les autres objets.
sirus
Messages : 131
Inscription : 05 mai 2015, 18:09
Contact :

Re: Delta Dore X2D/X3D (Tydom)

Message par sirus »

Bon nouvelle mise à jour avec un nouveau script en sh.

Je pense que c'est possible aussi en python mais je ne maitrise pas assez.

main.py a mettre a jour
manage_tydom.sh -> nouveau script.

permet de faire les appel a main.py tout en écrivant des logs d'état qui permettrons dans une second temps de mettre a jour les états dans domoticz... (work in progress)

Donc j'arrive a faire bouger mes volets un a un... c'est un début !! Et a récupérer dans un fichier texte l'état de mes volets (dans la même commande).

A chaque appel de main.py l'état de tous les id sera mis a jour dans le fichier status.txt

Code : Tout sélectionner

#  Usage : 
#   Only get latest update from devices : 
#   ./manage_tydom.sh
#   
#   Send action to Tydom 
#    Ex1 : move device 1234123 to 10%
#    ./manage_tydom.sh put_devices_data 1234123 10
Raspberry B+ & PI2 / Domoticz / RFXtrx433E / multiple homemade devices
My blog/tutos for domoticz / electronics stuff : domotique.web2diz.net
yann500
Messages : 25
Inscription : 05 sept. 2020, 19:44

Re: Delta Dore X2D/X3D (Tydom)

Message par yann500 »

Bonjour,

Merci pour le plugin et le script. Ma connexion avec le Tydon fonctionne bien mais je n'arrive pas a modifier l'etat de mon alarme. Avez vous une idée de la ligne de commande a envoyer?

Par avance merci.

Yann
keefian
Messages : 2
Inscription : 30 janv. 2016, 23:01

Re: Delta Dore X2D/X3D (Tydom)

Message par keefian »

Bonjour à tous,

Pour commencer : un grand merci à tous pour le développement/adaptation de ce script python. C'est pile poil ce que je cherche pour piloter mes volets roulants X3D via Home Assistant.

J'ai utilisé Domoticz pendant des années mais suite à un crash du NAS sur lequel je l'avais installé j'ai décidé de tenter l'aventure Home Assistant :D. Pour l'instant j'essaye de faire fonctionner/adapter le script directement depuis une VM Linux. Je verrai ensuite pour l'intégration dans Home Assistant, mais je ne suis pas inquiet : j'arrive déjà à lancer des scripts shells depuis Home Assistant.

J'ai réussi (aucun mérite : j'ai juste exécuté le dernier script de sirus :D ) à accéder à ma box Tydom. Les appels à get_info, get_device_data, get_scenarios... fonctionnent bien. Par contre j'ai une erreur quand je tente d'exécuter put_device_data.

Est-ce que quelqu'un aurait une idée de ce qui 'cloche' ? A priori j'utilise bien le bon ID pour le volet mais j'ai une erreur "Cannot parse response" :

Code : Tout sélectionner

DEB - Action : put_devices_data
DEB - id : 1570942978
DEB - value : 10.0
DEBUG:websockets.protocol:client - state = CONNECTING
DEBUG:websockets.protocol:client - event = connection_made(<asyncio.sslproto._SSLProtocolTransport object at 0x7f66b7fac100>)
DEBUG:websockets.client:client > GET /mediation/client?mac=XXXXXXXXXX&appli=1 HTTP/1.1
DEBUG:websockets.client:client > Headers([('Host', '192.168.X.X'), ('Upgrade', 'websocket'), ('Connection', 'Upgrade'), ('Sec-WebSocket-Key', 'mDEHyGr2rxZL+i7DvcyPHQ=='), ('Sec-WebSocket-Version', '13'), ('Sec-WebSocket-Extensions', 'permessage-deflate; client_max_window_bits'), ('Authorization', 'Digest username="XXXXXXXXXX", realm="protected area", nonce="3d5efb98ed6112ba2439341c8f9cde1a", uri="/mediation/client?mac=XXXXXXXXXX&appli=1", response="5200c4f1fb7fa638eab923b7eb489732", qop="auth", nc=00000001, cnonce="2e289c2d7d034298"'), ('User-Agent', 'Python/3.8 websockets/8.1')])
DEBUG:websockets.protocol:client - event = data_received(<129 bytes>)
DEBUG:websockets.client:client < HTTP/1.1 101 Switching Protocols
DEBUG:websockets.client:client < Headers([('Upgrade', 'websocket'), ('Connection', 'Upgrade'), ('Sec-WebSocket-Accept', 'ScbkprGUh6q4Qh6sdktUHMvFnPY=')])
DEBUG:websockets.protocol:client - state = OPEN
DEBUG:websockets.protocol:client > Frame(fin=True, opcode=2, data=b'PUT /devices/1570942978/endpoints/1570942978/data HTTP/1.1\r\nContent-Length: 36\r\nContent-Type: application/json; charset=UTF-8\r\nTransac-Id: 0\r\n\r\n[{"name":"position","value":"10.0"}]\r\n\r\n', rsv1=False, rsv2=False, rsv3=False)
DEBUG:websockets.protocol:client - event = data_received(<4 bytes>)
DEBUG:websockets.protocol:client - event = data_received(<355 bytes>)
DEBUG:websockets.protocol:client < Frame(fin=True, opcode=2, data=b'HTTP/1.1 404 Not Found\r\nServer: Tydom-XXXXXXXXXX\r\nUri-Origin: /devices/1570942978/endpoints/1570942978/data\r\nContent-Type: application/json\r\nTransfer-Encoding: chunked\r\nTransac-Id: 0\r\n\r\n9C\r\n<!doctype html>\r\n<html>\r\n<head><title>Error 404</title></head>\r\n<body>\r\n<h2>Error 404</h2>\r\n<p>The requested page could not be found</p>\r\n</body>\r\n</html>\r\n\r\n0\r\n\r\n', rsv1=False, rsv2=False, rsv3=False)
Cannot parse response
Expecting value: line 1 column 1 (char 0)
DEBUG:websockets.protocol:client > Frame(fin=True, opcode=9, data=b'\x92$M\xec', rsv1=False, rsv2=False, rsv3=False)
DEBUG:websockets.protocol:client - event = data_received(<2 bytes>)
DEBUG:websockets.protocol:client < Frame(fin=True, opcode=10, data=b'', rsv1=False, rsv2=False, rsv3=False)
DEBUG:websockets.protocol:client - received unsolicited pong: [empty]
DEBUG:websockets.protocol:client ! timed out waiting for pong
DEBUG:websockets.protocol:client ! failing OPEN WebSocket connection with code 1011
DEBUG:websockets.protocol:client - state = CLOSING
DEBUG:websockets.protocol:client > Frame(fin=True, opcode=8, data=b'\x03\xf3', rsv1=False, rsv2=False, rsv3=False)
DEBUG:websockets.protocol:client - event = data_received(<4 bytes>)
DEBUG:websockets.protocol:client - event = connection_lost(None)
DEBUG:websockets.protocol:client - state = CLOSED
DEBUG:websockets.protocol:client x code = 1006, reason = [no reason]
DEBUG:websockets.protocol:client - aborted pending ping: 92244dec
DEBUG:websockets.protocol:client x closing TCP connection
Merci d'avance pour toute piste/solution :)

Fabrice
GC29
Messages : 1
Inscription : 06 nov. 2020, 21:36

Re: Delta Dore X2D/X3D (Tydom)

Message par GC29 »

Bonjour à tous,

Je viens d'installer Domoticz pour centraliser un peu ce qui est pilotable chez moi, principalement du Yeelight et une Tydom 1.0.
J'ai commencé a tester rapidement le code de sirius, merci pour le taff!

Pour ton soucis keefian, on dirait que ta tydom te retourne une erreur http 404:

DEBUG:websockets.protocol:client < Frame(fin=True, opcode=2, data=b'HTTP/1.1 404 Not Found\r\nServer: Tydom-XXXXXXXXXX\r\nUri-Origin: ....

Je dirais donc que la requête qu'elle reçoit n'est pas bonne, après si c'est ta commande ou le script, je ne saurais pas te dire, je ne suis pas arrivé là dans mes tests. (Mauvaise idée de jouer avec les volets quand les petites dorment :D )
sirus
Messages : 131
Inscription : 05 mai 2015, 18:09
Contact :

Re: Delta Dore X2D/X3D (Tydom)

Message par sirus »

Helo

j ai pu avancer sur mon projet et les scripts. Promis dans quelques jours je vous fait un retour détaillé

En gros il est possible de commander chanque volet via domoticz et de recuperer le status périodiquement.

++
Raspberry B+ & PI2 / Domoticz / RFXtrx433E / multiple homemade devices
My blog/tutos for domoticz / electronics stuff : domotique.web2diz.net
keefian
Messages : 2
Inscription : 30 janv. 2016, 23:01

Re: Delta Dore X2D/X3D (Tydom)

Message par keefian »

Merci pour ta réponse GC29
GC29 a écrit : 06 nov. 2020, 21:46 Pour ton soucis keefian, on dirait que ta tydom te retourne une erreur http 404:

DEBUG:websockets.protocol:client < Frame(fin=True, opcode=2, data=b'HTTP/1.1 404 Not Found\r\nServer: Tydom-XXXXXXXXXX\r\nUri-Origin: ....

Je dirais donc que la requête qu'elle reçoit n'est pas bonne, après si c'est ta commande ou le script, je ne saurais pas te dire, je ne suis pas arrivé là dans mes tests. (Mauvaise idée de jouer avec les volets quand les petites dorment :D )
Effectivement j'ai bien vu cette erreur 404. J'ai aussi installé la version du script qui a été packagée pour Home Assistant et j'ai la même erreur. Le côté positif c'est que j'arrive bien à me connecter à la box Tydom grâce au script/package.

Il faut que je creuse le sujet, mais comme je ne suis pas un pro du code pyhton :shock:
sirus
Messages : 131
Inscription : 05 mai 2015, 18:09
Contact :

Re: Delta Dore X2D/X3D (Tydom)

Message par sirus »

Hello,

j'ai recherché d'où pouvait venir cette erreur et je ne trouve pas désolé;
Je viens de mettre à jour les scripts et te propose de tester avec le nouveau script ?

Le principe change un peu et c'est maintenant bien plus complet...

j'ai configuré dans domoticz un interrupteur virtuel à seuil par volet roulant :
Image

j'ai configuré chacun des seuil (0 25% 50% 75% 100% une action qui appelle le script) :
par exemple pour ouvrir le volet dont l'ID Tydom est 1234546 a 25% il fait ajouter l'action suivante :
script:///root/Tydom/manage_tydom.sh put_devices_data 1234546 25

Image

Le script sh va appeler le script python avec les bon arguments.

Le script python va récupérer l'ensemble des position et les écrire dans un fichier nommé config.json qui sera lui même utilisé par le script sh pour mettre a jour dans domoticz :
- le nom des interrupteurs pour ajouter le % dans le nom de l'inter
- le capteur virtuel % pour enregistrer régulièrement l'état d'ouverture des volets

Image

Pour l'utiliser vous devez :
- créer les interrupteur a seul dans domoticz
- créer les capteur de type % dans domoticz
- créer le fichier config.txt avec l'ensemble des information nécessaires (voir le contenu du fichier)
- mettre ajour le fichier main.py et manage_tydom.sh dans le dossier /root/Tydom

Pour récupérer et mettre a jour régulièrement les valeur dans domoticz j'ai aussi mis dans la crontab l'exécution du script manage_tydom.sh sans argument :

Code : Tout sélectionner

# Mise a jour statu des volets
*/4 * * * *  /root/Tydom/manage_tydom.sh >> /tmp/manage_tydom.sh.log

je vais essayer de faire un tuto détaillé prochainement...

Les scripts sont disponibles ici :
https://github.com/Sirus10/scripting/tr ... ython_domo
Raspberry B+ & PI2 / Domoticz / RFXtrx433E / multiple homemade devices
My blog/tutos for domoticz / electronics stuff : domotique.web2diz.net
mdes.10
Messages : 2
Inscription : 29 avr. 2019, 09:32

Re: Delta Dore X2D/X3D (Tydom)

Message par mdes.10 »

hello,

le script de sirus fonctionne chez moi après une modif à ce niveau

Set all shutter position to same position
if action == "put_devices_data":
if id == "all":
await put_devices_data(websocket, id_endpoint, "position", TargetValue)
#await put_devices_data(websocket, <devicesid_2>, "position", TargetValue)
#await put_devices_data(websocket, <devicesid_3>, "position", TargetValue)
#await put_devices_data(websocket, <devicesid_4>, "position", TargetValue)


avant cette modif j'avais
python3 main.py
File "main.py", line 315
await put_devices_data(websocket, <devicesid_1>, "position", TargetValue)
^
SyntaxError: invalid syntax

j'avais commencé par commenté cette section mais les commandes put ne passaient pas

python3 main.py put_devices_data 158****** 25

après modif le put est fonctionnel sauf pour le all
python3 main.py put_devices_data all 25
DEB - Action : put_devices_data
DEB - id : all
DEB - value : 25
Traceback (most recent call last):
File "main.py", line 372, in <module>
asyncio.get_event_loop().run_until_complete(main_task())
File "/usr/lib/python3.7/asyncio/base_events.py", line 584, in run_until_complete
return future.result()
File "main.py", line 315, in main_task
await put_devices_data(websocket, id_endpoint, "position", TargetValue)
NameError: name 'id_endpoint' is not defined


logique du à ma modif

mais d'où pourrait provenir le problème initial ? n'étant pas expert en python je n'ai pas la réponse,
bend9
Messages : 20
Inscription : 29 déc. 2016, 21:55

Re: Delta Dore X2D/X3D (Tydom)

Message par bend9 »

Bonsoir

Je suis déjà très avancé avec domoticz surtout avec le protocole EnOcean.
Je vais déménager et ma future maison aura un tydom 1.0 pour les volets et le chauffage.
Je suis donc très intéressé par l'interface entre domoticz et tydom via les scripts.

Est ce qu'il est possible de gérer mon chauffage et les volets avec les scripts ?.


merci de votre aide
bonne soirée
vwolive
Messages : 27
Inscription : 07 janv. 2018, 12:17

Re: Delta Dore X2D/X3D (Tydom)

Message par vwolive »

Bonjour à tous,

alors j'ai enfin déménagé, sorti la tête de l'eau, migré mon Domoticz, et l'ai restructuré par rapport à ma nouvelle maison.
j'ai rajouté une conbee2 pour piloter du Zigbee en plus de mon Z-Wave.

Maintenant il me reste à me connecter à mon tydom pour pouvoir lire mes capteurs de portes, et l'état de mon alarme.

J'ai lu ce fil avec attention, mais ne suis pas encore sur de pouvoir me lancer avec sécurité.
SIRIUS parle un peu plus haut de réaliser un tuto détaillé, alors moi je suis preneur :D si c'est toujours d'actualité...

Blagues mises à par, si quelqu'un à un tuto, ça m'intéresse...

Merci
Répondre