dzVents – skrypt informujący o większym zużyciu prądu, gdy nie ma nas w domu

Aloha!

Od pewnego czasu miałem w głowie (w sumie jeden z podstawowych jakie powinienem napisać!) skrypt w dzVents:
sprawdzam zużycie prądu w domu i gdy jest zbyt duże o zadanych godzinach, w danych dniach – wyślij mi e-mail. W dniach tygodnia i w godzinach o których przeważnie jesteśmy w pracy.

Dlaczego? A może zapomniałem o włączonym żelazku? A może włączyło się coś, co nie powinno?

Z tego to oto powodu system powinien:
– od poniedziałku do piątku w godzinach 8:15 – 15:00 sprawdzić zużycie prądu
– jeżeli jest wyższe niż 400 Watt ma mi wysłać e-mail z powiadomieniem

— Author: Adam Sobczak
— Date created: 2018-10-18
— Script takes current energy reading, and when it’s bigger than suggested on weekdays between 8:15 – 15:00 – notifies user.
return {
    on = {
        [’timer’] = {’every 15 minutes between 8:15 and 15:00 on mon,tue,wed,thu,fri’}
    },
    execute = function(domoticz)
    local Energy = domoticz.devices(’OWL’).usage
    local EnergyLimit = 400

    function round(num, numDecimalPlaces)
          local mult = 10^(numDecimalPlaces or 0)
          return math.floor(num * mult + 0.5) / mult
        end
   
    if (Energy > EnergyLimit) then
            domoticz.notify(’Energia’, 'Uwaga, zużycie energii większe niż zwykle: ’ ..round(Energy,1) .. ’!’, domoticz.PRIORITY_NORMAL)
        end
    end
}

Tyle. Proste i działa. Powodzenia przy próbach zrobienia tego w Blockly 😉

6 komentarzy do “dzVents – skrypt informujący o większym zużyciu prądu, gdy nie ma nas w domu”

  1. Fajnie byłoby to rozbudować o pomiar średniej z kwadransa. Przy maksymalnie niekorzystnych wiatrach, żelazko może akurat wyłączać się w czasie pomiaru i nie wykryje tego. Zatem mierzenie co 15 minut średniej byłoby optymalne. Jednak mechanizmy Domoticza nie pozwalają na analizę średniej wprost z czujników. Trzeba zatem ustawić skrypt np. na co 5 minut i za każdym razem zapisywać zużycie do tablicy history. Późnie dopiero wyliczać średnią i ustawić warunek. Więcej zabawy, ale skuteczność lepsza. Ja dziś zostawiłem na cały dzień podgrzewacz do kanapek 🙂 To mnie zmobilizowało do oskryptowania czujnika zużycia.

    Odpowiedz
  2. Ja zrobiłem to tak:

    return {
    on = {
    timer = { 'every minute' },
    },
    data = { energia = { history = true, maxItems = 30 },
    powiadom = { history = true, maxItems = 1 }},
    execute = function(domoticz, device)
    local Licznik = domoticz.devices(680).usage — Odczyt licznika, u mnie IDX 680
    local limit = 320 — limit kW do alarmu
    domoticz.data.energia.add(Licznik)
    local avg = domoticz.data.energia.avgSince('00:30:00')
    if avg > limit then
    if domoticz.data.powiadom.getOldest().time.minutesAgo >= 60 then — Tylko jedno powiadomienie na godzinę
    domoticz.data.powiadom.add(Licznik)
    domoticz.notify('PRAD!!!', 'DUŻE ZUŻYCIE PRĄDU!!!',domoticz.PRIORITY_NORMAL,nil,nil,domoticz.NSS_TELEGRAM)
    end
    end
    end
    }

    Odpowiedz
  3. 35 year old Engineer I Rollin Dilger, hailing from MacGregor enjoys watching movies like "Corrina, Corrina" and Sand art. Took a trip to Works of Antoni Gaudí and drives a Expedition. zobacz te witryne

    Odpowiedz

Dodaj komentarz