Obliczanie zuzycia ...
 
Powiadomienia
Wyczyść wszystko

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

17 Wpisów
5 Użytkownicy
0 Reactions
2,904 Wyświetleń
(@marlon)
Wpisów: 136
Pomocny
Autor tematu
 

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

 
Dodane : 19/02/2019 12:27 am
(@maras)
Wpisów: 194
Weteran Donator 2K22 Donator 2K19
 

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

 
Dodane : 19/02/2019 9:33 am
(@_marss_)
Wpisów: 173
Pomocny Donator 2K21 Donator 2K18
 

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

 
Dodane : 19/02/2019 3:07 pm
(@marlon)
Wpisów: 136
Pomocny
Autor tematu
 

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 

 
Dodane : 19/02/2019 10:31 pm
(@_marss_)
Wpisów: 173
Pomocny Donator 2K21 Donator 2K18
 

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? 

 
Dodane : 20/02/2019 11:27 am
(@marlon)
Wpisów: 136
Pomocny
Autor tematu
 

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 

 

 
Dodane : 20/02/2019 12:08 pm
emiks
(@emiks)
Wpisów: 9
Bywalec
 

@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.

 
Dodane : 08/10/2019 7:01 pm
(@marlon)
Wpisów: 136
Pomocny
Autor tematu
 

@emiks

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

 
Dodane : 10/10/2019 11:45 pm
emiks
(@emiks)
Wpisów: 9
Bywalec
 
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.

 
Dodane : 21/10/2019 8:40 pm
(@_marss_)
Wpisów: 173
Pomocny Donator 2K21 Donator 2K18
 

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
 
Dodane : 22/10/2019 12:03 pm
(@_marss_)
Wpisów: 173
Pomocny Donator 2K21 Donator 2K18
 

Finalnie wygląda to tak:

 
Dodane : 22/10/2019 12:26 pm
emiks
(@emiks)
Wpisów: 9
Bywalec
 

@_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ć 🙂

 
Dodane : 23/10/2019 3:23 pm
(@_marss_)
Wpisów: 173
Pomocny Donator 2K21 Donator 2K18
 

@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!

 
Dodane : 23/10/2019 3:35 pm
emiks
(@emiks)
Wpisów: 9
Bywalec
 

@_marss_

Faktycznie, dzięki 😀

 
Dodane : 23/10/2019 7:05 pm
(@marlon)
Wpisów: 136
Pomocny
Autor tematu
 

@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
 
Dodane : 25/10/2019 8:24 pm
matulekpl
(@matulekpl)
Wpisów: 71
Kontrybutor
 

@_marss_

jakim urządzeniem odczytujesz impulsy? i czym wysyłasz je do raspberry??

chciałbym zrobić takie samo cuś, ale mój licznik jest ponad 50m od domu...

 
Dodane : 11/12/2019 1:01 pm
(@_marss_)
Wpisów: 173
Pomocny Donator 2K21 Donator 2K18
 

@matulekpl To ja mam bliżej, bo tylko około 6 metrów i czytam od razu na Raspberry. Fototransystor, wzmacniacz operacyjny z histerezą i GPIO.

 
Dodane : 11/12/2019 3:15 pm
Udostępnij: