Форум обсуждения систем  

Вернуться   Форум обсуждения систем "Умный дом", проектов Ардуино, OpenWRT и других DIY устройств > Форум умного дома > Сделай сам > CyberWrt

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
Старый 03.12.2014, 18:31   #1
electric
Member
 
Регистрация: 29.03.2013
Сообщений: 68
Вес репутации: 0
electric is an unknown quantity at this point
По умолчанию CyberWRT модуль "WeatherStation"

Доброго всем времени суток!
Задался вопросом интеграции полупрофессиональной метеостанции в различные сервисы. Хочу "вывести" в интернет орегон WMR88, установлена удаленно в деревне у родителей. Выход в инет через ADSL-модем, данные собирать планирую девайсом MR3020 с установленной прошивкой CyberWRT. Может кто задавался вопросом? Может, с помощью админа, получится сделать модуль?))
Пока удалось нарыть, что данные можно выцепить по USB (определяется как USB-HID) с помощью пакета wview, он есть в репозитарии, правда старая версия. Функционал его конечно избыточен, да и запустить с ходу не получилось...

Последний раз редактировалось electric; 04.12.2014 в 10:31.
electric вне форума   Ответить с цитированием
Старый 03.12.2014, 19:51   #2
Admin
Administrator
 
Аватар для Admin
 
Регистрация: 12.04.2010
Адрес: Москва
Сообщений: 9,616
Вес репутации: 9820
Admin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant future
По умолчанию Re: CyberWRT модуль "WheaterStation"

Если у Вас есть рабочий и проверенный вариант скриптов, то я оформлю их в модуль
Создать скрипт, не имея девайса у меня не получится
Admin вне форума   Ответить с цитированием
Старый 03.12.2014, 22:27   #3
electric
Member
 
Регистрация: 29.03.2013
Сообщений: 68
Вес репутации: 0
electric is an unknown quantity at this point
По умолчанию Re: CyberWRT модуль "WheaterStation"

Цитата:
Сообщение от Admin Посмотреть сообщение
Если у Вас есть рабочий и проверенный вариант скриптов, то я оформлю их в модуль
Создать скрипт, не имея девайса у меня не получится
Вот с этим то и проблемы, не могу найти нормальный софт.
WVIEW слишком монструозный - разбираюсь пока с ним...
Можете посмотреть софт WMR - будет ли работать на OpenWRT? Я искал-искал, так и не понял.
Есть еще WeeWX на питоне вроде.
Так же нашел пару проектов, которые предлагают сразу прошивки:
1. meteobridge.com
2. meteoplug.com

Последний раз редактировалось electric; 03.12.2014 в 23:12.
electric вне форума   Ответить с цитированием
Старый 04.12.2014, 01:31   #4
Admin
Administrator
 
Аватар для Admin
 
Регистрация: 12.04.2010
Адрес: Москва
Сообщений: 9,616
Вес репутации: 9820
Admin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant future
По умолчанию Re: CyberWRT модуль "WheaterStation"

Из всего списка, больше подходит WVIEW
Admin вне форума   Ответить с цитированием
Старый 04.12.2014, 10:41   #5
electric
Member
 
Регистрация: 29.03.2013
Сообщений: 68
Вес репутации: 0
electric is an unknown quantity at this point
По умолчанию Re: CyberWRT модуль "WheaterStation"

Цитата:
Сообщение от Admin Посмотреть сообщение
Из всего списка, больше подходит WVIEW
Да, именно этим howto решил воспользоваться, альтернативы пока нет.
Вроде удалось запустить, какие то данные даже получает, только температуры в фаренгейтах и давление не понятно в каких единицах. Все данные записывает в БД SQLite. Пришлось правда немного подшаманить инструкцию...
electric вне форума   Ответить с цитированием
Старый 08.12.2014, 13:40   #6
WB789
Member
 
Регистрация: 19.03.2013
Адрес: Москва
Возраст: 56
Сообщений: 42
Вес репутации: 0
WB789 is an unknown quantity at this point
По умолчанию Re: CyberWRT модуль "WeatherStation"

как вариант http://www.ab-log.ru/smart-house/weather-station
WB789 вне форума   Ответить с цитированием
Старый 08.12.2014, 13:44   #7
WB789
Member
 
