Примеры применения
25.12.2014

Как вывести информацию о температуре с устройства NetPing на собственную HTML-страничку

Скрипт, который выводит информацию устройства NetPing на web-страницу

Информацию с датчиков, подключенных к устройствам NetPing, можно выводить на HTML-страницу посредством интерфейса URL-encoded команд. Данный интерфейс может быть использован для интеграции с web-приложениями без использования протокола SNMP. Преимущество данного метода заключается в том, что контроль параметров окружающей среды может осуществляться без использования какого-либо специального программного обеспечения и систем мониторинга. Быстрый доступ на HTML-страницу при помощи браузера позволяет оперативно и удаленно с любой точки планеты получать информацию на различные устройства, такие как ПК, планшеты, мобильные телефоны. Второе преимущество данного метода – интерфейс URL-encoded команд предоставляет возможность удаленного ручного управления параметрами устройств NetPing через web-сайт.

Необходимое оборудование и программное обеспечение

Для реализации метода отображения температуры с устройств NetPing на HTML-странице необходимо:

  • устройство NetPing;
  • термодатчики;
  • скрипт, который будет отображать данные с термодатчиков;
  • HTML-страница для размещения скрипта.

Примеры скриптов по отображению температуры на HTML-странице

В примерах отображения температуры на HTML-странице будут использоваться скрипты написанные на JavaScript, PHP, ASP.NET, Java, Ruby on rails. Данные скрипты можно использовать как примеры для написания своих собственных скриптов либо для вставки на свои собственные HTML-страницы путем копирования этих скриптов к себе на web-сайт. Во всех скриптах применена технология интерфейса URL-encoded команд.

В примерах для сбора информации с термодатчиков будет использоваться устройство мониторинга серверных комнат UniPing server solution v3/SMS.

Все рассмотренные примеры скриптов в данной статье выводят информацию со всех датчиков температуры UniPing server solution v3/SMS на HTML-страницу.

Пример скрипта отображения температуры на JavaScript:

<html>

<head>

<meta charset="UTF-8">

<script type="text/javascript">

            var i = 1;

            function thermo_result(code, temperature, status) {

                        document.getElementById("result").innerHTML = document.getElementById("result").innerHTML + "<br/> Температура датчика " + i +  ": " + temperature;

                        i++;

            }

</script>

</head>

<body>

    <p><font color="red" size="4">Отображение температуры с устройства NetPing на web-странице</font></p>

            <style>

            div {

            margin: 0 0 0 155px

            }

            </style>

            <div id="result">

            </div>

            <script id="script" type="text/javascript" src="http://login:password@np.tst.netping.ru:8021/thermo.cgi?t1">

            </script>

            <script id="script" type="text/javascript" src="http://login:password@np.tst.netping.ru:8021/thermo.cgi?t2">

            </script>

            <script id="script" type="text/javascript" src="http://login:password@np.tst.netping.ru:8021/thermo.cgi?t3">

            </script>

            <script id="script" type="text/javascript" src="http://login:password@np.tst.netping.ru:8021/thermo.cgi?t4">

            </script>

            <script id="script" type="text/javascript" src="http://login:password@np.tst.netping.ru:8021/thermo.cgi?t5">

            </script>

            <script id="script" type="text/javascript" src="http://login:password@np.tst.netping.ru:8021/thermo.cgi?t6">

            </script>

            <script id="script" type="text/javascript" src="http://login:password@np.tst.netping.ru:8021/thermo.cgi?t7">

            </script>

            <script id="script" type="text/javascript" src="http://login:password@np.tst.netping.ru:8021/thermo.cgi?t8">

            </script>

</body>

</html>

где:
login:password@np.tst.netping.ru:8021 – метод подключения к устройству. Состоит из авторизации и DNS-имени устройства UniPing server solution v3/SMS. Необходимо в коде скрипта указать логин и пароль Вашего устройства. Внимание: логин и пароль, который будет указан в скрипте, передается в открытом виде!

thermo.cgi?t<номер термодатчик> – URL-encoded команда, которая запрашивает состояние термодатчика. Номер датчика указывается после ?t.

Данный JavaScript не будет работать в браузере Internet Explorer версии 7.0 и выше из-за отсутствия поддержки логинов и паролей в адресах веб-узлов (URL-адресах протоколов HTTP или HTTPS).

Пример скрипта отображения температуры на PHP:

<?php

            header('Content-Type: text/html; charset=utf-8');

?>

<html>

 <head>

  <meta charset=utf-8" />

 </head>

<body>

