Asystent AI
Domoticz sumowanie ...
 
Powiadomienia
Wyczyść wszystko

Domoticz Domoticz sumowanie liczników energii

21 Wpisów
4 Użytkownicy
0 Reactions
3,165 Wyświetleń
(@adamdudek)
Wpisów: 56
Pomocny
Autor tematu
Translate
English
Spanish
French
German
Italian
Portuguese
Russian
Chinese
Japanese
Korean
Arabic
Hindi
Dutch
Polish
Turkish
Vietnamese
Thai
Swedish
Danish
Finnish
Norwegian
Czech
Hungarian
Romanian
Greek
Hebrew
Indonesian
Malay
Ukrainian
Bulgarian
Croatian
Slovak
Slovenian
Serbian
Lithuanian
Latvian
Estonian
 
[#3042]

Witam

Potrzebuje z sumować trzy liczniki energii PZEM004T podłączone do trzech klimatyzatorów tak a żebym od razu widział ile dziennie zużywają mi prądu wszystkie trzy klimatyzatory razem. 

utworzyłem zdarzenie które powinno mi zsumować trzy pierwsze pozycje (327,328,330)  i  wypluć sumę w pozycji 331 ale pewnie mam kilka błędów w tej formuje. ktoś może podpowiedzieć mi co należy zmienić aby mi to zaczęło liczyć, bo sam niestety nie jestem w stanie rozgryźć.   Nie bardzo wiem co wpisać w formule zamiast RFXMeter, bo to na pewno  jest nie poprawne   

liczniki złuzycia

 

formuła

 

błedy

 


 
Dodane : 18/08/2022 1:52 pm
isom
 isom
(@isom)
Wpisów: 5319
Szef wszystkich szefów Moderator Zasłużony dla Forum, Donator 2K19, Donator 2K20
Translate
English
Spanish
French
German
Italian
Portuguese
Russian
Chinese
Japanese
Korean
Arabic
Hindi
Dutch
Polish
Turkish
Vietnamese
Thai
Swedish
Danish
Finnish
Norwegian
Czech
Hungarian
Romanian
Greek
Hebrew
Indonesian
Malay
Ukrainian
Bulgarian
Croatian
Slovak
Slovenian
Serbian
Lithuanian
Latvian
Estonian
 

@adamdudek chcesz aktualizować licznik, którego wartość powinna cały czas rosnąć , tak jak w liczniku zakładu energetycznego, wyłączysz klimy i będą bzdury. Użyj CustomSensor jako (331)

Jak chcesz zbierać wartości dzienne to powinno być domoticz.devices(327).counterToday

a aktualizowany czujnik domoticz.devices(331).updateCustomSensor


 
Dodane : 19/08/2022 8:45 am
(@bobrow)
Wpisów: 386
Weteran
Translate
English
Spanish
French
German
Italian
Portuguese
Russian
Chinese
Japanese
Korean
Arabic
Hindi
Dutch
Polish
Turkish
Vietnamese
Thai
Swedish
Danish
Finnish
Norwegian
Czech
Hungarian
Romanian
Greek
Hebrew
Indonesian
Malay
Ukrainian
Bulgarian
Croatian
Slovak
Slovenian
Serbian
Lithuanian
Latvian
Estonian
 

Witam,

mam podobny temat. Dwa lata temu wymieniłem podlicznik do pompy ciepła na elektroniczny. W domoticzu mam dane z ciepłomierza i z tego nowego podlicznika-potrzebuję uaktualnić obliczanie SCOP pompy ciepła (średnia sprawność) o zużycie grzałki CWU (załącza się na 10 min przy wzroście napięcia z  fotowoltaiki).

Czy poniższy zapis jest ok ?

return {
on = {
devices = {'Energia PC kWh'}
},
logging = {
level = domoticz.LOG_DEBUG, -- zmien na domoticz.LOG_ERROR, gdy skrypt bedzie Ok
marker = "Energia PC kWh"
},
execute = function(domoticz, device)
local p = tonumber(domoticz.devices('PC zużycie kWh').state)
local k = tonumber(domoticz.devices('Energia PC kWh').state)
local w = domoticz.devices('SCOP od 04012020')
local z = tonumber(domoticz.devices('Grzałka CWU zużycie').state)
-- Obliczenia
local w = domoticz.utils.round( (k - z - 29838) / (p - 28)  ,2)
domoticz.log('SCOP od 04012020' , domoticz.LOG_INFO)
w.updateCustomSensor('SCOP od 04012020')
end
}

    Chodzi mi głównie o ten zapis (k - z - 29838).

No i czy zapis dot logów jest ok

domoticz.log('SCOP od 04012020' , domoticz.LOG_INFO)
w.updateCustomSensor('SCOP od 04012020')

Dodam tylko ,że błędami nie sypie -ale "tajemniczo" nic się nie zmienia...SCOP taki sam 


 
Dodane : 20/08/2022 1:54 pm
isom
 isom
(@isom)
Wpisów: 5319
Szef wszystkich szefów Moderator Zasłużony dla Forum, Donator 2K19, Donator 2K20
Translate
English
Spanish
French
German
Italian
Portuguese
Russian
Chinese
Japanese
Korean
Arabic
Hindi
Dutch
Polish
Turkish
Vietnamese
Thai
Swedish
Danish
Finnish
Norwegian
Czech
Hungarian
Romanian
Greek
Hebrew
Indonesian
Malay
Ukrainian
Bulgarian
Croatian
Slovak
Slovenian
Serbian
Lithuanian
Latvian
Estonian
 

Tajemniczy to jest cały ten wpis, :)) Nic nie wiadomo o urządzeniach a na dodatek nadużywany jest local 


 
Dodane : 20/08/2022 2:34 pm
(@bobrow)
Wpisów: 386
Weteran
Translate
English
Spanish
French
German
Italian
Portuguese
Russian
Chinese
Japanese
Korean
Arabic
Hindi
Dutch
Polish
Turkish
Vietnamese
Thai
Swedish
Danish
Finnish
Norwegian
Czech
Hungarian
Romanian
Greek
Hebrew
Indonesian
Malay
Ukrainian
Bulgarian
Croatian
Slovak
Slovenian
Serbian
Lithuanian
Latvian
Estonian
 

