Weiter zum Inhalt
  • Home
  • Aktuell
  • Tags
  • 0 Ungelesen 0
  • Kategorien
  • Unreplied
  • Beliebt
  • GitHub
  • Docu
  • Hilfe
Skins
  • Hell
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dunkel
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Standard: (Kein Skin)
  • Kein Skin
Einklappen
ioBroker Logo

Community Forum

donate donate
  1. ioBroker Community Home
  2. Русский
  3. ioBroker
  4. Скрипты
  5. ioBroker скрипты
  6. Голосовое меню

NEWS

  • Neuer ioBroker-Blog online: Monatsrückblick März/April 2026
    BluefoxB
    Bluefox
    8
    1
    1.7k

  • Verwendung von KI bitte immer deutlich kennzeichnen
    HomoranH
    Homoran
    10
    1
    712

  • Monatsrückblick Januar/Februar 2026 ist online!
    BluefoxB
    Bluefox
    18
    1
    1.2k

Голосовое меню

Geplant Angeheftet Gesperrt Verschoben ioBroker скрипты
11 Beiträge 4 Kommentatoren 3.4k Aufrufe
  • Älteste zuerst
  • Neuste zuerst
  • Meiste Stimmen
Antworten
  • In einem neuen Thema antworten
Anmelden zum Antworten
Dieses Thema wurde gelöscht. Nur Nutzer mit entsprechenden Rechten können es sehen.
  • I Offline
    I Offline
    instalator
    schrieb am zuletzt editiert von
    #1

    Один из вариантов реализации голосового меню на примере меню для заказа воды.

    Сейчас скрипт получился такой

    ! ```
    `menu = [
    [
    ['Заказываем как обычно?', 'да', 'нет', [0,1]],
    ['На какой день?', 'сегодня', 'завтра'],
    ['На какое время?', 'утро', 'обед', 'вечер'],
    ['Я делаю заказ']

    ],
    [   
        ['Какое количество?', 'одну', 'две'],
        ['Какое количество?', 'одну', 'две'],
        ['На какой день?', 'сегодня', 'завтра'],
        ['На какое время?', 'утро', 'обед', 'вечер']
    ]
    

    ];
    var collect = {
    hours: {
    1: '9:00-13:00 (утро)',
    2: '13:01-17:00 (день)',
    3: '17:01-21:00 (вечер)',
    4: '18:01-21:00 (вечер)'
    },
    Product: {
    id: [1204],
    price: [190],
    discprice: [180]
    }
    };
    var order = {
    productsid: 1204,
    price: 190,
    discountprice: 180,
    count: 1,
    date: '16-03-2016',
    hours: '18:01-21:00 (вечер)',
    periodid: 4
    };
    ////////////////////////////////////
    function resultOrder(item, num){
    log('RESULT - ' + result);
    //var order = getState('javascript.0.WaterOrder.order').val;
    var prodid = JSON.parse(getState('javascript.0.WaterOrder.ProductsId').val);
    var price = JSON.parse(getState('javascript.0.WaterOrder.price').val);
    var discprice = JSON.parse(getState('javascript.0.WaterOrder.discountPrice').val);

    var date = new Date();
    var day = date.getDate();
    var month = ((date.getMonth()+1)<10?'0':'')+(date.getMonth()+1);
    var year = date.getFullYear();
    
    if (num === 0){
        var datedost;
        if (result[1] === 0){
            // productsid, price, discountprice, count, date, hours, periodid
            datedost = 'сегодня';
            order.date = day+ '-' +month+ '-' +year;
        }
        else if (result[1] === 1){
            datedost = 'завтра';
            order.date = day+1 + '-' +month+ '-' +year;
        }
        if (result[2] === 0){
            order.hours = collect.hours['1'];
            order.periodid = 1;
        }
        else if (result[2] === 1){
            order.hours = collect.hours['2'];
            order.periodid = 2;
        }
        else if (result[2] === 2){
            order.hours = collect.hours['4'];
            order.periodid = 4;
        }
    
        var e = prodid.indexOf(order.productsid);
        if (~e){
            order.price = price[e];
            order.discountprice = discprice[e];
        }
        var per = order.hours.replace(/-/g, ' часов до ');
        setState('sayit.0.tts.text',  'Я заказываю '+ order.count + ' бутыль за '+ order.count * order.price + ' руб. .' + 'Доставка ' + datedost + ' в период с ' + per);
        setState('javascript.0.WaterOrder.order', JSON.stringify(order));
        setState('javascript.0.WaterOrder.Start', true);
    }
    if (num === 1){
    
    }
    

    }
    /////////////////////////////////////////////////////////////////////////////////
    /////////////////////////////////////////////////////////////////////////////////
    var result = [];
    var item;
    var num;
    var wait;
    var сonf;
    var flag = false;
    var step;
    var notFound = 0;
    var voice = '';

    ! on({id: 'javascript.0.Voice.Command', change: 'any'}, function (obj) {
    voice = obj.newState.val.toLowerCase();
    VoiceCommands (voice);
    });
    ///////////////////////////////////////
    function verify(confirm){
    if (confirm === true){
    var lastAnswer = result[result.length - 1];
    if (lastAnswer === undefined) {
    console.error('No last answer found: ' + JSON.stringify(result));
    return;
    }
    var possibleValues = menu[num][item][menu[num][item].length - 1]; // always last element of submenu
    if (possibleValues === undefined) {
    console.error('No possible values found: ' + JSON.stringify(menu[num][item]));
    return;
    }
    if (typeof possibleValues === 'object' && possibleValues[lastAnswer] !== 0){
    clear();
    item = 0;
    step = 0;
    num = possibleValues[lastAnswer];
    whiles(item, num);
    log('Переходим в подменю меню');
    } else {
    //log('Подтверждение - ' + confirm);
    log('Массив результата - ' + JSON.stringify(result));
    item++;
    if (item >= menu[num].length -1){
    clear();
    resultOrder(item, num);
    } else {
    whiles(item, num);
    }
    }
    } else {
    setState('javascript.0.Voice.menu', false);
    clear();
    setState('sayit.0.tts.text', 'Ошибка! Заказ отменён.');
    }
    }
    ///////////////////////////////////////
    function whiles(item, num){
    log('Переменные: num-' + num +' item-'+ item);
    log('menu[num][item]' + menu[num][item]);
    //log('SayIt - ' + menu[num][item][0]);
    var say = menu[num][item].slice();
    if (typeof menu[num][item][menu[num][item].length-1] === 'object'){
    say.pop();
    }
    log('say ' + JSON.stringify(say));
    setState('sayit.0.tts.text', JSON.stringify(say));
    Confirm(num, item, function (confirm) {
    verify(confirm);
    //setState('sayit.0.tts.text', menu[i][0]);
    });
    }
    /////////////////////////////////////////////
    function clear(){
    log('Отписались');
    unsubscribe(сonf);
    clearTimeout(wait);
    }
    ///////////////////////////////////////
    function Confirm (num, item, callback){
    wait = setTimeout(function() {
    setState('javascript.0.Voice.menu', false);
    //setState('sayit.0.tts.text', 'Заказ отменён по таймауту');
    unsubscribe(сonf);
    callback (false);
    }, 40000);
    сonf = on({id: 'javascript.0.Voice.Command', change: 'any'}, function (obj) {
    var voice = obj.newState.val.toLowerCase();
    var Arrphrase = menu[num][item].slice();
    Arrphrase.splice(0, 1);
    var el;
    Arrphrase.forEach(function(itm, i, arr) {
    //log ('i - '+ i +' Ищем в '+voice+ ' - '+ itm+ ' Массив -' + arr);
    if (~voice.indexOf(itm)){
    flag = true;
    el = i;
    }
    if (i >= Arrphrase.length-1){
    if (flag){
    result[step] = el;
    log('Номер найденного элемента в массиве - ' + el);
    step++;
    flag = false;
    clear();
    callback (true);
    } else {
    flag = false;
    if (notFound > 0){
    clear();
    callback (false);
    } else {
    notFound++;
    setState('sayit.0.tts.text', 'Не поняла, повторите');
    clear();
    Confirm (num, item, function (confirm, cmd) {
    verify(confirm, menu);
    });
    whiles(item, num);
    }
    }
    }

        });
    });
    

    }
    ////////////////////////////////////////
    function VoiceCommands (voice){
    log('Вся переменная - ' + voice);
    if ((found('закаж') || found('заказ')) && found('вод')){
    setState('javascript.0.Voice.menu', true);
    setState('javascript.0.WaterOrder.Update', true);
    item = 0;
    num = 0;
    step = 0;
    whiles(item, num);
    }
    ///////
    function found (cmd){
    cmd = String(cmd);
    if (~voice.indexOf(cmd)){
    return true;
    } else {
    return false;
    }
    }
    }`

    ! Скрипт под спойлером обновлен.[/i]

    Высокий уровень Децибел вреден для здоровья!

    http://blog.instalator.ru/

    1 Antwort Letzte Antwort
    0
    • B Offline
      B Offline
      bondrogeen
      schrieb am zuletzt editiert von
      #2

      Для себя пока решил обрабатывать голос сторонними программами, такими как АССИСТЕНТ ДУСЯ, а результат выводить в iobroker.

      1 Antwort Letzte Antwort
      0
      • I Offline
        I Offline
        instalator
        schrieb am zuletzt editiert von
        #3

        @bondrogeen:

        Для себя пока решил обрабатывать голос сторонними программами, такими как АССИСТЕНТ ДУСЯ, а результат выводить в iobroker. `
        Ты сделал в дусе меню? Смысл темы сделать диалог с уд

        Высокий уровень Децибел вреден для здоровья!

        http://blog.instalator.ru/

        1 Antwort Letzte Antwort
        0
        • B Offline
          B Offline
          bondrogeen
          schrieb am zuletzt editiert von
          #4

          @instalator:

          @bondrogeen:

          Для себя пока решил обрабатывать голос сторонними программами, такими как АССИСТЕНТ ДУСЯ, а результат выводить в iobroker. Ты сделал в дусе меню? Смысл темы сделать диалог с уд

          Нет.

          Пока задачи такой не стоит.

          Я имел ввиду переложить задачу на распознавание речи, обработку синтаксиса, диалог на сторонние программы.

          В процессе диалога забирать или отправлять команды iobroker.

          В дуси есть "скрипты" где можно как раз обрабатывать все это.

          П.С. что заказывать собрались?

          1 Antwort Letzte Antwort
          0
          • I Offline
            I Offline
            instalator
            schrieb am zuletzt editiert von
            #5

            @bondrogeen:

            @instalator:

            @bondrogeen:

            Для себя пока решил обрабатывать голос сторонними программами, такими как АССИСТЕНТ ДУСЯ, а результат выводить в iobroker. Ты сделал в дусе меню? Смысл темы сделать диалог с уд
            Делаю голосовое управления скриптом заказа воды

            Нет.

            Пока задачи такой не стоит.

            Я имел ввиду переложить задачу на распознавание речи, обработку синтаксиса, диалог на сторонние программы.

            В процессе диалога забирать или отправлять команды iobroker.

            В дуси есть "скрипты" где можно как раз обрабатывать все это.

            П.С. что заказывать собрались? `
            Делаю голосовое управление скриптом заказа воды

            Высокий уровень Децибел вреден для здоровья!

            http://blog.instalator.ru/

            1 Antwort Letzte Antwort
            0
            • BluefoxB Offline
              BluefoxB Offline
              Bluefox
              schrieb am zuletzt editiert von
              #6

              @instalator:

              PS/ BlueFox в переменных(состояниях) IoB можно же хранить объекты и массивы? `
              Да можно, как минимум в JSON.

              1 Antwort Letzte Antwort
              0
              • I Offline
                I Offline
                instalator
                schrieb am zuletzt editiert von
                #7

                Обновил скрипт меню.

                Высокий уровень Децибел вреден для здоровья!

                http://blog.instalator.ru/

                1 Antwort Letzte Antwort
                0
                • H Offline
                  H Offline
                  Haus
                  schrieb am zuletzt editiert von
                  #8

                  @instalator:

                  Один из вариантов реализации голосового меню на примере меню для заказа воды.

                  Сейчас скрипт получился такой

                  ! ```
                  `menu = [
                  [
                  ['Заказываем как обычно?', 'да', 'нет', [0,1]],
                  ['На какой день?', 'сегодня', 'завтра'],
                  ['На какое время?', 'утро', 'обед', 'вечер'],
                  ['Я делаю заказ']

                  ],
                  [   
                      ['Какое количество?', 'одну', 'две'],
                      ['Какое количество?', 'одну', 'две'],
                      ['На какой день?', 'сегодня', 'завтра'],
                      ['На какое время?', 'утро', 'обед', 'вечер']
                  ]
                  

                  ];
                  var collect = {
                  hours: {
                  1: '9:00-13:00 (утро)',
                  2: '13:01-17:00 (день)',
                  3: '17:01-21:00 (вечер)',
                  4: '18:01-21:00 (вечер)'
                  },
                  Product: {
                  id: [1204],
                  price: [190],
                  discprice: [180]
                  }
                  };
                  var order = {
                  productsid: 1204,
                  price: 190,
                  discountprice: 180,
                  count: 1,
                  date: '16-03-2016',
                  hours: '18:01-21:00 (вечер)',
                  periodid: 4
                  };
                  ////////////////////////////////////
                  function resultOrder(item, num){
                  log('RESULT - ' + result);
                  //var order = getState('javascript.0.WaterOrder.order').val;
                  var prodid = JSON.parse(getState('javascript.0.WaterOrder.ProductsId').val);
                  var price = JSON.parse(getState('javascript.0.WaterOrder.price').val);
                  var discprice = JSON.parse(getState('javascript.0.WaterOrder.discountPrice').val);

                  var date = new Date();
                  var day = date.getDate();
                  var month = ((date.getMonth()+1)<10?'0':'')+(date.getMonth()+1);
                  var year = date.getFullYear();
                  
                  if (num === 0){
                      var datedost;
                      if (result[1] === 0){
                          // productsid, price, discountprice, count, date, hours, periodid
                          datedost = 'сегодня';
                          order.date = day+ '-' +month+ '-' +year;
                      }
                      else if (result[1] === 1){
                          datedost = 'завтра';
                          order.date = day+1 + '-' +month+ '-' +year;
                      }
                      if (result[2] === 0){
                          order.hours = collect.hours['1'];
                          order.periodid = 1;
                      }
                      else if (result[2] === 1){
                          order.hours = collect.hours['2'];
                          order.periodid = 2;
                      }
                      else if (result[2] === 2){
                          order.hours = collect.hours['4'];
                          order.periodid = 4;
                      }
                      
                      var e = prodid.indexOf(order.productsid);
                      if (~e){
                          order.price = price[e];
                          order.discountprice = discprice[e];
                      }
                      var per = order.hours.replace(/-/g, ' часов до ');
                      setState('sayit.0.tts.text',  'Я заказываю '+ order.count + ' бутыль за '+ order.count * order.price + ' руб. .' + 'Доставка ' + datedost + ' в период с ' + per);
                      setState('javascript.0.WaterOrder.order', JSON.stringify(order));
                      setState('javascript.0.WaterOrder.Start', true);
                  }
                  if (num === 1){
                      
                  }
                  

                  }
                  /////////////////////////////////////////////////////////////////////////////////
                  /////////////////////////////////////////////////////////////////////////////////
                  var result = [];
                  var item;
                  var num;
                  var wait;
                  var сonf;
                  var flag = false;
                  var step;
                  var notFound = 0;
                  var voice = '';

                  ! on({id: 'javascript.0.Voice.Command', change: 'any'}, function (obj) {
                  voice = obj.newState.val.toLowerCase();
                  VoiceCommands (voice);
                  });
                  ///////////////////////////////////////
                  function verify(confirm){
                  if (confirm === true){
                  var lastAnswer = result[result.length - 1];
                  if (lastAnswer === undefined) {
                  console.error('No last answer found: ' + JSON.stringify(result));
                  return;
                  }
                  var possibleValues = menu[num][item][menu[num][item].length - 1]; // always last element of submenu
                  if (possibleValues === undefined) {
                  console.error('No possible values found: ' + JSON.stringify(menu[num][item]));
                  return;
                  }
                  if (typeof possibleValues === 'object' && possibleValues[lastAnswer] !== 0){
                  clear();
                  item = 0;
                  step = 0;
                  num = possibleValues[lastAnswer];
                  whiles(item, num);
                  log('Переходим в подменю меню');
                  } else {
                  //log('Подтверждение - ' + confirm);
                  log('Массив результата - ' + JSON.stringify(result));
                  item++;
                  if (item >= menu[num].length -1){
                  clear();
                  resultOrder(item, num);
                  } else {
                  whiles(item, num);
                  }
                  }
                  } else {
                  setState('javascript.0.Voice.menu', false);
                  clear();
                  setState('sayit.0.tts.text', 'Ошибка! Заказ отменён.');
                  }
                  }
                  ///////////////////////////////////////
                  function whiles(item, num){
                  log('Переменные: num-' + num +' item-'+ item);
                  log('menu[num][item]' + menu[num][item]);
                  //log('SayIt - ' + menu[num][item][0]);
                  var say = menu[num][item].slice();
                  if (typeof menu[num][item][menu[num][item].length-1] === 'object'){
                  say.pop();
                  }
                  log('say ' + JSON.stringify(say));
                  setState('sayit.0.tts.text', JSON.stringify(say));
                  Confirm(num, item, function (confirm) {
                  verify(confirm);
                  //setState('sayit.0.tts.text', menu[i][0]);
                  });
                  }
                  /////////////////////////////////////////////
                  function clear(){
                  log('Отписались');
                  unsubscribe(сonf);
                  clearTimeout(wait);
                  }
                  ///////////////////////////////////////
                  function Confirm (num, item, callback){
                  wait = setTimeout(function() {
                  setState('javascript.0.Voice.menu', false);
                  //setState('sayit.0.tts.text', 'Заказ отменён по таймауту');
                  unsubscribe(сonf);
                  callback (false);
                  }, 40000);
                  сonf = on({id: 'javascript.0.Voice.Command', change: 'any'}, function (obj) {
                  var voice = obj.newState.val.toLowerCase();
                  var Arrphrase = menu[num][item].slice();
                  Arrphrase.splice(0, 1);
                  var el;
                  Arrphrase.forEach(function(itm, i, arr) {
                  //log ('i - '+ i +' Ищем в '+voice+ ' - '+ itm+ ' Массив -' + arr);
                  if (~voice.indexOf(itm)){
                  flag = true;
                  el = i;
                  }
                  if (i >= Arrphrase.length-1){
                  if (flag){
                  result[step] = el;
                  log('Номер найденного элемента в массиве - ' + el);
                  step++;
                  flag = false;
                  clear();
                  callback (true);
                  } else {
                  flag = false;
                  if (notFound > 0){
                  clear();
                  callback (false);
                  } else {
                  notFound++;
                  setState('sayit.0.tts.text', 'Не поняла, повторите');
                  clear();
                  Confirm (num, item, function (confirm, cmd) {
                  verify(confirm, menu);
                  });
                  whiles(item, num);
                  }
                  }
                  }

                      });
                  

                  });
                  }
                  ////////////////////////////////////////
                  function VoiceCommands (voice){
                  log('Вся переменная - ' + voice);
                  if ((found('закаж') || found('заказ')) && found('вод')){
                  setState('javascript.0.Voice.menu', true);
                  setState('javascript.0.WaterOrder.Update', true);
                  item = 0;
                  num = 0;
                  step = 0;
                  whiles(item, num);
                  }
                  ///////
                  function found (cmd){
                  cmd = String(cmd);
                  if (~voice.indexOf(cmd)){
                  return true;
                  } else {
                  return false;
                  }
                  }
                  }`

                  ! Скрипт под спойлером обновлен.
                  ! Привет пробую разобраться с твоим скриптом, создал переменные
                  ! ~~[code]~~createState('WaterOrder.order',''); createState('WaterOrder.ProductsId',''); createState('WaterOrder.price',''); createState('WaterOrder.discountPrice',''); createState('WaterOrder.Start',''); createState('Voice.Command',''); createState('Voice.menu',''); createState('WaterOrder.Update','');[/code]
                  ! ругается после ответа, что не так?
                  ! >! ~~[spoiler]~~17:31:56.229 [info] javascript.2 script.js.AWaterOrder: Вся переменная - заказ воды
                  ! 17:31:56.231 [info] javascript.2 script.js.AWaterOrder: Переменные: num-0 item-0
                  ! 17:31:56.231 [info] javascript.2 script.js.AWaterOrder: menu[num][item]Заказываем как обычно?,да,нет,0,1
                  ! 17:31:56.232 [info] javascript.2 script.js.AWaterOrder: say ["Заказываем как обычно?","да","нет"]
                  ! 17:32:09.189 [info] javascript.2 script.js.AWaterOrder: Вся переменная - да
                  ! 17:32:09.194 [info] javascript.2 script.js.AWaterOrder: Номер найденного элемента в массиве - 0
                  ! 17:32:09.194 [info] javascript.2 script.js.AWaterOrder: Отписались
                  ! 17:32:09.194 [info] javascript.2 script.js.AWaterOrder: Массив результата - [0]
                  ! 17:32:09.194 [info] javascript.2 script.js.AWaterOrder: Переменные: num-0 item-1
                  ! 17:32:09.194 [info] javascript.2 script.js.AWaterOrder: menu[num][item]На какой день?,сегодня,завтра
                  ! 17:32:09.195 [info] javascript.2 script.js.AWaterOrder: say ["На какой день?","сегодня","завтра"]
                  ! 17:32:21.366 [info] javascript.2 script.js.AWaterOrder: Вся переменная - сегодня
                  ! 17:32:21.367 [info] javascript.2 script.js.AWaterOrder: Номер найденного элемента в массиве - 0
                  ! 17:32:21.367 [info] javascript.2 script.js.AWaterOrder: Отписались
                  ! 17:32:21.369 [info] javascript.2 script.js.AWaterOrder: Массив результата - [0,0]
                  ! 17:32:21.369 [info] javascript.2 script.js.AWaterOrder: Переменные: num-0 item-2
                  ! 17:32:21.369 [info] javascript.2 script.js.AWaterOrder: menu[num][item]На какое время?,утро,обед,вечер
                  ! 17:32:21.370 [info] javascript.2 script.js.AWaterOrder: say ["На какое время?","утро","обед","вечер"]
                  ! 17:32:30.823 [info] javascript.2 script.js.AWaterOrder: Вся переменная - вечер
                  ! 17:32:30.823 [info] javascript.2 script.js.AWaterOrder: Номер найденного элемента в массиве - 2
                  ! 17:32:30.824 [info] javascript.2 script.js.AWaterOrder: Отписались
                  ! 17:32:30.824 [info] javascript.2 script.js.AWaterOrder: Массив результата - [0,0,2]
                  ! 17:32:30.824 [info] javascript.2 script.js.AWaterOrder: Отписались
                  ! 17:32:30.824 [info] javascript.2 script.js.AWaterOrder: RESULT - 0,0,2
                  ! 17:32:30.825 [error] SyntaxError: Unexpected end of input at Object.parse (native) at resultOrder (script.js.AWaterOrder:75:23) at verify (script.js.AWaterOrder:164:17) at script.js.AWaterOrder:187:13 at script.js.AWaterOrder:223:21 at Array.forEach (native) at Object. (script.js.AWaterOrder:210:18) at Object.subs.callback (/opt/iobroker/node_modules/iobroker.javascript/javascript.js:1206:48) at /opt/iobroker/node_modules/iobroker.javascript/javascript.js:541:48 at getObjectEnums (/opt/iobroker/node_modules/iobroker.javascript/javascript.js:2430:17)[/spoiler][/i]
                  ``` `

                  js-controller: 1.5.7 / node.js: v8.15.1/ npm: 6.4.1

                  admin: 3.6.0

                  javascript: 4.1.10

                  web: 2.4.1 vis: 1.1.10

                  cloud: 2.6.2

                  Server: DELL FX170 / linux: Debian 9.5 Stretch

                  Adapter: MegaD-2561, Mega-ES…

                  1 Antwort Letzte Antwort
                  0
                  • I Offline
                    I Offline
                    instalator
                    schrieb am zuletzt editiert von
                    #9

                    @Haus:

                    Привет пробую разобраться с твоим скриптом, создал переменные

                    createState('WaterOrder.order','');
                    createState('WaterOrder.ProductsId','');
                    createState('WaterOrder.price','');
                    createState('WaterOrder.discountPrice','');
                    createState('WaterOrder.Start','');
                    createState('Voice.Command','');
                    createState('Voice.menu','');
                    createState('WaterOrder.Update','');
                    

                    ругается после ответа, что не так? `

                    У тебя видимо объекты пустые, у меня там массивы данных
                    filename="е4343.png" index="0">~~
                    Смысл меню что в итоге получить массив с выбранными данными, а его уже обрабатывать можно как тебе нужно.

                    У меня есть вторая часть скрипта заказа, которая парсит сайт, наполняет эти объекты актуальными данными и отправляет сформированный заказ.

                    Высокий уровень Децибел вреден для здоровья!

                    http://blog.instalator.ru/

                    1 Antwort Letzte Antwort
                    0
                    • H Offline
                      H Offline
                      Haus
                      schrieb am zuletzt editiert von
                      #10

                      @instalator:

                      @Haus:

                      Привет пробую разобраться с твоим скриптом, создал переменные

                      createState('WaterOrder.order','');
                      createState('WaterOrder.ProductsId','');
                      createState('WaterOrder.price','');
                      createState('WaterOrder.discountPrice','');
                      createState('WaterOrder.Start','');
                      createState('Voice.Command','');
                      createState('Voice.menu','');
                      createState('WaterOrder.Update','');
                      

                      ругается после ответа, что не так? `

                      У тебя видимо объекты пустые, у меня там массивы данных
                      filename="е4343.png" index="0">~~
                      Смысл меню что в итоге получить массив с выбранными данными, а его уже обрабатывать можно как тебе нужно.

                      У меня есть вторая часть скрипта заказа, которая парсит сайт, наполняет эти объекты актуальными данными и отправляет сформированный заказ. `

                      Я так понял есть компания которая по заказу клиента доставляет воду в бутылях. Если вторая часть скрипта заказа не секретная выложи пожалуйста.

                      js-controller: 1.5.7 / node.js: v8.15.1/ npm: 6.4.1

                      admin: 3.6.0

                      javascript: 4.1.10

                      web: 2.4.1 vis: 1.1.10

                      cloud: 2.6.2

                      Server: DELL FX170 / linux: Debian 9.5 Stretch

                      Adapter: MegaD-2561, Mega-ES…

                      1 Antwort Letzte Antwort
                      0
                      • I Offline
                        I Offline
                        instalator
                        schrieb am zuletzt editiert von
                        #11

                        @Haus:

                        Я так понял есть компания которая по заказу клиента доставляет воду в бутылях. Если вторая часть скрипта заказа не секретная выложи пожалуйста. `
                        266_new__0.rar

                        Высокий уровень Децибел вреден для здоровья!

                        http://blog.instalator.ru/

                        1 Antwort Letzte Antwort
                        0

                        Hey! Du scheinst an dieser Unterhaltung interessiert zu sein, hast aber noch kein Konto.

                        Hast du es satt, bei jedem Besuch durch die gleichen Beiträge zu scrollen? Wenn du dich für ein Konto anmeldest, kommst du immer genau dorthin zurück, wo du zuvor warst, und kannst dich über neue Antworten benachrichtigen lassen (entweder per E-Mail oder Push-Benachrichtigung). Du kannst auch Lesezeichen speichern und Beiträge positiv bewerten, um anderen Community-Mitgliedern deine Wertschätzung zu zeigen.

                        Mit deinem Input könnte dieser Beitrag noch besser werden 💗

                        Registrieren Anmelden
                        Antworten
                        • In einem neuen Thema antworten
                        Anmelden zum Antworten
                        • Älteste zuerst
                        • Neuste zuerst
                        • Meiste Stimmen


                        Support us

                        ioBroker
                        Community Adapters
                        Donate

                        474

                        Online

                        32.9k

                        Benutzer

                        83.0k

                        Themen

                        1.3m

                        Beiträge
                        Community
                        Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen | Einwilligungseinstellungen
                        ioBroker Community 2014-2025
                        logo
                        • Anmelden

                        • Du hast noch kein Konto? Registrieren

                        • Anmelden oder registrieren, um zu suchen
                        • Erster Beitrag
                          Letzter Beitrag
                        0
                        • Home
                        • Aktuell
                        • Tags
                        • Ungelesen 0
                        • Kategorien
                        • Unreplied
                        • Beliebt
                        • GitHub
                        • Docu
                        • Hilfe