<?php

            for ($i = 1; $i < 9; $i++) {

                        $ch = curl_init('http://np.tst.netping.ru:8021/thermo.cgi?t' . $i);

                        curl_setopt($ch, CURLOPT_HTTPAUTH, CURLAUTH_ANY);

                        curl_setopt($ch, CURLOPT_USERPWD, 'login:password');

                        curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);

                        $result=curl_exec ($ch);

                        curl_close ($ch);

                        preg_match("/thermo_result\('ok', (\d+), (\d+)\);/", $result, $matches);

                        echo 'Температура датчика ' . $i . ': ' . $matches[1] . '<br/>';

            }

?>

</body>

</html>

где:
$ch – переменная, в которой задается подключение к UniPing server solution v3/SMS для получения данных с термодатчиков.

curl_setopt($ch, CURLOPT_USERPWD, 'login:password') – строка, в которой указывается авторизация для подключения к устройству. Необходимо указать логин и пароль Вашего устройства.

Пример скрипта отображения температуры на ASP.NET:

<%@ Import namespace="System.Net" %>

<%@ Import namespace="System.IO" %>

<%@ Import namespace="System.Text" %>

<%@ Page ContentType="text/html; charset=utf-8" %>

<html>

 <head>

  <meta charset=utf-8" />

 </head>

<body>

<%

            for (int i = 1; i < 9; i++) {

                        WebRequest req = WebRequest.Create("http://np.tst.netping.ru:8021/thermo.cgi?t" + i);

                        string authInfo = "login:password";

                authInfo = Convert.ToBase64String(Encoding.Default.GetBytes(authInfo));

                req.Headers["Authorization"] = "Basic " + authInfo;

                        WebResponse response = req.GetResponse();

                        Stream dataStream = response.GetResponseStream ();

                        StreamReader reader = new StreamReader (dataStream);

                        string responseFromServer = reader.ReadToEnd();

                        MatchCollection matches = Regex.Matches(responseFromServer, @"thermo_result\('ok', (\d+), (\d+)\);");

            %>Температура датчика <%=i%>: <%=matches[0].Groups[1]%> <br/>

<%                   reader.Close ();

                dataStream.Close ();

                response.Close ();

            }

%>

</body>

</html>

где:
WebRequest req – переменная, в которой задается подключение к UniPing server solution v3/SMS для получения данных с термодатчиков.

string authInfo – переменная, в которой указывается авторизация для подключения к устройству. Необходимо указать логин и пароль Вашего устройства.

Пример скрипта отображения температуры на Java:

<%@ page session="false" pageEncoding="UTF-8" contentType="text/html; charset=UTF-8" %>

<%@ page import="java.net.URL" %>

<%@ page import="java.net.HttpURLConnection" %>

<%@ page import="java.util.regex.Pattern" %>

<%@ page import="java.util.regex.Matcher" %>

<%@ page import="java.util.Base64" %>

<%@ page import="java.io.InputStream" %>

<!DOCTYPE html>

<html lang="en">

    <head>

        <meta charset="UTF-8" />

    </head>


    <body>

            <%

                        Pattern pattern = Pattern.compile("thermo_result\\('ok', (\\d+), (\\d+)\\);");

                        for (int i=1; i<9;i++) {

                                   HttpURLConnection connection = (HttpURLConnection)new URL("http://np.tst.netping.ru:8021/thermo.cgi?t" + i).openConnection();

                                   connection.setRequestMethod("GET");

                                   String basicAuth = "login:password";

                                   basicAuth = "Basic " + new String(Base64.getEncoder().encodeToString(basicAuth.getBytes()));

                                   connection.setRequestProperty("Authorization",basicAuth);

                                   connection.connect();

                                   InputStream in = connection.getInputStream();

                                   byte[] data = new byte[in.available()];

                                   in.read(data);

                                   in.close();

                                   Matcher matcher = pattern.matcher(new String(data));

                                   matcher.find();

                                   %>

                                   Температура датчика <%=i%>: <%=matcher.group(1)%><br/>

                                   <%

                        }

            %>

    </body>


</html>

где:
HttpURLConnection connection – переменная, в которой задается подключение к UniPing server solution v3/SMS для получения данных с термодатчиков.

String basicAuth – переменная, в которой указывается авторизация для подключения к устройству. Необходимо указать логин и пароль Вашего устройства.

Пример скрипта отображения температуры на Ruby on rails:

<%

                        require 'net/http'

                        for i in 1..8

                                   uri = URI("http://np.tst.netping.ru:8021/thermo.cgi?t#{i}")

                                   req = Net::HTTP::Get.new(uri)

                                   req.basic_auth 'visor21', 'ping21'

                                   res = Net::HTTP.start(uri.hostname, uri.port) {|http|

                                                http.request(req)

                                   }

                                   temperature, status = res.body.match(/thermo_result\('ok', (\d+), (\d+)\);/i).captures

                                   %>Температура датчика <%=i%> : <%=temperature%><br/>

                                   <%

                        end

