Na stronie ESPEasy
https://espeasy.readthedocs.io/en/latest/Rules/Rules.html
jest taki gotowy kod. Potrzebuję trochę wsparcia.
Chcę stworzyć urządzenie, które zliczy mi ilość Kwh ciepła wyprodukowane przez pompę ciepła, która pobiera moc elektryczną w Watach.
W Domoticzu nie wiem czy jest jakieś urządzenie, które to wykonane, ale chyba też potrzebny jest skrypt.
Swoją drogą ciekawy jestem jak to wygląda np. w Home Asistancie, w którym chcę wylądować, czy też się trzeba tak męczyć ?
DO brzegu. Jak zrozumiałem:
Muszę stworzyć dummy device o nazwie "Power" z pozycjami:
1. sekundy ilośc miejsc po przecinku 0, "Seconds"
2. PowerUsed : 0,0001
a var#4, var#3 ? czy mam zrobić takie w dummy device? A zmienne nr 1 i 5 ? int#1 i int#5
gdzie tu jest moc urządzenia w watach-moc źródłowa ?
Mowa jest o GPIO-14. Ja mam PZEM-004T działa po RX TX.
Czy sobie dać spokój ?
// Used variables: 1,3,4,5
On GPIO#14 Do // GPIO-14 = D5 on Wemos/NodeMCU ESP8266 boards
If %eventvalue1%=0 // On state
Let,1,%syssec_d% // Store current nr of seconds of today in var#1
Else // Off state
Event,CalcPower // Don't queue
Event,TransmitPower // Send out to receiver
Endif
Let,5,!%eventvalue1% // 0 = On, to invert on/off state change to: Let,5,%eventvalue1%
LogEntry,"Power [int#5#O#C], measured: [Power#Seconds] sec. [Power#PowerUsed#d.4] kWh"
Endon
On CalcPower Do
TaskValueSet,Power,Seconds,[Power#Seconds]+%syssec_d%-[int#1] // Add run time to Power#Seconds
Let,4,[Power#Seconds]*[var#3] // Wattseconds
If [var#4]>0
TaskValueSet,Power,PowerUsed,[var#4]/3600000 // Wattseconds to kWh
Endif
TaskRun,Power
Endon
On TransmitPower Do
// Send value of [Power#Seconds] and [Power#PowerUsed] to wherever you need it, adjust as needed
PostToHTTP,192.168.1.20,8080,/receiver.php,'','%lcltime% !!! Total RunningTime = [Power#Seconds] Seconds, PowerUsed = [Power#PowerUsed] kWh'
Endon
On Clock#Time=All,00:00 Do // At midnight
// Include power used until midnight
If [Plugin#GPIO#PinState#14]=0 // Still on?
Event,CalcPower // Don't queue
Endif
Let,1,0 // Reset start time
Event,TransmitPower // Send out remainder of the day
TaskValueSet,Power,Seconds,0 // Reset total counter
TaskValueSet,Power,PowerUsed,0 // Reset total power
Endon
On System#Boot Do
Monitor,gpio,14 // Generate an event when the GPIO state changes
Let,3,250 // Wattage of the load, adjust as needed
Endon
Jak masz pzem to ten zestaw reguł nie jest dla Ciebie.
Ten kod mierzy, jak długo urządzenie podłączone do GPIO 14 jest włączone, liczy na tej podstawie zużycie energii elektrycznej, zapisuje to w logach, wysyła na serwer po http i resetuje liczniki każdego dnia o północy. Takie coś można użyć gdy masz np grzałkę o znanej mocy 500W i chcesz żeby policzyć ile zużyła przez dzień.
Tyle i aż tyle, wiec twój pzem ma się do tego nijak 🙂

