Архив метки: IoBroker

Драйвер KODI для IoBroker

Начал разработку драйвера KODI для своего умного дома на базе IoBroker.
Драйвер позволяет управлять мультимедиа-центром KODI через API JSON-RPC version 6, ознакомится с данным API можно по этой ссылке. В драйвере имеется несколько виджетов для управления проигрывателем и для вывода различной информации о проигрываемом контенте на странице вашего VIS проекта.

Читать далее Драйвер KODI для IoBroker

Вариант голосового меню для IoB на примере заказа воды

Научил УД заказывать воду в одной известной фирме нашего города. Представленный ниже код это часть моего скрипта для формирования заказа. Через голосовое меню формируется массив данных для заказа, которые используются другим скриптом уже непосредственно для самого заказа на сайте компании.

В массиве menu хранятся пункты голосового меню.
Если вариант ответа предполагает подпункт меню, то последним элементом массива указывается номера меню для подпунктов. Читать далее Вариант голосового меню для IoB на примере заказа воды

Драйвер для IoBroker — Starline Телематика 2.0

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

Теперь в умный дом может быть интегрирован и ваш автомобиль)

Читать далее Драйвер для IoBroker — Starline Телематика 2.0

Парсим курсы валют с сайта ЦБ РФ

var url = 'http://www.cbr.ru/scripts/XML_daily.asp?date_req';
var request = require('request');

schedule("10 17 * * *", function () {
    parsevalute();
});

function parsevalute(){
    url = url;
    log('Идем на сайт ЦБ - '+url);
    var options = {
        url: url,
    };
    // Отправка данных методом POST.
    request(options, function (error, response, body, callback) {
        if (!error && response.statusCode == 200) {
          //  log('Код ответа от сервера'+response.statusCode);
           // log('Ответ от ЦБ: '+body);
        // Парсим данные
         var Valute = body.match(/<CharCode>(.*)<\/CharCode>/g);
         var Nominal = body.match(/<Nominal>(.*)<\/Nominal>/g);
         var Name = body.match(/<Name>(.*)<\/Name>/g);
         var Value = body.match(/<Value>(.*)<\/Value>/g);
         var result = [];
            for(var i = 0; i < Valute.length-1; i++) {
                result.push({
                    Valute: Valute[i].replace(/<CharCode>/g, "").replace(/<\/CharCode>/g, ""),
                    Nominal: Nominal[i].replace(/<Nominal>/g, "").replace(/<\/Nominal>/g, ""),
                    Name: Name[i].replace(/<Name>/g, "").replace(/<\/Name>/g, ""),
                    Value: Value[i].replace(/<Value>/g, "").replace(/[,]+/g, '.').replace(/<\/Value>/g, "")
                });
                //Course = parseFloat(result[i].Value)/parseFloat(result[i].Nominal);
                createState('Valuta.'+Valute[i].replace(/<CharCode>/g, "").replace(/<\/CharCode>/g, ""), '');
                setState ('Valuta.'+Valute[i].replace(/<CharCode>/g, "").replace(/<\/CharCode>/g, ""), (parseFloat(result[i].Value)/parseFloat(result[i].Nominal)));
                
            }
        }
    });
}