blog.vyoralek.cz

Hackujeme WiFi zásuvky – vlastní firmware bez rozebrání

Dnešní článek bude poněkud více softwarový a ukážeme si jak přeflešovat WiFi zásuvky běžící na tuya cloudu bez nutnosti fyzického rozebrání. Ukážeme si navíc hned dva firmware – Sonoff-Tasmota a ESPHome.

🎙 Poslední aktualizace článku 29.12.2019. Pokud najdete nějaké rozdíly v aktuálním stavu, dejte vědět v komentářích, díky.

🇬🇧 This article is also available in English on my second blog lovetechstuff.com

Co je tuya-convert?

Michael Steigerwald, zakladatel německého startupu VTRUST díky reverznímu inženýrství vypátral, jak čínská firma tuya provádí vzdálenou aktualizaci firmware na jednotlivých zařízeních – tuya je aktuálně jedním z největších hráčů na poli IoT a dodává své řešení pro více jak 10tisíc výrobců.

Michaela to přivedlo k myšlence použít tento způsob vzdálené aktualizace pro nahrání vlastního firmware mimo cloud – v principu jde o nahrání firmware bez nutnosti zařízení rozebírat.

Tuya-convert je sada python skriptů, jejichž cílem je nasimulovat tuya cloud.

💡Je vhodné upozornit, že tuya-convert není rozhodně uživatelsky vymazlená aplikace a v případě problémů se můžete hodně zapotit 😀. Nicméně výsledek bez nutnosti fyzického rozebrání zařízení stojí za to.

Nyní už tak víme co bude naším cílem a pojďme se podívat na celý postup, který si můžeme rozdělit na části:

  1. Příprava a instalace tuya-convert
  2. Příprava alternativního firmware
  3. Podstrčení alternativního firmware pomocí tuya-convert
  4. Finální ladění

🥁 Mějte na paměti, že při nahrávání může dojít k nečekaným problémům, které může způsobit nefukčnost zařízení kam firmware nahráváte – tzv. zcihlení a bude nutné zařízení fyzicky rozebrat.

🥁V současné chvíli není možné přefleshovat zařízení, které obsahuje originální firmware verze 1.0.5. Před tím než začnete s fleshováním proto neprovádějte spojení s aplikací výrobce – je dost možné, že se v tomto případě aktualizace v pozadí provede.

1. Příprava a instalace tuya-convert

Pro instalaci tuya-convert budeme potřebovat počítač s operačním systémem Linux a ideálně kombinací ethernetu + WiFi popř dvou WiFi zařízení.

Jako ideální se jeví jeden z nejrozšířenějších minipočítačů Raspberry Pi 3B+ (pokud nemáte pak na Alza nebo AliExpress), popř. i starší verze bez plus.

My si návod dnes ozvláštníme a podíváme se na drobně složitější postup v případě použití Armbian OS se základní deskou NanoPi M4 (nedávno jsem sepsal recenzi, k dostání na AliExpressu).

💡Můžete použít minipočítač co už máte např. na HomeAssistant, ale doporučuju v tomhle případě si připravit separátní SD kartu a nainstalovat čistý nový systém jen pro účely tuya-convert.

Instalace operačního systému – Armbian OS

Instalace bude poměrně přímočará a rychlá, jelikož můžeme použít předpřipravených image (obrazů) pro NanoPi M4.


🕹Vsuvka: Použití Ubuntu

Pokud už z jakéhokoliv důvodu potřebujete nebo chcete použít Ubuntu dostanete při spuštění tuya-convert nejspíše následující chybu:

dnsmasq: failed to create listening socket for port 53: Address already in use

Ještě před spuštěním tuya-convert je potřeba zavolat zastavení služby běžící na stejném portu jako potřebný dnsmasq:

sudo systemctl stop systemd-resolved

Já nejprve zkoušel instalaci s Ubuntu, ale doporučuji zvolit tentokráte raději Debian. Vyhnete se tak výše popsanému problému s dnsmasq.

Diskové image jsou k dispozici na webu Armbianu a stáhněte si tedy verzi Armbian Stretch (obsahuje Debian).

Pro nahrání image na SD kartu použijeme jako obvykle aplikaci Etcher.

Po nastartování z SD karty použijeme přihlášení root / 1234 a následně budeme muset heslo změnit dle naší libosti.

Provedeme aktualizaci všech balíčků (apt update && apt upgrade) a zapneme si ssh v utilitě armbian-config.

Instalace tuya-convert repositáře

Tím máme základní systém připravený a můžeme se vrhnout do naklonování tuya-convert repozitáře a spuštění instalace potřebných balíčků:

