Háromfázisú fűtőpatron fokozatvezérlés 

Bizonyos rendszerekben – például háromfázisú HMV tartályoknál – nem mindig szükséges a teljes fűtőteljesítmény. Előfordul, hogy a tartály csak kismértékben hűl, és ilyenkor elég 1 fázist bekapcsolni. Máskor – például amikor egy 4–5 fős család egymás után fürdik – szükség van a teljes 3 fázisos teljesítményre.

 

Miért nem jó mindig a 3 fázist bekapcsolni?

Egy 150 liter körüli tartálynál a 3× teljesítmény sokszor túl sok:

Ez felesleges és káros ki-be kapcsolási ciklusokat okoz.

 

Másik felhasználói példa – „házi készítésű elektromos kazán”

Egy felhasználó egy nagyobb csőbe szerelt 3×1500 W fűtőpatront használ „kazánként”. Mivel ez valójában három külön patron egybe építve, akkor is használható, ha nincs háromfázisú bekötése – csak megfelelő vezeték és biztosíték kell.

A cél:

Ez teljesen logikus igény, de annyira speciális, hogy nem építettük bele a DSVT_12 vezérlőbe.
Viszont DzVents szkripttel könnyen megoldható


Előkészítés – mit kell létrehozni Domoticzban?

1. A fázisok kapcsolói

Ha a DSVT_12-t használod, akkor már létezik az első fázis (HMV kapcsoló).
Emellé hozz létre még:

Mindhárom legyen normál on/off eszköz.

2. A szükséges hőmérséklet értékek


Keresd meg:

Ez legyen látható, mert a DzVents csak a látható eszközöket tudja figyelni. Kattints a zöld nyil (eszköz aktiválása) gombra.


3. Új dzVents szkript létrehozása


Menü: Beállítások → Több lehetőség → Felhasználói szkriptek 

Választhatsz bármilyen dzVents sablont, mert teljesen ki fogod törölni, helyére az általunk adott script kerül.


A szkript testreszabása

A szkript elején lesz egy lista:

devices = { 12, 34, 21 }

Ide kell beírni:

A szkript ezeket figyeli: ha bármelyik változik, újraszámolja, melyik fűtőszál menjen.

 

Hőmérséklet határok és hiszterézis

A szkriptben lesz egy blokk például így:

local delta2 = 0.5 -- ennyivel legyen hidegebb a 2. fázishoz
local
delta3 = 1.0 -- ennyivel legyen hidegebb a 3. fázishoz 
local
hisz = 0.2 -- ki-be kapcsolás elkerülése

Ezeket szabadon állíthatod:


A szkript működése röviden

  1. Lekéri a tartály hőmérsékletét és a célhőmérsékletet.

  2. Számolja, hogy hány fokkal van alatta:

    • ha csak kicsit → csak 1. fázis

    • ha jobban → 1 + 2. fázis

    • ha sokkal → 1 + 2 + 3. fázis

  3. Figyeli a hiszterézist, hogy ne kapcsolgassa feleslegesen, egyszerű, átlátható


A szkriptet letültheted innen (harom_fazis.lua), vagy másold ki az itt következő részt:

 

return {
    on = {
        devices = { 1758, 2262, 2264 } -- valtozas figyelt idx
    },

    execute = function(domoticz, device)

        ------------------------------------------------------------------
        -- PARAMETEREK
        ------------------------------------------------------------------
        local IDX_MASTER  = 1758 -- 1 fazis kapcsolo idx
        local IDX_TEMP    = 2262 -- tartaly aktualis homero idx
        local IDX_TARGET  = 2264 -- cel homero (legyen aktiv!) idx
        local IDX_PHASE2  = 2479 -- 2 fazis kapcsolo idx
        local IDX_PHASE3  = 2480 -- 3 fazis kapcsolo idx

        local DIFF_HIGH   = 6    -- 3. fazis bekapcsolasi diff
        local DIFF_MID    = 3    -- 2. fazis bekapcsolasi diff
        local HYSTERESIS  = 1     -- hiszterezis

        ------------------------------------------------------------------
        -- ESZKOZOK
        ------------------------------------------------------------------
        local master = domoticz.devices(IDX_MASTER)

        local tempDevice   = domoticz.devices(IDX_TEMP)
        local temp = tempDevice.temperature

        local targetDevice = domoticz.devices(IDX_TARGET)
        local target = targetDevice.temperature  -- TEMP tipus → temperature!

        local phase2 = domoticz.devices(IDX_PHASE2)
        local phase3 = domoticz.devices(IDX_PHASE3)

        ------------------------------------------------------------------
        -- MASTER OFF → minden fazis off
        ------------------------------------------------------------------
        if master.state == 'Off' then
            phase2.switchOff()
            phase3.switchOff()
            domoticz.log("Master OFF, fazisok kikapcsolva", domoticz.LOG_INFO)
            return
        end

        ------------------------------------------------------------------
        -- DIFFERENCIA
        ------------------------------------------------------------------
        local diff = target - temp
        domoticz.log("Diff = " .. diff, domoticz.LOG_INFO)

        local function kell_be(th)
            return diff > (th + HYSTERESIS)
        end

        local function kell_ki(th)
            return diff < (th - HYSTERESIS)
        end

        ------------------------------------------------------------------
        -- 3. FAZIS (DIFF_HIGH)
        ------------------------------------------------------------------
        if phase3.state == 'Off' then
            if kell_be(DIFF_HIGH) then
                phase3.switchOn()
                domoticz.log("3. fazis BE", domoticz.LOG_INFO)
            end
        else
            if kell_ki(DIFF_HIGH) then
                phase3.switchOff()
                domoticz.log("3. fazis KI", domoticz.LOG_INFO)
            end
        end

        ------------------------------------------------------------------
        -- 2. FAZIS (DIFF_MID)
        ------------------------------------------------------------------
        if phase2.state == 'Off' then
            if kell_be(DIFF_MID) then
                phase2.switchOn()
                domoticz.log("2. fazis BE", domoticz.LOG_INFO)
            end
        else
            if kell_ki(DIFF_MID) then
                phase2.switchOff()
                domoticz.log("2. fazis KI", domoticz.LOG_INFO)
            end
        end

        ------------------------------------------------------------------
        -- AUTOMATIKUS OFF, ha egyik feltetel sem teljesul
        -- (= diff < DIFF_MID-HYSTERESIS)
        ------------------------------------------------------------------
        if diff < (DIFF_MID - HYSTERESIS) then
            if phase2.state == 'On' or phase3.state == 'On' then
                phase2.switchOff()
                phase3.switchOff()
                domoticz.log("Diff kicsi, extra fazisok KI", domoticz.LOG_INFO)
            end
        end

    end
}

Telepítés, beállítás és konfiguráció