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

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


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


Мы попробовали несколько вариантов и остановились на свободной прошивке [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].
Мы попробовали несколько вариантов и остановились на прошивке NXPanel:
* работает через MQTT,
* не нужно использовать дополнительное ПО для настройки панели.


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


== Подготовка устройства ==
== Подготовка устройства ==
=== Прошивка Tasmota ===
=== Прошивка Tasmota ===
[[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 и прошьём новую прошивку в дисплей.
Строка 28: Строка 25:
# Прошейте устройство.
# Прошейте устройство.


Хорошее видео о том, как разобрать и прошить NSPanel: [https://youtu.be/sCrdiCzxMOQ Flashing the Sonoff NSPanel with Tasmota!]. В отличие от автора видео, мы рекомендуем припаять провода к контактам панели.
Хорошее видео о том, как разобрать и прошить NSPanel: [https://youtu.be/sCrdiCzxMOQ Flashing the Sonoff NSPanel with Tasmota!]
 
=== Конфигурация и активация MQTT ===
Чтобы прошивка понимала, какие GPIO за что отвечают, а так же для калибровки аналоговых входов, запишите строку конфигурации:
# В веб-интерфейсе панели перейдите '''Configuration''' → '''Configure Other'''
# Вставьте строку в поле '''Template''':
#:<syntaxhighlight lang="bash">
{"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"}
</syntaxhighlight>
# Включите флажок '''MQTT enable'''.
# Сохраните настройки.


=== Настройка 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/
# Настройте подключение к тому же Wi-Fi роутеру, к которому подключён контроллер Wiren Board.  
# Настройте подключение к тому же Wi-Fi роутеру, к которому подключён контроллер Wiren Board.  
# Подключитесь к панели по новому адресу.
# Подключитесь к панели по новому адресу.
Чтобы в дальнейшем иметь доступ к веб-интерфейса устройству, рекомендуем задать статический IP-адрес, [https://tasmota.github.io/docs/Commands/#wi-fi справочник по командам].


Настройте панель на отправку данных в MQTT-брокер контроллера:
Настройте панель на отправку данных в MQTT-брокер контроллера:
Строка 54: Строка 39:
# Нажмите '''Save'''.
# Нажмите '''Save'''.


<gallery mode="packed" heights="350px" caption="Настройка устройства">
=== Запись конфигурации ===
Image: tasmota-other-settings.png | MQTT и GPIO
Чтобы прошивка понимала, какие GPIO за что отвечают, а так же для калибровки аналоговых входов, запишите строку конфигурации:
Image: tasmota-wi-fi-settings.png | Wi-Fi
# В веб-интерфейсе панели перейдите '''Configuration''' → '''Configure Other'''
Image: tasmota-mqtt-settings.png | MQTT
# Вставьте строку в поле '''Template''':
</gallery>
#:<syntaxhighlight lang="bash">
{"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"}
</syntaxhighlight>
# Сохраните настройки.


=== Прошивка NXPanel ===
=== Прошивка NXPanel ===
[[Image: tasmota-console.png |300px|thumb|right| Веб-консоль Tasmota ]]
Теперь, когда у нас есть полный доступ к устройству, загрузим на него скрипт управления и прошивку дисплея NXPanel ([https://github.com/peepshow-21/ns-flash страница на Github]). Все действия нужно производить в веб-интерфейсе устройства.
Теперь, когда у нас есть полный доступ к устройству, загрузим на него скрипт управления и новую прошивку дисплея. Все действия нужно производить в веб-интерфейсе устройства.


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


== Работа с панелью ==
== Работа с панелью ==
[[Image: nxpanel-devices.png |300px|thumb|right| Представление Sonoff NSPanel с прошивкой NXPanel в контроллере Wiren Board ]]
Калибровка датчика температуры: TempOffset -12.6..12.6 https://tasmota.github.io/docs/Commands/#sensors
=== Принцип работы ===
Устройство запрашивает нужные ей страницы, вы их формируете, отправляете ему, а оно их отрисовывает. Если на панели нажали кнопку или изменили другой параметр — устройство пришлёт сообщение с идентификаторами панели и изменённого параметра.
 
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]

Версия 09:39, 15 августа 2022

Это черновик страницы. Последняя правка сделана 15.08.2022 пользователем A.Degtyarev.

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

Sonoff NSPanel европейская версия

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

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

Мы попробовали несколько вариантов и остановились на прошивке NXPanel:

  • работает через MQTT,
  • не нужно использовать дополнительное ПО для настройки панели.

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

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

Прошивка Tasmota

Для прошивки вам понадобится паяльник, программатор для 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!

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

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

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

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

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

Запись конфигурации

Чтобы прошивка понимала, какие 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. Сохраните настройки.

Прошивка NXPanel

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

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

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

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

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

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

Калибровка датчика температуры: TempOffset -12.6..12.6 https://tasmota.github.io/docs/Commands/#sensors