LSC Smart Connect : Flasher Tuya en Tasmota !

Information !
Cette méthode permet de flasher ces produits pour les rendre compatible MQTT.
Cela signifie que cet article n'est pas spécifique à openHAB.
Cela permettra une configuration valable aussi pour du Domoticz, Home Assistant, Jeedom et tout autre logiciel qui sait gérer le protocol MQTT !

Introduction

En me rendant à l'occasion dans un magasin "Action" dans ma région, je me suis attardé sur une offre particulière.
Une multitude de produits lié à l'automatisation.
Grande surprise car ces produits sont plutôt onéreux et les voir dans ce type de magasin m'a interrogé.

Voici quelques exemples de produits vendus :

 

Prise électrique (sans terre) : 8,95 euros

 2578677 8712879142799 111

Détecteur de mouvement à 12m : 9,95 euros

Image sans titre

 

Lampe à filament Type E27 5,5 W : 8,95 euros _________________________ TESTE ! OK !!!

Image sans titre2

 

Lampe à filament Type E14 4,5 W : 8,95 euros _________________________ TESTE ! OK !!!

lampe3

 

Ampoule LED multicolore 9 W : 8,95 euros_________________________ TESTE ! KO !!! : it appears this device does not use an ESP82xx and therefore cannot install ESP based firmware
MAIS il existe une autre technique pour pouvoir ne pas utiliser le programme natif du protocol Tuya et donc de prendre la main via MQTT et son logiciel de Domotique
(article en cours de rédaction)

Image sans titre3

Et encore plein d'autres…
En regardant rapidement la notice, je constate que cela marche évidement avec un logiciel propriétaire (un de plus !) blablablabla…
Mais j'ai repéré ce logo :
 

Powered By

tuya

En voyant cela je me suis laissé tenté car il me semblait qu'au début de l'année 2019 certains avaient réussis à flasher cela.
J'ai donc acheté une seule lampe (celle à filament LED de 5,5 W) et un soir de semaine je me suis lancé sur la manière de flasher Tuya pour l'intégrer dans openHAB !

 

Attention !
Tuya a commencé à produire des modules wifi utilisant Realtek RTL8710BN Wi-Fi SOC à la place des ESP82xx.
Il est impossible de flasher ces modèles par cette méthode mais on peut court-circuiter le protocol d'échange ;)
Voici les modèles que j'ai testé :
- LSC Smart Connect - Smart LED (white and color ambiance) - Art No. 970714 v1.0 Code barre : 8712879142706 ===> IMPOSSIBLE (autre technique possible ! Fera l'objet d'un autre article)
- LSC Smart Connect - Smart Filament LED (warm white ambiance) - Art No. 970708 v1.0 Code barre : 871287142737 ===> OK !
- LSC Smart Connect - Smart Filament LED (warm white ambiance) - Art No. 970726 v1.0 Code barre : 8712879142720 ===> OK !

 

Mes sources

Il faut rendre hommage à ceux qui ont réussi à faire cela :
https://github.com/ct-Open-Source/tuya-convert

Respect !

 

 

 

ETAPE 1 : PREREQUIS

