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

      @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

                          913
                          Online

                          31.9k
                          Users

                          80.1k
                          Topics

                          1.3m
                          Posts

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