CCU.IO + DashUI

Обсуждение статей, технологий домашней автоматизации, программных и аппаратных решений
Bluefox
Сообщения: 150
Зарегистрирован: 03 мар 2014, 20:02

Re: CCU.IO + DashUI

Сообщение Bluefox » 16 июл 2014, 18:55

T-REX-XP писал(а):Доброго времени суток.
Заинтересовала ваша программа для умного дома.
Поднял тестовую версию на xpenology.

Хочу написать драйвер для ignio.com чтоб гороскопы парсить, подскажите, где можно глянуть пример получения и разбора xml.
Также хочу попробовать добавить системную информацию о сервере (температура и т.д), железо intel Atom, пакет sensors установлен и работает, где глянуть работу с выводом консольных утилит??


Спасибо.
Ответил здесь:
http://forum.iobroker.com/viewtopic.php ... 2&p=27#p27

freearduino
Сообщения: 3
Зарегистрирован: 16 июл 2014, 17:08

Re: CCU.IO + DashUI

Сообщение freearduino » 17 июл 2014, 07:28

Доброе время суток!
Установил вашу программу на Rasbery Pi.
Сейчас пытаюсь заставить управлять устройством на Ардуино, есть какие нибудь примеры взаимодействия?
Допустим считать температуру и отобразить?Построить графики?

electric
Сообщения: 57
Зарегистрирован: 16 сен 2013, 00:36

Re: CCU.IO + DashUI

Сообщение electric » 17 июл 2014, 10:14

freearduino писал(а):Доброе время суток!
Установил вашу программу на Rasbery Pi.
Сейчас пытаюсь заставить управлять устройством на Ардуино, есть какие нибудь примеры взаимодействия?
Допустим считать температуру и отобразить?Построить графики?
Я планирую использовать arduino с шилдом Etgernet.
Можно дуинкой отсылать http-запросы и таким образом передавать данные
Вот здесь можно посмотреть API - методом SET передать значение в переменную CCU.IO.

Так же, я думаю, можно по инициативе самого CCU.IO запрашивать http-запросом данные у ардуины, последняя может передать как текстом (разделитель & удобно парсить в PHP, в JAVA совсем не варю), но удобнее и лучше JSON.

Bluefox
Сообщения: 150
Зарегистрирован: 03 мар 2014, 20:02

Re: CCU.IO + DashUI

Сообщение Bluefox » 17 июл 2014, 11:27

freearduino писал(а):Доброе время суток!
Установил вашу программу на Rasbery Pi.
Сейчас пытаюсь заставить управлять устройством на Ардуино, есть какие нибудь примеры взаимодействия?
Допустим считать температуру и отобразить?Построить графики?
Я тоже хотел предложить взаимодейстиве c ethernet shield. Это будет самое простое и гибкое решение.
Конечно, можно подключить и по SPI к малине, но тогда накладывается ограничение на длинну проводов, да и вообще гибкость страдает.
Лучше всего с имитировать HTTP интерфейс с готового модуля (NetAlarm, MegaD), тогда и драйвер писать не надо. (На MegaD надо сделать только порт настраиваемым)
Если всё же есть желание изобрести свой интерфейс дайте мне знать, я скажу, что там должно быть. А так MegaD интерфейс в принципе продуман достаточно (только порт должен быть настраиваемым)

shaman1010
Сообщения: 142
Зарегистрирован: 12 ноя 2013, 00:34

Re: CCU.IO + DashUI

Сообщение shaman1010 » 17 июл 2014, 16:36