git clone https://github.com/ct-Open-Source/tuya-convert
cd tuya-convert
./install_prereq.sh

Instalace by měla skončit s následujícími řádky:

Installing collected packages: paho-mqtt, pyaes, tornado, sslpsk
Successfully installed paho-mqtt-1.4.0 pyaes-1.6.1 sslpsk-1.0.0 tornado-6.0.3
Looking in indexes: https://pypi.org/simple, https://www.piwheels.org/simple
Collecting git+https://github.com/M4dmartig4n/sslpsk.git
  Cloning https://github.com/M4dmartig4n/sslpsk.git to /tmp/pip-req-build-UMSiZZ
Requirement already satisfied: pycrypto in /usr/lib/python2.7/dist-packages (2.6.1)
Building wheels for collected packages: sslpsk
  Running setup.py bdist_wheel for sslpsk ... done
  Stored in directory: /tmp/pip-ephem-wheel-cache-O8KnG9/wheels/c8/51/1e/5094f34953a89ff37e7a2b3a6327fc9364e532ccb8be3bf39c
Successfully built sslpsk
Installing collected packages: sslpsk
Successfully installed sslpsk-1.0.0
Ready to start upgrade

🕹Možný problém – ImportError: No module named Crypto.Cipher

Pokud jsem po těchto krocích tuya-convert spustil, tak vše vypadalo vpořádku, ale proces nahrávání nefungoval. Podíval jsem se proto do logů a v nich našel hlášku o chybějící knihovně Crypto.Cipher. Netuším tedy, zda je to potřeba instalovat jen v Armbianu, nicméně pokud byste se s hláškou setkali tak je to možné vyřešit pomocí:

apt-get install python3-dev
pip install pycrypto

Nyní máme tuya-convert připravený a můžeme se vrhnout na přípravu firmware.

2.Příprava alternativního firmware

Možnosti máme už v dnešní době povícero, ale jak už zřejmě pravidelní čtenáři blogu tuší, já se zaměřím na dvě – Sonoff-Tasmota a ESPHome.

Jako produkt pro přeflešování jsem si vybral Blitzwolf BW-SHP2 (k dostání na AliExpress, Banggood), což je tentýž produkt jako Koogeek KLSP1 (AliExpress) a nebo Gosund SP1 .. a zřejmě nějaké další.

Produkty jsou fyzicky vyrobeny v číně firmou tyua a liší se jen drobně na základě požadavků prodejců, kteří je pak dále distribují pod svými značkami.

Velkou výhodou produktu je cena – cca. $13 (300Kč). Zásadní nevýhodou, ale může být německý konektor do zásuvky – rozdíly mezi německou a francouzskou verzí jsem sepsal v článku.

Nicméně postup přípravy firmware i nahrávání přes tyua-convert by měl být velice podobný.

Sonoff-Tasmota

Pro Sonoff-Tasmota není potřeba dělat nějaké speciální přípravy. Výhodou může být, že aktuálně je základní Sonoff-Basic varianta obsažena v tuya-convert a není potřeba tedy nic stahovat. Samotné nastavení pro zmiňované zásuvky si ukážeme v poslední části.

ESPHome

ESPHome má poněkud odlišnou filozofii. Namísto poměrně obecného image je potřeba zkompilovat image specifickou pro náš produkt. Je potřeba se tedy už nyní podívat na konfiguraci.

Na postup instalace ESPHome a základní práci se prosím koukněte do staršího článku.

Nazačátek doporučuji udělat něco podobného jako Sonoff-Basic, tedy úplně základní firmware ještě bez dalších funkcionalit.

Pro zmiňované zásuvky by nám měla stačit následující konfigurace:

esphome:
  name: blitzwolf01
  platform: ESP8266
  board: esp8285

wifi:
  ssid: '<wifi_nazev>'
  password: '<wifi_heslo>'

logger:

web_server:
  port: 80

api:

ota:

Konfiguraci v dashboardu ESPHome zkontrolujeme a pomocí ikonky tří teček dáme kompilaci. Výsledný soubor si pak přeneseme na minipočítač do adresáře files v tuya-convert.

Další funkcionality si přidáme v poslední kapitole.

3. Podstrčení alternativního firmware pomocí tuya-convert

Konečně tady máme kapitolu, kde využijeme tyua-convert naplno.

Aplikaci spustíme pomocí ./start_flash.sh a objeví se nám obrazovka s požadavkem na napsání slova yes a potvrzení Enterem. Jakmile to uděláme tuya-convert nastartuje hned několik služeb:

  • WiFi access point s názvem vtrust-flash
  • Webový server pro HTTP komunikaci
  • MQTT server Mosqutto pro MQTT komunikaci
======================================================
TUYA-CONVERT

