Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Русский
    3. ioBroker
    4. Скрипты
    5. ioBroker скрипты
    6. Вопросы по написанию скриптов

    NEWS

    • Monatsrückblick - April 2025

    • Minor js-controller 7.0.7 Update in latest repo

    • Save The Date: ioBroker@Smart Living Forum Solingen, 14.06.

    Вопросы по написанию скриптов

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

      Может так. А код для включения от выключателя существует? Примерно, как вторая часть у моего скрипта?

      var timer;
      
      on({id: "megad.1.p1_Движение_гостинная"/*Движение_гостинная*/, change: 'ne'}, function (obj) {
          if (!obj.state.ack) return; // this shoould not happen
      
      	var svetOn   = parseInt(getState('svetOn').val)   || 0;
      	var onSensor = parseInt(getState('onSensor').val) || 0;
      	var isMotion = obj.newState.val === 'true' || obj.newState.val === true || obj.newState.val === '1' || obj.newState.val === 1;
      	log('svetOn: ' + svetOn + ', p1_Движение_гостинная: ' + isMotion + '[ack: ' + obj.state.ack + '], onSensor: ' + onSensor);
      	// svetOn: 3, p1_Движение_гостинная: false[ack: true], onSensor: 1
      
      	// if motion and sensor enabled and light is OFF or switched on by motion detector
          if (isMotion && onSensor === 1 && (svetOn === 0 || svetOn === 3)) {
      
      		// Output of brightness in kitchen. Just for debug
      		log(getState('megad.1.p10_Свет_гостинная'/*Свет_гостинная*/).val);
      
      		// if light was off => we switch the light on because of motion detector. Start timer		
      		setState("megad.1.p10_Свет_гостинная"/*Свет_гостинная*/, 255);
      		setState('svetOn', 3);
      		log("Включен свет по движению");
      
      		// start timer for 5 seconds to switch the light off
      		log('запускаем таймер отключения на 30000\. старый стираем');	
      		if (timer) clearTimeout(timer);
      		timer = setTimeout(function() {
      			timer = null;
      			setState("megad.1.p10_Свет_гостинная"/*Свет_гостинная*/, 0);
      			setState('svetOn', 0);
      		    log("выкл свет по таймеру");		   
      		}, 5000);
          }
      });
      
      on({id: "megad.1.px_выключатель света", change: 'ne'}, function (obj) {
      	// manual mode => ignore motion timer
      	if (timer) clearTimeout(timer);
      	timer = null;
      
      	var obj.state.val = obj.newState.val === 'true' || obj.newState.val === true || obj.newState.val === '1' || obj.newState.val === 1;
      
      	if (obj.state.val) {
      		// somebody pressed on button => switch the light on
      		setState("megad.1.p10_Свет_гостинная"/*Свет_гостинная*/, 255);
      		setState('svetOn', 1);
      	} else {
      		// somebody pressed off button => switch the light off
      		setState("megad.1.p10_Свет_гостинная"/*Свет_гостинная*/, 0);
      		setState('svetOn', 0);
      	}
      });
      
      
      1 Reply Last reply Reply Quote 0
      • C
        creo last edited by

        Вс равно блин каждые 30 сек зажигается свет:

        16:02:24.820	[info]	javascript.0 script.js.common.test_on: svetOn: 0, p1_Движение_гостинная: true[ack: true], onSensor: 1
        16:02:24.820	[info]	javascript.0 script.js.common.test_on: 0
        16:02:24.820	[info]	javascript.0 script.js.common.test_on: Включен свет по движению
        16:02:24.820	[info]	javascript.0 script.js.common.test_on: запускаем таймер отключения на 30000\. старый стираем
        16:02:24.926	[info]	javascript.0 script.js.common.test_on: svetOn: 3, p1_Движение_гостинная: false[ack: true], onSensor: 1
        16:02:29.821	[info]	javascript.0 script.js.common.test_on: выкл свет по таймеру
        16:02:54.836	[info]	javascript.0 script.js.common.test_on: svetOn: 0, p1_Движение_гостинная: true[ack: true], onSensor: 1
        16:02:54.836	[info]	javascript.0 script.js.common.test_on: 0
        16:02:54.836	[info]	javascript.0 script.js.common.test_on: Включен свет по движению
        16:02:54.836	[info]	javascript.0 script.js.common.test_on: запускаем таймер отключения на 30000\. старый стираем
        16:02:54.922	[info]	javascript.0 script.js.common.test_on: svetOn: 3, p1_Движение_гостинная: false[ack: true], onSensor: 1
        16:02:59.843	[info]	javascript.0 script.js.common.test_on: выкл свет по таймеру
        
        1 Reply Last reply Reply Quote 0
        • Bluefox
          Bluefox last edited by

          У тебя p1_Движение_гостинная каждые 30 сек присылает true.

          ` > 16:02:24.820 [info] javascript.0 script.js.common.test_on: svetOn: 0, p1_Движение_гостинная: true[ack: true], onSensor: 1

          16:02:54.836 [info] javascript.0 script.js.common.test_on: svetOn: 0, p1_Движение_гостинная: true[ack: true], onSensor: 1 `

          И скрипт отрабатывает всё правильно.

          Что выдаёт скрипт в течении 3 минут?

          on({id: "megad.1.p1_Движение_гостинная"/*Движение_гостинная*/, change: 'any'}, function (obj) {
             console.log(JSON.stringify(obj.state));
          });
          
          1 Reply Last reply Reply Quote 0
          • I
            instalator last edited by

            @creo:

            Вс равно блин каждые 30 сек зажигается свет:

            16:02:24.820	[info]	javascript.0 script.js.common.test_on: svetOn: 0, p1_Движение_гостинная: true[ack: true], onSensor: 1
            16:02:24.820	[info]	javascript.0 script.js.common.test_on: 0
            16:02:24.820	[info]	javascript.0 script.js.common.test_on: Включен свет по движению
            16:02:24.820	[info]	javascript.0 script.js.common.test_on: запускаем таймер отключения на 30000\. старый стираем
            16:02:24.926	[info]	javascript.0 script.js.common.test_on: svetOn: 3, p1_Движение_гостинная: false[ack: true], onSensor: 1
            16:02:29.821	[info]	javascript.0 script.js.common.test_on: выкл свет по таймеру
            16:02:54.836	[info]	javascript.0 script.js.common.test_on: svetOn: 0, p1_Движение_гостинная: true[ack: true], onSensor: 1
            16:02:54.836	[info]	javascript.0 script.js.common.test_on: 0
            16:02:54.836	[info]	javascript.0 script.js.common.test_on: Включен свет по движению
            16:02:54.836	[info]	javascript.0 script.js.common.test_on: запускаем таймер отключения на 30000\. старый стираем
            16:02:54.922	[info]	javascript.0 script.js.common.test_on: svetOn: 3, p1_Движение_гостинная: false[ack: true], onSensor: 1
            16:02:59.843	[info]	javascript.0 script.js.common.test_on: выкл свет по таймеру
            ```` `  
            

            Отключил объемник

            1 Reply Last reply Reply Quote 0
            • C
              creo last edited by

              Готово

              ! 20:35:34.143 [info] javascript.0 script.js.common.test_on: svetOn: 1, p1_Движение_гостинная: true[ack: true], onSensor: 0 20:35:34.143 [info] javascript.0 script.js.common.test_on: {"val":true,"ts":1474479334138,"ack":true,"lc":1474479334138,"from":"system.adapter.megad.1"} 20:35:34.244 [info] javascript.0 script.js.common.test_on: svetOn: 1, p1_Движение_гостинная: false[ack: true], onSensor: 0 20:35:34.244 [info] javascript.0 script.js.common.test_on: {"val":false,"ts":1474479334239,"ack":true,"lc":1474479334239,"from":"system.adapter.megad.1"} 20:35:37.399 [info] javascript.0 script.js.common.test_on: svetOn: 1, p1_Движение_гостинная: true[ack: true], onSensor: 0 20:35:37.399 [info] javascript.0 script.js.common.test_on: {"val":true,"ts":1474479337396,"ack":true,"lc":1474479337396,"from":"system.adapter.megad.1"} 20:35:37.500 [info] javascript.0 script.js.common.test_on: svetOn: 1, p1_Движение_гостинная: false[ack: true], onSensor: 0 20:35:37.501 [info] javascript.0 script.js.common.test_on: {"val":false,"ts":1474479337497,"ack":true,"lc":1474479337497,"from":"system.adapter.megad.1"} 20:35:49.257 [info] javascript.0 script.js.common.test_on: svetOn: 1, p1_Движение_гостинная: true[ack: true], onSensor: 0 20:35:49.257 [info] javascript.0 script.js.common.test_on: {"val":true,"ts":1474479349252,"ack":true,"lc":1474479349252,"from":"system.adapter.megad.1"} 20:35:49.355 [info] javascript.0 script.js.common.test_on: svetOn: 1, p1_Движение_гостинная: false[ack: true], onSensor: 0 20:35:49.356 [info] javascript.0 script.js.common.test_on: {"val":false,"ts":1474479349352,"ack":true,"lc":1474479349352,"from":"system.adapter.megad.1"} 20:36:04.770 [info] javascript.0 script.js.common.test_on: svetOn: 1, p1_Движение_гостинная: true[ack: true], onSensor: 0 20:36:04.770 [info] javascript.0 script.js.common.test_on: {"val":true,"ts":1474479364766,"ack":true,"lc":1474479364766,"from":"system.adapter.megad.1"} 20:36:04.872 [info] javascript.0 script.js.common.test_on: svetOn: 1, p1_Движение_гостинная: false[ack: true], onSensor: 0 20:36:04.872 [info] javascript.0 script.js.common.test_on: {"val":false,"ts":1474479364867,"ack":true,"lc":1474479364867,"from":"system.adapter.megad.1"} 20:36:07.400 [info] javascript.0 script.js.common.test_on: svetOn: 1, p1_Движение_гостинная: true[ack: true], onSensor: 0 20:36:07.401 [info] javascript.0 script.js.common.test_on: {"val":true,"ts":1474479367397,"ack":true,"lc":1474479367397,"from":"system.adapter.megad.1"} 20:36:07.503 [info] javascript.0 script.js.common.test_on: svetOn: 1, p1_Движение_гостинная: false[ack: true], onSensor: 0 20:36:07.503 [info] javascript.0 script.js.common.test_on: {"val":false,"ts":1474479367499,"ack":true,"lc":1474479367499,"from":"system.adapter.megad.1"} 20:36:21.801 [info] javascript.0 script.js.common.test_on: svetOn: 1, p1_Движение_гостинная: true[ack: true], onSensor: 0 20:36:21.801 [info] javascript.0 script.js.common.test_on: {"val":true,"ts":1474479381790,"ack":true,"lc":1474479381790,"from":"system.adapter.megad.1"} 20:36:21.892 [info] javascript.0 script.js.common.test_on: svetOn: 1, p1_Движение_гостинная: false[ack: true], onSensor: 0 20:36:21.893 [info] javascript.0 script.js.common.test_on: {"val":false,"ts":1474479381889,"ack":true,"lc":1474479381889,"from":"system.adapter.megad.1"} 20:36:29.213 [info] javascript.0 script.js.common.test_on: svetOn: 1, p1_Движение_гостинная: true[ack: true], onSensor: 0 20:36:29.214 [info] javascript.0 script.js.common.test_on: {"val":true,"ts":1474479389208,"ack":true,"lc":1474479389208,"from":"system.adapter.megad.1"} 20:36:29.312 [info] javascript.0 script.js.common.test_on: svetOn: 1, p1_Движение_гостинная: false[ack: true], onSensor: 0 20:36:29.313 [info] javascript.0 script.js.common.test_on: {"val":false,"ts":1474479389309,"ack":true,"lc":1474479389309,"from":"system.adapter.megad.1"} 20:36:31.897 [info] javascript.0 script.js.common.test_on: svetOn: 1, p1_Движение_гостинная: true[ack: true], onSensor: 0 20:36:31.898 [info] javascript.0 script.js.common.test_on: {"val":true,"ts":1474479391893,"ack":true,"lc":1474479391893,"from":"system.adapter.megad.1"} 20:36:32.008 [info] javascript.0 script.js.common.test_on: svetOn: 1, p1_Движение_гостинная: false[ack: true], onSensor: 0 20:36:32.009 [info] javascript.0 script.js.common.test_on: {"val":false,"ts":1474479391997,"ack":true,"lc":1474479391997,"from":"system.adapter.megad.1"} 20:36:34.856 [info] javascript.0 script.js.common.test_on: svetOn: 1, p1_Движение_гостинная: true[ack: true], onSensor: 0 20:36:34.857 [info] javascript.0 script.js.common.test_on: {"val":true,"ts":1474479394853,"ack":true,"lc":1474479394853,"from":"system.adapter.megad.1"} 20:36:34.958 [info] javascript.0 script.js.common.test_on: svetOn: 1, p1_Движение_гостинная: false[ack: true], onSensor: 0 20:36:34.959 [info] javascript.0 script.js.common.test_on: {"val":false,"ts":1474479394953,"ack":true,"lc":1474479394953,"from":"system.adapter.megad.1"} 20:36:37.411 [info] javascript.0 script.js.common.test_on: svetOn: 1, p1_Движение_гостинная: true[ack: true], onSensor: 0 20:36:37.412 [info] javascript.0 script.js.common.test_on: {"val":true,"ts":1474479397405,"ack":true,"lc":1474479397405,"from":"system.adapter.megad.1"} 20:36:37.501 [info] javascript.0 script.js.common.test_on: svetOn: 1, p1_Движение_гостинная: false[ack: true], onSensor: 0 20:36:37.502 [info] javascript.0 script.js.common.test_on: {"val":false,"ts":1474479397498,"ack":true,"lc":1474479397498,"from":"system.adapter.megad.1"} 20:36:41.742 [info] javascript.0 script.js.common.test_on: svetOn: 1, p1_Движение_гостинная: true[ack: true], onSensor: 0 20:36:41.742 [info] javascript.0 script.js.common.test_on: {"val":true,"ts":1474479401732,"ack":true,"lc":1474479401732,"from":"system.adapter.megad.1"} 20:36:41.841 [info] javascript.0 script.js.common.test_on: svetOn: 1, p1_Движение_гостинная: false[ack: true], onSensor: 0 20:36:41.841 [info] javascript.0 script.js.common.test_on: {"val":false,"ts":1474479401833,"ack":true,"lc":1474479401833,"from":"system.adapter.megad.1"} 20:37:02.262 [info] javascript.0 script.js.common.test_on: svetOn: 1, p1_Движение_гостинная: true[ack: true], onSensor: 0 20:37:02.264 [info] javascript.0 script.js.common.test_on: {"val":true,"ts":1474479422255,"ack":true,"lc":1474479422255,"from":"system.adapter.megad.1"} 20:37:02.361 [info] javascript.0 script.js.common.test_on: svetOn: 1, p1_Движение_гостинная: false[ack: true], onSensor: 0 20:37:02.362 [info] javascript.0 script.js.common.test_on: {"val":false,"ts":1474479422355,"ack":true,"lc":1474479422355,"from":"system.adapter.megad.1"} 20:37:07.409 [info] javascript.0 script.js.common.test_on: svetOn: 1, p1_Движение_гостинная: true[ack: true], onSensor: 0 20:37:07.410 [info] javascript.0 script.js.common.test_on: {"val":true,"ts":1474479427405,"ack":true,"lc":1474479427405,"from":"system.adapter.megad.1"} 20:37:07.512 [info] javascript.0 script.js.common.test_on: svetOn: 1, p1_Движение_гостинная: false[ack: true], onSensor: 0 20:37:07.513 [info] javascript.0 script.js.common.test_on: {"val":false,"ts":1474479427509,"ack":true,"lc":1474479427509,"from":"system.adapter.megad.1"} 20:37:07.942 [info] javascript.0 script.js.common.test_on: svetOn: 1, p1_Движение_гостинная: true[ack: true], onSensor: 0 20:37:07.944 [info] javascript.0 script.js.common.test_on: {"val":true,"ts":1474479427935,"ack":true,"lc":1474479427935,"from":"system.adapter.megad.1"} 20:37:08.039 [info] javascript.0 script.js.common.test_on: svetOn: 1, p1_Движение_гостинная: false[ack: true], onSensor: 0 20:37:08.042 [info] javascript.0 script.js.common.test_on: {"val":false,"ts":1474479428035,"ack":true,"lc":1474479428035,"from":"system.adapter.megad.1"} 20:37:10.819 [info] javascript.0 script.js.common.test_on: svetOn: 1, p1_Движение_гостинная: true[ack: true], onSensor: 0 20:37:10.820 [info] javascript.0 script.js.common.test_on: {"val":true,"ts":1474479430810,"ack":true,"lc":1474479430810,"from":"system.adapter.megad.1"} 20:37:10.919 [info] javascript.0 script.js.common.test_on: svetOn: 1, p1_Движение_гостинная: false[ack: true], onSensor: 0 20:37:10.920 [info] javascript.0 script.js.common.test_on: {"val":false,"ts":1474479430913,"ack":true,"lc":1474479430913,"from":"system.adapter.megad.1"} 20:37:14.094 [info] javascript.0 script.js.common.test_on: svetOn: 1, p1_Движение_гостинная: true[ack: true], onSensor: 0 20:37:14.095 [info] javascript.0 script.js.common.test_on: {"val":true,"ts":1474479434089,"ack":true,"lc":1474479434089,"from":"system.adapter.megad.1"} 20:37:14.191 [info] javascript.0 script.js.common.test_on: svetOn: 1, p1_Движение_гостинная: false[ack: true], onSensor: 0 20:37:14.192 [info] javascript.0 script.js.common.test_on: {"val":false,"ts":1474479434188,"ack":true,"lc":1474479434188,"from":"system.adapter.megad.1"} 20:37:16.631 [info] javascript.0 script.js.common.test_on: svetOn: 1, p1_Движение_гостинная: true[ack: true], onSensor: 0 20:37:16.631 [info] javascript.0 script.js.common.test_on: {"val":true,"ts":1474479436625,"ack":true,"lc":1474479436625,"from":"system.adapter.megad.1"} 20:37:16.738 [info] javascript.0 script.js.common.test_on: svetOn: 1, p1_Движение_гостинная: false[ack: true], onSensor: 0 20:37:16.738 [info] javascript.0 script.js.common.test_on: {"val":false,"ts":1474479436732,"ack":true,"lc":1474479436732,"from":"system.adapter.megad.1"} 20:37:20.461 [info] javascript.0 script.js.common.test_on: svetOn: 1, p1_Движение_гостинная: true[ack: true], onSensor: 0 20:37:20.463 [info] javascript.0 script.js.common.test_on: {"val":true,"ts":1474479440454,"ack":true,"lc":1474479440454,"from":"system.adapter.megad.1"} 20:37:20.562 [info] javascript.0 script.js.common.test_on: svetOn: 1, p1_Движение_гостинная: false[ack: true], onSensor: 0 20:37:20.563 [info] javascript.0 script.js.common.test_on: {"val":false,"ts":1474479440556,"ack":true,"lc":1474479440556,"from":"system.adapter.megad.1"} 20:37:24.479 [info] javascript.0 script.js.common.test_on: svetOn: 1, p1_Движение_гостинная: true[ack: true], onSensor: 0 20:37:24.480 [info] javascript.0 script.js.common.test_on: {"val":true,"ts":1474479444473,"ack":true,"lc":1474479444473,"from":"system.adapter.megad.1"} 20:37:24.581 [info] javascript.0 script.js.common.test_on: svetOn: 1, p1_Движение_гостинная: false[ack: true], onSensor: 0 20:37:24.583 [info] javascript.0 script.js.common.test_on: {"val":false,"ts":1474479444575,"ack":true,"lc":1474479444575,"from":"system.adapter.megad.1"} !

              1 Reply Last reply Reply Quote 0
              • Bluefox
                Bluefox last edited by

                Ну ты то хоть понимаешь, что ты видишь? Как бы ты это интерпретировал?

                1 Reply Last reply Reply Quote 0
                • C
                  creo last edited by

                  Да у меня блин стоит в настройке "при размыкании" вот и шлёт постоянно true, а false при сработке (

                  1 Reply Last reply Reply Quote 0
                  • Bluefox
                    Bluefox last edited by

                    @creo:

                    Да у меня блин стоит в настройке "при размыкании" вот и шлёт постоянно true, а false при сработке ( `
                    А почему каждые 5 секунд? Может выключение света вызывать срабатывание движения?

                    1 Reply Last reply Reply Quote 0
                    • I
                      instalator last edited by

                      @creo:

                      Да у меня блин стоит в настройке "при размыкании" вот и шлёт постоянно true, а false при сработке ( `
                      Посади порт на землю, тоже самое?

                      1 Reply Last reply Reply Quote 0
                      • A
                        andrey99986 last edited by

                        Добавил ещё один драйвер javascript.

                        Как создавать и переносить скрипты в новый драйвер js? Не могу найти переключение в админке.

                        Хочу чтобы часть скриптов (потенциально опасных) работало под одним,

                        Другая часть - отлаженных и отвечающих за безопасность дома под другим.

                        Так как уже неоднократно ошибки в скриптах "ложили" драйвер со всеми другими скриптами.

                        Надеюсь что при этом глобальные переменные останутся доступны в обоих драйверах.

                        1 Reply Last reply Reply Quote 0
                        • H
                          Haus last edited by

                          @andrey99986:

                          Добавил ещё один драйвер javascript.

                          Как создавать и переносить скрипты в новый драйвер js? Не могу найти переключение в админке.

                          Хочу чтобы часть скриптов (потенциально опасных) работало под одним,

                          Другая часть - отлаженных и отвечающих за безопасность дома под другим.

                          Так как уже неоднократно ошибки в скриптах "ложили" драйвер со всеми другими скриптами.

                          Надеюсь что при этом глобальные переменные останутся доступны в обоих драйверах. `
                          В вкладке скрипты возле названия скрипта у тебя "0" поменяй ” на "1"

                          1 Reply Last reply Reply Quote 0
                          • A
                            andrey99986 last edited by

                            @Haus:

                            @andrey99986:

                            Добавил ещё один драйвер javascript.

                            Как создавать и переносить скрипты в новый драйвер js? Не могу найти переключение в админке.

                            Хочу чтобы часть скриптов (потенциально опасных) работало под одним,

                            Другая часть - отлаженных и отвечающих за безопасность дома под другим.

                            Так как уже неоднократно ошибки в скриптах "ложили" драйвер со всеми другими скриптами.

                            Надеюсь что при этом глобальные переменные останутся доступны в обоих драйверах. В вкладке скрипты возле названия скрипта у тебя "0" поменяй ” на "1"
                            Понял, спасибо.

                            1 Reply Last reply Reply Quote 0
                            • H
                              Ho Hum last edited by

                              Можно ли из скрипта изменить значение свойства "unit" существующего объекта?

                              Пример - хочу выводить на экран свободное место на диске и, в зависимости от его значения прописывать в unit Gb, Mb, Kb.

                              1 Reply Last reply Reply Quote 0
                              • I
                                instalator last edited by

                                @Ho Hum:

                                Можно ли из скрипта изменить значение свойства "unit" существующего объекта?

                                Пример - хочу выводить на экран свободное место на диске и, в зависимости от его значения прописывать в unit Gb, Mb, Kb. `
                                в vis выводи Gb, Mb, Kb. отдельным виджетом с формулой. Или создай скрипт и добавляй к цифрам нужное и сохраняй в другой объект

                                1 Reply Last reply Reply Quote 0
                                • H
                                  Ho Hum last edited by

                                  Да, про это я тоже думал, просто хотелось сделать покрасивее 🙂

                                  Спасибо.

                                  1 Reply Last reply Reply Quote 0
                                  • A
                                    andrey99986 last edited by

                                    Для управления контентом в vis надо использовать readFile, writeFile.

                                    А что использовать для корректного удаления файла?

                                    Ситуация такая:

                                    удалил файл:

                                    fs.unlinkSync(small_img);
                                    

                                    в файловой системе файла нет. В проводнике редактора Vis-а тоже нет.

                                    В браузере (на котором ни разу к этому урлу не обращались, то есть дело не в кэше клиента) на клиенте файл-картинка загружается.

                                    Перезапускал драйвер vis, web - не помогает.

                                    1 Reply Last reply Reply Quote 0
                                    • S
                                      spectrekr last edited by

                                      Странности с indexof

                                      ! ````
                                      var arr_name = [], arr_work = [];
                                      ! sendTo('sql.0', 'query', "SELECT name FROM work.work GROUP BY name", function(res) {
                                      if (res.error) {
                                      console.error(res.error);
                                      }
                                      for (var a in res.result) {
                                      arr_name.push(res.result[a].name);
                                      }
                                      ! if(prev_command === name_cust && arr_work.indexOf(command) < 0){
                                      for (var a in arr_work) {
                                      log(arr_work[a]);
                                      }
                                      log(typeof(arr_work));
                                      log(arr_work.indexOf(command));

                                      
                                      возвращает -1, хо 1 элемент в массиве, хоть несколько. Правда элементы кириллический текст.
                                      1 Reply Last reply Reply Quote 0
                                      • I
                                        instalator last edited by

                                        @spectrekr:

                                        Странности с indexof

                                        ! var arr_name = [], arr_work = [];
                                        ! sendTo('sql.0', 'query', "SELECT name FROM work.work GROUP BY name", function(res) {
                                        ! if (res.error) {
                                        ! console.error(res.error);
                                        ! }
                                        ! for (var a in res.result) {
                                        ! arr_name.push(res.result[a].name);
                                        ! }
                                        ! if(prev_command === name_cust && arr_work.indexOf(command) < 0){
                                        ! for (var a in arr_work) {
                                        ! log(arr_work[a]);
                                        ! }
                                        ! log(typeof(arr_work));
                                        ! log(arr_work.indexOf(command));

                                        возвращает -1, хо 1 элемент в массиве, хоть несколько. Правда элементы кириллический текст. `
                                        Что пишет в лог?

                                        ! ```
                                        var arr_name = [], arr_work = []; ! sendTo('sql.0', 'query', "SELECT name FROM work.work GROUP BY name", function(res) { if (res.error) { console.error(res.error); } for (var a in res.result) { arr_name.push(res.result[a].name); } log('Масиив = ' + JSON.stringify(arr_name)); ! if(prev_command === name_cust && ~arr_work.indexOf(command)){ for (var b in arr_work) { log(arr_work[b]); } log(typeof(arr_work)); log(arr_work.indexOf(command)); } ! });[/b]

                                        1 Reply Last reply Reply Quote 0
                                        • A
                                          andrey99986 last edited by

                                          Есть ли возможность подписаться на открытие(загрузку) web-страницы, созданной в vis?

                                          Другими словами при открытии определённой страницы (/vis/index.html#mypage) надо запустить определённую функцию, созданную в "Скриптах" админки ( на стороне сервера).

                                          1 Reply Last reply Reply Quote 0
                                          • S
                                            spectrekr last edited by

                                            Код

                                            ! ````
                                            sendTo('sql.0', 'query','SELECT SenderNumber, ReceivingDateTime, TextDecoded FROM smsd.inbox WHERE ID = ' + id, function(res) {
                                            if (res.error) {
                                            log(res.error);
                                            }
                                            a = {"phone" : res.result[0].SenderNumber,
                                            "time" : formatDate(new Date(res.result[0].ReceivingDateTime), 'DD.MM.YYYY hh:mm'),
                                            "text" : res.result[0].TextDecoded
                                            };
                                            setState('sms.in.phone', res.result[0].SenderNumber);
                                            setState('sms.in.time', formatDate(new Date(res.result[0].ReceivingDateTime), 'DD.MM.YYYY hh:mm'));
                                            setState('sms.in.text', res.result[0].TextDecoded);
                                            //setState('sms.in.json', a);
                                            setState('sms.in.json', JSON.stringify(res));
                                            setState('sms.in.id', id);
                                            });

                                            1 Reply Last reply Reply Quote 0
                                            • First post
                                              Last post

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            1.0k
                                            Online

                                            31.6k
                                            Users

                                            79.4k
                                            Topics

                                            1.3m
                                            Posts

                                            29
                                            358
                                            83051
                                            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