За прошедшее время приехал Cubietruck. На нем ccu.io завелся нормально.
Сейчас столкнулся с следующим:
Добавляю два объекта: 1) hqWidgets - IpCamera, 2) basic static - Image
На другом роутере поднят mjpeg-streamer.
В URL первого объекта прописываю http://ip.ip.ip.ip:порт/?action=stream
В URL второго либо то-же, либо http://ip.ip.ip.ip:порт/?action=snapshot (с периодом обновления 10сек).
Так вот: на ББ в Chrome все работает, в обоих объектах есть видео (либо снапшоты), а на планшете (NEXUS 2013) ни в хроме, ни в стандартном браузере нет ни видео ни снапшотов (мелкий значек отсутствия картинки либо подобие черного шума при отсутствии видео).
Где копать?
И еще: есть ONVIF-камера, у которой поток отдается по ONVIF и rtsp (rtsp://ip.ip.ip.ip:порт/mpeg4), как вообще такие камеры подключать? (добавление в URL не срабатывает).

p.s. Обновился с 1.0.42 до 1.0.43 - перестал отрабатывать интервал обновлений во втором объекте (/?action=snapshot уже не обновляетя каждые 10 сек).
На планшете проблема осталась.
p.p.s. Изменил интервал обновления на 9сек - обновление заработало, потом вернул на 10 сек - работает, хотя до этого пробовал изменить на 1сек, потом вернуть - не заводилось (обновлялось только в момент применения опции). Чудеса, да и только :-)
p.p.p.s. На планшете запустил один раз на прямую http://ip.ip.ip.ip:порт/?action=stream и http://ip.ip.ip.ip:порт/?action=snapshot, после этого начали работать в хроме оба объекта. Я же говорю: Чудеса, да и только :-)

Bluefox
Сообщения: 150
Зарегистрирован: 03 мар 2014, 20:02

Re: CCU.IO + DashUI

Сообщение Bluefox » 17 июл 2014, 19:48

shaman1010 писал(а):За прошедшее время приехал Cubietruck. На нем ccu.io завелся нормально.
Сейчас столкнулся с следующим:
Добавляю два объекта: 1) hqWidgets - IpCamera, 2) basic static - Image
На другом роутере поднят mjpeg-streamer.
В URL первого объекта прописываю http://ip.ip.ip.ip:порт/?action=stream
В URL второго либо то-же, либо http://ip.ip.ip.ip:порт/?action=snapshot (с периодом обновления 10сек).
Так вот: на ББ в Chrome все работает, в обоих объектах есть видео (либо снапшоты), а на планшете (NEXUS 2013) ни в хроме, ни в стандартном браузере нет ни видео ни снапшотов (мелкий значек отсутствия картинки либо подобие черного шума при отсутствии видео).
Где копать?
И еще: есть ONVIF-камера, у которой поток отдается по ONVIF и rtsp (rtsp://ip.ip.ip.ip:порт/mpeg4), как вообще такие камеры подключать? (добавление в URL не срабатывает).

p.s. Обновился с 1.0.42 до 1.0.43 - перестал отрабатывать интервал обновлений во втором объекте (/?action=snapshot уже не обновляетя каждые 10 сек).
На планшете проблема осталась.
p.p.s. Изменил интервал обновления на 9сек - обновление заработало, потом вернул на 10 сек - работает, хотя до этого пробовал изменить на 1сек, потом вернуть - не заводилось (обновлялось только в момент применения опции). Чудеса, да и только :-)
p.p.p.s. На планшете запустил один раз на прямую http://ip.ip.ip.ip:порт/?action=stream и http://ip.ip.ip.ip:порт/?action=snapshot, после этого начали работать в хроме оба объекта. Я же говорю: Чудеса, да и только :-)
А разве камеры не требуют пароля и логина? Скорей всего при запуске через браузер нужно было ввести пароль и логин.
Использовать надо строку:
http://login:pass@ip.ip.ip.ip:порт/?action=stream

shaman1010
Сообщения: 142
Зарегистрирован: 12 ноя 2013, 00:34

Re: CCU.IO + DashUI

Сообщение shaman1010 » 17 июл 2014, 20:13

Bluefox писал(а):А разве камеры не требуют пароля и логина? Скорей всего при запуске через браузер нужно было ввести пароль и логин.
Использовать надо строку:
http://login:pass@ip.ip.ip.ip:порт/?action=stream
Я как-то выпустил эту связь из вида. Но проблема не совсем в этом. Прописал логин/пароль. На стандартном браузере НЕ завелось, хотя в хроме работало. Перезагрузил планшет - в хроме перестало работать (логин/пароль прописан в dashui и сохранен в браузере).
В общем проблема примерно локализована, она точно связана с авторизацией. Но есть одно большое НО: прямая ссылка в браузере вида http://login:pass@ip.ip.ip.ip:порт/?action=stream отрабатывает корректно (изображения и в браузере и в dashui появляются). Но если НЕ зайти браузером, из dashui параметры авторизации не парсятся.

