---
title: "Orno OR-WE-517"
description: "Orno OR-WE-517 třífázový multitarifní elektroměr s Modbus RTU (RS-485). TapHome čte energii po fázích i celkovou a 4 tarifní počítadla."
url: "https://taphome.com/cs/compatibility/orno-or-we-517/"
language: cs
lastmod: 2026-10-08
generator: hugo
ai:
  topics: ["modbus-rtu","electric-meter","rs485","3-phase","energy-metering","din-rail","multitariff"]
  questions: ["Jak integrovat Orno OR-WE-517 s TapHome?","Co měří šablona Orno OR-WE-517 v TapHome?","Jak připojit Orno OR-WE-517 přes RS-485 k TapHome?","Jak konfigurovat tarifní plány na OR-WE-517?","Jaký je rozdíl mezi OR-WE-516 a OR-WE-517?","Jak nastavit Modbus slave adresu na OR-WE-517?"]
---

# Orno OR-WE-517

Komunikace: Modbus RTU

- [Oficiální stránka Orno](https://www.orno.pl)

## Návod na integraci

Orno OR-WE-517 je třífázový multitarifní elektroměr na DIN lištu, který komunikuje přes Modbus RTU po RS-485. Jedná se o přímé připojení s jmenovitým proudem do 80 A na fázi, certifikací MID (směrnice 2014/32/EU) a šířkou 4,3 modulu na liště TH-35. Šablona TapHome poskytuje 11 elektroměrů pokrývajících proud po fázích, energii po fázích, celkovou třífázovou energii a 4-tarifní počítadla energie spolu se servisními atributy pro napětí, jalový/zdánlivý výkon, účiník a obousměrné (příjem/výdej) rozložení energie.

Všechny měřicí registry používají kódování IEEE 754 Float32 (2 Modbus slova na hodnotu), čtené přes funkční kód 03 (holding registry). Šablona také poskytuje servisní akce pro nastavení hodin reálného času měřiče, konfiguraci tarifních plánů a změnu Modbus slave ID.

## Hardwarové zapojení

### Kabeláž RS-485

OR-WE-517 má vestavěné rozhraní RS-485 pro komunikaci Modbus RTU. Připojte měřič ke sběrnici TapHome Core RS-485 pomocí stíněného komunikačního kabelu se dvěma žílami:

- **A** svorka na měřiči k **A+/D+** na TapHome RS-485
- **B** svorka na měřiči k **B-/D-** na TapHome RS-485

> [!WARNING]
> Použijte zapojení typu **daisy-chain**. Hvězdicová nebo odbočková topologie způsobuje odrazy signálu a chyby komunikace. Propojení mezi převodníkem a měřičem by mělo být provedeno stíněným komunikačním kabelem přizpůsobeným standardu RS-485.

> [!TIP]
> Pro úvodní konfiguraci a testování lze použít i standardní USB-RS485 převodník. Převodník není součástí balení měřiče.

## Konfigurace

### Komunikační parametry

Výchozí nastavení Modbus odpovídají šabloně TapHome bez nutnosti úprav:

| Parametr | Výchozí | Rozsah |
|----------|---------|--------|
| Přenosová rychlost | 9600 bps | 1200, 2400, 4800, 9600 |
| Datové bity | 8 | Fixní |
| Parita | Sudá | Fixní |
| Stop bity | 1 | Fixní |
| Slave ID | 1 | 1--255 |

Komunikační rámec používá 11bitový formát: 1 start bit, 8 datových bitů, 1 bit sudé parity a 1 stop bit s kontrolou CRC.

### Slave ID

Při připojení více měřičů na stejnou sběrnici RS-485 musí mít každý měřič unikátní Slave ID. Výchozí Slave ID je 1 (konfigurovatelné od 1 do 255 přes holding registr H:2). Po importu šablony TapHome upravte Slave ID v nastavení připojení modulu tak, aby odpovídalo fyzickému měřiči. Šablona také poskytuje servisní akci **Slave ID** pro vzdálenou změnu adresy přes Modbus.

Aktuální Slave ID a přenosová rychlost jsou viditelné na LCD displeji měřiče (stránky 42 a 43).

## Možnosti zařízení

Šablona vytváří 11 zařízení ModbusElectricityMeter a ModbusVariable organizovaných do čtyř skupin: snímače proudu po fázích, elektroměry po fázích, celkové třífázové zařízení a tarifní počítadla energie.

### Monitorování proudu po fázích

Tři zařízení poskytují měření proudu v reálném čase pro každou fázi:

- **L1 Proud** — proud fáze 1 (H:22, A) s napětím L1 jako servisní atribut (H:14, V)
- **L2 Proud** — proud fáze 2 (H:24, A) s napětím L2 (H:16, V)
- **L3 Proud** — proud fáze 3 (H:26, A) s napětím L3 (H:18, V)

### Měření energie po fázích

Tři zařízení sledují spotřebu činné energie a výkonový odběr po fázích s komplexní sadou servisních atributů:

- **Fáze L1** — celková činná energie (H:258, kWh) a činný výkon (H:30, kW). Servisní atributy zahrnují napětí, proud, jalový výkon (kVAr), zdánlivý výkon (kVA), účiník a obousměrná počítadla energie (příjem/výdej činné a jalové energie).
- **Fáze L2** — celková činná energie (H:260, kWh) a činný výkon (H:32, kW). Stejné servisní atributy po fázích jako L1.
- **Fáze L3** — celková činná energie (H:262, kWh) a činný výkon (H:34, kW). Stejné servisní atributy po fázích jako L1.

### Celková třífázová energie

Jedno zařízení poskytuje systémové součty:

- **Celková energie (3-fázová)** — celková činná energie (H:256, kWh) a celkový odběr činného výkonu (H:28, kW). Servisní atributy zahrnují frekvenci sítě (Hz), celkový jalový výkon (kVAr), celkový zdánlivý výkon (kVA), celkový účiník a obousměrná počítadla energie (příjem/výdej činné a jalové energie).

### Tarifní počítadla energie

Čtyři zařízení sledují kumulativní energii podle tarifních pásem (T1--T4):

- **Tarif T1** až **Tarif T4** — každý uvádí celkovou činnou energii (kWh) se servisními atributy pro příjem/výdej činné energie a příjem/výdej/celkovou jalovou energii. Tarifní měřiče sledují pouze kumulativní energii, nikoliv okamžitý výkonový odběr.

Měřič podporuje až 8 časových intervalů denně (pondělí až neděle jednotlivě) pro přiřazení tarifních pásem T1--T4. Tarifní plány jsou konfigurovatelné přes servisní akci **Set Tariffs**, která umožňuje naprogramovat intervaly pro konkrétní den nebo všechny dny najednou.

> [!TIP]
> 4-tarifní schopnost je klíčovým odlišením OR-WE-517 oproti OR-WE-516 (který podporuje RS-485, ale nemá tarifní plánování). OR-WE-513 nemá ani RS-485, ani podporu tarifů.

### Servisní akce

Šablona poskytuje čtyři servisní akce pro vzdálenou konfiguraci:

- **Date/Time** — nastavení interních hodin reálného času měřiče (rok, měsíc, den, hodina, minuty, sekundy a den v týdnu) přes registry H:60--H:65
- **Set Tariffs** — konfigurace až 8 denních tarifních intervalů (T1--T4) pro vybraný den nebo všechny dny najednou, zápis do registrů tarifního plánu od H:768
- **LCD Cycle time** — nastavení intervalu automatického posouvání LCD displeje (1--120 sekund)
- **Slave ID** — změna Modbus adresy měřiče (1--255) přes holding registr H:2

### Další možnosti

OR-WE-517 také zpřístupňuje registry pro celkovou jalovou energii po fázích (L1/L2/L3), sériové číslo, verzi firmwaru a hardwaru, kombinovaný konfigurační kód a registr přiřazení tarifů pro svátky/víkendy. Tyto lze přidat v budoucí aktualizaci šablony.

## Řešení problémů

### Žádná komunikace

1. Ověřte zapojení svorek RS-485 A/B -- prohoďte A a B, pokud komunikace nefunguje, protože konvence označování se liší mezi výrobci
2. Potvrďte, že přenosová rychlost v TapHome odpovídá nastavení měřiče (výchozí 9600 bps, viditelná na LCD stránce 43)
3. Ověřte, že Slave ID odpovídá (výchozí 1, viditelné na LCD stránce 42 ve formátu "Id 255", kde 255 je aktuální adresa)
4. Zkontrolujte, že nastavení parity je **Even** (8E1) -- tento měřič standardně používá sudou paritu, na rozdíl od některých měřičů, které mají výchozí žádnou paritu (8N1)

### Nesprávné údaje

1. Ujistěte se, že měřič je zapojen jako třífázový 4-vodičový systém se všemi třemi fázovými vodiči a nulovým vodičem propojenými přes svorky měřiče
2. Pro obousměrné měření (příjem/výdej energie) ověřte směr CT nebo směr vodiče podle toku energie -- obrácená kabeláž způsobí, že přijímaná energie se zaregistruje jako odeslaná

### Komunikace přes Ethernet převodník

OR-WE-517 lze připojit také přes RS-485 na Ethernet převodník (např. Waveshare RS485 to ETH). Při použití takového převodníku musí být typ protokolu nastaven na **RTU over TCP** (nikoliv standardní Modbus TCP). Standardní TCP rámování s tímto měřičem nefunguje.

## Dostupná zařízení 11

Tato zařízení se po importu zobrazí v TapHome.

Orno OR-WE-517 Modul

Servisní atributy

|                    |                                                                                               |
|--------------------|-----------------------------------------------------------------------------------------------|
| Slave ID           |                                                                                               |
| Přenosová rychlost |                                                                                               |
| Čas cyklu LCD      |                                                                                               |
| Poměr CT           | Převod proudového transformátoru — platí pouze pro měřiče typu CT, nikoli pro přímé připojení |
| Výstupní sazba S0  |                                                                                               |
| Čas                | Aktuální datum a čas z interních hodin reálného času měřiče                                   |
| Tarify (Po)        |                                                                                               |
| Tarify (Út)        |                                                                                               |
| Tarify (St)        |                                                                                               |
| Tarify (Čt)        |                                                                                               |
| Tarify (Pá)        |                                                                                               |
| Tarify (So)        |                                                                                               |
| Tarify (Ne)        |                                                                                               |

Servisní akce

|                 |                                                                                                   |
|-----------------|---------------------------------------------------------------------------------------------------|
| Datum/Čas       | Nastaví interní hodiny reálného času měřiče — datum, čas a den v týdnu pro provoz tarifního plánu |
| Nastavit tarify | Konfigurace až 8 denních tarifních intervalů (T1–T4) pro vybraný den nebo všechny dny najednou    |
| Slave ID        | Změna adresy Modbus slave (1–255) pro konfigurace sběrnice RS-485 s více měřiči                   |
| Čas cyklu LCD   | Nastavení intervalu automatického posouvání LCD displeje v sekundách                              |

Servisní atributy

${device\_SlaveId}

```taphome
modbusr(H, 0x02, Uint16)
```

${baud\_rate} \[bps]

```taphome
modbusr(H, 0x03, Uint16)
```

LCD ${cycle\_time} \[s]

```taphome
modbusr(H, 0x0d, Uint16)
```

CT Rate

```taphome
modbusr(H, 0x08, Uint16)
```

S0 output rate \[imp/kWh]

```taphome
modbusr(H, 0x09, Float)
```

${time}

```taphome
var ret := modbusr(H, 0x3c, Uint32);
var ret1 := modbusr(H, 0x3e, Uint16);
var xx := modbusr(H, 0x40, Uint16);
tostring(getbyte(ret,1), "X2") 
+ ":" + tostring(getbyte(ret,2), "X2")
+ ":" + tostring(getbyte(ret,3), "X2")
+ " " + switch(getbyte(ret,0), 
1, "(Mo)",
2, "(Tu)",
3, "(We)",
4, "(Th)",
5, "(Fr)",
6, "(Sa)",
7, "(Su)", "Err")
+ " " + tostring(getbyte(ret1,1), "X2")
+ "." + tostring(getbyte(ret1,0), "X2")
+ ".20" + modbusr(H, 0x3f, LittleEndianUint16);

```

${tariff}s (Mo)

```taphome
var wd1 := modbusr(H, 0x300, Uint32);
var wd2 := modbusr(H, 0x300 +2, Uint32);
var wd3 := modbusr(H, 0x300 +4, Uint32);
var wd4 := modbusr(H, 0x300 +6, Uint32);
var wd5 := modbusr(H, 0x300 +8, Uint32);
var wd6 := modbusr(H, 0x300 +10, Uint32);

var out := "";
if ( getbyte(wd1,1) != 0, out := out +
    "[" + tostring(getbyte(wd1,3), "X2") + ":" + tostring(getbyte(wd1,2), "X2") + "-T" + tostring(getbyte(wd1,1), "X2") + "]" );
if ( getbyte(wd2,2) != 0, out := out +
    "[" + tostring(getbyte(wd1,0), "X2") + ":" + tostring(getbyte(wd2,3), "X2") + "-T" + tostring(getbyte(wd2,2), "X2") + "]" );
if ( getbyte(wd3,3) != 0, out := out +
    "[" + tostring(getbyte(wd2,1), "X2") + ":" + tostring(getbyte(wd2,0), "X2") + "-T" + tostring(getbyte(wd3,3), "X2") + "]" );
if ( getbyte(wd3,0) != 0, out := out +
    "[" + tostring(getbyte(wd3,2), "X2") + ":" + tostring(getbyte(wd3,1), "X2") + "-T" + tostring(getbyte(wd3,0), "X2") + "]" );
if ( getbyte(wd4,1) != 0, out := out +
    "[" + tostring(getbyte(wd4,3), "X2") + ":" + tostring(getbyte(wd4,2), "X2") + "-T" + tostring(getbyte(wd4,1), "X2") + "]" );
if ( getbyte(wd5,2) != 0, out := out +
    "[" + tostring(getbyte(wd4,0), "X2") + ":" + tostring(getbyte(wd5,3), "X2") + "-T" + tostring(getbyte(wd5,2), "X2") + "]" );
if ( getbyte(wd6,3) != 0, out := out +
    "[" + tostring(getbyte(wd5,1), "X2") + ":" + tostring(getbyte(wd5,0), "X2") + "-T" + tostring(getbyte(wd6,3), "X2") + "]" );
if ( getbyte(wd6,0) != 0, out := out +
    "[" + tostring(getbyte(wd6,2), "X2") + ":" + tostring(getbyte(wd6,1), "X2") + "-T" + tostring(getbyte(wd6,0), "X2") + "]" );

return(out)
```

${tariff}s (Tu)

```taphome
var wd1 := modbusr(H, 0x30c, Uint32);
var wd2 := modbusr(H, 0x30c +2, Uint32);
var wd3 := modbusr(H, 0x30c +4, Uint32);
var wd4 := modbusr(H, 0x30c +6, Uint32);
var wd5 := modbusr(H, 0x30c +8, Uint32);
var wd6 := modbusr(H, 0x30c +10, Uint32);

var out := "";
if ( getbyte(wd1,1) != 0, out := out +
    "[" + tostring(getbyte(wd1,3), "X2") + ":" + tostring(getbyte(wd1,2), "X2") + "-T" + tostring(getbyte(wd1,1), "X2") + "]" );
if ( getbyte(wd2,2) != 0, out := out +
    "[" + tostring(getbyte(wd1,0), "X2") + ":" + tostring(getbyte(wd2,3), "X2") + "-T" + tostring(getbyte(wd2,2), "X2") + "]" );
if ( getbyte(wd3,3) != 0, out := out +
    "[" + tostring(getbyte(wd2,1), "X2") + ":" + tostring(getbyte(wd2,0), "X2") + "-T" + tostring(getbyte(wd3,3), "X2") + "]" );
if ( getbyte(wd3,0) != 0, out := out +
    "[" + tostring(getbyte(wd3,2), "X2") + ":" + tostring(getbyte(wd3,1), "X2") + "-T" + tostring(getbyte(wd3,0), "X2") + "]" );
if ( getbyte(wd4,1) != 0, out := out +
    "[" + tostring(getbyte(wd4,3), "X2") + ":" + tostring(getbyte(wd4,2), "X2") + "-T" + tostring(getbyte(wd4,1), "X2") + "]" );
if ( getbyte(wd5,2) != 0, out := out +
    "[" + tostring(getbyte(wd4,0), "X2") + ":" + tostring(getbyte(wd5,3), "X2") + "-T" + tostring(getbyte(wd5,2), "X2") + "]" );
if ( getbyte(wd6,3) != 0, out := out +
    "[" + tostring(getbyte(wd5,1), "X2") + ":" + tostring(getbyte(wd5,0), "X2") + "-T" + tostring(getbyte(wd6,3), "X2") + "]" );
if ( getbyte(wd6,0) != 0, out := out +
    "[" + tostring(getbyte(wd6,2), "X2") + ":" + tostring(getbyte(wd6,1), "X2") + "-T" + tostring(getbyte(wd6,0), "X2") + "]" );

return(out)
```

${tariff}s (We)

```taphome
var wd1 := modbusr(H, 0x318, Uint32);
var wd2 := modbusr(H, 0x318 +2, Uint32);
var wd3 := modbusr(H, 0x318 +4, Uint32);
var wd4 := modbusr(H, 0x318 +6, Uint32);
var wd5 := modbusr(H, 0x318 +8, Uint32);
var wd6 := modbusr(H, 0x318 +10, Uint32);

var out := "";
if ( getbyte(wd1,1) != 0, out := out +
    "[" + tostring(getbyte(wd1,3), "X2") + ":" + tostring(getbyte(wd1,2), "X2") + "-T" + tostring(getbyte(wd1,1), "X2") + "]" );
if ( getbyte(wd2,2) != 0, out := out +
    "[" + tostring(getbyte(wd1,0), "X2") + ":" + tostring(getbyte(wd2,3), "X2") + "-T" + tostring(getbyte(wd2,2), "X2") + "]" );
if ( getbyte(wd3,3) != 0, out := out +
    "[" + tostring(getbyte(wd2,1), "X2") + ":" + tostring(getbyte(wd2,0), "X2") + "-T" + tostring(getbyte(wd3,3), "X2") + "]" );
if ( getbyte(wd3,0) != 0, out := out +
    "[" + tostring(getbyte(wd3,2), "X2") + ":" + tostring(getbyte(wd3,1), "X2") + "-T" + tostring(getbyte(wd3,0), "X2") + "]" );
if ( getbyte(wd4,1) != 0, out := out +
    "[" + tostring(getbyte(wd4,3), "X2") + ":" + tostring(getbyte(wd4,2), "X2") + "-T" + tostring(getbyte(wd4,1), "X2") + "]" );
if ( getbyte(wd5,2) != 0, out := out +
    "[" + tostring(getbyte(wd4,0), "X2") + ":" + tostring(getbyte(wd5,3), "X2") + "-T" + tostring(getbyte(wd5,2), "X2") + "]" );
if ( getbyte(wd6,3) != 0, out := out +
    "[" + tostring(getbyte(wd5,1), "X2") + ":" + tostring(getbyte(wd5,0), "X2") + "-T" + tostring(getbyte(wd6,3), "X2") + "]" );
if ( getbyte(wd6,0) != 0, out := out +
    "[" + tostring(getbyte(wd6,2), "X2") + ":" + tostring(getbyte(wd6,1), "X2") + "-T" + tostring(getbyte(wd6,0), "X2") + "]" );

return(out)
```

${tariff}s (Th)

```taphome
var wd1 := modbusr(H, 0x324, Uint32);
var wd2 := modbusr(H, 0x324 +2, Uint32);
var wd3 := modbusr(H, 0x324 +4, Uint32);
var wd4 := modbusr(H, 0x324 +6, Uint32);
var wd5 := modbusr(H, 0x324 +8, Uint32);
var wd6 := modbusr(H, 0x324 +10, Uint32);

var out := "";
if ( getbyte(wd1,1) != 0, out := out +
    "[" + tostring(getbyte(wd1,3), "X2") + ":" + tostring(getbyte(wd1,2), "X2") + "-T" + tostring(getbyte(wd1,1), "X2") + "]" );
if ( getbyte(wd2,2) != 0, out := out +
    "[" + tostring(getbyte(wd1,0), "X2") + ":" + tostring(getbyte(wd2,3), "X2") + "-T" + tostring(getbyte(wd2,2), "X2") + "]" );
if ( getbyte(wd3,3) != 0, out := out +
    "[" + tostring(getbyte(wd2,1), "X2") + ":" + tostring(getbyte(wd2,0), "X2") + "-T" + tostring(getbyte(wd3,3), "X2") + "]" );
if ( getbyte(wd3,0) != 0, out := out +
    "[" + tostring(getbyte(wd3,2), "X2") + ":" + tostring(getbyte(wd3,1), "X2") + "-T" + tostring(getbyte(wd3,0), "X2") + "]" );
if ( getbyte(wd4,1) != 0, out := out +
    "[" + tostring(getbyte(wd4,3), "X2") + ":" + tostring(getbyte(wd4,2), "X2") + "-T" + tostring(getbyte(wd4,1), "X2") + "]" );
if ( getbyte(wd5,2) != 0, out := out +
    "[" + tostring(getbyte(wd4,0), "X2") + ":" + tostring(getbyte(wd5,3), "X2") + "-T" + tostring(getbyte(wd5,2), "X2") + "]" );
if ( getbyte(wd6,3) != 0, out := out +
    "[" + tostring(getbyte(wd5,1), "X2") + ":" + tostring(getbyte(wd5,0), "X2") + "-T" + tostring(getbyte(wd6,3), "X2") + "]" );
if ( getbyte(wd6,0) != 0, out := out +
    "[" + tostring(getbyte(wd6,2), "X2") + ":" + tostring(getbyte(wd6,1), "X2") + "-T" + tostring(getbyte(wd6,0), "X2") + "]" );

return(out)
```

${tariff}s (Fr)

```taphome
var wd1 := modbusr(H, 0x330, Uint32);
var wd2 := modbusr(H, 0x330 +2, Uint32);
var wd3 := modbusr(H, 0x330 +4, Uint32);
var wd4 := modbusr(H, 0x330 +6, Uint32);
var wd5 := modbusr(H, 0x330 +8, Uint32);
var wd6 := modbusr(H, 0x330 +10, Uint32);

var out := "";
if ( getbyte(wd1,1) != 0, out := out +
    "[" + tostring(getbyte(wd1,3), "X2") + ":" + tostring(getbyte(wd1,2), "X2") + "-T" + tostring(getbyte(wd1,1), "X2") + "]" );
if ( getbyte(wd2,2) != 0, out := out +
    "[" + tostring(getbyte(wd1,0), "X2") + ":" + tostring(getbyte(wd2,3), "X2") + "-T" + tostring(getbyte(wd2,2), "X2") + "]" );
if ( getbyte(wd3,3) != 0, out := out +
    "[" + tostring(getbyte(wd2,1), "X2") + ":" + tostring(getbyte(wd2,0), "X2") + "-T" + tostring(getbyte(wd3,3), "X2") + "]" );
if ( getbyte(wd3,0) != 0, out := out +
    "[" + tostring(getbyte(wd3,2), "X2") + ":" + tostring(getbyte(wd3,1), "X2") + "-T" + tostring(getbyte(wd3,0), "X2") + "]" );
if ( getbyte(wd4,1) != 0, out := out +
    "[" + tostring(getbyte(wd4,3), "X2") + ":" + tostring(getbyte(wd4,2), "X2") + "-T" + tostring(getbyte(wd4,1), "X2") + "]" );
if ( getbyte(wd5,2) != 0, out := out +
    "[" + tostring(getbyte(wd4,0), "X2") + ":" + tostring(getbyte(wd5,3), "X2") + "-T" + tostring(getbyte(wd5,2), "X2") + "]" );
if ( getbyte(wd6,3) != 0, out := out +
    "[" + tostring(getbyte(wd5,1), "X2") + ":" + tostring(getbyte(wd5,0), "X2") + "-T" + tostring(getbyte(wd6,3), "X2") + "]" );
if ( getbyte(wd6,0) != 0, out := out +
    "[" + tostring(getbyte(wd6,2), "X2") + ":" + tostring(getbyte(wd6,1), "X2") + "-T" + tostring(getbyte(wd6,0), "X2") + "]" );

return(out)
```

${tariff}s (Sa)

```taphome
var wd1 := modbusr(H, 0x33c, Uint32);
var wd2 := modbusr(H, 0x33c +2, Uint32);
var wd3 := modbusr(H, 0x33c +4, Uint32);
var wd4 := modbusr(H, 0x33c +6, Uint32);
var wd5 := modbusr(H, 0x33c +8, Uint32);
var wd6 := modbusr(H, 0x33c +10, Uint32);

var out := "";
if ( getbyte(wd1,1) != 0, out := out +
    "[" + tostring(getbyte(wd1,3), "X2") + ":" + tostring(getbyte(wd1,2), "X2") + "-T" + tostring(getbyte(wd1,1), "X2") + "]" );
if ( getbyte(wd2,2) != 0, out := out +
    "[" + tostring(getbyte(wd1,0), "X2") + ":" + tostring(getbyte(wd2,3), "X2") + "-T" + tostring(getbyte(wd2,2), "X2") + "]" );
if ( getbyte(wd3,3) != 0, out := out +
    "[" + tostring(getbyte(wd2,1), "X2") + ":" + tostring(getbyte(wd2,0), "X2") + "-T" + tostring(getbyte(wd3,3), "X2") + "]" );
if ( getbyte(wd3,0) != 0, out := out +
    "[" + tostring(getbyte(wd3,2), "X2") + ":" + tostring(getbyte(wd3,1), "X2") + "-T" + tostring(getbyte(wd3,0), "X2") + "]" );
if ( getbyte(wd4,1) != 0, out := out +
    "[" + tostring(getbyte(wd4,3), "X2") + ":" + tostring(getbyte(wd4,2), "X2") + "-T" + tostring(getbyte(wd4,1), "X2") + "]" );
if ( getbyte(wd5,2) != 0, out := out +
    "[" + tostring(getbyte(wd4,0), "X2") + ":" + tostring(getbyte(wd5,3), "X2") + "-T" + tostring(getbyte(wd5,2), "X2") + "]" );
if ( getbyte(wd6,3) != 0, out := out +
    "[" + tostring(getbyte(wd5,1), "X2") + ":" + tostring(getbyte(wd5,0), "X2") + "-T" + tostring(getbyte(wd6,3), "X2") + "]" );
if ( getbyte(wd6,0) != 0, out := out +
    "[" + tostring(getbyte(wd6,2), "X2") + ":" + tostring(getbyte(wd6,1), "X2") + "-T" + tostring(getbyte(wd6,0), "X2") + "]" );

return(out)
```

${tariff}s (Su)

```taphome
var wd1 := modbusr(H, 0x348, Uint32);
var wd2 := modbusr(H, 0x348 +2, Uint32);
var wd3 := modbusr(H, 0x348 +4, Uint32);
var wd4 := modbusr(H, 0x348 +6, Uint32);
var wd5 := modbusr(H, 0x348 +8, Uint32);
var wd6 := modbusr(H, 0x348 +10, Uint32);

var out := "";
if ( getbyte(wd1,1) != 0, out := out +
    "[" + tostring(getbyte(wd1,3), "X2") + ":" + tostring(getbyte(wd1,2), "X2") + "-T" + tostring(getbyte(wd1,1), "X2") + "]" );
if ( getbyte(wd2,2) != 0, out := out +
    "[" + tostring(getbyte(wd1,0), "X2") + ":" + tostring(getbyte(wd2,3), "X2") + "-T" + tostring(getbyte(wd2,2), "X2") + "]" );
if ( getbyte(wd3,3) != 0, out := out +
    "[" + tostring(getbyte(wd2,1), "X2") + ":" + tostring(getbyte(wd2,0), "X2") + "-T" + tostring(getbyte(wd3,3), "X2") + "]" );
if ( getbyte(wd3,0) != 0, out := out +
    "[" + tostring(getbyte(wd3,2), "X2") + ":" + tostring(getbyte(wd3,1), "X2") + "-T" + tostring(getbyte(wd3,0), "X2") + "]" );
if ( getbyte(wd4,1) != 0, out := out +
    "[" + tostring(getbyte(wd4,3), "X2") + ":" + tostring(getbyte(wd4,2), "X2") + "-T" + tostring(getbyte(wd4,1), "X2") + "]" );
if ( getbyte(wd5,2) != 0, out := out +
    "[" + tostring(getbyte(wd4,0), "X2") + ":" + tostring(getbyte(wd5,3), "X2") + "-T" + tostring(getbyte(wd5,2), "X2") + "]" );
if ( getbyte(wd6,3) != 0, out := out +
    "[" + tostring(getbyte(wd5,1), "X2") + ":" + tostring(getbyte(wd5,0), "X2") + "-T" + tostring(getbyte(wd6,3), "X2") + "]" );
if ( getbyte(wd6,0) != 0, out := out +
    "[" + tostring(getbyte(wd6,2), "X2") + ":" + tostring(getbyte(wd6,1), "X2") + "-T" + tostring(getbyte(wd6,0), "X2") + "]" );

return(out)
```

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), Day of Week

