Как да flash-нем Sonoff или всяко друго ESP8266 устройство

Здравейте! Днес ще ви покажа как от евтино китайско устройство като Sonoff Basic да си направите нещо доста добро.

В тази статия и видео ще покрия софтуерната част на нещата, като хардуерната е по-специфична според целта, която исктаме са постигнем и затова по този въпрос ще има други постове и видеа.

Прескочи към урока

Какви са вариантите?

Според вашите цели и устройствата, които използвате в ежедневието си, е добре да подберете внимателно какъв софтуер да използвате. Повечето уроци разглеждат един вариант и до там. В тази статия ще разгледаме няколко. Всички те са безплатни и с отворен код.

Tasmota

Tasmota работи с голям набор от продукти (вероятно най-голям) и това е една от причините, поради които е сред най-използваните решения. Както и други firmware-и, с Tasmota можете да програмирате устройството си да прави каквото си искате. Това, което откроява Tasmota от останалите е може би най-широката гама от сензори и устройства, които се поддържат, както и многото материал по използването ѝ.

Tasmota поддържа MQTT, HTTP, Serial и KNX но най-често, тя бива използвана с MQTT or HTTP. Също така поддържа и безжични ъпдейти (OTA Updates).

MQTT е ISO стандартизиран publish-subscribe-based (Публикуване, Абониране базиран) протокол за комуникация. За да използвате MQTT е нужен сътвър, който да е т. нар MQTT Broker, който вашите MQTT устройства (клиенти) използват като свързващият ги низ.

ESPurna

ESPurna е доста прилича на Tasmota - С отворен код е (Оpen Source), поддържа широка гама от продукти, позволява много конфигуриране и поддържа MQTT и HTTP. По-добра е за силната си поддръжка на REST, има по-добър Web UI и е по-лесна за интеграция с Home Assistant. Ъпдейти могат да се правят безжично (OTA).

Homekit Accessory Architect

Homekit Accessory Architect (преди познат като RavenCore) е firmware с отворен код (Open Source), който поддържа само и единствено HomeKit. Това го прави несъвметим с Homeassistant, OpenHab, Alexa и др. и работи само с устройства поддържащи HomeKit - iPhone, iPad, Apple Watche, HomePod, Apple TV и др. Обновяването може да става безжично (OTA).

Ами ако съм с Android?

Alexa and Google Home

За Андроид потребители, по мое мнение имате 2 варианта (iOS потребителите могат да пропуснат тази част):

  1. Amazon’s Alexa
  2. Google Assistant
  3. HomeAssistant/OpenHab

Което и от горните да желаете, най-добре според мен става с OpenHAB или HomeAssistant. OpenHAB поддържа повче от 200 технологии и системи и хиляди устройства.

Аз бих го направил е с OpenHAB/HomeAssistant сървър работещ заедно с MQTT Broker. Свързвайки всички MQTT устройства към този MQTT Boker и централизираната ни система. Впоследствие това позволява много голяма свобода за автоматизации, скриптове и нови устройства, както и възможността да се свърже с Google Assistant, Amazon Alexa, дори и HomeKit.

За да работи всяко от тези ви е нужен хъб - Amazon Echo, Amazon Echo Dot или съвместим с Alexa говорител или др, или Google Home / Google Home mini, според зависи кое от тези сте избрали да използвате.

Разбира се, има и “трето” решения. Можете да изградите своя система, която да работи посредством HTTP или MQTT, но така трябва да преоткривате топлата вода - защита, стабилност и др, така като не искате друг освен вас да ви управлява устройствата.

Защо реших да изоплзвам HomeKit

Nice HomeKit image by Apple

HomeKit е networking протокол поддържан от Apple и всички техни устройства. За жалост, повечето устройства, сертифицирани да работят с HomeKit са доста скъпи.

Моите лични цели бяха да изградя своят “умен дом” около HomeKit и ето защо…

