Skip to content

ioBroker скрипты

Вопросы и информация о скриптах для ioBroker
140 Themen 1.3k Beiträge

NEWS

  • Blockly???

    1
    0 Stimmen
    1 Beiträge
    973 Aufrufe
    Niemand hat geantwortet
  • Скрипты игнорируют обьекты созданные вручную

    6
    0 Stimmen
    6 Beiträge
    2k Aufrufe
    D
    Понял, спасибо
  • Не работает поток в node-red

    9
    0 Stimmen
    9 Beiträge
    3k Aufrufe
    BluefoxB
    @andrey99986: Работает. Правильнее сначала слушатель запустить с таймаутом 100 мс и только потом отправить комманду в порт? ` Да. Вот только "слушатель" запускается не с таймаутом, а просто перед тем, как послать команду. И после ответа порт по таймауту закрывается.
  • Скрипт ESP

    8
    1
    0 Stimmen
    8 Beiträge
    4k Aufrufe
    M
    У меня тоже прошивка от MaksMS использую управление RGB подсветкой 3 порта как PWM. Управляю через MQTT. Сейчас еще с помощью здешнего сообщества сделал вывод на OLED информации об времени, громкости, названии трека в Squezee. А так-же управление громкостью, паузой, вкл/выкл при помощи 4-х кнопок (как прерывания). Все по MQTT работает уже неделю бес сбоев с локальным MQTT брокером (правда с авторизацией)
  • Как подключить Node Serialport ?

    5
    0 Stimmen
    5 Beiträge
    2k Aufrufe
    V
    @andrey99986: Установил Node Serialport командой "npm install serialport". Создал скрипт : var port = new SerialPort("/dev/tty-usbserial1", { baudRate: 57600 }); Ошибка: 20:55:24.668 [info] javascript.0 Start javascript script.js.test-serial 20:55:24.668 [error] javascript.0 script.js.test-serial: Cannot find module '/home/iobroker/node_modules/iobroker.javascript/node_modules/serialport' at script.js.test-serial:1:18 Что в таких случаях делают? Записать в этот каталог файлы библиотеки "Node Serialport" ? ` устанавливать нужно в папку iobroker.javascript, или пропиши полный путь в var SerialPort = require("serialport");
  • Использование exec

    3
    0 Stimmen
    3 Beiträge
    2k Aufrufe
    H
    Большое спасибо! Первый вариант сработал.
  • Управление GPIO

    4
    0 Stimmen
    4 Beiträge
    2k Aufrufe
    A
    сечас работает на ODROID X2 и C1+, раньше запускал на Raspberry PI2, Cubieboard. работает от user(не root). нужно добавить user в группу gpio
  • Скрипт регулировки громкости

    21
    0 Stimmen
    21 Beiträge
    7k Aufrufe
    E
    Как образец использовал скрипт vtec. Добавил изменение громкости в выходные (чтобы попозже утром прибавлял). Скрипт: ! var volumeId = "sayit.0.tts.volume"; ! // Утанавливаем в 6:59 только в будни громость 80 schedule("59 6 * * *", function(){ var date = new Date(); var day = date.getDay(); // 0-воскр. 6-суббота if(day >= 1 && day <= 5) { setState(volumeId,80,function(){ log('Раннее утро 6:59 будний день, установлена громкость '+ getState(volumeId).val +'%'); }); } }); // Утанавливаем в 7:59 только в будни громость 100, в выходные громкость 80 schedule("59 7 * * *", function(){ var date = new Date(); var day = date.getDay(); // 0-воскр. 6-суббота if(day >= 1 && day <= 5) { setState(volumeId,100,function(){ log('Утро 7:59 будний день, установлена громкость '+ getState(volumeId).val +'%'); }); } else { setState(volumeId,80,function(){ log('Утро 7:59 выходной день, установлена громкость '+ getState(volumeId).val +'%'); }); } }); // Утанавливаем в 9:59 только в выходные громость 100 schedule("59 9 * * *", function(){ var date = new Date(); var day = date.getDay(); // 0-воскр. 6-суббота if(day === 0 || day === 6) { setState(volumeId,100,function(){ log('Утро 9:59 выходной день, установлена громкость '+ getState(volumeId).val +'%'); }); } }); // Утанавливаем в 22:59 громость 60 schedule("59 22 * * *", function(){ setState(volumeId,60,function(){ log('Поздний вечер 22:59, установлена громкость '+ getState(volumeId).val +'%'); }); }); !
  • ESP8266 TDA7313 iobroker

    1
    1
    0 Stimmen
    1 Beiträge
    2k Aufrufe
    Niemand hat geantwortet
  • Скрипт контроля отопления

    11
    0 Stimmen
    11 Beiträge
    4k Aufrufe
    I
    @Haus: Этот вариант я уже побывал. Проблема в том что из за долгого выполнения request не успевает обновить данные переменных и дальше идущий код использует старые данные из переменных. ` Ну вот так же тогда // Средняя температура в помещении за 30 минут request ( 'http://192.168.1.11/cur_temp.php', function ( error, response, body ) { if ( !error && response.statusCode == 200 ) { setState ( ctid, body ); log(body); request ( 'http://192.168.1.11/avr_temp_in_stair_hall.php', function ( error, response, body ) { if ( !error && response.statusCode == 200 ) { setState ( shaid, body ); log(body); } log('Расчет: ' + temp_base + ', Сред: ' + temp_in + ', Тек: ' + cur_temp ); }); } }); Можно обернуть остальной код в функцию и вызывать ее после последнего реквеста.
  • Голосовое меню

    11
    0 Stimmen
    11 Beiträge
    3k Aufrufe
    I
    @Haus: Я так понял есть компания которая по заказу клиента доставляет воду в бутылях. Если вторая часть скрипта заказа не секретная выложи пожалуйста. ` 266_new__0.rar
  • Определяем местонахождение хозяев

    2
    0 Stimmen
    2 Beiträge
    2k Aufrufe
    I
    Обновил скриптик.
  • Скрипт для Thingspeak

    3
    0 Stimmen
    3 Beiträge
    3k Aufrufe
    B
    Можно сделать типа моста между ioброкерами. (альтернатива MQTT :D ) Или использовать как удаленное управление, включить или ввыключить устройства, отправив запрос с любого браузера (предварительно конечно нужно знать номер канала и api_key) :D
  • Скрипт для Wake-on-LAN

    7
    1
    0 Stimmen
    7 Beiträge
    3k Aufrufe
    B
    @Bluefox: @bondrogeen: :D Кстати хотел спросить может кто знает программку для андройда чтобы get запросы принимать типа Home24-MediaPlayer. Нужно текст на синтезатор отправлять. Home24-MediaPlayer не умеет принимать латиницу латиницу или кириллицу? Сори ошибся кириллицу Я как-то давно подымал эту тему еще на CCU.IO Как вариант нашел плагин для таскера, но он как то не стабильно работает, часто отваливается. RESTask for Tasker https://play.google.com/store/apps/deta … ha.restask
  • Скрипт взаимодействия с домофоном.

    7
    0 Stimmen
    7 Beiträge
    3k Aufrufe
    I
    @spectrekr: ХМ… а к чему тогда скрипт? Что и как снимает сигнал о звонке в домофон и отправляет сигнал об открытии двери? ` Сигнал снимаю через оптрон с динамика домофонной трубки, На открытие стоят реле имитирующий поднятие трубки и нажатие кнопки открытия, при этом функции трубки остаются рабочии. Схемы к сожалению нет, приложу проект печатки сделаной в DipTrace Это как выглядело на этапе изготовления. [image: 266_img_111133333333.jpg] Схема трубки домофона(самая дешевая за 300 руб)) [image: 266_ukp7-schem.png]
  • Голосовое управление

    20
    4
    0 Stimmen
    20 Beiträge
    6k Aufrufe
    I
    Скрипт разросся, решил немного переписать и унифицировать. Часть моего скрипта второй итерации: ! ```` /////////////Голосовое управление///////////////////////////// on({id: 'javascript.0.Voice.Command', change: 'any'}, function (obj) { var voice = obj.newState.val.toLowerCase(); VoiceCommands (voice); }); ! function VoiceCommands (voice){ var SceneKodi = getState('javascript.0.Scenes.Kodi').val; var SceneTV = getState('javascript.0.Scenes.TV').val; var tempKitchen = getState('mqtt.0.myhome.Kitchen.Temp_room').val; var tempBedroom = getState('mqtt.0.myhome.Bedroom.Temp_room').val; var tempBathroom = getState('mqtt.0.myhome.Bathroom.Temp_room').val; var tempin = getState('mqtt.0.myhome.Bedroom.Temp_in').val; var Volume = parseInt(getState('onkyo.0.master-volume').val, 10); var ttsVolume = parseInt(getState('sayit.0.tts.volume').val, 10); var voiceArr = voice.split('+'); log('Вся переменная - ' + voice); log('Массив - '+ voiceArr); ! function found (cmd){ cmd = String(cmd); if (~voice.indexOf(cmd)){ return true; } else { return false; } } var FoundNum = function(voice){ var num =parseInt(voice.replace(/\D+/, ''), 10); if (num !== isNaN){ return num; } else { return false; } }; /***************Регулировка громкости///////////// if ((found('тише') || found('тиши') || found('убавь') || found('кеша') || found('сделайте+же') || found('ты+же')) && !found('говор') && !found('оповещ') && !found('помещ')){ if (FoundNum(voice) && found('на')){ setState('onkyo.0.master-volume', Volume - FoundNum(voice)); } else if (FoundNum(voice) && !found('на')){ setState('onkyo.0.master-volume', FoundNum(voice)); } else if (!FoundNum(voice)){ setState('onkyo.0.master-volume', Volume - 3); } } if ((found('громче') || found('прибавь') || found('громк')) && !found('говор') && !found('оповещ') && !found('помещ')){ if (FoundNum(voice) && found('на')){ setState('onkyo.0.master-volume', Volume + FoundNum(voice)); } else if (FoundNum(voice) && !found('на')){ setState('onkyo.0.master-volume', FoundNum(voice)); } else if (!FoundNum(voice)){ setState('onkyo.0.master-volume', Volume + 3); } } /Управление громкостью Sayit**/ if (found('говор') || (found('оповещ') || found('помещ'))){ //помещения оповещени if (FoundNum(voice)){ setState('sayit.0.tts.volume', FoundNum(voice)); ttsVolume = getState('sayit.0.tts.volume').val; setState('sayit.0.tts.text', 'Громкость оповещения установлена на ' + ttsVolume+'.'); } else { if (found('гром')){ setState('sayit.0.tts.volume', ttsVolume+10); ttsVolume = getState('sayit.0.tts.volume').val; setState('sayit.0.tts.text', 'Громкость оповещения установлена на ' + ttsVolume+'.'); } if (found('тише')){ setState('sayit.0.tts.volume', ttsVolume-10); ttsVolume = getState('sayit.0.tts.volume').val; setState('sayit.0.tts.text', 'Громкость оповещения установлена на ' + ttsVolume+'.'); } } } /Аквасторож************************/ if (found('воду') || found('вода') || found('году') || found('лада')){ if (found('закр') || found('выкл') || found('пере')){ setState('mqtt.0.myhome.NRF.AquaStoroj.ButtonClose', '1'); setState('sayit.0.tts.text', 'Вода перекрыта'); } if (found('откр')){ setState('mqtt.0.myhome.NRF.AquaStoroj.ButtonOpen', '1'); setState('sayit.0.tts.text', 'Вода открыта'); } } /Приточка*************/ if (found('приточ') || found('проточ') || found('вентил')){ var BedRoomMin = 70; var BedRoomMax = 131; var GuestRoomMin = 94; var GuestRoomMax = 163; if (found('спал')){ if (FoundNum(voice) && FoundNum(voice) >= 0 && FoundNum(voice) <= 100){ setState('mqtt.0.myhome.Bedroom.Servo', ((BedRoomMax - BedRoomMin) / 100) * FoundNum(voice) + BedRoomMin); //70+(*0.61) } if (found('откр')){ setState('mqtt.0.myhome.Bedroom.Servo', BedRoomMax); } if (found('закр')){ setState('mqtt.0.myhome.Bedroom.Servo', BedRoomMin); } } if (found('зал')){ if (FoundNum(voice) && FoundNum(voice) >= 0 && FoundNum(voice) <= 100){ setState('mqtt.0.myhome.Guestroom.Servo', ((GuestRoomMax - GuestRoomMin) / 100) * FoundNum(voice) + GuestRoomMin); } if (found('откр')){ setState('mqtt.0.myhome.Guestroom.Servo', GuestRoomMax); } if (found('закр')){ setState('mqtt.0.myhome.Guestroom.Servo', GuestRoomMin); } } } /*****************Освещение/////////////// function Invert (id){ if (!found('вкл') && !found('выкл')){ IdVal = getState(id).val; if (IdVal === 1 || IdVal === '1'){ setState(id, '0'); } else { setState(id, '1'); } } else { if (found('вкл')){ setState(id, '1'); } if (found('выкл')){ setState(id, '0'); } } } if (found('свет') || found('глазк')){ if (found('спал')){ if (found('глаз')){ Invert ('mqtt.0.myhome.Lighting.BedRoom_Additional'); } else { Invert ('mqtt.0.myhome.Lighting.BedRoom_Main'); } } if (found('зал')){ if (found('весь')){ Invert ('mqtt.0.myhome.Lighting.GuestRoom_Additional'); Invert ('mqtt.0.myhome.Lighting.GuestRoom_Main'); Invert ('mqtt.0.myhome.Lighting.GuestRoom_Main2'); } if (found('глаз')){ Invert ('mqtt.0.myhome.Lighting.GuestRoom_Additional'); } else { Invert ('mqtt.0.myhome.Lighting.GuestRoom_Main2'); Invert ('mqtt.0.myhome.Lighting.GuestRoom_Main'); Invert ('mqtt.0.myhome.Lighting.GuestRoom_Additional'); } } if (found('кухн')){ if (found('глаз')){ Invert ('mqtt.0.myhome.Lighting.Kitchen_Additional'); } else { Invert ('mqtt.0.myhome.Lighting.Kitchen_Main'); } } if (found('ванн')){ if (found('зерк')){ Invert ('mqtt.0.myhome.Lighting.BathRoom_Additional'); } else { Invert ('mqtt.0.myhome.Lighting.BathRoom_Main'); } } if (found('кор') || found('при')){ Invert ('mqtt.0.myhome.Lighting.Hall_Main'); } } /******************************************************************/ if ( found('домоф') || found('двер') ){ var DomofonRing = getState('mqtt.0.myhome.Mother.DomofonRing').val; if ((DomofonRing === '1' || DomofonRing === 1)){ setState('mqtt.0.myhome.Mother.DomofonOpen', '1'); } else { setState('sayit.0.tts.text', 'Режим автооткрытия домофОна активирован! '); setState('javascript.0.Scenes.DomofonAutoOpen', '1'); } if (found('откл') || found('выкл')){ setState('sayit.0.tts.text', 'Режим автооткрытия домофОна отключен!'); setState('javascript.0.Scenes.DomofonAutoOpen', '0'); } } } Добавлено: Скрипт получился удобный, можно давать несколько команд УД в одном предложении.
  • Управление Kodi/Xbmc

    34
    0 Stimmen
    34 Beiträge
    11k Aufrufe
    I
    @aurodionov: Оставлю тут, мож кому пригодится https://github.com/tillbaks/node-xbmc ` Это что то старое. Я форкнул https://github.com/instalator/kodi-ws Все хочу сесть за драйвер, но даже не знаю стоит ли начинать, опыта мало. Хотя можно активизировать тему в плане хотелок по kodi драйверу чтобы определится с функционалом драйвера.
  • Индикатор наличия обновлений iobroker

    6
    0 Stimmen
    6 Beiträge
    2k Aufrufe
    aurodionovA
    @instalator: @aurodionov: подскажите ,как прикрутить число->цвет(основные), чтоб не писать вагон условий для изменения цвета может Switch case использовать Сносный вариант, будет время перепишу
  • Почему не работает

    4
    0 Stimmen
    4 Beiträge
    2k Aufrufe
    aurodionovA
    да ,спасибо ,уже разобрался запилил индикатор обновлений
  • Offline распознание голоса

    19
    0 Stimmen
    19 Beiträge
    4k Aufrufe
    D
    Всем, спасибо за подсказки, установить получилось! Буду разбираться!

327

Online

32.6k

Benutzer

82.2k

Themen

1.3m

Beiträge