Jednak pojawiły się błędy :

2022-08-20 14:28:02.421 Error: dzVents: Error: (3.1.7) Energia PC kWh: An error occurred when calling event handler SCOP od 04012020
2022-08-20 14:28:02.421 Error: dzVents: Error: (3.1.7) Energia PC kWh: ...z/scripts/dzVents/generated_scripts/SCOP od 04012020.lua:17: attempt to index a number value (local 'w')

 
Dodane : 20/08/2022 2:35 pm
(@bobrow)
Wpisów: 386
Weteran
Translate
English
Spanish
French
German
Italian
Portuguese
Russian
Chinese
Japanese
Korean
Arabic
Hindi
Dutch
Polish
Turkish
Vietnamese
Thai
Swedish
Danish
Finnish
Norwegian
Czech
Hungarian
Romanian
Greek
Hebrew
Indonesian
Malay
Ukrainian
Bulgarian
Croatian
Slovak
Slovenian
Serbian
Lithuanian
Latvian
Estonian
 
Dodane przez: @isom

Tajemniczy to jest cały ten wpis, :)) Nic nie wiadomo o urządzeniach a na dodatek nadużywany jest local 

Dane p,k,z działaja prawidłowo -są odczyty w tych samych jednostkach (kWh).

Co jest nieprawidłowo ? Local użyłem wg Twojego pomysłu-jak można to zmienić ,to ok...tylko nie wiem jak i dlaczego 😮 


 
Dodane : 20/08/2022 3:02 pm
(@bobrow)
Wpisów: 386
Weteran
Translate
English
Spanish
French
German
Italian
Portuguese
Russian
Chinese
Japanese
Korean
Arabic
Hindi
Dutch
Polish
Turkish
Vietnamese
Thai
Swedish
Danish
Finnish
Norwegian
Czech
Hungarian
Romanian
Greek
Hebrew
Indonesian
Malay
Ukrainian
Bulgarian
Croatian
Slovak
Slovenian
Serbian
Lithuanian
Latvian
Estonian
 