```taphome
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), Day

```taphome
var wd1 := (tobcd(HH1) << 24) + (tobcd(MI1) << 16) + (tobcd(T1) << 8) + tobcd(HH2);
var wd2 := (tobcd(MI2) << 24) + (tobcd(T2) << 16) + (tobcd(HH3) << 8) + tobcd(MI3);
var wd3 := (tobcd(T3) << 24) + (tobcd(HH4) << 16) + (tobcd(MI4) << 8) + tobcd(T4);
var wd4 := (tobcd(HH5) << 24) + (tobcd(MI5) << 16) + (tobcd(T5) << 8) + tobcd(HH6);
var wd5 := (tobcd(MI6) << 24) + (tobcd(T6) << 16) + (tobcd(HH7) << 8) + tobcd(MI7);
var wd6 := (tobcd(T7) << 24) + (tobcd(HH8) << 16) + (tobcd(MI8) << 8) + tobcd(T8);

if DoW = 0 or DoW = 1
    modbusw(H, 0x300, Uint32, wd1, wd2, wd3, wd4, wd5, wd6);
end
if DoW = 0 or DoW = 2
    modbusw(H, 0x30c, Uint32, wd1, wd2, wd3, wd4, wd5, wd6);
end
if DoW = 0 or DoW = 3
    modbusw(H, 0x318, Uint32, wd1, wd2, wd3, wd4, wd5, wd6);
