Forum Smart'ny Dom

Obliczanie zuzycia ...
 

Obliczanie zuzycia energi/koszt wiedzac czas pracy urzadzenia - OH 2.3  

  RSS
marlon
(@marlon)
Majster

Witam,

Czy ktos moze przerabial ten temat jak obliczyc zuzycie energi w kWh i jej kalkulowac koszt wiedzac czas pracy danego urzadzenia. Mam jedno urzadzenie o mocy 2kW i fajnie by bylo obliczac  zuzycie energi w ciagu dnia jak rowniez jej koszt. Energia nie tanieje  

Dodam tylko ze czas pracy urzadzenia mam juz w sitemap wyswietlony.

Pozdrawiam

Cytuj
Dodane : 19/02/2019 12:27 am
maras
(@maras)
Majster Donator 2019

Najlepiej chyba będzie użyć jakiegoś ESP z pomiarem zużycia: Sonoff pow, Shelly, blitzwolf bw-shp6

OdpowiedzCytuj
Dodane : 19/02/2019 9:33 am
_MarSs_
(@_marss_)
Majster Donator 2018

Jeśli urządzenie ma charakter rezystancyjny (np. bojler, piec konwekcyjny, grzałka wody, itp) oraz nie ma przełącznika mocy, to wystarczy raz zmierzyć realny pobór mocy (czasami to co na tabliczce odbiega od rzeczywistości) i przemnożyć razy czas pracy w godzinach. Mnożąc razy koszt energii (około 70gr za kWh) otrzymasz w miarę zbliżony koszt eksploatacji. Oczywiście dobowo występują wahania napięcia z sieci, a to wpływa wprost na moc pobieraną (wyższe napięcie = większa moc), ale przy założeniu, że nie potrzebujesz bardzo dokładnych pomiarów, to powinno wystarczyć.

Upraszczając wyjdzie: 2 * 0,7 /3600

koszt w złotówkach = 0,00039 * czas w sekundach

openHAB + RPi3

OdpowiedzCytuj
Dodane : 19/02/2019 3:07 pm
marlon
(@marlon)
Majster

Witam.

Nie potrzebuje bardzo dokładnych pomiarów wiec przybliżone dane były by ok. Narazie nie planuje zakładać czujników zużycia energi na każde urządzenie więc najlepszym rozwiązaniem będzie metoda kalkulacji. 

Czy ktoś na forum jest w stanie pomóc w napisaniu rule (lub script in JS) do obliczenia zużycia/kosztu energii ?

Pozdrawiam 

OdpowiedzCytuj
Dodane : 19/02/2019 10:31 pm
_MarSs_
(@_marss_)
Majster Donator 2018

Może napisz czego oczekujesz. Jak często chcesz aktualizować odczyty? Czy w ogóle ma być odczyt live, czy tylko dane archiwalne? Czy chcesz jakieś okresy, za dzień, za tydzień, miesięczne zużycie? 

openHAB + RPi3

OdpowiedzCytuj
Dodane : 20/02/2019 11:27 am
marlon
(@marlon)
Majster

Za każdym razem gdy załącza się urządzenie to zliczam czas i wyświetlam go w sitemap - uaktualniam co minutę. Te dane się zeruja codziennie o północy. 

Takze w tej chwili już mam informacje o czasie pracy urządzenia. 

Potrzebuje rule lub script aby obliczyć zużyta moc przez to urządzenie jeśli np urządzenie pracuje przez 10 minut tylko. Jak pisałes powyżej proste zadanie matematyczne powinno dać rady. Eksperymentuje z rules ale narazie nie udało mi się zrobić to poprawnie miałem nadzieje ze może ktoś przerabiał ten temat tutaj. 

Pozdrawiam 

 

OdpowiedzCytuj
Dodane : 20/02/2019 12:08 pm
emiks
(@emiks)
Młodzik

@marlon

Doszedłeś do czegoś w temacie czy porzuciłeś ? bo jestem właśnie w tym miejscu i szukam jakichś informacji jak to rozwiązać najlepiej.

OdpowiedzCytuj
Dodane : 08/10/2019 8:01 pm
marlon
(@marlon)
Majster

@emiks

Tak, znalazlem rozwiazanie, przypomnij jutro to napisze jak to zrobilem.

OdpowiedzCytuj
Dodane : 11/10/2019 12:45 am
emiks
(@emiks)
Młodzik
Dodane przez: @marlon

@emiks

Tak, znalazlem rozwiazanie, przypomnij jutro to napisze jak to zrobilem.

@marlon

Trochę po czasie ale lepiej późno niż wcale.Jeśli mógłbyś się podzielić swym rozwiązaniem to odpowiednie miejsce do tego dla potomnych.

OdpowiedzCytuj
Dodane : 21/10/2019 9:40 pm
_MarSs_
(@_marss_)
Majster Donator 2018

To może ja dla przykładu przedstawię swoje rozwiązanie.

Całość to licznik energii elektrycznej na podstawie impulsów odczytywanych z licznika zakładu energetycznego. Licznik ten generuje 2500 impulsów na 1kWh (czyli 1 impuls to 0,0004kWh). Pojawienie się impulsu rejestruję na jednym z GPIO, zliczam w zmiennej impulsy i sprawdzam czas totalTime od poprzedniego last_change. Jeśli czas jest większy niż 2 sekundy, to wykonuję obliczenia, a jeśli mniejszy, to nic nie robię. Ma to na celu obsługę dużych obciążeń gdy impulsy mogą się pojawiać kilkanaście razy na sekundę, a nam przecież nie potrzeba danych o chwilowym poborze energii częściej niż co 2 sekundy.