И второй вопрос об ONVIF пока актуален...

Bluefox
Сообщения: 150
Зарегистрирован: 03 мар 2014, 20:02

Re: CCU.IO + DashUI

Сообщение Bluefox » 17 июл 2014, 22:49

shaman1010 писал(а):
Bluefox писал(а):А разве камеры не требуют пароля и логина? Скорей всего при запуске через браузер нужно было ввести пароль и логин.
Использовать надо строку:
http://login:pass@ip.ip.ip.ip:порт/?action=stream
Я как-то выпустил эту связь из вида. Но проблема не совсем в этом. Прописал логин/пароль. На стандартном браузере НЕ завелось, хотя в хроме работало. Перезагрузил планшет - в хроме перестало работать (логин/пароль прописан в dashui и сохранен в браузере).
В общем проблема примерно локализована, она точно связана с авторизацией. Но есть одно большое НО: прямая ссылка в браузере вида http://login:pass@ip.ip.ip.ip:порт/?action=stream отрабатывает корректно (изображения и в браузере и в dashui появляются). Но если НЕ зайти браузером, из dashui параметры авторизации не парсятся.

И второй вопрос об ONVIF пока актуален...
DashUI может только то, что может браузер. Я не нашел никакой информации по поводу chrome и onvif. И из опыта не слышал, что бы кто-то подключал.
Вроде, как только mjpeg можно.

shaman1010
Сообщения: 142
Зарегистрирован: 12 ноя 2013, 00:34

Re: CCU.IO + DashUI

Сообщение shaman1010 » 18 июл 2014, 12:43

Bluefox писал(а):DashUI может только то, что может браузер. Я не нашел никакой информации по поводу chrome и onvif. И из опыта не слышал, что бы кто-то подключал.
Вроде, как только mjpeg можно.
Начинаю копать в этом направлении. Одно из решений - WebRTC, но работает только на x86-х платформах и не бесплатно. На Cubietruck-е проинсталилось, но не заработало (поздно обнаружил, что только x86).
Сейчас в поисках опенсорсных альтернатив, способных снимать rtsp-поток.

Но dashui то все-равно некорректно отрабатывает авторизацию...

Bluefox
Сообщения: 150
Зарегистрирован: 03 мар 2014, 20:02

Re: CCU.IO + DashUI

Сообщение Bluefox » 18 июл 2014, 20:59

shaman1010 писал(а):
Bluefox писал(а):DashUI может только то, что может браузер. Я не нашел никакой информации по поводу chrome и onvif. И из опыта не слышал, что бы кто-то подключал.
Вроде, как только mjpeg можно.
Начинаю копать в этом направлении. Одно из решений - WebRTC, но работает только на x86-х платформах и не бесплатно. На Cubietruck-е проинсталилось, но не заработало (поздно обнаружил, что только x86).
Сейчас в поисках опенсорсных альтернатив, способных снимать rtsp-поток.

Но dashui то все-равно некорректно отрабатывает авторизацию...
А что за камера?

shaman1010
Сообщения: 142
Зарегистрирован: 12 ноя 2013, 00:34

Re: CCU.IO + DashUI

Сообщение shaman1010 » 18 июл 2014, 22:21

Bluefox писал(а):А что за камера?
rtsp - T38C-ONVIF V2.4.6.2 build 2013-05-31 Linux 2.6.18_arm_v5t_le (1мп китаец)
mjpg - mjpg-streamer_r63-2_mipsel на AsusWRT

freearduino
Сообщения: 3
Зарегистрирован: 16 июл 2014, 17:08

Re: CCU.IO + DashUI

Сообщение freearduino » 20 июл 2014, 23:59

electric писал(а):
freearduino писал(а):Доброе время суток!
Установил вашу программу на Rasbery Pi.
Сейчас пытаюсь заставить управлять устройством на Ардуино, есть какие нибудь примеры взаимодействия?
Допустим считать температуру и отобразить?Построить графики?
Я планирую использовать arduino с шилдом Etgernet.
Можно дуинкой отсылать http-запросы и таким образом передавать данные
Вот здесь можно посмотреть API - методом SET передать значение в переменную CCU.IO.

Так же, я думаю, можно по инициативе самого CCU.IO запрашивать http-запросом данные у ардуины, последняя может передать как текстом (разделитель & удобно парсить в PHP, в JAVA совсем не варю), но удобнее и лучше JSON.
Собрал на Ардуино контроллер температуры в комнате. Возникла трудность в связке с CCU.IO. Не могу разобраться с драйвером, есть готовый драйвер или нужно писать свой?

electric
Сообщения: 57
Зарегистрирован: 16 сен 2013, 00:36

Re: CCU.IO + DashUI

Сообщение electric » 21 июл 2014, 10:05

freearduino писал(а):
electric писал(а):
freearduino писал(а):Доброе время суток!
Установил вашу программу на Rasbery Pi.
Сейчас пытаюсь заставить управлять устройством на Ардуино, есть какие нибудь примеры взаимодействия?
Допустим считать температуру и отобразить?Построить графики?
Я планирую использовать arduino с шилдом Etgernet.
Можно дуинкой отсылать http-запросы и таким образом передавать данные
Вот здесь можно посмотреть API - методом SET передать значение в переменную CCU.IO.

Так же, я думаю, можно по инициативе самого CCU.IO запрашивать http-запросом данные у ардуины, последняя может передать как текстом (разделитель & удобно парсить в PHP, в JAVA совсем не варю), но удобнее и лучше JSON.
Собрал на Ардуино контроллер температуры в комнате. Возникла трудность в связке с CCU.IO. Не могу разобраться с драйвером, есть готовый драйвер или нужно писать свой?
Если мастером передачи сделать Ардуину, то можно так:
1. Смотрим адресное пространство системы, там написано
100000-299999 reserviert f?r eigene Scripte
Т.е. по этим адресам можно создавать свои переменные.
Создадим переменную с соответствующим описанием и адресом, к примеру, 100001.
2. Смотрим документацию, функции SimpleAPI.
Данные можно передавать в систему следующей строкой http-запроса SET:
http://ccu-io-host:ccu.io-port/api/set/100001/?value=ХХХ

Если же мастером сети должен выступать сервер с CCU.IO, то нужно писать свой драйвер, который будет у ардуины http-запросом запрашивать данные, а последняя, в свою очередь, отвечать строкой текстовой (потом в драйвере парсить) или, желательно, в формате JSON. В интете куча библиотек для Ардуино с описанием веб-серверов, в том числе и по работе с JSON...

Bluefox
Сообщения: 150
Зарегистрирован: 03 мар 2014, 20:02

Re: CCU.IO + DashUI

Сообщение Bluefox » 21 июл 2014, 10:59

freearduino писал(а):
electric писал(а):
freearduino писал(а):Доброе время суток!
Установил вашу программу на Rasbery Pi.
Сейчас пытаюсь заставить управлять устройством на Ардуино, есть какие нибудь примеры взаимодействия?
Допустим считать температуру и отобразить?Построить графики?
Я планирую использовать arduino с шилдом Etgernet.
Можно дуинкой отсылать http-запросы и таким образом передавать данные
Вот здесь можно посмотреть API - методом SET передать значение в переменную CCU.IO.

Так же, я думаю, можно по инициативе самого CCU.IO запрашивать http-запросом данные у ардуины, последняя может передать как текстом (разделитель & удобно парсить в PHP, в JAVA совсем не варю), но удобнее и лучше JSON.
Собрал на Ардуино контроллер температуры в комнате. Возникла трудность в связке с CCU.IO. Не могу разобраться с драйвером, есть готовый драйвер или нужно писать свой?
Ну это было бы странно, если на каждый собраный где-то прибор в CCU.IO был бы готовый драйвер. :)
Я по этому и написал, что не плохо было бы взять готовую схему сообщений от NetAlarm или MegaD. Как выглядит HTTP интерфейс у ардуины?

freearduino
Сообщения: 3
Зарегистрирован: 16 июл 2014, 17:08

Re: CCU.IO + DashUI

Сообщение freearduino » 21 июл 2014, 23:27

Ну это было бы странно, если на каждый собраный где-то прибор в CCU.IO был бы готовый драйвер. :)
Я по этому и написал, что не плохо было бы взять готовую схему сообщений от NetAlarm или MegaD. Как выглядит HTTP интерфейс у ардуины?
В Ардуине записана следующая программа:

Код: Выделить всё

// A simple web server that always just says "Hello World"

#include "etherShield.h"
#include "ETHER_28J60.h"

int outputPin = 6;

static uint8_t mac[6] = {0x54, 0x55, 0x58, 0x10, 0x00, 0x24};   // this just needs to be unique for your network, 
                                                                // so unless you have more than one of these boards
                                                                // connected, you should be fine with this value.
                                                           
static uint8_t ip[4] = {192, 168, 1, 15};                       // the IP address for your board. Check your home hub
                                                                // to find an IP address not in use and pick that
                                                                // this or 10.0.0.15 are likely formats for an address
                                                                // that will work.

static uint16_t port = 80;                                      // Use port 80 - the standard for HTTP

ETHER_28J60 e;

void setup()
{ 
  e.setup(mac, ip, port);
  pinMode(outputPin, OUTPUT);
}

void loop()
{
  char* params;
  if (params = e.serviceRequest())
  {
    e.print("<H1>Web Remote</H1>");
    if (strcmp(params, "?cmd=on") == 0)
    {
      digitalWrite(outputPin, HIGH);
      e.print("<A HREF='?cmd=off'>Turn off</A>");
    }
    else if (strcmp(params, "?cmd=off") == 0) // Modified -- 2011 12 15 # Ben Schueler
    {
      digitalWrite(outputPin, LOW);
      e.print("<A HREF='?cmd=on'>Turn on</A>");
    }
    e.respond();
  }
}


т.е при обращении на порт 80 она выдает ?cmd=off" или ?cmd=on"

Или можно возвращать число.

Bluefox
Сообщения: 150
Зарегистрирован: 03 мар 2014, 20:02

Re: CCU.IO + DashUI

Сообщение Bluefox » 22 июл 2014, 18:31

freearduino писал(а):
Ну это было бы странно, если на каждый собраный где-то прибор в CCU.IO был бы готовый драйвер. :)
Я по этому и написал, что не плохо было бы взять готовую схему сообщений от NetAlarm или MegaD. Как выглядит HTTP интерфейс у ардуины?
В Ардуине записана следующая программа:

Код: Выделить всё

// A simple web server that always just says "Hello World"

#include "etherShield.h"
#include "ETHER_28J60.h"

int outputPin = 6;

static uint8_t mac[6] = {0x54, 0x55, 0x58, 0x10, 0x00, 0x24};   // this just needs to be unique for your network, 
                                                                // so unless you have more than one of these boards
                                                                // connected, you should be fine with this value.
                                                           
static uint8_t ip[4] = {192, 168, 1, 15};                       // the IP address for your board. Check your home hub
                                                                // to find an IP address not in use and pick that
                                                                // this or 10.0.0.15 are likely formats for an address
                                                                // that will work.

static uint16_t port = 80;                                      // Use port 80 - the standard for HTTP

ETHER_28J60 e;

void setup()
{ 
  e.setup(mac, ip, port);
  pinMode(outputPin, OUTPUT);
}

void loop()
{
  char* params;
  if (params = e.serviceRequest())
  {
    e.print("<H1>Web Remote</H1>");
    if (strcmp(params, "?cmd=on") == 0)
    {
      digitalWrite(outputPin, HIGH);
      e.print("<A HREF='?cmd=off'>Turn off</A>");
    }
    else if (strcmp(params, "?cmd=off") == 0) // Modified -- 2011 12 15 # Ben Schueler
    {
      digitalWrite(outputPin, LOW);
      e.print("<A HREF='?cmd=on'>Turn on</A>");
    }
    e.respond();
  }
}


т.е при обращении на порт 80 она выдает ?cmd=off" или ?cmd=on"

Или можно возвращать число.
Я немножко не понял вопроса, зато понял следующее:
- Эта программа управляет одним выходом 6.
- В переменной "params" появляется строка запроса. Т.е. если запрос http://arduino-ip/?sometext , то в этой переменной будет "?sometext"
- При обращении на порт 80 браузером она выдает: <H1>Web Remote</H1>
- При вызове http://arduino-ip/?cmd=on выдает: <H1>Web Remote</H1><A HREF='?cmd=off'>Turn off</A> и выключает выход 6
- При вызове http://arduino-ip/?cmd=off выдает: <H1>Web Remote</H1><A HREF='?cmd=on'>Turn on</A> и включает выход 6

