Использование Sonoff NSPanel с контроллером Wiren Board

From Wiren Board
This is the approved revision of this page, as well as being the most recent.
Sonoff NSPanel EU с прошивкой NXPanel

Общая информация

Пример работы NSPanel с контроллером Wiren Board

Sonoff NSPanel — это Wi-Fi панель с контроллером ESP32 и дисплеем Nextion. С базовой прошивкой она настраивается приложением eWLink и работает через облако производителя. В панели есть два реле и физические кнопки для управления нагрузкой.

Так как платформа открыта, то для неё существует несколько альтернативных прошивок, с помощью которых вы можете нарисовать свой интерфейс в редакторе NextionEditor или использовать заготовки авторов.

Мы попробовали несколько вариантов и остановились на свободной прошивке NXPanel, которую разработал и поддерживает пользователь @m-home (Mike) с форума OpenHub. Другие варианты смотрите по ссылке NSPanel Hacking.

Инструкции на этой странице проверены для европейской версии устройства, все действия вы производите на свой страх и риск.

Подготовка устройства

Прошивка Tasmota

Разъём для прошивки NSPanel

Убедитесь, что вы понимаете, что делаете и осознаёте риски! Для прошивки вам понадобится паяльник, программатор для ESP и навыки пайки. Если чего-то из этого у вас нет — поищите другие варианты решения вашей задачи.

Сперва мы прошьём панель прошивкой Tasmota, оригинальная инструкция доступна на сайте blakadder.com, но наша будет отличаться: мы возьмём другой файл nspanel.be и прошьём новую прошивку в дисплей.

Разберите панель, найдите разъём для прошивки:

  1. Припаяйте пять проводков и подключите четыре из них к программатору, а ID0 соедините с GND.
  2. Подключите программатор к компьютеру.
  3. Откройте Tasmota Web Installer и выберите в левом поле прошивку Development/Tasmota32 Sonoff-NSPanel (english)
  4. Прошейте устройство.

Хорошее видео о том, как разобрать и прошить NSPanel: Flashing the Sonoff NSPanel with Tasmota!. В отличие от автора видео, мы рекомендуем припаять провода к контактам панели.

Конфигурация и активация MQTT

Чтобы прошивка понимала, какие GPIO за что отвечают, а так же для калибровки аналоговых входов, запишите строку конфигурации:

  1. В веб-интерфейсе панели перейдите ConfigurationConfigure Other
  2. Вставьте строку в поле Template:
    {"NAME":"NSPanel","GPIO":[0,0,0,0,3872,0,0,0,0,0,32,0,0,0,0,225,0,480,224,1,0,0,0,33,0,0,0,0,0,0,0,0,0,0,4736,0],"FLAG":0,"BASE":1,"CMND":"ADCParam 2,11200,10000,3950 | Sleep 0 | BuzzerPWM 1"}
    
  3. Включите флажок MQTT enable.
  4. Сохраните настройки.

Настройка Wi-Fi и MQTT

После прошивки панель запустится и поднимет Wi-Fi точку доступа вида tasmota_XXXXXX:

  1. Подключитесь к ней.
  2. Зайдите на устройство по адресу http://http://192.168.4.1/
  3. Настройте подключение к тому же Wi-Fi роутеру, к которому подключён контроллер Wiren Board.
  4. Подключитесь к панели по новому адресу.

Чтобы в дальнейшем иметь доступ к веб-интерфейса устройству, рекомендуем задать статический IP-адрес, справочник по командам.

Настройте панель на отправку данных в MQTT-брокер контроллера:

  1. Перейдите ConfigurationConfigure MQTT.
  2. Заполните поля, в поле Host укажите IP-адрес контроллера, а User и Password можно не указывать — по умолчанию на контроллере Wiren Board MQTT-брокер не требует авторизации.
  3. Нажмите Save.

Прошивка NXPanel

Веб-консоль Tasmota

Теперь, когда у нас есть полный доступ к устройству, загрузим на него скрипт управления и новую прошивку дисплея. Все действия нужно производить в веб-интерфейсе устройства.

Загрузите в панель скрипт NXPanel:

  1. Скачайте на компьютер этот файл nxpanel.be.
  2. Перейдите ConsolesManage File system:
    • загрузите файл nxpanel.be, который вы скачали раньше;
    • создайте файл autoexec.be с единственной строкой: load("nxpanel.be").
  3. Перезагрузите панель.

Теперь прошейте дисплей пользовательской прошивкой:

  1. Перейдите ConsolesConsole
  2. Выполните команду:
    installnxpanel
    
  3. Дождитесь окончания прошивки.

Работа с панелью

Представление Sonoff NSPanel с прошивкой NXPanel в контроллере Wiren Board

Принцип работы

Устройство запрашивает нужные ей страницы, вы их формируете, отправляете ему, а оно их отрисовывает. Если на панели нажали кнопку или изменили другой параметр — устройство пришлёт сообщение с идентификаторами панели и изменённого параметра.

MQTT-топики:

  1. tele/deviceName/RESULT — запросы устройства.
  2. tele/deviceName/SENSOR — данные с датчиков устройства: температура процессора и окружающей среды. Если показания встроенного датчика температуры отличаются от эталона, скорректируйте их по инструкции (TempOffset).
  3. stat/deviceName/RESULT — сообщения о состоянии физических реле.
  4. cmnd/{}/nxpanel — отправка команд: структура страниц и состояние элементов.
  5. cmnd/{}/nspsend/ — отправка команд физическим компонентам: реле и зуммеру.

Пример

Чтобы было проще начать, мы подготовили пример модуля на wb-rules: nxpanel2wb.

Модуль реализует простую панель управления и представляет её в виде виртуального устройства, с которым вы можете взаимодействовать с помощью правил или Node-RED.

Топик Send Raw служит для отправки JSON-команд устройству, например:

  • Погода:
    { "weather": { "temp": 30, "icon": "02d", "feels": 35, "summary": "40 %,RH" } }
    
  • Сообщения:
    {"notifications": { "text": "Wiren Board" }}
    

Подробная документация с примерами JSON-сообщений доступна в репозитории NSPanel-setup.

Полезные ссылки