Wyjściowo z tej reguły mam:

  • chwilowy pobór energii wysyłany do itemu PoborMocy, 
  • ilość energii zużytą danego dnia do itemu KWHdzis
  • ilość energii zużytą danego miesiąca do itemu KWHtenmiesiac
  • dodatkowe liczniki poszczególnych impulsów do celów debugowania GPIOlicznik i GPIOliczmies

Na koniec dnia przepisuję dzienny pobór energii i resetuję o północy, a na koniec miesiąca to samo z miesięcznym.

Wiem, że poniższy kod nie jest optymalny, ale powstawał w długim okresie czasu i jest tu spory bajzel, ale działa bardzo dobrze.

var impulsy = 0

rule "licznik"
when
Item GPIO_BUTTON changed to OPEN
then
var last_change = GPIOdlugosc.state as DecimalType
var totalTime = ((now.millis - last_change) / 1000)
impulsy = impulsy + 1
if (totalTime > 2) {
var newValue = (GPIOlicznik.state as DecimalType).intValue()
var newValuemies = (GPIOliczmies.state as DecimalType).intValue()
var totalEnergy = (1440 * impulsy)/ totalTime
newValue = newValue + impulsy
newValuemies = newValuemies + impulsy
GPIOlicznik.postUpdate(newValue)
GPIOliczmies.postUpdate(newValuemies)
GPIOdlugosc.postUpdate(now.millis)
PoborMocy.postUpdate(totalEnergy)
KWHdzis.postUpdate(newValue * 0.0004)
KWHtenmiesiac.postUpdate(newValuemies * 0.0004)
impulsy = 0
}
end

rule "reset dzienny"
when
Time cron "0 0 0 * * ?"
then
KWHdzienny.postUpdate(KWHdzis.state as DecimalType)
KWHdzis.postUpdate(0)
GPIOlicznik.postUpdate(0)
end

rule "reset miesieczny"
when
Time cron "1 0 0 1 * ?"
then
KWHmiesieczny.postUpdate(KWHtenmiesiac.state as DecimalType)
KWHtenmiesiac.postUpdate(0)
GPIOliczmies.postUpdate(0)
end

openHAB + RPi3

OdpowiedzCytuj
Dodane : 22/10/2019 1:03 pm
_MarSs_
(@_marss_)
Majster Donator 2018

Finalnie wygląda to tak:

openHAB + RPi3

OdpowiedzCytuj
Dodane : 22/10/2019 1:26 pm
emiks
(@emiks)
Młodzik

@_marss_  W tym temacie chodzi o wyliczenie zużycia energii na podstawie włączonych urządzeń które mają stały pobór prądu np lampka w sypialni która ma żarówkę 9W nie zmienia to faktu iż twojego rozwiązania mogę tylko po zazdrościć 🙂

OdpowiedzCytuj
Dodane : 23/10/2019 4:23 pm
_MarSs_
(@_marss_)
Majster Donator 2018

@emiks

Ależ ja to doskonałe rozumiem. Kilka postów wyżej napisałem, że dla grzejnika o mocy 2000W:

koszt w złotówkach = 0,00039 * czas w sekundach

W załączonej procedurze przedstawiłem jak czytać i przechowywać czas w sekundach oraz jak przeliczać to na wartości.

Taka różnica, że triggerem procedury dla jednego urządzenia będzie zmiana stanu przełącznika go włączającego. 

Jeśli zmienił stan na ON, to weź czas aktualny i zapisz do itemu. Jeśli na OFF, to weź czas, odejmij poprzedni i przemnożyć przez liczbę. Gotowe!

openHAB + RPi3

OdpowiedzCytuj
Dodane : 23/10/2019 4:35 pm
emiks
(@emiks)
Młodzik

@_marss_

Faktycznie, dzięki 😀

OdpowiedzCytuj
Dodane : 23/10/2019 8:05 pm
marlon
(@marlon)
Majster

@emiks

Tak jak kolega @_MarSs_ pisal wyzej, jest to dosc prosta kalkulacja. Jesli znasz czas pracy urzadzenia w minutach (w moim wypadku to Farelka_Czas_Dzien) to wystarczy pomnozyc ten czas przez cene jednego kilowata (Prad) i podzielic przez 60.

Moze nie jest to jakas super dokladna metoda ale z zupelnoscia mi wystarcza. Chcialem jeszcze dodac ze moja farelka jest ustawiona na moc 1kW.

val Prad = 0.55 // cena 1kWh

rule "Koszt zuzycia farelki - Dzienny"
when
    Item Farelka_Czas_Dzien changed
then
    Farelka_Zuzycie_Koszt_Dzienny.postUpdate((Farelka_Czas_Dzien.state as DecimalType * Prad)/60)
end
OdpowiedzCytuj
Dodane : 25/10/2019 9:24 pm
Udostępnij:



Udostępnij
  • 1
    Share

Proszę Zaloguj Się lub Zarejestruj