Регистрация: 19.03.2013
Адрес: Москва
Возраст: 56
Сообщений: 42
Вес репутации: 0
WB789 is an unknown quantity at this point
По умолчанию Re: CyberWRT модуль "WeatherStation"

Пробую ковырять https://code.google.com/p/fowsr/ и как-то связать с sqlite и php. WVeiw пробовал не срослось, видимо знаний линуха не хватает...
WB789 вне форума   Ответить с цитированием
Старый 08.12.2014, 17:21   #8
electric
Member
 
Регистрация: 29.03.2013
Сообщений: 68
Вес репутации: 0
electric is an unknown quantity at this point
По умолчанию Re: CyberWRT модуль "WeatherStation"

Цитата:
Сообщение от WB789 Посмотреть сообщение
Не уверен что pywws можно запустить на OpenWRT. Если получится - поделитесь пожалуйста...
Цитата:
Сообщение от WB789 Посмотреть сообщение
Пробую ковырять https://code.google.com/p/fowsr/ и как-то связать с sqlite и php.
Этот пакет не поддерживает мою WMR88, хотя запускается на OpenWRT, надо почитать, за ссылку - спасибо!
Цитата:
Сообщение от WB789 Посмотреть сообщение
WVeiw пробовал не срослось, видимо знаний линуха не хватает...
А что конкретно не получилось то? Я вроде запустил на прошивке CyberWRT, данные в sqlite пишутся, оттуда их уже можно выцепить чем угодно. Всяческие сервисы типа httpgen и пр. отключил, оставил только wviewd - демона...
electric вне форума   Ответить с цитированием
Старый 09.12.2014, 23:51   #9
electric
Member
 
Регистрация: 29.03.2013
Сообщений: 68
Вес репутации: 0
electric is an unknown quantity at this point
По умолчанию Re: CyberWRT модуль "WeatherStation"

Итак, потестил системку, вроде работает, долго работает уже...
Как сделать модуль для CyberWRT - не знаю, даже более - можно ли его сделать? Установка и наладка может слишком специфична...
Теперь по порядку:
1. Допустим у нас есть роутер MR3020, БП к нему, USB-hab - к примеру Ginzzu GR-414UB, флешка c USB (чем меньше по габаритам - тем лучше, к примеру такая). На роутер уже установлена OpenWRT, посмотреть можно тут. Я буду подключать погодную станцию Oregon Scientific WMR88, но можно в принципе любую, с внешним интерфейсом USB. Для данной метеостанции используется пакет WVIEW. Функционал этой программы довольно велик - можно настраивать через ВЕБ-интерфейс, она умеет генерить картинки для последующего отображения через веб-морду, передавать данные в популярные сервисы типа Wunderground, WeatherForYou и прочие, и много чего еще. Моя задача - собрать данные с метеостанции и записывать их в sqlite базу данных - для этого в состав wview входит специальный демон.
2. Предположим, OpenWRT была установлена ранее, если нет, то можно сразу поставить CyberWRT из веб-морды TP-Link. У меня уже стояла OpenWRT, поэтому я переехал на CyberWRT так:
подключаемся по ssh на наш MR3020, выбираем папку /tmp
Цитата:
root@OpenWrt:~# cd /tmp
Скачиваем в папку /tmp прошивку CyberWrt для MR3020
Цитата:
root@OpenWrt:/tmp# wget http://cyberwrt.ru/application/firmw...erWrt-v1.4.bin
Connecting to cyberwrt.ru (5.9.57.134:80)
CyberWrt-v1.4.bin 100% |*************************************** *****************************| 3840k 0:00:00 ETA
Прошиваем, роутер автоматически перезагрузится.
Цитата:
root@OpenWrt:/tmp# mtd -r write /tmp/CyberWrt-v1.4.bin firmware
Unlocking firmware ...
Writing from /tmp/CyberWrt-v1.4.bin to firmware ... [w]
Rebooting ...
3. Настраиваем CyberWRT. Для начала подключаемся патч-кордом к порту LAN роутера. IP компьютера любой из подсети 192.168.1.ХХХ кроме 192.168.1.100 - именно этот адрес вбиваем в putty и открываем сессию telnet по порту 23. Видим стандартное приветствие, устанавливаем пароль root командой passwd.
Теперь, при желании, меняем настройки сети (у меня в инет будет смотреть порт LAN, встроенный WiFi никак не задействован) отредактировав файл /etc/config/network к примеру, так (секция LAN):
Код:
config interface 'lan'
        option ifname 'eth0'
        option type 'bridge'
        option proto 'static'
        option netmask '255.255.255.0'
        option ip6assign '60'
        option ipaddr '192.168.69.60'
        option gateway '192.168.69.1'
        option dns '8.8.8.8'
Я использую дома инженерную подсеть 192.168.69.ХХХ.
Перезагружаемся, подключаемся по ssh (порт 22) с помощью того же клиента putty (в первый раз система спросит обновить ключ - соглашаемся).
Патч-корд роутера уже можно втыкать в коммутатор домашней сети.
Проверяем инет:
Код:
root@CyberWrt:~# ping www.ya.ru
PING www.ya.ru (213.180.204.3): 56 data bytes
64 bytes from 213.180.204.3: seq=0 ttl=249 time=6.792 ms
64 bytes from 213.180.204.3: seq=1 ttl=249 time=5.934 ms
64 bytes from 213.180.204.3: seq=2 ttl=249 time=6.013 ms
64 bytes from 213.180.204.3: seq=3 ttl=249 time=6.270 ms
64 bytes from 213.180.204.3: seq=4 ttl=249 time=6.183 ms
64 bytes from 213.180.204.3: seq=5 ttl=249 time=5.933 ms
^C
--- www.ya.ru ping statistics ---
6 packets transmitted, 6 packets received, 0% packet loss
round-trip min/avg/max = 5.933/6.187/6.792 ms
Смотрим свободное место на встроенной флеше:
Код:
root@CyberWrt:~# df
Filesystem           1K-blocks      Used Available Use% Mounted on
rootfs                    1472       212      1260  14% /
/dev/root                 1536      1536         0 100% /rom
tmpfs                    14468        64     14404   0% /tmp
/dev/mtdblock3            1472       212      1260  14% /overlay
overlayfs:/overlay        1472       212      1260  14% /
tmpfs                      512         0       512   0% /dev
Места совсем мало, будем расширять флешкой. Как вживить USB-хаб и флешку можно почитать тут.
Теперь по идее надо было бы с помощью fdisk разбивать флешку на разделы, переносить ovelay, монтировать, но - у нас же есть модули для прошивки CyberWRT! Подключаемся через встроенный веб-интерфейс CyberWRT, просто набрав в браузере IP вашего девайса и залогинившись.
Сначала устанавливаем пакет "Модули" - "Utilites" - "Системный диск".
После успешной установки, переходим в появившееся меню "Системный диск", где видим подключенную флешку. Выбираем объем swap (128, к примеру) и нажимаем кнопку "Создать системный накопитель".
Дождемся пока работа программы закончится, при этом роутер автоматически перезагрузится.
Подключаемся по ssh, смотрим свободное место:
Код:
root@CyberWrt:~# df
Filesystem           1K-blocks      Used Available Use% Mounted on
rootfs                 7432868     18812   7013444   0% /
/dev/root                 1536      1536         0 100% /rom
tmpfs                    14468        64     14404   0% /tmp
/dev/sda1              7432868     18812   7013444   0% /overlay
overlayfs:/overlay     7432868     18812   7013444   0% /
tmpfs                      512         0       512   0% /dev
Другое дело!
Далее можно установить модули по вкусу (пакеты, терминал и прочее), но я рекомендую далее выполнять все через dpkg install...
4. Сначала обновим репозитарий:
Цитата:
root@CyberWrt:~# opkg update
Downloading http://cyberwrt.ru/application/packa..._4/Packages.gz.
Updated list of available packages in /var/opkg-lists/cyberwrt_pack.
Для работы с php и sqlite установим пакеты:
Цитата:
root@CyberWrt:~# opkg install libsqlite3 php5-mod-sqlite php5-mod-sqlite3 php5-mod-pdo-sqlite
Подтянутся зависимости...
Теперь самое интересное. Репозитарий CyberWRT основан на оригинальном OpenWRT, просто не обновляется - чтобы обновленный пакет не испортил всю систему. И самое главное - в этом репозитарии уже есть программа WVIEW (хоть версия и не новая) и не надо ничего собирать из исходников!
Установим её:
Цитата:
root@CyberWrt:~# opkg install wview zlib libpng libreadline gawk libgd libsqlite3 radlib libcurl
Опять же подтянутся зависимости...
Теперь разберемся с подключением погодной станции. WMR88 подключается к роутеру по USB, но - определяется не как USB-Serial, как я предполагал изначально, а как USB-HID устройство. Для правильно работы добавим пакеты в систему:
Цитата:
root@CyberWrt:~# opkg install usbutils kmod-usb-hid kmod-nls-cp437 kmod-nls-iso8859-1 kmod-nls-utf8
Так же устанавливаем модуль "Drivers" - "Драйвер HID"
Смотрим директории в /dev до подключения USB-порта метеостанции:
Цитата:
root@CyberWrt:~# ls /dev -l -p | grep -e "/"
drwxr-xr-x 3 root root 60 Jan 1 1970 bus/
drwxr-xr-x 2 root root 0 Jan 1 1970 pts/
drwxr-xr-x 2 root root 40 Jan 1 1970 shm/
Подключаем станцию, перезагружаемся, проверяем опять директории в /dev:
Цитата:
root@CyberWrt:~# ls /dev -l -p | grep -e "/"
drwxr-xr-x 3 root root 60 Jan 1 1970 bus/
drwxr-xr-x 2 root root 0 Jan 1 1970 pts/
drwxr-xr-x 2 root root 40 Jan 1 1970 shm/
drwxr-xr-x 2 root root 60 Dec 10 01:34 usb/
У меня устройство в lsusb никак не определилось почему то:
Цитата:
root@CyberWrt:~# lsusb
Bus 001 Device 002: ID 058f:6254 Alcor Micro Corp. USB Hub
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 001 Device 003: ID 0fde:ca01
Bus 001 Device 004: ID 0781:5571 SanDisk Corp. Cruzer Fit
Тем не менее, порт появился по пути:
Цитата:
root@CyberWrt:~# ls /dev/usb -l
crw-r--r-- 1 root root 180, 96 Dec 10 01:34 hiddev0
5. Далее настраиваем пакет wview.
Создадим директории для работы программы:
Цитата:
root@CyberWrt:~# cd /
root@CyberWrt:/# mkdir /wview
root@CyberWrt:/# mkdir /wview/html
root@CyberWrt:/# mkdir /wview/data
root@CyberWrt:/# mkdir /wview/img
root@CyberWrt:/# ls /wview -l
drwxr-xr-x 2 root root 4096 Dec 10 21:54 data
drwxr-xr-x 2 root root 4096 Dec 10 21:54 html
drwxr-xr-x 2 root root 4096 Dec 10 21:54 img
Так как в установленном пакете отсутствуют файлы шаблонов, скачаем их по этой ссылке и распакуем из архива все файлы по пути wview.x.x.x./examples/html/ во вновь созданную директорию /wview/html/.
На всякий случай (чтобы избежать ошибок конфигурирования ниже) скопируем из архива по пути wview.x.x.x./examples/html/ все файлы и папки в директорию с конфиг-файлами /etc/wview/html/.
Можно через консоль, можно с помощью программки WinSCP.
В итоге получаем:
Цитата:
root@CyberWrt:~# ls /wview/html -l
-rw-r--r-- 1 root root 3199 Jan 6 2014 Template-Skins-HOWTO.txt
drwxr-xr-x 5 root root 4096 Dec 10 22:06 chrome
drwxr-xr-x 5 root root 4096 Dec 10 22:06 classic
drwxr-xr-x 5 root root 4096 Dec 10 22:06 exfoliation
-rw-r--r-- 1 root root 17690 Jan 26 2014 parameterlist.htx
-rw-r--r-- 1 root root 9771 Jan 26 2014 parameterlist.txt
Делаем "слепки" БД sqlite из /etc/wview с данными и для конфигурации:
Цитата:
root@CyberWrt:~# cd /wview/data
root@CyberWrt:/wview/data# sqlite3 wview-archive.sdb '.read /etc/wview/wview-archive.sql'
root@CyberWrt:/wview/data# cd /etc/wview
root@CyberWrt:/etc/wview# sqlite3 wview-conf.sdb '.read /etc/wview/wview-conf.sql'
Теперь самое время записать данные в конфигурационную БД, делается это встроенным мастером, вызывается командой:
Цитата:
root@CyberWrt:/etc/wview# wviewconfig
Мастер будет задавать разные вопросы, в основном можно отвечать значениями по-умолчанию, за исключением:
1. PARAMETER: STATION_TYPE - в случае WMR88 по USB вписываем WMR88,
2. PARAMETER: STATION_DEV - у меня станция определилась как /dev/usb/hiddev0 - вписываем это значение,
3. PARAMETER: HTMLGEN_IMAGE_PATH - хранить сгенерированные html-файлы будем в /wview/img,
4. PARAMETER: HTMLGEN_HTML_PATH - шаблоны мы качали в директорию /wview/html.
Можно конечно поменять и другие значения, как то - широта/долгота/высота над ур.м. в месте установки, название станции, город и прочее...
Подробнее что означает и как используется каждый параметр можно почитать в мануале.
Теперь сконфигурируем шаблоны html:
Цитата:
root@CyberWrt:/etc/wview# wviewhtmlconfig
######################################## ########################################
!!!!!!!!!!!!!!!! READ THIS BEFORE PROCEEDING !!!!!!!!!!!!!!!!

