Page 1 of 1
global_data problem
Posted: Sunday 19 December 2021 16:02
by EddB
Hi,
I need help with the global_data.lua
When I save the file global_data.lua in ~/domoticz/scripts/dzVents/scripts/ following errors are generated every minute:
2021-12-19 13:35:33.708 Error: dzVents: Error: (3.1.7) iDS: There was an issue with the require of the datamodule “~/domoticz/scripts/dzVents/data/__data_global_data.lua"
2021-12-19 13:35:33.709 Error: EventSystem: in ~/domoticz/dzVents/runtime/dzVents.lua: ~/domoticz/dzVents/runtime/EventHelpers.lua:121: attempt to index a nil value (local 'inf')
In ~/domoticz/scripts/dzVents/data/ a 0 byte file __data_global_data.faulty is created by root (domoticz is running as root, I haven’t succeeded in changing this). It seems that __data_global_data.lua is missing.
file global_data.lua:
return {
helpers = {},
data = {
myOldIP = { initial = false },
E_ICSEvent = { initial = false},
I_ICSEvent = { initial = false}
}
}
Any hint on how to solve this would be welcome.
Regards, Ed
Re: global_data problem
Posted: Sunday 19 December 2021 21:53
by Maxx
I don't see a problem in the global_data.
Do you use the global variables in any of your scripts? Maybe the problem starts there.
Re: global_data problem
Posted: Sunday 26 December 2021 13:08
by EddB
Hi Maxx,
thx for your reply (and sorry I didn't respond earlier, busy with X-mass prep.) but I removed all possible lines that use the globaldata from the scripts and the error keeps coming back. I also checked that there is only 1 global_data.lua file, I found 3 in:
~/domoticz/dzVents/runtime/tests/scripts/global_data.lua
~/domoticz/dzVents/runtime/integration-tests/global_data.lua
~/domoticz/scripts/dzVents/examples/templates/global_data.lua
Renaming them didn't change anything. The error I get is in EventHelpers.lua:121, which is the line 'outf:write(inf:read('*a'))' . So this script cannot write to the outf (~/domoticz/scripts/dzVents/data/__data_global_data.lua) because it doesn't exist, instead a file ~/domoticz/scripts/dzVents/data/__data_global_data.fault (0 bytes) was created.
I'm running domoticz on a raspberry pi 3B under my own user-id and the file ~/domoticz/scripts/dzVents/data/__data_global_data.fault is created by root. I'm thinking it may be a rights problem in creating the file, could that be?
Regards, Ed
Re: global_data problem
Posted: Sunday 26 December 2021 15:58
by EddyG
Yes I think it is a write access problem.
When Domoticz is started as a service, it is normally as user root.
My global_data is in the ~/domoticz/scripts/dzVents/scripts dir.
This is how my dirs under ~/domoticz/scripts/dzVents looks like.
Code: Select all
drwxr-xr-x 1 pi pi 1450 Dec 26 12:24 data
drwxr-xr-x 1 pi pi 20 Nov 9 2020 dumps
drwxr-xr-x 1 pi pi 914 Apr 13 2021 examples
drwxr-xr-x 1 pi pi 18 Nov 9 2020 generated_scripts
drwxrwxrwx 1 pi pi 266 Oct 31 08:11 modules
drwxr-xr-x 1 pi pi 2480 Nov 9 2020 scripts
Re: global_data problem
Posted: Sunday 26 December 2021 20:39
by EddB
Hi EddyG,
looks similar to mine except that I don't have a modules directory therefore a file module.log as well as a file domoticzData.lua created by root. I have no idea what these file are for. domoticzData.lua is the persistent data of the devices and the module.log is a 40' log file of the modules.
drwxr-xr-x 2 me me 4096 Dec 19 13:55 data
-rw-r----- 1 root root 76127 Dec 19 17:51 domoticzData.lua
drwxr-xr-x 2 me me 4096 Nov 9 2020 dumps
drwxr-xr-x 3 me me 4096 Apr 13 2021 examples
drwxr-xr-x 2 me me 4096 Nov 9 2020 generated_scripts
-rw-r----- 1 root root 8287 Dec 19 17:51 module.log
drwxr-xr-x 2 me me 4096 Dec 26 13:24 scripts
Re: global_data problem
Posted: Monday 27 December 2021 10:22
by EddyG
The 'extra' files are from the debug mode Domoticz is in.
Just change the rights of the data dir to 777 and see if the error still exists.
Re: global_data problem
Posted: Monday 27 December 2021 12:13
by EddB
I changed the rights of the data dir to 777 and the error still exists.
drwxrwxrwx 2 me me 4096 Dec 19 13:55 data
It still creates the file
-rw-r----- 1 root root 0 Dec 27 12:08 __data_global_data.faulty
Re: global_data problem
Posted: Thursday 30 December 2021 8:39
by EddyG
So there is an error in global_data.lua
You have an variable myOldIP = { initial = false } initialized as a Boolean, is that correct?
Re: global_data problem
Posted: Sunday 09 January 2022 11:16
by EddB
Hi EddyG,
That was the mistake indeed, I changed that in myOldIP = "" and now it works. Thanks for the help.
I first tried with myOldIP = { initial = "" } but that didn't work, the 'DzVents: next generation Lua scripting' is not very clear on how to use initial.
Regards, Ed