Спасибо за труд. К сожалению сейчас совсем нет времени, да и неталармы у меня немного модифицированные, в общем пока только слежу за темой.Bluefox писал(а): Попробовал сделать netAlarm адаптер. Но все вслепую.
Нужно, что бы кто-то протестил.
CCU.IO + DashUI
Re: CCU.IO + DashUI
Re: CCU.IO + DashUI
Что бы выбрать нажми сюда: Т.к. аналоговые значения от 0 до 255, то для их преобразования есть фактор и сдвиг.plusQ писал(а):1) пробую добавить виджет hqWidget елемент On/OffBluefox писал(а): MeagD Драйвер вообще работает? Кто нибудь может подтвердить работоспособность?
кликаю на выбрать ID объекта - там пусто
2) пробую добавить виджет hqWidget елемент Motion Detector
кликаю на выбрать ID объекта - там доступны порты 7-13, это те которые OUT а не IN
в ID освещенности доступны все порты
3) что значит в настройках megaD колонка Сдвиг ?
4) в megaD можно настроить порты 10, 12 и13 в режим ШИМ, иными словами реализовать функцию диммирования
виджет hqWidget елемент Dimmer также не видет megaD
Код: Выделить всё
значение ccu.io = (значение из меги / 256) * фактор + сдвиг
значение для меги = ((значение ccu.io - сдвиг) / фактор) * 256
Re: CCU.IO + DashUI
Я написал драйвер таким образом, что он сначала считывает status с именами и потом, основываясь на Tx,INx,OUTx,Ax, задает имена и помечает порты, как дискретный или аналоговый. Количество портов тоже можно сконфигурировать от 1 до 32.Urbas81 писал(а):Спасибо за труд. К сожалению сейчас совсем нет времени, да и неталармы у меня немного модифицированные, в общем пока только слежу за темой.Bluefox писал(а): Попробовал сделать netAlarm адаптер. Но все вслепую.
Нужно, что бы кто-то протестил.
Как они у тебя модифицированы?
Единственное, мне не понятно, как можно по HTTP управлять OUT портом.
MegaD Драйвер для CCU.IO
А ещё не понятно: как считать из меги температуру и аналоговые входы.
Re: CCU.IO + DashUI
Версию с множителем и сдвигом для MegaD драйвера можно взять здесь:
https://github.com/GermanBluefox/ccu.io ... D/megaD.js
https://github.com/GermanBluefox/ccu.io ... D/megaD.js
Re: CCU.IO + DashUI
вот лог
вот ответы если выполнять в браузере
Код: Выделить всё
2014-06-26 21:30:05.241 info : adapter megaD getPortState http://192.168.1.32/sec/?pt=0&cmd=get
2014-06-26 21:30:05.243 info : adapter megaD getPortState http://192.168.1.32/sec/?pt=1&cmd=get
2014-06-26 21:30:05.244 info : adapter megaD getPortState http://192.168.1.32/sec/?pt=2&cmd=get
2014-06-26 21:30:05.245 info : adapter megaD getPortState http://192.168.1.32/sec/?pt=3&cmd=get
2014-06-26 21:30:05.245 info : adapter megaD getPortState http://192.168.1.32/sec/?pt=4&cmd=get
2014-06-26 21:30:05.246 info : adapter megaD getPortState http://192.168.1.32/sec/?pt=5&cmd=get
2014-06-26 21:30:05.247 info : adapter megaD getPortState http://192.168.1.32/sec/?pt=6&cmd=get
2014-06-26 21:30:05.258 info : adapter megaD: detected new value for port 0: NaN, calc state NaN
2014-06-26 21:30:05.259 info : adapter megaD setState 74502 NaN
2014-06-26 21:30:05.270 info : adapter megaD: detected new value for port 0: NaN, calc state NaN
2014-06-26 21:30:05.271 info : adapter megaD setState 74504 NaN
2014-06-26 21:30:05.274 info : adapter megaD: detected new value for port 0: NaN, calc state NaN
2014-06-26 21:30:05.274 info : adapter megaD setState 74506 NaN
2014-06-26 21:30:05.278 info : adapter megaD: detected new value for port 0: NaN, calc state NaN
2014-06-26 21:30:05.278 info : adapter megaD setState 74508 NaN
2014-06-26 21:30:05.287 info : adapter megaD: detected new value for port 0: NaN, calc state NaN
2014-06-26 21:30:05.287 info : adapter megaD setState 74510 NaN
2014-06-26 21:30:05.296 info : adapter megaD: detected new value for port 0: NaN, calc state NaN
2014-06-26 21:30:05.296 info : adapter megaD setState 74512 NaN
2014-06-26 21:30:05.307 info : adapter megaD: detected new value for port 0: NaN, calc state NaN
2014-06-26 21:30:05.307 info : adapter megaD setState 74514 NaN
Код: Выделить всё
http://192.168.1.32/sec/?pt=0&cmd=get
OFF/0
http://192.168.1.32/sec/?pt=1&cmd=get
ON/5
http://192.168.1.32/sec/?pt=2&cmd=get
OFF/0
Re: CCU.IO + DashUI
Посмотрю после игры.
Почему там /5 или /0...?
Почему там /5 или /0...?
Re: CCU.IO + DashUI
через слэш количество срабатыванийBluefox писал(а):Посмотрю после игры.
Почему там /5 или /0...?
да и еще порты 7-13 хоть и настроены на OUT но их состояние также можно проверить
Код: Выделить всё
http://192.168.1.32/sec/?pt=7&cmd=get
OFF
http://192.168.1.32/sec/?pt=9&cmd=get
ON
http://192.168.1.32/sec/?pt=13&cmd=get
17
тут ШИМ димирование
Re: CCU.IO + DashUI
Вот новая версия:
https://github.com/GermanBluefox/ccu.io ... D/megaD.js
https://github.com/GermanBluefox/ccu.io ... D/megaD.js
В документации ни слова про это...через слэш количество срабатываний
Re: CCU.IO + DashUI
пишит в логах
ЗЫ megaD.js до этого использовал с первой страницы темы
Код: Выделить всё
at process._tickCallback (node.js:415:13)TypeError: Object 17 has no method 'split'
at processPortState (/opt/ccu.io/adapter/megaD/megaD.js:259:23)
at IncomingMessage.<anonymous> (/opt/ccu.io/adapter/megaD/megaD.js:240:21)
at IncomingMessage.EventEmitter.emit (events.js:117:20)
at _stream_readable.js:920:16
Re: CCU.IO + DashUI
Ну чтож...
Трудно без устройства.
Следующая попытка:
https://github.com/GermanBluefox/ccu.io ... D/megaD.js
Трудно без устройства.
Следующая попытка:
https://github.com/GermanBluefox/ccu.io ... D/megaD.js
Re: CCU.IO + DashUI
Какая классная программа, хочется побольше разных примеров её внедрения, так как форум на немецком где есть много обсуждения, для меня это полный лес. Спасибо разработчику.
-
- Сообщения: 18
- Зарегистрирован: 06 дек 2012, 13:24
Re: CCU.IO + DashUI
Круто.Bluefox писал(а): Ядро я написал на 50%. Другую часть (начальную) написал товарищ из германии, а я понимаю немецкий. Вот и получилась система изначально для немецкой системы автоматизации. Но я активно перевожу все части на английский и русский. Так, что если где заметите немецкое слово, дайте знать. Уже глаз замылился
Например такая задача: для того, чтобы разбудить человека, можно в течении 30 минут плавно включать свет. Если человек проснулся немного раньше, он может выключателем включить этот свет на полную, не ожидая 30 минут. Если не прервать процесс плавного включения, то после отработки команды пользователя, свет продолжит включаться дальше. Я хотел спросить: есть ли какие средства взаимодействия между процессами (семафоры, мьютексы и т.д.)Bluefox писал(а): Разруливание... Сама CCU.IO не обращается два раза к одному и тому же устройству одновременно. А т.к. основная коммуникация происходит по TCP/IP, то эта задача ложится на протокол. С чем он успешно справляется.
А если такие ресурсы, как GPIO на малине, то да. Доступ должен быть тогда только у CCU.IO.
Сейчас - ничего. Нахожусь снова на распутье. Просто взялся один за большой проект и не успел довести до логического конца. Сейчас свободное время закончилось.Bluefox писал(а): Какие системы автоматизации используются у тебя?
Я взялся сразу за разработку и железа и п/о. Из железок получилось:
1. Web-контроллер на STM32 общается с основным сервером по HTTP (является HTTP сервером и клиентом), к нему можно непосредственно подключать датчики и исполнительные механизмы. Так же он является шлюзом для подключения удаленных устройств по CAN, 4-20, радио (CC1101) протоколы собственные.
2. LED драйвер, подключающийся к web-контроллеру по CAN и/или Радио
3. Датчики влажность/давление/температура/освещенность/счетчик с автономным питанием , подключающийся к web-контроллеру по Радио.
железо прошло 1,5 итерации (нужно 3-4 итерации для получения вменяемого результата).
Основной сервер делал на Apache, PHP, mySQL. Предполагалась возможность создания пользователем адаптеров под различные устройства и виджетов для отображения информации в произвольном виде (что-то вроде DashUI). Не понравилась сложность создания дополнительных элементов. Сделал несколько выводов:
1. Система должна быть простой и интуитивно понятной. В CCU.IO есть инсталлятор, который все делает сам - очень хорошая штука. Еще было бы здорово сделать демо базу, которая будет содержать тестовые данные и несколько экранов с настроенным интерфейсом DashGUI а также адаптер, который может генерировать случайные события и имитировать показания датчиков. Плюс несколько скриптов. Т.е. нажал пользователь в интерфейсе кнопку, а на соседнем виджете загорелась лампочка (ну и т.д.). Изучать работу системы проще всего на готовых работающих примерах.
2. Красивой. Если пользователь сам создает интерфейс, предложить ему шаблон/рекомендации по созданию интерфейса.
3. Удобство и простота внесения изменений. Если у конечного пользователя будет возможность что-нибудь напрограммить для себя и поделиться этим с остальными (возможно с премодерацией), это может способствовать быстрому развитию и распространению системы. Для этого нужны средства отладки и инструкция по развертыванию средств разработки или готовая сборка.
Еще что касается интерфейса создания скриптов: было бы круто иметь на экране дерево всех устройств, которые можно было бы перетаскивать в код скрипта или на диаграмму, если скрипт создается с помощью графических средств. А также иметь список других скриптов или шаблонов в которые можно постоянно подглядывать и вырезать нужные куски. Программирование в стиле Ctrl+C,Ctrl+V очень ускоряет процесс.
Несколько скриншотов из того, что получилось:
-
- Сообщения: 21
- Зарегистрирован: 15 окт 2013, 09:04
Re: CCU.IO + DashUI
А сколько ОЗУС "ест" CCU.IO вместе с node.js?
Re: CCU.IO + DashUI
Порядка 40 мегабайт на процесс. Т.е. Core ~40Mb + ScriptEngine ~40Mb + (Adapter ~40Mb * кол-во адаптеров). Т.е на малине с 256 Мб будет тесновато.Acid_Reptile писал(а):А сколько ОЗУС "ест" CCU.IO вместе с node.js?
На 512 хватает на всё. (256 уже не производятся, но можно купить на ebay)
Re: CCU.IO + DashUI
Это довольно просто делается ч.з. переменную в CCU.IO.bzaugolnov писал(а): Например такая задача: для того, чтобы разбудить человека, можно в течении 30 минут плавно включать свет. Если человек проснулся немного раньше, он может выключателем включить этот свет на полную, не ожидая 30 минут. Если не прервать процесс плавного включения, то после отработки команды пользователя, свет продолжит включаться дальше. Я хотел спросить: есть ли какие средства взаимодействия между процессами (семафоры, мьютексы и т.д.)
Можно создать пользовательскую переменную (Все с индексом >= 100000) и эта переменная будет видна во всех скриптах, ccu.ui, Dash UI и во всех драйверах. Нужно только подписаться на неё. И через нее делать логику. (Можно создать сколько угодно переменных).
Но в этом конкретном случае глобальная переменная не нужна и скрипт будет выглядеть так:
Код: Выделить всё
var timerWakeUpRunning = null; // Наш таймер для 30 минут
var lampValueWakeUp = 0; // Значение света от 0 до 1 как float
var idSwitch = 12123; // Выключатель в спалне
var idLamp = 12323; // Исполнительный модуль для лампы в спальне
// Выполнять каждое утро по рабочим дням в 7:15
schedule("15 7 * * 1-5", function () {
if (timerWakeUpRunning) {
clearInterval(timerWakeUpRunning);
}
// Обнулить значение яркости
lampValueWakeUp = 0;
// выполнять каждую минуту
timerWakeUpRunning = setInterval(function() {
lampValueWakeUp += 0.033; // одна тридцатая
if (lampValueWakeUp >= 1) {
lampValueWakeUp = 1;
}
setState(idLamp, lampValueWakeUp);
// Мы включили лампу на полную. Можно остановить таймер.
if (lampValueWakeUp >= 1) {
clearInterval (timerWakeUpRunning);
timerWakeUpRunning = null;
}
}, 60000);// 60 секунд
});
// подписаться на события нажатия на выключатель
subscribe(idSwitch, function (obj) {
// Если таймер просыпания запущен
if (timerWakeUpRunning) {
// Если свет включен с выключателя
if (obj.newState.value) {
// Можно остановить таймер.
clearInterval(timerWakeUpRunning);
timerWakeUpRunning = null;
} else {
// Если свет вЫключен с выключателя
email({
to: "myMail@gmail.com",
subject: "ccu.io",
text: "Нефиг спать! Свет все равно будет включаться дальше".
});
}
}
});
Понятно. Но в твоем случае нужно писать драйвер под CCU.IO для твоего самодельного сервера. Т.к. всё управляется через него. Если есть желание могу помочь в написании.Сейчас - ничего. Нахожусь снова на распутье. Просто взялся один за большой проект и не успел довести до логического конца. Сейчас свободное время закончилось.
Я взялся сразу за разработку и железа и п/о. Из железок получилось:
1. Web-контроллер на STM32 общается с основным сервером по HTTP (является HTTP сервером и клиентом), к нему можно непосредственно подключать датчики и
Эту роль выполняет dashui.ccu.io. Плюс на выходных я встрою Welcome страницу (но только одну) на которой будет показываться квартира, текст и несколько датчиков. Что бы новичок не сидел перед белым листом.Сделал несколько выводов:
1. Система должна быть простой и интуитивно понятной. В CCU.IO есть инсталлятор, который все делает сам - очень хорошая штука. Еще было бы здорово сделать демо базу, которая будет содержать тестовые данные и несколько экранов с настроенным интерфейсом DashGUI
Хорошая идея. Подумаю, как реализовать.а также адаптер, который может генерировать случайные события и имитировать показания датчиков. Плюс несколько скриптов. Т.е. нажал пользователь в интерфейсе кнопку, а на соседнем виджете загорелась лампочка (ну и т.д.). Изучать работу системы проще всего на готовых работающих примерах.
Опять таки dashui.ccu.io2. Красивой. Если пользователь сам создает интерфейс, предложить ему шаблон/рекомендации по созданию интерфейса.
Вообще скрипты можно создавать в ScriptGUI. Там, как раз, всё есть и отладка и список приборов. И обучающее видео. Товарищ сейчас в отпуске, но по возвращению обещал заняться переводом. А видео пока делать не для кого. Не немецких пользователей нет. (Такой вот порочный круг. )3. Удобство и простота внесения изменений. Если у конечного пользователя будет возможность что-нибудь напрограммить для себя и поделиться этим с остальными (возможно с премодерацией), это может способствовать быстрому развитию и распространению системы. Для этого нужны средства отладки и инструкция по развертыванию средств разработки или готовая сборка.
Еще что касается интерфейса создания скриптов: было бы круто иметь на экране дерево всех устройств, которые можно было бы перетаскивать в код скрипта или на диаграмму, если скрипт создается с помощью графических средств. А также иметь список других скриптов или шаблонов в которые можно постоянно подглядывать и вырезать нужные куски. Программирование в стиле Ctrl+C,Ctrl+V очень ускоряет процесс.
Да действительно напоминает Dash UI. Поражаюсь каждый день, сколько решений в инете.Несколько скриншотов из того, что получилось:
Re: CCU.IO + DashUI
Конечно полный лес. Этож на немецком. Поэтому надо задавать вопросы здесь, а я постараюсь ответить.Rik писал(а):Какая классная программа, хочется побольше разных примеров её внедрения, так как форум на немецком где есть много обсуждения, для меня это полный лес. Спасибо разработчику.
Самое главное - это запихать данные с приборов и сервисов в систему. А там с ними можно строить какие угодно связи и визуализировать их.
Каждую неделю создается по драйверу. И поэтому мне важно знать, что люди используют.
Недавно (вчера), один товарищ сделал скрипт (т.к. он после операции и не может вставать), что если его подруга находится в зоне действия домашнего Wifi (пинг каждые 5 секунд) и нажимает на кнопку звонка, то обе двери (во двор и домой) открываются, т.к. сам он встать не может.
Re: CCU.IO + DashUI
теперь исчезли все устройства даже с галочкой Убрать фильтр по устройствам
лог в файле
лог в файле
- Вложения
-
- megaD.zip
- (1.78 КБ) 293 скачивания
-
- Сообщения: 21
- Зарегистрирован: 15 окт 2013, 09:04
Re: CCU.IO + DashUI
Эге, а собрался попробовать на WR703NBluefox писал(а):Порядка 40 мегабайт на процесс. Т.е. Core ~40Mb + ScriptEngine ~40Mb + (Adapter ~40Mb * кол-во адаптеров). Т.е на малине с 256 Мб будет тесновато.Acid_Reptile писал(а):А сколько ОЗУС "ест" CCU.IO вместе с node.js?
На 512 хватает на всё. (256 уже не производятся, но можно купить на ebay)
Re: CCU.IO + DashUI
Очередная попытка..plusQ писал(а):теперь исчезли все устройства даже с галочкой Убрать фильтр по устройствам
лог в файле
https://github.com/GermanBluefox/ccu.io ... D/megaD.js
Странные названия портов. Можешь прислать мне свой ccu.io\datastore\adapter-megaD.json ?
CCU.IO у тебя бежит на кубике? Судя по всему там нельзя не root создавать сокеты с портами ниже 1024, чем порт 80 и является..
Нельзя ли сделать Мегу с настраиваемым портом? Это вопрос скорее к производителям, чем к тебе...