Domoticz się wysypu...
 
Powiadomienia
Wyczyść wszystko

Domoticz się wysypuje

Adam Dudek
(@adamdudek)
Stażysta

Cześć
Ponad rok temu zacząłem zabawę z Domoticzem, ponieważ potrzebowałem systemu do obsługi ogrzewania CO. .
Przez ponad rok poprogramowałem sobie i potestowałem różne pluginy itp.
Kilka miesięcy temu już wiedziałem co tak naprawdę jest mi potrzebne w Domoticzu i postawiłem go na nowo postawić tak a żeby Domoticz miał tylko to czego potrzebuje i działał stabilnie. Od postawienia go nie przeprowadzam żadnych aktualizacji i nie grzebie w nim, bo chce żeby był maksymalnie stabilny a system Domoticz i tak co kilkanaście dni się zawiesza.

Co ciekawe jak wchodzi w stan  exited to trzyma go tak cały dzień. Restart jak widać na załączonym screenie nie pomaga. 

Po zrestartowaniu usługi Domoticz ma status running tylko przez 2-3 sekundy po restarcie usługi  i znów jest  exited

Teraz najciekawsze bo nie jestem w stanie go uruchomić przez cały dzien ale wystarczy, że minie nocka (kilkukrotnie tak się stało) (trudno powiedzieć która dokładnie godzina) i jak tylko się obudzę rano i zrestartuje usługę poleceniem "sudo /etc/init.d/domoticz.sh restart" Domoticz magicznie wstaje i działa bez problemów znów przez kilka dni. Ktoś może mi podpowiedzieć co może być przyczyną lub łopatologicznie podpowiedzieć gdzie szukać przyczyny jakieś logi tylko z wytłumaczeniem jak się do nich dostać 

 

 

Domoticz
Cytuj
Autor tematu Dodane : 10/06/2022 10:09 pm
adrian
(@adrian)
Prezes Zasłużony dla Forum, Patron Strony

przy okazji dołączam się, że u mnie jest podobnie. Co ileś dni staje. Przy czym, ja używam DOmoticz tylko do testowania AFE więc nie przeszkadza mi, ale fakt jest faktem - staje. Teraz sprawdziłem i mam to jak próbuje go otworzyć. W tym domoticz w zasadzie nic nie ma. Ani jeden reguły. Tylko MQTT i kilka bloczków do AFE

image
OdpowiedzCytuj
Dodane : 10/06/2022 10:14 pm
isom
 isom
(@isom)
Prezes Moderator Zasłużony dla Forum, Donator 2K19, Donator 2K20

Nie mogę potwierdzić że tak się dzieje, bo u mnie pracuje bardzo stabilnie i bez restartów . Co do logów to kolego @adamdudek w pliku 

sudo nano /etc/init.d/domoticz.sh