https://github.com/ct-Open-Source/tuya-convert
... 
... CAN NOT be held accountable for ANY DAMAGE or LOSS OF FUNCTIONALITY by typing yes + Enter 

yes
======================================================
  Starting AP in a screen.
  Stopping any apache web server
  Starting web server in a screen
  Starting Mosquitto in a screen
  Starting PSK frontend in a screen

Nyní je potřeba udělat dva další kroky:

  1. připojit se z jakéhokoliv zařízení podporující WiFi na nově vytvořený AP point s názvem vtrush-flash – ideální je použít mobilní telefon. Heslo do sítě je flashmeifyoucan. – v nejnovější verzi bylo heslo na WiFi odstraněno
  2. zapojit zařízení, které chcete přefleshovat do zásuvky a inicializovat párovací mód – jelikož zařízení nebylo ještě použito mělo by naskočit v tomto režimu automaticky. Poznáte to to podle rychle blikající modré diody.

💡K prvnímu kroku mám skvělý update – existuje řešení v podobě Arduino projektu, které nahrazuje nutnost připojovat například mobilní telefon do AP pointu vtrush-flash – podobnosti jsem sepsal do samostatného článku.

Jakmile máte tyto dva body hotové můžete zmáčknout enter a proces se posune do dalšího kroku:

======================================================
Starting smart config pairing procedure
Waiting for the device to install the intermediate firmware
Put device in EZ config mode (blinking fast)
Sending SSID                  vtrust-flash
Sending wifiPassword
Sending token                 00000000
Sending secret                0101
................
SmartConfig complete.
Resending SmartConfig Packets

Nyní jste se dostali do nejproblematičtějšího bodu – alespoň u mě to tak bylo. Pro lepší přehled jestli proces pokračuje doporučuju se připojit ještě přes jednu konzoli na minipočítač a spustit si výpis logu:

cd tuya-convert/scripts
tail -f smarthack-wifi.log

Najdete zde veškeré informace o činnosti nově vytvořeného WiFi AP a jakmile se fleshované zařízení objeví v tomto logu máte napůl vyhráno.

Na začátku bude v logu pouze inicializace:

root@nanopim4:tuya-convert/scripts ‹master›# tail -f smarthack-wifi.log
Creating new /etc/dnsmasq.conf...
Writing hostapd config file...
Configuring AP interface...
Applying iptables rules...
Starting DNSMASQ server...
Starting AP on wlan0 in screen terminal...
Configuration file: /etc/hostapd/hostapd.conf
Using interface wlan0 with hwaddr b0:f1:ec:65:xx:xx and ssid "vtrust-flash"
wlan0: interface state UNINITIALIZED->ENABLED
wlan0: AP-ENABLED

Jakmile se připojíte mobilní telefonem pak by se v logu o tom měla objevit informace:

wlan0: STA f4:31:c3:2b:xx:xx IEEE 802.11: associated
wlan0: AP-STA-CONNECTED f4:31:c3:2b:xx:xx
wlan0: STA f4:31:c3:2b:xx:xx RADIUS: starting accounting session 20CEAEEFCA602DA5
wlan0: STA f4:31:c3:2b:xx:xx WPA: pairwise key handshake completed (RSN)

… a konečně nakonec pokud se připojí i flashované zařízení:

wlan0: STA dc:4f:22:fe:xx:xx IEEE 802.11: associated
wlan0: AP-STA-CONNECTED dc:4f:22:fe:xx:xx

💡Pokud zařízení v logu nevídíte pak se mi osvědčilo vypínat tuya-convert a zapnout znovu. Bohužel kromě Blitzwolf to nebylo vždy napoprvé a moc nerozumím proč.

Po navázání spojení se začne automaticky provádět záloha stávajícího firmware flashovaného zařízení – můžete se tak teoreticky vrátit později zpět na původní firmware. Soubor je uložen do kořenového adresáře tuya-convert.

IoT-device is online with ip 10.42.42.42
Fetching firmware backup
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100 1024k  100 1024k    0     0  26642      0  0:00:39  0:00:39 --:--:-- 24706
curl: Saved to filename 'firmware-c49c5e.bin'
======================================================
Getting Info from IoT-device
VTRUST-FLASH 1.1
(c) VTRUST GMBH https://www.vtrust.de/35c3/
READ FLASH: http://10.42.42.42/backup
ChipID: c49c5e
MAC: 60:01:94:C4:xx:xx
BootVersion: 4
BootMode: normal
FlashMode: 1M DOUT @ 40MHz
FlashChipId: 144051
FlashChipRealSize: 1024K
Active Userspace: user2 0x81000

