TapHome

Orno OR-WE-515

Modbus RTU
Přidal
Poslední aktualizace: 03. 2026
Orno OR-WE-515

Orno OR-WE-515 je jednofázový multitarifní elektroměr na DIN lištu, který komunikuje přes Modbus RTU po RS-485. S šířkou pouhých 18 mm (1 DIN modul) měří činnou energii, jalovou energii, napětí, proud, výkon, účiník a frekvenci. Hlavní rozdíl oproti jednoduššímu OR-WE-514 je podpora 4 nezávislých tarifů (špička, vysoký, nízký, plochý) s konfigurovatelným plánováním časových pásem a vestavěnou lithiovou baterií pro hodiny reálného času.

TapHome šablona poskytuje 6 zařízení: celkový elektroměr s okamžitým příkonem, 4 samostatná tarifní počítadla (T1–T4) a snímač elektrického proudu. Servisní akce na úrovni modulu umožňují konfigurovat tarifní plány, nastavit hodiny RTC, změnit Modbus slave adresu, upravit přenosovou rychlost a ovládat čas cyklování LCD displeje — vše vzdáleně přes TapHome.

Hardwarové připojení

Zapojení RS-485

OR-WE-515 má 3-svorkové RS-485 rozhraní na pravé straně elektroměru. Připojte pomocí řetězové (daisy-chain) topologie:

  • Svorka 23 (A) na A+/D+ na TapHome RS-485
  • Svorka 24 (G) na GND na TapHome RS-485
  • Svorka 25 (B) na B-/D- na TapHome RS-485

Ostatní svorky slouží k připojení silového vedení: Svorka 1 je L-IN (vstup fáze), Svorka 3 je L-OUT (výstup fáze) a dvě svorky N jsou pro nulový vodič.

Pokud RS-485 převodník nemá svorku G (zem), připojení uzemnění na svorce 24 lze vynechat. Pro spolehlivou komunikaci na delších kabelových trasách se však připojení GND doporučuje.

Před instalací vždy odpojte napájení. Elektroměr zvládá proud až 100 A přes své svorky. Zajistěte správný průřez vodičů (šroubové svorky až do 25 mm2) a po zapojení uzavřete kryt svorek.

Konfigurace

Komunikační parametry

Výchozí Modbus nastavení odpovídají TapHome šabloně:

ParametrVýchozí hodnotaMožnosti
Přenosová rychlost96001200, 2400, 4800, 9600
Datové bity8Fixní
ParitaEvenFixní (8E1)
Stop bity1Fixní
Slave ID11–255

Hlavička PDF dokumentace registrů uvádí „N81" (bez parity), ale instalační manuál a komunitní implementace (Arduino knihovna, AGG Software) konzistentně potvrzují 8E1 (sudá parita) jako správné nastavení. V TapHome použijte sudou paritu.

Slave ID

Při připojení více elektroměrů na stejnou sběrnici RS-485 musí mít každý elektroměr jedinečné Slave ID. Výchozí Slave ID je 1, konfigurovatelné v rozsahu 1–255. TapHome šablona obsahuje servisní akci Set Slave ID, která zapisuje do holding registru H:272 a umožňuje vzdálenou změnu adresy bez fyzického přístupu k elektroměru.

Přenosová rychlost

Přenosovou rychlost lze změnit vzdáleně přes servisní akci Set Baud Rate. Dostupné možnosti jsou 1200, 2400, 4800 a 9600 bps. Hodnota je uložena v holding registru H:273 jako kódované celé číslo (1=1200, 2=2400, 3=4800, 4=9600). Po změně přenosové rychlosti aktualizujte nastavení připojení modulu v TapHome.

Schopnosti zařízení

Šablona vytváří 6 zařízení organizovaných do dvou skupin: měření energie a měření proudu. Všechny registry používají Modbus funkční kód 03H (holding registry).

Měření energie

