Sonoff NSPanel: различия между версиями

Материал из Wiren Board
(→‎Полезные ссылки: добавил ссылку)
 
(не показано 28 промежуточных версий этого же участника)
Строка 1: Строка 1:
{{DISPLAYTITLE: Использование Sonoff NSPanel с контроллером Wiren Board }}
{{DISPLAYTITLE: Использование Sonoff NSPanel с контроллером Wiren Board }}
{{Draft}}
[[Image: nxpanel 2.jpg |300px|thumb|right| Sonoff NSPanel EU с прошивкой NXPanel]]
== Общая информация ==
== Общая информация ==
[[Image: Sonoff NSPanel EU.jpg |300px|thumb|right| Sonoff NSPanel европейская версия ]]
{{YouTube
Sonoff NSPanel — это Wi-Fi панель с контроллером ESP32 и дисплеем Nextion. С базовой прошивкой она настраивается приложением eWLink и работает через облако производителя.
|link=https://youtu.be/dIH0Zq298FQ
|text= Пример работы NSPanel с контроллером Wiren Board
}}
[https://sonoff.tech/product/smart-wall-swtich/nspanel/ Sonoff NSPanel] — это Wi-Fi панель с контроллером ESP32 и дисплеем Nextion. С базовой прошивкой она настраивается приложением eWLink и работает через облако производителя. В панели есть два реле и физические кнопки для управления нагрузкой.


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


Мы попробовали несколько вариантов и остановились на прошивке NXPanel:
Мы попробовали несколько вариантов и остановились на свободной прошивке [https://github.com/peepshow-21/ns-flash NXPanel], которую разработал и поддерживает пользователь @m-home (Mike) с [https://community.openhab.org/t/nxpanel-replacement-firmware-for-sonoff-nspanel/132869 форума OpenHub]. Другие варианты смотрите по ссылке [https://github.com/blakadder/nspanel?ysclid=l6uhli7os9383372258 NSPanel Hacking].
* работает через MQTT,
* не нужно использовать дополнительное ПО для настройки панели.


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


== Подготовка устройства ==
== Подготовка устройства ==
=== Прошивка Tasmota ===
=== Прошивка Tasmota ===
[[Image: nspanel-tasmota-flash.jpg |300px|thumb|right| Разъём для прошивки NSPanel ]]
[[Image: nspanel-tasmota-flash.jpg |300px|thumb|right| Разъём для прошивки NSPanel ]]
Для прошивки вам понадобится паяльник, программатор для ESP и навыки пайки. Если чего-то из этого у вас нет — это решение может оказаться для вас сложным.
{{note|warn|Убедитесь, что вы понимаете, что делаете и осознаёте риски!}}
Для прошивки вам понадобится паяльник, программатор для ESP и навыки пайки. Если чего-то из этого у вас нет — поищите другие варианты решения вашей задачи.


Сперва мы прошьём панель прошивкой Tasmota, оригинальная инструкция доступна на сайте [https://templates.blakadder.com/sonoff_NSPanel.html blakadder.com], но наша будет отличаться: мы возьмём другой файл nspanel.be и прошьём новую прошивку в дисплей.
Сперва мы прошьём панель прошивкой Tasmota, оригинальная инструкция доступна на сайте [https://templates.blakadder.com/sonoff_NSPanel.html blakadder.com], но наша будет отличаться: мы возьмём другой файл nspanel.be и прошьём новую прошивку в дисплей.
Строка 26: Строка 28:
# Прошейте устройство.
# Прошейте устройство.


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


=== Конфигурация и включение MQTT ===
=== Конфигурация и активация MQTT ===
Чтобы прошивка понимала, какие GPIO за что отвечают, а так же для калибровки аналоговых входов, запишите строку конфигурации:
Чтобы прошивка понимала, какие GPIO за что отвечают, а так же для калибровки аналоговых входов, запишите строку конфигурации:
# В веб-интерфейсе панели перейдите '''Configuration''' → '''Configure Other'''
# В веб-интерфейсе панели перейдите '''Configuration''' → '''Configure Other'''
Строка 39: Строка 41:


=== Настройка Wi-Fi и MQTT ===
=== Настройка Wi-Fi и MQTT ===
После прошивки панель запустится и поднимет Wi-Fi точку доступа вида tasmota_XXXXXX:
После прошивки панель запустится и поднимет Wi-Fi точку доступа вида ''tasmota_XXXXXX'':
# Подключитесь к ней.
# Подключитесь к ней.
# Зайдите на устройство по адресу http://http://192.168.4.1/
# Зайдите на устройство по адресу http://http://192.168.4.1/
Строка 53: Строка 55:


<gallery mode="packed" heights="350px" caption="Настройка устройства">
<gallery mode="packed" heights="350px" caption="Настройка устройства">
Image: tasmota-other-settings.png | MQTT и GPIO
Image: tasmota-wi-fi-settings.png | Wi-Fi
Image: tasmota-wi-fi-settings.png | Wi-Fi
Image: tasmota-mqtt-settings.png | MQTT
Image: tasmota-mqtt-settings.png | MQTT
Image: tasmota-other-settings.png | MQTT и GPIO
</gallery>
</gallery>
=== Прошивка NXPanel ===
=== Прошивка NXPanel ===
Теперь, когда у нас есть полный доступ к устройству, загрузим на него скрипт управления и прошивку дисплея NXPanel ([https://github.com/peepshow-21/ns-flash страница на Github]). Все действия нужно производить в веб-интерфейсе устройства.
[[Image: tasmota-console.png |300px|thumb|right| Веб-консоль Tasmota ]]
Теперь, когда у нас есть полный доступ к устройству, загрузим на него скрипт управления и новую прошивку дисплея. Все действия нужно производить в веб-интерфейсе устройства.


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


== Работа с панелью ==
== Работа с панелью ==
Калибровка датчика температуры: TempOffset -12.6..12.6 https://tasmota.github.io/docs/Commands/#sensors
[[Image: nxpanel-devices.png |300px|thumb|right| Представление Sonoff NSPanel с прошивкой NXPanel в контроллере Wiren Board ]]
=== Принцип работы ===
Устройство запрашивает нужные ей страницы, вы их формируете, отправляете ему, а оно их отрисовывает. Если на панели нажали кнопку или изменили другой параметр — устройство пришлёт сообщение с идентификаторами панели и изменённого параметра.
 
MQTT-топики:
# <code>tele/deviceName/RESULT</code> — запросы устройства.
# <code>tele/deviceName/SENSOR</code> — данные с датчиков устройства: температура процессора и окружающей среды. Если показания встроенного датчика температуры отличаются от эталона, скорректируйте их по [https://tasmota.github.io/docs/Commands/#sensors инструкции] (''TempOffset'').
# <code>stat/deviceName/RESULT</code> — сообщения о состоянии физических реле.
# <code>cmnd/{}/nxpanel</code> — отправка команд: структура страниц и состояние элементов.
# <code>cmnd/{}/nspsend/</code> — отправка команд физическим компонентам: реле и зуммеру.
 
=== Пример ===
Чтобы было проще начать, мы подготовили пример модуля на [[wb-rules]]: [https://github.com/wirenboard/wb-community/tree/main/scripts/nxpanel2wb nxpanel2wb].
 
Модуль реализует простую панель управления и представляет её в виде виртуального устройства, с которым вы можете взаимодействовать с помощью правил или [[Node-RED]].
 
Топик '''Send Raw''' служит для отправки JSON-команд устройству, например:
* Погода:
*: <syntaxhighlight lang="json">
{ "weather": { "temp": 30, "icon": "02d", "feels": 35, "summary": "40 %,RH" } }
</syntaxhighlight>
* Сообщения:
*: <syntaxhighlight lang="json">
{"notifications": { "text": "Wiren Board" }}
</syntaxhighlight>
 
Подробная документация с примерами JSON-сообщений доступна в репозитории [https://github.com/alfpf/NSPanel-setup NSPanel-setup].
 
<gallery mode="packed" heights="200px" caption="Примеры экранов">
Image: nxpanel 1.jpg | Настройка дисплея
Image: nxpanel 2.jpg | Домашний экран
Image: nxpanel 3.jpg | Основное меню
Image: nxpanel 4.jpg | Управление диммером
Image: nxpanel 5.jpg | Управление светодиодной лентой
Image: nxpanel 6.jpg | Настройка термостата
</gallery>
 
== Полезные ссылки ==
* [https://support.wirenboard.com/t/nspanel-sonoff-podklyuchenie/14106 Панель подключается к MQTT, но на панели нет данных]
* [https://github.com/alfpf/NSPanel-setup Документация NX-Panel с подробным описанием и примерами команд]
* [https://community.openhab.org/t/nxpanel-replacement-firmware-for-sonoff-nspanel/132869 Форум поддержки прошивки NXPanel]
* [https://github.com/peepshow-21/ns-flash Репозиторий с прошивкой NSPanel]
* [https://templates.blakadder.com/sonoff_NSPanel.html Оригинальная инструкция по прошивке Tasmota]
* [https://github.com/blakadder/nspanel?ysclid=l6uhli7os9383372258 NSPanel Hacking]

Текущая версия на 19:30, 30 января 2023

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.

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