AN14 STE2 senzor (HW group) spíná NETIO zásuvky podle DI vstupů (kontakt) | NETIO products: Networked power sockets
Tagy: 
3rd party HW-SW

V Aplikační poznámce NETIO AN14 najdete postup na propojení chytrých zásuvek NETIO 4x a online wifi teploměru STE2 od firmy HW group. Tento Lua skript umožňuje spínat jednotlivé elektrické zásuvky (NETIO) na základě hodnoty DI vstupů (STE2). Zařízení spolu komunikují po LAN síti, hodnoty jsou přenášeny v .xml souboru. Skript lze upravit i pro jiná zařízení a data ve formátu xml.

Můžeme Vám nějak pomoci?

 

Lua skript běží v chytrých zásuvkách NETIO a každou sekundu načítá xml soubor se stavem zařízení STE2. Podle stavů DI vstupů (0/1) vypíná, popřípadě zapíná zvolený výstup elektrické zásuvky NETIO. Při chybě v síti výpadku napájení nastaví výstup do požadovaného stavu (0/1). Po obnovení spojení skript pokračuje v běžném chodu.

 

DI vstupy na STE2 lze spínat pomocí jakéhokoliv mechanického vypínače (dry contact) nebo z relé výstupu.

 

 

Web teploměr STE2

  • Doporučené zařízení třetí strany
  • Výrobce: HW group s.r.o. (Česká republika)
  • Produkt: STE2: WiFi a Ethernet teploměr s DI vstupy
    WiFi senzor teploty a vlhkosti se dvěma DI vstupy pro dveřní kontakt. Do sítě jej lze připojit pomocí WiFi nebo Ethernet rozhraní s podporou PoE (802.3af). STE2 je dodáván s napájecím adaptérem a senzorem teploty. LAN a WiFi teploměr STE2 podporuje SNMP rozhraní. WiFi teploměr STE2 lze připojit do online portálu SensDesk nebo k SMS gateway.

 

Podporovaná zařízení: 

NETIO 4AllNETIO 4CNETIO 4

 

Komunikace mezi NETIO 4x a STE2

1) NETIO 4x odesílá CGI požadavek na STE2

2) STE2 odpovídá zasláním xml

3) NETIO 4x z xml vyparsuje požadovanou hodnotu, porovná ji s proměnnou a popřípadě změní stav výstupu

 

Ukázka xml zaslaného z STE2:


  • Alternativní text

 

Zvýrazněné je ID výstupu 1 a jeho stav

 

Propojení NETIO 4x a STE2

Propojení pomocí lokální sítě

1) STE2 připojte pomocí ethernetového kabelu do vaší lokální sítě

2) NETIO 4x připojte pomocí ethernetového kabelu do vaší lokální sítě

 

NETIO jako Wi-Fi Access Point

1) STE2 připojte pomocí ethernetového kabelu do vaší lokální sítě

2) NETIO 4x připojte pomocí ethernetového kabelu do vaší lokální sítě

3) NETIO 4x přepněte do režimu Wi-Fi Access Point

4) STE2 připojte k síti vytvořenou NETIO 4x

 

Zjištění ID vstupu

  • Fyzicky lze ID vstupu pro kontakt zjistit přímo na STE2 (viz obrázek) nebo z webové stránky
  •  Fyzicky lze ID vstupu pro kontakt zjistit přímo na STE2 (viz obrázek) nebo z webové stránky

 

  • Po zapojení STE2 do vaší sítě zjistíte jeho IP adresu pomocí HWg-Config
  •  Po zapojení STE2 do vaší sítě zjistíte jeho IP adresu pomocí HWg-Config

 

  • ID senzoru lze zjistit na webové stránce STE2 v sekci DIGITAL INPUTS v prvním sloupci ID (viz obrázek)      
  • Při zadání špatného ID se chyba zapíše do logu NETIO a akce se ukončí.
  •  ID senzoru lze zjistit na webové stránce STE2 v sekci DIGITAL INPUTS v prvním sloupci ID

 

Vytvoření pravidla (rule)

Pro vytvoření a spuštění Lua skriptu je nutné následující:

1) Ve webové administraci NETIO 4 v sekci Actions, přidejte pravidlo pomocí tlačítka Create Rule

  • Tento Lua skript umožňuje spínat jednotlivé elektrické zásuvky (NETIO) na základě hodnoty DI vstupů (STE2).

 