%>

где:
uri – переменная, в которой задается подключение к UniPing server solution v3/SMS для получения данных с термодатчиков.

req.basic_auth – переменная, в которой указывается авторизация для подключения к устройству. Необходимо указать логин и пароль Вашего устройства.

Таким образом, используя данные скрипты, можно получать информацию с устройств NetPing на свои собственные HTML-страницы:

Скрипт, который выводит информацию устройства Netping на web-страницу

Для того, чтобы убедиться в правильности отображения данных на HTML-странице, нужно зайти на web-интерфейс управления устройства UniPing server solution v3/SMS, перейти по вкладке «ТЕРМОДАТЧИКИ» и сравнить показания на устройстве с показаниями на HTML-странице:


  • Устройство UniPing server solution v3/SMS
  • Устройство UniPing server solution
  • Устройство UniPing v3
  • Устройство NetPing IO v2
  • Устройство NetPing 2/PWR-220 v1/SMS
  • Устройство NetPing 2/PWR-220 v2/SMS
  • Устройство NetPing 2/PWR-220 v3/ETH
  • Устройство NetPing 4/PWR-220 v3/SMS
  • Устройство NetPing 8/PWR-220 v3/SMS

Основные теги


Каталог устойств мониторинг серверных комнат и шкафов
Все устройства
Устройство UniPing v3
Устройство UniPing server solution v3/SMS
Устройство NetPing 2/PWR-220 v1/SMS
Устройство NetPing IO v2
Устройства NetPing
Каталог датчиков для устройств NetPing
Устройство NetPing 8/PWR-220 v3/SMS
Устройство NetPing 2/PWR-220 v3/ETH
Устройство NetPing 2/PWR-220 v2/SMS
Устройство NetPing 4/PWR-220 v3/SMS
Устройство NetPing SMS
Устройство NetPing /PWR-220 v3/ETH
Адаптер WiFi VAP11N
Коммутатор PS104GT
Устройство NetPing Mini-UPS
Коммутатор NP-SM4
Сплиттер POE 12В (стандарта 802.3af)
IRC-TR v2 (ИК модуль расширения)
Каталог устройств удалённого управления и распределения электропитания NetPing
Устройство UniPing server solution
Устройство UniPing server solution v3
Датчик разбития стекла (Стекло-3 ИО 329-4), 2м
Переходник для NetPing IO v2
Блок питания 48В 1,5А (мод.HRS20005)
Датчик температуры TS, 1м
Датчик температуры, (T811), 2м
Датчик температуры WT, 1м
Датчик протечки, модель 2605, 2м
Датчик протечки H2О
Датчик температуры 1-wire, (THS), 2м
МАЯК-12-СТ
Датчик движения (PYRONIX COLT QUAD PI ПИК детектор), 2м
Датчик движения (SWAN-QUAD ИК детектор квадросенсор), (2м)
BM8070D Силовое реле 16А/250В на DIN-рейку
MP701 Исполнительный элемент (4 независимых канала по 2 кВт 10А)
Датчик дыма комбинированный (дым/тепло) ИП 212/101-2М-A1R с базой Е412NL
МОЛЛЮСК-12/1,5
Внешний ИБП SKAT-12DC-1.0 Li-ion
ИКС-1 извещатель охранный инфракрасный активный однолучевой
Датчик охранный (Извещатель охранный ИО102-20/Б2П, 2м)
Блок розеток SNR-PDU-08S-1
Устройство NetPing 2/PWR-220 v4/SMS
Устройство UniPing server solution v4/SMS
Устройство NetPing 8/PWR-220 v4/SMS
VT592 кабельный датчик протечки
WLC10 кабель протечки
NetPing Connection board v2 (коммутационная плата для UniPing v3)
Инжектор питания POE (стандарта 802.3af)
NetPing датчик наличия электропитания 995S1
Устройство NetPing 2/PWR-220 v12/ETH
Устройство NetPing 2/PWR-220 v13/GSM3G
Датчик наличия 220В (мод. HRS05005), 1.5м
NetPing удлинитель-разветвитель 1-wire на 5 портов, модель R912R1
NetPing датчик качества электропитания 1-wire 910S20
PLController R15250 силовое реле 15A/250В на DIN-рейку
NetPing адаптер датчиков с аналоговым интерфейсом 0-20мА, модель 886A01
Устройство NetPing server solution v5
Устройство NetPing ИК модуль, модель 3801
Устройство NetPing server solution v5/GSM3G
Устройство NetPing 4/PWR-220 v6.1/GSM3G
Устройство NetPing 4/PWR-220 v6.2/GSM3G
NetPing IO v3
NetPing Input+Relay v1
NetPing NP-GB322
Устройство NetPing 4/PWR-220 v6.4/ETH
▼ Все теги
Новинки
NetPing v4
Устройство удаленного мониторинга датчиков по сети Ethernet/Internet на DIN-рейку. Позволяет удаленно подробнее...

