Automatisation de volets roulants

J’allais le dire :rofl:

Merci Mike. J’essaye ça tout de suite.

Rassures toi tous les username, mot de passe et autres que j’ai mis sur le forum ne sont pas les bons. J’étais responsable de la sécurité informatique en Asie alors, même en retraite, il y a encore quelques vagues traces :).

Mes volets fonctionnent maintenant en automatique ou en manuel à partir du WIFI ou d’une liaison USB sur l’ESP. C’était un peu particulier car j’avais 3 volets en Somfy et 2 en Bubendorff. Le programme permet d’automatiser complètement chaque volet, ou en montée ou descente seulement, ou pas du tout (il ne faut pas réveiller madame quand elle fait dodo sinon je me fais virer ). Le programme actionne les volets en fonction de l’heure théorique de lever et coucher du soleil à l’église de Lussat avec un offset paramétrable en + ou en - par rapport au soleil. Quel que soit le soleil, il y a en plus une fenêtre mini/maxi paramétrable (par exemple ne pas lever les volets avant 7:00 même si le soleil est un peu matinal, ou baisser au + tard a 22:00 même si le soleil joue les nocturnes. Merci en particulier à Mike et à Etienne pour leur support sans faille dans les moments difficiles.
Il me reste encore:

  • un volet a transformer de filaire en radio, mais j’ai démonté et je n’ai pas accès aux fils (220V et aux 3 fils du moteur) donc je ne sais pas si je vais arriver a le radiotiser en Somfy ce volet. Etienne, il me semble que tu as de l’expérience sur https://ateliervolet.fr/products/micro-recepteur-rts-somfy-pour-volet-roulant?variant=21383256539213&currency=EUR . Est-ce celui la que tu as utilisé?
  • je n’ai pas réussi pour le moment à passer en https ce qui me permettrais d’ouvrir sur le WAN. J’ai réussi à faire un site en https, j’ai réussi a faire de l’authentification avec cookie, mais les 2 ensembles, pas encore. Quelqu’un a-t-il de l’expérience?

:clap:
Bravo!
Ce serait sympa de partager ton code.

Pour la transformation filaire -> radio j’ai utilisé des “somfy centralis uno” trouvés neufs sur leboncoin à peu près 3x moins cher qu’en magasin.

Ça me semble un poil cher pour ce qui doit être un module radio et deux relais.
Tu ne veux pas essayer de le construire (en simulant un appui sur les boutons de l’interrupteur) ?

Ça vaut vraiment un bras le truc !!!
Et il en faut autant que de volets ? :crazy_face:

C est le problème de la domotique cela reste encore réservé aux personnes ayant des moyens conséquent.
C est considéré comme du luxe alors que cela permettrait de faire de belle économie d énergie.
J ai 14 ouvertures je ne m’imagine pas acheter autant de module, ça me coûterait moins chère de péter le placo et tirer des gaines avec en prime l ajout de contact d ouverture pour couper le chauffage dans une pièce avec fenêtre ouverte .
Ma maison


:grin:

Pas de Pb Etienne pour partager le code. Par contre c’est ecrit a l’ancienne.

a savoir pour utiliser:

le fichier code.h qui doit contenir:

#define STASSID " " ssid WIFI
#define STAPSK " " le mot de passe WIFI
#define ADMIN_USER “” le username de l’utilisateur WEB
#define ADMIN_PASS " " le password de l’utilisateur WEB
#define COOKIE_ID “” le cookie ID

les parametres generaux stockes dans l’EEPROM

499 = offset_versus_soleil short offset par rapport au soleil -2 en été, -1 en hivers

501 = boolean true selection automatique, false = selection manuelle

502 = (unsigned short) heure mini de descente des volets nb de minutes vs 00:00

504 = (unsigned short) heure maxi de descente des volets nb de minutes vs à 00:00

506 = (unsigned short) heure mini de monte des volets nb de minutes vs à 00:00

508 = (unsigned short) heure mini de monte des volets nb de minutes vs à 00:00

510 = nb_volets_declares byte nombre de volets déclarés
511 = libre

il faut commencer par une initialisation de l’EEPROM sinon ca va lire n’importe quoi

initialisation par gx sur l’entree serie USB

parametre par volet en EEPROM
28 bytes sont réservés pour chaque volet, 16 volets maximum  448 bytes utilisés de 0 à 447

rollingCode 2 unsigned short
adresse_telecommande 4 unsigned int un entier assez grand donnant l’adresse de la telecommande dans le volet
sens_telecommande 1 Byte sens du volet
0 = normal
1 = on doit inverser le sens montée/descente
type_volet 1 byte Somfy ou bubendorff
0 = somfy
1 = Bubendorff
validation_prog_auto 1 byte Validation programation automatique
0 = pas de programation automatiqe autorisée
1 = full automatique autorisé
2 = Descente automatique autorisée seulement
3 = Montée automatique autorisée seuelement
libre 1 byte
offset_mn_sunshine 2 short si la programmation automatique est validée, nombre de minutes avant ou après le lever du soleil on monte le volet
offset_mm_sunset 2 short si la programmation automatique est validée, nombre de minutes avant ou après le coucher du soleil on descend le
volet
nom_du_volet 14 string nom du volet sur 13 caracteres

Commandes possibles sur le lien serie USB uniquement

vxxx pour selectionner le volet avec xxx = numero du volet et xxx <= 16
p pour appairer le volet courant somfy seulement
m pour monter le volet courant
d pour descendre le volet courant
s pour stopper le volet courant
i pour initialiser les parametres du volet courant
l pour lire les parametres du volet courant
gl pour lire les paramètres généraux (offset par rapport au soleil, nombre de volets, heure mini et maxi de descente et monte des volets)
ge pour ecrire les paramètres généraux
gx pour initialiser l’EEPROM attention initialise tout à 0
h pour verifier l’heure de l4ESP8266 ainsi que l’heure du coucher et du lever du soleil
? pour imprimer ce menu

volets_version_4.ino (58,3 Ko)

interface web

oui ça serait une idée, mais mon problème pour le moment c’est d’accéder aux fils. C’est dans une salle de bain, tout est carrelé et j’ai pas envie de casser. Alors il est probable que ce dernier volet reste manuel.

@Etienne : Comment est alimenté le recepteur sur le centralis?

Il est alimenté sur le secteur à la place de l’interrupteur mécanique dans le cas où tu as un neutre + une phase + 1 fil pour chaque sens de rotation.

Tu as quoi derrière tes boutons?

Je ne sais pas trop. Je n’arrrive pas a tirer plus que sur la photo et j’hesite a forcer. J’ai l’impression qu il n’y aura que les 3 fils de l’inverseur donc que je n’aurai pas d’alimentation.

image

Coté moteur je vois juste un fil de 8mm de diametre de quelques cm entre le moteur et la structure de la fenetre que lui aussi je n’ose pas couper car de toute maniere je n’aurais pas la place pour rajouter un recepteur.

Pour ceux qui sont interessés, voici la derniere version du code (V7)
nouvelles fonctionalitées:

sécurité

  • interface web en https
  • limitation du nombre de login failure

interface

  • construction du menu web des volets en dynamique en fonction du nombre de volets (16 maxi) et du nom des volets
  • interface web pour modifier les parametres généraux, et les paramètres volet par volet.

type de volet

  • pour Somfy, un stop envoye a la descente et a la monte apres 15 secondes au cas ou pour mon vieux volet filaire (type 2)

J’ai finalement reussi a automatiser mon dernier vieux volet qui n’avait pas de telecommande avec un micro recepteur Somfy:

volets_version_7.ino (75,7 Ko)

Les librairies necessaires

Dusk2Dawn-1.0.1_ESP8266.zip (8,7 Ko)
Time-master.zip (31,3 Ko)

Petites questions :
Les fichiers
code.h
key_1024.h
x509_1024.h
… tu les trouves où ?
J’ai beau chercher … :woozy_face:

Tu as raison François, allias œil de lynx.

Si le code.h est le même que la version 4 expliqué plus haut dans ce topic, il y a effectivement Le key.h et le x509.h qui sont nouveaux (voir https://en.wikipedia.org/wiki/X.509). En voici l’explication :

Code.h

le fichier code.h doit contenir:

#define STASSID " " ssid WIFI
#define STAPSK " " le mot de passe WIFI
#define ADMIN_USER “” le username de l’utilisateur WEB
#define ADMIN_PASS " " le password de l’utilisateur WEB
#define COOKIE_ID “” le cookie ID (une chaine ce caractères assez longue et tordue pour n’avoir aucune chance de tomber dessus par hasard).

Fichiers X509.h et key.h . Il s’agit du bi-clef nécessaire a l’établissement de la communication https. Le x509.h contient la clef publique utilisée par le client pour chiffrer le début de la communication, et le key.h contient la clef privée utilisée par le serveur pour déchiffrer.

Pour les obtenir j’ai utilisé le shell suivant: https://github.com/esp8266/Arduino/blob/master/libraries/ESP8266WiFi/examples/WiFiHTTPSServer/make-self-signed-cert.sh.

Cela te donne un bi-clef self-signed. Le blem est que le browser du client gueule que la connexion n’est pas sécure et te demande d’accepter le risque avant d’établir la connexion. Le problème vient du fait que la clef publique fournie par le serveur au client pour chiffrer n’est pas signée par une autorité reconnue. Ça veut dire que le client est garanti que seul le serveur qui lui a fourni la clef publique pourra déchiffrer, mais il n’est absolument pas sûr que ce serveur soit bien celui qu’il prétend être puisque ce dit serveur lui a fourni la clef publique sans prouver sa propre identité. C’est un peu comme si tu te pointes à la poste pour récupérer un recommandé mais que tu n’as pas ta carte d’identité sur toi. Dans mon cas, comme je n’ai pas ouvert au WAN, pas de problème sauf si quelqu’un venait installer un serveur pirate dans ma maison, et là, c’est l’alarme (et moi) qui gueulerait.

La solution propre serait de trouver un certificat signé par une autorité reconnue. C’est ce que propose gratuitement « let’s encrypt » (utilisé par Mike dans l’acolock ), mais c’est beaucoup plus lourd à mettre en place. Le certificat let’s encrypt expire tous les 3 mois et il faut une procédure de renouvellement automatique et Mike m’a dit que ce serait dur à mettre en place sur un ESP. Je ne désespère pas d’essayer juste pour le fun, peut être dans la version 8.

ah oui quand même :crazy_face:
La chose n’est pas si simple que ça dans le domaine de la communication par Wifi et tutti quanti !!!
J’avoue ne pas avoir confiance du tout dans ces systèmes — (je me répète, mais c’est l’âge … image )
Il faut aussi peut-être arrêter la paranoïa car ce ne sont que des applis pour lever/descendre des volets, mais …
Ne connaissant strictement rien dans le domaine des échanges d’informations par Wifi ou BlueTooth, je me demande toujours si, par un biais quelconque (ou faille de sécurité !) un réseau “interne” créé de toute pièce par l’amateur lambda que je suis, ne permet(trait) pas à celui qui connaît bien le réseau, de venir se balader dans tout le système qui gravite autour de ce µréseau ?
Je “déconne complet” ou pas ?
Et de là … mon doute sur “ma propre perplexité” sur l’utilité de la complexité pour “reconstruire” une simple télécommande. (phrase pas trop simple après relecture :stuck_out_tongue_winking_eye:) , mais qui traduit mon inquiétude … Je développe …
C’est vrai que ça m’agace tout ce pataquès de précautions et ces centaines de ligne de code pour obtenir un “plus que mince” résultat !!! Mais c’est sans doute le prix à payer si on veut utiliser ce type de super-technologie mise à disposition de tout le monde !, avec ses risques … si toutefois ils existent vraiment !
C’est toujours pareil, quand on ne maîtrise pas, … :thinking:

Je vais donc m’accrocher et essayer de comprendre comment ça fonctionne, promis :wink:

Dans une ancienne vie, à chaque fois que je demandais à des sociétés spécialisées de faire des tests d’intrusion sur un périmètre contrôlé, ils mettaient entre 24 et 36 heures (de CPU pure) pour pénétrer le réseau mais ils y arrivaient toujours d’un côté ou d’un autre. Il faut dire que c’était des vraiment bons. Ça nous donnait au moins les axes de travail pour nous améliorer. Il n’y a pas si longtemps, le simple fait d’offrir du WIFI en WEP permettait à un hacker de niveau débutant à peine + de rentrer simplement dans le réseau par le WIFI, c’est pour cela que maintenant il y a du WPA2 qui est beaucoup + sécure car il change la clef de session (clef de chiffrement) suffisamment souvent de sorte que quand le hacker la trouve, c’est trop tard, elle n’est plus valide. A ce jour et à ma connaissance le WPA2 n’est pas encore cassé mais pour combien de temps ? Donc je ne dirais certainement pas que tout est sécure et que le risque est 0. En fait la sécurité consiste souvent à mettre suffisamment de barrières qui rendent l’effort supérieur au gain. Si j’ai un niveau de sécurité de 50, les hackeurs préfèreront aller voir ceux qui ont un niveau 30 si le gain au bout du bout est comparable. Donc je te conseille d’arrêter le WIFI chez toi car il y a un risque :). Tu ne seras jamais à l’abri d’une faille de sécurité de ta box. J’ai pu constater par exemple que la notion de DMZ sur une free box est plus que limite. Mais ta chance est qu’il y a des millions de réseaux WIFI dans ce monde de communication virtuelle, et le tien n’est pas forcément celui qui est le plus intéressant pour un hacker.
Je sais ce n’est pas satisfaisant comme réponse mais “c’est la vie”.

J envisage de domotizer ma maison mais pas avec du sans fil mon but est justement de couper mes 3 et bientôt 4 bornes wifi la nuit et d éteindre automatiquement tous ce qui ne sert a rien quand je ne suis pas la (éclairage, tv en veilles box internet).
Tous ça avec un bus (certainement 1 wire) et un simple aduino.
Et la peux de problème de piratage.

Voilà bien un sage homme !
Je suis complètement d’accord avec toi :+1:
Par exemple, je suis en train de regarder pour ma visu pour mon tour.
Je viens de recevoir mes 2 règles optiques.
Je vais essayer de me passer de la liaison bluetooth et de la tablette pour l’affichage.
On doit pouvoir envoyer ça sur un écran “classique” et avec quelques fils … :wink:

On parler de sécurité en domotique.
Voici un petit article :