2) Vyplňte následující parametry:

  • Enabled: zaškrtnuto
  • Name: STE2 - DI inputs (uživatelsky definovatelné)
  • Description: Switching according to DI inputs (uživatelsky definovatelné)
  • Trigger: System started up
  • Schedule: libovolný (v této konfiguraci nemá vliv na funkci)

3) Do pole pro skript v jazyce Lua zkopírujte následující kód:


------------Section 1------------
local output = 2 -- select output number (1 - 4)
local validValue = 1 -- select state for closed DI input
local invalidState = 0 -- select state for invalid values
local interval = 1 -- choose the period between controls (seconds)
local sensorID = 2 -- sensor ID
local ipSTE2 = "192.168.101.165" -- IP of your device
---------End of Section 1---------

local value = 0 -- internal variable, do not change

function call() -- send request on STE2
  cgiGet{url="http://" .. ipSTE2 .. "/values.xml", callback=getTemperature}
end

function control() -- check value
  --devices.system.SetOut{output=4, value=false}
  if value == 0 then
    devices.system.SetOut{output=output, value=1-validValue}
  else
    devices.system.SetOut{output=output, value=validValue}
  end
  delay(interval,function() call() end)
end


function getTemperature(o) -- loguje teplotu
   if o.result == 0 then
     local myxml = o.buffer
     if xml.check(myxml) then
       local parsed = xml.parse(myxml,xml.STRIP_PREFIXES)
       local nmbOfSensors = # (parsed.get("BinaryInSet").children())
       local sensor = parsed.get("BinaryInSet","Entry")
       for i=1,nmbOfSensors do   -- projizdi senzory
         idVal = tonumber(sensor.get("ID").text) -- vytahne cislo ID
         if sensorID == idVal then -- najde ten spravny
           sensor = sensor.get("Value").text
           value = tonumber(sensor)
           control()
           return
         else -- kdyz ne, tak popojede
           sensor = sensor.next
         end
       end
       logf("Can´t find sensor with ID: %d, shutting down protocol", sensorID)
     else
       log("Invalid XML, next attempt in 10s.")
  	   devices.system.SetOut{output=output, value=invalidState}
  	   --devices.system.SetOut{output=4, value=true}
  	   delay(10, function() call() end)
     end
   else
     log(string.format("CGI get failed with error %d: %s. Next attempt in 10s.", o.result, o.errorInfo))
     devices.system.SetOut{output=output, value=invalidState}
     --devices.system.SetOut{output=4, value=true}
     delay(10, function() call() end)
   end
end

call()

4) Tvorbu pravidla ukončete stisknutím kliknutím na tlačítko Create Rule v dolní části obrazovky.

  • Zařízení spolu komunikují po LAN síti, hodnoty jsou přenášeny v .xml souboru

 

Princip

  • Změřené hodnoty teploty, vlhkosti a DI stavů na STE2 jsou dostupné z webového rozhraní. Tam je lze ověřit.
  • NETIO zašle http požadavek a STE2 pošle zpět soubor values.xml s hodnotami senzorů a aktuálním stavem DI vstupů.
  • Lua script vyhledá nastavené ID vstupu a jeho hodnotu zpracovává.
  • Lua script vyparsuje stav DI vstupu a podle něj nastaví stav zvoleného výstupu.
  • Celý cyklus se periodicky opakuje.

 

Nastavení proměnných

 

  • output
    • Nastavuje ovládanou zásuvku.
    • Příklad pro ovládání zásuvky 1: output = 1

 

  • validValue
    • Nastavuje stav výstupu, který nastane, pokud je DI vstup sepnutý.
    • Pro vypnutý výstup při sepnutém DI vstupu nastavte validValue = 0, pro zapnutý výstup validValue = 1

 

  • invalidState
    • Nastavuje, v jakém bude stavu výstup při chybě (např výpadek napájení STE2, chyba v síti apod.)
    • Pokud chcete výstup vypnout nastavte: invalidState = 0, pokud jej chcete zapnout invalidState = 1.

 

  • sensorID
    • Nastavuje ID vstupu, který se sleduje (viz výše).
    • Možné hodnoty jsou 1 a 2.
    • Příklad pro sledování vstupu s ID 1: sensorID = 1

 

  • ipSTE2
    • Nastavuje IP zařízení STE2. Lze ji zjistit pomocí HWg - Config (viz výše).
    • Jedná se string (řetězec), je tedy nutné ji dát do uvozovek.
    • Pokud je u STE2 nastaven jiný HTTP Port než 80 (výchozí), je nutné ho za dvojtečku přidat do řetězce
    • Příklad (port 80): ipSTE2 = "192.168.101.165"
    • Příklad pro port 8080: ipSTE2 = "192.168.101.165:8080"

 