Zrobiłem jeszcze korektę , zobaczymy...

Dodałem scop jako w-nie wiem czy to dobrze rozumiem

return {
on = {
devices = {'Energia PC kWh'}
},
logging = {
level = domoticz.LOG_DEBUG, -- zmien na domoticz.LOG_ERROR, gdy skrypt bedzie Ok
marker = "Energia PC kWh"
},
execute = function(domoticz, device)
local p = tonumber(domoticz.devices('PC zużycie kWh').state)
local k = tonumber(domoticz.devices('Energia PC kWh').state)
local w = domoticz.devices('SCOP od 04012020')
local z = tonumber(domoticz.devices('Grzałka CWU zużycie').state)
-- Obliczenia
local scop = domoticz.utils.round( (k - z - 29838) / (p - 28)  ,2)
domoticz.log('SCOP pompy'..scop..'SCOP' , domoticz.LOG_INFO)
w.updateCustomSensor(scop)
end
}

 
Dodane : 20/08/2022 3:07 pm
isom
 isom
(@isom)
Wpisów: 5319
Szef wszystkich szefów Moderator Zasłużony dla Forum, Donator 2K19, Donator 2K20
Translate
English
Spanish
French
German
Italian
Portuguese
Russian
Chinese
Japanese
Korean
Arabic
Hindi
Dutch
Polish
Turkish
Vietnamese
Thai
Swedish
Danish
Finnish
Norwegian
Czech
Hungarian
Romanian
Greek
Hebrew
Indonesian
Malay
Ukrainian
Bulgarian
Croatian
Slovak
Slovenian
Serbian
Lithuanian
Latvian
Estonian
 
Dodane przez: @bobrow

Local użyłem wg Twojego pomysłu

Jak robisz coś bezmyślnie, to nie powołuj się proszę na moje pomysły :))


 
Dodane : 20/08/2022 3:11 pm
(@bobrow)
Wpisów: 386
Weteran
Translate
English
Spanish
French
German
Italian
Portuguese
Russian
Chinese
Japanese
Korean
Arabic
Hindi
Dutch
Polish
Turkish
Vietnamese
Thai
Swedish
Danish
Finnish
Norwegian
Czech
Hungarian
Romanian
Greek
Hebrew
Indonesian
Malay
Ukrainian
Bulgarian
Croatian
Slovak
Slovenian
Serbian
Lithuanian
Latvian
Estonian
 

Local jest tylko po to ,że by nie używać długich nazw-jeśli jest jakieś więcej zadanie , to nie wiem...

Nie wiem co jest nie tak z używaniem local ?

Ot , i tyle 


 
Dodane : 20/08/2022 3:13 pm
isom
 isom
(@isom)
Wpisów: 5319
Szef wszystkich szefów Moderator Zasłużony dla Forum, Donator 2K19, Donator 2K20
Translate
English
Spanish
French
German
Italian
Portuguese
Russian
Chinese
Japanese
Korean
Arabic
Hindi
Dutch
Polish
Turkish
Vietnamese
Thai
Swedish
Danish
Finnish
Norwegian
Czech
Hungarian
Romanian
Greek
Hebrew
Indonesian
Malay
Ukrainian
Bulgarian
Croatian
Slovak
Slovenian
Serbian
Lithuanian
Latvian
Estonian
 
Dodane przez: @bobrow

Local jest tylko po to ,że by nie używać długich nazw