end
if DoW = 0 or DoW = 4
    modbusw(H, 0x324, Uint32, wd1, wd2, wd3, wd4, wd5, wd6);
end
if DoW = 0 or DoW = 5
    modbusw(H, 0x330, Uint32, wd1, wd2, wd3, wd4, wd5, wd6);
end
if DoW = 0 or DoW = 6
    modbusw(H, 0x33c, Uint32, wd1, wd2, wd3, wd4, wd5, wd6);
end
if DoW = 0 or DoW = 7
    modbusw(H, 0x348, Uint32, wd1, wd2, wd3, wd4, wd5, wd6);
end
```

Slave ID

Parametry: Parameter1 (1–255 ID)

```taphome
modbusw(H, 0x02, Uint16, ID)
```

LCD Cycle time

Parametry: Time \[s] (1–120 t)

```taphome
modbusw(H, 0x0d, Uint16, t)
```

Proud L1 Proměnná Pouze ke čtení

Registr: H:22 Float Jednotka: A

Servisní atributy

|           |
|-----------|
| Napětí L1 |

Čtení

```taphome
MODBUSR(H, 22, Float)
```

Servisní atributy

L1 ${electric\_voltage} \[V]

```taphome
round(modbusr(H, 0x0e, Float)*10)/10
```

Proud L2 Proměnná Pouze ke čtení

Registr: H:24 Float Jednotka: A

Servisní atributy

|           |
|-----------|
| Napětí L2 |

Čtení

```taphome
MODBUSR(H, 24, Float)
```

Servisní atributy

L2 ${electric\_voltage} \[V]

```taphome
round(modbusr(H, 0x10, Float)*10)/10
```

Proud L3 Proměnná Pouze ke čtení

Registr: H:26 Float Jednotka: A

Servisní atributy

|           |
|-----------|
| Napětí L3 |

Čtení

```taphome
MODBUSR(H, 26, Float)
```

Servisní atributy

L3 ${electric\_voltage} \[V]

```taphome
round(modbusr(H, 0x12, Float)*10)/10
```

Fáze L1 Elektroměr Pouze ke čtení

Měřič energie fáze 1 — celková činná energie a činný výkon s napětím, proudem, jalový/zdánlivý výkon, účiník a obousměrné čítače energie

Registr: H:258 (readtotalconsumption), H:30 (readdemand) Float Jednotka: kWh / kW

Servisní atributy

|                        |
|------------------------|
| Napětí                 |
| Proud                  |
| Jalový výkon           |
| Zdánlivý výkon         |
| Účiník                 |
| Činná energie odběr    |
| Činná energie dodávka  |
| Jalová energie odběr   |
| Jalová energie dodávka |

Čtení celkové spotřeby

```taphome
MODBUSR(H, 0x102, Float)
```

Čtení odběru

```taphome
MODBUSR(H, 0x1e, Float)
```

Servisní atributy

${electric\_voltage} \[V]

```taphome
tostring(modbusr(H, 0x0e,Float), "F2")
```

${electric\_current} \[A]

```taphome
tostring(modbusr(H, 0x16,Float), "F2")
```

${reactive\_power} \[kVAr]

```taphome
tostring(modbusr(H, 0x26,Float), "F2")
```

${apparent\_power} \[kVA]

```taphome
tostring(modbusr(H, 0x2e,Float), "F2")
```

${power\_factor}

```taphome
tostring(modbusr(H, 0x36,Float), "F2")
```

${forward\_active\_energy} \[kWh]

```taphome
tostring(modbusr(H, 0x10a,Float), "F2")
```

${reverse\_active\_energy} \[kWh]

```taphome
tostring(modbusr(H, 0x112,Float), "F2")
```

${forward\_reactive\_energy} \[kVArh]

```taphome
tostring(modbusr(H, 0x122,Float), "F2")
```

${reverse\_reactive\_energy} \[kVArh]

```taphome
tostring(modbusr(H, 0x12a,Float), "F2")
```

Fáze L2 Elektroměr Pouze ke čtení

Registr: H:260 (readtotalconsumption), H:32 (readdemand) Float Jednotka: kWh / kW

Servisní atributy

|                        |
|------------------------|
| Napětí                 |
| Proud                  |
| Jalový výkon           |
| Zdánlivý výkon         |
| Účiník                 |
| Činná energie odběr    |
| Činná energie dodávka  |
| Jalová energie odběr   |
| Jalová energie dodávka |

Čtení celkové spotřeby

```taphome
MODBUSR(H, 0x104, Float)
```

Čtení odběru

```taphome
MODBUSR(H, 0x20, Float)
```

Servisní atributy

${electric\_voltage} \[V]

```taphome
tostring(modbusr(H, 0x10,Float), "F2")
```

${electric\_current} \[A]

```taphome
tostring(modbusr(H, 0x18,Float), "F2")
```

${reactive\_power} \[kVAr]

```taphome
tostring(modbusr(H, 0x28,Float), "F2")
```

${apparent\_power} \[kVA]

```taphome
tostring(modbusr(H, 0x30,Float), "F2")
```

${power\_factor}

```taphome
tostring(modbusr(H, 0x38,Float), "F2")
```

${forward\_active\_energy} \[kWh]

```taphome
tostring(modbusr(H, 0x10c,Float), "F2")
```

${reverse\_active\_energy} \[kWh]

```taphome
tostring(modbusr(H, 0x114,Float), "F2")
```

${forward\_reactive\_energy} \[kVArh]

```taphome
tostring(modbusr(H, 0x124,Float), "F2")
```

${reverse\_reactive\_energy} \[kVArh]

```taphome
tostring(modbusr(H, 0x12c,Float), "F2")
```

Fáze L3 Elektroměr Pouze ke čtení

Registr: H:262 (readtotalconsumption), H:34 (readdemand) Float Jednotka: kWh / kW

Servisní atributy

|                        |
|------------------------|
| Napětí                 |
| Proud                  |
| Jalový výkon           |
| Zdánlivý výkon         |
| Účiník                 |
| Činná energie odběr    |
| Činná energie dodávka  |
| Jalová energie odběr   |
| Jalová energie dodávka |

Čtení celkové spotřeby

```taphome
MODBUSR(H, 0x106, Float)
```

Čtení odběru

```taphome
MODBUSR(H, 0x22, Float)
```

Servisní atributy

${electric\_voltage} \[V]

```taphome
tostring(modbusr(H, 0x12,Float), "F2")
```

${electric\_current} \[A]

```taphome
tostring(modbusr(H, 0x1a,Float), "F2")
```

${reactive\_power} \[kVAr]

```taphome
tostring(modbusr(H, 0x2a,Float), "F2")
```

${apparent\_power} \[kVA]

```taphome
tostring(modbusr(H, 0x32,Float), "F2")
```

${power\_factor}

```taphome
tostring(modbusr(H, 0x3a,Float), "F2")
```

${forward\_active\_energy} \[kWh]

```taphome
tostring(modbusr(H, 0x10e,Float), "F2")
```

${reverse\_active\_energy} \[kWh]

```taphome
tostring(modbusr(H, 0x116,Float), "F2")
```

${forward\_reactive\_energy} \[kVArh]

```taphome
tostring(modbusr(H, 0x126,Float), "F2")
```

${reverse\_reactive\_energy} \[kVArh]

```taphome
tostring(modbusr(H, 0x12e,Float), "F2")
```

Tarif T1 Elektroměr Pouze ke čtení

Kumulativní čítač energie tarifu 1 — celková činná energie s rozpisem pro odběr/dodávku činné a jalové energie

Registr: H:304 (readtotalconsumption) Float Jednotka: kWh

Servisní atributy

|                        |
|------------------------|
| Činná energie odběr    |
| Činná energie dodávka  |
| Celková jalová energie |
| Jalová energie odběr   |
| Jalová energie dodávka |

Čtení celkové spotřeby

```taphome
MODBUSR(H, 0x130, Float)
```

Servisní atributy

${forward\_active\_energy} \[kWh]

```taphome
tostring(modbusr(H, 0x132,Float), "F2")
```

${reverse\_active\_energy} \[kWh]

```taphome
tostring(modbusr(H, 0x134,Float), "F2")
```

${total\_reactive\_energy} \[kVArh]

```taphome
tostring(modbusr(H, 0x136,Float), "F2")
```

${forward\_reactive\_energy} \[kVArh]

```taphome
tostring(modbusr(H, 0x138,Float), "F2")
```

${reverse\_reactive\_energy} \[kVArh]

```taphome
tostring(modbusr(H, 0x13a,Float), "F2")
```

Tarif T2 Elektroměr Pouze ke čtení

Registr: H:316 (readtotalconsumption) Float Jednotka: kWh

Servisní atributy

|                        |
|------------------------|
| Činná energie odběr    |
| Činná energie dodávka  |
| Celková jalová energie |
| Jalová energie odběr   |
| Jalová energie dodávka |

Čtení celkové spotřeby

```taphome
MODBUSR(H, 0x13c, Float)
```

Servisní atributy

${forward\_active\_energy} \[kWh]

```taphome
tostring(modbusr(H, 0x13e,Float), "F2")
```

${reverse\_active\_energy} \[kWh]

```taphome
tostring(modbusr(H, 0x140,Float), "F2")
```

${total\_reactive\_energy} \[kVArh]

```taphome
tostring(modbusr(H, 0x142,Float), "F2")
```

${forward\_reactive\_energy} \[kVArh]

```taphome
tostring(modbusr(H, 0x144,Float), "F2")
```

${reverse\_reactive\_energy} \[kVArh]

```taphome
tostring(modbusr(H, 0x146,Float), "F2")
```

Tarif T3 Elektroměr Pouze ke čtení

Registr: H:328 (readtotalconsumption) Float Jednotka: kWh

Servisní atributy

|                        |
|------------------------|
| Činná energie odběr    |
| Činná energie dodávka  |
| Celková jalová energie |
| Jalová energie odběr   |
| Jalová energie dodávka |

Čtení celkové spotřeby

```taphome
MODBUSR(H, 0x148, Float)
```

Servisní atributy

${forward\_active\_energy} \[kWh]

```taphome
tostring(modbusr(H, 0x14a,Float), "F2")
```

${reverse\_active\_energy} \[kWh]

```taphome
tostring(modbusr(H, 0x14c,Float), "F2")
```

${total\_reactive\_energy} \[kVArh]

```taphome
tostring(modbusr(H, 0x14e,Float), "F2")
```

${forward\_reactive\_energy} \[kVArh]

```taphome
tostring(modbusr(H, 0x150,Float), "F2")
```

${reverse\_reactive\_energy} \[kVArh]

```taphome
tostring(modbusr(H, 0x152,Float), "F2")
```

Tarif T4 Elektroměr Pouze ke čtení

Registr: H:340 (readtotalconsumption) Float Jednotka: kWh

Servisní atributy

|                        |
|------------------------|
| Činná energie odběr    |
| Činná energie dodávka  |
| Celková jalová energie |
| Jalová energie odběr   |
| Jalová energie dodávka |

Čtení celkové spotřeby

```taphome
MODBUSR(H, 0x154, Float)
```

Servisní atributy

${forward\_active\_energy} \[kWh]

```taphome
tostring(modbusr(H, 0x156,Float), "F2")
```

${reverse\_active\_energy} \[kWh]

```taphome
tostring(modbusr(H, 0x158,Float), "F2")
```

${total\_reactive\_energy} \[kVArh]

```taphome
tostring(modbusr(H, 0x15a,Float), "F2")
```

${forward\_reactive\_energy} \[kVArh]

```taphome
tostring(modbusr(H, 0x15c,Float), "F2")
```

${reverse\_reactive\_energy} \[kVArh]

```taphome
tostring(modbusr(H, 0x15e,Float), "F2")
```

Celková energie (3-fázová) Elektroměr Pouze ke čtení

Celkový 3-fázový systém — činná energie a odběr výkonu s frekvencí sítě, jalový/zdánlivý výkon, účiník a obousměrné čítače energie

Registr: H:256 (readtotalconsumption), H:28 (readdemand) Float Jednotka: kWh / kW

Servisní atributy

|                        |
|------------------------|
| Frekvence sítě         |
| Celkový jalový výkon   |
| Celkový zdánlivý výkon |
| Celkový účiník         |
| Činná energie odběr    |
| Činná energie dodávka  |
| Jalová energie odběr   |
| Jalová energie dodávka |

Čtení celkové spotřeby

```taphome
MODBUSR(H, 0x100, Float)
```

Čtení odběru

```taphome
MODBUSR(H, 0x1c, Float)
```

Servisní atributy

${grid\_frequency} \[Hz]

```taphome
tostring(modbusr(H, 0x14,Float), "F2")
```

${reactive\_power} \[kVAr]

```taphome
tostring(modbusr(H, 0x24,Float), "F2")
```

${apparent\_power} \[kVA]

```taphome
tostring(modbusr(H, 0x2c,Float), "F2")
```

${power\_factor}

```taphome
tostring(modbusr(H, 0x34,Float), "F2")
```

${forward\_active\_energy} \[kWh]

```taphome
tostring(modbusr(H, 0x108,Float), "F2")
```

${reverse\_active\_energy} \[kWh]

```taphome
tostring(modbusr(H, 0x110,Float), "F2")
```

${forward\_reactive\_energy} \[kVArh]

```taphome
tostring(modbusr(H, 0x120,Float), "F2")
```

${reverse\_reactive\_energy} \[kVArh]

```taphome
tostring(modbusr(H, 0x128,Float), "F2")
```

**Připojení:** Modbus RTU • 9600 baud• 8E1 • Slave ID: $\[SlaveId]

Možná vylepšení (9)

- H:280 Total Reactive Energy — Aggregate reactive energy counter (sum of all phases)
- H:282 L1 Reactive Energy — Per-phase reactive energy — only forward/reverse reactive exposed, not total per-phase
- H:284 L2 Reactive Energy — Per-phase reactive energy
- H:286 L3 Reactive Energy — Per-phase reactive energy
- H:0 Serial Number — 4-byte serial number, read-only
- H:4 Software Version — Firmware version as float
- H:6 Hardware Version — Hardware version as float
- H:11 Combined Code — Configuration code, R/W
- H:12 HOLIDAY-WEEKEND T — Holiday/weekend tariff assignment

## Parametry importu

Tyto hodnoty zadáte při importu XML.

| Ptá se v aplikaci | Výchozí       |
|-------------------|---------------|
| Slave ID          | `1`           |
| IP adresa         | `192.168.1.0` |

## Zdroje

- Orno OR-WE-517 Modbus Register Map
  
  2026-03-27
  
  [PDF](https://taphome.com/compatibility/devices/orno-or-we-517/manufacturer/Orno%20OR-WE-517.pdf)
- OR-WE-513/516/517 Installation Manual
  
  [files.orno.pl](https://files.orno.pl/manuals/OR-WE-513,516,517_manual_EN.pdf) 2026-03-27
  
  [PDF](https://taphome.com/compatibility/devices/orno-or-we-517/manufacturer/installation-manual.pdf)
- Home Assistant Community — OR-WE-517 Modbus Configuration
  
  [community.home-assistant.io](https://community.home-assistant.io/t/configuration-of-the-orno-or-we-517-three-phase-meter-waveshare-rs485-to-eth-converter/778679) 2026-03-27

Dokumenty výrobců jsou © jejich příslušných vlastníků. Poskytujeme je tak, jak je výrobce zveřejnil, pouze pro informaci.

## Související dokumentace

- [Modbus Integration](https://taphome.com/cs/compatibility/modbus-guide/)
- [Modbus](https://taphome.com/cs/docs/integration/modbus/)
- [Jednoduché nastavení pomocí šablon](https://taphome.com/cs/docs/integration/modbus/templates/)
- [Skripty Modbus a prefetch](https://taphome.com/cs/docs/script/modbus-scripts/)
- [Funkce Modbus](https://taphome.com/cs/docs/script/modbus/)
- [Datové typy Modbus](https://taphome.com/cs/docs/script/modbus-data-types/)