STE2 – produkt třetí strany

 

Web teploměr STE2 s LAN nebo WiFi rozhraním vyrábí firma HW group s.r.o. (Česká republika).

 
  • Více informací najdete na www.HW-group.com / STE2.
  • NETIO products a.s. tyto produkty neprodává, tento příklad slouží pouze našim zákazníkům pro usnadnění použití NETIO produktů.

Zelené DI vstupy slouží pro připojení tlačítka nebo přepínače. Těmto vstupům, které slouží pro připojení jednoduchého kontaktu říká HW group „detektory“ a lze na ně připojit bezpotenciálový kontakt (dry contact) = mechanické tlačítko nebo vypínač. NETIO 4x umí reagovat na sepnutí/rozepnutí DI vstupu, jak je ukázáno v této Aplikační Poznámce.

Výrobce STE2 dodává v balení teplotní čidlo. Do portu pro senzor lze připojit také čidlo vlhkosti. NETIO je schopné pracovat i s daty z těchto senzorů, jak je ukázáno v NETIO AN13.

Pro detekci výpadku STE2 zařízení lze použít NETIO AN09, které ověřuje přítomnost zařízení na síti pomocí opakovaného PINGu na jeho IP adresu a při detekci výpadku odpovědi na PING zapne NETIO zásuvku. 


 

FAQ

 

1) Je možné mít zařízení propojená, bez připojení k internetu?

Ano, STE2 je možné připojit na wifi síť, kterou vytvoří NETIO4 nebo NETIO 4All v režimu Wi-Fi Access Point (NETIO Configuration mode) viz odstavec Propojení NETIO 4x a STE2.

 

2) Je možné pomocí této akce ovládat více výstupů v rámci jednoho zařízení NETIO?

Ano, veškerá práce se stavem výstupů probíhá ve funkci control. Zde si v závislosti na hodnotě proměnné value můžete libovolně nastavit chování výstupů.

 

3) Lze kontrolovat hodnotu DI vstupů častěji než jednou za sekundu?

Ne, jedna sekunda je minimální hodnota

 

4) Lze hlídat i hodnoty senzorů připojených k STE2?

Ano, podrobnější návod naleznete v NETIO AN13.

 

5) Mohu číst z obou DI vstupů současně?

Ano, pro jednodušší instalace doporučujeme vytvořit nový skript s jiným ID senzoru. Proměnné si lze v rámci zařízení předávat pomocí globálních proměnných. Čtení  více proměnných v rámci jedné akce je možné, ale vyžaduje složitější zásahy do kódu.

 

6) Mohu toto pravidlo použít práci s DI vstupy zařízení Poseidon2 od stejné firmy (HW group s.r.o.)?

Ano, kód bude fungovat i pro zařízení Poseidon2, xml soubory jsou velmi podobné. Testováno s Poseidon2 3266, firmware verze 1.4.8.

 

7) Co se stane, pokud restartuji jedno nebo obě zařízení?

Při restartu STE2 se výstup nastaví podle proměnné invalidState. Po opětovném zapnutí zařízení, bude dále pokračovat kontrola stavu DI vstupů. Po restartu chytrých zásuvek NETIO 4x, akce se znovu spustí při zapnutí. Při vypnuté zásuvce NETIO akce neběží, kontrola tedy neprobíhá. Při vypnutí obou zařízení (například při výpadku proudu) a jejich opětovném spuštění bude reakce na DI vstupy dále probíhat.

 

8) Je možné detekovat chybný stav (výpadek STE2, utržený senzor,...) a signalizovat jej pomocí zapnutí/vypnutí jiného výstupu?

V kódu jsou zakomentovány 3 příkazy, které v situaci nedostupného zařízení zapínají elektrickou zásuvku (výstup) 4. Vypadají takto:

--devices.system.SetOut{output=4, value=true} a --devices.system.SetOut{output=4, value=false}. Pokud chcete, stačí je odkomentovat. Jeden se nachází ve funkci control, další dva pak ve funkci getTemperature. Výstup 4 je možné jednoduše změnit na jiný přepsáním čísla v parametru output.

 


Podporovaná verze firmwaru:

3.0.0 a vyšší (Archiv firmwware)


Klíčová slova:

XML, cgiGet, XML API, HTTP požadavek, xml parser, DI, DI vstupy, HW group, STE2, WiFi, NETIO ovládané pomocí DI vstupů

 

 

 

Zeptejte se na cenu nebo technické parametry

Pro otestování zařízení použijte jméno/heslo demo/demo