Slide from WWDC2017 session “What's New in HomeKit.” Image: Apple Slide from WWDC2017 session “What’s New in HomeKit.” | Image: Apple

Защитен е. Когато добавите устройство в профила си, то генерира уникален токен за всяко устройство, с което комуникира. По този начин сте сигурни, че само вие и вашият Home Hub (Apple TV / iPad / HomePod) управляват устройствата. От там насетне, комуникацията между вашето устройство и Home хъб-а Ви се извършва криптирано през iCloud. Без да има нужда от отворени портове към вътрешната Ви мрежа.

Вече имах наличен повечето хардуер. Вероятно и вие като мен, имате част от нужните за един умен дом неща, но аз съм надълбоко в Apple-ската екосистема- използвам iPhone, iPad, Apple Watch, Mac и други, като всички те работят с HomeKit. Също така разполагах в Apple TV, което е друга съществена част от HomeKit. Ако и Вие сте в същата позиция, HomeKit е най-добрият Ви вариант.

Както с Alexa и Google Home, ако искате да използвате HomeKit през интернет (извън домът ви) както и при Alexa и Google Home, Ви е нужен HomeKit хъб. Аз използвам Apple TV за тази цел, но също може те използвате iPad (който да е винаги зареден и свързан с домашният ви WiFi) или HomePod.

Важно предимство на HomeKit пред Google Home, Alexa и други е, че когато сте си вкъщи, дори да нямате интернет, HomeKit пак ще разботи, дори без Hub. Почити всички останали решения минават през облак, което при липса на интернет достъп ги прави недостъпни. По този начин също сте сигурно, че Вашите автоматизации ще работят без значение дали има интернет връзка, защото те се случват на локално ниво на HomeKit хъб-а.

Написах доста за това защо съм избрал HomeKit, защото смятам, че е важно да знаете какво целите и според това да прецените с какъв софтуер да продължите.


Да започваме

Може да вивите и по-лесният вариант на това как да си flash-нем устройството, дори с HomeKit (HAA).

Както по-горе уточних, аз ще използвам HAA (HomeKit Accessory Architect). Също така, ще показвам процедурата на Mac и някои неща може да се различават леко на Windows.

Препратки: JSON низове / Добавяне на устройство в HomeKit / Допълнителна настройка на HAA

Какво Ви е нужно:

  1. USB-to-Serial/TTL Adapter - Amazon / AliExpress
  2. Device
  3. Software

Аз ще използвам Sonoff Basic. Процедурата е сходна и за други устройства на Sonoff, Shelly и много други ESP8266 устройства.

За да Flash-нем устройството ще използваме FTDI to USB адаптер.

USB Serial - Sonoff
       GND -> GND
        TX -> RX
        RX -> TX
      3.3V -> 3V3

My helpful screenshot

След като свържете адаптера към компютъра си, е нужно да открием как да го достъпим:

ls /dev

Би трябвало да видите списък с устройства, дискове и др. Търсим нещо подобно на /dev/tty.usbserial Това е портът, който ще използваме, за да достъпваме ESP чипът.

Нещо важно, което е нужно да знаете е, че преди всяка команда, която изпращаме към чипът с TTL adapter-а е нужно да го рестартирате във flash режим. За да го стартирате във flash режим, след като го включите, задръжте бутона на у-вото през първите 4-5 секунди. За други устройства процедурата е същата, като “натискането на бутона” става свързвайки GPIO0 към Ground. (Точно това прави и бутонът на Sonoff Basic)

Erasing Memory

Изтрийте паметта на устройството:

esptool.py -p /dev/tty.usbserial erase_flash

След като можем да работим на чисто е време да изтеглим и софтуерът, който предстои да сложим.

Изтегляне на HAA

Изтеглете haaboot.bin, rboot.bin и blank_config.bin и ги сложете в папка HAA нa Desktop-а ви например.