To prawda , więc dlaczego skoro raz użyłeś local w = xxxxxx, potem w obliczeniach znów to powielasz ? przecież już wiadomo jaka to nazwa :))


 
Dodane : 20/08/2022 3:25 pm
(@bobrow)
Wpisów: 386
Weteran
Translate
English
Spanish
French
German
Italian
Portuguese
Russian
Chinese
Japanese
Korean
Arabic
Hindi
Dutch
Polish
Turkish
Vietnamese
Thai
Swedish
Danish
Finnish
Norwegian
Czech
Hungarian
Romanian
Greek
Hebrew
Indonesian
Malay
Ukrainian
Bulgarian
Croatian
Slovak
Slovenian
Serbian
Lithuanian
Latvian
Estonian
 
Dodane przez: @isom
Dodane przez: @bobrow

Local jest tylko po to ,że by nie używać długich nazw

To prawda , więc dlaczego skoro raz użyłeś local w = xxxxxx, potem w obliczeniach znów to powielasz ? przecież już wiadomo jaka to nazwa :))

Ale w tym poprawionym zapisie jest poprawione to.

Zrobiłem małą modyfikację i co ciekawe skrypt zadziałał tj zmieniła się wartość SCOP i nie ma błędów (na razie).

return {
on = {
devices = {'Energia PC kWh'}
},
logging = {
level = domoticz.LOG_DEBUG, -- zmien na domoticz.LOG_ERROR, gdy skrypt bedzie Ok
marker = "Energia PC kWh"
},
execute = function(domoticz, device)
local p = tonumber(domoticz.devices('PC zużycie kWh').state)
local k = tonumber(domoticz.devices('Energia PC kWh').state)
local w = domoticz.devices('SCOP od 04012020')
local z = tonumber(domoticz.devices('Grzałka CWU zużycie').state)
-- Obliczenia
local scop = domoticz.utils.round( (k - z - 29838) / (p - 28)  ,2)
domoticz.log('SCOP pompy'..scop..'SCOP' , domoticz.LOG_INFO)
w.updateCustomSensor(scop)
end
}

Nie rozumiem tego zapisu :

domoticz.log('SCOP pompy'..scop..'SCOP' , domoticz.LOG_INFO)