======================================================
Please make sure to note the correct SPI flash mode!
Installing an alternative firmware with the wrong flash mode will leave the ESP unable to boot!

Next steps:
1. To go back to the orginal software
   # curl http://10.42.42.42/undo

2. Be sure the conversion software runs in user2
   # curl http://10.42.42.42/flash2

3. Flash a third party firmware to the device
BE SURE THE FIRMWARE FITS THE DEVICE AND USES THE CORRECT FLASH MODE!
MAXIMUM SIZE IS 512KB
put or link it to ./files/thirdparty.bin
A basic build of Sonoff-Tasmota v6.5.0 is already included in this repository.
   # curl http://10.42.42.42/flash3
Alternatively let the device download and flash a file via HTTP:
   # curl http://10.42.42.42/flashURL?url=http://10.42.42.1/files/thirdparty.bin

Pokud jste se dostali až sem, tak zbývá poslední krok. Tím je nahrání alternativního firmware.

V případě Sonoff-Tasmota v základní konfiguraci Sonoff-Basic zadáme příkaz:

curl http://10.42.42.42/flash3

Pokud chceme rovnou nahrát připravený ESPHome firmware pak změníme symbolický link thirdparty.bin, aby neukazoval na sonoff-basic.bin, ale náš firmware

Proces nahrání pak spustíme příkazem:

curl http://10.42.42.42/flashURL?url=http://10.42.42.1/files/thirdparty.bin

Na obrazovce se zobrazí informace, že firmware bude nahrát a poté bude zařízení automaticky restartováno.

4. Finální ladění

Ukážeme si opět dvě možnosti. První pro Sonoff-Tasmota a druhou pro ESPHome.

Sonoff-Tasmota

Po přeflešování bychom ve webovém rozhraní Tasmoty měli vidět cca. následující úvodní obrazovku:

Pro zapnutí všech funkcionalit, které nám WiFi zásuvka nabízí je potřeba změnit konfiguraci a k tomu nám nejlépe poslouží Tasmota template.

Blitzwolf BW-SHP2

{"NAME":"BlitzWolf SHP","GPIO":[57,255,56,255,0,134,0,0,131,17,132,21,0],"FLAG":0,"BASE":45}

a nebo v případě novější verze 2.3 je potřeba nastavit jako Gosund SP1 v23, viz. níže.

Blitzwolf BW-SHP6recenze produktu

{"NAME":"BW-SHP6 10A","GPIO":[158,255,56,255,0,134,0,0,131,17,132,21,0],"FLAG":0,"BASE":45}

Koogeek KLSP1

{"NAME":"Koogeek-KLSP1","GPIO":[0,56,0,17,134,132,0,0,131,158,21,0,0],"FLAG":0,"BASE":18}

Gosund SP1

{"NAME":"Gosund SP1 v23","GPIO":[0,56,0,17,134,132,0,0,131,57,21,0,0],"FLAG":0,"BASE":55}

Po restartu bychom nově měli vidět i všechny informace týkající se aktuální a denní spotřeby.

ESPHome

U ESPHome bychom po úspěšném přefleshování měli v dashboardu vidět zařízení jako Online.

Zároveň si můžeme ověřit webového rozhraní přímo na zařízení:

Pro přidání podpory funkcionalit zásuvek je potřeba ještě zeditovat konfiguraci a přidat následující řádky:

binary_sensor:
  - platform: gpio
    id: button
    pin:
      number: GPIO3
      inverted: True
    on_press:
      - switch.toggle: fakebutton

switch:
  - platform: template
    name: "Blitzwolf SHP2 Přepínač"
    optimistic: true
    id: fakebutton
    turn_on_action:
    - switch.turn_on: relay
    - light.turn_on: led
    turn_off_action:
    - switch.turn_off: relay
    - light.turn_off: led
  - platform: gpio
    id: relay
    pin: GPIO14

output:
  - platform: esp8266_pwm
    id: pow_blue_led
    pin:
      number: GPIO1
      inverted: True

light:
  - platform: monochromatic
    output: pow_blue_led
    id: led

sensor:
  - platform: wifi_signal
    name: "Blitzwolf SHP2 WiFi Signál"
    update_interval: 60s
  - platform: uptime
    name: "Blitzwolf SHP2 Doba běhu"
  - platform: hlw8012
    sel_pin:
      number: GPIO12
      inverted: True
    cf_pin: GPIO04
    cf1_pin: GPIO05
    current_resistor: "0.0028"
    voltage_divider: "960"
    current:
      name: "Blitzwolf SHP2 Proud"
      unit_of_measurement: A
    voltage:
      name: "Blitzwolf SHP2 Napětí"
      unit_of_measurement: V
    power:
      name: "Blitzwolf SHP2 Příkon"
      unit_of_measurement: W
      id: power
    change_mode_every: 8
    update_interval: 10s
  - platform: total_daily_energy
    name: "Blitzwolf SHP2 Denní spotřeba"
    power_id: power
    unit_of_measurement: W

text_sensor:
  - platform: version
    name: "Blitzwolf SHP2 Verze firmware"

status_led:
  pin: GPIO13

time:
  - platform: sntp
    id: my_time

V logu pak po restartu můžeme vidět jednotlivé parametry:

[16:14:58][C][ota:128]:   Address: blitzwolf01.local:8266
[16:15:02][D][time.sntp:077]: Synchronized time: Wed Mar 27 16:15:30 2019
[16:15:13][D][sensor.hlw8012:084]: Got power=19.6W, voltage=240.4V
[16:15:15][D][api:546]: Client 'Home Assistant 0.90.1 (10.2.1.158)' connected successfully!
[16:15:23][D][sensor.hlw8012:084]: Got power=19.8W, voltage=240.2V

Musím přiznat, že tento článek byl jedním z nejnáročnějších, jelikož nebylo úplně přímočaré najít kombinace, které by fungovaly vzhledem k tomu co jsem měl k dispozici.

Nicméně i přesto a za pomocí tohoto článku byste mohli ušetřit nutnost rozebírat fyzicky zásuvky i vzhledem k tomu, že zrovna tyto zmíně používají poněkud netradiční šroubky s trojúhleníkovým tvarem.

Z nějakého důvodu se mě zajím nepodařilo přefleshovat ani jeden produkt Lonsonho, i přesto že by také měli používat tyua. Doporučuji se jim tedy zatím raději vyhnout.

Pokud máte jakékoliv zkušenosti s tyua-convert budu rád, když se s nimi podělíte v komentářích. Užitečné informace opět jako obvykle přidám rovnou do článku.

26 comments