Pět zařízení ModbusElectricityMeter sleduje spotřebu energie:

  • Total Energy — celková činná energie (H:40960, UInt32 / 100 na kWh) a okamžitý činný příkon (H:320, Int32 / 1000 na kW). Toto zařízení obsahuje 4 servisní atributy: frekvence sítě (Hz), jalový výkon (kVAr), zdánlivý výkon (kVA) a účiník (0,000–1,000).
  • Tariff T1 — činná energie akumulovaná během tarifních období 1 (H:40962, UInt32 / 100 na kWh). Obsahuje servisní atribut jalové energie pro T1 (kVArh).
  • Tariff T2 — činná energie akumulovaná během tarifních období 2 (H:40964, UInt32 / 100 na kWh). Obsahuje servisní atribut jalové energie pro T2 (kVArh).
  • Tariff T3 — činná energie akumulovaná během tarifních období 3 (H:40966, UInt32 / 100 na kWh). Obsahuje servisní atribut jalové energie pro T3 (kVArh).
  • Tariff T4 — činná energie akumulovaná během tarifních období 4 (H:40968, UInt32 / 100 na kWh). Obsahuje servisní atribut jalové energie pro T4 (kVArh).

Čtyři tarifní sazby odpovídají časovým pásmům spotřeby: 1 = špička (nejvyšší sazba), 2 = vysoký tarif, 3 = nízký tarif (mimo špičku), 4 = plochý tarif. Až 8 časových intervalů denně definuje, kdy se každý tarif uplatňuje.

Měření proudu
  • Electric Current — okamžitý proud v lince (H:313, UInt32 / 1000 na A). Obsahuje servisní atribut napětí (H:305, V).
Správa tarifů a hodin

Modul nabízí 5 servisních akcí pro vzdálenou konfiguraci:

  • Set Date/Time — nastaví vestavěné hodiny RTC (rok, měsíc, den, hodina, minuty, sekundy). OR-WE-515 má lithiovou baterii, která udržuje hodiny během výpadků napájení.
  • Set Tariffs — konfiguruje až 8 pracovních časových intervalů. Každý interval definuje čas začátku (hodina, minuta) a tarifní sazbu (0=vypnuto, 1=špička, 2=vysoký, 3=nízký, 4=plochý). Výchozí plán spouští tarif 2 (vysoký) v 07:00 a tarif 3 (nízký) ve 22:00.
  • Set Slave ID — změní Modbus adresu (1–255).
  • Set Baud Rate — změní rychlost komunikace RS-485 (1200/2400/4800/9600 bps).
  • Set LCD Cycle Time — nastaví interval automatického posouvání displeje (1–120 sekund).

Servisní atributy na úrovni modulu zobrazují aktuální Slave ID, přenosovou rychlost, datum/čas a 8 nakonfigurovaných plánů časových období s přiřazením tarifů.

Tarifní plán nakonfigurovaný přes TapHome se vztahuje pouze na pracovní dny (registry 0x8100–0x810F). OR-WE-515 podporuje také samostatné víkendové (0x8110) a sváteční (0x8130) plány, ale ty nejsou v aktuální šabloně dostupné. Lze je nakonfigurovat pomocí softwaru Orno nebo přidat jako vlastní Modbus zařízení v TapHome.

Další schopnosti

OR-WE-515 také poskytuje vysokopřesný registr napětí (UInt32, rozlišení 0,001 V) jako alternativu k registru UInt16 použitému v šabloně. Elektroměr podporuje obousměrné měření (činný výkon vpřed a zpět), exportní počítadla energie podle tarifů, kombinovaná obousměrná celková počítadla, celkovou jalovou energii napříč všemi tarify a celkové harmonické zkreslení (THD) pro napětí i proud. Tyto lze přidat v budoucí aktualizaci šablony.

Řešení problémů

Žádná komunikace
  1. Zkontrolujte zapojení RS-485: svorka 23 = A, svorka 25 = B — prohoďte A a B, pokud komunikace nefunguje
  2. Ověřte, že nastavení parity v TapHome je Even (8E1), nikoli None
  3. Zkontrolujte, zda přenosová rychlost v TapHome odpovídá elektroměru (výchozí 9600)
  4. Ověřte, že Slave ID v TapHome odpovídá elektroměru (výchozí 1)
  5. Při dlouhých kabelových trasách zajistěte připojení GND (svorka 24)
