---
title: "Interpoláció és küszöbértékek"
description: "A TapHome LINEAR függvény lineáris interpolációhoz (értékleképezés, fényerő-szabályozás, BOUNDS, INFINITE, STRICT módok) és a HYSTERESIS a fűtés küszöbérték-kapcsolásához smart rule-okban és szkriptekben."
url: "https://taphome.com/hu/docs/script/interpolation-and-thresholds/"
language: hu
lastmod: 2026-10-13
generator: hugo
ai:
  topics: ["linear-interpolation","hysteresis","value-mapping","thresholds","smart-rules"]
  questions: ["Hogyan használom a LINEAR függvényt értékek interpolálására a TapHome-ban?","Hogyan képezhetem le egy érzékelő értékét egy kimeneti tartományra a LINEAR függvénnyel?","Mit csinálnak a LINEAR függvény BOUNDS, INFINITE és STRICT paraméterei?","Hogyan viselkedik a LINEAR függvény, ha a bemenet a tartományon kívül esik?","Hogyan használhatom a HYSTERESIS függvényt egy fűtőberendezés vezérlésére a TapHome-ban?","Mi a különbség a LINEAR és a HYSTERESIS között?","Hogyan szűrhetek egy jelet hiszterézistartománnyal?","Hogyan működik a LINEAR függvény, és mire használható egy TapHome szkriptben?","Hogyan használhatom a LINEAR függvényt fényerő-szabályozásra — egy érték leképezésére a világítás fényerejére?"]
---

# Interpoláció és küszöbértékek

A LINEAR lineáris interpoláció és a HYSTERESIS küszöbérték-kapcsolás értékek leképezésére, világítás fényerő-szabályozására és fűtés vezérlésére a TapHome szkriptekben.

Utoljára frissítve: 2026-10-13

A `LINEAR` egy értéket egyenes mentén alakít át az egyik tartományból a másikba. A `HYSTERESIS` holtsávval vált két kimeneti érték között, így a kimenet nem billeg ide-oda egyetlen küszöbérték körül.

## LINEAR

A `LINEAR` egy értéket a bemeneti tartományból a kimeneti tartományba képez le a két ponton, az `in1` → `out1` és az `in2` → `out2` ponton átmenő egyenes mentén — például egy nyers regiszterértéket százalékra, vagy a nappali fényt a világítás fényerejére.

```text
LINEAR(value, in1, out1, in2, out2)
LINEAR(value, in1, out1, in2, out2, LinearType)
```

**Paraméterek**

| Név | Típus | Leírás |
|---|---|---|
| `value` | szám | Bemeneti érték. |
| `in1`, `out1` | szám | Első pont: az `in1` bemenet `out1` kimenetet ad. |
| `in2`, `out2` | szám | Második pont: az `in2` bemenet `out2` kimenetet ad. |
| `LinearType` | felsorolt típus, nem kötelező | Mi történik, ha a `value` az `in1` – `in2` tartományon kívül esik. |

| `LinearType` | Eredmény a bemeneti tartományon kívül |
|---|---|
| `DEFAULT` (vagy elhagyva) | Ugyanaz, mint a `BOUNDS`. A 2022.2-nél régebbi Core verziókon az `INFINITE` módhoz hasonlóan extrapolál. |
| `BOUNDS` | Az érték a tartományra korlátozódik, így az eredmény az `out1` és az `out2` között marad. |
| `STRICT` | `NaN`. |
| `INFINITE` | Az egyenes folytatódik (extrapoláció). |

