MQTT

Pont RF SONOFF (433 MHz) Hack utilisant Tasmota

María Hernández
· 7 min de lecture
Envoyer par email

SONOFF permettent à tous de transformer des espaces comme les maisons et les bureaux traditionnels en espaces intelligents à moindre coût. Ils proposent une gamme de produits sans fil pour le contrôle et la surveillance, idéaux pour la mise en place d'une preuve de concept (POC) d'objets connectés ( IoT ) sans dépenser des centaines d'euros.

Cependant, si vous souhaitez créer une preuve de concept, vous voudrez probablement contrôler l'architecture et les services d'hébergement et d'affichage de vos données. C'est pourquoi j'ai décidé d'aller plus loin et de détourner les produits SONOFF pour créer mes propres solutions à moindre coût.

Si vous voulez apprendre à bidouiller le pont SONOFF 433 MHz pour créer des choses géniales, vous devriez lire ce guide jusqu'au bout. Croyez-moi !

Exigences

Services et outils :

Étape par étape

  1. Comprendre l'architecture
  2. Piratage du pont RF
  3. Configuration du pont RF
  4. Configuration de Node-RED (MQTT)

1. Compréhension de l'architecture

Avant de commencer toute intégration, l'étape la plus importante consiste à comprendre l'architecture sous-jacente.

Pour cette intégration, nous allons appliquer l'architecture suivante :

Concrètement, les appareils RF envoient un signal à chaque changement d'état. Ces signaux sont reçus par le pont RF SONOFF, qui les transmet ensuite à Node-RED via MQTT. Cette opération est possible uniquement si le firmware du pont est mis à jour ; nous avons opté pour Tasmota . Une fois les données reçues dans Node-RED, vous pourrez les manipuler selon vos besoins et les connecter à des services tiers, tels que des plateformes IoT Ubidots , des réseaux sociaux, des assistants vocaux ou tout autre service permettant une communication via une API.

2. Piratage du pont RF

1. Retirez les caches noirs des 4 vis situées sous le chevalet. Ensuite, retirez les vis à l'aide du tournevis approprié.

2. Retirez délicatement le couvercle afin d'extraire la carte mère. Une fois celle-ci démontée, vous devriez obtenir le résultat suivant :

3. Soulevez délicatement la carte et l'écran LED. Retirez ensuite la mousse située sous l'écran et mettez l'interrupteur sur OFF, comme indiqué ci-dessous :

4. Pour pouvoir modifier le firmware SONOFF du pont, vous devez utiliser un adaptateur série USB. Pour connecter l'adaptateur au pont, vous devez souder quelques connecteurs mâles sur les broches comme indiqué ici :

Une autre option consiste à ne pas souder les broches et à utiliser des fils de connexion mâles que vous maintiendrez avec votre doigt pendant le processus de téléchargement.

5. Établissez la connexion suivante entre le module et le pont :

6. Appuyez sur le bouton de réinitialisation du pont et, tout en maintenant le bouton enfoncé, connectez l'adaptateur série USB à votre ordinateur.  

IMPORTANT : Pour pouvoir téléverser le firmware, vous devez avoir installé le pilote VCP du pont USB vers UART CP210x . Si ce n’est pas le cas, cliquez ici pour le télécharger .

7. Selon le système d'exploitation utilisé, reportez-vous aux outils suivants pour téléverser Tasmota . Cliquez ici pour télécharger le fichier bin.

Windows : flasheur nodeMCU .

1. Démarrer nodeMCU-flasher.

2. Dans l'onglet « Opération », sélectionnez le port COM attribué au pont.

3. Dans l' onglet « Config » , sélectionnez le fichier Tasmota .bin .

4. Dans l'onglet « Avancé », assurez-vous que les paramètres correspondent aux configurations suivantes :

  • Baudrate: 115200
  • Capacité de la mémoire flash : 1 Mo
  • Vitesse du flash : 40 MHz
  • Mode SPI : DOUT

Comme le montre l'image ci-dessous :

5. Pour terminer, cliquez sur « Flash » et préparez votre SONOFF Bridge avec Tasmota.

Linux/macOS : esptool

  1. Consultez le fichier README pour exécuter la commande nécessaire à la mise à jour du firmware. Tenez compte des configurations suivantes :
  • Baudrate: 115200
  • Capacité de la mémoire flash : 1 Mo
  • Vitesse du flash : 40 MHz
  • Mode SPI : DOUT

8. Une fois le firmware téléchargé avec succès, mettez l' interrupteur sur ON et assemblez le pont.

3. Configuration du pont RF