Nesprávné naměřené hodnoty energie
  1. Ověřte režim měření elektroměru — Možnost 1 (výchozí) měří činnou a jalovou energii; Možnost 2 měří energii vpřed a zpět (obousměrné)
  2. Tarifní počítadla (T1–T4) akumulují energii pouze během přiřazených časových období — pokud jsou všechny tarifní plány vypnuty (nastaveny na 0), tarifní počítadla zůstanou na nule, zatímco Total Energy pokračuje v počítání
  3. Konstanta elektroměru je konfigurovatelná (100, 1000 nebo 2000 imp/kWh) — výchozí 1000 imp/kWh odpovídá škálování registrů v šabloně
Poznámka ke škálování jalové energie

Oficiální dokumentace registrů uvádí škálování 0,01 kVArh pro registry jalové energie, zatímco TapHome šablona používá dělitel /1000 pro servisní atributy jalové energie podle tarifů. Tento rozdíl může způsobit 10násobný posun škálování hodnot jalové energie. Pokud se hodnoty jalové energie zdají nesprávné, porovnejte je s LCD displejem na fyzickém elektroměru.

Dostupná zařízení

Orno OR-WE-515 Modul
Servisní atributy
Slave ID
Přenosová rychlost
Datum/ČasČtení vestavěných hodin reálného času — datum a čas udržované lithiovou baterií
Časové období 1Tarifní plán slot 1 — čas začátku (HH:MM) a sazba (špička, vysoký, nízký nebo plochý)
Časové období 2Tarifní plán slot 2 — čas začátku a přiřazení sazby
Časové období 3Tarifní plán slot 3 — čas začátku a přiřazení sazby
Časové období 4Tarifní plán slot 4 — čas začátku a přiřazení sazby
Časové období 5Tarifní plán slot 5 — čas začátku a přiřazení sazby
Časové období 6Tarifní plán slot 6 — čas začátku a přiřazení sazby
Časové období 7Tarifní plán slot 7 — čas začátku a přiřazení sazby
Časové období 8Tarifní plán slot 8 — čas začátku a přiřazení sazby
Frekvence
Napětí
Jalový výkon fáze
Servisní akce
Nastavit datum/časNastaví vestavěné hodiny reálného času — rok, měsíc, den, hodina, minuty, sekundy
Nastavit tarifyKonfigurace až 8 pracovních časových intervalů — každý s časem začátku a tarifní sazbou (špička, vysoký, nízký, plochý)
Nastavit Slave ID
Nastavit čas cyklu LCDNastavení intervalu automatického posouvání LCD displeje (1--120 sekund)
Nastavit přenosovou rychlost

OR-WE-515

Servisní atributy
${device_SlaveId}
modbusr(H, 0x110, Int16)
${baud_rate} [bps]
switch(getbyte(modbusr(H, 0x111, Int16),0),0,0,1,1200,2,2400,3,4800,4,9600,"Invalid")
${time}
var Y := getbyte( modbusr(H,0x8120,uint16),1);
var M := getbyte( modbusr(H,0x8120,uint16),0);
var D := getbyte( modbusr(H,0x8121,uint16),1);
var H := getbyte( modbusr(H,0x8121,uint16),0);
var min := getbyte( modbusr(H,0x8122,uint16),1);
var sec := getbyte( modbusr(H,0x8122,uint16), 0);

tostring(tostring(H,"D2") + ":" + tostring(min,"D2") + ":" + tostring(sec, "D2") + " " + tostring(D,"D2") + "." + tostring(M,"D2") + ".20" + Y)


{1. time period starting time}, {rate}
var date := modbusr(H, 0x8100, INT16);
var belong := modbusr(H,0x8101,INT16);
tostring(tostring(getbyte(date,1),"D2") + ":" + tostring(getbyte(date,0),"D2") + ", " + belong + " (" + switch(belong,1,"sharp",2,"peak",3,"Valley",4,"flat","NaN")+")")
{2. time period starting time}, {rate}
var date := modbusr(H, 0x8100+2, INT16);
var belong := modbusr(H,0x8101+2,INT16);
tostring(tostring(getbyte(date,1),"D2") + ":" + tostring(getbyte(date,0),"D2") + ", " + belong + " (" + switch(belong,1,"sharp",2,"peak",3,"Valley",4,"flat","NaN")+")")
{3. time period starting time}, {rate}
var date := modbusr(H, 0x8100+4, INT16);
var belong := modbusr(H,0x8101+4,INT16);
tostring(tostring(getbyte(date,1),"D2") + ":" + tostring(getbyte(date,0),"D2") + ", " + belong + " (" + switch(belong,1,"sharp",2,"peak",3,"Valley",4,"flat","NaN")+")")
{4. time period starting time}, {rate}
var date := modbusr(H, 0x8100+6, INT16);
var belong := modbusr(H,0x8101+6,INT16);
tostring(tostring(getbyte(date,1),"D2") + ":" + tostring(getbyte(date,0),"D2") + ", " + belong + " (" + switch(belong,1,"sharp",2,"peak",3,"Valley",4,"flat","NaN")+")")
{5. time period starting time}, {rate}
var date := modbusr(H, 0x8100+8, INT16);
var belong := modbusr(H,0x8101+8,INT16);
tostring(tostring(getbyte(date,1),"D2") + ":" + tostring(getbyte(date,0),"D2") + ", " + belong + " (" + switch(belong,1,"sharp",2,"peak",3,"Valley",4,"flat","NaN")+")")
{6. time period starting time}, {rate}
var date := modbusr(H, 0x8100+10, INT16);
var belong := modbusr(H,0x8101+10,INT16);
tostring(tostring(getbyte(date,1),"D2") + ":" + tostring(getbyte(date,0),"D2") + ", " + belong + " (" + switch(belong,1,"sharp",2,"peak",3,"Valley",4,"flat","NaN")+")")
{7. time period starting time}, {rate}
var date := modbusr(H, 0x8100+12, INT16);
var belong := modbusr(H,0x8101+12,INT16);
tostring(tostring(getbyte(date,1),"D2") + ":" + tostring(getbyte(date,0),"D2") + ", " + belong + " (" + switch(belong,1,"sharp",2,"peak",3,"Valley",4,"flat","NaN")+")")
{8. time period starting time}, {rate}
var date := modbusr(H, 0x8100+14, INT16);
var belong := modbusr(H,0x8101+14,INT16);
tostring(tostring(getbyte(date,1),"D2") + ":" + tostring(getbyte(date,0),"D2") + ", " + belong + " (" + switch(belong,1,"sharp",2,"peak",3,"Valley",4,"flat","NaN")+")")
Frequency [Hz]
round(modbusr(h,0x130,uint16)*0.01)
Voltage [V]
round(modbusr(h,0x131,int16)*0.01)
Split phase reactive power [kwar]
round(modbusr(h, 0x148,uint32)*0.001*10)/10
Servisní akce
Date/Time
Parametry: Year (22–99 YY), Month (1–12 MM), Day (1–31 DD), Hour (1–24 HH), Minutes (0–59 MI), Seconds (0–59 SS)
var out1 := (YY<<8) + MM;
var out2 := (DD<<8) + HH;
var out3 := (MI<<8) + SS;

modbusw(H, 0x8120, uint16, out1);
modbusw(H, 0x8121, uint16, out2);
modbusw(H, 0x8122, uint16, out3);



#var out1 := (tobcd(MI) << 8) + tobcd(SS);
#var out2 := (tobcd(DW) << 8) + tobcd(HH);
#var out3 := (tobcd(MM) << 8) + tobcd(DD);