--> HTML Template Configuration for wview

--> Note: This script will save existing templates to /etc/wview/html-YYYYMMDD.HHmmSS
before writing the new files based on your answers here - if that
is not what you want, hit CTRL-C now to abort this script!

######################################## ########################################

pausing 5 seconds .....


---------------------------------------------------------------------------
Which template skin do you want to use for your site?

wview site skins currently supported:
classic - default wview skin
chrome - classic with a chrome effect
(chrome): classic
Site skin classic selected...
With NO extended data graphics.
With US/Imperial units.
Saving old HTML directory to html-20141210.224001 ...
...done.
Saving old config files...
... done.
HTML setup complete:
you may now customize template files in /etc/wview/html
Перед запуском еще чуть подредактируем пути в скрипте запуска - файл /etc/init.d/wview:
Закоментируем строчки с помощью символа # в начале строки:
Цитата:
mkdir /mnt/extusb 2> /dev/null
mount /dev/sda1 /mnt/extusb 2> /dev/null
Заменим строчки:
Цитата:
ln -snf /mnt/extusb/wview-html $CONF_DIRECTORY/html
ln -snf /mnt/extusb/wview-data/measurements-archive /var/wview/archive
На:
Цитата:
ln -snf /wview/html $CONF_DIRECTORY/html
ln -snf /wview/data /var/wview/archive
Создадим символьную ссылку на html в директорию с веб-мордой CyberWRT:
Цитата:
root@CyberWrt:~# ln -snf /wview/img /www/weather
Если станция подключена, можно попробовать стартануть демон:
Цитата:
root@CyberWrt:~# /etc/init.d/wview start
/usr/bin/radmrouted is already running
2227
/usr/bin/wvhttpd: can't load library 'libssl.so.1.0.0'
/usr/bin/wviewftpd: can't load library 'libssl.so.1.0.0'
Итак, демонов запустили, теперь посмотрем сырые данные.
База данных у нас здесь: /wview/data/wview-archive.sdb.
Можно поставить phpliteadmin и посмотреть.
Единственное что - температуры в фаренгейтах, а давление в каких то inHg - дюймы рт. ст. что ли)))
Итого:
- демон запущен - можно слелать автозапуск через /etc/crontabs/ используя директиву @reboot,
- данные пишутся в БД раз в 5 минут,
- теперь любым php,py,java,bash-скриптом можно выцепить данные по последней строке таблицы БД.

Последний раз редактировалось electric; 11.12.2014 в 00:21.
electric вне форума   Ответить с цитированием
Старый 11.12.2014, 00:22   #10
electric
Member
 
Регистрация: 29.03.2013
Сообщений: 68
Вес репутации: 0
electric is an unknown quantity at this point
По умолчанию Re: CyberWRT модуль "WeatherStation"

Вопрос админу - все это хозяйство есть смысл оформлять в модуль?)))

P.S. Продолжаю рыть/искать что-ниб попроще. ИМХО для отправки данных на narodmon этот WVIEW избыточен...
P.P.S. Не разобрался пока как использовать html для отображения данных. Картинки красивые вроде генерит...
electric вне форума   Ответить с цитированием
Ответ


Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 
Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход


Текущее время: 11:58. Часовой пояс GMT +3.


Powered by vBulletin® Version 3.8.5
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot
Яндекс.Метрика