Отворете папката, където сложихте изтеглените файлове:

cd ~/Desktop/HAA

Flash-нете устройството с HAABoot (важно е да сложите правилен порт, при мен е /dev/tty.usbserial):

esptool.py -p /dev/tty.usbserial --baud 115200 write_flash -fs 1MB -fm dout -ff 40m \
0x0 rboot.bin 0x1000 blank_config.bin 0x2000 haaboot.bin

Първоначална настройка

Сега можете да рестартирате устройството без да го вкарвате във flash режим и след това то само е влезе в т. нар. Access Point режим. Когато то е в AP режим, можете да се свържете с него през Wi-Fi, използвайки смартфон или компютър. След което, отворете нов таб в браузъра си и заредете следния адрес: http://192.168.4.1:4567

OTA Config

Конфигурационни JSON низове за HomeKit Accessory Architect:

Sonoff Basic / SV / Mini / TH / POW:

{"c":{"l":13,"b":[{"g":0,"t":5}]},"a":[{"0":{"r":[{"g":12}]},"1":{"r":[{"g":12,"v":1}]},"b":[{"g":0}]}]}

Shelly 1:

Реле с бутон

{"a":[{"0":{"r":[{"g":4}]},"1":{"r":[{"g":4,"v":1}]},"b":[{"g":5,"p":0},{"g":5,"t":0}]}]}

MagicHome RGB Controller

други устройства

След като сте свързали устройстово с вашата wifi мрежа и сте поставили правилният JSON, натиснете Save и изчакайте 5-6 минути, докато HAABoot инсталира последната версия на последната версия на софтуерът (HAA).

Поздравления, вече имате първото си смарт устройство flash-нато с Homekit Accessory Architect и поддръжка на HomeKit и OTA (безжични) ъпдейти , йей!

Добавяне на устройство в HomeKit

За да използвате устройството, е нужно да го добавите в Home приложението. За тази цел, отворете Home приложението на някое iOS устройство и натиснете бутонът + и след това Add Accessory. Насочете камерата си към някой от QR кодовете отдолу:

HomeKit Pairing QR

HomeKit Pairing Image

Ако виждате ново устройство, продължете със стъпките за добавяне. Ако все още не го виждате, най-вероятно устройството още се конфигурира. Ако можете да включвате и изключвате релето с бутона, значи устройството е готово. След успешно добавяне на устройството, негояит лед ще светне за няколко секунди.

Ако устройството не излиза от AP режим, то или не може да се свърже с wifi мрежата Ви или имате грешки в JSON низът. Може да го проверите тук.

Сега след като имате новото си HomeKit устройство, можете да го достъпвате в рамките на домашната си мрежа дори и без интернет. За да го достъпвате от други места през интернет, е нужно да имате HomeKit хъб.

Допълнителна настройка на HAA

Ако използвате Sonoff Basic, най-вероятно направеното до тук ще е достатъчно. За повече конфигуриране, което в някои ситуации е наложително, има доста варианти.

За да влезете в режим за настройка, трябва бързо да включите и изключите релето (физически с бутонът или през Home приложението) 8 пъти. След това, ако е у-вото е свързано с мрежата Ви, можете да го достъпите на неговият IP адрес (порт 4567) или hostname, който е същият като името по подразбиране, което устройството е получило.

например: HAA-123AB -> http://haa-123AB.lan:4567 или http://haa-123ab.local:4567

Повече информация за опциите и др настройки на проекта, може да откриете в wiki-то на HAA.

Flash-ването на устройството следвайки интрукциите, Вие го правите на своя отговорност! Отварянето на някои устройства може да развали гаранцията им. Също така, flash-вайки друг софтуер, вие премахвате фабричният такъв и ако искате да го върнете обратно трябва да го flash-нете ръчно по подобен начин.

Абонирайте се за канала ми в YouTube, за да не пропуснете следващите ми Smart Home проекти и още полезни уроци.