#modbusw(H, 0x3c, LittleEndianUint16, out1, out2, out3, YY);
${set_tarriffs}
Parametry: Interval 1 - ${hour} (0–23 HH1), Interval 1 - ${minutes} (0–59 MI1), Interval 1 - ${tariff} (0–4 T1), Interval 2 - Hour (0–23 HH2), Interval 2 - Minutes (0–59 MI2), Interval 2 - ${tariff} (0–4 T2), Interval 3 - Hour (0–23 HH3), Interval 3 - Minutes (0–59 MI3), Interval 3 - ${tariff} (0–4 T3), Interval 4 - Hour (0–23 HH4), Interval 4 - Minutes (0–59 MI4), Interval 4 - ${tariff} (0–4 T4), Interval 5 - Hour (0–23 HH5), Interval 5 - Minutes (0–59 MI5), Interval 5 - ${tariff} (0–4 T5), Interval 6 - Hour (0–23 HH6), Interval 6 - Minutes (0–59 MI6), Interval 6 - ${tariff} (0–4 T6), Interval 7 - Hour (0–23 HH7), Interval 7 - Minutes (0–59 MI7), Interval 7 - ${tariff} (0–4 T7), Interval 8 - Hour (0–23 HH8), Interval 8 - Minutes (0–59 MI8), Interval 8 - ${tariff} (0–4 T8)
modbusw(H, 0x8100, uint16, (HH1<<8) + MI1);
modbusw(H, 0x8101, uint16, T1);

modbusw(H, 0x8100+2, uint16, (HH2<<8) + MI2);
modbusw(H, 0x8101+2, uint16, T2);

modbusw(H, 0x8100+4, uint16, (HH3<<8) + MI3);
modbusw(H, 0x8101+4, uint16, T3);

modbusw(H, 0x8100+6, uint16, (HH4<<8) + MI4);
modbusw(H, 0x8101+6, uint16, T4);

modbusw(H, 0x8100+8, uint16, (HH5<<8) + MI5);
modbusw(H, 0x8101+8, uint16, T5);

modbusw(H, 0x8100+10, uint16, (HH6<<8) + MI6);
modbusw(H, 0x8101+10, uint16, T6);

modbusw(H, 0x8100+12, uint16, (HH7<<8) + MI7);
modbusw(H, 0x8101+12, uint16, T7);

modbusw(H, 0x8100+14, uint16, (HH8<<8) + MI8);
modbusw(H, 0x8101+14, uint16, T8);
Slave ID
Parametry: Parameter1 (1–255 ID)
modbusw(H, 0x110, Uint16, ID)
LCD Cycle time
Parametry: Time [s] (1–120 t)
modbusw(H, 0x0d, Uint16, t)
Baud rate
Parametry: Baud rate
modbusw(H,0x111,int16,Br)
Elektrický proud Proměnná Pouze ke čtení

Okamžitý jednofázový proud v lince (A) se servisním atributem napětí

Registr: H:313 UInt32 Jednotka: A numeric
Servisní atributy
Napětí

Elektrický proud

Čtení
MODBUSR(H, 0x139, UInt32)/1000
Servisní atributy
Voltage [V]
round(modbusr(H, 0x131, uint16)*0.01)
Celková energie Elektroměr Pouze ke čtení

Celková spotřeba činné energie (kWh) a okamžitý příkon (kW) s frekvencí sítě, jalovým výkonem, zdánlivým výkonem a účiníkem

Registr: H:40960 (readtotalconsumption), H:320 (readdemand) UInt32 / Int32 Jednotka: kWh / kW numeric
Servisní atributy
Frekvence sítě
Jalový výkon
Zdánlivý výkon
Účiník

Celková energie

Čtení celkové spotřeby
MODBUSR(H, 0xA000, UInt32)/100
Čtení odběru
MODBUSR(H, 0x140, Int32)/1000
Servisní atributy
${grid_frequency} [Hz]
tostring(modbusr(H, 0x130,UInt16)/100, "F2")
${reactive_power} [kVAr]
tostring(modbusr(H, 0x148,Int32)/1000, "F2")
${apparent_power} [kVA]
tostring(modbusr(H, 0x150,Int32)/1000, "F2")
${power_factor}
tostring(modbusr(H, 0x158,Int16)/1000, "F2")
Tarif T1 Elektroměr Pouze ke čtení