Chodzi mi to konkretnie : ('SCOP pompy'..scop..'SCOP'

Wzorowałem się (tak , na małpę-przyznaję bez bicia) na podobnym zapisie-czy w tym nawiasie nie może być sam scop ?

Dlaczego są z przodu te opisy i z tyłu ?


 
Dodane : 20/08/2022 3:50 pm
(@bobrow)
Wpisów: 386
Weteran
Translate
English
Spanish
French
German
Italian
Portuguese
Russian
Chinese
Japanese
Korean
Arabic
Hindi
Dutch
Polish
Turkish
Vietnamese
Thai
Swedish
Danish
Finnish
Norwegian
Czech
Hungarian
Romanian
Greek
Hebrew
Indonesian
Malay
Ukrainian
Bulgarian
Croatian
Slovak
Slovenian
Serbian
Lithuanian
Latvian
Estonian
 

Ok-dokopałem się do informacji odnośnie opisu w logach-chodzi o pomocnicze treści.

Jeszcze jedna sprawa-zauważyłem ,że mam przekłamanie przy przeliczaniu Gj na kWh.

Wygląda jakby zapis nie mnożył wartości po przecinku -tak to wygląda :

local p = tonumber(dz.devices('ciepłomierz energia').state)
local w = dz.devices('Energia PC kWh')
-- Obliczenia
local kWh = dz.utils.round( p * 277.77 ,2)

Wartość p jest z dwoma  miejscami po przecinku-działanie mnoży jakby tylko wartości całkowite. Czy jest na to jakiś sposób ? 


 
Dodane : 20/08/2022 5:44 pm
(@bobrow)
Wpisów: 386
Weteran
Translate
English
Spanish
French
German
Italian
Portuguese
Russian
Chinese
Japanese
Korean
Arabic
Hindi
Dutch
Polish
Turkish
Vietnamese
Thai
Swedish
Danish
Finnish
Norwegian
Czech
Hungarian
Romanian
Greek
Hebrew
Indonesian
Malay
Ukrainian
Bulgarian
Croatian
Slovak
Slovenian
Serbian
Lithuanian
Latvian
Estonian
 

Niestety nie znalazłem rozwiązania-więc zacząłem robić eksperymenty...

Najpierw przemnożyłem x100 odczyt z ciepłomierza o wartości 308,85Gj...wynik wyszedł jak należy tj 30885.

Zmieniłem zatem zapis w przeliczniku-jak domoticz "nie widzi" wartości po przecinku , to pomnożyłem x100 , a potem podzieliłem...i jest ok. Nie potrafię zrobić jak należy ,zrobiłem jak mogłem.

Oto działający zapis :

return {
on = {
devices = {'ciepłomierz energia'}
},
logging = {
level = domoticz.LOG_DEBUG, -- zmien na domoticz.LOG_ERROR, gdy skrypt bedzie Ok
marker = "przelicznik kWh"
},
execute = function(dz, device)
local p = tonumber(dz.devices('ciepłomierz energia').state)
local w = dz.devices('Energia PC kWh')
-- Obliczenia
local kWh = dz.utils.round( (p * 100 * 277.77) / 100 ,2)
dz.log('PC Gj na kWh' .. kWh.. 'kWh' , dz.LOG_INFO)
w.updateCustomSensor(kWh)

end
}

   Ok, a teraz idę na winko i jakiś film. O!

Tymczasem 


 
Dodane : 20/08/2022 9:33 pm
isom
 isom
(@isom)
Wpisów: 5319
Szef wszystkich szefów Moderator Zasłużony dla Forum, Donator 2K19, Donator 2K20
Translate
English
Spanish
French
German
Italian
Portuguese
Russian
Chinese
Japanese
Korean
Arabic
Hindi
Dutch
Polish
Turkish
Vietnamese
Thai
Swedish
Danish
Finnish
Norwegian
Czech
Hungarian
Romanian
Greek
Hebrew
Indonesian
Malay
Ukrainian
Bulgarian
Croatian
Slovak
Slovenian
Serbian
Lithuanian
Latvian
Estonian
 
Dodane przez: @bobrow

local kWh = dz.utils.round( (p * 100 * 277.77) / 100 ,2)

Dlaczego taki bezsensowny zapis ? Chyba wiem "Małpa" rządzi a nie głowa :)) . Co robi dz.utils.round ? Poczytaj 


 
Dodane : 21/08/2022 11:19 am
(@bobrow)
Wpisów: 386
Weteran
Translate
English
Spanish
French
German
Italian
Portuguese
Russian
Chinese
Japanese
Korean
Arabic
Hindi
Dutch
Polish
Turkish
Vietnamese
Thai
Swedish
Danish
Finnish
Norwegian
Czech
Hungarian
Romanian
Greek
Hebrew
Indonesian
Malay
Ukrainian
Bulgarian
Croatian
Slovak
Slovenian
Serbian
Lithuanian
Latvian
Estonian
 

Nie mogę nic konkretnego znaleźć-poproszę o link.

Znalazłem tylko info na zagranicznym forum -round zaokrągla.

Nie wiem jaka komenda będzie lepsza od round


 
Dodane : 21/08/2022 1:39 pm
(@waldekgr)
Wpisów: 12
Bywalec
Translate
English
Spanish
French
German
Italian
Portuguese
Russian
Chinese
Japanese
Korean
Arabic
Hindi
Dutch
Polish
Turkish
Vietnamese
Thai
Swedish
Danish
Finnish
Norwegian
Czech
Hungarian
Romanian
Greek
Hebrew
Indonesian
Malay
Ukrainian
Bulgarian
Croatian
Slovak
Slovenian
Serbian
Lithuanian
Latvian
Estonian
 

Witam niby proste a jednak, cos ciągle źle robię

chciałbym na 1 kafelku zsumować 2 liczniki które mam od 2 falowników

mianowicie 1 kafelek produkcja z 2 kafelków na domoticzu - General kWh

na 2 produkcja dzienne z obu liczników - General kWh