Tato stránka používá Akismet k omezení spamu. Podívejte se, jak vaše data z komentářů zpracováváme..

  • Netušíte, jak vyresetovat krabičku hacklou do Tasmoty? Kokrétně Wifi dimmer Tuya.
    Povedl se mi hack dle návodu, pak jsem krabičku přiřadil do domácí sítě (SSID, heslo). Ale tam už ji nevidím, ani po restartu krabičky, routeru, všeho. IP scanner ji taky nevidí. Zkusil jem (dle rad z netu) podržet tlačítko vyp/zap 40 sekund. LED změnila barvu, takže asi nějaký reset proběhl, ale dál se nic neděje (krabička není v síti, ani sama nevysílá jako AP).

    Díky za případné tipy.

    A autorovi webu děkuji extra za všechny super články!
    Robert

  • Zdravím vás,

    posledních pár dnů zde čerpám zajímavé informace a děkuji za ně.

    Zajímalo by mě pár věcí:

    Zde https://github.com/arendst/Sonoff-Tasmota/wiki/Prerequisites#tasmota-firmware uvádí, že sonoff-basic.bin je základ (jak již z názvu vyplývá) a doporučují flashnout sonoff.bin. Znamená to tedy, že pouze v kroku flashování použiji toto?:
    curl http://10.42.42.42/flashURL?
    url=http://10.42.42.1/files/sonoff.bin
    Včera jsem nainstaloval Home Assistent a nyní zvažuji, zda používat Tasmotu nebo ESP. Posunuly se nějak vaše preference od doby, co jste psal tento článek?
    Lze Tuya convert repozitář instalovat i na Raspberry, resp. instaluje se stejně jak na Armbian? Asi hloupý dotaz, nějak to určitě jde, ale linux není moje parketa. 🙂

    Díky a zdravím
    Lukáš

    • Ano, příkaz na použití „vlastního“ sonoff.bin máte podle všeho správně 🙂
      Neposunuly, resp. kompletně už používám jen ESPHome bez jakýhkoliv problémů. Mohu doporučit i když ani s Tasmotou člověk nešlápne úplně vedle.
      Ano, na Rasbian by to aktuálně podle mě mohlo být už úplně stejné. Co si pamatuju autor vyřešil už v poslední verzi různé chování na Ubuntu vs. Debian – Rasbian je primárně založený na Debianu. Já popisoval více Ubuntu, které používám jako Armbian.

  • Zdravím,
    po instalaci všeho potřebného na RPi 3B+ a spuštění aplikace příkazem ./start_flash.sh, ta se spustí, ale…
    Ale, podle návodu zde bych měl vidět tento výpis:
    Starting AP in a screen
    Stopping any apache web server
    Starting web server in a screen
    Starting Mosquitto in a screen
    ale já vidím pouze ten první řádek, web server a mqtt se už nespustí.
    AP se vytvoří, v telefonu jej vidím, chci se k němu připojit, ale telefon se nepřipojí, pořád jen „načítání IP adresy“ a nic.
    Jestli jsem dobře pochopil návod, tak u mně je na prvním místě chyba, že se nespustí web server a mqtt.
    Pak taky vidím rozdíl v tom, že podle návodu by měla být síť zabezpečená, kdežto já ji mám otevřenou.
    Zásuvku jsem ještě nezapojoval, mám za to, že pokud se mi nepřipojí telefon, je zbytečné dělat cokoli dalšího.
    Jo, a instalace na RPi proběhla zdá se v pořádku, žádný error, žádný warning.
    Ten koncový výpis:
    „Successfully built paho-mqtt pyaes tornado
    Installing collected packages: paho-mqtt, pyaes, tornado
    Successfully installed paho-mqtt-1.4.0 pyaes-1.6.1 tornado-6.0.2
    Ready to start upgrade“
    mám stejný, byť možná trochu v jiném pořadí, ale položky zde popsané tam mám všechny.

    • Zkusil bych se podívat do adresáře scripts do všech logů, zda tam není něco užitečného. Zároveň pokud nestartuje web server je to možné zkusit spustit ručně pomocí scripts/fake-registration-server.py python Scriptu. Díky tomu zjistíte jestli vám něco nechybí v Python. Takhle bez jakékoliv chybové hlášky je to poměrně těžké něco poradit 🙁

      • Kdyby to pomohlo zde je výpis jednotlivých logů:

        smarthack-mqtt.log:

        1572377698: mosquitto version 1.5.7 starting
        1572377698: Using default config.
        1572377698: Opening ipv4 listen socket on port 1883.
        1572377698: Opening ipv6 listen socket on port 1883.
        1572377960: mosquitto version 1.5.7 starting
        1572377960: Using default config.
        1572377960: Opening ipv4 listen socket on port 1883.
        1572377960: Opening ipv6 listen socket on port 1883.

        smarthack-web.log:

        Listening on 10.42.42.1:80
        Listening on 10.42.42.1:80

        smarthack-wifi.log:

        Checking for network interface wlan0… Found.
        Attempting to stop wpa_supplicant
        Configuring AP interface…
        Error: Device for nexthop is not up.
        Starting DNSMASQ server…

        dnsmasq: failed to create listening socket for 10.42.42.1: Address already in use
        Starting AP on wlan0…
        Configuration file: hostapd.conf
        wlan0: Could not connect to kernel driver
        Using interface wlan0 with hwaddr b8:27:eb:xx:xx:xx and ssid „vtrust-flash“
        wlan0: interface state UNINITIALIZED->ENABLED
        wlan0: AP-ENABLED
        wlan0: AP-STA-CONNECTED dc:4f:22:xx:xx:xx
        Checking for network interface wlan0… Found.
        Attempting to stop wpa_supplicant
        Configuring AP interface…
        Error: Device for nexthop is not up.
        Starting DNSMASQ server…

        dnsmasq: failed to create listening socket for 10.42.42.1: Address already in use
        Starting AP on wlan0…
        Configuration file: hostapd.conf
        wlan0: Could not connect to kernel driver
        Using interface wlan0 with hwaddr b8:27:eb:xx:xx:xx and ssid „vtrust-flash“
        wlan0: interface state UNINITIALIZED->ENABLED
        wlan0: AP-ENABLED
        wlan0: AP-STA-CONNECTED dc:4f:22:xx:xx:xx
        wlan0: AP-STA-CONNECTED dc:0b:34:xx:xx:xx
        wlan0: AP-STA-DISCONNECTED dc:0b:34:xx:xx:xx

        smarthack-psk.log je prázdný.

        Děkuji za každou pomoc.

        • Nejzajímavějíší je ten smarthack-wifi.log.. obsahuje to dva podezřelé řádky dnsmasq: failed to create listening socket for 10.42.42.1: Address already in use a wlan0: Could not connect to kernel driverleč bohužel, stejné záznamy mám v logu i já, takže to není nic kritického. Zbytek už vypadá naprosto stejně.

          Máte MAC adresy toho zařízení s Tuyou a ESP8266? Vypadá, že se na tu WiFi připojil jen jeden, bylo by zajímavé vědět který i když to asi ničemu nepomůže.

          • Čtu Vaší odpověď a koukám do toho co jsem včera napsal.
            MAC: dc:0b:34:xx:xx:xx je adresa telefonu. To musel být pokus o připojení a ačkoli to vypadalo, že ne, tak pravděpodobně připojený byl.
            MAC: dc:4f:22:xx:xx:xx bude adresa Wemosu (teď u toho nejsem, nemám jak ověřit, ale nic jiného jsem nepřipojoval), čili se taky asi připojil, byť LED-ka stále blikala.
            Zásuvku jsem stále ještě nezapojoval. Jsem si říkal, že pokud nevyřeším tohle, tak další nemá cenu.

            Dotaz:
            V návodu píšete: „Pro lepší přehled jestli proces pokračuje doporučuju se připojit ještě přes jednu konzoli na minipočítač a spustit si výpis logu:“
            Ale já, když se spustí na RPi AP-čko, se už další konzolí na RPi připojit nemohu 🙁

            Prosba:
            Můžete editovat moje příspěvky? „Vyixujte“ mi prosím MAC adresy v mém příspěvku. Možná nikoho nezajímám, ale co kdyby.

          • Nastavte si SSH přístup – aplikace raspi-config a SSH se skrývá ve volbě Advanced Options a pak se můžete z počítače připojit kolikrát chcete – ve Windows např. pomocí aplikace Putty..
            MAC adresy jsem vám změnil.

          • Nelze už odpovědět na Váš dnešní poslední příspěvek (nemám tam volbu Reply), tak tedy odpovídám zde.
            SSH mám, jinak bych se přes PuTTy nepřipojil vůbec.
            Teda, takhle. SSH mám tak, že při vytváření obrazu jsem vložil prázdný soubor ssh do boot oddílu karty.
            Sice jsem četl, že SSH je pak třeba při prvním spojení povolit v raspi-config, taky jsem to tak vždy dělával, ale jelikož jsem zjistil, že i když to neudělám připojovat se můžu i nadále, měl jsem za to, že jen vložení souboru postačuje.
            OK, dnes večer bude další kolo. SSH povolím.
            Ale pořád tak nějak cítím, že v tomhle můj prvotní problém nevězí 🙁

          • A tak s tím prázdným souborem je to možné 🙂 A ano, zřejmě máte pravdu, problém to asi nevyřeší, ale už netuším co více udělat.

          • Druhou a ani další konzolou se k RPi v době kdy na ní běží AP pochopitelně připojit nemohu.
            Provedl jsem, už poněkolikáté, úplně čistou instalaci Raspbian Buster Lite, update, upgrade, instalace z Git-u a stále nic.
            Výsledek je pořád stejný, log je pořád stejný, dle něj se Wemos či telefon připojí, ačkoli to tak nevypadá.
            Zásuvku jsem zapojil do sítě, ale v logu se neobjeví.
            Tož já jsem skončil 🙁

          • Ethernet rozhraní by se vám tímto flashováním nemělo měnit, tj. pokud Raspberry píchnete do sítě přes kabel a připojíte se přes SSH s adresou eth0 rozhraní tak by to mělo jít.

          • Zrovna když jsem psal předchozí příspěvek tak mně napadlo, že dělám asi blbost.
            K RPi se připojuji via WiFi, pak když spustím start_flash.sh, WiFi se přepne na AP, je po spojení a rovněž zaděláno na problémy.
            No nic, zítra budou další pokusy.

          • Prosím smažte celou naší dosavadní debatu na toto téma, je totiž zcela zbytečná. Zato do článku dopiště upozornění pro mamlasy jako já, že RPi musí být připojeno via Ethernet!

            Teď už se zdá, že to funguje. Tuya-convert se spustí, Wemos se k WiFi vtrust-flash připojí, byť log je trochu jiný než ten Váš.
            Z Vašeho příkladu:
            wlan0: STA f4:31:c3:2b:xx:xx IEEE 802.11: associated
            wlan0: AP-STA-CONNECTED f4:31:c3:2b:xx:xx
            wlan0: STA f4:31:c3:2b:xx:xx RADIUS: starting accounting session 20CEAEEFCA602DA5
            wlan0: STA f4:31:c3:2b:xx:xx WPA: pairwise key handshake completed (RSN)

            mám pouze:
            wlan0: AP-STA-CONNECTED dc:4f:22:xx:xx:xx

            Nevím jestli je důležitý problém, anebo je to jen dáno rozdílnosti zařízení a OS na kterém je tuya-convert instalovaný.
            Mohl by jste mi ještě toto ověřit?

            U zásuvky nevím, já jsem si totiž koupil BlitzWolf BW-SHP6 a nevím, byť je to taky BlitzWolf, jestli je to taky Tuya produkt.
            Ale to je můj problém. Buď je ještě málo špatně anebo zrovna tato zásuvka není Tuya produkt.

            Děkuji za trpělivost.

          • … ještě doplním:

            Po zapojení zásuvky do sítě rychle bliká modrá LED což bude asi příznak, že je v nějakém tom flashovacím módu.

            V tomto kroku:

            Starting smart config pairing procedure
            Waiting for the device to install the intermediate firmware
            Put device in EZ config mode (blinking fast)
            Sending SSID vtrust-flash
            Sending wifiPassword
            Sending token 00000000
            Sending secret 0101
            …………….
            SmartConfig complete.
            Resending SmartConfig Packets

            blikat přestane a rozsvítí se červená LED

            Ale po deseti pokusech to skončí tímto výpisem:

            Device did not appear with the intermediate firmware
            Check the *.log files in the scripts folder
            Do you want to try flashing another device? [y/N]

          • Tak koukám, že nejsem sám:
            https://github.com/ct-Open-Source/tuya-convert/issues/166

            dále v diskuzi, někde 14. dubna, je informace, že zrovna tyto zásuvky jsou dodávané s už novým fw 🙁
            Snad se to klukům podaří obejít, nicméně už uběhlo půl roku a stále nic 🙁

            No, a taky tam vidím, že přecejenom je ten můj log při připojení Wemosu trochu neúplný 🙁

            No nic, mám nad čím přemýšlet 🙂

    • Ještě mě to nedalo a vzal jsem si čistou image Raspbianu a RPi3B+ abych měl přesně to co popisujete a byl jsem schopen podle tohoto návodu zařízení přeflešovat. Jediný zádrhel nastal v připojení k WiFi – nechápu proč, ale měl jsem stejný problém jako vy – síť se nepřipojila – naneštěstí 8 dní zpátky vznikl jeden malý projekt pro ESP82xx, který tohle řeší 🙂 – koukněte do nového článku a snad vám to pomůže – https://blog.vyoralek.cz/iot/hackujeme-wifi-zasuvky-2-esp82xx-jako-wifi-mustek/ .. S tímto jsem to už doklepal až do konce.

      • Díky moc, ale asi mi není dáno.
        Přečetl jsem si nový návod, tc_donor_mini.generic_1M.bin jsem nahrál do Wemos-u. K nahrávání bin souborů používám esphomeflasher, viz.: https://github.com/esphome/esphome-flasher . Doufám, že to nevadí. K nahrání dojde a dále mi to vypisuje následující log (důležitý je konec):
        Leaving…
        Hard Resetting…
        Done! Flashing is complete!

        Showing logs:
        [19:10:46]sl
        [19:10:46]
        [19:10:46]Connecting to vtrust-flash

        a modrá LED na Wemosu bliká = čeká na WiFi s názvem vtrust-flash

        V tomto okamžiku na RPi spustím tuya-convert příkazem ./start_flash.sh
        AP se vytvoří, např. v telefonu vidím vytvořenou síť vtrust-flash, ale Wemos se k ní nepřipojí – modrá LED stále bliká.

        Během psaní příspěvku mně napadla taková blbost: Na telefonu jsem vytvořil WiFi hotspot s názvem vtrust-flash, spustil a Wemos se připojil, modrá LED svítila trvale. Viz rovněž log z esphomeflasher:
        Showing logs:
        [19:10:46]sl
        [19:10:46]
        [19:10:46]Connecting to vtrust-flash
        [19:30:37]……………………………………………………………………………………………………………………………………………………….
        [19:30:37]WiFi connected
        [19:30:37]IP address:
        [19:30:37]192.168.43.99
        [19:30:37]Connected

        Tož nevím. RPi WiFi vtrust-flash vytvoří – vidím ji na telefonu, noťasu, atd.
        Wemos funguje – k vytvořenému hotspotu na mobilu s názvem vtrust-flash se připojí.
        Ale dohromady jaksi spolu nechtějí mluvit.

        PS: Když jste to na RPi zkoušel, který raspbian jste nahrával, já zkoušel Buster lite, pak Stretch lite a „plný“ Stretch.

        • Čistý Buster lite + nainstalování všech dostupných aktualizací + stažení nejnovější verze tuya-convert z Gitu + install_prereq.sh + start_flash.sh. Nic speciální. Je to fakt divný proč vám to nejede :/

          Jo a těch flasher to nevadí, že máte jiný. Ostatně sám jste si to potvrdil že to funguje díky tomu WiFi z mobilu.

  • To upozornění na nepřipojení do officiální aplikace TUYA bych dal ještě nad nadpis článku. Po všech peripetiích s Linuxem a zkoumání angl. psaných článků jsem došel až sem … bohužel pro mne … pozdě. Moc hezky zpracovaný příspěvek, díky

Odebírejte blog emailem

Mějte ihned informaci o novém článku ze světa technologií.