proponuję odkomentować ( usunąć znak #) w zaznaczonym wierszu 

1

Spowoduje to ciągłe zapisywanie logów do pliku TXT w lokalizacji  /tmp/domoticz.txt

Oczywiście jeśli domoticz będzie działał należy przynajmniej  co drugi dzień wykasować te logi żeby ten plik nie rósł w nieskończoność , jest jednak duża szansa że zapiszą się zdarzenia powodujące zatrzymanie usługi.

Do tego wszystkiego warto sprawdzić wielkość i stan bazy danych , do sprawdzenia jak duży jest plik bazy wystarczy 

cd domoticz
ls -lh domoticz.db

jak będzie jakaś znacznie większa niż np moja

2

a urządzeń w domoticz nie ma więcej niż 300 , to polecam zainstalować sqlite3 i chociaż "odkurzyć" taką bazę 

sudo service domoticz stop
cd domoticz
ls -lh domoticz.db
sudo sqlite3 domoticz.db
VACUUM;
.quit
ls -lh domoticz.db
sudo service domoticz start

 

OdpowiedzCytuj
Dodane : 10/06/2022 11:42 pm
Adam Dudek
(@adamdudek)
Stażysta

@isom 

Właśnie się znów wysypał, ale teraz przed restartem skopiowałem logi z błędami z Domoticza

Wydaje mi się, że to  będzie przyczyną, bo o 21:41 zauważyłem, że się wysypał>>>>> 2022-06-14 21:41:05.106 Error: WebServer PO exception occurred : 'stoull'

Rano jak się obudzę znów będzie dział jak tylko zrestartuje usługę.

Ktoś może zerknąć na logi i mi coś podpowiedzieć

 

 

2022-06-14 18:10:58.752 Error: MainWorker::UpdateDevice exception occurred : 'stoull'
2022-06-14 18:10:58.752 Error: MQTT Client: Problem updating sensor (check idx, hardware enabled)
2022-06-14 18:11:24.728 Error: MainWorker::UpdateDevice exception occurred : 'stoull'
2022-06-14 18:11:24.728 Error: MQTT Client: Problem updating sensor (check idx, hardware enabled)
2022-06-14 18:12:17.260 Error: MainWorker::UpdateDevice exception occurred : 'stoull'
2022-06-14 18:12:17.260 Error: MQTT Client: Problem updating sensor (check idx, hardware enabled)
2022-06-14 18:12:21.390 Error: MainWorker::UpdateDevice exception occurred : 'stoull'
2022-06-14 18:12:21.390 Error: MQTT Client: Problem updating sensor (check idx, hardware enabled)
2022-06-14 18:13:21.505 Error: MainWorker::UpdateDevice exception occurred : 'stoull'
2022-06-14 18:13:21.505 Error: MQTT Client: Problem updating sensor (check idx, hardware enabled)
2022-06-14 18:14:26.263 Error: MainWorker::UpdateDevice exception occurred : 'stoull'
2022-06-14 18:14:26.263 Error: MQTT Client: Problem updating sensor (check idx, hardware enabled)
2022-06-14 18:15:00.569 Error: UpdateMeter: Error converting sValue/sUsage! (IDX: 329, sValue: '35810003141867055020952.6;35810003141867055020952.6;35810003141867055020952.6;35810003141867055020952.6', sUsage: '0', dType: 113, sType: 0)
2022-06-14 18:15:38.145 Error: MainWorker::UpdateDevice exception occurred : 'stoull'
2022-06-14 18:15:38.145 Error: MQTT Client: Problem updating sensor (check idx, hardware enabled)
2022-06-14 18:15:42.419 Error: MainWorker::UpdateDevice exception occurred : 'stoull'
2022-06-14 18:15:42.420 Error: MQTT Client: Problem updating sensor (check idx, hardware enabled)
2022-06-14 18:16:42.401 Error: MainWorker::UpdateDevice exception occurred : 'stoull'
2022-06-14 18:16:42.401 Error: MQTT Client: Problem updating sensor (check idx, hardware enabled)
2022-06-14 18:20:00.776 Error: UpdateMeter: Error converting sValue/sUsage! (IDX: 329, sValue: '35810003141867055020952.6;35810003141867055020952.6;35810003141867055020952.6;35810003141867055020952.6', sUsage: '0', dType: 113, sType: 0)
2022-06-14 18:25:01.082 Error: UpdateMeter: Error converting sValue/sUsage! (IDX: 329, sValue: '35810003141867055020952.6;35810003141867055020952.6;35810003141867055020952.6;35810003141867055020952.6', sUsage: '0', dType: 113, sType: 0)
2022-06-14 18:30:00.263 Error: UpdateMeter: Error converting sValue/sUsage! (IDX: 329, sValue: '35810003141867055020952.6;35810003141867055020952.6;35810003141867055020952.6;35810003141867055020952.6', sUsage: '0', dType: 113, sType: 0)
2022-06-14 18:35:00.419 Error: UpdateMeter: Error converting sValue/sUsage! (IDX: 329, sValue: '35810003141867055020952.6;35810003141867055020952.6;35810003141867055020952.6;35810003141867055020952.6', sUsage: '0', dType: 113, sType: 0)
2022-06-14 18:40:00.586 Error: UpdateMeter: Error converting sValue/sUsage! (IDX: 329, sValue: '35810003141867055020952.6;35810003141867055020952.6;35810003141867055020952.6;35810003141867055020952.6', sUsage: '0', dType: 113, sType: 0)
2022-06-14 18:45:00.752 Error: UpdateMeter: Error converting sValue/sUsage! (IDX: 329, sValue: '35810003141867055020952.6;35810003141867055020952.6;35810003141867055020952.6;35810003141867055020952.6', sUsage: '0', dType: 113, sType: 0)
2022-06-14 18:50:00.909 Error: UpdateMeter: Error converting sValue/sUsage! (IDX: 329, sValue: '35810003141867055020952.6;35810003141867055020952.6;35810003141867055020952.6;35810003141867055020952.6', sUsage: '0', dType: 113, sType: 0)
2022-06-14 18:55:00.110 Error: UpdateMeter: Error converting sValue/sUsage! (IDX: 329, sValue: '35810003141867055020952.6;35810003141867055020952.6;35810003141867055020952.6;35810003141867055020952.6', sUsage: '0', dType: 113, sType: 0)
2022-06-14 18:56:04.938 Error: dzVents: Error: (3.1.8) Fronius_Symo: An error occurred when calling event handler 7a Fronius
2022-06-14 18:56:04.939 Error: dzVents: Error: (3.1.8) Fronius_Symo: ...omoticz/scripts/dzVents/generated_scripts/7a Fronius.lua:63: attempt to perform arithmetic on a string value
2022-06-14 19:00:00.306 Error: UpdateMeter: Error converting sValue/sUsage! (IDX: 329, sValue: '35810003141867055020952.6;35810003141867055020952.6;35810003141867055020952.6;35810003141867055020952.6', sUsage: '0', dType: 113, sType: 0)
2022-06-14 19:05:00.456 Error: UpdateMeter: Error converting sValue/sUsage! (IDX: 329, sValue: '35810003141867055020952.6;35810003141867055020952.6;35810003141867055020952.6;35810003141867055020952.6', sUsage: '0', dType: 113, sType: 0)
2022-06-14 19:10:00.595 Error: UpdateMeter: Error converting sValue/sUsage! (IDX: 329, sValue: '35810003141867055020952.6;35810003141867055020952.6;35810003141867055020952.6;35810003141867055020952.6', sUsage: '0', dType: 113, sType: 0)
2022-06-14 19:15:00.788 Error: UpdateMeter: Error converting sValue/sUsage! (IDX: 329, sValue: '35810003141867055020952.6;35810003141867055020952.6;35810003141867055020952.6;35810003141867055020952.6', sUsage: '0', dType: 113, sType: 0)
2022-06-14 20:42:04.201 Error: dzVents: Error: (3.1.8) Fronius_Symo: An error occurred when calling event handler 7a Fronius
2022-06-14 20:42:04.201 Error: dzVents: Error: (3.1.8) Fronius_Symo: ...omoticz/scripts/dzVents/generated_scripts/7a Fronius.lua:63: attempt to perform arithmetic on a string value
2022-06-14 21:11:03.701 Error: dzVents: Error: (3.1.8) Fronius_Symo: An error occurred when calling event handler 7a Fronius
2022-06-14 21:11:03.702 Error: dzVents: Error: (3.1.8) Fronius_Symo: ...omoticz/scripts/dzVents/generated_scripts/7a Fronius.lua:63: attempt to perform arithmetic on a string value
2022-06-14 21:39:03.873 Error: dzVents: Error: (3.1.8) Fronius_Symo: An error occurred when calling event handler 7a Fronius
2022-06-14 21:39:03.873 Error: dzVents: Error: (3.1.8) Fronius_Symo: ...omoticz/scripts/dzVents/generated_scripts/7a Fronius.lua:63: attempt to perform arithmetic on a string value
2022-06-14 21:41:05.106 Error: WebServer PO exception occurred : 'stoull'
2022-06-14 21:41:05.392 Error: WebServer PO exception occurred : 'stoull'
2022-06-14 21:41:05.484 Error: WebServer PO exception occurred : 'stoull'
2022-06-14 21:41:06.754 Error: WebServer PO exception occurred : 'stoull'
2022-06-14 21:41:06.795 Error: WebServer PO exception occurred : 'stoull'
2022-06-14 21:41:08.436 Error: WebServer PO exception occurred : 'stoull'
2022-06-14 21:41:08.470 Error: WebServer PO exception occurred : 'stoull'
2022-06-14 21:41:08.474 Error: WebServer PO exception occurred : 'stoull'
2022-06-14 21:41:14.733 Error: WebServer PO exception occurred : 'stoull'
2022-06-14 21:42:53.658 Error: WebServer PO exception occurred : 'stoull'
2022-06-14 21:42:54.001 Error: WebServer PO exception occurred : 'stoull'
2022-06-14 21:42:58.506 Error: WebServer PO exception occurred : 'stoull'
2022-06-14 21:42:58.935 Error: WebServer PO exception occurred : 'stoull'
2022-06-14 21:42:59.049 Error: WebServer PO exception occurred : 'stoull'
2022-06-14 21:43:12.034 Error: WebServer PO exception occurred : 'stoull'
2022-06-14 21:43:12.069 Error: WebServer PO exception occurred : 'stoull'

OdpowiedzCytuj
Autor tematu Dodane : 14/06/2022 9:53 pm
isom
 isom
(@isom)
Prezes Moderator Zasłużony dla Forum, Donator 2K19, Donator 2K20

@adamdudek te błędy wskazują na bazę danych , zainstaluj sqlite3 czyli

sudo apt-get install sqlite3

potem 

sudo service domoticz.sh stop
cd domoticz
sqlite3 domoticz.db
pragma integrity_check;

Wynik powinien być taki 

1

Jak będzie inaczej to trzeba zrobić mimo wszystko kopię bazy danych a potem spróbować ją naprawić 

Masz tu link do wątku gdzie masz opis i dwie możliwości naprawy jedna używa skryptu bash , druga to ręczna metoda

https://www.domoticz.com/forum/viewtopic.php?f=28&t=10984

OdpowiedzCytuj
Dodane : 14/06/2022 10:34 pm
Adam Dudek
(@adamdudek)
Stażysta

Baza najprawdopodobniej jest dobra bo po wykonaniu Twoich komend mam komunikat "ok" 

image

 

 

OdpowiedzCytuj
Autor tematu Dodane : 16/06/2022 10:03 pm
isom
 isom
(@isom)
Prezes Moderator Zasłużony dla Forum, Donator 2K19, Donator 2K20

To wstaw tu ten skrypt dzVents który wali błędem w linii 63 . Czyli scripts/7a Fronius

OdpowiedzCytuj
Dodane : 17/06/2022 1:55 pm
Adam Dudek
(@adamdudek)
Stażysta

wiersz 67 jest pogrubiony żeby łatwiej było znaleźć 

 

 

 

 

return {
logging = {
level = domoticz.LOG_ERROR, -- zmien na LOG_ERROR jak skrypt bedzie Ok (było LOG_DEBUG)
marker = 'Fronius_Symo' -- bylo Fronius global
},
on = {
timer = {
'every minute'
},
httpResponses = { 'triggerFronius' }
},
execute = function(domoticz,item)
-- utworz dwie zmienne i potrzebne czujniki i dostosuj nazwy i typy
local IPdomiticz = domoticz.variables('UV_DomoticzIP').value -- zmienna uzytkownika ciag znakow Adres IP domoticz : Port
local IPFronius = domoticz.variables('UV_FroniusIP').value -- zmienna uzytkownika ciag znakow Adres IP Fronius
local idx_Fronius_Actual = domoticz.devices('Aktualnie').idx -- czujnik licznik
local idx_DAY_ENERGY = domoticz.devices('Dzień_Energia').idx -- czujnik CustomSensor
local idx_YEAR_ENERGY = domoticz.devices('Rok_Energia').idx -- czujnik CustomSensor
local idx_TOTAL_ENERGY = domoticz.devices('Total_Energia').idx -- czujnik CustomSensor
local idx_UDC = domoticz.devices('Dach_V').idx -- czujnik Napięcie
local idx_UAC = domoticz.devices('Siec_V').idx -- czujnik Napięcie
local idx_IDC = domoticz.devices('Dach_A').idx -- czujnik Prąd A
local idx_IAC = domoticz.devices('Siec_A').idx -- czujnik Prąd A
local json = assert(loadfile "/home/pi/domoticz/scripts/lua/JSON.lua")()

domoticz.log('Fronius script running', domoticz.LOG_INFO)

if (item.isTimer) then
time_now = os.date("*t")
minutes_now = time_now.min + time_now.hour * 60

domoticz.log('Time in minutes: ' ..minutes_now, domoticz.LOG_INFO)
domoticz.log('Sunrise in minutes: ' ..timeofday['SunriseInMinutes'] - 60, domoticz.LOG_INFO)
domoticz.log('Sunset in minutes: ' ..timeofday['SunsetInMinutes'] + 60, domoticz.LOG_INFO)

-- Validation for sunrise and sunset.
if (minutes_now > timeofday['SunriseInMinutes'] - 30) and (minutes_now < timeofday['SunsetInMinutes'] + 30) then
domoticz.log('Call Fronius url with callback', domoticz.LOG_DEBUG)
-- ASYNC openUrl
domoticz.openURL({
url = 'http://'..IPFronius..'/solar_api/v1/GetInverterRealtimeData.cgi?Scope=Device&DeviceId=1&DataCollection=CommonInverterData',
method = 'GET',
callback = 'triggerFronius'
})
else
domoticz.log('Fronius inverter Offline because of SunSet', domoticz.LOG_INFO)
end
end

if (item.isHTTPResponse and item.ok) then
domoticz.log('Callback from url requested', domoticz.LOG_DEBUG)
domoticz.log('Data: '..item.data, domoticz.LOG_INFO)

local jsonfroniusdata = domoticz.utils.fromJSON(item.data)

if (jsonfroniusdata == nil) then
domoticz.log('Fronius inverter data is empty', domoticz.LOG_INFO)
return
end
-- request successfull ?
if ( jsonfroniusdata.Head.Status.Code ~= 0 ) then
domoticz.log('Fronius inverter head status code data is not 0', domoticz.LOG_INFO)
domoticz.log('Status code: ' + jsonfroniusdata.Head.Status.Code + ' Reason: ' + jsonfroniusdata.Head.Status.Reason + ' User message: ' + jsonfroniusdata.Head.Status.UserMessage, domoticz.LOG_ERROR)
return
end
local StatusCode = jsonfroniusdata.Body.Data.DeviceStatus.StatusCode
domoticz.log('json froniusdata Statuscode: '..StatusCode, domoticz.LOG_INFO)

if ( StatusCode == 7) then --Fronius converter is Running

local DAY_ENERGY = jsonfroniusdata.Body.Data.DAY_ENERGY.Value/1000
local YEAR_ENERGY = jsonfroniusdata.Body.Data.YEAR_ENERGY.Value/1000
local TOTAL_ENERGY = jsonfroniusdata.Body.Data.TOTAL_ENERGY.Value/1000000
local PAC = jsonfroniusdata.Body.Data.PAC.Value
local UDC = jsonfroniusdata.Body.Data.UDC.Value
local UAC = jsonfroniusdata.Body.Data.UAC.Value
local IDC = jsonfroniusdata.Body.Data.IDC.Value
local IAC = jsonfroniusdata.Body.Data.IAC.Value

domoticz.log('PAC: '..PAC, domoticz.LOG_INFO)
domoticz.log('Day Energy: '..DAY_ENERGY, domoticz.LOG_INFO)
domoticz.log('Year Energy: '..YEAR_ENERGY, domoticz.LOG_INFO)
domoticz.log('Total Energy: '..TOTAL_ENERGY, domoticz.LOG_INFO)
domoticz.log('UDC: '..UDC, domoticz.LOG_INFO)
--domoticz.log('UAC: '..UAC, domoticz.LOG_DEBUG)
domoticz.log('IDC: '..IDC, domoticz.LOG_INFO)
domoticz.log('IAC: '..IAC, domoticz.LOG_INFO)

domoticz.openURL('http://'..IPdomiticz..'/json.htm?type=command&param=udevice&idx='..idx_DAY_ENERGY..'&nvalue=0&svalue='..DAY_ENERGY)
domoticz.openURL('http://'..IPdomiticz..'/json.htm?type=command&param=udevice&idx='..idx_YEAR_ENERGY..'&nvalue=0&svalue='..YEAR_ENERGY)
domoticz.openURL('http://'..IPdomiticz..'/json.htm?type=command&param=udevice&idx='..idx_TOTAL_ENERGY..'&nvalue=0&svalue='..TOTAL_ENERGY)
domoticz.openURL('http://'..IPdomiticz..'/json.htm?type=command&param=udevice&idx='..idx_Fronius_Actual..'&nvalue=0&svalue='..PAC..';'..DAY_ENERGY)
domoticz.openURL('http://'..IPdomiticz..'/json.htm?type=command&param=udevice&idx='..idx_UDC..'&nvalue=0&svalue='..UDC)
domoticz.openURL('http://'..IPdomiticz..'/json.htm?type=command&param=udevice&idx='..idx_IDC..'&nvalue=0&svalue='..IDC)
domoticz.openURL('http://'..IPdomiticz..'/json.htm?type=command&param=udevice&idx='..idx_UAC..'&nvalue=0&svalue='..UAC)
domoticz.openURL('http://'..IPdomiticz..'/json.htm?type=command&param=udevice&idx='..idx_IAC..'&nvalue=0&svalue='..IAC)

else
domoticz.log('Fronius converter state (Statuscode:'..StatusCode..') other than running', domoticz.LOG_INFO)
local UDC = 0 local UAC = 0 local IDC = 0 local IAC = 0

domoticz.openURL('http://'..IPdomiticz..'/json.htm?type=command&param=udevice&idx='..idx_UDC..'&nvalue=0&svalue='..UDC)
domoticz.openURL('http://'..IPdomiticz..'/json.htm?type=command&param=udevice&idx='..idx_IDC..'&nvalue=0&svalue='..IDC)
domoticz.openURL('http://'..IPdomiticz..'/json.htm?type=command&param=udevice&idx='..idx_UAC..'&nvalue=0&svalue='..UAC)
domoticz.openURL('http://'..IPdomiticz..'/json.htm?type=command&param=udevice&idx='..idx_IAC..'&nvalue=0&svalue='..IAC)
end

end
end

}

OdpowiedzCytuj
Autor tematu Dodane : 17/06/2022 9:00 pm
isom
 isom
(@isom)
Prezes Moderator Zasłużony dla Forum, Donator 2K19, Donator 2K20

@adamdudek tak samo jak tobie się nie chce dokładnie sprawdzić, mi się nie chce tego analizować , nie 67 a 63. Usuń wszystko co masz do fronius i dodaj od nowa 

Tylko zaznaczam usuń a nie wyłącz i dodaj z nowymi IDX 

OdpowiedzCytuj
Dodane : 20/06/2022 3:54 pm
Udostępnij: