Драйвер это JavaScript файл, запускающийся в отдельном NodeJS процессе и обслуживающий одно устройство или службу. На данный момент созданы следующие драйвера:

- emailдля отправки сообщений по электронной почте
- pushoverдля отправки сообщений на мобильные клиенты (http://pushover.net)
- mysqlпересылка событий в базу данных
- graphiteпересылка событий в graphite (http://graphite.wikidot.com/screen-shots). Группировка данных в мыслимых и немыслимых формах и их отображение в виде графиков.
- icalGoogle и Apple iCloud календари
- geofencyподдержка Apple системы геолокации geofency
- growlсообщения на Apple Growl App
- currencyкурсы валют с европейского центрального банка. (Есть EUR-RUB и USD-RUB)
- telnetуправление приборами по telnet протоколу
- pingпингует IP устройства в сети
- lircдля управления приборами и принятия команд по инфракрасному порту (требуется дополнительное железо)
- irtransподдержка IRTrans инфракрасной системы (http://www.irtrans.de/en/)
- hueуправление PhilipsHUE лампами
- lgtvуправление LG телевизорами по сети
- denonуправление DENON ресиверами
- onkyoуправление ONKYO ресиверами
- yamahaуправление YAMAHA ресиверами
- sonosуправление SONOS системой звука
- dreamуправление DreamBOX спутниковыми ресиверами (http://ru.wikipedia.org/wiki/Dreambox)
- owfsOne Wire File System (http://owfs.org/) - сбор данных с датчиков Dallas/Maxim по 1-Wire
- B-control Energy Managerмониториг расхода электроэнергии http://www.b-control.com/energiemanagement.html (нет описания на английском)
- all3418v2ALLNET ALL3418v2 / IP Thermometer LAN / WLAN - беспроводной термометр - http://www.allnet.de
- homepilotуправление системой автоматизации Rademacher.
- homematicуправление системой автоматизации HomeMatic (встроено в CCU.IO).
- regoмониторинг котлов Junkers TM75, IVT Rego 634
- rpiмониторинг основных параметров (CPU, Mem, Temperature) RaspberryPI. Поддержка 1-Wire интерфейса и PiFace.
- cubieмониторинг основных параметров (CPU, Mem, Temperature, Battery) Cubietruck.
- sayitголосовые сообщения (text2speech или wav) на системе(Linux, Windows, OsX) или android планшете (через Home24 Mediaplayer - https://play.google.com/store/apps/deta ... ayer&hl=ru).
- owmOpenWeatherMap (http://openweathermap.org/) - погода по всему миру
- yrпогода с норвежского сервера http://www.yr.no/
- dwdофициальные предупреждения о штормах в Германии
- fritzBoxотображение списка звонивших для fritzBox
- speedportотображение списка звонивших для speedport
- sun_and_timeвремя захода и восхода солнца, а также праздничные дни для Германии
- muell_stuttgartвремя вывоза мусора в Штутгарте

Создать собственный адаптер со знаниями системы, для которой создается адаптер, не составляет труда. Конечно, знания JavaScript на много облегчат задачу.

Dreambox

 

email

Служит для того, что бы рассылать email. Что бы отправить письмо, нужно использовать функцию в script-engine.

Fritzbox

 

geofency

 

Graphite

Отсылает события и данные в Graphite.

Philips Hue

Подключает и управляет Philips Hue / LivingColors / LivingWhites лампами. В настройках драйвера нужно установить IP для Hue Bridge, а также имя пользователя. Что бы создать пользоватетя на Hue Bridge смотри здесь http://developers.meethue.com/gettingstarted.html.

iCal

Драйвер iCal для CCU.IO считывает файлы по определенному URL адресу с данными календаря в формате .ics и записывает запланированные там события за определенный период в переменную. События разделены
тэгом и их можно отобразить, например, в DashUI элементе "basic hm_val - String (unescaped)".

Будут созданы 3 переменные

  • iCalReadTrigger
  • iCalEvents
  • iCalEventsJson

Переменную в JSON формате можно использовать с Dash UI элементом table.

Переменная iCalReadTrigger служит для того, чтобы форсировать обновление календаря немедленно. В файле ical-settings.json нужно прописать ссылки на ics файлы.

Атрибут "preview" задает количество дней, которые будут учитываться при составлении списка. Если задать 2, то покажутся события только на сегодня и на завтра. А если 1, то только на сегодня. Результат будет записан в переменные iCalEvents и iCalEventsJson.

Календарь

Apple iCloud

Календари Apple iCloud могут быть показаны только если перед этим на них выставили соответствующие разрешения. Лучше всего создать специально для CCU.IO отдельный календарь, т.к. он будет виден каждому.

Для этого правой кнопкой мыши нажать на календаре в приложении "Календарь" и выставить разрешения. После этого поставить галочку напротив "Открытый календарь" и скопировать показанный URL. Важно: URL начинается с webcal.

"webcal" в адресе надо заменить на "http" и использовать его в настройках.

Google Календарь

Здесь можно найти описание, как получить ссылку на свой google календарь:

После модификаций файл должен выглядеть примерно так. Можно задавать неограниченное количество ics файлов:

{
	"enabled": false,  // Надо поменять на true, что бы драйвер запустился
	"settings": {
		"firstId": 80100,      // Начальный ID с которого будут создаваться переменные для календаря. Не советуется менять.
		"preview": 7,          // Количество дней, которые будут учитываться при составлении списка. (1 - только сегодня, 2 сегодня и завтра)
		"runEveryMinutes": 30, // Период обновления календарей
		"colorize": true,      // Нужно ли задавать цвет для сегодня красным, а на завтра оранжевым. Имеет больший приоритет, чем цвет календаря.Color.
		"debug": false,        // Вывод в log отладочной информации
		"defColor": "white",   // Цвет текста по умолчанию
		"fulltime": " ",       // Задает текст, которым будет заменено 00:00 для событий на весь день
		"dataPaddingWithZeros": true, // Формат даты: 06.07.2014 (true) или 6.7.2014 (false)
		"replaceDates": true,  // Заменять ли сегодняшнюю дату на слово из todayString и завтрашнюю на tomorrowString
		"todayString": "Сегодня",   // Слово, которым будет заменена сегодняшняя дата (если replaceDates: true)
		"tomorrowString": "Завтра", // Слово, которым будет заменена завтрашняя дата (если replaceDates: true)
		"everyCalOneColor": false,  // Нужно ли задавать отдельный цвет для каждого календаря. Будет использоваться calColor.
		"Calendar": {
			"Calendar1": {
				"calURL": "https://www.google.com/calendar/ical/xxxxxxxx/basic.ics",
				"calColor": "white" // Цвет для календаря, если everyCalOneColor: false
			},
			"Calendar2": {
				"calURL": "https://www.google.com/calendar/ical/yyyyy/basic.ics",
				"calColor": "grey" Цвет для календаря, если everyCalOneColor: false
			}
			//, ....
		},
		"Events": {
		   "Отпуск": {
			  "enabled": true, // Активно ли правило
			  "display": false // нужно ли событие показывать в календаре
			}
		}
	}
}	
			

Если задать "Events" (в данном примере "Отпуск"), то все события в календаре будут просматриваться, если там в описании слово "Отпуск". Если в календаре найдется событие для сегодня или для актуального времени со словом "Отпуск", то автоматически переменная "Отпуск" получит значение true. Если событие прошло, то значение переменной снова вернётся к false.

Создавать переменную не надо. Она создастся автоматически с ID 80110.

Обратите внимание, что в обоих случаях "Отпуск" и "Отпуск родителей" это одно и то же событие для драйвера. Для решения этой проблемы можно задать события как "Наш отпуск" и "Отпуск родителей"

Если изменить файл dashui-user.css, то можно задать собственные цвета для сегодняшних и завтрашних событий. Одна строчка выглядит следующим образом:

<span class='icalWarn'>Сегодня</span><span class='icalWarn2'>Выбросить мусор</span><br>
<span class='icalPreWarn'>Завтра</span><span class='icalWarn2'>Концерт в Большом</span><br>
<span class='icalNormal'>08.09.2025</span><span class='icalWarn2'>Событие в будущем</span><br>

Известные проблемы

Иногда события, которые длятся целый день, не показываются.

IRTrans

 

LG TV

 

LIRC

LIRC

MySQL

Позволяет записывать события и данные из CCU.IO в базу данных MySQL. Необходимая схема базы данных, а также примеры использования можно найти в папке драйвера.

Onkyo

 

Ping

Следит за приборами по IP, доступны ли они в сети.

pushover

Позволяет отсылать pushover сообщения. Что бы отправить сообщение, нужно использовать функцию в script-engine.

rpi

Создает переменные в CCU.IO с информацией о доступной и свободной памяти, температуре, загрузке процессора и состоянии GPIO входов и выходов на RaspberyPI. GPIO можно сконфигурировать как вход или выход. Außerdem ist die Einbindung von 1-Wire Temperatursensoren möglich. Возможно подключение температурных сенсоров по 1-Wire.

Этот Драйвер может быть запущен также "Standalone". То есть на другом RaspberryPi, а не на том, где запущена CCU.IO.

Rego

 

Sonos

Смотри Readme-файл для Sonos

Sonos

 

Telnet

 

textCommands

 

yr.no

Загружает данные о погоде с yr.no, создает переменные в CCU.IO с прогнозом погоды: минимальная/максимальная температура на сегодня и на следующие 24 часа, а также переменные с вероятностью дождя.