1. Branchez le pont à une source d'alimentation. Il créera alors un point d'accès. Recherchez les réseaux disponibles sur votre ordinateur et connectez-vous au réseau Wi-Fi nommé « sonoff-xxx ».

Une fois la connexion établie, ouvrez votre navigateur préféré et saisissez l'adresse suivante : http://192.168.4.1 . Vous serez alors redirigé vers une page de configuration Wi-Fi.

2. Saisissez le SSID et le mot de passe du réseau auquel vous souhaitez vous connecter, puis cliquez sur Enregistrer.

3. Une fois la connexion établie, utilisez une application d'analyse réseau pour connaître la nouvelle adresse IP attribuée au pont RF. Nous vous recommandons vivement d'utiliser Fing , disponible sur le Google Play Store et l'App Store d'Apple. Fing est un excellent outil pour trouver facilement l'adresse IP d'un appareil.

Après avoir trouvé l'adresse IP attribuée au pont, saisissez-la à nouveau dans votre navigateur web.

4. Pour terminer la configuration, vous devez choisir le module à utiliser, ici le pont RF. Pour ce faire, accédez à « Configuration > Configurer le module ». Sélectionnez ensuite « Pont 25 » comme type de module et cliquez sur « Enregistrer ».

4. Configuration de Node-RED (MQTT)

Pour les tests, vous pouvez exécuter Node-RED localement sur votre ordinateur. Si vous prévoyez de déployer une solution, nous recommandons d'exécuter Node-RED sur un Raspberry Pi connecté au même réseau que le pont RF.

1. Pour configurer le serveur MQTT, accédez à « Configuration > Configurer MQTT » sur le pont RF. Ensuite, attribuez les configurations suivantes :

  • Hôte : Adresse IP de l’ordinateur / Adresse IP du Raspberry Pi. Dans mon cas, l’adresse IP attribuée est 10.0.0.23
  • Port: 1883
  • Client : Laissez la valeur par défaut
  • Utilisateur : Laissez la valeur par défaut
  • Mot de passe : Laissez la valeur par défaut
  • Sujet : pont RF
  • Sujet complet : %topic%/%prefix%/

Ce qui a pour résultat :

Pour terminer, appuyez sur le bouton  Enregistrer »

2. Démarrez Node-RED localement en exécutant la commande suivante dans votre terminal :

Node-RED

Si vous ne l'avez pas déjà installé, cliquez ici .

3. Une fois Node-RED démarré, ouvrez un navigateur Web et saisissez l'adresse IP suivante : 127.0.0.1 et le port 1880 (c'est http://127.0.0.1:1880 ) pour ouvrir l'interface Web de Node-RED.

4. Ensuite, cliquez sur le menu Node-RED en haut à droite, puis sur « Importer > Presse-papiers » et collez le code ci-dessous :

[{"id":"ff00dda7.75ff7","type":"mqtt in, z":"c32623f3.82eec, nom":",topic":"rfbridge/tele/RESULT, qos":"1, datatype":"auto, broker":"9584b3e4.576fd, x":"220, y":"240, wires":"[["e629731e.a86648"]]}, {"id":"e629731e.a86648, type":"debug, z":"c32623f3.82eec, nom":", active":"true, tosidebar":true, "console":false, "tostatus":false, "complete":"false, x":"500, y":"240, wires":"[]}, {"id":"9584b3e4.576fd, type":"mqtt-broker, z":", nom":"Local Broker","broker":"10.0.0.23","port":"1883","clientid":"","usetls":false,"compatmode":true,"keepalive":"60,"cleansession":true,"birthTopic":",birthQos":"0,birthPayload":",closeTopic":",closeQos":"0,closePayload":",willTopic":",willQos":"0,willPayload":"}]

5. Dans l'onglet « Connexion » du nœud MQTT, attribuez comme « Serveur » la même adresse IP que celle attribuée comme hôte dans le pont RF. Dans mon cas, l'hôte attribué était 10.0.0.23 .

Pour enregistrer les modifications, cliquez sur « Mettre à jour ».

6. Pour démarrer l'exécution du flux Node-RED, cliquez sur « Déployer ».

À ce stade, le nœud MQTT changera son statut en « Connecté ».

Ensuite, sélectionnez l'onglet de débogage pour visualiser les messages entrants.

5. Résumé

En quelques minutes seulement, nous avons réussi à pirater le pont RF SONOFF sans avoir besoin d'être un expert en matériel.

Maintenant que vous êtes capable de manipuler les données pour les traiter avec le service de votre choix, c'est à votre tour d'étendre les capacités des solutions offertes par les produits SONOFF afin de créer des solutions IoT à faible coût.

Projets IoT plus utiles :