poproszę o pomoc

 


 
Dodane : 13/06/2023 6:37 pm
isom
 isom
(@isom)
Wpisów: 5319
Szef wszystkich szefów Moderator Zasłużony dla Forum, Donator 2K19, Donator 2K20
Translate
English
Spanish
French
German
Italian
Portuguese
Russian
Chinese
Japanese
Korean
Arabic
Hindi
Dutch
Polish
Turkish
Vietnamese
Thai
Swedish
Danish
Finnish
Norwegian
Czech
Hungarian
Romanian
Greek
Hebrew
Indonesian
Malay
Ukrainian
Bulgarian
Croatian
Slovak
Slovenian
Serbian
Lithuanian
Latvian
Estonian
 

Dodane przez: @waldekgr

cos ciągle źle robię

Wstaw to co robisz, nie ma się co wstydzić każdy kiedyś zaczynał. Zobaczymy czy da się coś poprawić 


 
Dodane : 13/06/2023 10:30 pm
(@waldekgr)
Wpisów: 12
Bywalec
Translate
English
Spanish
French
German
Italian
Portuguese
Russian
Chinese
Japanese
Korean
Arabic
Hindi
Dutch
Polish
Turkish
Vietnamese
Thai
Swedish
Danish
Finnish
Norwegian
Czech
Hungarian
Romanian
Greek
Hebrew
Indonesian
Malay
Ukrainian
Bulgarian
Croatian
Slovak
Slovenian
Serbian
Lithuanian
Latvian
Estonian
 

return {

on = {
devices = { 575 }
},

execute = function(domoticz, item)
local fotowoltaikadach = domoticz.devices(575)
local fotowoltaikaogrod = domoticz.devices(847)
local totalfotowoltaika = domoticz.devices(856)

totalfotowoltaika.updateElectricity(
fotowoltaikadach.WhActual + fotowoltaikaogrod.WhActual,
fotowoltaikadach.WhToday + fotowoltaikaogrod.WhToday
)

end

}

w logach domoticza

Error: EventSystem: Lua script suma licznikow did not return a commandArray
poproszę o pomoc by to zadziałało, skryptu sam nie pisalem jedynie przerobiłem
tak czy inaczej nie umiem juz dalej zrobić.
 

 
Dodane : 14/06/2023 9:17 pm
isom
 isom
(@isom)
Wpisów: 5319
Szef wszystkich szefów Moderator Zasłużony dla Forum, Donator 2K19, Donator 2K20
Translate
English
Spanish
French
German
Italian
Portuguese
Russian
Chinese
Japanese
Korean
Arabic
Hindi
Dutch
Polish
Turkish
Vietnamese
Thai
Swedish
Danish
Finnish
Norwegian
Czech
Hungarian
Romanian
Greek
Hebrew
Indonesian
Malay
Ukrainian
Bulgarian
Croatian
Slovak
Slovenian
Serbian
Lithuanian
Latvian
Estonian
 

Dodane przez: @waldekgr

skryptu sam nie pisalem jedynie przerobiłem

Dodaj te przerobine wypociny jako skrypt dzVents, a nie LUA i zobacz co będzie. 


 
Dodane : 14/06/2023 11:15 pm
(@waldekgr)
Wpisów: 12
Bywalec
Translate
English
Spanish
French
German
Italian
Portuguese
Russian
Chinese
Japanese
Korean
Arabic
Hindi
Dutch
Polish
Turkish
Vietnamese
Thai
Swedish
Danish
Finnish
Norwegian
Czech
Hungarian
Romanian
Greek
Hebrew
Indonesian
Malay
Ukrainian
Bulgarian
Croatian
Slovak
Slovenian
Serbian
Lithuanian
Latvian
Estonian
 

Działa! piwo mailem? Dziękuje, taki niby banał a jednak brakowało mi pomysłu. Jeszcze jednak prośba, co dopisać i gdzie by skrypt miał wykonanie co 1 min


 
Dodane : 15/06/2023 4:15 pm
Strona 1 / 2
Udostępnij: