|
Воскресенье, 03.11.2024, 05:17 | | RSS |
|
Защита, контроль, управление |
|
Глюки и Баги Raspberry Pi, WebHomePi и пользователей
|
|
Alex2057 | Дата: Пятница, 21.04.2017, 15:21 | Сообщение # 1 |
Группа: Пользователи
Сообщений: 24
Статус: Offline
| Предлагаю в этой теме делиться проблемами, возникающими при установке и настройке ОС Raspbian и фреймворка WebIOPi, а также в работе «железа» Raspberry Pi. И, самое главное, предлагать РЕШЕНИЕ этих проблем. Именно так: ОПИСАТЬ И ПРОБЛЕМУ И ЕЕ РЕШЕНИЕ. Это сэкономит время, и поможет многим не «наступать» на те-же грабли. Этот форум наиболее подходит для подобной темы, т.к. всегда оказывается на первых страницах поисковых систем по запросам «Raspberry Pi» и «WebIOPi». Тема может быть полезна тем, кто самостоятельно собирает и конфигурирует систему «с нуля», и использует собственные настройки WebIOPi и скрипты на Python. Вопросы и ответы по работе Системы домашней автоматизации на Raspberry Pi «Web Home Pi» приведены в главной теме «Raspberry Pi. Общие вопросы». Итак, начнем…
Добавлено (21.04.2017, 13:27) --------------------------------------------- Для начала – мой пример из поста #855 темы «Raspberry Pi. Общие вопросы. Часть 1». Проблема: При подключении новых датчиков перестает грузиться WebIOPi. Это можно увидеть, выполнив команду: sudo /etc/init.d/webiopi status В моем случае это произошло после очередного обновления ядра. Решение: Отсутствует папка /sys/bus/w1 или папка есть, но в ней нет вложенных папок devices, drivers и др.
Отредактируйте файл config.txt: sudo nano /boot/config.txt добавьте:
Код dtparam=i2c1=on dtparam=spi=on dtparam=i2s=on w1-gpio dtoverlay=w1-gpio-pullup,gpio=4 Сохраните файл, выйдите, перезагрузите Raspberry. Запустите WebIOPi. Должна появится папка /sys/bus/w1 В последних версиях ядра этого не наблюдалось.
Сообщение отредактировал Zoolu - Понедельник, 24.04.2017, 16:22 |
|
| |
Alex2057 | Дата: Понедельник, 24.04.2017, 12:09 | Сообщение # 2 |
Группа: Пользователи
Сообщений: 24
Статус: Offline
| Проблемы с локализацией.
Не работает переключение раскладки клавиатуры латиница-кириллица. В другом случае переключение на латиницу пропало после обновления системы. Настройки в raspi-config результата не дают. При выходе из raspi-config может выдаваться ошибка: "update-rc.d: warning: start and stop actions are no longer supported; falling back to defaults" (Внимание: Запуск и установка действий больше не поддерживается.") То-же сообщение после установки (если он не установлен) языкового пакета console-cyrillic: $ sudo aptitude install console-cyrillic Аналогично, и при выполнения настройки языкового пакета: sudo dpkg-reconfigure console-cyrillic
Для восстановления переключения раскладки. ЭТО РАБОТАЕТ ТОЛЬКО ДЛЯ ТЕКУЩЕЙ СЕССИИ (!): setxkbmap -layout 'us,ru' -option 'grp:alt_shift_toggle, grp_led:caps'
Иногда помогает отредактировать файл /etc/default/keyboard Дописать для параметра XKBLAYOUT через запятую ru. Должно быть примерно так: XKBLAYOUT="us,ru" или XKBLAYOUT="gb,ru"
А вот это решило проблему: Редактируем файл /home/pi/.config/lxkeymap.cfg. Там должно быть так:
Код [Global]layout = us,ru variant = [здесь может быть legacy] option = grp:alt_shift_toggle
Параметр layout содержит перечень языков, а параметр option определяет сочетания клавиш для переключения языков.
Продолжение следует...
Сообщение отредактировал Zoolu - Понедельник, 24.04.2017, 16:23 |
|
| |
Alex2057 | Дата: Понедельник, 24.04.2017, 15:52 | Сообщение # 3 |
Группа: Пользователи
Сообщений: 24
Статус: Offline
| Не работает WebIOPi
WebIOPi загружается, но страницы проекта в браузере не доступны. Команда sudo /etc/init.d/webiopi status выдает, что WebIOPi загружен и активен. Произошло это после очередных "экспериментов" с файлом настроек config. Причина: в файл /etc/webiopi/config добавлены комментарии на кириллице, и кодировка изменена на ANSI. В этом случае команда sudo webiopi -d -c /etc/webiopi/config выдает сообщение в последней строке: "UnicodeDecoderError: 'utf-8' codec can't decode byte 0xf1 in position NNN: invalid continuation byte"
Файл config удобнее редактировать в Notapad++, подключившись к Raspberry через программу WinSCP. Предварительно в консоли разрешить доступ к файлу: sudo chmod 777 /etc/webiopi/config В Notepad++, в меню "Кодировки" выбрать "Кодировать в UTF-8 (без BOM)" или "Преобразовать в UTF-8 (без BOM)" и сохранить файл. После редактирования восстановить права доступа "по-умолчанию": sudo chmod 755 /etc/webiopi/config
Перегрузить WebIOPi : sudo /etc/init.d/webiopi restart Все должно заработать.
Если в меню Notepad++ выбрать "Кодировать в UTF-8" или "Преобразовать в UTF-8", в начало файла config будут добавлены 3 байта - EF BB BF. Эти байты представляют один символ BOM - Byte Order Mark из набора UNICODE. В этом случае: sudo webiopi -d -c /etc/webiopi/config выдаст другое сообщение об ошибке: "configparser.MissingSectionHeaderError: File contains no section headers. file: '/etc/webiopi/config', line: 1 '\ufeff[GPIO]\n" - отсутствует секция заголовков в первой строке, хотя реально эта секция есть, но в начале в ней стоит символ BOM - \ufeff, который не отображается в редакторе. В этом случае WebIOPi также работать не будет!
Продолжение следует...
Сообщение отредактировал Alex2057 - Понедельник, 24.04.2017, 16:06 |
|
| |
Zoolu | Дата: Понедельник, 24.04.2017, 16:22 | Сообщение # 4 |
Группа: Пользователи
Сообщений: 490
Статус: Offline
| Цитата Alex2057 ( ) Файл config удобнее редактировать в Notapad++, подключившись к Raspberry через программу WinSCP Я сейчас активно использую плагин для Notepad++. Называется NppFTP. Позволяет подключаться по протоколу FTP/SFTP. То есть получается в дереве ищем нужный файл, кликом открываем его, редактируем, сохраняем. Телодвижений минимум и все это прямо из блокнота.
|
|
| |
Tetron | Дата: Вторник, 25.04.2017, 14:56 | Сообщение # 5 |
Группа: Пользователи
Сообщений: 4
Статус: Offline
| Доброго времени суток. Подскажите, почему при выполнении команды "sudo /etc/init.d/webiopi stop" webiopi продолжает работать и я могу зайти в интерфейс GPIO? И еще, после изменения скрипта (myscript = /home/pi /myproject/python/script.py) и его перезапуска (sudo /etc/init.d/webiopi restart) продолжает выполнение старый скрапт. Использую: - Raspberry Pi 3 Model B; - WebIOPi-0.7.1; - 2017-04-10-raspbian-jessie. Устанавливал по следующей инструкции: - $ wget http://sourceforge.net/projects/webiopi/files/WebIOPi-0.7.1.tar.gz; - $ tar xvzf WebIOPi-0.7.1.tar.gz; - $ cd WebIOPi-0.7.1; - $ wget https://raw.githubusercontent.com/doubleb.....patch; - $ patch -p1 -i webiopi-pi2bplus.patch; - $ sudo ./setup.sh; - $ sudo update-rc.d webiopi defaults.
Сообщение отредактировал Tetron - Среда, 26.04.2017, 07:17 |
|
| |
Alex2057 | Дата: Вторник, 25.04.2017, 16:11 | Сообщение # 6 |
Группа: Пользователи
Сообщений: 24
Статус: Offline
| Цитата Tetron ( ) при выполнении команды "sudo /etc/init.d/webiopi stop" webiopi продолжает работать А что показывает: sudo /etc/init.d/webiopi status
Цитата и его перезапуска (sudo /etc/init.d/webiopi restart) продолжает выполнение старый скрапт. Получается WebIOPi не только не останавливается но и не перезапускается
Сообщение отредактировал Alex2057 - Вторник, 25.04.2017, 16:19 |
|
| |
Tetron | Дата: Вторник, 25.04.2017, 17:27 | Сообщение # 7 |
Группа: Пользователи
Сообщений: 4
Статус: Offline
| Цитата Alex2057 ( ) А что показывает:sudo /etc/init.d/webiopi status Код Loaded: loaded (/etc/init.d/webiopi) Active: inactive Process: ExecStop=/etc/init.d/webiopi stop (code=exited, status=0/SUCCESS) Process: ExecStart=/etc/init.d/webiopi start (code=exited, status=0/SUCCESS)
Сообщение отредактировал Tetron - Среда, 26.04.2017, 07:18 |
|
| |
Alex2057 | Дата: Вторник, 25.04.2017, 17:32 | Сообщение # 8 |
Группа: Пользователи
Сообщений: 24
Статус: Offline
| Сейчас нет под рукой RPi посмотреть. Если время терпит, подождите..
|
|
| |
Tetron | Дата: Вторник, 25.04.2017, 17:36 | Сообщение # 9 |
Группа: Пользователи
Сообщений: 4
Статус: Offline
| Цитата Alex2057 ( ) Сейчас нет под рукой RPi посмотреть. Если время терпит, подождите.. Спасибо. Время терпит. Пока еще сам посмотрю. Раньше без проблем использовал первую RPi и webiopi 0.6, а сегодня и на второй и на третьей версии попробовал и обе косячат.
|
|
| |
Alex2057 | Дата: Четверг, 27.04.2017, 21:25 | Сообщение # 10 |
Группа: Пользователи
Сообщений: 24
Статус: Offline
| Проверил, работает, т.е. после остановки WebIOPi страница в браузере уже не загружается. Это на мониторе подключенном непосредственно к RPi. По сети на другом ПК страница какое-то время еще доступна (из кэша?), потом перестает. После запуска WebIOPi через какое-то время все восстанавливается. Все также, как на Вашем скрине.
Правда у меня по cron 1 раз в минуту запускается скрипт, который проверяет загружен ли WebIOPi, есть ли доступ к странице и пр., и если нет, он перезапускает WebIOPi, но это отдельная тема. Попробуйте обновить WebIOPi.
Для справки: RPi 3, версия ядра 4.4.34 (#930 от 23.11.2016), версия WebIOPi 0.7.1. С тех пор больше не обновлялся, так как с каждым обновлением вылезают новые глюки, см. посты выше.
Добавлено (27.04.2017, 16:26) --------------------------------------------- Обнаружил другой глюк WebIOPi. Если остановить WebIOPi и дать команду: sudo webiopi -d -c /etc/webiopi/config - это тест загрузки, то после запуска, страница уже не загрузится, хотя статус WebIOPi активен. Приходится перегружаться.
У WebIOPi помимо очевидных достоинств, есть определенные недостатки Я долго не хотел переходить на этот фреймворк. Причины: - плохо документирован, особенно в части взаимодействия HTML/JS со скриптами Python, - мало подробной информации по его работе в русскоязычном Интернете. В основном общая информация, копипасты. - автор не обновляет софт с 2015г. (занят другим, сменил работу), но правда поддерживает в форуме. - софт не "прозрачен", - иногда глючит по непонятным причинам. Но увы, альтернативы пока не нашел. Пробовал Flask, но нормально он не запустился.
Как вариант решения, найти программиста заинтересованного в проекте "Домашней автоматизации" и попросить написать WEB-сервер с поддержкой Python скриптов и под конкретную конфигурацию. "Расплатиться" можно железом.Добавлено (27.04.2017, 21:25) ---------------------------------------------
Цитата Zoolu ( ) Я сейчас активно использую плагин для Notepad++. Называется NppFTP. Попробовал, удобно. А какой плагин нужен для подключения консоли в Notepad++?
Сообщение отредактировал Alex2057 - Четверг, 27.04.2017, 16:52 |
|
| |
T2M © 2024 | Сайт управляется системой uCoz |
| |
|