Skip to content

ioBroker скрипты

Вопросы и информация о скриптах для ioBroker
140 Topics 1.3k Posts

NEWS

  • 0 Votes
    2 Posts
    1k Views
    A
    Здравствуйте. Воспользовался вашим скриптом , у меня сыпятся ошибки: javascript.0 Error in callback: Error: ETIMEDOUT: connection timed out, read. Подскажите куда копать. Система на кубике3+ SSD.
  • Blockly запуск скрипта из скрипта

    blockly
    2
    0 Votes
    2 Posts
    492 Views
    D
    Разобрался, вопрос снимается.
  • Нужна помошь в Yeelight

    yeelight
    1
    0 Votes
    1 Posts
    270 Views
    No one has replied
  • 1 Votes
    2 Posts
    480 Views
    salambelgorodS
    @No-Name рад чо пригодилось:+1:
  • Запись в "уникальные параметры" объекта

    1
    0 Votes
    1 Posts
    318 Views
    No one has replied
  • Запись строки в файл

    4
    2
    0 Votes
    4 Posts
    812 Views
    O
    Сейчас вот эта тема viewtopic.php?f=48&t=11969&start=60 становиться общей по Node-red все вопросы можно задавать там
  • Управление Yeelight Ceiling из скрипта

    1
    0 Votes
    1 Posts
    262 Views
    No one has replied
  • Парсер курсов валют ЦБ РФ

    4
    0 Votes
    4 Posts
    3k Views
    P
    … schedule("0 7,16,20 * * 1-5", ... Настрой здесь как нужно (формат cron)
  • Не создаются объекты NodeRed

    2
    0 Votes
    2 Posts
    281 Views
    O
    разобрался сам, молодец. Основное обсуждение по Node-red сейчас в этой теме viewtopic.php?f=48&t=11969&start=60 Если чем-то поделитесь будем рады
  • Блокли вопрос

    1
    0 Votes
    1 Posts
    253 Views
    No one has replied
  • 0 Votes
    2 Posts
    2k Views
    S
    Сделано на основании информации отсюда viewtopic.php?t=17435 и уважаемого автора Александра @cahek2202 Скрипт, который получает координаты с мобилы и на основании координат считает расстояния до заданных точек. И потом реагирует как нужно. Расстояние с гугл/яндекс карт не совпадает с расчётным. хз как на картах считается расстояние. Имейте ввиду. //данный блок лучше убрать в global секцию --- начало блока //Координаты дома и важных мест var long_дом =xx.xxxxxxxxxxxxxx; var alt_дом =xx.xxxxxxxxxxxxxx; var long_офис =xx.xxxxxxxxxxxxxx; var alt_офис =xx.xxxxxxxxxxxxxx; var long_школа =xx.xxxxxxxxxxxxxx; var alt_школа = xx.xxxxxxxxxxxxxx; //Мобила один - расстояния до объектов – ID 43a43eff узнаётся после получения первой посылки с мобилы createState('javascript.0.GPSLogger.43a43eff.доДома'); createState('javascript.0.GPSLogger.43a43eff.доОфиса'); createState('javascript.0.GPSLogger.43a43eff.доШколы'); //Мобила два - расстояния до объектов – ID 47fff2aa узнаётся после получения первой посылки с мобилы createState('javascript.0.GPSLogger.47fff2aa.доДома'); createState('javascript.0.GPSLogger.47fff2aa.доОфиса'); createState('javascript.0.GPSLogger.47fff2aa.доШколы'); //Переменные в MQTT для работы скриптов автовключения света при приближении к дому createState('javascript.0.MyHome.ЛюдиДома'); //флаг присутствия людей дома createState('javascript.0.MyHome.ProjON'); //флаг включения прожекторов //данный блок лучше убрать в global секцию --- конец блока //Сам скрипт //Скрипт получения координат с мобильнх телефонов //слушаем порт 8090 и получаем с него по POST запросу данные var http = require('http'); var server = http.createServer().listen(8090); var userA; server.on('request', function (req, res) { res.writeHead(200); if (req.method == 'POST') { var body = ''; } req.on('data', function (data) { body += data; console.log(body); }); req.on('end', function () { temp = body.split('&'); var obj = {}; res.write('hi'); res.end(); for (var key in temp) { temp2 = temp[key].split('='); var objkey = temp2[0]; var objval = temp2[1]; obj[objkey] = objval; } if (getState('javascript.0.GPSLogger.' + obj.deviceid + '.deviceid').val) { for (var param in obj) { setState('javascript.0.GPSLogger.' + obj.deviceid + '.' + param, obj[param], true); } } else { for (param in obj) { createState('GPSLogger.' + obj.deviceid + '.' + param, obj[param]); } } }); }); //Реагируем на изменение координат всех мобил, которые шлют данные on({id: /^javascript\.0\.GPSLogger.*\.latitude$/, change: "any"}, function (obj) { var value = obj.state.val; var oldValue = obj.oldState.val; var numberA = obj.id.substring(31, 23); //Блок необходимый для places. Если places не используется, блок можно удалить. //получаем ID мобилы //соотносим имя из plces.0 и ID мобилы из скрипта if (numberA == '43a43eff') { userA = 'ИмяЧеловека1'; } else if (numberA == '47fff2aa') { userA = 'ИмяЧеловека2'; } //Записываем данные в объекты places sendTo("places.0", { user: userA, latitude: value, longitude: getState('javascript.0.GPSLogger.' + numberA + '.longitude').val, timestamp: getDateObject(getState('javascript.0.GPSLogger.' + numberA + '.latitude').ts).getTime() }); //Конец блока для places //Берём записанные в mqtt свежие координаты var long_target = getState('javascript.0.GPSLogger.' + numberA + '.latitude').val; var alt_target = getState('javascript.0.GPSLogger.' + numberA + '.longitude').val; //Cчитаем расстояние в метрах от мобилы до каждого объекта. Записываем в mqtt setState('javascript.0.GPSLogger.' + numberA + '.доДома', (6371*1000*Math.acos(Math.sin(Math.PI*alt_дом/180)*Math.sin(Math.PI*alt_target/180)+Math.cos(Math.PI*alt_дом/180)*Math.cos(Math.PI*alt_target/180)*Math.cos(Math.PI*(long_дом-long_target)/180))).toFixed()); setState('javascript.0.GPSLogger.' + numberA + '.доОфиса', (6371*1000*Math.acos(Math.sin(Math.PI*alt_офис/180)*Math.sin(Math.PI*alt_target/180)+Math.cos(Math.PI*alt_офис/180)*Math.cos(Math.PI*alt_target/180)*Math.cos(Math.PI*(long_офис-long_target)/180))).toFixed()); setState('javascript.0.GPSLogger.' + numberA + '.доШколы', (6371*1000*Math.acos(Math.sin(Math.PI*alt_школа/180)*Math.sin(Math.PI*alt_target/180)+Math.cos(Math.PI*alt_школа/180)*Math.cos(Math.PI*alt_target/180)*Math.cos(Math.PI*(long_школа-long_target)/180))).toFixed()); //Отправить в телеграмм расстояния до объектов в метрах. Нужно для отладки. //SendToTelegram(userA +' до дома '+ (6371*1000*Math.acos(Math.sin(Math.PI*alt_дом/180)*Math.sin(Math.PI*alt_target/180)+Math.cos(Math.PI*alt_дом/180)*Math.cos(Math.PI*alt_target/180)*Math.cos(Math.PI*(long_дом-long_target)/180))).toFixed(), getState('telegram.0.communicate.requestChatId').val); //SendToTelegram(userA +' до офиса '+ (6371*1000*Math.acos(Math.sin(Math.PI*alt_офис/180)*Math.sin(Math.PI*alt_target/180)+Math.cos(Math.PI*alt_офис/180)*Math.cos(Math.PI*alt_target/180)*Math.cos(Math.PI*(long_офис-long_target)/180))).toFixed(), getState('telegram.0.communicate.requestChatId').val); //SendToTelegram(userA +' до школы ' + (6371*1000*Math.acos(Math.sin(Math.PI*alt_школа/180)*Math.sin(Math.PI*alt_target/180)+Math.cos(Math.PI*alt_школа/180)*Math.cos(Math.PI*alt_target/180)*Math.cos(Math.PI*(long_школа-long_target)/180))).toFixed(), getState('telegram.0.communicate.requestChatId').val); //Блок проверки //Выключить весь свет, когда расстояния до мобил больше 400 метров и дома кто то был if ((getState('javascript.0.MyHome.ЛюдиДома').val) && (getState('javascript.0.GPSLogger.43a70ef7.доДома').val > 400) && (getState('javascript.0.GPSLogger.477182ff.доДома').val > 400)) { setState('javascript.0.MyHome.ЛюдиДома', false); setState('javascript.0.MyHome.ProjON', false); Управление_Светом('мы уехали'); } //Включить весь свет, когда расстояния до мобил меньше 400 метров и дома никого нет if (!(getState('javascript.0.MyHome.ProjON').val) && ((getState('javascript.0.GPSLogger.43a70ef7.доДома').val < 400) || (getState('javascript.0.GPSLogger.477182ff.доДома').val < 400))) { setState('javascript.0.MyHome.ЛюдиДома', true); setState('javascript.0.MyHome.ProjON', true); Управление_Светом('мы приехали'); } //Включить прожекторы при приближении к дому ближе 1000 метров if (!(getState('javascript.0.MyHome.ProjON').val) && ((getState('javascript.0.GPSLogger.43a70ef7.доДома').val < 1000) || (getState('javascript.0.GPSLogger.477182ff.доДома').val < 1000))) { setState('javascript.0.MyHome.ProjON', true); Управление_Светом('включи все прожекторы'); } }); #скрипт #телеграмм #расстояние #координаты #gps #гео #геолокация #определение #координаты
  • Посчитать кол-во включенных приборов

    2
    0 Votes
    2 Posts
    2k Views
    P
    Тоже задавался таким вопросом, решил так: createState ("javascript.0.Power.ALL_Light", 0); on(/^megadd\.0\.(p7_P7|p8_P8|p9_P9|p11_P11|p12_P12|p13_P13|p22_P22|p23_P23|p24_P24|p25_P25|p26_P26|p27_P27|p28_P28)/, function (obj) { setState ("javascript.0.Power.ALL_Light", (getState('megadd.0.p7_P7').val + getState('megadd.0.p8_P8').val + getState('megadd.0.p9_P9').val + getState('megadd.0.p11_P11').val + getState('megadd.0.p12_P12').val + getState('megadd.0.p13_P13').val + getState('megadd.0.p22_P22').val + getState('megadd.0.p23_P23').val + getState('megadd.0.p24_P24').val + getState('megadd.0.p25_P25').val), true); });
  • Проблемы с Blockly?

    2
    1
    0 Votes
    2 Posts
    317 Views
    A
    После рестарта Raspberry Блокли заработал нормальмо
  • Blockly отправка сообщения

    1
    2
    0 Votes
    1 Posts
    297 Views
    No one has replied
  • Использование Крона в Блокли

    1
    2
    0 Votes
    1 Posts
    246 Views
    No one has replied
  • Вопросы по написанию скриптов

    358
    0 Votes
    358 Posts
    110k Views
    sigmaS
    Ну сейчас я так и делаю. Только сохраняю handler. Но это ненадежно. Не верится, что нет метода получить такой список
  • Детектор движения ip camera

    3
    0 Votes
    3 Posts
    4k Views
    P
    Долго возился, оказывается H.264 камеры не могут сигнализировать по http (может некоторые и могут, но жалоб в инете много…) :-( параметр есть, реакции нет...
  • Глобальные функции

    1
    1
    0 Votes
    1 Posts
    2k Views
    No one has replied
  • 0 Votes
    5 Posts
    6k Views
    P
    Еще один вариант (https://letyshops.com/r/aliexpress-l95yrp4f980s0): // Функция получает изображение с камеры, сохраняет его во временный файл и отправляет его в драйвер telegram function sendSnapshot() { exec("wget 'http://192.168.0.XX:YYYY/snapshot.cgi?user=admin&pwd=ПАРОЛЬ' -O /tmp/snapshot.jpg", function (err) { if (err) { console.error(err); } else { sendTo('telegram.0', '/tmp/snapshot.jpg'); // sendTo('telegram.0', {user: 'User', text: '/tmp/snapshot.jpg', caption: 'Камера 1'}); } }); } /* // Для проверки: schedule("* * * * *", function () { log("Будет исполняться каждую минуту!"); sendSnapshot(); }); */
  • 0 Votes
    12 Posts
    6k Views
    P
    я имел в виду такой клапан: [image: 2689_klapan.jpg] бывают и другие, жесткие на пружинках совершенно бесполезная вещь, сразу снял а так да, не спорю, естественная вентиляция через выключенную вытяжку хуже тоже баловался с заданием разных условий, по факту остановился на таком режиме: горит свет - работает вытяжка

344

Online

32.5k

Users

81.7k

Topics

1.3m

Posts