Faire sa propre enceinte connectée (genre Alexa, Google Home etc)

Nota: Tout ce qui est dit ou montré ici n'est pas libre de droits, je partage ces données avec des utilisateurs à des fins didactiques, non commerciale et non commercialisable. Tout utilisateur qui veut copier tout ou partie des exemples de cette page peut le faire sans aucune demande de droits, mais seulement pour une utilisation personnelle.

Créer une enceinte connectée conçu par moi m'a permis d'utiliser le moins possible les classiques du genre. Quand vous demandez à Google ou Alexa (Amazon) d'allumer la lumière du séjour, en fait ce que vous dites est envoyé à un serveur qui enregistre votre demande l'analyse, et exécute celle-ci. Le problème c'est qu'en suite vous êtes affublé de publicité concernant la domotique du même genre. Moi, malgré la présence de 3 Google Home (modèles différents) et 2 Alexa (Amazon) j'ai préféré concevoir pour pas cher une enceinte qui soit totalement autonome, rien n'est analysé par un serveur externe.

Ce qui m'a convaincu de m'y mettre, c'est que l'accès à IFTTT me facilitait la tache dans mes commandes surtout que je fait de la domotique depuis la fin des année 80 (oui je ne suis pas si jeune que ça) et que j'ai conçu la plupart de mes objets connectés, j'ai un serveur qui tourne 24/7 au sous sol, depuis plus de 30 ans (bien sur pas le même, le matériel a évolué et moi aussi) alors la lumière, la jauge à fioul le portail, la boite aux lettres etc... n'existent pas dans le commerce et encoure moins des objets qui font plusieurs choses comme allumer la télé, changer de chaine ou allumer la lumière avec juste une commande web pour activer une de ces commandes qui tient dans une grosse boite d'allumette.
Maintenant que IFTTT requière un abonnement (-de 4€) que j'ai pris quand IFTTT est devenu payant. Quelques mois plus tard Google annonce de ne plus utiliser IFTTT et de faire son propre système, mais imaginer composer une commande pour chacune des chaine d'une télé avec le système Google alors que IFTTT était plus souple en permettant d'interpréter une valeur numérique énoncé je ne me voyais pas faire cela avec toutes télé de la maison (c'est juste un exemple) et je suis persuadé que Google demandera une rémunération dans peu de temps pour ce service très mais alors très mal conçu.

Bon assez parlé de ma raison et venant en au fait, il existe maintenant des processeurs pas très chers qu'il est facile de programmer avec l'IDE Arduino et qui ont des fonctions intéressantes.

Mon choix s'est porté sur un "NANO 33 BLE Sense" pour la parole, que je programme via "Picovoice". J'ai d'ailleurs eu un contact avec eux, ce sont des gens charmants à votre écoute , et prêt à aider, si nécessaire. Et sur un "ESP-WROOM-32" pour l'analyse et les commandes. Le tout tient sur un circuit imprimé double face rond de 9cm de diamètre. Le son est fait avec un petit ampli numérique de 3w très suffisant pour répondre aux ordres un jeu de 8 LEDs pour visualiser le niveau de volume et d'une LED RVB pour signaler que la borne, oui je l'appelle une borne et pas une enceinte même si je peux lui demander de mettre une radio, car pour la musique je préfère continuer avec mes Alexa et Google Home qui ont une meilleur sonorité.

Je me contente donc de géré ma domotique principalement avec mes bornes, avec les bonnes librairies on peu commander des objets du commerce pour ceux qui ne veulent pas fabriquer les leurs.

Si je fais une modification de programme je l'envoi par OTA sur les bornes (j'en ai 3) via une page WEB car elles ne sont volontairement pas présente sur le réseau (protection) elles sont néanmoins connectées en WiFi et on peut accéder aux pages WEB via un mot de passe.

Je vous décris ici juste quelques exemples des possibilités mais ne donne pas de détaille, mais je le ferai si vous êtes demandeur.

La suite bientôt.

@+ JLuc

Bonjour @JLuc

:clap:
Très intéressant dans son ensemble ..... et en particulier pour la mise en oeuvre de Picovoice

Bien entendu les détails sont attendus, c'est la raison d'être de ce sous forum !

je n'imagine pas une seconde être le seul demandeur.....

1 Like

bien sûr, ce serait super de documenter tout cela dans les projets finis si vous voulez partager
Faire soi même est une bonne option pour tout contrôler :slight_smile:

à noter que IFTTT présente de des risques de sécurité, passive ou active, ça a dû jouer dans la décision de google de retirer le support de ces possibilités dans certains services.

un article qui date un peu mais qui résume certains des points sensibles ou encore cette étude de 2017 dans laquelle ils résument

