Skip to content
  • Aktuell
  • Tags
  • 0 Ungelesen 0
  • Kategorien
  • Unreplied
  • Beliebt
  • GitHub
  • Docu
  • Hilfe
Skins
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Standard: (Kein Skin)
  • Kein Skin
Einklappen
ioBroker Logo
  1. ioBroker Community Home
  2. Русский
  3. ioBroker
  4. Скрипты
  5. ioBroker скрипты
  6. Скрипт контроля отопления

NEWS

  • UPDATE 31.10.: Amazon Alexa - ioBroker Skill läuft aus ?
    apollon77A
    apollon77
    48
    3
    8.2k

  • Monatsrückblick – September 2025
    BluefoxB
    Bluefox
    13
    1
    1.9k

  • Neues Video "KI im Smart Home" - ioBroker plus n8n
    BluefoxB
    Bluefox
    15
    1
    2.2k

Скрипт контроля отопления

Geplant Angeheftet Gesperrt Verschoben ioBroker скрипты
11 Beiträge 3 Kommentatoren 4.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.
  • H Offline
    H Offline
    Haus
    schrieb am zuletzt editiert von
    #2

    Чуток подправил скрипт, проблемы остались прежними. Народ 45 просмотров и не одного комментария? 😢

    В скрипте появился треугольник с надписью "Too many errors 81% scanhed" в чем ошибки, сам скрипт работает.
    443_screencapture-192-168-1-11-8081-1460455685460.png

    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
      #3

      @Haus:

      В скрипте появился треугольник с надписью "Too many errors 81% scanhed" в чем ошибки, сам скрипт работает.
      filename="screencapture-192-168-1-11-8081-1460455685460.png" index="0">~~ `
      попробуй замени в IFах == на === и != на !==

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

      http://blog.instalator.ru/

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

        @Haus:

        в javascript читает сразу весь скрипт и выдаёт лог по скрипту, но в скрипте по худу есть всякие if с условиями и сравнениями и могут быть путаница. Используй callbackи

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

        http://blog.instalator.ru/

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

          @instalator:

          @Haus:

          В скрипте появился треугольник с надписью "Too many errors 81% scanhed" в чем ошибки, сам скрипт работает.
          filename="screencapture-192-168-1-11-8081-1460455685460.png" index="0">~~ попробуй замени в IFах == на === и != на !==
          Попробовал, результат тот же.

          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
          • H Offline
            H Offline
            Haus
            schrieb am zuletzt editiert von
            #6

            @instalator:

            @Haus:

            в javascript читает сразу весь скрипт и выдаёт лог по скрипту, но в скрипте по худу есть всякие if с условиями и сравнениями и могут быть путаница. Используй callbackи `
            Если тебя не затруднит, хоть пару строчек на моем скрипте :oops:

            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
            • H Offline
              H Offline
              Haus
              schrieb am zuletzt editiert von
              #7

              Подключение работает, средние значение всего столбца считает, каждый id тоже считает. Есть столбец ts с какими то цифрами даты и времени, как его расшифровать ? в других базах у меня форма 2016-04-14 21:56:32

              createState('test','',{type:'number',role:'value',read:true});
              createState('test_1','',{type:'number',role:'value',read:true});
              createState('test_2','',{type:'number',role:'value',read:true});
              createState('test_3','',{type:'number',role:'value',read:true});
              createState('test_4','',{type:'number',role:'value',read:true});
              
              var mysql = require('mysql');
              var connection = mysql.createConnection({
                  host: 'localhost',
                  user: 'root',
                  password: '*********',
                  database: 'iobroker',
                  socketPath: '/var/run/mysqld/mysqld.sock'
              });
              
              //создаем подключение к базе
              connection.connect(function(err) {
                  if (err) {
                      log('error connecting: ' + err.stack);
                      return;
                  }
                  log('connected as id ' + connection.threadId);
              });
              
              //function start () {
              schedule("* * * * *", function () {
                  connection.query('SELECT AVG(val) AS id FROM ts_number', function(err, res_id, fields) {
                      if (err) throw err;
                      log('AVR: ' + (res_id[0].id).toFixed(2));
                      setState('test', (res_id[0].id).toFixed(2));
                  });
                  connection.query('SELECT AVG(val) AS id FROM ts_number WHERE id=1', function(err, res, fields) {
                      if (err) throw err;
                      log('Test_1: ' + (res[0].id).toFixed(2));
                      setState('test_1', (res[0].id).toFixed(2));
                  });
                  connection.query('SELECT AVG(val) AS id FROM ts_number WHERE id=2', function(err, res, fields) {
                      if (err) throw err;
                      log('Test_2: ' + (res[0].id).toFixed(2));
                      setState('test_2', (res[0].id).toFixed(2));
                  });
                  connection.query('SELECT AVG(val) AS id FROM ts_number WHERE id=3', function(err, res, fields) {
                      if (err) throw err;
                      log('Test_3: ' + (res[0].id).toFixed(2));
                      setState('test_3', (res[0].id).toFixed(2));
                  });
                  connection.query('SELECT AVG(val) AS id FROM ts_number WHERE id=4', function(err, res, fields) {
                      if (err) throw err;
                      log('Test_4: ' + (res[0].id).toFixed(2));
                      setState('test_4', (res[0].id).toFixed(2));
                  });
                  log('AVR: ' + getState('javascript.2.test').val + '; ' + 'Test_1: ' + getState('javascript.2.test_1').val + '; ' + 'Test_2: ' + getState('javascript.2.test_2').val + '; ' + 'Test_3: ' + getState('javascript.2.test_3').val + '; ' + 'Test_4: ' + getState('javascript.2.test_4').val);
              });
              //}
              //setInterval ( function () {
                //  start ();
              //},60000 );
              

              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
              • H Offline
                H Offline
                Haba
                schrieb am zuletzt editiert von
                #8

                Haus , из описания скриптов https://github.com/iobroker/ioBroker.ja … /README.md

                ! Parameters:
                ! date: number of seconds from state.ts or state.lc (Number seconds from 1970.01.01 00:00:00) or javascript new Date() object or number of milliseconds from (new Date().getTime())
                ! format: Can be "null", so the system time format will be used, elsewise
                ! YYYY, JJJJ, ГГГГ - full year, e.g 2015
                ! YY, JJ, ГГ - short year, e.g 15
                ! MM, ММ(cyrillic) - full month, e.g. 01
                ! M, М(cyrillic) - short month, e.g. 1
                ! DD, TT, ДД - full day, e.g. 02
                ! D, T, Д - short day, e.g. 2
                ! hh, SS, чч - full hours, e.g. 03
                ! h, S, ч - short hours, e.g. 3
                ! mm, мм(cyrillic) - full minutes, e.g. 04
                ! m, м(cyrillic) - short minutes, e.g. 4
                ! ss, сс(cyrillic) - full seconds, e.g. 05
                ! s, с(cyrillic) - short seconds, e.g. 5
                ! isSeconds: If date seconds from state.ts ot state.lc or milliseconds from (new Date().getTime())
                ! Example
                ! formatDate(new Date(), "YYYY-MM-DD") => Date "2015-02-24" formatDate(new Date(), "hh:mm") => Hours and minutes "17:41" formatDate(state.ts) => "24.02.2015" formatDate(state.ts, "JJJJ.MM.TT SS:mm:ss) => "2015.02.15 17:41:98"

                т.е. тебе надо использовать команду formatDate

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

                  @Haus:

                  @instalator:

                  @Haus:

                  в javascript читает сразу весь скрипт и выдаёт лог по скрипту, но в скрипте по худу есть всякие if с условиями и сравнениями и могут быть путаница. Используй callbackи Если тебя не затруднит, хоть пару строчек на моем скрипте :oops:
                  ну например самый простой вариант:

                  // Средняя температура в помещении за 30 минут
                     request ( 'http://192.168.1.11/avr_temp_in_stair_hall.php', function ( error, response, body ) {
                          if ( !error && response.statusCode == 200 ) {
                              setState ( shaid, body );
                          }
                      });
                      request ( 'http://192.168.1.11/avr_temp_in_sf.php', function ( error, response, body ) {
                          if ( !error && response.statusCode == 200 ) {
                              setState ( sfaid, body );
                          }
                      });
                  
                  // Средняя температура в помещении за 30 минут
                     request ( 'http://192.168.1.11/avr_temp_in_stair_hall.php', function ( error, response, body ) {
                          if ( !error && response.statusCode == 200 ) {
                              setState ( shaid, body );
                              request ( 'http://192.168.1.11/avr_temp_in_sf.php', function ( error, response, body ) {
                         			 if ( !error && response.statusCode == 200 ) {
                            			  setState ( sfaid, body );
                       	  		 }
                     	    });
                          }
                      });
                  
                  

                  второй request выполнится только после первого.

                  PS ПРЯЧЬТЕ ДЛИННЫЙ КОД ПОД СПОЙЛЕР

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

                  http://blog.instalator.ru/

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

                    @instalator:

                    @Haus:

                    @instalator:

                    Используй callbackи
                    Если тебя не затруднит, хоть пару строчек на моем скрипте :oops: `
                    ну например самый простой вариант:

                    второй request выполнится только после первого.

                    PS ПРЯЧЬТЕ ДЛИННЫЙ КОД ПОД СПОЙЛЕР `

                    Этот вариант я уже побывал. Проблема в том что из за долгого выполнения 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 );
                    
                    

                    то есть первым он выводит log('Расчет: ' + tem…. а потом меняются данные и появляется log(body); и log(body);

                    20:25:40.405	[info]	javascript.1 script.js.Heat_Demo: Расчет: 20.00, Сред: 19.80, Тек: 19.63
                    20:25:40.436	[info]	javascript.1 script.js.Heat_Demo: 19.63
                    20:25:40.534	[info]	javascript.1 script.js.Heat_Demo: 19.80
                    20:26:10.432	[info]	javascript.1 script.js.Heat_Demo: Расчет: 20.00, Сред: 19.80, Тек: 19.63           Вот тут Сред: 19.80
                    20:26:10.469	[info]	javascript.1 script.js.Heat_Demo: 19.63
                    20:26:10.545	[info]	javascript.1 script.js.Heat_Demo: 19.73                                                              Вот тут Сред: 19.73
                    20:26:40.440	[info]	javascript.1 script.js.Heat_Demo: Расчет: 20.00, Сред: 19.73, Тек: 19.63
                    20:26:40.488	[info]	javascript.1 script.js.Heat_Demo: 19.63
                    20:26:40.574	[info]	javascript.1 script.js.Heat_Demo: 19.73
                    
                    

                    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:

                      Этот вариант я уже побывал. Проблема в том что из за долгого выполнения 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 );
                         	    });
                              }
                          });
                      
                      

                      Можно обернуть остальной код в функцию и вызывать ее после последнего реквеста.

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

                      http://blog.instalator.ru/

                      1 Antwort Letzte Antwort
                      0
                      Antworten
                      • In einem neuen Thema antworten
                      Anmelden zum Antworten
                      • Älteste zuerst
                      • Neuste zuerst
                      • Meiste Stimmen


                      Support us

                      ioBroker
                      Community Adapters
                      Donate

                      719

                      Online

                      32.4k

                      Benutzer

                      81.4k

                      Themen

                      1.3m

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

                      • Du hast noch kein Konto? Registrieren

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