Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Русский
    3. ioBroker
    4. Скрипты
    5. ioBroker скрипты
    6. Нужен скрипт для сдруживания ioBroker и Laitis

    NEWS

    • Neuer Blog: Fotos und Eindrücke aus Solingen

    • ioBroker@Smart Living Forum Solingen, 14.06. - Agenda added

    • ioBroker goes Matter ... Matter Adapter in Stable

    Нужен скрипт для сдруживания ioBroker и Laitis

    This topic has been deleted. Only users with topic management privileges can see it.
    • Eldar Fattahov
      Eldar Fattahov last edited by

      Добрый день! прошу помочь составить скрипт для Laitis:
      148db7d2-9e4a-4806-bbc5-3bad9f8a7207-image.png

      есть примерный скрипт для iobroker

       // Принимаем команды через порт 8090
          var http = require('http'); // Подключаем модуль http
          var querystring = require('querystring'); // Подключаем модуль querysting в настройках драйвера javascript
          var port = 8090;
          var s = http.createServer();
          s.listen(port);
         
          // Если поступил запрос
          s.on('request', function(request, response) {
              if(request.method == 'POST') {
                  processPostData(request, response, function() {
                      // Расшифровываем JSON запрос, и если ошибка, то выводим её в лог iobroker
      				var data;
      				try {
       					data = JSON.parse(Object.keys(request.post)[0]);
       				}catch(e) {
      					console.log('Не удалось разобрать JSON');
      					console.error(e.name);
      					console.error(e.message);
           				console.error(e.stack);
           				return;
      					}
       
                      // Команда расшифрована, передаем её в функцию обработки...
                       do_voice_command(data, function(answer){
                          console.warn(answer); // Выводим в консоль ответ... 
                          response.writeHead(100, "OK", {'Content-Type': 'text/plain;charset=utf-8'});
                          response.end(answer);
                          });
                  });
              } else {
                  //console.log(JSON.stringify(request))
                  response.writeHead(100, "OK", {'Content-Type': 'text/plain;charset=utf-8'});
                  response.end("Принимаем только POST запросы", "UTF-8");
              }
          });
       
      // Основная функция обработки голосовых команд
      function do_voice_command(data, callback){
       
          // Для начала ответ равен ничему...
          var answer = '5555555';
          var cmd = data.cmd.toLowerCase();
          console.warn("Команда = " + cmd);
       
          // что ты умеешь?
          if(cmd == 'что ты умеешь' || cmd == 'что ты умеешь?' || cmd == 'помощь' || cmd == 'команды' || cmd == 'список команд'){
              answer = 'Привет. Я помощник умный дом.' + "\n\n" + 'Я умею, контроллировать температуру, открывать закрывать шторы, управлять пылесосом начиная и завершая уборку, и многое другое. Просто назови команду, и я, исполню её.';
              callback(answer);
              }
       if(cmd == `включи телевизор`) {setState("lgtv.0.states.power"/*Switch TV power*/, true); answer = `телевизор включен`;callback(answer); 
       }
        if(cmd == `включить телевизор`) {setState("lgtv.0.states.power"/*Switch TV power*/, true); answer = `телевизор включен`;callback(answer); 
       }
       if(cmd == `выключи телевизор`) {setState("lgtv.0.remote.power"/*Remote key power*/, true); answer = `телевизор выключен`;callback(answer);
       }
        if(cmd == `выключить телевизор`) {setState("lgtv.0.remote.power"/*Remote key power*/, true); answer = `телевизор выключен`;callback(answer);
       }
          if(!answer.length){
              callback('Я не понимаю эту команду.');
              }
          }
       
      // Функция получения POST запроса
      function processPostData(request, response, callback) {
          var queryData = "";
          if(typeof callback !== 'function') return null;
       
          if(request.method == 'POST') {
              request.on('data', function(data) {
                  queryData += data;
                  if(queryData.length > 1e6) {
                      queryData = "";
                      response.writeHead(413, {'Content-Type': 'text/plain'}).end();
                      request.connection.destroy();
                  }
              });
       
              request.on('end', function() {
                  request.post = querystring.parse(queryData);
                  callback();
              });
       
          } else {
              callback();
              response.writeHead(405, {'Content-Type': 'text/plain'});
              response.end();
          }
      }
      
      
      1 Reply Last reply Reply Quote 0
      • First post
        Last post

      Support us

      ioBroker
      Community Adapters
      Donate

      811
      Online

      31.8k
      Users

      80.0k
      Topics

      1.3m
      Posts

      laitis
      1
      1
      382
      Loading More Posts
      • Oldest to Newest
      • Newest to Oldest
      • Most Votes
      Reply
      • Reply as topic
      Log in to reply
      Community
      Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
      The ioBroker Community 2014-2023
      logo