Скрипт Megad DHT22

Вопросы и информация о скриптах для ioBroker
Antworten
Haus
professional
Beiträge: 531
Registriert: 12.05.2015, 16:49
Wohnort: Lithuania, Vilnius

Скрипт Megad DHT22

Beitrag von Haus » 15.05.2015, 10:19

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

Code: Alles auswählen

// 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 для меня это тёмный лес, ну очень хочется разобратся :?
js-controller: 1.4.2 / node.js: v6.14.3 / npm: 3.10.10
admin: 3.5.1
javascript: 3.6.4
web: 2.4.1 vis: 1.1.7
cloud: 2.6.2

Server: DELL FX170 / linux: Debian 9.5 Stretch
Adapter: MegaD-2561, Mega-ESP, Wrapper(Home)

electric69
professional
Beiträge: 396
Registriert: 14.07.2014, 14:00
Kontaktdaten:

Re: Скрипт Megad DHT22

Beitrag von electric69 » 15.05.2015, 10:37

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

Haus
professional
Beiträge: 531
Registriert: 12.05.2015, 16:49
Wohnort: Lithuania, Vilnius

Re: Скрипт Megad DHT22

Beitrag von Haus » 15.05.2015, 11:06

electric69 hat geschrieben:
Haus hat geschrieben:как его переделать к iobroker для меня это тёмный лес, ну очень хочется разобратся :?
А если попробовать Node-RED?
В инете много примеров для http-request.
Я его даже поставил, полазил по немецким форумам google так переводит что я нечего понять не смог. Думаю со временем и вашей помощю всё начнёт прояснятся и тогда и я смогу такими словечками "http-request" на равных опшатся :roll:
js-controller: 1.4.2 / node.js: v6.14.3 / npm: 3.10.10
admin: 3.5.1
javascript: 3.6.4
web: 2.4.1 vis: 1.1.7
cloud: 2.6.2

Server: DELL FX170 / linux: Debian 9.5 Stretch
Adapter: MegaD-2561, Mega-ESP, Wrapper(Home)

Benutzeravatar
Bluefox
Site Admin
Beiträge: 8001
Registriert: 13.07.2014, 14:42
Kontaktdaten:

Re: Скрипт Megad DHT22

Beitrag von Bluefox » 15.05.2015, 21:54

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

Code: Alles auswählen

// 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 для меня это тёмный лес, ну очень хочется разобратся :?

Code: Alles auswählen

// 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();

Haus
professional
Beiträge: 531
Registriert: 12.05.2015, 16:49
Wohnort: Lithuania, Vilnius

Re: Скрипт Megad DHT22

Beitrag von Haus » 17.05.2015, 12:09

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

Переменная Temerature_DS это мой скрипт на базе вашего, в экспериментальной прошивке megad есть поддержка 1wire датчика DS18B20.
Dateianhänge
screencapture-192-168-1-65-8081-1431859644202.png
screencapture-192-168-1-65-8081-1431859555203.png
js-controller: 1.4.2 / node.js: v6.14.3 / npm: 3.10.10
admin: 3.5.1
javascript: 3.6.4
web: 2.4.1 vis: 1.1.7
cloud: 2.6.2

Server: DELL FX170 / linux: Debian 9.5 Stretch
Adapter: MegaD-2561, Mega-ESP, Wrapper(Home)

Benutzeravatar
Bluefox
Site Admin
Beiträge: 8001
Registriert: 13.07.2014, 14:42
Kontaktdaten:

Re: Скрипт Megad DHT22

Beitrag von Bluefox » 17.05.2015, 18:06

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

var request = require('request');

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

Code: Alles auswählen

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();

Haus
professional
Beiträge: 531
Registriert: 12.05.2015, 16:49
Wohnort: Lithuania, Vilnius

Re: Скрипт Megad DHT22

Beitrag von Haus » 18.05.2015, 12:00

Большое спасибо всё работает.
На основе вашего скрипта сделал скрипт для DS18B20, всё работает только не могу получить число с десятками (temp:18.6).
Пробовал разные примеры получаю целое(19), NaN или null :cry:

Code: Alles auswählen

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();
js-controller: 1.4.2 / node.js: v6.14.3 / npm: 3.10.10
admin: 3.5.1
javascript: 3.6.4
web: 2.4.1 vis: 1.1.7
cloud: 2.6.2

Server: DELL FX170 / linux: Debian 9.5 Stretch
Adapter: MegaD-2561, Mega-ESP, Wrapper(Home)

Benutzeravatar
Bluefox
Site Admin
Beiträge: 8001
Registriert: 13.07.2014, 14:42
Kontaktdaten:

Re: Скрипт Megad DHT22

Beitrag von Bluefox » 18.05.2015, 13:00

Haus hat geschrieben:Большое спасибо всё работает.
На основе вашего скрипта сделал скрипт для DS18B20, всё работает только не могу получить число с десятками (temp:18.6).
Пробовал разные примеры получаю целое(19), NaN или null :cry:
Надо добаить точку к возможным символам: /temp:([0-9.]+)/

Code: Alles auswählen

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();

nnprject
Beiträge: 5
Registriert: 25.11.2016, 07:06

Re: Скрипт Megad DHT22

Beitrag von nnprject » 25.11.2016, 07:26

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

Benutzeravatar
instalator
guru
Beiträge: 1271
Registriert: 09.11.2014, 16:50
Wohnort: Барнаул
Kontaktdaten:

Re: Скрипт Megad DHT22

Beitrag von instalator » 25.11.2016, 08:22

nnprject hat geschrieben:Здравствуйте! Как этим скриптом получить отрицательную температуру ?
Может в регулярку его добавить
Высокий уровень Децибел вреден для здоровья!
Мой блог

Haus
professional
Beiträge: 531
Registriert: 12.05.2015, 16:49
Wohnort: Lithuania, Vilnius

Re: Скрипт Megad DHT22

Beitrag von Haus » 25.11.2016, 10:16

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

Code: Alles auswählen

var m = body.match(/temp:(\D*[0-9.]+)/);
js-controller: 1.4.2 / node.js: v6.14.3 / npm: 3.10.10
admin: 3.5.1
javascript: 3.6.4
web: 2.4.1 vis: 1.1.7
cloud: 2.6.2

Server: DELL FX170 / linux: Debian 9.5 Stretch
Adapter: MegaD-2561, Mega-ESP, Wrapper(Home)

nnprject
Beiträge: 5
Registriert: 25.11.2016, 07:06

Re: Скрипт Megad DHT22

Beitrag von nnprject » 28.11.2016, 05:55

Спасибо!

andrey1509
Beiträge: 3
Registriert: 18.07.2018, 17:56

Re: Скрипт Megad DHT22

Beitrag von andrey1509 » 05.08.2018, 07:55

Здравствуйте всем!
Я здесь новенький. В скриптах "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}}
Dateianhänge
mqtt.PNG
mqtt.PNG (23.46 KiB) 60 mal betrachtet

Antworten