Драйвер для одного порта писать совсем не обязательно. Можно обойтись ScriptEngine.

Код: Выделить всё

setObject(100001, {
    Name: "Arduino.Port6",
    TypeName: "VARDP"
});
on(100001, function (obj) {
    if (obj.newState.value) {
         request('http://arduino-ip/?cmd=on');
    } else {
         request('http://arduino-ip/?cmd=off');
    }

});

Вот тут (http://forum.iobroker.com/viewtopic.php?f=6&t=27) собираются написать драйвер для arduino. Можно присоединиться.

asid
Сообщения: 15
Зарегистрирован: 19 июл 2014, 12:53

Re: CCU.IO + DashUI

Сообщение asid » 24 июл 2014, 21:14

При изменении значения out-порта Мегадевайса (например, MegaD_mega1.OUT_Port7) через форму Значения или виджет hqWidgets on/off состояние true меняется на 0.0039, а false на 0.0000. Из-за этого виджет работает некорректно (не видит когда прибор включен, из-за этого не может отправить команду на выключение)

Bluefox
Сообщения: 150
Зарегистрирован: 03 мар 2014, 20:02

Re: CCU.IO + DashUI

Сообщение Bluefox » 25 июл 2014, 17:45

asid писал(а):При изменении значения out-порта Мегадевайса (например, MegaD_mega1.OUT_Port7) через форму Значения или виджет hqWidgets on/off состояние true меняется на 0.0039, а false на 0.0000. Из-за этого виджет работает некорректно (не видит когда прибор включен, из-за этого не может отправить команду на выключение)
А можно посмотреть на файл из ccu.io/log/ccu.io.log?
И если не трудно перейти на http://forum.iobroker.com/viewforum.php?f=6
Этот ресугрс я читаю чаще.

MERKATOR
Сообщения: 2
Зарегистрирован: 11 авг 2014, 02:09

Re: CCU.IO + DashUI

Сообщение MERKATOR » 11 авг 2014, 02:25

Простите конечно, но это уже не удобный и легкий умный дом , а какой-то садомазохизм :)
ИМХО
1) просто куча лишних прослоек
2)практически отсутствующая автономность в отсутствии инета
3)нереально замудренная настройка
4)качество кода....
и еще много по делу и нет :)

У меня сложилось впечатление, что хотели втиснуть все и сразу и главное побольше новомодных технологий и инструментов, причем с акцентом на последнее.

Bluefox
Сообщения: 150
Зарегистрирован: 03 мар 2014, 20:02

Re: CCU.IO + DashUI

Сообщение Bluefox » 11 авг 2014, 13:08

MERKATOR писал(а):Простите конечно, но это уже не удобный и легкий умный дом , а какой-то садомазохизм :)
ИМХО
1) просто куча лишних прослоек
2)практически отсутствующая автономность в отсутствии инета
3)нереально замудренная настройка
4)качество кода....
и еще много по делу и нет :)

У меня сложилось впечатление, что хотели втиснуть все и сразу и главное побольше новомодных технологий и инструментов, причем с акцентом на последнее.
Я так понимаю, что это вы просто так написали. Если же нет, то поконкретней выразится не помешает.
Сейчас пишется следующая версия и мы бы учли конструктивную критику, а не выражения АМ/КГ.
Например, на хабре написали, что драйвер слишком замудрен, через неделю мы переписали demo.

А здесь?
2)практически отсутствующая автономность в отсутствии инета
Инет не нужен совсем в отличие NindjaBlocks, IFTTT и прочих облачных решений. На это был упор. Непонятно, откуда вы это взяли.
качество кода....
Во второй версии применяется JSHint и JSCS. Нужно прикрутить юнит тесты, но всё руки не доходят. Может поможете?

Короче, больше конкретики и меньше громких фраз. Мы люди, а не абстрактная фирма. И с удовольствием что нибудь поменяем, если увидим конструктивные замечания.

Ответить