Činná energie akumulovaná během tarifních období 1 (špička) s počítadlem jalové energie

Registr: H:40962 (readtotalconsumption) UInt32 Jednotka: kWh numeric
Servisní atributy
Celková jalová energie

Tarif T1

Čtení celkové spotřeby
MODBUSR(H, 0xA002, UInt32)/100
Servisní atributy
${total_reactive_energy} [kVArh]
tostring(modbusr(H, 0xA01E + 2,UInt32)/1000, "F2")
Tarif T2 Elektroměr Pouze ke čtení

Činná energie akumulovaná během tarifních období 2 (vysoký tarif) s počítadlem jalové energie

Registr: H:40964 (readtotalconsumption) UInt32 Jednotka: kWh numeric
Servisní atributy
Celková jalová energie

Tarif T2

Čtení celkové spotřeby
MODBUSR(H, 0xA004, UInt32)/100
Servisní atributy
Total Reactive Energy [kwarh]
tostring(modbusr(H, 0xA01E + 4,UInt32)/1000, "F2")
Tarif T3 Elektroměr Pouze ke čtení

Činná energie akumulovaná během tarifních období 3 (nízký tarif / mimo špičku) s počítadlem jalové energie

Registr: H:40966 (readtotalconsumption) UInt32 Jednotka: kWh numeric
Servisní atributy
Celková jalová energie

Tarif T3

Čtení celkové spotřeby
MODBUSR(H, 0xA006, UInt32)/100
Servisní atributy
Total Reactive Energy
tostring(modbusr(H, 0xA01E + 6,UInt32)/1000, "F2")
Tarif T4 Elektroměr Pouze ke čtení

Činná energie akumulovaná během tarifních období 4 (plochý tarif) s počítadlem jalové energie

Registr: H:40968 (readtotalconsumption) UInt32 Jednotka: kWh numeric
Servisní atributy
Celková jalová energie

Tarif T4

Čtení celkové spotřeby
MODBUSR(H, 0xA008, UInt32)/100
Servisní atributy
${total_reactive_energy} [kVArh]
tostring(modbusr(H, 0xA01E + 8,UInt32)/1000, "F2")
Připojení: Modbus RTU • 9600 baud• 8E1 • Slave ID: $[SlaveId]
Možná vylepšení (8)
  • H:312 (0x138) Voltage (high-precision UInt32) — UInt32 voltage register with 0.001V resolution — template uses H:305 (UInt16, 0.01V) instead
  • H:320 (0x140) — export Active Power (export/negative) — Template reads H:320 for total power but does not split into import/export — no bidirectional energy separation
  • H:0xA00A–0xA00E Tariff T1–T4 Export Active Energy — Per-tariff export (reverse) energy counters — template only reads import direction
  • H:0xA010 Total Active Energy (combined import+export) — Combined bidirectional total — template uses H:0xA000 (import only)
  • H:0xA01C Total Reactive Energy (all tariffs) — Grand total reactive energy across all tariffs — template only reads per-tariff reactive counters
  • H:0xA01E (40990) Total Reactive Energy (import) — Total reactive import energy — base address used by per-tariff SA formulas (0xA01E + offset)
  • H:0x160 (352) Current THD — Total harmonic distortion of current, %
  • H:0x168 (360) Voltage THD — Total harmonic distortion of voltage, %

Zdroje

  • Orno OR-WE-514 & OR-WE-515 Register Description
    2026-03-27
    PDF
  • Orno OR-WE-512/514/515 Installation Manual
    PDF
  • AGG Software — OR-WE-514/515 Modbus Register Map
  • OR_WE_Energy_Meter Arduino Library — Register Definitions
    github.com 2026-03-27