Our analysis finds that around 50% of the 19,323 unique recipes we examined are potentially unsafe, as they contain a secrecy violation, an integrity violation, or both

ça a évolué mais il faut être conscient de ce que l'on installe.

il y a aussi depuis l'initiative de Amazon, Apple, Google, Zigbee Alliance et d'autres qui ont créé un groupe de travail afin d’élaborer une norme ouverte pour la collaboration des appareils domotiques (Connected Home over IP ) avec une belle brochette d'acteurs

il y a un tuto pour faire des trucs sur ESP32

Merci pour vos encouragement, et cela va m'inciter à tout publier d'ici peu, en attendant vois quelques photos de la borne 3 en cours de montage.






il y a aussi depuis l'initiative de Amazon, Apple, Google, Zigbee Alliance et d'autres qui ont créé un groupe de travail afin d’élaborer une norme ouverte pour la collaboration des appareils domotiques (Connected Home over IP ) avec une belle brochette d'acteurs

(je prolonge , un court instant c'est promis, la parenthèse)

L'intiative CHIP a mûri et prend de l'ampleur désormais sous la bannière "MATTER"

Espressif ne voulant pas être en reste entre dans la danse avec ses premières déclinaisons d'ESP32 destinées à du 'Matter sur Thread'
https://www.espressif.com/en/solutions/device-connectivity/esp-matter-solution

J-M-L => Je n'utilise pas plus IFTTT que les autres serveurs externe à mon domicile, sauf un parcimonieusement pour de la conversion de texte en parole pour certaines réponses de la borne, mais généralement si l'objet commandé renvoi par exemple un "OK" j'ai déjà le mot enregistré par une appli que j'avais faite avec VS2017 et qui me permet de translater du texte en parole et de l'enregistrer en mp3, du coup le SPIFFS contient déjà un tas de fichiers standards et je n'ai recourt à l'API voicerss (ex: si je demande "quelle heure est il?" je prend la valeur dans le DS3231 mais je construit une phrase que j’envoie à voicerss et je stream la parole pas besoin d'utiliser le SPIFFS qui finirait par saturer.

d'accord - ça vous permet de contrôler ce qu'il se passe.

al1fch => Je sais que cela existe, mais j'ai bien peur que que cela passe par leurs serveurs tout de même. De plus si tout le monde utilise cela, ils vont bien finir par en tirer profit, et c'est sur ce point que j'attache mon indépendance. Aucune commande ne sort de chez moi, tout reste sur mon réseau (3 réseaux WiFi + un répéteur et le reste câblé) j'utilise aussi le 433Mhz et le 800Mhz exemple : j'ai des interrupteurs tactiles de marque LIVOLO qui peuvent être commandés en 433Mhz via un protocole adapté, comme je l'ai dit avec les bonne librairies on peut se faire des objets connectés facilement, ensuite la borne ne fait qu'envoyer la commande adéquate au bon module rien d'extraordinaire, simple et efficace, c'est tout.
Pour des commandes que je veux faire de l’extérieur, j'ai mon serveur (Apache, MySQL, PHP SFTP etc.) Certains fabricants donne des APIs capable de maitriser des objets connectés qu'ils vendent, on peut aussi en tirer parti...

@JLuc
je comprend et partage ce souci

L'évocation de MATTER suivait celle de CHIP
J'entrevois un certain degré d'autonomie à un petit réseau local 'Matter fonctionnant sur Thread' je n'en saisis pas les contraintes et limites.
Je ne sais donc pas encore si cela peut un jour me convenir pour une 'entrée en domotique' que je n'ai pas encore effectué.....

@JLuc - vos objets sont accessibles depuis internet à travers Apache ?

Il semble que vous ayez les compétences de sécurité des réseaux et du code pour gérer cela mais j'ai vu tellement d'installations avec des failles sur les points d'entrée (ou parfois des composants réseau avec des portes dérobées) que c'est une bonne chose que l'industrie se mette d'accord sur une norme d'inter-opérabilité qui n'oblige pas à abaisser les défenses pour permettre la collaboration des objets de différentes fournisseurs.

Très impressionnant ! Bravo !

Bonjour,
Oui je peux commander depuis le début des années 90 depuis l'extérieur de chez moi, d'abord par téléphone (code DTMF) et ensuite par web via apache, PHP, mysql etc.
Je me pensais à l'abri, mais en 2015 j'ai été victime d'un ransomware avec une faille VNC et un mot de passe trop facile, et qui me demandait à l'époque 3 Bitcoins (ils valaient 16000€~/bitcoin à ce moment là).
Quand je me suis aperçu de la chose (très tôt le matin) j'ai coupé le serveur brutalement.
J'ai booté avec un antivirus et supprimé le malware. Le disque "C" était correct, mais le D principalement n'a pas pu être réparé sans mot de passe. Ce disque contenait tout ce qui concernait le serveur (apache...) je comptais sur mes sauvegardes via un nas externe, mais dans l'empressement je l'ai fais tombé pas de très haut juste quelques centimètres, mais il était sous tension et les disques durs interne monté en RAID n'ont pas apprécié, du coup j'avais tout perdu ou presque, j'avais d'ancienne sauvegardes qui m'ont permis avec un travail de plusieurs jours de remettre le site d'aplomb. Et depuis j'ai mis et je mets encore des trucs que je ne peux exprimer ici (dommage pour les hackers) afin de protéger mon système.
Je penses avoir super sécurisé, mais en informatique rien d'impossible, je le sais malheureusement.
Voilà pour la petite anecdote.

J'ai reçu mon dernier NANO 33 BLE Sense et je l'ai programmé ce matin, la 3ème borne fonctionne bien.
Je me suis aperçu qu'il y avait un nouveau modèle de NANO 33 BLE Sense rev2.0.
J'ai volontairement commandé le rev1.0, comme cela mes 3 bornes seront identique.
Ce qui a changé dans la rev2.0 ce sont les accessoires tel que capteur de position 9 axes (comme avant) mais cette fois fait avec 2 puces une pour 6 axes et une pour les 3 autres.
Le capteur de température et d'humidité ont eux aussi changé. Bref, il faut changer de librairie pour la nouvelle version, j'ai donc opté pour l'ancienne qui ne fait rien de moins et je conserve ainsi mes programmes identique pour chaque borne.

Quelques photos et un peu de texte vont arriver dans un proche avenir.

Malheureusement en informatique pas grand chose de sûre, après entre ce faire crypter un disque dur et que quelqu'un puisse allumer la lumière chez toi, c'est pas tout à fait la même gêne.

Idéalement pour les sauvegardes, il faudrait une sauvegarde à l'extérieur.
Bon je dis ça, mais je ne l'ai toujours pas fait :rofl:

Du coup pour entrer sur ton réseau tu accepte que l'HTTPS et un mot de passe ou tu as était plus loin?

oui mais si c'est la porte du garage qui vous pouvez ouvrir ou la caméra intérieure qui tout d'un coup est en live stream sur internet c'est pas top :slight_smile:

Certes, mais l'utilité d'ouvrir la porte du garage par internet est très faible, enfin moi je ne le ferais pas.
Et je préfère qu'une caméra intérieur soit en live stream, que mon PC soit crypté.
Après chacun sa pudeur :slight_smile:

LOL :slight_smile:
oui quitte à avoir le choix je préfère crypter moi même mon disque dur et ne pas avoir de virus et que ma caméra ne soit pas en live stream sur internet :slight_smile:

Bpnjour,
Oui je suis allé bien plus loin, mais je ne peux décrire ici pour des raison qui sont compréhensibles je pense.
Pour mes sauvegardes, j'ai 16To répartis en 4 disque de 8To chacun (RAID) sur un NAS professionnel mais accessible à tous à l'achat, il faut juste y mettre le prix. Une fois il m'a signalé un disque vieillissant, j'ai mis l'appareil hors tension, j'ai remplacé le disque, une fois rallumé après quelques temps (je ne sais plus, surement 1 ou 2 heures) toutes mes données était présente il avait remis les données tout seul sans mon intervention, grâce au RAID et depuis il tourne sans soucis.

Bonjour,
Comme dit précédemment, rien d'impossible en informatique, mais ma porte de garage, mon portail, mon chauffage ou quoi que ce soit d'autre, n'est pas directement accessible. A aucun endroit sur mes pages PHP il y a la moindre adresse d'un objet connecté ou même les user/password pour y accéder, et c'est très bien ainsi. Encore une fois, je ne peux dévoiler certains paramètres de mon réseau. J'ai une longue expérience personnel et métier et j'avoue que cela aide. De plus comment je gère mon réseau n'est pas le sujet ici, alors je n'en dirai pas plus.
Merci pour ta compréhension.

Oui !

Et clairement vous savez ce que vous faites donc pas de souci.

Le Danger c’est plus sûr ceux qui copient des projets YouTube ou pris un peu n’importe où sur internet et qui n’ont pas les connaissances nécessaires

Bonjour,
La caméra n'est pas accessible depuis le net, donc pas de faille.
Mais je peux (moi seul) voir les photos qu'elle a prise, de jour comme de nuit.
De plus je suis retraité, et il y a toujours quelqu'un à la maison, donc la caméra depuis le net....