Hi Rich,
Thanks so much for your reply.
Surprisingly, it works in the test environment despite the red marker. There are no error lines at all. However, it doesn’t work in the real environment; substructures of GlobalStatic are being continuously reinitialized.
There are still no error lines, but the data arrives as “undefined” on the next call.
I’m starting to think the real structure is too extensive…
I’ll investigate the real environment separately, but that might take some time.
I use this “GlobalStatic” variable in all rules as static storage with their respective substructures, and of course, for data exchange between the rules.
Here’s a small excerpt (roller shutter control, about 10%) of the currently used structure.
console.log(GlobalStatic.Rules.PowerJalusien_V11); →
2026-08-12 16:46:54.814 [INFO ] [on.jsscripting.rule.Crontab1s_NewV11] -{
“TimerName”: “PJ_HeatProtectionOff”,
“TimerInput”: false,
“TimerOutputHeat1”: false,
“TimerOutputHeat2”: false,
“HeatProtection”: true,
“GarageBedUP”: true,
“RollerObjGarageS”: {
“NRSollPos”: 10,
“IsBlocked”: false,
“RoomName”: “GarageS”,
“RollerItem”: “RS_126”,
“WinOpen”: false,
“WindWarning”: false,
“TimerName”: “PJ_GarageS”,
“LowLimit1”: 10,
“LowLimit2”: 10,
“WinDelay”: 15,
“DownLimit”: 10,
“UpLimit”: 100,
“Automatik”: true,
“SommerPos”: 50,
“SommerPosAktiv”: false,
“TimerOutput”: false,
“TimerOutput1”: true,
“TimerOutput2”: false,
“StorageTaster”: false,
“IstPos”: 10,
“Button1”: false,
“ButtonPos1”: 100,
“Button2”: false,
“ButtonPos2”: 0,
“Rauchwarnmeldung”: false,
“WinDelayStorage”: 15,
“ActualDestination”: 10,
“DebugModus”: false
},
“RollerObjGarageG”: {
“NRSollPos”: 20,
“IsBlocked”: false,
“RoomName”: “GarageG”,
“RollerItem”: “RS_127”,
“WinOpen”: false,
“WindWarning”: false,
“TimerName”: “PJ_GarageG”,
“LowLimit1”: 20,
“LowLimit2”: 20,
“WinDelay”: 15,
“DownLimit”: 20,
“UpLimit”: 100,
“Automatik”: true,
“SommerPos”: 50,
“SommerPosAktiv”: false,
“TimerOutput”: false,
“TimerOutput1”: true,
“TimerOutput2”: false,
“StorageTaster”: false,
“IstPos”: 20,
“Button1”: false,
“ButtonPos1”: 100,
“Button2”: false,
“ButtonPos2”: 0,
“Rauchwarnmeldung”: false,
“WinDelayStorage”: 15,
“ActualDestination”: 20,
“DebugModus”: false
},
“RollerObjLivingT”: {
“NRSollPos”: 100,
“IsBlocked”: true,
“RoomName”: “LivingT”,
“RollerItem”: “RS_131”,
“WinOpen”: false,
“WindWarning”: false,
“TimerName”: “PJ_LivingT”,
“LowLimit1”: 40,
“LowLimit2”: 35,
“WinDelay”: 30,
“DownLimit”: 0,
“UpLimit”: 100,
“Automatik”: true,
“SommerPos”: 100,
“SommerPosAktiv”: false,
“TimerOutput”: false,
“TimerOutput1”: true,
“TimerOutput2”: false,
“StorageTaster”: false,
“IstPos”: 100,
“Button1”: false,
“ButtonPos1”: 100,
“Button2”: false,
“ButtonPos2”: 0,
“Rauchwarnmeldung”: false,
“WinDelayStorage”: 30,
“ActualDestination”: 100,
“DebugModus”: false
},
“RollerObjLivingS”: {
“NRSollPos”: 100,
“IsBlocked”: false,
“RoomName”: “LivingS”,
“RollerItem”: “RS_128”,
“WinOpen”: false,
“WindWarning”: false,
“TimerName”: “PJ_LivingS”,
“LowLimit1”: 100,
“LowLimit2”: 100,
“WinDelay”: 15,
“DownLimit”: 0,
“UpLimit”: 100,
“Automatik”: true,
“SommerPos”: 70,
“SommerPosAktiv”: false,
“TimerOutput”: false,
“TimerOutput1”: true,
“TimerOutput2”: false,
“StorageTaster”: false,
“IstPos”: 100,
“Button1”: false,
“ButtonPos1”: 100,
“Button2”: false,
“ButtonPos2”: 0,
“Rauchwarnmeldung”: false,
“WinDelayStorage”: 15,
“ActualDestination”: 100,
“DebugModus”: false
},
“RollerObjKitchen”: {
“NRSollPos”: 100,
“IsBlocked”: false,
“RoomName”: “Kitchen”,
“RollerItem”: “RS_129”,
“WinOpen”: true,
“WindWarning”: false,
“TimerName”: “PJ_Kitchen”,
“LowLimit1”: 75,
“LowLimit2”: 15,
“WinDelay”: 240,
“DownLimit”: 0,
“UpLimit”: 100,
“Automatik”: true,
“SommerPos”: 50,
“SommerPosAktiv”: false,
“TimerOutput”: false,
“TimerOutput1”: true,
“TimerOutput2”: false,
“StorageTaster”: false,
“IstPos”: 100,
“Button1”: false,
“ButtonPos1”: 100,
“Button2”: false,
“ButtonPos2”: 100,
“Rauchwarnmeldung”: false,
“WinDelayStorage”: 240,
“ActualDestination”: 100,
“DebugModus”: false
},
“RollerObjToilet”: {
“NRSollPos”: 100,
“IsBlocked”: false,
“RoomName”: “Toilet”,
“RollerItem”: “RS_136”,
“WinOpen”: false,
“WindWarning”: false,
“TimerName”: “PJ_Toilet”,
“LowLimit1”: 50,
“LowLimit2”: 10,
“WinDelay”: 60,
“DownLimit”: 0,
“UpLimit”: 100,
“Automatik”: true,
“SommerPos”: 50,
“SommerPosAktiv”: false,
“TimerOutput”: false,
“TimerOutput1”: true,
“TimerOutput2”: false,
“StorageTaster”: false,
“IstPos”: 100,
“Button1”: false,
“ButtonPos1”: 100,
“Button2”: false,
“ButtonPos2”: 100,
“Rauchwarnmeldung”: false,
“WinDelayStorage”: 60,
“ActualDestination”: 100,
“DebugModus”: false
},
“RollerObjBedroom”: {
“NRSollPos”: 20,
“IsBlocked”: false,
“RoomName”: “Bedroom”,
“RollerItem”: “RS_132”,
“WinOpen”: true,
“WindWarning”: false,
“TimerName”: “PJ_Bedroom”,
“LowLimit1”: 50,
“LowLimit2”: 6,
“WinDelay”: 5,
“DownLimit”: 0,
“UpLimit”: 100,
“Automatik”: true,
“SommerPos”: 20,
“SommerPosAktiv”: true,
“TimerOutput”: false,
“TimerOutput1”: true,
“TimerOutput2”: false,
“StorageTaster”: false,
“IstPos”: 20,
“Button1”: false,
“ButtonPos1”: 100,
“Button2”: false,
“ButtonPos2”: 0,
“Rauchwarnmeldung”: false,
“WinDelayStorage”: 5,
“ActualDestination”: 20,
“DebugModus”: false
},
“RollerObjChild1”: {
“NRSollPos”: 15,
“IsBlocked”: false,
“RoomName”: “Child1”,
“RollerItem”: “RS_133”,
“WinOpen”: true,
“WindWarning”: false,
“TimerName”: “PJ_Child1”,
“LowLimit1”: 25,
“LowLimit2”: 15,
“WinDelay”: 45,
“DownLimit”: 0,
“UpLimit”: 100,
“Automatik”: true,
“SommerPos”: 25,
“SommerPosAktiv”: true,
“TimerOutput”: true,
“TimerOutput1”: true,
“TimerOutput2”: false,
“StorageTaster”: false,
“IstPos”: 15,
“Button1”: false,
“ButtonPos1”: 100,
“Button2”: false,
“ButtonPos2”: 100,
“Rauchwarnmeldung”: false,
“WinDelayStorage”: 45,
“ActualDestination”: 15,
“DebugModus”: false,
“AbsencePos”: 15,
“AbsenceActiv”: false
},
“RollerObjChild2_L”: {
“NRSollPos”: 30,
“IsBlocked”: false,
“RoomName”: “Child2_L”,
“RollerItem”: “RS_134”,
“WinOpen”: false,
“WindWarning”: false,
“TimerName”: “PJ_Child2_L”,
“LowLimit1”: 40,
“LowLimit2”: 20,
“WinDelay”: 5,
“DownLimit”: 0,
“UpLimit”: 100,
“Automatik”: true,
“SommerPos”: 30,
“SommerPosAktiv”: true,
“TimerOutput”: false,
“TimerOutput1”: true,
“TimerOutput2”: false,
“StorageTaster”: false,
“IstPos”: 30,
“Button1”: false,
“ButtonPos1”: 100,
“Button2”: false,
“ButtonPos2”: 100,
“Rauchwarnmeldung”: false,
“WinDelayStorage”: 5,
“ActualDestination”: 30,
“DebugModus”: false
},
“RollerObjChild2_R”: {
“NRSollPos”: 30,
“IsBlocked”: false,
“RoomName”: “Child2_R”,
“RollerItem”: “RS_135”,
“WinOpen”: true,
“WindWarning”: false,
“TimerName”: “PJ_Child2_R”,
“LowLimit1”: 40,
“LowLimit2”: 20,
“WinDelay”: 5,
“DownLimit”: 0,
“UpLimit”: 100,
“Automatik”: true,
“SommerPos”: 30,
“SommerPosAktiv”: true,
“TimerOutput”: false,
“TimerOutput1”: true,
“TimerOutput2”: false,
“StorageTaster”: false,
“IstPos”: 30,
“Button1”: false,
“ButtonPos1”: 100,
“Button2”: false,
“ButtonPos2”: 100,
“Rauchwarnmeldung”: false,
“WinDelayStorage”: 5,
“ActualDestination”: 30,
“DebugModus”: false
}
}