J'ai scrupuleusement respecté la gamme en évitant de faire mes tests sur ma carte micro SD où il y a déjà ma config openHAB :o)
Donc j'ai retiré ma carte micro SD openHAB 16 Go et en ai utilisé une autre de 16 Go pour les opérations qui vont suivre.

  • Carte micro SD 16 Go
  • Votre Raspberry pi
  • La version de Raspbian (la version Lite suffit pour ce que l'on va faire)
  • Votre smartphone de type Android pour se connecter à Tasmota et se connecter à votre réseau WIFI
    Aillez à dispo un logiciel type "Network scanner" pour analyser vos connexions IP sur votre réseau.
    (https://play.google.com/store/apps/details?id=com.myprog.netscan&hl=fr)

    Nota : Utiliser IOS est proscrit : cela ne marche pas !

 

 

ETAPE 2 : PREPARATION DE VOTRE RASPBERRY PI

  • Télécharger la version Lite de Raspbian ici : https://www.raspberrypi.org/downloads/raspbian/
  • Extraire le fichier img contenu dans le zip
  • Utiliser ensuite l'utilitaire Etcher https://www.balena.io/etcher/ pour installer l'image sur la micro SD
    Après installation de l'outil, positionner votre carte micro SD et sélectionnez votre fichier de type img précédemment dézippé
    Cette opération prend 4 à 5 minutes.
  • Une fois l'image installée sur la micro SD il faut positionner le ssh pour pouvoir communiquer avec le raspberry et un ordinateur de votre réseau :
    A la racine de votre support micro SD (J:\ dans mon cas) créer un fichier vide ayant pour nom "ssh"

tuya3

  • A présent, placez la carte micro SD dans votre raspberry et démarrez le (reliez-le au réseau via un câble RJ45)

 

 

ETAPE 3 : CONFIGURATION DE VOTRE RASPBERRY PI

  • A présent utilisez le logiciel PUTTY (disponible ici : https://www.putty.org/ )que vous allez installer sur votre ordinateur ; il permettra de communiquer avec votre raspberry qui est à présent démarré. Recherchez via votre routeur l'adresse IP de votre rapberry et connectez-vous avec cet IP via PUTTY
  • Quand la mire de login apparait, saissiez : "pi" et le password "raspberry"
  • Une des premières choses à faire une fois connecté est d'étendre le système à toute la carte miccro SD via la commande :
sudo raspi-config

 

 Puis sélectionner "Advanced Options" et "Expand Filesystem" ; Sélectionner "Finish" puis "Yes" (pour rebooter)

  • Se reconnecter via PUTTY via les mêmes login et password que précédement et faire les mises à jour du system en faisant :
sudo apt-get update


Attendre les mises à jour puis

sudo apt-get dist-upgrade


N'oubliez pas de valider par "Y" quand c'est demandé et faire un "q" pour quitter une info texte.
L'installation prend environ 6/8 minutes.

  • A présent on installe le manager de réseau et le client git pour la connexion à Github qui suit. (valider par Y les installations à chaque fois)
sudo apt-get install network-manager


puis

sudo apt install git

 

 


Attendre la fin de l'installation.

tuya4

 

 

ETAPE 4 : INSTALLATION DE TUYA-CONVERT

  •  Toujours dans votre fenêtre PUTTY, apez la commande suivante :
git clone https://github.com/ct-Open-Source/tuya-convert

 

  •  Aller dans le répertoire tuya-convert via la commande :
cd tuya-convert

 

  • Lancez l'installation avec la commande :
./install_prereq.sh

 

 et attendre que l'installation se fasse...

 

 

ETAPE 5 : UTILISER TUYA-CONVERT POUR FLASHER AVEC TASMOTA

 

  • Lancer le flashing via la commande :
./start_flash.sh

 

 tuya5

  • Puis suivez le déroulement avec la saisie comme ci-dessous : (yes + y + y)

tuya6

 

A ce moment là ATTENTION !!!

  1. Connectez vous au reseau WIFI vtrust-flash comme précisé ci-dessus avec votre smartphone Android
  2. Alimentez vote ampoule au 220 V avec un interrupteur (c'est plus pratique pour appairer)
  3. Quand ceci est fait, allumez votre lampe (normalement par défaut elle s'allume fixe ou clignotte). Il faut être certain que votre interrupteur laisse bien passer le courant.
    Sinon faites ceci :

    Le flashing qui est l'étape jsute après va se faire automatiquement comme ci-dessous à la condition de déclencher l'appairage via cette méthode si votre lampe lampe ne clignotte pas vite !!

    ETEINDRE ET RALLUMER 3 FOIS LA LAMPE (EN LAISANT UN PETIT TEMPS DE 1s ENTRE CHAQUE ACTION)

  4. Vous êtes prêts

Appuyez sur la touche Entrée du Putty de votre ordinateur.

Soyez patitn la détection ne se fait pas rapidement...

Ainsi parfois c'est à la fin de la 3ieme fois qu'il il va détecter la lampe et engager le flashing.

Si cela ne se fait pas : pas de problème, ne stressez pas et réessayez (A la question "Do you want to flash another device" répondez par y et retentez l'étape d'appairage.
(Personnellement j'ai dû m'y prendre à 3 fois avant de trouver l'astuce et d'y parvenir !)

En cas de succès cela donne ceci :

tuya9

 Taper "N" pour quitter.

Un tout petit peu d'explications :
- Le firmware d'orignie a été stocké dans le fichier : firmware-d32da2.bin dans mon cas
Pour faire une retour arrière en cas de problème, il suffit de taper la commande : curl http://10.42.42.42/undo
- Le flashage en Tasmota est préparé mais non réalisé. Par défaut une version est proposée. Je vous conseille vivement de l'utiliser dans une premier temps !

 Flasher en Tasmota.
Il suffit à présent de taper ceci dans Putty :

curl http://10.42.42.42/flash3

 
tuya8

 

  • Déconnectez vous de votre reseau WIFI vtrust-flash de votre smartphone et placez vous sur le réseau nommé "tasmota-xxxx" (tasmota-3490 chez moi ou sonoff-xxxx)
  • Via un navigateur de votre smartphone tapez l'url suivante : 192.168.4.1 et patientez un peu le temps que la page s'affiche.

Vous voilà dans Tasmota !!

Screenshot 20191121 221111

  • Dans AP1 SSid() : placer votre nom de réseau WIFI
    Dans AP1 Password : Placez le password de votre réseau WIFI
    (AP2 et AP2 Password sont pour un reseau secondaire par exemple et donc non obligatoire)
    Sauvegardez ! (Save)

> Tasmota va redémarrer. Patientez un peu ;o)

  • Quittez le reseau Tasmota-xxxx et aller sur votre propre réseau défini précédement.
  • Cherchez l'adresse IP de votre lampe via l'outil "Network scanner" … et via un navigateur sur votre ordinateur ou smartphone qui a accès à votre réseau WIFI, vous accédez à la console Tasmota définitive en tapant l'URL de la lampe !

L'étape de Flashing en Tasmota via l'outil Tuya-Convert est terminée !

 

ETAPE 6 : LA CONFIGURATION DANS TASMOTA

 

Notez qu'à chaque reboot de Tasmota il faut parfois patienter entre 30s. Si c'est plus, couper l'alimentation de votre lampe et rallumer (la lampe ne s'allume pas mais cela permet au process de redemarrer)
Donc ne stressez pas, Tasmota va redémarrer quoiqu'il arrive ! :o)

 

  • Aller dans "Configuration" puis "Configure Other"
    Remplir les champs avec le template qui convient à votre lampe.
    Dans mon cas :

{"NAME":"LSC-Filam-Big","GPIO":[0,0,0,0,0,0,0,0,38,0,37,0,0],"FLAG":0,"BASE":18}

Adaptez suivant votre modèle avec le template qui lui convient : https://blakadder.github.io/templates/lsc_smart_connect_filament.html
> La consequence est que le panel de Tasmota sera adapté à votre modèle de lampe (avec un toggle ON/OF, + de Cold / Warm ; + de Dark ou Bright...) etc...

Sélectionnez la coche "Activate", selectionnez "MQTT"
Changez le nom de votre Module generic en changeant le "Friendly name" par exempel en "TuyaLampe1" par exemple. Je vous conseille de garder le même nom que votre topic MQTT.

Sauvegardez et Tasmota reboot.

A PRESENT SUIVANT VOTRE LOGICIEL DE DOMOTIQUE IL PEUT VOUS FALLOIR ADAPTER UN PEU.: La démarche qui suit est pour de l'openHAB en MQTT...    :o)

  • Ensuite il est important de configurer la connexion MQTT en allant dans : "Configuration" "Configure MQTT" (définissez votre host et port , user et password MQTT mais aussi le topic que vous allez utiliser dans les objets MQTT de votre lampe dans openHAB = "Friendly name" défini ci-dessus)
  • Pour terminer je vous conseille de faire une mise à jour de Tasmota en allant dans "Firmware upgrade"

De de saisir ceci :  http://thehackbox.org/tasmota/sonoff-FR.bin Ainsi vous aurez la dernière version française de Tasmota.
Si vous voulez la dernière version en anglais alors positionnez ceci : http://thehackbox.org/tasmota/sonoff.bin

 

ETAPE 7 :  La configuration dans openHAB

 

Nous considérons ici que vous avez déjà paramétré la configuration MQTT avec le broker etc...
Voici un exemple d'implémentation.
Dans mon cas un bouton BB4C98 en 433 Mhz déclenche la lampe en passant par Un Sonoff RF Bridge qui est relié en MQTT aussi via Tasmota..

mqtt.things

Bridge mqtt:broker:embedded-mqtt-broker "MQTT Broker" [ host="192.168.0.75", port=1883, secure=false, username="monuser", password="monpassword" ]
{
    Thing mqtt:topic:TuyaLampe1 "Tuya Lampe 1" @ "Dans une jolie piece"
    {
        Channels:
        Type switch : TuyaLampe1Switch    "Tuya Lampe 1" [ stateTopic="stat/TuyaLampe1/POWER", commandTopic="cmnd/TuyaLampe1/POWER",postCommand=true,on="ON",off="OFF" ]
        Type number : TuyaLampe1rssi      "WiFi Signal Strength" [ stateTopic="tele/TuyaLampe1/STATE", transformationPattern="JSONPATH:$.Wifi.RSSI" ]
    }
}

eclairages.item

Switch TuyaLampe_1 "Tuya Lampe 1"  { channel="mqtt:topic:TuyaLampe1:TuyaLampe1Switch" }
eclairages.rules
rule "SONOFF BRIDGE"
when
    Item Sonoff_RF_Received_Data changed
then
    if (Sonoff_RF_Received_Data.state == NULL)
    {
        logInfo("rule SONOFF BRIDGE", "Item is null, cancelling...")
        return;
    } 
    var rfData = Sonoff_RF_Received_Data.state.toString
    logInfo("rule SONOFF BRIDGE", "Incoming RF code: " + rfData)
        switch (rfData)
        {  
            case "BB4C98":
            {
                logInfo("rule SONOFF BRIDGE", "BOUTON B de la télecommande pocket à 4 boutons déclenché...")
                val mqttActions=getActions("mqtt","mqtt:broker:embedded-mqtt-broker")
                if (TuyaLampe_1.state == ON)
                {
                    mqttActions.publishMQTT("cmnd/TuyaLampe1/POWER","OFF")
                }
                else
                {
                    mqttActions.publishMQTT("cmnd/TuyaLampe1/POWER","ON")
                }
                
                // Reset Last Received Code
                rfData=""
                Sonoff_RF_Received_Data.postUpdate(rfData)
            }
        }
end

 

 

En espérant que cet article vous a plu !
Have Fun !

 

 

Commentaires   
0 # Ampoule LED multicolore 9 WBoucher 31-01-2020 09:21
Avez-vous trouvé une solution pour flasher ces lampe sous MQTT ?
Répondre | Répondre en citant | Citer
0 # Ampoule LED multicolore 9 WEditor 31-01-2020 10:27
Bonjour,
Oui il y a une solution pour utiliser ces lampes sous MQTT. Ce n'est pas la méthode décrite ici qui passe pas du flashage.
En fait nous allons nous baser sur un process (nodejs) qui va collecter et traiter les échanges.
Je prépare un tutoriel à ce sujet et l'aurai fini d'ici quelques jours.
Répondre | Répondre en citant | Citer
Ajouter un Commentaire