![LINEAR function graph](https://taphome.com/documentation/script/linear-function.svg)

**Visszatérési érték** — `double`. A `NaN` bemenet `NaN` eredményt ad. Ha az `in1` egyenlő az `in2` értékkel, a meredekség nem számítható ki, és helyette `1` kerül felhasználásra.

**Példa — nyers érték átalakítása**

```taphome
# nyers regiszter 0 ... 1000 -> 0 ... 100 %
LINEAR(MODBUSR(H, 10, Uint16), 0, 0, 1000, 100);
VAR raw := 250;
LINEAR(raw, 0, 0, 500, 50);
# Result: 25
```

A `LinearType` hatása a 11-es bemenetre a 0 → 400 és a 10 → 2000 pontokkal:

```taphome
# a tartományra korlátozva
LINEAR(11, 0, 400, 10, 2000, BOUNDS);
# Result: 2000
# az egyenes a tartományon túl folytatódik
LINEAR(11, 0, 400, 10, 2000, INFINITE);
# Result: 2160
# a tartományon kívül NaN az eredmény
LINEAR(11, 0, 400, 10, 2000, STRICT);
# Result: NaN
```

**Példa — fényerő-szabályozás: egy érték leképezése a világítás fényerejére**

A TapHome-ban a dimmer szintje 0-tól 1-ig terjed (0 – 100 %). Ez a képlet a világítást sötétben teljes fényerőről 300 lx nappali fénynél kikapcsolt állapotig szabályozza; a `BOUNDS` világosabb vagy sötétebb mérésnél is 0 és 1 között tartja a szintet:

```taphome
# Va a nappali fény érzékelője lx-ben, az eredmény a dimmer szintje
LINEAR(Va, 0, 1, 300, 0, BOUNDS);
# Result: 0.5 at 150 lx, 0 at 300 lx and more
```

Fényerő-szabályozási görbe, amely soha nem megy 10 % alá — a 0 és 1 közötti `x` csúszkaértéket a 0.1 – 1 tartományra képezi le:

```taphome
LINEAR(x, 0, 0.1, 1, 1);
```

Ugyanez működik a szellőztetésnél is: a `LINEAR(co2, 400, 0, 1200, 1)` 400 ppm-nél 0, 800 ppm-nél 0.5 (50 %), 1 200 ppm-nél pedig 1 értéket ad.

**Lásd még** — [HYSTERESIS](https://taphome.com/hu/docs/script/interpolation-and-thresholds/#hysteresis), [Kerekítés és véletlenszámok](https://taphome.com/hu/docs/script/rounding-and-random/).

## HYSTERESIS

A `HYSTERESIS` a `lowerState` értéket adja vissza, ha az érték a `lowerThreshold` szintre csökken, az `upperState` értéket, ha az `upperThreshold` szintre emelkedik, és a `previousState` értéket, amíg a kettő között marad.

```text
HYSTERESIS(value, upperThreshold, lowerThreshold, upperState, lowerState, previousState)
```

A hiszterézis úgy szűri a jelet, hogy a kimenet lassabban reagál, mint a bemenet: a termosztát akkor kapcsolja be a fűtést, ha a hőmérséklet egy érték alá csökken, de csak akkor kapcsolja ki, ha egy másik érték fölé emelkedik.

**Paraméterek**

| Név | Típus | Leírás |
|---|---|---|
| `value` | szám | Mért érték, például hőmérséklet. |
| `upperThreshold` | szám | Az az érték, amelyen vagy amely felett `upperState` a visszatérési érték. Nagyobbnak kell lennie a `lowerThreshold` értéknél. |
| `lowerThreshold` | szám | Az az érték, amelyen vagy amely alatt `lowerState` a visszatérési érték. |
| `upperState`, `lowerState` | szám | Az eredmények a két küszöbértéknél — bármilyen számok, nem csak 0 és 1. |
| `previousState` | szám | Az eredmény, amíg az érték a küszöbértékek között van, általában az előző kimenet. Nem lehet `Null`. |

**Visszatérési érték** — `double`: `upperState`, `lowerState` vagy `previousState`. A küszöbértéktől legfeljebb 0.005-tel eltérő érték a küszöbérték elérésének számít. A `NaN` érték a `previousState` értéket adja vissza.

**Példa — fűtés**

A helyiség 20 °C-on tartása ±2 °C hiszterézissel: a fűtés bekapcsol, ha a hőmérséklet 18 °C-ra csökken, és kikapcsol, ha 22 °C-ra emelkedik. A Szkript smart rule-ban a fűtés kapcsolóját olvasod és írod is:

```taphome
# Te a helyiség hőmérséklete, Sw a fűtés kapcsolója
Sw := HYSTERESIS(Te, 22, 18, 0, 1, Sw);
```

A Képlet smart rule-ban az előző eredmény a `LastState`, amely az első futáskor és szkripthiba után `Null`:

```taphome
HYSTERESIS(Te, 22, 18, 0, 1, IF(ISNULL(LastState), 0, LastState));
```

**Hibák**

- *Upper threshold must be higher than lower threshold* — ha olyan szkriptet mentesz, amelynek küszöbértékei rögzített számok.
- *Upper threshold (X) must be higher than lower threshold (Y)* — futás közben, ha a küszöbértékek változókból származnak.

**Lásd még** — [Szkriptek a smart rule-okban](https://taphome.com/hu/docs/script/smart-rules/), [Tartály hiszterézis alapú töltésvezérlése](https://taphome.com/hu/docs/configuration/hysteresis-equation/).
