Sonoff NSPanel: различия между версиями
(→Полезные ссылки: добавил ссылку) |
|||
(не показано 38 промежуточных версий этого же участника) | |||
Строка 1: | Строка 1: | ||
{{DISPLAYTITLE: Использование Sonoff NSPanel с контроллером Wiren Board }} | {{DISPLAYTITLE: Использование Sonoff NSPanel с контроллером Wiren Board }} | ||
[[Image: nxpanel 2.jpg |300px|thumb|right| Sonoff NSPanel EU с прошивкой NXPanel]] | |||
== Общая информация == | == Общая информация == | ||
{{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 или использовать заготовки авторов. | |||
Мы попробовали несколько вариантов и остановились на прошивке 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]. | ||
Инструкции на этой | Инструкции на этой странице проверены для европейской версии устройства, все действия вы производите на свой страх и риск. | ||
== Подготовка устройства == | == Подготовка устройства == | ||
=== Прошивка Tasmota === | === Прошивка Tasmota === | ||
Для прошивки вам понадобится паяльник, программатор для ESP и навыки пайки. Если чего-то из этого у вас нет — поищите другие | [[Image: nspanel-tasmota-flash.jpg |300px|thumb|right| Разъём для прошивки NSPanel ]] | ||
{{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 и прошьём новую прошивку в дисплей. | ||
Строка 25: | Строка 28: | ||
# Прошейте устройство. | # Прошейте устройство. | ||
Хорошее видео о том, как разобрать и прошить 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-брокер контроллера: | ||
Строка 38: | Строка 53: | ||
# Заполните поля, в поле '''Host''' укажите IP-адрес контроллера, а ''User'' и ''Password'' можно не указывать — по умолчанию на контроллере Wiren Board MQTT-брокер не требует авторизации. | # Заполните поля, в поле '''Host''' укажите IP-адрес контроллера, а ''User'' и ''Password'' можно не указывать — по умолчанию на контроллере Wiren Board MQTT-брокер не требует авторизации. | ||
# Нажмите '''Save'''. | # Нажмите '''Save'''. | ||
<gallery mode="packed" heights="350px" caption="Настройка устройства"> | |||
Image: tasmota-other-settings.png | MQTT и GPIO | |||
Image: tasmota-wi-fi-settings.png | Wi-Fi | |||
Image: tasmota-mqtt-settings.png | MQTT | |||
</gallery> | |||
=== Прошивка NXPanel === | === Прошивка NXPanel === | ||
Теперь, когда у нас есть полный доступ к устройству, загрузим на него скрипт управления и прошивку дисплея | [[Image: tasmota-console.png |300px|thumb|right| Веб-консоль Tasmota ]] | ||
Теперь, когда у нас есть полный доступ к устройству, загрузим на него скрипт управления и новую прошивку дисплея. Все действия нужно производить в веб-интерфейсе устройства. | |||
Загрузите в панель скрипт NXPanel: | Загрузите в панель скрипт NXPanel: | ||
Строка 58: | Строка 80: | ||
== Работа с панелью == | == Работа с панелью == | ||
[[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 — это Wi-Fi панель с контроллером ESP32 и дисплеем Nextion. С базовой прошивкой она настраивается приложением eWLink и работает через облако производителя. В панели есть два реле и физические кнопки для управления нагрузкой.
Так как платформа открыта, то для неё существует несколько альтернативных прошивок, с помощью которых вы можете нарисовать свой интерфейс в редакторе NextionEditor или использовать заготовки авторов.
Мы попробовали несколько вариантов и остановились на свободной прошивке NXPanel, которую разработал и поддерживает пользователь @m-home (Mike) с форума OpenHub. Другие варианты смотрите по ссылке NSPanel Hacking.
Инструкции на этой странице проверены для европейской версии устройства, все действия вы производите на свой страх и риск.
Подготовка устройства
Прошивка Tasmota
Убедитесь, что вы понимаете, что делаете и осознаёте риски! Для прошивки вам понадобится паяльник, программатор для ESP и навыки пайки. Если чего-то из этого у вас нет — поищите другие варианты решения вашей задачи.
Сперва мы прошьём панель прошивкой Tasmota, оригинальная инструкция доступна на сайте blakadder.com, но наша будет отличаться: мы возьмём другой файл nspanel.be и прошьём новую прошивку в дисплей.
Разберите панель, найдите разъём для прошивки:
- Припаяйте пять проводков и подключите четыре из них к программатору, а ID0 соедините с GND.
- Подключите программатор к компьютеру.
- Откройте Tasmota Web Installer и выберите в левом поле прошивку Development/Tasmota32 Sonoff-NSPanel (english)
- Прошейте устройство.
Хорошее видео о том, как разобрать и прошить NSPanel: Flashing the Sonoff NSPanel with Tasmota!. В отличие от автора видео, мы рекомендуем припаять провода к контактам панели.
Конфигурация и активация MQTT
Чтобы прошивка понимала, какие GPIO за что отвечают, а так же для калибровки аналоговых входов, запишите строку конфигурации:
- В веб-интерфейсе панели перейдите Configuration → Configure Other
- Вставьте строку в поле 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"}
- Включите флажок MQTT enable.
- Сохраните настройки.
Настройка Wi-Fi и MQTT
После прошивки панель запустится и поднимет Wi-Fi точку доступа вида tasmota_XXXXXX:
- Подключитесь к ней.
- Зайдите на устройство по адресу http://http://192.168.4.1/
- Настройте подключение к тому же Wi-Fi роутеру, к которому подключён контроллер Wiren Board.
- Подключитесь к панели по новому адресу.
Чтобы в дальнейшем иметь доступ к веб-интерфейса устройству, рекомендуем задать статический IP-адрес, справочник по командам.
Настройте панель на отправку данных в MQTT-брокер контроллера:
- Перейдите Configuration → Configure MQTT.
- Заполните поля, в поле Host укажите IP-адрес контроллера, а User и Password можно не указывать — по умолчанию на контроллере Wiren Board MQTT-брокер не требует авторизации.
- Нажмите Save.
- Настройка устройства
Прошивка NXPanel
Теперь, когда у нас есть полный доступ к устройству, загрузим на него скрипт управления и новую прошивку дисплея. Все действия нужно производить в веб-интерфейсе устройства.
Загрузите в панель скрипт NXPanel:
- Скачайте на компьютер этот файл nxpanel.be.
- Перейдите Consoles → Manage File system:
- загрузите файл
nxpanel.be
, который вы скачали раньше; - создайте файл
autoexec.be
с единственной строкой:load("nxpanel.be")
.
- загрузите файл
- Перезагрузите панель.
Теперь прошейте дисплей пользовательской прошивкой:
- Перейдите Consoles → Console
- Выполните команду:
installnxpanel
- Дождитесь окончания прошивки.
Работа с панелью
Принцип работы
Устройство запрашивает нужные ей страницы, вы их формируете, отправляете ему, а оно их отрисовывает. Если на панели нажали кнопку или изменили другой параметр — устройство пришлёт сообщение с идентификаторами панели и изменённого параметра.
MQTT-топики:
tele/deviceName/RESULT
— запросы устройства.tele/deviceName/SENSOR
— данные с датчиков устройства: температура процессора и окружающей среды. Если показания встроенного датчика температуры отличаются от эталона, скорректируйте их по инструкции (TempOffset).stat/deviceName/RESULT
— сообщения о состоянии физических реле.cmnd/{}/nxpanel
— отправка команд: структура страниц и состояние элементов.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.
- Примеры экранов