Цена: 10 650 руб.

Источник питания СКАТ MOLLUSK-VRK 12/2
Адаптер питания может использоваться для питания устройств NetPing и некоторых моделей управляемых коммутаторов.Выходное подробнее...

Цена: 950 руб.

Устройство NetPing 4/PWR-220 v6.4/ETH
Устройство удаленного управления розетками электропитания по сети Ethernet/Internet (IP PDU).4 канала подробнее...

Цена: 15 730 руб.

NetPing NP-GB322
Коммутатор Ethernet на 5 портов 10/100/1000 BASE-TX с поддержкой PoE (электропитание по Ethernet-кабелю) 5 подробнее...

Цена: 4 290 руб.

NetPing Input+Relay v1
Компактное устройство удаленного мониторинга датчиков по сети Ethernet/Internet. Позволяет удаленно подробнее...

Цена: 6 200 руб.

NetPing IO v3
Компактное бескорпусное устройство удаленного мониторинга датчиков по сети Ethernet/Internet. Позволяет подробнее...

Цена: 2 875 руб.

Устройство NetPing 4/PWR-220 v6.2/GSM3G
Устройство удаленного управления розетками электропитания по сети Ethernet/Internet (IP PDU) c поддержкой подробнее...

Цена: 20 280 руб.

Устройство NetPing 4/PWR-220 v6.1/GSM3G
Устройство удаленного управления розетками электропитания по сети Ethernet/Internet (IP PDU) c поддержкой подробнее...

Цена: 20 280 руб.

NetPing блок розеток 1-wire 888S0201
Блок розеток предназначен для удаленного управления нагрузкой. Устройство не является самостоятельным, подробнее...

Цена: 10 980 руб.

Устройство NetPing ИК модуль, модель 3801
ИК-контроллер для дистанционного и автоматического управления устройствами с инфракрасным интерфейсом подробнее...

Цена: 8 580 руб.

Устройство NetPing server solution v5
Устройство удаленного мониторинга датчиков по сети Ethernet/Internet. Позволяет удаленно получать информацию подробнее...

Цена: 18 000 руб.

Устройство NetPing server solution v5/GSM3G
Устройство удаленного мониторинга датчиков по сети Ethernet/Internet. Позволяет удаленно получать информацию подробнее...

Цена: 27 300 руб.

PLController R15250 силовое реле 15A/250В на DIN-рейку
Силовое реле в корпусе для крепления на DIN-рейку предназначено для удаленной коммутации мощной нагрузки.Напряжение подробнее...

Цена: 1 429 руб.

NetPing адаптер датчиков с аналоговым интерфейсом 0-20мА, модель 886A01
Адаптер предназначен для подключения аналоговых датчиков, передающих сигнал изменением протекающего подробнее...

Цена: 3 354 руб.

NetPing датчик качества электропитания 1-wire 910S20
Датчик предназначен для мониторинга качества электропитания в розетке. Датчик должен быть подключен подробнее...

Цена: 2 240 руб.

NetPing удлинитель-разветвитель 1-wire на 5 портов, модель R912R1
Активный удлинитель-разветвитель для подключения датчиков 1-wire к устройствам NetPing5 портов для подключения подробнее...

Цена: 1 400 руб.

Устройство NetPing 2/PWR-220 v12/ETH
Управляемый блок удаленного распределения питания по сети Ethernet/Internet (IP PDU)2 независимые управляемые подробнее...

Цена: 8 973 руб.

Устройство NetPing 2/PWR-220 v13/GSM3G
Управляемый блок удаленного распределения питания по сети Ethernet/Internet (IP PDU) c поддержкой управления подробнее...

Цена: 15 700 руб.

NetPing датчик наличия электропитания 995S1
Датчик позволяет определить наличие напряжения в розетке питания. Выполнен в корпусе блока питания с подробнее...

Цена: 1 224 руб.

WLC10 кабель протечки
Чувствительный кабель для использования совместно с датчиком VT592. Может быть смонтирован в труднодоступных подробнее...

Цена: 6 700 руб.

VT592 кабельный датчик протечки
Датчик предназначен для работы совместно с кабелем протечки WLC10. Возможность подключения датчика к подробнее...

Цена: 3 800 руб.

-+ руб. руб.
Итого руб.

Данные о заказе