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.
    • 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

                            921
                            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