Size: a a a

ioBroker smarthome

2019 October 23

В

Вадим in ioBroker smarthome
Dmitry Khomenok
я бы на твоем месте упрощал бы сеть, а то через месяц-два пересоздашь докер контейнер и нужно будет думать почему не работает mysql
Усложнять просто..упрощать сложно
источник

DK

Dmitry Khomenok in ioBroker smarthome
ну iobroker обновлять нужно :D и когда он не обновится внутри контейнера (малоли), то проще будет взять свежий образ:)
источник

A

Anzor in ioBroker smarthome
Вадим
Усложнять просто..упрощать сложно
источник

DK

Dmitry Khomenok in ioBroker smarthome
Вадим
Усложнять просто..упрощать сложно
ну брать docker-compose / kubernetes
источник

DK

Dmitry Khomenok in ioBroker smarthome
упрощать в смысле не обязательно делать проще, упрощать - в смысле делать поддержку проще:)
источник

DK

Dmitry Khomenok in ioBroker smarthome
у меня сеть не сказал бы что простая, но перезапуск всего стребует выполнения только одной команды и не нужно вспоминать что делал хрен знает когда, а если и нужно, то можно посмотреть в конфигах
источник

A

Anzor in ioBroker smarthome
Dmitry Khomenok
ну брать docker-compose / kubernetes
из описания я так понял это тот же портейнер
источник

DK

Dmitry Khomenok in ioBroker smarthome
портейнер - графическая оболочка для docker скорее
источник

DK

Dmitry Khomenok in ioBroker smarthome
kubernetes вообще не здоровая хрень и для домашней сети занадто возможностей
источник

DK

Dmitry Khomenok in ioBroker smarthome
а docker-compose - засунуть все что делаешь руками, на одном сервере, в конфиг
источник

D

Dennis in ioBroker smarthome
Предупреджаю..на js 2.0 не работает драйвер onvif !
источник

D

Dennis in ioBroker smarthome
Никото не знает, почему пользовательская функция в Blockly банально не закрывается? :)
источник

D

Dennis in ioBroker smarthome
источник

D

Dennis in ioBroker smarthome
ЧЯДН?
источник

D

Dennis in ioBroker smarthome
Меня глючит или Blockly?
источник

D

Dennis in ioBroker smarthome
Ау..? :)
источник

A

Anzor in ioBroker smarthome
Anzor
var spawn   = require('child_process').spawn;
var gm = require('gm');

on({id: "linkeddevices.0.baby-room.pir"/*DD v detskoy*/, val: true}, function (obj) {
 var value = obj.state.val;
 var oldValue = obj.oldState.val;
 if (getState("linkeddevices.0.Security.mode").val == 'AWAY') {
   setState("linkeddevices.0.Security.ALARM"/*ALARM!!!*/, true);
   sendTo("telegram.0", "send", {
       text: ('Тревога!!! Сработал датчик ' + 'в детской!')
   });
   console.log("telegram: " + ('Тревога!!! Сработал датчик ' + 'в детской!'));
 }
});
on({id: "linkeddevices.0.zal.pir"/*DD v zale zwave glaz*/, val: true}, function (obj) {
 var value = obj.state.val;
 var oldValue = obj.oldState.val;
 if (getState("linkeddevices.0.Security.mode").val == 'AWAY') {
   setState("linkeddevices.0.Security.ALARM"/*ALARM!!!*/, true);
   sendTo("telegram.0", "send", {
       text: ('Тревога!!! Сработал датчик ' + 'в зале!')
   });
   console.log("telegram: " + ('Тревога!!! Сработал датчик ' + 'в зале!'));
 }
});

on({id: "linkeddevices.0.zal.LG_TV"/*DD v spal Z-WAVE*/, val: true}, function (obj) {
// on({id: "linkeddevices.0.spalnya.pir"/*DD v spal Z-WAVE*/, change: "gt"}, function (obj) {
 var value = obj.state.val;
 var oldValue = obj.oldState.val;
 if (getState("linkeddevices.0.Security.mode").val == 'AWAY') {
   setState("linkeddevices.0.Security.ALARM"/*ALARM!!!*/, true);
   sendTo("telegram.0", "send", {
       text: ('Тревога!!! Сработал датчик ' + 'в спальне!')
   });
   console.log("telegram: " + ('Тревога!!! Сработал датчик ' + 'в спальне!'));

// пробуем вставить свой код
function getCameraVideo(url, extcmd, tmpfile, callback) {
   /*
     url - адрес rtsp-потока камеры
     extcmd - дополнительный код в команде ffmpeg
     filename - имя файла для формирования
     callback - функция, вызываемая после получения видео
   */
   var time = 3, // длина записи
       fps = 25, // частота кадров потока
       codec = 'libx264', // h264_omx для Raspberry Pi
       size = '2560:1440'; // результирующий размер видео
   // выполняем команду ffmpeg чтобы сделать запись с потока
   var ffmpegCommand = '-y -i ' + url + extcmd + ' -t ' + time +
     ' -f mp4 -vcodec ' + codec +
     ' -pix_fmt yuv420p -s ' + size + ' -b:v 1500k -vsync vfr -an -r ' + fps + ' ' + tmpfile;
   var ffmpeg = spawn('ffmpeg', (ffmpegCommand).split(' '), {});
   ffmpeg.stderr.on('data', function(data){
       //console.error(data.toString());
   });
   ffmpeg.on('close', function(code) {
       callback(tmpfile);
   });
}

function writeText4Video(callback) {
   /*
     callback - функция, вызываемая после формирования картинки
   */
   var tmpfile = "/tmp/blankwithtext.png";
   gm(1280, 720, "#000000")  // размера картики и черный цвет фона
       .transparent('#000000') // прозрачность
       .stroke("#000000", 1)
       .fill("#ffffff")
       .font("Helvetica.ttf", 32)
       //.font("/home/pi/11102.ttf", 58)
       .drawText(30, 60, "Главный вход")
       .stroke("#000000", 1)
       .fill("#ffff00")
       //.font("/home/pi/11068.ttf", 32)
       .drawText(30, 100, "Температура на улице: "+getState('weatherunderground.0.current.temp_c').val)
       .write(tmpfile, function (err) {
           if (err) {
               console.error(err);
           } else {
               callback(tmpfile);
           }
       });
}

// получение 4 сек видео с камеры
getCameraVideo('rtsp://admin:admin@192.168.1.170:554/cam/realmonitor?channel=6&subtype=1', '', '/tmp/video1.mp4', function(filename){
   sendTo('telegram.0', {
       text: filename,
       caption: 'Главный вход',
       chatId: '-186628872'
   });




// пробуем вставить свой код
 }
});


});
👆 @Dennis_krd посмотри на этот пример. Может тебе подойдёт
источник

D

Dennis in ioBroker smarthome
не, пасиб..там exec - это командная строка linux..
источник

Ч

Чижин Евгений... in ioBroker smarthome
источник

СA

Сергей Фролов Angelo... in ioBroker smarthome
блять !  ну как так то !?!?
источник