Navigation

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

    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

    Скрипт Megad DHT22

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

      В CCU.IO работает скрипт:

      // Create variable "Temperature"
      setObject(100015, {
          Name: "Temperature",
          TypeName: "VARDP"
      });
      
      // Create variable "Humidity"
      setObject(100016, {
          Name: "Humidity",
          TypeName: "VARDP"
      });
      
      // request url
      function getValues() {
         request("http://192.168.1.14/sec/?pt=0&cmd=get", function (error, response, body) {
            if (body) {
               var m = body.match(/temp:([0-9]+)\/?hum:([0-9]+)/);
             if (m) {
               setState(100016, parseFloat(m[2]));
                              setState(100015, parseFloat(m[1]));
             }
            }
         });
      }
      
      // every minute
      schedule("*/1 * * * *", function () {
          getValues();   
      });
      
      // Initial read
      getValues();
      

      как его переделать к iobroker для меня это тёмный лес, ну очень хочется разобратся :?

      1 Reply Last reply Reply Quote 0
      • E
        electric69 last edited by

        @Haus:

        как его переделать к iobroker для меня это тёмный лес, ну очень хочется разобратся :? `
        А если попробовать Node-RED?

        В инете много примеров для http-request.

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

          @electric69:

          @Haus:

          как его переделать к iobroker для меня это тёмный лес, ну очень хочется разобратся :? `
          А если попробовать Node-RED?

          В инете много примеров для http-request. `
          Я его даже поставил, полазил по немецким форумам google так переводит что я нечего понять не смог. Думаю со временем и вашей помощю всё начнёт прояснятся и тогда и я смогу такими словечками "http-request" на равных опшатся :roll:

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

            @Haus:

            В CCU.IO работает скрипт:

            // Create variable "Temperature"
            setObject(100015, {
                Name: "Temperature",
                TypeName: "VARDP"
            });
            
            // Create variable "Humidity"
            setObject(100016, {
                Name: "Humidity",
                TypeName: "VARDP"
            });
            
            // request url
            function getValues() {
               request("http://192.168.1.14/sec/?pt=0&cmd=get", function (error, response, body) {
                  if (body) {
                     var m = body.match(/temp:([0-9]+)\/?hum:([0-9]+)/);
                   if (m) {
                     setState(100016, parseFloat(m[2]));
                                    setState(100015, parseFloat(m[1]));
                   }
                  }
               });
            }
            
            // every minute
            schedule("*/1 * * * *", function () {
                getValues();   
            });
            
            // Initial read
            getValues();
            

            как его переделать к iobroker для меня это тёмный лес, ну очень хочется разобратся :? `

            // Create variable "Temperature"
            createState("Temperature");
            
            // Create variable "Humidity"
            createState("Humidity");
            
            // request url
            function getValues() {
               request("http://192.168.1.14/sec/?pt=0&cmd=get", function (error, response, body) {
                  if (body) {
                     var m = body.match(/temp:([0-9]+)\/?hum:([0-9]+)/);
                   if (m) {
                     setState("Humidity",    parseFloat(m[2]), true);
            		 setState("Temperature", parseFloat(m[1]), true);
                   }
                  }
               });
            }
            
            // every minute
            schedule("*/1 * * * *", getValues);
            
            // Initial read
            getValues();
            
            1 Reply Last reply Reply Quote 0
            • H
              Haus last edited by

              Спасибо Bluefox

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

              Переменная Temerature_DS это мой скрипт на базе вашего, в экспериментальной прошивке megad есть поддержка 1wire датчика DS18B20.
              443_screencapture-192-168-1-65-8081-1431859555203.png
              443_screencapture-192-168-1-65-8081-1431859644202.png

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

                Прошу прощения. Забыл одну строчку

                var request = require('request');

                Новый скрипт:

                var request = require('request');
                // Create variable "Temperature"
                createState("Temperature");
                
                // Create variable "Humidity"
                createState("Humidity");
                
                // request url
                function getValues() {
                   request("http://192.168.1.14/sec/?pt=0&cmd=get", function (error, response, body) {
                      if (body) {
                         var m = body.match(/temp:([0-9]+)\/?hum:([0-9]+)/);
                       if (m) {
                         setState("Humidity",    parseFloat(m[2]), true);
                       setState("Temperature", parseFloat(m[1]), true);
                       }
                      }
                   });
                }
                
                // every minute
                schedule("*/1 * * * *", getValues);
                
                // Initial read
                getValues();
                
                
                1 Reply Last reply Reply Quote 0
                • H
                  Haus last edited by

                  Большое спасибо всё работает.

                  На основе вашего скрипта сделал скрипт для DS18B20, всё работает только не могу получить число с десятками (temp:18.6).

                  Пробовал разные примеры получаю целое(19), NaN или null 😢

                  var request = require('request');
                  // Create variable "Temperature"
                  createState("TemperatureDS");
                  
                  // request url
                  function getValues() {
                     request("http://192.168.1.14/sec/?pt=7&cmd=get", function (error, response, body) {
                        if (body) {
                           var m = body.match(/temp:([0-9]+)/);
                         if (m) {
                         setState("TemperatureDS", parseFloat(m[1]), true);
                         }
                        }
                     });
                  }
                  
                  // every minute
                  schedule("*/1 * * * *", getValues);
                  
                  // Initial read
                  getValues();
                  
                  1 Reply Last reply Reply Quote 0
                  • Bluefox
                    Bluefox last edited by

                    @Haus:

                    Большое спасибо всё работает.

                    На основе вашего скрипта сделал скрипт для DS18B20, всё работает только не могу получить число с десятками (temp:18.6).

                    Пробовал разные примеры получаю целое(19), NaN или null 😢 `
                    Надо добаить точку к возможным символам: /temp:([0-9~~[color=#BF0000]~~.]+)/

                    var request = require('request');
                    // Create variable "Temperature"
                    createState("TemperatureDS");
                    
                    // request url
                    function getValues() {
                       request("http://192.168.1.14/sec/?pt=7&cmd=get", function (error, response, body) {
                          if (body) {
                             var m = body.match(/temp:([0-9.]+)/);
                           if (m) {
                           setState("TemperatureDS", parseFloat(m[1]), true);
                           }
                          }
                       });
                    }
                    
                    // every minute
                    schedule("*/1 * * * *", getValues);
                    
                    // Initial read
                    getValues();
                    
                    1 Reply Last reply Reply Quote 0
                    • N
                      nnprject last edited by

                      Здравствуйте! Как этим скриптом получить отрицательную температуру ?

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

                        @nnprject:

                        Здравствуйте! Как этим скриптом получить отрицательную температуру ? `
                        Может в регулярку его добавить

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

                          @nnprject:

                          Здравствуйте! Как этим скриптом получить отрицательную температуру ? `

                          var m = body.match(/temp:(\D*[0-9.]+)/);
                          
                          1 Reply Last reply Reply Quote 0
                          • N
                            nnprject last edited by

                            Спасибо!

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

                              Здравствуйте всем!

                              Я здесь новенький. В скриптах "0" .

                              Обращаюсь за помощью. Как из wifi-iot EPS, соединен по mqtt? выдернуть данные.

                              Пробовал подставить свои значения в скрипт данного примера. Не получается.

                              Вот чего наваял. СМ. Вложение

                              Поправьте, чтоб заработало.

                              А так мне нужно вытащить вот такие данные из EPS: {"system":{"hostname":"ESP00161C69","uptime":6000,"rssi":-40,"freemem":30616},"sensors":{"bmet":28.7,"bmeh":51.4,"bmep":747.09,"pmv":236.0,"pmc":1.23,"pmw":228,"pmwh":2291371}}
                              8054_mqtt.png

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

                              Support us

                              ioBroker
                              Community Adapters
                              Donate

                              755
                              Online

                              31.8k
                              Users

                              79.9k
                              Topics

                              1.3m
                              Posts

                              6
                              13
                              5720
                              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