witam czy mzona prosic o pomoc w obliczeniach delty w domoticzu
dodałem taki skrypt
return {
on = {
devices = {
12
}
},
execute = function(domoticz, device)
domoticz.devices(32).updateTemperature(domoticz.devices(12).temperature - domoticz.devices(13).temperature)
end
}
utworzyłem wirtualny czujnik temp idx32
dwa czujniki temp idx 12 i idx 13
dodałem do dzVents device i cisza nic mi nie pokazuje
czy o czyms zapomniałem?
dziekuje z góry
Pozdrawiam.
dodam ze w ustawieniach domoticz mam zaznaczony dzVents
dystrybucja ubuntu 18.04
domoticz
wersja 2021.1 13745
dzVents 3.1.8
@nototojazda10 co masz w logach domoticz po dodaniu tego skryptu ? Czy w Konfiguracja- Ustawienia- Inne masz aktywne to okno
mam zaznaczoną tą funkcje
w logu pokazuje mi tylko właczniki nic po za nimi
w logu pokazuje mi tylko właczniki nic po za nimi
Wstaw ten skrypt zmieniając nazwy na swoje ( podałem Twoje idx) , a czujnik Temp Test to twój czujnik z idx 32 . Jak nie będzie działał to wstaw tu logi z domoticz
return { on = { devices = { 'Temp dwanaście' } -- nazwa czujnika idx 12 }, logging = { level = domoticz.LOG_DEBUG, marker = 'Delta z dwóch temp', }, execute = function(dz, item) local Temp1 = dz.devices('Temp dwanaście').temperature -- nazwa idx 12 local Temp2 = dz.devices('Temp trzynaście').temperature -- nazwa idx 13 local decimals = 2 local Tempavg = dz.utils.round(Temp1 - Temp2 ) , decimals dz.devices('Temp Test').updateTemperature(Tempavg) dz.log('Delta wyliczona temperatura: ' .. Tempavg, dz.LOG_INFO) end }
@isom czy ma to wyglądac w ten sposób
Delta _czujnik_temp idx 32
Woda_Cwu_Góra idx 12
Woda_Cwu_Doł idx 13
return {
on = { devices = { Woda_Cwu_Góra } -- nazwa czujnika idx 12
},
logging =
{
level = domoticz.LOG_DEBUG,
marker = 'Delta z dwóch temp'
},
execute = function(dz, item)
local Temp1 = dz.devices(Woda_Cwu_Góra).temperature -- nazwa idx 12
local Temp2 = dz.devices(Woda_Cwu_Doł).temperature -- nazwa idx 13
local decimals = 2
local Tempavg = dz.utils.round((Temp1 - Temp2 ) / 2 , decimals)
dz.devices(Delta _czujnik_temp).updateTemperature(Tempavg)
dz.log('Delta wyliczona temperatura: ' .. Tempavg, dz.LOG_INFO)
end
}
Nazwy są ok , ale ja zrobiłem błąd , sprawdź poprawiony skrypt wyżej zmiana to
local Tempavg = dz.utils.round(Temp1 - Temp2 ) , decimals
Nic to nie zmieniło niestety dalej głucho w logu tez cisza i to mnie zastanawia? ze tak dodam jakis tam skrypt termostatu działa normalnie bez problemu w dzVents a tutaj cisza.
@nototojazda10 co to jest za czujnik idx 12 ? Co go aktualizuje ? Jeśli ten czujnik działa i pokazuje na bieżąco swoją temperaturę, a jak twierdzisz inne skrypty dzvents działają , to w logach powinny być chociaż błędy . Nie może być NIC , bo skrypt wymusza zapis w logach.
NIC może być tylko gdy ten czujnik idx 12 nie działa.
Jest to czujnik ds18b20 stoi na esp8266 odświeża co 2 sec w Domoticzu tez wartość się zmienia co chwile bez problemu
Nie mam w logu niestety nic poza wlasnie przelacznikami z termostatu i jakieś z powiadomień,
Jest to czujnik ds18b20 stoi na esp8266 odświeża co 2 sec w Domoticzu
Pomijam bezsens odpytywania co 2 sek czujnik zasobnika CWU , czy jest szansa że ta woda tak szybko zmieni temperaturę ? Takie częste odczyty to dobry krok w stronę szybkiego zawieszenia się serwera . Ile jeszcze takich odczytów bez sensu masz w swoim systemie ?
Ale do rzeczy , masz tu poniżej skrypt który musi działać, albo wywalić błędy w logach. Skrypt się wykonuje co minutę i wklej go dokładnie w takiej postaci , bo z tego co widzę w nazwach usunąłeś cudzysłowy a to jest obowiązkowe.
return { on = { timer = {'every minute'} -- skrypt się wykonuje co minutę }, logging = { level = domoticz.LOG_DEBUG, marker = 'Delta dwóch temp' }, execute = function(dz, item) local Temp1 = dz.devices('Woda_Cwu_Góra').temperature local Temp2 = dz.devices('Woda_Cwu_Doł').temperature local decimals = 2 local Tempavg = dz.utils.round(Temp1 - Temp2 ) , decimals dz.devices('Delta _czujnik_temp').updateTemperature(Tempavg) dz.log('Delta wyliczona temperatura: ' .. Tempavg, dz.LOG_INFO) end }
niestety jest dalej głucho i w logu nic dodatkowego nie ma
wiec od początku moze:
i tak to wygłada jeden idx się zmienił ale oczywiscie mam to na uwadze, podam jeszcze skrypt ktory mi działa dla termostatu
-- Skrypt termostat zaczerpnąłem z sieci więc nie jest mojego autorstwa
local heating_probe = 'Woda_Cwu_Doł'
local thermostat_setpoint = 'Termostat'
local heating_unit = 'Grzanie'
-- Use when a combined sensor (e.g. temperature and humidity) is used
-- Replace in "otherdevices[heating_probe]" to "otherdevices[heating_probe]" by "temp_only" (in the 2nd "if" and in the "elseif".
-- Remove the -- in the next two lines:
--local naartekst = (tostring (otherdevices[heating_probe]))
--local temp_only = (string.sub(naartekst,1,4)) -- the digits (1,4) do point out what characters of the string are needed.
local hysteresis = 4
commandArray = {}
-- loop through all the devices
for deviceName,deviceValue in pairs(otherdevices) do
if (deviceName== thermostat_setpoint ) then
if tonumber(deviceValue) < tonumber(otherdevices[heating_probe]-hysteresis) then
if (otherdevices[heating_unit] == "On") then
-- commandArray['SendNotification']='Heating is off'
commandArray[heating_unit]='Off'
print("Heating is Off")
end
elseif tonumber(deviceValue) > tonumber(otherdevices[heating_probe]+hysteresis) then
if (otherdevices[heating_unit] == "Off") then
commandArray[heating_unit]='On'
-- commandArray['SendNotification']='Heating is on'
print("Heating is On")
end
end
end
end
-- loop through all the variables
for variableName,variableValue in pairs(uservariables) do
end
return commandArray
wcześniej zle napisałem bo to mam uruchomione w lua jednak. Przepraszam teraz dopiero sprawdziłem.
to moze faktycznie sa jakies bugi w tej wersji, to moze dla lua coś sprobować.
A mogę zobaczyć listę dodanych zdarzeń ? Np ten skrypt zapisałeś jako Script#1 , a reszta jak wygląda ? Strefa czasowa w domoticz ustawiona na swoją ? Jak wygląda okno w Ustawienia > System > Sieci lokalne (bez nazwy użytkownika/hasła)
Temat do zamknięcia problem stał po stronie dystrybucji zrobiłem aktualizacje i wszystko jest OK skrypty działają no i LOGI w koncu tez są.
jeśli chodzi o odpytywania czujników jakie nominalne ustawienia Pan proponuje.
Dziekuje za pomoc.
@nototojazda10 po pierwsze proponuję zmienić w skrypcie
level = domoticz.LOG_DEBUG,
na level = domoticz.LOG_ERROR,
Skrypt nie będzie zaśmiecał logów
Odczyty z czujników trzeba dobrać do potrzeb, np bojlera nie wychłodzimy w 2 min nawet o stopień , na zewnątrz temp nie zmieni się w 5 min , a temp spalin w kotle może skoczyć w kilka sekund. Do tego potrzeba tylko trochę wyobraźni