From 41abd7217baa0a89a2208bbdbbca5a8ab931c849 Mon Sep 17 00:00:00 2001 From: FERNANDEZ BOADA Daniel Date: Sun, 11 Jan 2026 00:11:44 +0100 Subject: [PATCH 1/8] Add schedule and mqtt --- app.log | 4326 +++++++++++++++++ config/camera_gis_system_config.json | 2 +- config/logging_config.json | 14 +- config/security_config.json | 13 +- config/svg/0.room.svg | 3840 +++++++++++++++ config/svg/0.room.txt | 5 + config/svg_system_config.json | 2 +- config/system_config.json | 99 +- flow_events.log | 44 + src/openscada_lite/common/actions/__init__.py | 15 + .../actions}/action.py | 0 .../actions/action_map.py} | 10 +- .../common/actions/action_utils.py | 39 + .../actions}/client_alert.py | 2 +- .../actions}/lower_alarm.py | 2 +- .../actions}/raise_alarm.py | 2 +- .../actions}/send_command.py | 2 +- .../modules/communication/drivers/__init__.py | 4 + .../drivers/mqtt_tasmota_driver.py | 305 ++ .../manager/connector_manager.py | 2 + .../modules/rule/manager/rule_manager.py | 5 +- .../modules/schedule/controller.py | 9 + src/openscada_lite/modules/schedule/model.py | 5 + .../modules/schedule/service.py | 51 + tests/test_mqtt_tasmota_driver.py | 183 + tests/test_schedule.py | 107 + 26 files changed, 9066 insertions(+), 22 deletions(-) create mode 100644 app.log create mode 100644 config/svg/0.room.svg create mode 100644 config/svg/0.room.txt create mode 100644 flow_events.log create mode 100644 src/openscada_lite/common/actions/__init__.py rename src/openscada_lite/{modules/rule/actioncommands => common/actions}/action.py (100%) rename src/openscada_lite/{modules/rule/actioncommands/command_map.py => common/actions/action_map.py} (70%) create mode 100644 src/openscada_lite/common/actions/action_utils.py rename src/openscada_lite/{modules/rule/actioncommands => common/actions}/client_alert.py (95%) rename src/openscada_lite/{modules/rule/actioncommands => common/actions}/lower_alarm.py (94%) rename src/openscada_lite/{modules/rule/actioncommands => common/actions}/raise_alarm.py (94%) rename src/openscada_lite/{modules/rule/actioncommands => common/actions}/send_command.py (95%) create mode 100644 src/openscada_lite/modules/communication/drivers/mqtt_tasmota_driver.py create mode 100644 src/openscada_lite/modules/schedule/controller.py create mode 100644 src/openscada_lite/modules/schedule/model.py create mode 100644 src/openscada_lite/modules/schedule/service.py create mode 100644 tests/test_mqtt_tasmota_driver.py create mode 100644 tests/test_schedule.py diff --git a/app.log b/app.log new file mode 100644 index 0000000..986b7cb --- /dev/null +++ b/app.log @@ -0,0 +1,4326 @@ +2026-01-09 16:44:10,867 INFO openscada_lite.app [LIFESPAN] Startup starting... +2026-01-09 16:44:10,867 DEBUG root [TrackingPublisher] loop injected: +2026-01-09 16:44:10,869 DEBUG root [TrackingPublisher] worker started, waiting for events... +2026-01-09 16:44:11,555 INFO openscada_lite.modules.communication.drivers.opc_ua_server_driver [OPCUA] Will expose 6 nodes on connect() +2026-01-09 16:44:11,556 INFO openscada_lite.modules.communication.drivers.test.test_driver [INIT] Creating TestDriver CameraDriver +2026-01-09 16:44:11,556 INFO openscada_lite.modules.communication.drivers.test.test_driver [INIT] Creating TestDriver WaterTank +2026-01-09 16:44:11,557 INFO openscada_lite.modules.communication.drivers.test.test_driver [INIT] Creating TestDriver StressTest +2026-01-09 16:44:11,559 INFO openscada_lite.modules.communication.drivers.test.test_driver [INIT] Creating TestDriver TrainTestDriver +2026-01-09 16:44:11,560 DEBUG root [TrackingPublisher] publish_data_flow_event called +2026-01-09 16:44:11,560 DEBUG root [TrackingPublisher] preparing to create event for DriverConnectStatus(track_id='b78b6ed6-61ea-4ac2-a292-1f3ce1bee380', driver_name='OPCUAServerDriver', status='offline') +2026-01-09 16:44:11,560 DEBUG root [TrackingPublisher] created event b78b6ed6-61ea-4ac2-a292-1f3ce1bee380 DataFlowStatus.CREATED +2026-01-09 16:44:11,561 DEBUG root [TrackingPublisher] queued event b78b6ed6-61ea-4ac2-a292-1f3ce1bee380 DataFlowStatus.CREATED +2026-01-09 16:44:11,561 DEBUG root [TrackingPublisher] worker got item from queue: DataFlowEventMsg(track_id='b78b6ed6-61ea-4ac2-a292-1f3ce1bee380', event_type='DriverConnectStatus', source='CommunicationService', status=, timestamp=datetime.datetime(2026, 1, 9, 16, 44, 11, 560716), payload={'driver_name': 'OPCUAServerDriver', 'status': 'offline'}) +2026-01-09 16:44:11,561 DEBUG openscada_lite.modules.base.base_controller [communication] Publishing message: DriverConnectStatus(track_id='b78b6ed6-61ea-4ac2-a292-1f3ce1bee380', driver_name='OPCUAServerDriver', status='offline') +2026-01-09 16:44:11,562 DEBUG root [TrackingPublisher] not enabled or loop not ready, requeuing event b78b6ed6-61ea-4ac2-a292-1f3ce1bee380 +2026-01-09 16:44:11,562 DEBUG root [TrackingPublisher] publish_data_flow_event called +2026-01-09 16:44:11,562 DEBUG root [TrackingPublisher] preparing to create event for DriverConnectStatus(track_id='b78b6ed6-61ea-4ac2-a292-1f3ce1bee380', driver_name='OPCUAServerDriver', status='offline') +2026-01-09 16:44:11,563 DEBUG root [TrackingPublisher] created event b78b6ed6-61ea-4ac2-a292-1f3ce1bee380 DataFlowStatus.FORWARDED +2026-01-09 16:44:11,563 DEBUG root [TrackingPublisher] queued event b78b6ed6-61ea-4ac2-a292-1f3ce1bee380 DataFlowStatus.FORWARDED +2026-01-09 16:44:11,563 DEBUG root [TrackingPublisher] publish_data_flow_event called +2026-01-09 16:44:11,564 DEBUG root [TrackingPublisher] preparing to create event for DriverConnectStatus(track_id='b78b6ed6-61ea-4ac2-a292-1f3ce1bee380', driver_name='OPCUAServerDriver', status='offline') +2026-01-09 16:44:11,564 DEBUG root [TrackingPublisher] created event b78b6ed6-61ea-4ac2-a292-1f3ce1bee380 DataFlowStatus.RECEIVED +2026-01-09 16:44:11,564 DEBUG root [TrackingPublisher] queued event b78b6ed6-61ea-4ac2-a292-1f3ce1bee380 DataFlowStatus.RECEIVED +2026-01-09 16:44:11,565 DEBUG root [TrackingPublisher] publish_data_flow_event called +2026-01-09 16:44:11,565 DEBUG root [TrackingPublisher] preparing to create event for DriverConnectStatus(track_id='09cd101e-3ce1-4e45-820f-3f71f19ed141', driver_name='CameraDriver', status='offline') +2026-01-09 16:44:11,565 DEBUG root [TrackingPublisher] created event 09cd101e-3ce1-4e45-820f-3f71f19ed141 DataFlowStatus.CREATED +2026-01-09 16:44:11,565 DEBUG root [TrackingPublisher] queued event 09cd101e-3ce1-4e45-820f-3f71f19ed141 DataFlowStatus.CREATED +2026-01-09 16:44:11,566 DEBUG openscada_lite.modules.base.base_controller [communication] Publishing message: DriverConnectStatus(track_id='09cd101e-3ce1-4e45-820f-3f71f19ed141', driver_name='CameraDriver', status='offline') +2026-01-09 16:44:11,566 DEBUG root [TrackingPublisher] publish_data_flow_event called +2026-01-09 16:44:11,566 DEBUG root [TrackingPublisher] preparing to create event for DriverConnectStatus(track_id='09cd101e-3ce1-4e45-820f-3f71f19ed141', driver_name='CameraDriver', status='offline') +2026-01-09 16:44:11,567 DEBUG root [TrackingPublisher] created event 09cd101e-3ce1-4e45-820f-3f71f19ed141 DataFlowStatus.FORWARDED +2026-01-09 16:44:11,567 DEBUG root [TrackingPublisher] queued event 09cd101e-3ce1-4e45-820f-3f71f19ed141 DataFlowStatus.FORWARDED +2026-01-09 16:44:11,567 DEBUG root [TrackingPublisher] publish_data_flow_event called +2026-01-09 16:44:11,567 DEBUG root [TrackingPublisher] preparing to create event for DriverConnectStatus(track_id='09cd101e-3ce1-4e45-820f-3f71f19ed141', driver_name='CameraDriver', status='offline') +2026-01-09 16:44:11,568 DEBUG root [TrackingPublisher] created event 09cd101e-3ce1-4e45-820f-3f71f19ed141 DataFlowStatus.RECEIVED +2026-01-09 16:44:11,568 DEBUG root [TrackingPublisher] queued event 09cd101e-3ce1-4e45-820f-3f71f19ed141 DataFlowStatus.RECEIVED +2026-01-09 16:44:11,568 DEBUG root [TrackingPublisher] publish_data_flow_event called +2026-01-09 16:44:11,568 DEBUG root [TrackingPublisher] preparing to create event for DriverConnectStatus(track_id='921fba87-588c-41d1-9622-417297c8b079', driver_name='WaterTank', status='offline') +2026-01-09 16:44:11,569 DEBUG root [TrackingPublisher] created event 921fba87-588c-41d1-9622-417297c8b079 DataFlowStatus.CREATED +2026-01-09 16:44:11,569 DEBUG root [TrackingPublisher] queued event 921fba87-588c-41d1-9622-417297c8b079 DataFlowStatus.CREATED +2026-01-09 16:44:11,569 DEBUG openscada_lite.modules.base.base_controller [communication] Publishing message: DriverConnectStatus(track_id='921fba87-588c-41d1-9622-417297c8b079', driver_name='WaterTank', status='offline') +2026-01-09 16:44:11,569 DEBUG root [TrackingPublisher] publish_data_flow_event called +2026-01-09 16:44:11,569 DEBUG root [TrackingPublisher] preparing to create event for DriverConnectStatus(track_id='921fba87-588c-41d1-9622-417297c8b079', driver_name='WaterTank', status='offline') +2026-01-09 16:44:11,570 DEBUG root [TrackingPublisher] created event 921fba87-588c-41d1-9622-417297c8b079 DataFlowStatus.FORWARDED +2026-01-09 16:44:11,570 DEBUG root [TrackingPublisher] queued event 921fba87-588c-41d1-9622-417297c8b079 DataFlowStatus.FORWARDED +2026-01-09 16:44:11,570 DEBUG root [TrackingPublisher] publish_data_flow_event called +2026-01-09 16:44:11,570 DEBUG root [TrackingPublisher] preparing to create event for DriverConnectStatus(track_id='921fba87-588c-41d1-9622-417297c8b079', driver_name='WaterTank', status='offline') +2026-01-09 16:44:11,571 DEBUG root [TrackingPublisher] created event 921fba87-588c-41d1-9622-417297c8b079 DataFlowStatus.RECEIVED +2026-01-09 16:44:11,571 DEBUG root [TrackingPublisher] queued event 921fba87-588c-41d1-9622-417297c8b079 DataFlowStatus.RECEIVED +2026-01-09 16:44:11,571 DEBUG root [TrackingPublisher] publish_data_flow_event called +2026-01-09 16:44:11,571 DEBUG root [TrackingPublisher] preparing to create event for DriverConnectStatus(track_id='edbc2fd5-33bd-4dc4-a570-55a34707c82f', driver_name='StressTest', status='offline') +2026-01-09 16:44:11,571 DEBUG root [TrackingPublisher] created event edbc2fd5-33bd-4dc4-a570-55a34707c82f DataFlowStatus.CREATED +2026-01-09 16:44:11,572 DEBUG root [TrackingPublisher] queued event edbc2fd5-33bd-4dc4-a570-55a34707c82f DataFlowStatus.CREATED +2026-01-09 16:44:11,572 DEBUG openscada_lite.modules.base.base_controller [communication] Publishing message: DriverConnectStatus(track_id='edbc2fd5-33bd-4dc4-a570-55a34707c82f', driver_name='StressTest', status='offline') +2026-01-09 16:44:11,572 DEBUG root [TrackingPublisher] publish_data_flow_event called +2026-01-09 16:44:11,572 DEBUG root [TrackingPublisher] preparing to create event for DriverConnectStatus(track_id='edbc2fd5-33bd-4dc4-a570-55a34707c82f', driver_name='StressTest', status='offline') +2026-01-09 16:44:11,573 DEBUG root [TrackingPublisher] created event edbc2fd5-33bd-4dc4-a570-55a34707c82f DataFlowStatus.FORWARDED +2026-01-09 16:44:11,573 DEBUG root [TrackingPublisher] queued event edbc2fd5-33bd-4dc4-a570-55a34707c82f DataFlowStatus.FORWARDED +2026-01-09 16:44:11,573 DEBUG root [TrackingPublisher] publish_data_flow_event called +2026-01-09 16:44:11,573 DEBUG root [TrackingPublisher] preparing to create event for DriverConnectStatus(track_id='edbc2fd5-33bd-4dc4-a570-55a34707c82f', driver_name='StressTest', status='offline') +2026-01-09 16:44:11,574 DEBUG root [TrackingPublisher] created event edbc2fd5-33bd-4dc4-a570-55a34707c82f DataFlowStatus.RECEIVED +2026-01-09 16:44:11,574 DEBUG root [TrackingPublisher] queued event edbc2fd5-33bd-4dc4-a570-55a34707c82f DataFlowStatus.RECEIVED +2026-01-09 16:44:11,574 DEBUG openscada_lite.modules.base.base_controller [animation] Publishing message: AnimationUpdateMsg(track_id='b7aed502-4373-4966-ab41-9cdfdd88be23', svg_name='2.train.svg', element_id='driver-indicator', animation_type='driver_connection', value=None, config={'attr': {'fill': 'red'}, 'duration': 0.5}, timestamp=None, test=False) +2026-01-09 16:44:11,575 DEBUG root [TrackingPublisher] publish_data_flow_event called +2026-01-09 16:44:11,575 DEBUG root [TrackingPublisher] preparing to create event for AnimationUpdateMsg(track_id='b7aed502-4373-4966-ab41-9cdfdd88be23', svg_name='2.train.svg', element_id='driver-indicator', animation_type='driver_connection', value=None, config={'attr': {'fill': 'red'}, 'duration': 0.5}, timestamp=None, test=False) +2026-01-09 16:44:11,575 DEBUG root [TrackingPublisher] created event b7aed502-4373-4966-ab41-9cdfdd88be23 DataFlowStatus.FORWARDED +2026-01-09 16:44:11,576 DEBUG root [TrackingPublisher] queued event b7aed502-4373-4966-ab41-9cdfdd88be23 DataFlowStatus.FORWARDED +2026-01-09 16:44:11,576 DEBUG root [TrackingPublisher] publish_data_flow_event called +2026-01-09 16:44:11,576 DEBUG root [TrackingPublisher] preparing to create event for DriverConnectStatus(track_id='1589f566-4dff-4dd9-9cce-40037c3404be', driver_name='TrainTestDriver', status='offline') +2026-01-09 16:44:11,576 DEBUG root [TrackingPublisher] created event 1589f566-4dff-4dd9-9cce-40037c3404be DataFlowStatus.CREATED +2026-01-09 16:44:11,576 DEBUG root [TrackingPublisher] queued event 1589f566-4dff-4dd9-9cce-40037c3404be DataFlowStatus.CREATED +2026-01-09 16:44:11,577 DEBUG openscada_lite.modules.base.base_controller [communication] Publishing message: DriverConnectStatus(track_id='1589f566-4dff-4dd9-9cce-40037c3404be', driver_name='TrainTestDriver', status='offline') +2026-01-09 16:44:11,577 DEBUG root [TrackingPublisher] publish_data_flow_event called +2026-01-09 16:44:11,577 DEBUG root [TrackingPublisher] preparing to create event for DriverConnectStatus(track_id='1589f566-4dff-4dd9-9cce-40037c3404be', driver_name='TrainTestDriver', status='offline') +2026-01-09 16:44:11,577 DEBUG root [TrackingPublisher] created event 1589f566-4dff-4dd9-9cce-40037c3404be DataFlowStatus.FORWARDED +2026-01-09 16:44:11,578 DEBUG root [TrackingPublisher] queued event 1589f566-4dff-4dd9-9cce-40037c3404be DataFlowStatus.FORWARDED +2026-01-09 16:44:11,578 DEBUG root [TrackingPublisher] publish_data_flow_event called +2026-01-09 16:44:11,578 DEBUG root [TrackingPublisher] preparing to create event for DriverConnectStatus(track_id='1589f566-4dff-4dd9-9cce-40037c3404be', driver_name='TrainTestDriver', status='offline') +2026-01-09 16:44:11,579 DEBUG root [TrackingPublisher] created event 1589f566-4dff-4dd9-9cce-40037c3404be DataFlowStatus.RECEIVED +2026-01-09 16:44:11,579 DEBUG root [TrackingPublisher] queued event 1589f566-4dff-4dd9-9cce-40037c3404be DataFlowStatus.RECEIVED +2026-01-09 16:44:11,601 ERROR openscada_lite.app [LIFESPAN] Error loading modules: module 'openscada_lite.modules.schedule.model' has no attribute 'ScheduleModel' +Traceback (most recent call last): + File "D:\git-extern\python-scada\src\openscada_lite\app.py", line 113, in lifespan + await module_loader(system_config, sio, event_bus, app) + File "D:\git-extern\python-scada\src\openscada_lite\modules\loader.py", line 29, in module_loader + model_cls = getattr( + importlib.import_module(f"{base_path}.model"), f"{class_prefix}Model" + ) +AttributeError: module 'openscada_lite.modules.schedule.model' has no attribute 'ScheduleModel' +2026-01-09 16:44:11,605 INFO openscada_lite.app [LIFESPAN] Startup complete +2026-01-09 16:44:11,762 DEBUG root [TrackingPublisher] worker got item from queue: DataFlowEventMsg(track_id='b78b6ed6-61ea-4ac2-a292-1f3ce1bee380', event_type='DriverConnectStatus', source='CommunicationService', status=, timestamp=datetime.datetime(2026, 1, 9, 16, 44, 11, 560716), payload={'driver_name': 'OPCUAServerDriver', 'status': 'offline'}) +2026-01-09 16:44:11,762 DEBUG root [TrackingPublisher] scheduling publish for b78b6ed6-61ea-4ac2-a292-1f3ce1bee380 +2026-01-09 16:44:11,763 DEBUG root [TrackingPublisher] worker got item from queue: DataFlowEventMsg(track_id='b78b6ed6-61ea-4ac2-a292-1f3ce1bee380', event_type='DriverConnectStatus', source='CommunicationController', status=, timestamp=datetime.datetime(2026, 1, 9, 16, 44, 11, 563089), payload={'driver_name': 'OPCUAServerDriver', 'status': 'offline'}) +2026-01-09 16:44:11,764 DEBUG openscada_lite.modules.base.base_controller [tracking] Publishing message: DataFlowEventMsg(track_id='b78b6ed6-61ea-4ac2-a292-1f3ce1bee380', event_type='DriverConnectStatus', source='CommunicationService', status=, timestamp=datetime.datetime(2026, 1, 9, 16, 44, 11, 560716), payload={'driver_name': 'OPCUAServerDriver', 'status': 'offline'}) +2026-01-09 16:44:11,764 DEBUG root [TrackingPublisher] scheduling publish for b78b6ed6-61ea-4ac2-a292-1f3ce1bee380 +2026-01-09 16:44:11,765 DEBUG root [TrackingPublisher] worker got item from queue: DataFlowEventMsg(track_id='b78b6ed6-61ea-4ac2-a292-1f3ce1bee380', event_type='DriverConnectStatus', source='ConnectorManager', status=, timestamp=datetime.datetime(2026, 1, 9, 16, 44, 11, 564280), payload={'driver_name': 'OPCUAServerDriver', 'status': 'offline'}) +2026-01-09 16:44:11,766 DEBUG openscada_lite.modules.base.base_controller [tracking] Publishing message: DataFlowEventMsg(track_id='b78b6ed6-61ea-4ac2-a292-1f3ce1bee380', event_type='DriverConnectStatus', source='CommunicationController', status=, timestamp=datetime.datetime(2026, 1, 9, 16, 44, 11, 563089), payload={'driver_name': 'OPCUAServerDriver', 'status': 'offline'}) +2026-01-09 16:44:11,766 DEBUG root [TrackingPublisher] scheduling publish for b78b6ed6-61ea-4ac2-a292-1f3ce1bee380 +2026-01-09 16:44:11,767 DEBUG root [TrackingPublisher] worker got item from queue: DataFlowEventMsg(track_id='09cd101e-3ce1-4e45-820f-3f71f19ed141', event_type='DriverConnectStatus', source='CommunicationService', status=, timestamp=datetime.datetime(2026, 1, 9, 16, 44, 11, 565594), payload={'driver_name': 'CameraDriver', 'status': 'offline'}) +2026-01-09 16:44:11,767 DEBUG openscada_lite.modules.base.base_controller [tracking] Publishing message: DataFlowEventMsg(track_id='b78b6ed6-61ea-4ac2-a292-1f3ce1bee380', event_type='DriverConnectStatus', source='ConnectorManager', status=, timestamp=datetime.datetime(2026, 1, 9, 16, 44, 11, 564280), payload={'driver_name': 'OPCUAServerDriver', 'status': 'offline'}) +2026-01-09 16:44:11,767 DEBUG root [TrackingPublisher] scheduling publish for 09cd101e-3ce1-4e45-820f-3f71f19ed141 +2026-01-09 16:44:11,768 DEBUG root [TrackingPublisher] worker got item from queue: DataFlowEventMsg(track_id='09cd101e-3ce1-4e45-820f-3f71f19ed141', event_type='DriverConnectStatus', source='CommunicationController', status=, timestamp=datetime.datetime(2026, 1, 9, 16, 44, 11, 567044), payload={'driver_name': 'CameraDriver', 'status': 'offline'}) +2026-01-09 16:44:11,768 DEBUG openscada_lite.modules.base.base_controller [tracking] Publishing message: DataFlowEventMsg(track_id='09cd101e-3ce1-4e45-820f-3f71f19ed141', event_type='DriverConnectStatus', source='CommunicationService', status=, timestamp=datetime.datetime(2026, 1, 9, 16, 44, 11, 565594), payload={'driver_name': 'CameraDriver', 'status': 'offline'}) +2026-01-09 16:44:11,768 DEBUG root [TrackingPublisher] scheduling publish for 09cd101e-3ce1-4e45-820f-3f71f19ed141 +2026-01-09 16:44:11,769 DEBUG root [TrackingPublisher] worker got item from queue: DataFlowEventMsg(track_id='09cd101e-3ce1-4e45-820f-3f71f19ed141', event_type='DriverConnectStatus', source='ConnectorManager', status=, timestamp=datetime.datetime(2026, 1, 9, 16, 44, 11, 567992), payload={'driver_name': 'CameraDriver', 'status': 'offline'}) +2026-01-09 16:44:11,769 DEBUG openscada_lite.modules.base.base_controller [tracking] Publishing message: DataFlowEventMsg(track_id='09cd101e-3ce1-4e45-820f-3f71f19ed141', event_type='DriverConnectStatus', source='CommunicationController', status=, timestamp=datetime.datetime(2026, 1, 9, 16, 44, 11, 567044), payload={'driver_name': 'CameraDriver', 'status': 'offline'}) +2026-01-09 16:44:11,770 DEBUG root [TrackingPublisher] scheduling publish for 09cd101e-3ce1-4e45-820f-3f71f19ed141 +2026-01-09 16:44:11,770 DEBUG root [TrackingPublisher] worker got item from queue: DataFlowEventMsg(track_id='921fba87-588c-41d1-9622-417297c8b079', event_type='DriverConnectStatus', source='CommunicationService', status=, timestamp=datetime.datetime(2026, 1, 9, 16, 44, 11, 569059), payload={'driver_name': 'WaterTank', 'status': 'offline'}) +2026-01-09 16:44:11,771 DEBUG openscada_lite.modules.base.base_controller [tracking] Publishing message: DataFlowEventMsg(track_id='09cd101e-3ce1-4e45-820f-3f71f19ed141', event_type='DriverConnectStatus', source='ConnectorManager', status=, timestamp=datetime.datetime(2026, 1, 9, 16, 44, 11, 567992), payload={'driver_name': 'CameraDriver', 'status': 'offline'}) +2026-01-09 16:44:11,771 DEBUG root [TrackingPublisher] scheduling publish for 921fba87-588c-41d1-9622-417297c8b079 +2026-01-09 16:44:11,772 DEBUG root [TrackingPublisher] worker got item from queue: DataFlowEventMsg(track_id='921fba87-588c-41d1-9622-417297c8b079', event_type='DriverConnectStatus', source='CommunicationController', status=, timestamp=datetime.datetime(2026, 1, 9, 16, 44, 11, 570117), payload={'driver_name': 'WaterTank', 'status': 'offline'}) +2026-01-09 16:44:11,772 DEBUG openscada_lite.modules.base.base_controller [tracking] Publishing message: DataFlowEventMsg(track_id='921fba87-588c-41d1-9622-417297c8b079', event_type='DriverConnectStatus', source='CommunicationService', status=, timestamp=datetime.datetime(2026, 1, 9, 16, 44, 11, 569059), payload={'driver_name': 'WaterTank', 'status': 'offline'}) +2026-01-09 16:44:11,772 DEBUG root [TrackingPublisher] scheduling publish for 921fba87-588c-41d1-9622-417297c8b079 +2026-01-09 16:44:11,773 DEBUG root [TrackingPublisher] worker got item from queue: DataFlowEventMsg(track_id='921fba87-588c-41d1-9622-417297c8b079', event_type='DriverConnectStatus', source='ConnectorManager', status=, timestamp=datetime.datetime(2026, 1, 9, 16, 44, 11, 571003), payload={'driver_name': 'WaterTank', 'status': 'offline'}) +2026-01-09 16:44:11,773 DEBUG openscada_lite.modules.base.base_controller [tracking] Publishing message: DataFlowEventMsg(track_id='921fba87-588c-41d1-9622-417297c8b079', event_type='DriverConnectStatus', source='CommunicationController', status=, timestamp=datetime.datetime(2026, 1, 9, 16, 44, 11, 570117), payload={'driver_name': 'WaterTank', 'status': 'offline'}) +2026-01-09 16:44:11,773 DEBUG root [TrackingPublisher] scheduling publish for 921fba87-588c-41d1-9622-417297c8b079 +2026-01-09 16:44:11,774 DEBUG root [TrackingPublisher] worker got item from queue: DataFlowEventMsg(track_id='edbc2fd5-33bd-4dc4-a570-55a34707c82f', event_type='DriverConnectStatus', source='CommunicationService', status=, timestamp=datetime.datetime(2026, 1, 9, 16, 44, 11, 571929), payload={'driver_name': 'StressTest', 'status': 'offline'}) +2026-01-09 16:44:11,774 DEBUG openscada_lite.modules.base.base_controller [tracking] Publishing message: DataFlowEventMsg(track_id='921fba87-588c-41d1-9622-417297c8b079', event_type='DriverConnectStatus', source='ConnectorManager', status=, timestamp=datetime.datetime(2026, 1, 9, 16, 44, 11, 571003), payload={'driver_name': 'WaterTank', 'status': 'offline'}) +2026-01-09 16:44:11,775 DEBUG root [TrackingPublisher] scheduling publish for edbc2fd5-33bd-4dc4-a570-55a34707c82f +2026-01-09 16:44:11,775 DEBUG root [TrackingPublisher] worker got item from queue: DataFlowEventMsg(track_id='edbc2fd5-33bd-4dc4-a570-55a34707c82f', event_type='DriverConnectStatus', source='CommunicationController', status=, timestamp=datetime.datetime(2026, 1, 9, 16, 44, 11, 573210), payload={'driver_name': 'StressTest', 'status': 'offline'}) +2026-01-09 16:44:11,776 DEBUG openscada_lite.modules.base.base_controller [tracking] Publishing message: DataFlowEventMsg(track_id='edbc2fd5-33bd-4dc4-a570-55a34707c82f', event_type='DriverConnectStatus', source='CommunicationService', status=, timestamp=datetime.datetime(2026, 1, 9, 16, 44, 11, 571929), payload={'driver_name': 'StressTest', 'status': 'offline'}) +2026-01-09 16:44:11,776 DEBUG root [TrackingPublisher] scheduling publish for edbc2fd5-33bd-4dc4-a570-55a34707c82f +2026-01-09 16:44:11,776 DEBUG openscada_lite.modules.base.base_controller [tracking] Publishing message: DataFlowEventMsg(track_id='edbc2fd5-33bd-4dc4-a570-55a34707c82f', event_type='DriverConnectStatus', source='CommunicationController', status=, timestamp=datetime.datetime(2026, 1, 9, 16, 44, 11, 573210), payload={'driver_name': 'StressTest', 'status': 'offline'}) +2026-01-09 16:44:11,777 DEBUG root [TrackingPublisher] worker got item from queue: DataFlowEventMsg(track_id='edbc2fd5-33bd-4dc4-a570-55a34707c82f', event_type='DriverConnectStatus', source='ConnectorManager', status=, timestamp=datetime.datetime(2026, 1, 9, 16, 44, 11, 574164), payload={'driver_name': 'StressTest', 'status': 'offline'}) +2026-01-09 16:44:11,777 DEBUG root [TrackingPublisher] scheduling publish for edbc2fd5-33bd-4dc4-a570-55a34707c82f +2026-01-09 16:44:11,777 DEBUG root [TrackingPublisher] worker got item from queue: DataFlowEventMsg(track_id='b7aed502-4373-4966-ab41-9cdfdd88be23', event_type='AnimationUpdateMsg', source='AnimationController', status=, timestamp=datetime.datetime(2026, 1, 9, 16, 44, 11, 575804), payload={'element_id': 'driver-indicator', 'animation': 'driver_connection', 'value': None, 'svg_name': '2.train.svg', 'timestamp': None}) +2026-01-09 16:44:11,777 DEBUG openscada_lite.modules.base.base_controller [tracking] Publishing message: DataFlowEventMsg(track_id='edbc2fd5-33bd-4dc4-a570-55a34707c82f', event_type='DriverConnectStatus', source='ConnectorManager', status=, timestamp=datetime.datetime(2026, 1, 9, 16, 44, 11, 574164), payload={'driver_name': 'StressTest', 'status': 'offline'}) +2026-01-09 16:44:11,778 DEBUG root [TrackingPublisher] scheduling publish for b7aed502-4373-4966-ab41-9cdfdd88be23 +2026-01-09 16:44:11,778 DEBUG root [TrackingPublisher] worker got item from queue: DataFlowEventMsg(track_id='1589f566-4dff-4dd9-9cce-40037c3404be', event_type='DriverConnectStatus', source='CommunicationService', status=, timestamp=datetime.datetime(2026, 1, 9, 16, 44, 11, 576698), payload={'driver_name': 'TrainTestDriver', 'status': 'offline'}) +2026-01-09 16:44:11,778 DEBUG openscada_lite.modules.base.base_controller [tracking] Publishing message: DataFlowEventMsg(track_id='b7aed502-4373-4966-ab41-9cdfdd88be23', event_type='AnimationUpdateMsg', source='AnimationController', status=, timestamp=datetime.datetime(2026, 1, 9, 16, 44, 11, 575804), payload={'element_id': 'driver-indicator', 'animation': 'driver_connection', 'value': None, 'svg_name': '2.train.svg', 'timestamp': None}) +2026-01-09 16:44:11,778 DEBUG root [TrackingPublisher] scheduling publish for 1589f566-4dff-4dd9-9cce-40037c3404be +2026-01-09 16:44:11,779 DEBUG root [TrackingPublisher] worker got item from queue: DataFlowEventMsg(track_id='1589f566-4dff-4dd9-9cce-40037c3404be', event_type='DriverConnectStatus', source='CommunicationController', status=, timestamp=datetime.datetime(2026, 1, 9, 16, 44, 11, 577915), payload={'driver_name': 'TrainTestDriver', 'status': 'offline'}) +2026-01-09 16:44:11,779 DEBUG openscada_lite.modules.base.base_controller [tracking] Publishing message: DataFlowEventMsg(track_id='1589f566-4dff-4dd9-9cce-40037c3404be', event_type='DriverConnectStatus', source='CommunicationService', status=, timestamp=datetime.datetime(2026, 1, 9, 16, 44, 11, 576698), payload={'driver_name': 'TrainTestDriver', 'status': 'offline'}) +2026-01-09 16:44:11,779 DEBUG root [TrackingPublisher] scheduling publish for 1589f566-4dff-4dd9-9cce-40037c3404be +2026-01-09 16:44:11,780 DEBUG root [TrackingPublisher] worker got item from queue: DataFlowEventMsg(track_id='1589f566-4dff-4dd9-9cce-40037c3404be', event_type='DriverConnectStatus', source='ConnectorManager', status=, timestamp=datetime.datetime(2026, 1, 9, 16, 44, 11, 579018), payload={'driver_name': 'TrainTestDriver', 'status': 'offline'}) +2026-01-09 16:44:11,780 DEBUG openscada_lite.modules.base.base_controller [tracking] Publishing message: DataFlowEventMsg(track_id='1589f566-4dff-4dd9-9cce-40037c3404be', event_type='DriverConnectStatus', source='CommunicationController', status=, timestamp=datetime.datetime(2026, 1, 9, 16, 44, 11, 577915), payload={'driver_name': 'TrainTestDriver', 'status': 'offline'}) +2026-01-09 16:44:11,780 DEBUG root [TrackingPublisher] scheduling publish for 1589f566-4dff-4dd9-9cce-40037c3404be +2026-01-09 16:44:11,781 DEBUG openscada_lite.modules.base.base_controller [tracking] Publishing message: DataFlowEventMsg(track_id='1589f566-4dff-4dd9-9cce-40037c3404be', event_type='DriverConnectStatus', source='ConnectorManager', status=, timestamp=datetime.datetime(2026, 1, 9, 16, 44, 11, 579018), payload={'driver_name': 'TrainTestDriver', 'status': 'offline'}) +2026-01-09 16:46:39,641 INFO openscada_lite.app [LIFESPAN] Startup starting... +2026-01-09 16:46:39,642 DEBUG root [TrackingPublisher] loop injected: +2026-01-09 16:46:39,643 DEBUG root [TrackingPublisher] worker started, waiting for events... +2026-01-09 16:46:40,139 INFO openscada_lite.modules.communication.drivers.opc_ua_server_driver [OPCUA] Will expose 6 nodes on connect() +2026-01-09 16:46:40,139 INFO openscada_lite.modules.communication.drivers.test.test_driver [INIT] Creating TestDriver CameraDriver +2026-01-09 16:46:40,139 INFO openscada_lite.modules.communication.drivers.test.test_driver [INIT] Creating TestDriver WaterTank +2026-01-09 16:46:40,140 INFO openscada_lite.modules.communication.drivers.test.test_driver [INIT] Creating TestDriver StressTest +2026-01-09 16:46:40,141 INFO openscada_lite.modules.communication.drivers.test.test_driver [INIT] Creating TestDriver TrainTestDriver +2026-01-09 16:46:40,143 DEBUG root [TrackingPublisher] publish_data_flow_event called +2026-01-09 16:46:40,143 DEBUG root [TrackingPublisher] preparing to create event for DriverConnectStatus(track_id='a37ec8e0-d5b0-4a58-93d1-a519bd955c13', driver_name='OPCUAServerDriver', status='offline') +2026-01-09 16:46:40,143 DEBUG root [TrackingPublisher] created event a37ec8e0-d5b0-4a58-93d1-a519bd955c13 DataFlowStatus.CREATED +2026-01-09 16:46:40,143 DEBUG root [TrackingPublisher] queued event a37ec8e0-d5b0-4a58-93d1-a519bd955c13 DataFlowStatus.CREATED +2026-01-09 16:46:40,144 DEBUG root [TrackingPublisher] worker got item from queue: DataFlowEventMsg(track_id='a37ec8e0-d5b0-4a58-93d1-a519bd955c13', event_type='DriverConnectStatus', source='CommunicationService', status=, timestamp=datetime.datetime(2026, 1, 9, 16, 46, 40, 143590), payload={'driver_name': 'OPCUAServerDriver', 'status': 'offline'}) +2026-01-09 16:46:40,144 DEBUG openscada_lite.modules.base.base_controller [communication] Publishing message: DriverConnectStatus(track_id='a37ec8e0-d5b0-4a58-93d1-a519bd955c13', driver_name='OPCUAServerDriver', status='offline') +2026-01-09 16:46:40,144 DEBUG root [TrackingPublisher] not enabled or loop not ready, requeuing event a37ec8e0-d5b0-4a58-93d1-a519bd955c13 +2026-01-09 16:46:40,145 DEBUG root [TrackingPublisher] publish_data_flow_event called +2026-01-09 16:46:40,145 DEBUG root [TrackingPublisher] preparing to create event for DriverConnectStatus(track_id='a37ec8e0-d5b0-4a58-93d1-a519bd955c13', driver_name='OPCUAServerDriver', status='offline') +2026-01-09 16:46:40,145 DEBUG root [TrackingPublisher] created event a37ec8e0-d5b0-4a58-93d1-a519bd955c13 DataFlowStatus.FORWARDED +2026-01-09 16:46:40,146 DEBUG root [TrackingPublisher] queued event a37ec8e0-d5b0-4a58-93d1-a519bd955c13 DataFlowStatus.FORWARDED +2026-01-09 16:46:40,146 DEBUG root [TrackingPublisher] publish_data_flow_event called +2026-01-09 16:46:40,146 DEBUG root [TrackingPublisher] preparing to create event for DriverConnectStatus(track_id='a37ec8e0-d5b0-4a58-93d1-a519bd955c13', driver_name='OPCUAServerDriver', status='offline') +2026-01-09 16:46:40,147 DEBUG root [TrackingPublisher] created event a37ec8e0-d5b0-4a58-93d1-a519bd955c13 DataFlowStatus.RECEIVED +2026-01-09 16:46:40,147 DEBUG root [TrackingPublisher] queued event a37ec8e0-d5b0-4a58-93d1-a519bd955c13 DataFlowStatus.RECEIVED +2026-01-09 16:46:40,147 DEBUG root [TrackingPublisher] publish_data_flow_event called +2026-01-09 16:46:40,147 DEBUG root [TrackingPublisher] preparing to create event for DriverConnectStatus(track_id='b2050534-c1db-4b94-8cc5-3bd70ec032b1', driver_name='CameraDriver', status='offline') +2026-01-09 16:46:40,148 DEBUG root [TrackingPublisher] created event b2050534-c1db-4b94-8cc5-3bd70ec032b1 DataFlowStatus.CREATED +2026-01-09 16:46:40,148 DEBUG root [TrackingPublisher] queued event b2050534-c1db-4b94-8cc5-3bd70ec032b1 DataFlowStatus.CREATED +2026-01-09 16:46:40,148 DEBUG openscada_lite.modules.base.base_controller [communication] Publishing message: DriverConnectStatus(track_id='b2050534-c1db-4b94-8cc5-3bd70ec032b1', driver_name='CameraDriver', status='offline') +2026-01-09 16:46:40,149 DEBUG root [TrackingPublisher] publish_data_flow_event called +2026-01-09 16:46:40,149 DEBUG root [TrackingPublisher] preparing to create event for DriverConnectStatus(track_id='b2050534-c1db-4b94-8cc5-3bd70ec032b1', driver_name='CameraDriver', status='offline') +2026-01-09 16:46:40,149 DEBUG root [TrackingPublisher] created event b2050534-c1db-4b94-8cc5-3bd70ec032b1 DataFlowStatus.FORWARDED +2026-01-09 16:46:40,149 DEBUG root [TrackingPublisher] queued event b2050534-c1db-4b94-8cc5-3bd70ec032b1 DataFlowStatus.FORWARDED +2026-01-09 16:46:40,150 DEBUG root [TrackingPublisher] publish_data_flow_event called +2026-01-09 16:46:40,150 DEBUG root [TrackingPublisher] preparing to create event for DriverConnectStatus(track_id='b2050534-c1db-4b94-8cc5-3bd70ec032b1', driver_name='CameraDriver', status='offline') +2026-01-09 16:46:40,150 DEBUG root [TrackingPublisher] created event b2050534-c1db-4b94-8cc5-3bd70ec032b1 DataFlowStatus.RECEIVED +2026-01-09 16:46:40,151 DEBUG root [TrackingPublisher] queued event b2050534-c1db-4b94-8cc5-3bd70ec032b1 DataFlowStatus.RECEIVED +2026-01-09 16:46:40,151 DEBUG root [TrackingPublisher] publish_data_flow_event called +2026-01-09 16:46:40,151 DEBUG root [TrackingPublisher] preparing to create event for DriverConnectStatus(track_id='a40ab5ab-a656-4ca8-9595-4a9b4801bda4', driver_name='WaterTank', status='offline') +2026-01-09 16:46:40,152 DEBUG root [TrackingPublisher] created event a40ab5ab-a656-4ca8-9595-4a9b4801bda4 DataFlowStatus.CREATED +2026-01-09 16:46:40,152 DEBUG root [TrackingPublisher] queued event a40ab5ab-a656-4ca8-9595-4a9b4801bda4 DataFlowStatus.CREATED +2026-01-09 16:46:40,152 DEBUG openscada_lite.modules.base.base_controller [communication] Publishing message: DriverConnectStatus(track_id='a40ab5ab-a656-4ca8-9595-4a9b4801bda4', driver_name='WaterTank', status='offline') +2026-01-09 16:46:40,152 DEBUG root [TrackingPublisher] publish_data_flow_event called +2026-01-09 16:46:40,153 DEBUG root [TrackingPublisher] preparing to create event for DriverConnectStatus(track_id='a40ab5ab-a656-4ca8-9595-4a9b4801bda4', driver_name='WaterTank', status='offline') +2026-01-09 16:46:40,153 DEBUG root [TrackingPublisher] created event a40ab5ab-a656-4ca8-9595-4a9b4801bda4 DataFlowStatus.FORWARDED +2026-01-09 16:46:40,153 DEBUG root [TrackingPublisher] queued event a40ab5ab-a656-4ca8-9595-4a9b4801bda4 DataFlowStatus.FORWARDED +2026-01-09 16:46:40,154 DEBUG root [TrackingPublisher] publish_data_flow_event called +2026-01-09 16:46:40,154 DEBUG root [TrackingPublisher] preparing to create event for DriverConnectStatus(track_id='a40ab5ab-a656-4ca8-9595-4a9b4801bda4', driver_name='WaterTank', status='offline') +2026-01-09 16:46:40,154 DEBUG root [TrackingPublisher] created event a40ab5ab-a656-4ca8-9595-4a9b4801bda4 DataFlowStatus.RECEIVED +2026-01-09 16:46:40,154 DEBUG root [TrackingPublisher] queued event a40ab5ab-a656-4ca8-9595-4a9b4801bda4 DataFlowStatus.RECEIVED +2026-01-09 16:46:40,155 DEBUG root [TrackingPublisher] publish_data_flow_event called +2026-01-09 16:46:40,155 DEBUG root [TrackingPublisher] preparing to create event for DriverConnectStatus(track_id='4b6b71ed-8c8d-4b0b-b05b-8564f512b4d9', driver_name='StressTest', status='offline') +2026-01-09 16:46:40,155 DEBUG root [TrackingPublisher] created event 4b6b71ed-8c8d-4b0b-b05b-8564f512b4d9 DataFlowStatus.CREATED +2026-01-09 16:46:40,156 DEBUG root [TrackingPublisher] queued event 4b6b71ed-8c8d-4b0b-b05b-8564f512b4d9 DataFlowStatus.CREATED +2026-01-09 16:46:40,156 DEBUG openscada_lite.modules.base.base_controller [communication] Publishing message: DriverConnectStatus(track_id='4b6b71ed-8c8d-4b0b-b05b-8564f512b4d9', driver_name='StressTest', status='offline') +2026-01-09 16:46:40,156 DEBUG root [TrackingPublisher] publish_data_flow_event called +2026-01-09 16:46:40,157 DEBUG root [TrackingPublisher] preparing to create event for DriverConnectStatus(track_id='4b6b71ed-8c8d-4b0b-b05b-8564f512b4d9', driver_name='StressTest', status='offline') +2026-01-09 16:46:40,157 DEBUG root [TrackingPublisher] created event 4b6b71ed-8c8d-4b0b-b05b-8564f512b4d9 DataFlowStatus.FORWARDED +2026-01-09 16:46:40,157 DEBUG root [TrackingPublisher] queued event 4b6b71ed-8c8d-4b0b-b05b-8564f512b4d9 DataFlowStatus.FORWARDED +2026-01-09 16:46:40,157 DEBUG root [TrackingPublisher] publish_data_flow_event called +2026-01-09 16:46:40,157 DEBUG root [TrackingPublisher] preparing to create event for DriverConnectStatus(track_id='4b6b71ed-8c8d-4b0b-b05b-8564f512b4d9', driver_name='StressTest', status='offline') +2026-01-09 16:46:40,158 DEBUG root [TrackingPublisher] created event 4b6b71ed-8c8d-4b0b-b05b-8564f512b4d9 DataFlowStatus.RECEIVED +2026-01-09 16:46:40,158 DEBUG root [TrackingPublisher] queued event 4b6b71ed-8c8d-4b0b-b05b-8564f512b4d9 DataFlowStatus.RECEIVED +2026-01-09 16:46:40,158 DEBUG openscada_lite.modules.base.base_controller [animation] Publishing message: AnimationUpdateMsg(track_id='9a7b875f-232f-4db5-8fc4-f83fccee4f43', svg_name='2.train.svg', element_id='driver-indicator', animation_type='driver_connection', value=None, config={'attr': {'fill': 'red'}, 'duration': 0.5}, timestamp=None, test=False) +2026-01-09 16:46:40,159 DEBUG root [TrackingPublisher] publish_data_flow_event called +2026-01-09 16:46:40,159 DEBUG root [TrackingPublisher] preparing to create event for AnimationUpdateMsg(track_id='9a7b875f-232f-4db5-8fc4-f83fccee4f43', svg_name='2.train.svg', element_id='driver-indicator', animation_type='driver_connection', value=None, config={'attr': {'fill': 'red'}, 'duration': 0.5}, timestamp=None, test=False) +2026-01-09 16:46:40,160 DEBUG root [TrackingPublisher] created event 9a7b875f-232f-4db5-8fc4-f83fccee4f43 DataFlowStatus.FORWARDED +2026-01-09 16:46:40,160 DEBUG root [TrackingPublisher] queued event 9a7b875f-232f-4db5-8fc4-f83fccee4f43 DataFlowStatus.FORWARDED +2026-01-09 16:46:40,160 DEBUG root [TrackingPublisher] publish_data_flow_event called +2026-01-09 16:46:40,160 DEBUG root [TrackingPublisher] preparing to create event for DriverConnectStatus(track_id='cc4be47f-68f1-4710-a925-ec2ac94701d7', driver_name='TrainTestDriver', status='offline') +2026-01-09 16:46:40,161 DEBUG root [TrackingPublisher] created event cc4be47f-68f1-4710-a925-ec2ac94701d7 DataFlowStatus.CREATED +2026-01-09 16:46:40,161 DEBUG root [TrackingPublisher] queued event cc4be47f-68f1-4710-a925-ec2ac94701d7 DataFlowStatus.CREATED +2026-01-09 16:46:40,161 DEBUG openscada_lite.modules.base.base_controller [communication] Publishing message: DriverConnectStatus(track_id='cc4be47f-68f1-4710-a925-ec2ac94701d7', driver_name='TrainTestDriver', status='offline') +2026-01-09 16:46:40,162 DEBUG root [TrackingPublisher] publish_data_flow_event called +2026-01-09 16:46:40,162 DEBUG root [TrackingPublisher] preparing to create event for DriverConnectStatus(track_id='cc4be47f-68f1-4710-a925-ec2ac94701d7', driver_name='TrainTestDriver', status='offline') +2026-01-09 16:46:40,162 DEBUG root [TrackingPublisher] created event cc4be47f-68f1-4710-a925-ec2ac94701d7 DataFlowStatus.FORWARDED +2026-01-09 16:46:40,162 DEBUG root [TrackingPublisher] queued event cc4be47f-68f1-4710-a925-ec2ac94701d7 DataFlowStatus.FORWARDED +2026-01-09 16:46:40,163 DEBUG root [TrackingPublisher] publish_data_flow_event called +2026-01-09 16:46:40,163 DEBUG root [TrackingPublisher] preparing to create event for DriverConnectStatus(track_id='cc4be47f-68f1-4710-a925-ec2ac94701d7', driver_name='TrainTestDriver', status='offline') +2026-01-09 16:46:40,163 DEBUG root [TrackingPublisher] created event cc4be47f-68f1-4710-a925-ec2ac94701d7 DataFlowStatus.RECEIVED +2026-01-09 16:46:40,163 DEBUG root [TrackingPublisher] queued event cc4be47f-68f1-4710-a925-ec2ac94701d7 DataFlowStatus.RECEIVED +2026-01-09 16:46:40,344 DEBUG root [TrackingPublisher] worker got item from queue: DataFlowEventMsg(track_id='a37ec8e0-d5b0-4a58-93d1-a519bd955c13', event_type='DriverConnectStatus', source='CommunicationService', status=, timestamp=datetime.datetime(2026, 1, 9, 16, 46, 40, 143590), payload={'driver_name': 'OPCUAServerDriver', 'status': 'offline'}) +2026-01-09 16:46:40,345 DEBUG root [TrackingPublisher] not enabled or loop not ready, requeuing event a37ec8e0-d5b0-4a58-93d1-a519bd955c13 +2026-01-09 16:46:40,504 ERROR openscada_lite.app [LIFESPAN] Error loading modules: No module named 'openscada_lite.modules.rule.actioncommands' +Traceback (most recent call last): + File "D:\git-extern\python-scada\src\openscada_lite\app.py", line 113, in lifespan + await module_loader(system_config, sio, event_bus, app) + File "D:\git-extern\python-scada\src\openscada_lite\modules\loader.py", line 39, in module_loader + importlib.import_module(f"{base_path}.service"), f"{class_prefix}Service" + ~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^ + File "C:\Python313\Lib\importlib\__init__.py", line 88, in import_module + return _bootstrap._gcd_import(name[level:], package, level) + ~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "", line 1387, in _gcd_import + File "", line 1360, in _find_and_load + File "", line 1331, in _find_and_load_unlocked + File "", line 935, in _load_unlocked + File "", line 1026, in exec_module + File "", line 488, in _call_with_frames_removed + File "D:\git-extern\python-scada\src\openscada_lite\modules\schedule\service.py", line 5, in + from openscada_lite.common.actions.action_utils import execute_action + File "D:\git-extern\python-scada\src\openscada_lite\common\actions\action_utils.py", line 2, in + from openscada_lite.common.actions.action_map import ACTION_MAP + File "D:\git-extern\python-scada\src\openscada_lite\common\actions\action_map.py", line 19, in + from openscada_lite.common.actions.lower_alarm import LowerAlarmAction + File "D:\git-extern\python-scada\src\openscada_lite\common\actions\lower_alarm.py", line 17, in + from openscada_lite.modules.rule.actioncommands.action import Action +ModuleNotFoundError: No module named 'openscada_lite.modules.rule.actioncommands' +2026-01-09 16:46:40,509 INFO openscada_lite.app [LIFESPAN] Startup complete +2026-01-09 16:46:40,545 DEBUG root [TrackingPublisher] worker got item from queue: DataFlowEventMsg(track_id='a37ec8e0-d5b0-4a58-93d1-a519bd955c13', event_type='DriverConnectStatus', source='CommunicationController', status=, timestamp=datetime.datetime(2026, 1, 9, 16, 46, 40, 145854), payload={'driver_name': 'OPCUAServerDriver', 'status': 'offline'}) +2026-01-09 16:46:40,546 DEBUG root [TrackingPublisher] scheduling publish for a37ec8e0-d5b0-4a58-93d1-a519bd955c13 +2026-01-09 16:46:40,547 DEBUG root [TrackingPublisher] worker got item from queue: DataFlowEventMsg(track_id='a37ec8e0-d5b0-4a58-93d1-a519bd955c13', event_type='DriverConnectStatus', source='ConnectorManager', status=, timestamp=datetime.datetime(2026, 1, 9, 16, 46, 40, 147020), payload={'driver_name': 'OPCUAServerDriver', 'status': 'offline'}) +2026-01-09 16:46:40,547 DEBUG openscada_lite.modules.base.base_controller [tracking] Publishing message: DataFlowEventMsg(track_id='a37ec8e0-d5b0-4a58-93d1-a519bd955c13', event_type='DriverConnectStatus', source='CommunicationController', status=, timestamp=datetime.datetime(2026, 1, 9, 16, 46, 40, 145854), payload={'driver_name': 'OPCUAServerDriver', 'status': 'offline'}) +2026-01-09 16:46:40,547 DEBUG root [TrackingPublisher] scheduling publish for a37ec8e0-d5b0-4a58-93d1-a519bd955c13 +2026-01-09 16:46:40,548 DEBUG root [TrackingPublisher] worker got item from queue: DataFlowEventMsg(track_id='b2050534-c1db-4b94-8cc5-3bd70ec032b1', event_type='DriverConnectStatus', source='CommunicationService', status=, timestamp=datetime.datetime(2026, 1, 9, 16, 46, 40, 148216), payload={'driver_name': 'CameraDriver', 'status': 'offline'}) +2026-01-09 16:46:40,548 DEBUG openscada_lite.modules.base.base_controller [tracking] Publishing message: DataFlowEventMsg(track_id='a37ec8e0-d5b0-4a58-93d1-a519bd955c13', event_type='DriverConnectStatus', source='ConnectorManager', status=, timestamp=datetime.datetime(2026, 1, 9, 16, 46, 40, 147020), payload={'driver_name': 'OPCUAServerDriver', 'status': 'offline'}) +2026-01-09 16:46:40,549 DEBUG root [TrackingPublisher] scheduling publish for b2050534-c1db-4b94-8cc5-3bd70ec032b1 +2026-01-09 16:46:40,549 DEBUG root [TrackingPublisher] worker got item from queue: DataFlowEventMsg(track_id='b2050534-c1db-4b94-8cc5-3bd70ec032b1', event_type='DriverConnectStatus', source='CommunicationController', status=, timestamp=datetime.datetime(2026, 1, 9, 16, 46, 40, 149611), payload={'driver_name': 'CameraDriver', 'status': 'offline'}) +2026-01-09 16:46:40,550 DEBUG openscada_lite.modules.base.base_controller [tracking] Publishing message: DataFlowEventMsg(track_id='b2050534-c1db-4b94-8cc5-3bd70ec032b1', event_type='DriverConnectStatus', source='CommunicationService', status=, timestamp=datetime.datetime(2026, 1, 9, 16, 46, 40, 148216), payload={'driver_name': 'CameraDriver', 'status': 'offline'}) +2026-01-09 16:46:40,550 DEBUG root [TrackingPublisher] scheduling publish for b2050534-c1db-4b94-8cc5-3bd70ec032b1 +2026-01-09 16:46:40,550 DEBUG root [TrackingPublisher] worker got item from queue: DataFlowEventMsg(track_id='b2050534-c1db-4b94-8cc5-3bd70ec032b1', event_type='DriverConnectStatus', source='ConnectorManager', status=, timestamp=datetime.datetime(2026, 1, 9, 16, 46, 40, 150766), payload={'driver_name': 'CameraDriver', 'status': 'offline'}) +2026-01-09 16:46:40,551 DEBUG openscada_lite.modules.base.base_controller [tracking] Publishing message: DataFlowEventMsg(track_id='b2050534-c1db-4b94-8cc5-3bd70ec032b1', event_type='DriverConnectStatus', source='CommunicationController', status=, timestamp=datetime.datetime(2026, 1, 9, 16, 46, 40, 149611), payload={'driver_name': 'CameraDriver', 'status': 'offline'}) +2026-01-09 16:46:40,551 DEBUG root [TrackingPublisher] scheduling publish for b2050534-c1db-4b94-8cc5-3bd70ec032b1 +2026-01-09 16:46:40,552 DEBUG root [TrackingPublisher] worker got item from queue: DataFlowEventMsg(track_id='a40ab5ab-a656-4ca8-9595-4a9b4801bda4', event_type='DriverConnectStatus', source='CommunicationService', status=, timestamp=datetime.datetime(2026, 1, 9, 16, 46, 40, 152080), payload={'driver_name': 'WaterTank', 'status': 'offline'}) +2026-01-09 16:46:40,552 DEBUG openscada_lite.modules.base.base_controller [tracking] Publishing message: DataFlowEventMsg(track_id='b2050534-c1db-4b94-8cc5-3bd70ec032b1', event_type='DriverConnectStatus', source='ConnectorManager', status=, timestamp=datetime.datetime(2026, 1, 9, 16, 46, 40, 150766), payload={'driver_name': 'CameraDriver', 'status': 'offline'}) +2026-01-09 16:46:40,552 DEBUG root [TrackingPublisher] scheduling publish for a40ab5ab-a656-4ca8-9595-4a9b4801bda4 +2026-01-09 16:46:40,553 DEBUG root [TrackingPublisher] worker got item from queue: DataFlowEventMsg(track_id='a40ab5ab-a656-4ca8-9595-4a9b4801bda4', event_type='DriverConnectStatus', source='CommunicationController', status=, timestamp=datetime.datetime(2026, 1, 9, 16, 46, 40, 153463), payload={'driver_name': 'WaterTank', 'status': 'offline'}) +2026-01-09 16:46:40,553 DEBUG openscada_lite.modules.base.base_controller [tracking] Publishing message: DataFlowEventMsg(track_id='a40ab5ab-a656-4ca8-9595-4a9b4801bda4', event_type='DriverConnectStatus', source='CommunicationService', status=, timestamp=datetime.datetime(2026, 1, 9, 16, 46, 40, 152080), payload={'driver_name': 'WaterTank', 'status': 'offline'}) +2026-01-09 16:46:40,553 DEBUG root [TrackingPublisher] scheduling publish for a40ab5ab-a656-4ca8-9595-4a9b4801bda4 +2026-01-09 16:46:40,554 DEBUG root [TrackingPublisher] worker got item from queue: DataFlowEventMsg(track_id='a40ab5ab-a656-4ca8-9595-4a9b4801bda4', event_type='DriverConnectStatus', source='ConnectorManager', status=, timestamp=datetime.datetime(2026, 1, 9, 16, 46, 40, 154570), payload={'driver_name': 'WaterTank', 'status': 'offline'}) +2026-01-09 16:46:40,554 DEBUG openscada_lite.modules.base.base_controller [tracking] Publishing message: DataFlowEventMsg(track_id='a40ab5ab-a656-4ca8-9595-4a9b4801bda4', event_type='DriverConnectStatus', source='CommunicationController', status=, timestamp=datetime.datetime(2026, 1, 9, 16, 46, 40, 153463), payload={'driver_name': 'WaterTank', 'status': 'offline'}) +2026-01-09 16:46:40,554 DEBUG root [TrackingPublisher] scheduling publish for a40ab5ab-a656-4ca8-9595-4a9b4801bda4 +2026-01-09 16:46:40,555 DEBUG root [TrackingPublisher] worker got item from queue: DataFlowEventMsg(track_id='4b6b71ed-8c8d-4b0b-b05b-8564f512b4d9', event_type='DriverConnectStatus', source='CommunicationService', status=, timestamp=datetime.datetime(2026, 1, 9, 16, 46, 40, 155808), payload={'driver_name': 'StressTest', 'status': 'offline'}) +2026-01-09 16:46:40,555 DEBUG openscada_lite.modules.base.base_controller [tracking] Publishing message: DataFlowEventMsg(track_id='a40ab5ab-a656-4ca8-9595-4a9b4801bda4', event_type='DriverConnectStatus', source='ConnectorManager', status=, timestamp=datetime.datetime(2026, 1, 9, 16, 46, 40, 154570), payload={'driver_name': 'WaterTank', 'status': 'offline'}) +2026-01-09 16:46:40,555 DEBUG root [TrackingPublisher] scheduling publish for 4b6b71ed-8c8d-4b0b-b05b-8564f512b4d9 +2026-01-09 16:46:40,556 DEBUG root [TrackingPublisher] worker got item from queue: DataFlowEventMsg(track_id='4b6b71ed-8c8d-4b0b-b05b-8564f512b4d9', event_type='DriverConnectStatus', source='CommunicationController', status=, timestamp=datetime.datetime(2026, 1, 9, 16, 46, 40, 157299), payload={'driver_name': 'StressTest', 'status': 'offline'}) +2026-01-09 16:46:40,557 DEBUG openscada_lite.modules.base.base_controller [tracking] Publishing message: DataFlowEventMsg(track_id='4b6b71ed-8c8d-4b0b-b05b-8564f512b4d9', event_type='DriverConnectStatus', source='CommunicationService', status=, timestamp=datetime.datetime(2026, 1, 9, 16, 46, 40, 155808), payload={'driver_name': 'StressTest', 'status': 'offline'}) +2026-01-09 16:46:40,557 DEBUG root [TrackingPublisher] scheduling publish for 4b6b71ed-8c8d-4b0b-b05b-8564f512b4d9 +2026-01-09 16:46:40,558 DEBUG root [TrackingPublisher] worker got item from queue: DataFlowEventMsg(track_id='4b6b71ed-8c8d-4b0b-b05b-8564f512b4d9', event_type='DriverConnectStatus', source='ConnectorManager', status=, timestamp=datetime.datetime(2026, 1, 9, 16, 46, 40, 158191), payload={'driver_name': 'StressTest', 'status': 'offline'}) +2026-01-09 16:46:40,558 DEBUG openscada_lite.modules.base.base_controller [tracking] Publishing message: DataFlowEventMsg(track_id='4b6b71ed-8c8d-4b0b-b05b-8564f512b4d9', event_type='DriverConnectStatus', source='CommunicationController', status=, timestamp=datetime.datetime(2026, 1, 9, 16, 46, 40, 157299), payload={'driver_name': 'StressTest', 'status': 'offline'}) +2026-01-09 16:46:40,558 DEBUG root [TrackingPublisher] scheduling publish for 4b6b71ed-8c8d-4b0b-b05b-8564f512b4d9 +2026-01-09 16:46:40,559 DEBUG root [TrackingPublisher] worker got item from queue: DataFlowEventMsg(track_id='9a7b875f-232f-4db5-8fc4-f83fccee4f43', event_type='AnimationUpdateMsg', source='AnimationController', status=, timestamp=datetime.datetime(2026, 1, 9, 16, 46, 40, 159983), payload={'element_id': 'driver-indicator', 'animation': 'driver_connection', 'value': None, 'svg_name': '2.train.svg', 'timestamp': None}) +2026-01-09 16:46:40,559 DEBUG openscada_lite.modules.base.base_controller [tracking] Publishing message: DataFlowEventMsg(track_id='4b6b71ed-8c8d-4b0b-b05b-8564f512b4d9', event_type='DriverConnectStatus', source='ConnectorManager', status=, timestamp=datetime.datetime(2026, 1, 9, 16, 46, 40, 158191), payload={'driver_name': 'StressTest', 'status': 'offline'}) +2026-01-09 16:46:40,559 DEBUG root [TrackingPublisher] scheduling publish for 9a7b875f-232f-4db5-8fc4-f83fccee4f43 +2026-01-09 16:46:40,560 DEBUG root [TrackingPublisher] worker got item from queue: DataFlowEventMsg(track_id='cc4be47f-68f1-4710-a925-ec2ac94701d7', event_type='DriverConnectStatus', source='CommunicationService', status=, timestamp=datetime.datetime(2026, 1, 9, 16, 46, 40, 161207), payload={'driver_name': 'TrainTestDriver', 'status': 'offline'}) +2026-01-09 16:46:40,560 DEBUG openscada_lite.modules.base.base_controller [tracking] Publishing message: DataFlowEventMsg(track_id='9a7b875f-232f-4db5-8fc4-f83fccee4f43', event_type='AnimationUpdateMsg', source='AnimationController', status=, timestamp=datetime.datetime(2026, 1, 9, 16, 46, 40, 159983), payload={'element_id': 'driver-indicator', 'animation': 'driver_connection', 'value': None, 'svg_name': '2.train.svg', 'timestamp': None}) +2026-01-09 16:46:40,560 DEBUG root [TrackingPublisher] scheduling publish for cc4be47f-68f1-4710-a925-ec2ac94701d7 +2026-01-09 16:46:40,561 DEBUG root [TrackingPublisher] worker got item from queue: DataFlowEventMsg(track_id='cc4be47f-68f1-4710-a925-ec2ac94701d7', event_type='DriverConnectStatus', source='CommunicationController', status=, timestamp=datetime.datetime(2026, 1, 9, 16, 46, 40, 162633), payload={'driver_name': 'TrainTestDriver', 'status': 'offline'}) +2026-01-09 16:46:40,561 DEBUG openscada_lite.modules.base.base_controller [tracking] Publishing message: DataFlowEventMsg(track_id='cc4be47f-68f1-4710-a925-ec2ac94701d7', event_type='DriverConnectStatus', source='CommunicationService', status=, timestamp=datetime.datetime(2026, 1, 9, 16, 46, 40, 161207), payload={'driver_name': 'TrainTestDriver', 'status': 'offline'}) +2026-01-09 16:46:40,561 DEBUG root [TrackingPublisher] scheduling publish for cc4be47f-68f1-4710-a925-ec2ac94701d7 +2026-01-09 16:46:40,562 DEBUG root [TrackingPublisher] worker got item from queue: DataFlowEventMsg(track_id='cc4be47f-68f1-4710-a925-ec2ac94701d7', event_type='DriverConnectStatus', source='ConnectorManager', status=, timestamp=datetime.datetime(2026, 1, 9, 16, 46, 40, 163529), payload={'driver_name': 'TrainTestDriver', 'status': 'offline'}) +2026-01-09 16:46:40,562 DEBUG openscada_lite.modules.base.base_controller [tracking] Publishing message: DataFlowEventMsg(track_id='cc4be47f-68f1-4710-a925-ec2ac94701d7', event_type='DriverConnectStatus', source='CommunicationController', status=, timestamp=datetime.datetime(2026, 1, 9, 16, 46, 40, 162633), payload={'driver_name': 'TrainTestDriver', 'status': 'offline'}) +2026-01-09 16:46:40,562 DEBUG root [TrackingPublisher] scheduling publish for cc4be47f-68f1-4710-a925-ec2ac94701d7 +2026-01-09 16:46:40,562 DEBUG root [TrackingPublisher] worker got item from queue: DataFlowEventMsg(track_id='a37ec8e0-d5b0-4a58-93d1-a519bd955c13', event_type='DriverConnectStatus', source='CommunicationService', status=, timestamp=datetime.datetime(2026, 1, 9, 16, 46, 40, 143590), payload={'driver_name': 'OPCUAServerDriver', 'status': 'offline'}) +2026-01-09 16:46:40,563 DEBUG openscada_lite.modules.base.base_controller [tracking] Publishing message: DataFlowEventMsg(track_id='cc4be47f-68f1-4710-a925-ec2ac94701d7', event_type='DriverConnectStatus', source='ConnectorManager', status=, timestamp=datetime.datetime(2026, 1, 9, 16, 46, 40, 163529), payload={'driver_name': 'TrainTestDriver', 'status': 'offline'}) +2026-01-09 16:46:40,563 DEBUG root [TrackingPublisher] scheduling publish for a37ec8e0-d5b0-4a58-93d1-a519bd955c13 +2026-01-09 16:46:40,563 DEBUG openscada_lite.modules.base.base_controller [tracking] Publishing message: DataFlowEventMsg(track_id='a37ec8e0-d5b0-4a58-93d1-a519bd955c13', event_type='DriverConnectStatus', source='CommunicationService', status=, timestamp=datetime.datetime(2026, 1, 9, 16, 46, 40, 143590), payload={'driver_name': 'OPCUAServerDriver', 'status': 'offline'}) +2026-01-09 16:47:22,460 DEBUG root [TrackingPublisher] worker got item from queue: None +2026-01-09 16:47:22,460 INFO openscada_lite.app [LIFESPAN] Shutdown complete +2026-01-09 16:47:25,305 INFO openscada_lite.app [LIFESPAN] Startup starting... +2026-01-09 16:47:25,796 INFO openscada_lite.modules.communication.drivers.opc_ua_server_driver [OPCUA] Will expose 6 nodes on connect() +2026-01-09 16:47:25,796 INFO openscada_lite.modules.communication.drivers.test.test_driver [INIT] Creating TestDriver CameraDriver +2026-01-09 16:47:25,797 INFO openscada_lite.modules.communication.drivers.test.test_driver [INIT] Creating TestDriver WaterTank +2026-01-09 16:47:25,797 INFO openscada_lite.modules.communication.drivers.test.test_driver [INIT] Creating TestDriver StressTest +2026-01-09 16:47:25,799 INFO openscada_lite.modules.communication.drivers.test.test_driver [INIT] Creating TestDriver TrainTestDriver +2026-01-09 16:47:25,928 ERROR openscada_lite.app [LIFESPAN] Error loading modules: No module named 'openscada_lite.modules.rule.actioncommands' +Traceback (most recent call last): + File "D:\git-extern\python-scada\src\openscada_lite\app.py", line 113, in lifespan + await module_loader(system_config, sio, event_bus, app) + File "D:\git-extern\python-scada\src\openscada_lite\modules\loader.py", line 39, in module_loader + importlib.import_module(f"{base_path}.service"), f"{class_prefix}Service" + ~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^ + File "C:\Python313\Lib\importlib\__init__.py", line 88, in import_module + return _bootstrap._gcd_import(name[level:], package, level) + ~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "", line 1387, in _gcd_import + File "", line 1360, in _find_and_load + File "", line 1331, in _find_and_load_unlocked + File "", line 935, in _load_unlocked + File "", line 1026, in exec_module + File "", line 488, in _call_with_frames_removed + File "D:\git-extern\python-scada\src\openscada_lite\modules\schedule\service.py", line 5, in + from openscada_lite.common.actions.action_utils import execute_action + File "D:\git-extern\python-scada\src\openscada_lite\common\actions\action_utils.py", line 2, in + from openscada_lite.common.actions.action_map import ACTION_MAP + File "D:\git-extern\python-scada\src\openscada_lite\common\actions\action_map.py", line 19, in + from openscada_lite.common.actions.lower_alarm import LowerAlarmAction + File "D:\git-extern\python-scada\src\openscada_lite\common\actions\lower_alarm.py", line 17, in + from openscada_lite.modules.rule.actioncommands.action import Action +ModuleNotFoundError: No module named 'openscada_lite.modules.rule.actioncommands' +2026-01-09 16:47:25,933 INFO openscada_lite.app [LIFESPAN] Startup complete +2026-01-09 16:49:27,859 INFO openscada_lite.app [LIFESPAN] Shutdown complete +2026-01-09 16:49:31,099 INFO openscada_lite.app [LIFESPAN] Startup starting... +2026-01-09 16:49:31,708 INFO openscada_lite.modules.communication.drivers.opc_ua_server_driver [OPCUA] Will expose 6 nodes on connect() +2026-01-09 16:49:31,708 INFO openscada_lite.modules.communication.drivers.test.test_driver [INIT] Creating TestDriver CameraDriver +2026-01-09 16:49:31,709 INFO openscada_lite.modules.communication.drivers.test.test_driver [INIT] Creating TestDriver WaterTank +2026-01-09 16:49:31,709 INFO openscada_lite.modules.communication.drivers.test.test_driver [INIT] Creating TestDriver StressTest +2026-01-09 16:49:31,711 INFO openscada_lite.modules.communication.drivers.test.test_driver [INIT] Creating TestDriver TrainTestDriver +2026-01-09 16:49:31,949 ERROR openscada_lite.app [LIFESPAN] Error loading modules: ScheduleModel.__init__() missing 3 required positional arguments: 'schedule_id', 'cron', and 'actions' +Traceback (most recent call last): + File "D:\git-extern\python-scada\src\openscada_lite\app.py", line 113, in lifespan + await module_loader(system_config, sio, event_bus, app) + File "D:\git-extern\python-scada\src\openscada_lite\modules\loader.py", line 42, in module_loader + model = model_cls() +TypeError: ScheduleModel.__init__() missing 3 required positional arguments: 'schedule_id', 'cron', and 'actions' +2026-01-09 16:49:31,955 INFO openscada_lite.app [LIFESPAN] Startup complete +2026-01-09 21:34:38,057 INFO openscada_lite.app [LIFESPAN] Shutdown complete +2026-01-09 21:34:46,922 INFO openscada_lite.app [LIFESPAN] Startup starting... +2026-01-09 21:34:47,393 INFO openscada_lite.modules.communication.drivers.opc_ua_server_driver [OPCUA] Will expose 6 nodes on connect() +2026-01-09 21:34:47,393 INFO openscada_lite.modules.communication.drivers.test.test_driver [INIT] Creating TestDriver CameraDriver +2026-01-09 21:34:47,394 INFO openscada_lite.modules.communication.drivers.test.test_driver [INIT] Creating TestDriver WaterTank +2026-01-09 21:34:47,394 INFO openscada_lite.modules.communication.drivers.test.test_driver [INIT] Creating TestDriver StressTest +2026-01-09 21:34:47,395 INFO openscada_lite.modules.communication.drivers.test.test_driver [INIT] Creating TestDriver TrainTestDriver +2026-01-09 21:34:47,566 ERROR openscada_lite.app [LIFESPAN] Error loading modules: Can't instantiate abstract class ScheduleController without an implementation for abstract method 'validate_request_data' +Traceback (most recent call last): + File "D:\git-extern\python-scada\src\openscada_lite\app.py", line 113, in lifespan + await module_loader(system_config, sio, event_bus, app) + File "D:\git-extern\python-scada\src\openscada_lite\modules\loader.py", line 44, in module_loader + controller: BaseController = controller_cls( + ~~~~~~~~~~~~~~^ + model, socketio_obj, module_name, app + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + ) + ^ +TypeError: Can't instantiate abstract class ScheduleController without an implementation for abstract method 'validate_request_data' +2026-01-09 21:34:47,582 INFO openscada_lite.app [LIFESPAN] Startup complete +2026-01-09 21:38:58,862 INFO openscada_lite.app [LIFESPAN] Shutdown complete +2026-01-09 21:39:02,113 INFO openscada_lite.app [LIFESPAN] Startup starting... +2026-01-09 21:39:02,644 INFO openscada_lite.modules.communication.drivers.opc_ua_server_driver [OPCUA] Will expose 6 nodes on connect() +2026-01-09 21:39:02,645 INFO openscada_lite.modules.communication.drivers.test.test_driver [INIT] Creating TestDriver CameraDriver +2026-01-09 21:39:02,645 INFO openscada_lite.modules.communication.drivers.test.test_driver [INIT] Creating TestDriver WaterTank +2026-01-09 21:39:02,646 INFO openscada_lite.modules.communication.drivers.test.test_driver [INIT] Creating TestDriver StressTest +2026-01-09 21:39:02,647 INFO openscada_lite.modules.communication.drivers.test.test_driver [INIT] Creating TestDriver TrainTestDriver +2026-01-09 21:39:02,871 ERROR openscada_lite.app [LIFESPAN] Error loading modules: ScheduleController.__init__() takes 2 positional arguments but 5 were given +Traceback (most recent call last): + File "D:\git-extern\python-scada\src\openscada_lite\app.py", line 113, in lifespan + await module_loader(system_config, sio, event_bus, app) + File "D:\git-extern\python-scada\src\openscada_lite\modules\loader.py", line 44, in module_loader + controller: BaseController = controller_cls( + ~~~~~~~~~~~~~~^ + model, socketio_obj, module_name, app + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + ) + ^ +TypeError: ScheduleController.__init__() takes 2 positional arguments but 5 were given +2026-01-09 21:39:02,873 INFO openscada_lite.app [LIFESPAN] Startup complete +2026-01-09 21:41:00,665 INFO openscada_lite.app [LIFESPAN] Shutdown complete +2026-01-09 21:41:05,760 INFO openscada_lite.app [LIFESPAN] Startup starting... +2026-01-09 21:41:06,178 INFO openscada_lite.modules.communication.drivers.opc_ua_server_driver [OPCUA] Will expose 6 nodes on connect() +2026-01-09 21:41:06,178 INFO openscada_lite.modules.communication.drivers.test.test_driver [INIT] Creating TestDriver CameraDriver +2026-01-09 21:41:06,178 INFO openscada_lite.modules.communication.drivers.test.test_driver [INIT] Creating TestDriver WaterTank +2026-01-09 21:41:06,179 INFO openscada_lite.modules.communication.drivers.test.test_driver [INIT] Creating TestDriver StressTest +2026-01-09 21:41:06,180 INFO openscada_lite.modules.communication.drivers.test.test_driver [INIT] Creating TestDriver TrainTestDriver +2026-01-09 21:41:06,292 ERROR openscada_lite.app [LIFESPAN] Error loading modules: Can't instantiate abstract class ScheduleService without an implementation for abstract method 'should_accept_update' +Traceback (most recent call last): + File "D:\git-extern\python-scada\src\openscada_lite\app.py", line 113, in lifespan + await module_loader(system_config, sio, event_bus, app) + File "D:\git-extern\python-scada\src\openscada_lite\modules\loader.py", line 48, in module_loader + service = service_cls(event_bus, model, controller) +TypeError: Can't instantiate abstract class ScheduleService without an implementation for abstract method 'should_accept_update' +2026-01-09 21:41:06,293 INFO openscada_lite.app [LIFESPAN] Startup complete +2026-01-09 21:42:19,103 INFO openscada_lite.app [LIFESPAN] Shutdown complete +2026-01-09 21:42:21,621 INFO openscada_lite.app [LIFESPAN] Startup starting... +2026-01-09 21:42:21,993 INFO openscada_lite.modules.communication.drivers.opc_ua_server_driver [OPCUA] Will expose 6 nodes on connect() +2026-01-09 21:42:21,994 INFO openscada_lite.modules.communication.drivers.test.test_driver [INIT] Creating TestDriver CameraDriver +2026-01-09 21:42:21,994 INFO openscada_lite.modules.communication.drivers.test.test_driver [INIT] Creating TestDriver WaterTank +2026-01-09 21:42:21,995 INFO openscada_lite.modules.communication.drivers.test.test_driver [INIT] Creating TestDriver StressTest +2026-01-09 21:42:21,996 INFO openscada_lite.modules.communication.drivers.test.test_driver [INIT] Creating TestDriver TrainTestDriver +2026-01-09 21:42:22,092 ERROR openscada_lite.app [LIFESPAN] Error loading modules: name 'T' is not defined +Traceback (most recent call last): + File "D:\git-extern\python-scada\src\openscada_lite\app.py", line 113, in lifespan + await module_loader(system_config, sio, event_bus, app) + File "D:\git-extern\python-scada\src\openscada_lite\modules\loader.py", line 39, in module_loader + importlib.import_module(f"{base_path}.service"), f"{class_prefix}Service" + ~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^ + File "C:\Python313\Lib\importlib\__init__.py", line 88, in import_module + return _bootstrap._gcd_import(name[level:], package, level) + ~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "", line 1387, in _gcd_import + File "", line 1360, in _find_and_load + File "", line 1331, in _find_and_load_unlocked + File "", line 935, in _load_unlocked + File "", line 1026, in exec_module + File "", line 488, in _call_with_frames_removed + File "D:\git-extern\python-scada\src\openscada_lite\modules\schedule\service.py", line 9, in + class ScheduleService(BaseService[None, None, None]): + ...<31 lines>... + return False + File "D:\git-extern\python-scada\src\openscada_lite\modules\schedule\service.py", line 40, in ScheduleService + def should_accept_update(self, msg: T) -> bool: + ^ +NameError: name 'T' is not defined +2026-01-09 21:42:22,097 INFO openscada_lite.app [LIFESPAN] Startup complete +2026-01-09 21:42:40,144 INFO openscada_lite.app [LIFESPAN] Shutdown complete +2026-01-09 21:42:42,750 INFO openscada_lite.app [LIFESPAN] Startup starting... +2026-01-09 21:42:43,201 INFO openscada_lite.modules.communication.drivers.opc_ua_server_driver [OPCUA] Will expose 6 nodes on connect() +2026-01-09 21:42:43,202 INFO openscada_lite.modules.communication.drivers.test.test_driver [INIT] Creating TestDriver CameraDriver +2026-01-09 21:42:43,202 INFO openscada_lite.modules.communication.drivers.test.test_driver [INIT] Creating TestDriver WaterTank +2026-01-09 21:42:43,202 INFO openscada_lite.modules.communication.drivers.test.test_driver [INIT] Creating TestDriver StressTest +2026-01-09 21:42:43,204 INFO openscada_lite.modules.communication.drivers.test.test_driver [INIT] Creating TestDriver TrainTestDriver +2026-01-09 21:42:43,353 ERROR openscada_lite.app [LIFESPAN] Error loading modules: ScheduleService.__init__() takes 1 positional argument but 4 were given +Traceback (most recent call last): + File "D:\git-extern\python-scada\src\openscada_lite\app.py", line 113, in lifespan + await module_loader(system_config, sio, event_bus, app) + File "D:\git-extern\python-scada\src\openscada_lite\modules\loader.py", line 48, in module_loader + service = service_cls(event_bus, model, controller) +TypeError: ScheduleService.__init__() takes 1 positional argument but 4 were given +2026-01-09 21:42:43,355 INFO openscada_lite.app [LIFESPAN] Startup complete +2026-01-09 21:44:12,886 INFO openscada_lite.app [LIFESPAN] Startup starting... +2026-01-09 21:44:13,279 INFO openscada_lite.modules.communication.drivers.opc_ua_server_driver [OPCUA] Will expose 6 nodes on connect() +2026-01-09 21:44:13,279 INFO openscada_lite.modules.communication.drivers.test.test_driver [INIT] Creating TestDriver CameraDriver +2026-01-09 21:44:13,280 INFO openscada_lite.modules.communication.drivers.test.test_driver [INIT] Creating TestDriver WaterTank +2026-01-09 21:44:13,280 INFO openscada_lite.modules.communication.drivers.test.test_driver [INIT] Creating TestDriver StressTest +2026-01-09 21:44:13,281 INFO openscada_lite.modules.communication.drivers.test.test_driver [INIT] Creating TestDriver TrainTestDriver +2026-01-09 21:44:13,403 ERROR openscada_lite.app [LIFESPAN] Error loading modules: 'Config' object has no attribute 'get' +Traceback (most recent call last): + File "D:\git-extern\python-scada\src\openscada_lite\app.py", line 113, in lifespan + await module_loader(system_config, sio, event_bus, app) + File "D:\git-extern\python-scada\src\openscada_lite\modules\loader.py", line 48, in module_loader + service = service_cls(event_bus, model, controller) + File "D:\git-extern\python-scada\src\openscada_lite\modules\schedule\service.py", line 21, in __init__ + self.schedules = self.config.get("schedules", []) + ^^^^^^^^^^^^^^^ +AttributeError: 'Config' object has no attribute 'get' +2026-01-09 21:44:13,406 INFO openscada_lite.app [LIFESPAN] Startup complete +2026-01-09 21:51:55,783 INFO openscada_lite.app [LIFESPAN] Shutdown complete +2026-01-09 21:51:58,389 INFO openscada_lite.app [LIFESPAN] Startup starting... +2026-01-09 21:51:58,960 INFO openscada_lite.modules.communication.drivers.opc_ua_server_driver [OPCUA] Will expose 6 nodes on connect() +2026-01-09 21:51:58,961 INFO openscada_lite.modules.communication.drivers.test.test_driver [INIT] Creating TestDriver CameraDriver +2026-01-09 21:51:58,961 INFO openscada_lite.modules.communication.drivers.test.test_driver [INIT] Creating TestDriver WaterTank +2026-01-09 21:51:58,962 INFO openscada_lite.modules.communication.drivers.test.test_driver [INIT] Creating TestDriver StressTest +2026-01-09 21:51:58,963 INFO openscada_lite.modules.communication.drivers.test.test_driver [INIT] Creating TestDriver TrainTestDriver +2026-01-09 21:51:59,153 ERROR openscada_lite.app [LIFESPAN] Error loading modules: Config.get_module_config() takes 2 positional arguments but 3 were given +Traceback (most recent call last): + File "D:\git-extern\python-scada\src\openscada_lite\app.py", line 113, in lifespan + await module_loader(system_config, sio, event_bus, app) + File "D:\git-extern\python-scada\src\openscada_lite\modules\loader.py", line 48, in module_loader + service = service_cls(event_bus, model, controller) + File "D:\git-extern\python-scada\src\openscada_lite\modules\schedule\service.py", line 21, in __init__ + self.schedules = self.config .get_module_config("schedules", []) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^ +TypeError: Config.get_module_config() takes 2 positional arguments but 3 were given +2026-01-09 21:51:59,182 INFO openscada_lite.app [LIFESPAN] Startup complete +2026-01-09 21:52:12,125 INFO openscada_lite.app [LIFESPAN] Shutdown complete +2026-01-09 21:52:14,312 INFO openscada_lite.app [LIFESPAN] Startup starting... +2026-01-09 21:52:14,860 INFO openscada_lite.modules.communication.drivers.opc_ua_server_driver [OPCUA] Will expose 6 nodes on connect() +2026-01-09 21:52:14,860 INFO openscada_lite.modules.communication.drivers.test.test_driver [INIT] Creating TestDriver CameraDriver +2026-01-09 21:52:14,861 INFO openscada_lite.modules.communication.drivers.test.test_driver [INIT] Creating TestDriver WaterTank +2026-01-09 21:52:14,861 INFO openscada_lite.modules.communication.drivers.test.test_driver [INIT] Creating TestDriver StressTest +2026-01-09 21:52:14,862 INFO openscada_lite.modules.communication.drivers.test.test_driver [INIT] Creating TestDriver TrainTestDriver +2026-01-09 21:52:14,976 ERROR openscada_lite.app [LIFESPAN] Error loading modules: Config.get_module_config() takes 2 positional arguments but 3 were given +Traceback (most recent call last): + File "D:\git-extern\python-scada\src\openscada_lite\app.py", line 113, in lifespan + await module_loader(system_config, sio, event_bus, app) + File "D:\git-extern\python-scada\src\openscada_lite\modules\loader.py", line 48, in module_loader + service = service_cls(event_bus, model, controller) + File "D:\git-extern\python-scada\src\openscada_lite\modules\schedule\service.py", line 21, in __init__ + self.schedules = self.config.get_module_config("schedules", []) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^ +TypeError: Config.get_module_config() takes 2 positional arguments but 3 were given +2026-01-09 21:52:14,978 INFO openscada_lite.app [LIFESPAN] Startup complete +2026-01-09 21:56:10,590 INFO openscada_lite.app [LIFESPAN] Shutdown complete +2026-01-09 21:56:12,796 INFO openscada_lite.app [LIFESPAN] Startup starting... +2026-01-09 21:56:13,188 INFO openscada_lite.modules.communication.drivers.opc_ua_server_driver [OPCUA] Will expose 6 nodes on connect() +2026-01-09 21:56:13,188 INFO openscada_lite.modules.communication.drivers.test.test_driver [INIT] Creating TestDriver CameraDriver +2026-01-09 21:56:13,188 INFO openscada_lite.modules.communication.drivers.test.test_driver [INIT] Creating TestDriver WaterTank +2026-01-09 21:56:13,189 INFO openscada_lite.modules.communication.drivers.test.test_driver [INIT] Creating TestDriver StressTest +2026-01-09 21:56:13,190 INFO openscada_lite.modules.communication.drivers.test.test_driver [INIT] Creating TestDriver TrainTestDriver +2026-01-09 21:56:13,306 INFO apscheduler.scheduler Scheduler started +2026-01-09 21:56:13,366 ERROR openscada_lite.app [LIFESPAN] Error loading modules: cannot import name 'action_util' from 'openscada_lite.common.actions' (D:\git-extern\python-scada\src\openscada_lite\common\actions\__init__.py) +Traceback (most recent call last): + File "D:\git-extern\python-scada\src\openscada_lite\app.py", line 113, in lifespan + await module_loader(system_config, sio, event_bus, app) + File "D:\git-extern\python-scada\src\openscada_lite\modules\loader.py", line 39, in module_loader + importlib.import_module(f"{base_path}.service"), f"{class_prefix}Service" + ~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^ + File "C:\Python313\Lib\importlib\__init__.py", line 88, in import_module + return _bootstrap._gcd_import(name[level:], package, level) + ~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "", line 1387, in _gcd_import + File "", line 1360, in _find_and_load + File "", line 1331, in _find_and_load_unlocked + File "", line 935, in _load_unlocked + File "", line 1026, in exec_module + File "", line 488, in _call_with_frames_removed + File "D:\git-extern\python-scada\src\openscada_lite\modules\rule\service.py", line 22, in + from openscada_lite.modules.rule.manager.rule_manager import RuleEngine + File "D:\git-extern\python-scada\src\openscada_lite\modules\rule\manager\rule_manager.py", line 28, in + from openscada_lite.common.actions import action_util +ImportError: cannot import name 'action_util' from 'openscada_lite.common.actions' (D:\git-extern\python-scada\src\openscada_lite\common\actions\__init__.py) +2026-01-09 21:56:13,370 INFO openscada_lite.app [LIFESPAN] Startup complete +2026-01-09 21:57:52,857 INFO openscada_lite.app [LIFESPAN] Shutdown complete +2026-01-09 21:57:55,107 INFO openscada_lite.app [LIFESPAN] Startup starting... +2026-01-09 21:57:55,504 INFO openscada_lite.modules.communication.drivers.opc_ua_server_driver [OPCUA] Will expose 6 nodes on connect() +2026-01-09 21:57:55,505 INFO openscada_lite.modules.communication.drivers.test.test_driver [INIT] Creating TestDriver CameraDriver +2026-01-09 21:57:55,505 INFO openscada_lite.modules.communication.drivers.test.test_driver [INIT] Creating TestDriver WaterTank +2026-01-09 21:57:55,505 INFO openscada_lite.modules.communication.drivers.test.test_driver [INIT] Creating TestDriver StressTest +2026-01-09 21:57:55,507 INFO openscada_lite.modules.communication.drivers.test.test_driver [INIT] Creating TestDriver TrainTestDriver +2026-01-09 21:57:55,606 INFO apscheduler.scheduler Scheduler started +2026-01-09 21:57:55,629 INFO openscada_lite.modules.rule.manager.rule_manager Initializing RuleEngine with datapoint types: ['BOOL', 'CAMERA_POSITION', 'LEVEL', 'OPENED_CLOSED', 'OPEN_CLOSE_CMD', 'PRESSURE', 'START_STOP', 'START_STOP_CMD', 'SWITCH_CONTROL', 'SWITCH_CONTROL_CMD', 'TEMPERATURE'] +2026-01-09 21:57:55,660 INFO openscada_lite.app [LIFESPAN] Startup complete +2026-01-09 21:58:31,923 INFO openscada_lite.modules.security.controller User admin logged in successfully +2026-01-09 22:02:17,889 INFO openscada_lite.app [LIFESPAN] Shutdown complete +2026-01-09 22:02:20,166 INFO openscada_lite.app [LIFESPAN] Startup starting... +2026-01-09 22:02:20,589 INFO openscada_lite.modules.communication.drivers.opc_ua_server_driver [OPCUA] Will expose 6 nodes on connect() +2026-01-09 22:02:20,590 INFO openscada_lite.modules.communication.drivers.test.test_driver [INIT] Creating TestDriver CameraDriver +2026-01-09 22:02:20,590 INFO openscada_lite.modules.communication.drivers.test.test_driver [INIT] Creating TestDriver WaterTank +2026-01-09 22:02:20,590 INFO openscada_lite.modules.communication.drivers.test.test_driver [INIT] Creating TestDriver StressTest +2026-01-09 22:02:20,591 INFO openscada_lite.modules.communication.drivers.test.test_driver [INIT] Creating TestDriver TrainTestDriver +2026-01-09 22:02:20,717 INFO apscheduler.scheduler Scheduler started +2026-01-09 22:02:20,745 INFO openscada_lite.modules.rule.manager.rule_manager Initializing RuleEngine with datapoint types: ['BOOL', 'CAMERA_POSITION', 'LEVEL', 'OPENED_CLOSED', 'OPEN_CLOSE_CMD', 'PRESSURE', 'START_STOP', 'START_STOP_CMD', 'SWITCH_CONTROL', 'SWITCH_CONTROL_CMD', 'TEMPERATURE'] +2026-01-09 22:02:20,758 INFO openscada_lite.app [LIFESPAN] Startup complete +2026-01-09 22:02:54,445 INFO openscada_lite.app [LIFESPAN] Shutdown complete +2026-01-09 22:02:56,741 INFO openscada_lite.app [LIFESPAN] Startup starting... +2026-01-09 22:02:57,244 INFO openscada_lite.modules.communication.drivers.opc_ua_server_driver [OPCUA] Will expose 6 nodes on connect() +2026-01-09 22:02:57,244 INFO openscada_lite.modules.communication.drivers.test.test_driver [INIT] Creating TestDriver CameraDriver +2026-01-09 22:02:57,245 INFO openscada_lite.modules.communication.drivers.test.test_driver [INIT] Creating TestDriver WaterTank +2026-01-09 22:02:57,245 INFO openscada_lite.modules.communication.drivers.test.test_driver [INIT] Creating TestDriver StressTest +2026-01-09 22:02:57,247 INFO openscada_lite.modules.communication.drivers.test.test_driver [INIT] Creating TestDriver TrainTestDriver +2026-01-09 22:02:57,358 ERROR openscada_lite.app [LIFESPAN] Error loading modules: string indices must be integers, not 'str' +Traceback (most recent call last): + File "D:\git-extern\python-scada\src\openscada_lite\app.py", line 113, in lifespan + await module_loader(system_config, sio, event_bus, app) + File "D:\git-extern\python-scada\src\openscada_lite\modules\loader.py", line 48, in module_loader + service = service_cls(event_bus, model, controller) + File "D:\git-extern\python-scada\src\openscada_lite\modules\schedule\service.py", line 24, in __init__ + self._register_schedule(sched) + ~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^ + File "D:\git-extern\python-scada\src\openscada_lite\modules\schedule\service.py", line 28, in _register_schedule + trigger = CronTrigger.from_crontab(sched_cfg["cron"]) + ~~~~~~~~~^^^^^^^^ +TypeError: string indices must be integers, not 'str' +2026-01-09 22:02:57,360 INFO openscada_lite.app [LIFESPAN] Startup complete +2026-01-09 22:08:04,752 INFO openscada_lite.app [LIFESPAN] Shutdown complete +2026-01-09 22:08:06,862 INFO openscada_lite.app [LIFESPAN] Startup starting... +2026-01-09 22:08:07,406 INFO openscada_lite.modules.communication.drivers.opc_ua_server_driver [OPCUA] Will expose 6 nodes on connect() +2026-01-09 22:08:07,406 INFO openscada_lite.modules.communication.drivers.test.test_driver [INIT] Creating TestDriver CameraDriver +2026-01-09 22:08:07,407 INFO openscada_lite.modules.communication.drivers.test.test_driver [INIT] Creating TestDriver WaterTank +2026-01-09 22:08:07,407 INFO openscada_lite.modules.communication.drivers.test.test_driver [INIT] Creating TestDriver StressTest +2026-01-09 22:08:07,409 INFO openscada_lite.modules.communication.drivers.test.test_driver [INIT] Creating TestDriver TrainTestDriver +2026-01-09 22:08:07,526 INFO apscheduler.scheduler Adding job tentatively -- it will be properly scheduled when the scheduler starts +2026-01-09 22:08:07,526 INFO apscheduler.scheduler Adding job tentatively -- it will be properly scheduled when the scheduler starts +2026-01-09 22:08:07,528 INFO apscheduler.scheduler Added job "ScheduleService._execute_schedule" to job store "default" +2026-01-09 22:08:07,528 INFO apscheduler.scheduler Added job "ScheduleService._execute_schedule" to job store "default" +2026-01-09 22:08:07,528 INFO apscheduler.scheduler Scheduler started +2026-01-09 22:08:07,555 INFO openscada_lite.modules.rule.manager.rule_manager Initializing RuleEngine with datapoint types: ['BOOL', 'CAMERA_POSITION', 'LEVEL', 'OPENED_CLOSED', 'OPEN_CLOSE_CMD', 'PRESSURE', 'START_STOP', 'START_STOP_CMD', 'SWITCH_CONTROL', 'SWITCH_CONTROL_CMD', 'TEMPERATURE'] +2026-01-09 22:08:07,566 INFO openscada_lite.app [LIFESPAN] Startup complete +2026-01-09 22:08:24,687 INFO openscada_lite.modules.security.controller User admin logged in successfully +2026-01-09 22:20:24,440 INFO openscada_lite.app [LIFESPAN] Shutdown complete +2026-01-09 22:20:27,041 INFO openscada_lite.app [LIFESPAN] Startup starting... +2026-01-09 22:20:27,465 INFO openscada_lite.modules.communication.drivers.opc_ua_server_driver [OPCUA] Will expose 6 nodes on connect() +2026-01-09 22:20:27,466 INFO openscada_lite.modules.communication.drivers.test.test_driver [INIT] Creating TestDriver CameraDriver +2026-01-09 22:20:27,466 INFO openscada_lite.modules.communication.drivers.test.test_driver [INIT] Creating TestDriver WaterTank +2026-01-09 22:20:27,466 INFO openscada_lite.modules.communication.drivers.test.test_driver [INIT] Creating TestDriver StressTest +2026-01-09 22:20:27,467 INFO openscada_lite.modules.communication.drivers.test.test_driver [INIT] Creating TestDriver TrainTestDriver +2026-01-09 22:20:27,586 INFO apscheduler.scheduler Adding job tentatively -- it will be properly scheduled when the scheduler starts +2026-01-09 22:20:27,587 INFO apscheduler.scheduler Adding job tentatively -- it will be properly scheduled when the scheduler starts +2026-01-09 22:20:27,588 INFO apscheduler.scheduler Added job "ScheduleService._execute_schedule" to job store "default" +2026-01-09 22:20:27,588 INFO apscheduler.scheduler Added job "ScheduleService._execute_schedule" to job store "default" +2026-01-09 22:20:27,589 INFO apscheduler.scheduler Scheduler started +2026-01-09 22:20:27,611 INFO openscada_lite.modules.rule.manager.rule_manager Initializing RuleEngine with datapoint types: ['BOOL', 'CAMERA_POSITION', 'LEVEL', 'OPENED_CLOSED', 'OPEN_CLOSE_CMD', 'PRESSURE', 'START_STOP', 'START_STOP_CMD', 'SWITCH_CONTROL', 'SWITCH_CONTROL_CMD', 'TEMPERATURE'] +2026-01-09 22:20:27,622 INFO openscada_lite.app [LIFESPAN] Startup complete +2026-01-09 22:20:27,624 INFO apscheduler.executors.default Running job "ScheduleService._execute_schedule (trigger: cron[month='*', day='*', day_of_week='1-5', hour='12', minute='0'], next run at: 2026-01-10 12:00:00 CET)" (scheduled at 2026-01-09 22:20:27.586672+01:00) +2026-01-09 22:20:27,625 INFO openscada_lite.modules.communication.manager.connector_manager [COMMAND] Sending command: WaterTank@PUMP_CMD = OPEN +2026-01-09 22:20:27,625 WARNING openscada_lite.modules.communication.manager.connector_manager Driver 'WaterTank' is not connected. Cannot send command. +2026-01-09 22:20:27,626 INFO apscheduler.executors.default Job "ScheduleService._execute_schedule (trigger: cron[month='*', day='*', day_of_week='1-5', hour='12', minute='0'], next run at: 2026-01-10 12:00:00 CET)" executed successfully +2026-01-09 22:20:27,626 INFO apscheduler.executors.default Running job "ScheduleService._execute_schedule (trigger: cron[month='*', day='*', day_of_week='1-5', hour='19', minute='0'], next run at: 2026-01-10 19:00:00 CET)" (scheduled at 2026-01-09 22:20:27.587220+01:00) +2026-01-09 22:20:27,627 INFO openscada_lite.modules.communication.manager.connector_manager [COMMAND] Sending command: WaterTank@PUMP_CMD = CLOSE +2026-01-09 22:20:27,627 WARNING openscada_lite.modules.communication.manager.connector_manager Driver 'WaterTank' is not connected. Cannot send command. +2026-01-09 22:20:27,628 INFO apscheduler.executors.default Job "ScheduleService._execute_schedule (trigger: cron[month='*', day='*', day_of_week='1-5', hour='19', minute='0'], next run at: 2026-01-10 19:00:00 CET)" executed successfully +2026-01-10 12:38:57,829 WARNING apscheduler.executors.default Run time of job "ScheduleService._execute_schedule (trigger: cron[month='*', day='*', day_of_week='1-5', hour='12', minute='0'], next run at: 2026-01-13 12:00:00 CET)" was missed by 0:38:57.829264 +2026-01-10 16:04:23,093 INFO openscada_lite.app [LIFESPAN] Shutdown complete +2026-01-10 16:34:02,625 INFO openscada_lite.app [LIFESPAN] Startup starting... +2026-01-10 16:34:02,819 ERROR openscada_lite.app [LIFESPAN] Error loading modules: string indices must be integers, not 'str' +Traceback (most recent call last): + File "D:\git-extern\python-scada\src\openscada_lite\app.py", line 113, in lifespan + await module_loader(system_config, sio, event_bus, app) + File "D:\git-extern\python-scada\src\openscada_lite\modules\loader.py", line 42, in module_loader + model = model_cls() + File "D:\git-extern\python-scada\src\openscada_lite\modules\command\model.py", line 27, in __init__ + Config.get_instance().get_allowed_command_identifiers() + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^ + File "D:\git-extern\python-scada\src\openscada_lite\common\config\config.py", line 111, in get_allowed_command_identifiers + f"{driver_name}@{datapoint_identifier['name']}" + ~~~~~~~~~~~~~~~~~~~~^^^^^^^^ +TypeError: string indices must be integers, not 'str' +2026-01-10 16:34:02,878 INFO openscada_lite.app [LIFESPAN] Startup complete +2026-01-10 16:36:20,248 INFO openscada_lite.app [LIFESPAN] Shutdown complete +2026-01-10 16:36:23,869 INFO openscada_lite.app [LIFESPAN] Startup starting... +2026-01-10 16:36:23,913 ERROR openscada_lite.app [LIFESPAN] Error loading modules: string indices must be integers, not 'str' +Traceback (most recent call last): + File "D:\git-extern\python-scada\src\openscada_lite\app.py", line 113, in lifespan + await module_loader(system_config, sio, event_bus, app) + File "D:\git-extern\python-scada\src\openscada_lite\modules\loader.py", line 42, in module_loader + model = model_cls() + File "D:\git-extern\python-scada\src\openscada_lite\modules\command\model.py", line 27, in __init__ + Config.get_instance().get_allowed_command_identifiers() + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^ + File "D:\git-extern\python-scada\src\openscada_lite\common\config\config.py", line 111, in get_allowed_command_identifiers + f"{driver_name}@{datapoint_identifier['name']}" + ~~~~~~~~~~~~~~~~~~~~^^^^^^^^ +TypeError: string indices must be integers, not 'str' +2026-01-10 16:36:23,918 INFO openscada_lite.app [LIFESPAN] Startup complete +2026-01-10 16:37:21,466 INFO openscada_lite.app [LIFESPAN] Shutdown complete +2026-01-10 16:37:23,487 INFO openscada_lite.app [LIFESPAN] Startup starting... +2026-01-10 16:37:23,522 ERROR openscada_lite.app [LIFESPAN] Error loading modules: string indices must be integers, not 'str' +Traceback (most recent call last): + File "D:\git-extern\python-scada\src\openscada_lite\app.py", line 113, in lifespan + await module_loader(system_config, sio, event_bus, app) + File "D:\git-extern\python-scada\src\openscada_lite\modules\loader.py", line 42, in module_loader + model = model_cls() + File "D:\git-extern\python-scada\src\openscada_lite\modules\command\model.py", line 27, in __init__ + Config.get_instance().get_allowed_command_identifiers() + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^ + File "D:\git-extern\python-scada\src\openscada_lite\common\config\config.py", line 111, in get_allowed_command_identifiers + f"{driver_name}@{datapoint_identifier['name']}" + ~~~~~~~~~~~~~~~~~~~~^^^^^^^^ +TypeError: string indices must be integers, not 'str' +2026-01-10 16:37:23,525 INFO openscada_lite.app [LIFESPAN] Startup complete +2026-01-10 16:38:10,360 INFO openscada_lite.app [LIFESPAN] Shutdown complete +2026-01-10 16:38:12,335 INFO openscada_lite.app [LIFESPAN] Startup starting... +2026-01-10 16:38:12,368 ERROR openscada_lite.app [LIFESPAN] Error loading modules: string indices must be integers, not 'str' +Traceback (most recent call last): + File "D:\git-extern\python-scada\src\openscada_lite\app.py", line 113, in lifespan + await module_loader(system_config, sio, event_bus, app) + File "D:\git-extern\python-scada\src\openscada_lite\modules\loader.py", line 42, in module_loader + model = model_cls() + File "D:\git-extern\python-scada\src\openscada_lite\modules\command\model.py", line 27, in __init__ + Config.get_instance().get_allowed_command_identifiers() + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^ + File "D:\git-extern\python-scada\src\openscada_lite\common\config\config.py", line 111, in get_allowed_command_identifiers + f"{driver_name}@{datapoint_identifier['name']}" + ~~~~~~~~~~~~~~~~~~~~^^^^^^^^ +TypeError: string indices must be integers, not 'str' +2026-01-10 16:38:12,370 INFO openscada_lite.app [LIFESPAN] Startup complete +2026-01-10 16:41:18,325 INFO openscada_lite.app [LIFESPAN] Shutdown complete +2026-01-10 16:41:20,368 INFO openscada_lite.app [LIFESPAN] Startup starting... +2026-01-10 16:41:20,402 ERROR openscada_lite.app [LIFESPAN] Error loading modules: string indices must be integers, not 'str' +Traceback (most recent call last): + File "D:\git-extern\python-scada\src\openscada_lite\app.py", line 113, in lifespan + await module_loader(system_config, sio, event_bus, app) + File "D:\git-extern\python-scada\src\openscada_lite\modules\loader.py", line 42, in module_loader + model = model_cls() + File "D:\git-extern\python-scada\src\openscada_lite\modules\command\model.py", line 27, in __init__ + Config.get_instance().get_allowed_command_identifiers() + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^ + File "D:\git-extern\python-scada\src\openscada_lite\common\config\config.py", line 111, in get_allowed_command_identifiers + f"{driver_name}@{datapoint_identifier['name']}" + ~~~~~~~~~~~~~~~~~~~~^^^^^^^^ +TypeError: string indices must be integers, not 'str' +2026-01-10 16:41:20,405 INFO openscada_lite.app [LIFESPAN] Startup complete +2026-01-10 16:42:21,609 INFO openscada_lite.app [LIFESPAN] Shutdown complete +2026-01-10 16:42:23,875 INFO openscada_lite.app [LIFESPAN] Startup starting... +2026-01-10 16:42:23,907 ERROR openscada_lite.app [LIFESPAN] Error loading modules: string indices must be integers, not 'str' +Traceback (most recent call last): + File "D:\git-extern\python-scada\src\openscada_lite\app.py", line 113, in lifespan + await module_loader(system_config, sio, event_bus, app) + File "D:\git-extern\python-scada\src\openscada_lite\modules\loader.py", line 42, in module_loader + model = model_cls() + File "D:\git-extern\python-scada\src\openscada_lite\modules\command\model.py", line 27, in __init__ + Config.get_instance().get_allowed_command_identifiers() + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^ + File "D:\git-extern\python-scada\src\openscada_lite\common\config\config.py", line 111, in get_allowed_command_identifiers + f"{driver_name}@{datapoint_identifier['name']}" + ~~~~~~~~~~~~~~~~~~~~^^^^^^^^ +TypeError: string indices must be integers, not 'str' +2026-01-10 16:42:23,909 INFO openscada_lite.app [LIFESPAN] Startup complete +2026-01-10 16:45:12,295 INFO openscada_lite.app [LIFESPAN] Startup starting... +2026-01-10 16:45:12,788 ERROR openscada_lite.app [LIFESPAN] Error loading modules: No module named 'openscada_lite.modules.communication.drivers.mqtt_driver' +Traceback (most recent call last): + File "D:\git-extern\python-scada\src\openscada_lite\app.py", line 113, in lifespan + await module_loader(system_config, sio, event_bus, app) + File "D:\git-extern\python-scada\src\openscada_lite\modules\loader.py", line 39, in module_loader + importlib.import_module(f"{base_path}.service"), f"{class_prefix}Service" + ~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^ + File "C:\Python313\Lib\importlib\__init__.py", line 88, in import_module + return _bootstrap._gcd_import(name[level:], package, level) + ~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "", line 1387, in _gcd_import + File "", line 1360, in _find_and_load + File "", line 1331, in _find_and_load_unlocked + File "", line 935, in _load_unlocked + File "", line 1026, in exec_module + File "", line 488, in _call_with_frames_removed + File "D:\git-extern\python-scada\src\openscada_lite\modules\communication\service.py", line 22, in + from openscada_lite.modules.communication.manager.connector_manager import ( + ...<2 lines>... + ) + File "D:\git-extern\python-scada\src\openscada_lite\modules\communication\manager\connector_manager.py", line 18, in + from openscada_lite.modules.communication.drivers.test.test_driver import TestDriver + File "D:\git-extern\python-scada\src\openscada_lite\modules\communication\drivers\__init__.py", line 34, in + from openscada_lite.modules.communication.drivers.mqtt_driver import ( + MQTTTasmotaRelayDriver + ) +ModuleNotFoundError: No module named 'openscada_lite.modules.communication.drivers.mqtt_driver' +2026-01-10 16:45:12,792 INFO openscada_lite.app [LIFESPAN] Startup complete +2026-01-10 16:48:18,474 INFO openscada_lite.app [LIFESPAN] Shutdown complete +2026-01-10 16:48:20,857 INFO openscada_lite.app [LIFESPAN] Startup starting... +2026-01-10 16:48:21,417 ERROR openscada_lite.app [LIFESPAN] Error loading modules: MQTTTasmotaRelayDriver.__init__() got an unexpected keyword argument 'server_name' +Traceback (most recent call last): + File "D:\git-extern\python-scada\src\openscada_lite\app.py", line 113, in lifespan + await module_loader(system_config, sio, event_bus, app) + File "D:\git-extern\python-scada\src\openscada_lite\modules\loader.py", line 48, in module_loader + service = service_cls(event_bus, model, controller) + File "D:\git-extern\python-scada\src\openscada_lite\modules\communication\service.py", line 52, in __init__ + self.connection_manager = ConnectorManager.get_instance() + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^ + File "D:\git-extern\python-scada\src\openscada_lite\modules\communication\manager\connector_manager.py", line 62, in get_instance + cls.__init__(cls._instance) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "D:\git-extern\python-scada\src\openscada_lite\modules\communication\manager\connector_manager.py", line 89, in __init__ + driver_instance: DriverProtocol = driver_cls( + ~~~~~~~~~~^ + **cfg.get("connection_info", {}) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + ) + ^ +TypeError: MQTTTasmotaRelayDriver.__init__() got an unexpected keyword argument 'server_name' +2026-01-10 16:48:21,419 INFO openscada_lite.app [LIFESPAN] Startup complete +2026-01-10 17:13:37,310 INFO openscada_lite.app [LIFESPAN] Shutdown complete +2026-01-10 17:13:40,784 INFO openscada_lite.app [LIFESPAN] Startup starting... +2026-01-10 17:13:41,384 ERROR openscada_lite.app [LIFESPAN] Error loading modules: 'device_topic' +Traceback (most recent call last): + File "D:\git-extern\python-scada\src\openscada_lite\app.py", line 113, in lifespan + await module_loader(system_config, sio, event_bus, app) + File "D:\git-extern\python-scada\src\openscada_lite\modules\loader.py", line 48, in module_loader + service = service_cls(event_bus, model, controller) + File "D:\git-extern\python-scada\src\openscada_lite\modules\communication\service.py", line 52, in __init__ + self.connection_manager = ConnectorManager.get_instance() + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^ + File "D:\git-extern\python-scada\src\openscada_lite\modules\communication\manager\connector_manager.py", line 62, in get_instance + cls.__init__(cls._instance) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "D:\git-extern\python-scada\src\openscada_lite\modules\communication\manager\connector_manager.py", line 92, in __init__ + driver_instance.initialize(cfg.get("params", {})) + ~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^ + File "D:\git-extern\python-scada\src\openscada_lite\modules\communication\drivers\mqtt_tasmota_driver.py", line 80, in initialize + self._device_topic = config["device_topic"] + ~~~~~~^^^^^^^^^^^^^^^^ +KeyError: 'device_topic' +2026-01-10 17:13:41,387 INFO openscada_lite.app [LIFESPAN] Startup complete +2026-01-10 17:14:36,712 INFO openscada_lite.app [LIFESPAN] Shutdown complete +2026-01-10 17:14:39,220 INFO openscada_lite.app [LIFESPAN] Startup starting... +2026-01-10 17:14:39,795 ERROR openscada_lite.app [LIFESPAN] Error loading modules: 'device_topic' +Traceback (most recent call last): + File "D:\git-extern\python-scada\src\openscada_lite\app.py", line 113, in lifespan + await module_loader(system_config, sio, event_bus, app) + File "D:\git-extern\python-scada\src\openscada_lite\modules\loader.py", line 48, in module_loader + service = service_cls(event_bus, model, controller) + File "D:\git-extern\python-scada\src\openscada_lite\modules\communication\service.py", line 52, in __init__ + self.connection_manager = ConnectorManager.get_instance() + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^ + File "D:\git-extern\python-scada\src\openscada_lite\modules\communication\manager\connector_manager.py", line 62, in get_instance + cls.__init__(cls._instance) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "D:\git-extern\python-scada\src\openscada_lite\modules\communication\manager\connector_manager.py", line 92, in __init__ + driver_instance.initialize(cfg.get("params", {})) + ~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^ + File "D:\git-extern\python-scada\src\openscada_lite\modules\communication\drivers\mqtt_tasmota_driver.py", line 80, in initialize + self._device_topic = config["device_topic"] + ~~~~~~^^^^^^^^^^^^^^^^ +KeyError: 'device_topic' +2026-01-10 17:14:39,798 INFO openscada_lite.app [LIFESPAN] Startup complete +2026-01-10 17:19:50,452 INFO openscada_lite.app [LIFESPAN] Shutdown complete +2026-01-10 17:19:52,310 INFO openscada_lite.app [LIFESPAN] Startup starting... +2026-01-10 17:19:52,882 INFO openscada_lite.modules.communication.drivers.opc_ua_server_driver [OPCUA] Will expose 6 nodes on connect() +2026-01-10 17:19:52,882 INFO openscada_lite.modules.communication.drivers.test.test_driver [INIT] Creating TestDriver CameraDriver +2026-01-10 17:19:52,882 INFO openscada_lite.modules.communication.drivers.test.test_driver [INIT] Creating TestDriver WaterTank +2026-01-10 17:19:52,883 INFO openscada_lite.modules.communication.drivers.test.test_driver [INIT] Creating TestDriver StressTest +2026-01-10 17:19:52,884 INFO openscada_lite.modules.communication.drivers.test.test_driver [INIT] Creating TestDriver TrainTestDriver +2026-01-10 17:19:53,085 INFO apscheduler.scheduler Adding job tentatively -- it will be properly scheduled when the scheduler starts +2026-01-10 17:19:53,085 INFO apscheduler.scheduler Adding job tentatively -- it will be properly scheduled when the scheduler starts +2026-01-10 17:19:53,087 INFO apscheduler.scheduler Added job "ScheduleService._execute_schedule" to job store "default" +2026-01-10 17:19:53,088 INFO apscheduler.scheduler Added job "ScheduleService._execute_schedule" to job store "default" +2026-01-10 17:19:53,088 INFO apscheduler.scheduler Scheduler started +2026-01-10 17:19:53,116 INFO openscada_lite.modules.rule.manager.rule_manager Initializing RuleEngine with datapoint types: ['BOOL', 'CAMERA_POSITION', 'LEVEL', 'OPENED_CLOSED', 'OPEN_CLOSE_CMD', 'PRESSURE', 'START_STOP', 'START_STOP_CMD', 'SWITCH_CONTROL', 'SWITCH_CONTROL_CMD', 'TEMPERATURE', 'ON_OFF'] +2026-01-10 17:19:53,130 INFO openscada_lite.app [LIFESPAN] Startup complete +2026-01-10 17:19:53,131 INFO apscheduler.executors.default Running job "ScheduleService._execute_schedule (trigger: cron[month='*', day='*', day_of_week='*', hour='17', minute='0'], next run at: 2026-01-11 17:00:00 CET)" (scheduled at 2026-01-10 17:19:53.084922+01:00) +2026-01-10 17:19:53,132 INFO openscada_lite.modules.communication.manager.connector_manager [COMMAND] Sending command: TasmotaRelayDriver@RELAY_1_CMD = ON +2026-01-10 17:19:53,132 WARNING openscada_lite.modules.communication.manager.connector_manager Driver 'TasmotaRelayDriver' is not connected. Cannot send command. +2026-01-10 17:19:53,133 INFO openscada_lite.modules.communication.manager.connector_manager [COMMAND] Sending command: TasmotaRelayDriver@RELAY_2_CMD = ON +2026-01-10 17:19:53,133 WARNING openscada_lite.modules.communication.manager.connector_manager Driver 'TasmotaRelayDriver' is not connected. Cannot send command. +2026-01-10 17:19:53,133 INFO apscheduler.executors.default Job "ScheduleService._execute_schedule (trigger: cron[month='*', day='*', day_of_week='*', hour='17', minute='0'], next run at: 2026-01-11 17:00:00 CET)" executed successfully +2026-01-10 17:19:53,134 INFO apscheduler.executors.default Running job "ScheduleService._execute_schedule (trigger: cron[month='*', day='*', day_of_week='*', hour='23', minute='0'], next run at: 2026-01-10 23:00:00 CET)" (scheduled at 2026-01-10 17:19:53.085494+01:00) +2026-01-10 17:19:53,134 INFO openscada_lite.modules.communication.manager.connector_manager [COMMAND] Sending command: TasmotaRelayDriver@RELAY_1_CMD = OFF +2026-01-10 17:19:53,135 WARNING openscada_lite.modules.communication.manager.connector_manager Driver 'TasmotaRelayDriver' is not connected. Cannot send command. +2026-01-10 17:19:53,135 INFO openscada_lite.modules.communication.manager.connector_manager [COMMAND] Sending command: TasmotaRelayDriver@RELAY_2_CMD = OFF +2026-01-10 17:19:53,136 WARNING openscada_lite.modules.communication.manager.connector_manager Driver 'TasmotaRelayDriver' is not connected. Cannot send command. +2026-01-10 17:19:53,137 INFO apscheduler.executors.default Job "ScheduleService._execute_schedule (trigger: cron[month='*', day='*', day_of_week='*', hour='23', minute='0'], next run at: 2026-01-10 23:00:00 CET)" executed successfully +2026-01-10 17:20:26,350 INFO openscada_lite.modules.security.controller User admin logged in successfully +2026-01-10 17:20:42,506 INFO openscada_lite.modules.security.controller User admin logged in successfully +2026-01-10 17:56:00,020 INFO openscada_lite.app [LIFESPAN] Shutdown complete +2026-01-10 17:56:03,399 INFO openscada_lite.app [LIFESPAN] Startup starting... +2026-01-10 17:56:04,259 INFO openscada_lite.modules.communication.drivers.opc_ua_server_driver [OPCUA] Will expose 6 nodes on connect() +2026-01-10 17:56:04,260 INFO openscada_lite.modules.communication.drivers.test.test_driver [INIT] Creating TestDriver CameraDriver +2026-01-10 17:56:04,260 INFO openscada_lite.modules.communication.drivers.test.test_driver [INIT] Creating TestDriver WaterTank +2026-01-10 17:56:04,261 INFO openscada_lite.modules.communication.drivers.test.test_driver [INIT] Creating TestDriver StressTest +2026-01-10 17:56:04,262 INFO openscada_lite.modules.communication.drivers.test.test_driver [INIT] Creating TestDriver TrainTestDriver +2026-01-10 17:56:04,443 INFO apscheduler.scheduler Adding job tentatively -- it will be properly scheduled when the scheduler starts +2026-01-10 17:56:04,443 INFO apscheduler.scheduler Adding job tentatively -- it will be properly scheduled when the scheduler starts +2026-01-10 17:56:04,445 INFO apscheduler.scheduler Added job "ScheduleService._execute_schedule" to job store "default" +2026-01-10 17:56:04,445 INFO apscheduler.scheduler Added job "ScheduleService._execute_schedule" to job store "default" +2026-01-10 17:56:04,446 INFO apscheduler.scheduler Scheduler started +2026-01-10 17:56:04,476 INFO openscada_lite.modules.rule.manager.rule_manager Initializing RuleEngine with datapoint types: ['BOOL', 'CAMERA_POSITION', 'LEVEL', 'OPENED_CLOSED', 'OPEN_CLOSE_CMD', 'PRESSURE', 'START_STOP', 'START_STOP_CMD', 'SWITCH_CONTROL', 'SWITCH_CONTROL_CMD', 'TEMPERATURE', 'ON_OFF'] +2026-01-10 17:56:04,507 INFO openscada_lite.app [LIFESPAN] Startup complete +2026-01-10 17:56:04,508 INFO apscheduler.executors.default Running job "ScheduleService._execute_schedule (trigger: cron[month='*', day='*', day_of_week='*', hour='17', minute='0'], next run at: 2026-01-11 17:00:00 CET)" (scheduled at 2026-01-10 17:56:04.442954+01:00) +2026-01-10 17:56:04,509 INFO openscada_lite.modules.communication.manager.connector_manager [COMMAND] Sending command: TasmotaRelayDriver@RELAY_1_CMD = ON +2026-01-10 17:56:04,510 INFO openscada_lite.modules.communication.manager.connector_manager [COMMAND] Sending command: TasmotaRelayDriver@RELAY_2_CMD = ON +2026-01-10 17:56:04,510 INFO apscheduler.executors.default Job "ScheduleService._execute_schedule (trigger: cron[month='*', day='*', day_of_week='*', hour='17', minute='0'], next run at: 2026-01-11 17:00:00 CET)" executed successfully +2026-01-10 17:56:04,511 INFO apscheduler.executors.default Running job "ScheduleService._execute_schedule (trigger: cron[month='*', day='*', day_of_week='*', hour='23', minute='0'], next run at: 2026-01-10 23:00:00 CET)" (scheduled at 2026-01-10 17:56:04.443677+01:00) +2026-01-10 17:56:04,511 INFO openscada_lite.modules.communication.manager.connector_manager [COMMAND] Sending command: TasmotaRelayDriver@RELAY_1_CMD = OFF +2026-01-10 17:56:04,512 INFO openscada_lite.modules.communication.manager.connector_manager [COMMAND] Sending command: TasmotaRelayDriver@RELAY_2_CMD = OFF +2026-01-10 17:56:04,512 INFO apscheduler.executors.default Job "ScheduleService._execute_schedule (trigger: cron[month='*', day='*', day_of_week='*', hour='23', minute='0'], next run at: 2026-01-10 23:00:00 CET)" executed successfully +2026-01-10 17:57:13,569 INFO openscada_lite.app [LIFESPAN] Shutdown complete +2026-01-10 17:57:18,874 INFO openscada_lite.app [LIFESPAN] Startup starting... +2026-01-10 17:57:19,420 INFO openscada_lite.modules.communication.drivers.opc_ua_server_driver [OPCUA] Will expose 6 nodes on connect() +2026-01-10 17:57:19,420 INFO openscada_lite.modules.communication.drivers.test.test_driver [INIT] Creating TestDriver CameraDriver +2026-01-10 17:57:19,420 INFO openscada_lite.modules.communication.drivers.test.test_driver [INIT] Creating TestDriver WaterTank +2026-01-10 17:57:19,421 INFO openscada_lite.modules.communication.drivers.test.test_driver [INIT] Creating TestDriver StressTest +2026-01-10 17:57:19,422 INFO openscada_lite.modules.communication.drivers.test.test_driver [INIT] Creating TestDriver TrainTestDriver +2026-01-10 17:57:19,520 INFO apscheduler.scheduler Adding job tentatively -- it will be properly scheduled when the scheduler starts +2026-01-10 17:57:19,520 INFO apscheduler.scheduler Adding job tentatively -- it will be properly scheduled when the scheduler starts +2026-01-10 17:57:19,521 INFO apscheduler.scheduler Added job "ScheduleService._execute_schedule" to job store "default" +2026-01-10 17:57:19,521 INFO apscheduler.scheduler Added job "ScheduleService._execute_schedule" to job store "default" +2026-01-10 17:57:19,522 INFO apscheduler.scheduler Scheduler started +2026-01-10 17:57:19,538 INFO openscada_lite.modules.rule.manager.rule_manager Initializing RuleEngine with datapoint types: ['BOOL', 'CAMERA_POSITION', 'LEVEL', 'OPENED_CLOSED', 'OPEN_CLOSE_CMD', 'PRESSURE', 'START_STOP', 'START_STOP_CMD', 'SWITCH_CONTROL', 'SWITCH_CONTROL_CMD', 'TEMPERATURE', 'ON_OFF'] +2026-01-10 17:57:19,547 INFO openscada_lite.app [LIFESPAN] Startup complete +2026-01-10 17:57:19,548 INFO apscheduler.executors.default Running job "ScheduleService._execute_schedule (trigger: cron[month='*', day='*', day_of_week='*', hour='17', minute='0'], next run at: 2026-01-11 17:00:00 CET)" (scheduled at 2026-01-10 17:57:19.519962+01:00) +2026-01-10 17:57:19,549 INFO openscada_lite.modules.communication.manager.connector_manager [COMMAND] Sending command: TasmotaRelayDriver@RELAY_1_CMD = ON +2026-01-10 17:57:19,549 WARNING openscada_lite.modules.communication.manager.connector_manager Driver 'TasmotaRelayDriver' is not connected. Cannot send command. +2026-01-10 17:57:19,550 INFO openscada_lite.modules.communication.manager.connector_manager [COMMAND] Sending command: TasmotaRelayDriver@RELAY_2_CMD = ON +2026-01-10 17:57:19,550 WARNING openscada_lite.modules.communication.manager.connector_manager Driver 'TasmotaRelayDriver' is not connected. Cannot send command. +2026-01-10 17:57:19,551 INFO apscheduler.executors.default Job "ScheduleService._execute_schedule (trigger: cron[month='*', day='*', day_of_week='*', hour='17', minute='0'], next run at: 2026-01-11 17:00:00 CET)" executed successfully +2026-01-10 17:57:19,551 INFO apscheduler.executors.default Running job "ScheduleService._execute_schedule (trigger: cron[month='*', day='*', day_of_week='*', hour='23', minute='0'], next run at: 2026-01-10 23:00:00 CET)" (scheduled at 2026-01-10 17:57:19.520397+01:00) +2026-01-10 17:57:19,552 INFO openscada_lite.modules.communication.manager.connector_manager [COMMAND] Sending command: TasmotaRelayDriver@RELAY_1_CMD = OFF +2026-01-10 17:57:19,552 WARNING openscada_lite.modules.communication.manager.connector_manager Driver 'TasmotaRelayDriver' is not connected. Cannot send command. +2026-01-10 17:57:19,553 INFO openscada_lite.modules.communication.manager.connector_manager [COMMAND] Sending command: TasmotaRelayDriver@RELAY_2_CMD = OFF +2026-01-10 17:57:19,553 WARNING openscada_lite.modules.communication.manager.connector_manager Driver 'TasmotaRelayDriver' is not connected. Cannot send command. +2026-01-10 17:57:19,554 INFO apscheduler.executors.default Job "ScheduleService._execute_schedule (trigger: cron[month='*', day='*', day_of_week='*', hour='23', minute='0'], next run at: 2026-01-10 23:00:00 CET)" executed successfully +2026-01-10 17:57:35,779 INFO openscada_lite.modules.security.controller User admin logged in successfully +2026-01-10 17:59:48,219 INFO openscada_lite.app [LIFESPAN] Shutdown complete +2026-01-10 17:59:52,555 INFO openscada_lite.app [LIFESPAN] Startup starting... +2026-01-10 17:59:53,803 INFO openscada_lite.modules.communication.drivers.opc_ua_server_driver [OPCUA] Will expose 6 nodes on connect() +2026-01-10 17:59:53,803 INFO openscada_lite.modules.communication.drivers.test.test_driver [INIT] Creating TestDriver CameraDriver +2026-01-10 17:59:53,803 INFO openscada_lite.modules.communication.drivers.test.test_driver [INIT] Creating TestDriver WaterTank +2026-01-10 17:59:53,804 INFO openscada_lite.modules.communication.drivers.test.test_driver [INIT] Creating TestDriver StressTest +2026-01-10 17:59:53,806 INFO openscada_lite.modules.communication.drivers.test.test_driver [INIT] Creating TestDriver TrainTestDriver +2026-01-10 17:59:54,019 INFO apscheduler.scheduler Adding job tentatively -- it will be properly scheduled when the scheduler starts +2026-01-10 17:59:54,020 INFO apscheduler.scheduler Adding job tentatively -- it will be properly scheduled when the scheduler starts +2026-01-10 17:59:54,023 INFO apscheduler.scheduler Added job "ScheduleService._execute_schedule" to job store "default" +2026-01-10 17:59:54,023 INFO apscheduler.scheduler Added job "ScheduleService._execute_schedule" to job store "default" +2026-01-10 17:59:54,024 INFO apscheduler.scheduler Scheduler started +2026-01-10 17:59:54,060 INFO openscada_lite.modules.rule.manager.rule_manager Initializing RuleEngine with datapoint types: ['BOOL', 'CAMERA_POSITION', 'LEVEL', 'OPENED_CLOSED', 'OPEN_CLOSE_CMD', 'PRESSURE', 'START_STOP', 'START_STOP_CMD', 'SWITCH_CONTROL', 'SWITCH_CONTROL_CMD', 'TEMPERATURE', 'ON_OFF'] +2026-01-10 17:59:54,079 INFO openscada_lite.app [LIFESPAN] Startup complete +2026-01-10 17:59:54,081 INFO apscheduler.executors.default Running job "ScheduleService._execute_schedule (trigger: cron[month='*', day='*', day_of_week='*', hour='17', minute='0'], next run at: 2026-01-11 17:00:00 CET)" (scheduled at 2026-01-10 17:59:54.019161+01:00) +2026-01-10 17:59:54,082 INFO openscada_lite.modules.communication.manager.connector_manager [COMMAND] Sending command: TasmotaRelayDriver@RELAY_1_CMD = ON +2026-01-10 17:59:54,083 WARNING openscada_lite.modules.communication.manager.connector_manager Driver 'TasmotaRelayDriver' is not connected. Cannot send command. +2026-01-10 17:59:54,084 INFO openscada_lite.modules.communication.manager.connector_manager [COMMAND] Sending command: TasmotaRelayDriver@RELAY_2_CMD = ON +2026-01-10 17:59:54,084 WARNING openscada_lite.modules.communication.manager.connector_manager Driver 'TasmotaRelayDriver' is not connected. Cannot send command. +2026-01-10 17:59:54,085 INFO apscheduler.executors.default Job "ScheduleService._execute_schedule (trigger: cron[month='*', day='*', day_of_week='*', hour='17', minute='0'], next run at: 2026-01-11 17:00:00 CET)" executed successfully +2026-01-10 17:59:54,086 INFO apscheduler.executors.default Running job "ScheduleService._execute_schedule (trigger: cron[month='*', day='*', day_of_week='*', hour='23', minute='0'], next run at: 2026-01-10 23:00:00 CET)" (scheduled at 2026-01-10 17:59:54.020456+01:00) +2026-01-10 17:59:54,088 INFO openscada_lite.modules.communication.manager.connector_manager [COMMAND] Sending command: TasmotaRelayDriver@RELAY_1_CMD = OFF +2026-01-10 17:59:54,089 WARNING openscada_lite.modules.communication.manager.connector_manager Driver 'TasmotaRelayDriver' is not connected. Cannot send command. +2026-01-10 17:59:54,090 INFO openscada_lite.modules.communication.manager.connector_manager [COMMAND] Sending command: TasmotaRelayDriver@RELAY_2_CMD = OFF +2026-01-10 17:59:54,090 WARNING openscada_lite.modules.communication.manager.connector_manager Driver 'TasmotaRelayDriver' is not connected. Cannot send command. +2026-01-10 17:59:54,091 INFO apscheduler.executors.default Job "ScheduleService._execute_schedule (trigger: cron[month='*', day='*', day_of_week='*', hour='23', minute='0'], next run at: 2026-01-10 23:00:00 CET)" executed successfully +2026-01-10 18:00:43,933 INFO openscada_lite.modules.security.controller User admin logged in successfully +2026-01-10 18:01:26,427 INFO openscada_lite.app [LIFESPAN] Shutdown complete +2026-01-10 18:01:29,119 INFO openscada_lite.app [LIFESPAN] Startup starting... +2026-01-10 18:01:29,672 INFO openscada_lite.modules.communication.drivers.opc_ua_server_driver [OPCUA] Will expose 6 nodes on connect() +2026-01-10 18:01:29,672 INFO openscada_lite.modules.communication.drivers.test.test_driver [INIT] Creating TestDriver CameraDriver +2026-01-10 18:01:29,672 INFO openscada_lite.modules.communication.drivers.test.test_driver [INIT] Creating TestDriver WaterTank +2026-01-10 18:01:29,673 INFO openscada_lite.modules.communication.drivers.test.test_driver [INIT] Creating TestDriver StressTest +2026-01-10 18:01:29,674 INFO openscada_lite.modules.communication.drivers.test.test_driver [INIT] Creating TestDriver TrainTestDriver +2026-01-10 18:01:29,773 INFO apscheduler.scheduler Adding job tentatively -- it will be properly scheduled when the scheduler starts +2026-01-10 18:01:29,773 INFO apscheduler.scheduler Adding job tentatively -- it will be properly scheduled when the scheduler starts +2026-01-10 18:01:29,774 INFO apscheduler.scheduler Added job "ScheduleService._execute_schedule" to job store "default" +2026-01-10 18:01:29,775 INFO apscheduler.scheduler Added job "ScheduleService._execute_schedule" to job store "default" +2026-01-10 18:01:29,775 INFO apscheduler.scheduler Scheduler started +2026-01-10 18:01:29,793 INFO openscada_lite.modules.rule.manager.rule_manager Initializing RuleEngine with datapoint types: ['BOOL', 'CAMERA_POSITION', 'LEVEL', 'OPENED_CLOSED', 'OPEN_CLOSE_CMD', 'PRESSURE', 'START_STOP', 'START_STOP_CMD', 'SWITCH_CONTROL', 'SWITCH_CONTROL_CMD', 'TEMPERATURE', 'ON_OFF'] +2026-01-10 18:01:29,802 INFO openscada_lite.app [LIFESPAN] Startup complete +2026-01-10 18:01:29,803 INFO apscheduler.executors.default Running job "ScheduleService._execute_schedule (trigger: cron[month='*', day='*', day_of_week='*', hour='17', minute='0'], next run at: 2026-01-11 17:00:00 CET)" (scheduled at 2026-01-10 18:01:29.772936+01:00) +2026-01-10 18:01:29,803 INFO openscada_lite.modules.communication.manager.connector_manager [COMMAND] Sending command: TasmotaRelayDriver@RELAY_1_CMD = ON +2026-01-10 18:01:29,804 WARNING openscada_lite.modules.communication.manager.connector_manager Driver 'TasmotaRelayDriver' is not connected. Cannot send command. +2026-01-10 18:01:29,804 INFO openscada_lite.modules.communication.manager.connector_manager [COMMAND] Sending command: TasmotaRelayDriver@RELAY_2_CMD = ON +2026-01-10 18:01:29,804 WARNING openscada_lite.modules.communication.manager.connector_manager Driver 'TasmotaRelayDriver' is not connected. Cannot send command. +2026-01-10 18:01:29,805 INFO apscheduler.executors.default Job "ScheduleService._execute_schedule (trigger: cron[month='*', day='*', day_of_week='*', hour='17', minute='0'], next run at: 2026-01-11 17:00:00 CET)" executed successfully +2026-01-10 18:01:29,805 INFO apscheduler.executors.default Running job "ScheduleService._execute_schedule (trigger: cron[month='*', day='*', day_of_week='*', hour='23', minute='0'], next run at: 2026-01-10 23:00:00 CET)" (scheduled at 2026-01-10 18:01:29.773640+01:00) +2026-01-10 18:01:29,806 INFO openscada_lite.modules.communication.manager.connector_manager [COMMAND] Sending command: TasmotaRelayDriver@RELAY_1_CMD = OFF +2026-01-10 18:01:29,806 WARNING openscada_lite.modules.communication.manager.connector_manager Driver 'TasmotaRelayDriver' is not connected. Cannot send command. +2026-01-10 18:01:29,806 INFO openscada_lite.modules.communication.manager.connector_manager [COMMAND] Sending command: TasmotaRelayDriver@RELAY_2_CMD = OFF +2026-01-10 18:01:29,806 WARNING openscada_lite.modules.communication.manager.connector_manager Driver 'TasmotaRelayDriver' is not connected. Cannot send command. +2026-01-10 18:01:29,807 INFO apscheduler.executors.default Job "ScheduleService._execute_schedule (trigger: cron[month='*', day='*', day_of_week='*', hour='23', minute='0'], next run at: 2026-01-10 23:00:00 CET)" executed successfully +2026-01-10 18:01:43,309 INFO openscada_lite.modules.security.controller User admin logged in successfully +2026-01-10 18:03:34,126 INFO openscada_lite.app [LIFESPAN] Shutdown complete +2026-01-10 18:03:36,735 INFO openscada_lite.app [LIFESPAN] Startup starting... +2026-01-10 18:03:37,327 INFO openscada_lite.modules.communication.drivers.opc_ua_server_driver [OPCUA] Will expose 6 nodes on connect() +2026-01-10 18:03:37,327 INFO openscada_lite.modules.communication.drivers.test.test_driver [INIT] Creating TestDriver CameraDriver +2026-01-10 18:03:37,327 INFO openscada_lite.modules.communication.drivers.test.test_driver [INIT] Creating TestDriver WaterTank +2026-01-10 18:03:37,328 INFO openscada_lite.modules.communication.drivers.test.test_driver [INIT] Creating TestDriver StressTest +2026-01-10 18:03:37,329 INFO openscada_lite.modules.communication.drivers.test.test_driver [INIT] Creating TestDriver TrainTestDriver +2026-01-10 18:03:37,436 INFO apscheduler.scheduler Adding job tentatively -- it will be properly scheduled when the scheduler starts +2026-01-10 18:03:37,436 INFO apscheduler.scheduler Adding job tentatively -- it will be properly scheduled when the scheduler starts +2026-01-10 18:03:37,438 INFO apscheduler.scheduler Added job "ScheduleService._execute_schedule" to job store "default" +2026-01-10 18:03:37,438 INFO apscheduler.scheduler Added job "ScheduleService._execute_schedule" to job store "default" +2026-01-10 18:03:37,439 INFO apscheduler.scheduler Scheduler started +2026-01-10 18:03:37,462 INFO openscada_lite.modules.rule.manager.rule_manager Initializing RuleEngine with datapoint types: ['BOOL', 'CAMERA_POSITION', 'LEVEL', 'OPENED_CLOSED', 'OPEN_CLOSE_CMD', 'PRESSURE', 'START_STOP', 'START_STOP_CMD', 'SWITCH_CONTROL', 'SWITCH_CONTROL_CMD', 'TEMPERATURE', 'ON_OFF'] +2026-01-10 18:03:37,475 INFO openscada_lite.app [LIFESPAN] Startup complete +2026-01-10 18:03:37,476 INFO apscheduler.executors.default Running job "ScheduleService._execute_schedule (trigger: cron[month='*', day='*', day_of_week='*', hour='17', minute='0'], next run at: 2026-01-11 17:00:00 CET)" (scheduled at 2026-01-10 18:03:37.435822+01:00) +2026-01-10 18:03:37,477 INFO openscada_lite.modules.communication.manager.connector_manager [COMMAND] Sending command: TasmotaRelayDriver@RELAY_1_CMD = ON +2026-01-10 18:03:37,477 WARNING openscada_lite.modules.communication.manager.connector_manager Driver 'TasmotaRelayDriver' is not connected. Cannot send command. +2026-01-10 18:03:37,477 INFO openscada_lite.modules.communication.manager.connector_manager [COMMAND] Sending command: TasmotaRelayDriver@RELAY_2_CMD = ON +2026-01-10 18:03:37,478 WARNING openscada_lite.modules.communication.manager.connector_manager Driver 'TasmotaRelayDriver' is not connected. Cannot send command. +2026-01-10 18:03:37,478 INFO apscheduler.executors.default Job "ScheduleService._execute_schedule (trigger: cron[month='*', day='*', day_of_week='*', hour='17', minute='0'], next run at: 2026-01-11 17:00:00 CET)" executed successfully +2026-01-10 18:03:37,479 INFO apscheduler.executors.default Running job "ScheduleService._execute_schedule (trigger: cron[month='*', day='*', day_of_week='*', hour='23', minute='0'], next run at: 2026-01-10 23:00:00 CET)" (scheduled at 2026-01-10 18:03:37.436538+01:00) +2026-01-10 18:03:37,480 INFO openscada_lite.modules.communication.manager.connector_manager [COMMAND] Sending command: TasmotaRelayDriver@RELAY_1_CMD = OFF +2026-01-10 18:03:37,480 WARNING openscada_lite.modules.communication.manager.connector_manager Driver 'TasmotaRelayDriver' is not connected. Cannot send command. +2026-01-10 18:03:37,481 INFO openscada_lite.modules.communication.manager.connector_manager [COMMAND] Sending command: TasmotaRelayDriver@RELAY_2_CMD = OFF +2026-01-10 18:03:37,481 WARNING openscada_lite.modules.communication.manager.connector_manager Driver 'TasmotaRelayDriver' is not connected. Cannot send command. +2026-01-10 18:03:37,482 INFO apscheduler.executors.default Job "ScheduleService._execute_schedule (trigger: cron[month='*', day='*', day_of_week='*', hour='23', minute='0'], next run at: 2026-01-10 23:00:00 CET)" executed successfully +2026-01-10 18:05:01,037 INFO openscada_lite.modules.security.controller User admin logged in successfully +2026-01-10 18:05:52,957 INFO openscada_lite.modules.communication.drivers.test.test_driver [INIT] Initializing values for CameraDriver tags: {'CAMERA_1_POSITION': RawTagUpdateMsg(track_id='af5efd04-1425-4d01-bf39-a9d1ce66ed8a', datapoint_identifier='CameraDriver@CAMERA_1_POSITION', value='RIGHT', quality='good', timestamp=datetime.datetime(2026, 1, 10, 18, 3, 37, 327863)), 'CAMERA_2_POSITION': RawTagUpdateMsg(track_id='b0412a69-9569-46e6-b897-03e17263a09d', datapoint_identifier='CameraDriver@CAMERA_2_POSITION', value='RIGHT', quality='good', timestamp=datetime.datetime(2026, 1, 10, 18, 3, 37, 327863)), 'CAMERA_3_POSITION': RawTagUpdateMsg(track_id='afb60d6b-3a61-499c-a320-8431dae182a4', datapoint_identifier='CameraDriver@CAMERA_3_POSITION', value='RIGHT', quality='good', timestamp=datetime.datetime(2026, 1, 10, 18, 3, 37, 327863)), 'CAMERA_1_ALARM': RawTagUpdateMsg(track_id='64971731-3525-4dee-b2f3-306f1193aaaa', datapoint_identifier='CameraDriver@CAMERA_1_ALARM', value='FALSE', quality='good', timestamp=datetime.datetime(2026, 1, 10, 18, 3, 37, 327863)), 'CAMERA_2_ALARM': RawTagUpdateMsg(track_id='b04455ac-ffe6-4403-b21f-08d2cbb71f78', datapoint_identifier='CameraDriver@CAMERA_2_ALARM', value='FALSE', quality='good', timestamp=datetime.datetime(2026, 1, 10, 18, 3, 37, 327863)), 'CAMERA_3_ALARM': RawTagUpdateMsg(track_id='e95815e3-9b8e-458c-a63a-1b184503fec0', datapoint_identifier='CameraDriver@CAMERA_3_ALARM', value='FALSE', quality='good', timestamp=datetime.datetime(2026, 1, 10, 18, 3, 37, 327863))} +2026-01-10 18:09:50,054 INFO openscada_lite.app [LIFESPAN] Shutdown complete +2026-01-10 18:09:53,267 INFO openscada_lite.app [LIFESPAN] Startup starting... +2026-01-10 18:09:53,854 INFO openscada_lite.modules.communication.drivers.opc_ua_server_driver [OPCUA] Will expose 6 nodes on connect() +2026-01-10 18:09:53,854 INFO openscada_lite.modules.communication.drivers.test.test_driver [INIT] Creating TestDriver CameraDriver +2026-01-10 18:09:53,855 INFO openscada_lite.modules.communication.drivers.test.test_driver [INIT] Creating TestDriver WaterTank +2026-01-10 18:09:53,855 INFO openscada_lite.modules.communication.drivers.test.test_driver [INIT] Creating TestDriver StressTest +2026-01-10 18:09:53,856 INFO openscada_lite.modules.communication.drivers.test.test_driver [INIT] Creating TestDriver TrainTestDriver +2026-01-10 18:09:53,950 INFO apscheduler.scheduler Adding job tentatively -- it will be properly scheduled when the scheduler starts +2026-01-10 18:09:53,951 INFO apscheduler.scheduler Adding job tentatively -- it will be properly scheduled when the scheduler starts +2026-01-10 18:09:53,952 INFO apscheduler.scheduler Added job "ScheduleService._execute_schedule" to job store "default" +2026-01-10 18:09:53,952 INFO apscheduler.scheduler Added job "ScheduleService._execute_schedule" to job store "default" +2026-01-10 18:09:53,953 INFO apscheduler.scheduler Scheduler started +2026-01-10 18:09:53,972 INFO openscada_lite.modules.rule.manager.rule_manager Initializing RuleEngine with datapoint types: ['BOOL', 'CAMERA_POSITION', 'LEVEL', 'OPENED_CLOSED', 'OPEN_CLOSE_CMD', 'PRESSURE', 'START_STOP', 'START_STOP_CMD', 'SWITCH_CONTROL', 'SWITCH_CONTROL_CMD', 'TEMPERATURE', 'ON_OFF'] +2026-01-10 18:09:54,001 INFO openscada_lite.app [LIFESPAN] Startup complete +2026-01-10 18:09:54,002 INFO apscheduler.executors.default Running job "ScheduleService._execute_schedule (trigger: cron[month='*', day='*', day_of_week='*', hour='17', minute='0'], next run at: 2026-01-11 17:00:00 CET)" (scheduled at 2026-01-10 18:09:53.950322+01:00) +2026-01-10 18:09:54,003 INFO openscada_lite.modules.communication.manager.connector_manager [COMMAND] Sending command: TasmotaRelayDriver@RELAY_1_CMD = ON +2026-01-10 18:09:54,003 WARNING openscada_lite.modules.communication.manager.connector_manager Driver 'TasmotaRelayDriver' is not connected. Cannot send command. +2026-01-10 18:09:54,004 INFO openscada_lite.modules.communication.manager.connector_manager [COMMAND] Sending command: TasmotaRelayDriver@RELAY_2_CMD = ON +2026-01-10 18:09:54,004 WARNING openscada_lite.modules.communication.manager.connector_manager Driver 'TasmotaRelayDriver' is not connected. Cannot send command. +2026-01-10 18:09:54,004 INFO apscheduler.executors.default Job "ScheduleService._execute_schedule (trigger: cron[month='*', day='*', day_of_week='*', hour='17', minute='0'], next run at: 2026-01-11 17:00:00 CET)" executed successfully +2026-01-10 18:09:54,005 INFO apscheduler.executors.default Running job "ScheduleService._execute_schedule (trigger: cron[month='*', day='*', day_of_week='*', hour='23', minute='0'], next run at: 2026-01-10 23:00:00 CET)" (scheduled at 2026-01-10 18:09:53.950845+01:00) +2026-01-10 18:09:54,005 INFO openscada_lite.modules.communication.manager.connector_manager [COMMAND] Sending command: TasmotaRelayDriver@RELAY_1_CMD = OFF +2026-01-10 18:09:54,006 WARNING openscada_lite.modules.communication.manager.connector_manager Driver 'TasmotaRelayDriver' is not connected. Cannot send command. +2026-01-10 18:09:54,006 INFO openscada_lite.modules.communication.manager.connector_manager [COMMAND] Sending command: TasmotaRelayDriver@RELAY_2_CMD = OFF +2026-01-10 18:09:54,006 WARNING openscada_lite.modules.communication.manager.connector_manager Driver 'TasmotaRelayDriver' is not connected. Cannot send command. +2026-01-10 18:09:54,007 INFO apscheduler.executors.default Job "ScheduleService._execute_schedule (trigger: cron[month='*', day='*', day_of_week='*', hour='23', minute='0'], next run at: 2026-01-10 23:00:00 CET)" executed successfully +2026-01-10 18:11:00,965 INFO openscada_lite.app [LIFESPAN] Shutdown complete +2026-01-10 18:11:03,671 INFO openscada_lite.app [LIFESPAN] Startup starting... +2026-01-10 18:11:04,339 INFO openscada_lite.modules.communication.drivers.opc_ua_server_driver [OPCUA] Will expose 6 nodes on connect() +2026-01-10 18:11:04,339 INFO openscada_lite.modules.communication.drivers.test.test_driver [INIT] Creating TestDriver CameraDriver +2026-01-10 18:11:04,339 INFO openscada_lite.modules.communication.drivers.test.test_driver [INIT] Creating TestDriver WaterTank +2026-01-10 18:11:04,340 INFO openscada_lite.modules.communication.drivers.test.test_driver [INIT] Creating TestDriver StressTest +2026-01-10 18:11:04,341 INFO openscada_lite.modules.communication.drivers.test.test_driver [INIT] Creating TestDriver TrainTestDriver +2026-01-10 18:11:04,454 INFO apscheduler.scheduler Adding job tentatively -- it will be properly scheduled when the scheduler starts +2026-01-10 18:11:04,455 INFO apscheduler.scheduler Adding job tentatively -- it will be properly scheduled when the scheduler starts +2026-01-10 18:11:04,456 INFO apscheduler.scheduler Added job "ScheduleService._execute_schedule" to job store "default" +2026-01-10 18:11:04,457 INFO apscheduler.scheduler Added job "ScheduleService._execute_schedule" to job store "default" +2026-01-10 18:11:04,457 INFO apscheduler.scheduler Scheduler started +2026-01-10 18:11:04,479 INFO openscada_lite.modules.rule.manager.rule_manager Initializing RuleEngine with datapoint types: ['BOOL', 'CAMERA_POSITION', 'LEVEL', 'OPENED_CLOSED', 'OPEN_CLOSE_CMD', 'PRESSURE', 'START_STOP', 'START_STOP_CMD', 'SWITCH_CONTROL', 'SWITCH_CONTROL_CMD', 'TEMPERATURE', 'ON_OFF'] +2026-01-10 18:11:04,491 INFO openscada_lite.app [LIFESPAN] Startup complete +2026-01-10 18:11:04,492 INFO apscheduler.executors.default Running job "ScheduleService._execute_schedule (trigger: cron[month='*', day='*', day_of_week='*', hour='17', minute='0'], next run at: 2026-01-11 17:00:00 CET)" (scheduled at 2026-01-10 18:11:04.454285+01:00) +2026-01-10 18:11:04,493 INFO openscada_lite.modules.communication.manager.connector_manager [COMMAND] Sending command: TasmotaRelayDriver@RELAY_1_CMD = ON +2026-01-10 18:11:04,493 WARNING openscada_lite.modules.communication.manager.connector_manager Driver 'TasmotaRelayDriver' is not connected. Cannot send command. +2026-01-10 18:11:04,494 INFO openscada_lite.modules.communication.manager.connector_manager [COMMAND] Sending command: TasmotaRelayDriver@RELAY_2_CMD = ON +2026-01-10 18:11:04,494 WARNING openscada_lite.modules.communication.manager.connector_manager Driver 'TasmotaRelayDriver' is not connected. Cannot send command. +2026-01-10 18:11:04,495 INFO apscheduler.executors.default Job "ScheduleService._execute_schedule (trigger: cron[month='*', day='*', day_of_week='*', hour='17', minute='0'], next run at: 2026-01-11 17:00:00 CET)" executed successfully +2026-01-10 18:11:04,495 INFO apscheduler.executors.default Running job "ScheduleService._execute_schedule (trigger: cron[month='*', day='*', day_of_week='*', hour='23', minute='0'], next run at: 2026-01-10 23:00:00 CET)" (scheduled at 2026-01-10 18:11:04.454938+01:00) +2026-01-10 18:11:04,496 INFO openscada_lite.modules.communication.manager.connector_manager [COMMAND] Sending command: TasmotaRelayDriver@RELAY_1_CMD = OFF +2026-01-10 18:11:04,496 WARNING openscada_lite.modules.communication.manager.connector_manager Driver 'TasmotaRelayDriver' is not connected. Cannot send command. +2026-01-10 18:11:04,497 INFO openscada_lite.modules.communication.manager.connector_manager [COMMAND] Sending command: TasmotaRelayDriver@RELAY_2_CMD = OFF +2026-01-10 18:11:04,497 WARNING openscada_lite.modules.communication.manager.connector_manager Driver 'TasmotaRelayDriver' is not connected. Cannot send command. +2026-01-10 18:11:04,498 INFO apscheduler.executors.default Job "ScheduleService._execute_schedule (trigger: cron[month='*', day='*', day_of_week='*', hour='23', minute='0'], next run at: 2026-01-10 23:00:00 CET)" executed successfully +2026-01-10 18:13:30,277 INFO openscada_lite.app [LIFESPAN] Shutdown complete +2026-01-10 18:13:33,888 INFO openscada_lite.app [LIFESPAN] Startup starting... +2026-01-10 18:13:34,623 INFO openscada_lite.modules.communication.drivers.opc_ua_server_driver [OPCUA] Will expose 6 nodes on connect() +2026-01-10 18:13:34,623 INFO openscada_lite.modules.communication.drivers.test.test_driver [INIT] Creating TestDriver CameraDriver +2026-01-10 18:13:34,623 INFO openscada_lite.modules.communication.drivers.test.test_driver [INIT] Creating TestDriver WaterTank +2026-01-10 18:13:34,624 INFO openscada_lite.modules.communication.drivers.test.test_driver [INIT] Creating TestDriver StressTest +2026-01-10 18:13:34,626 INFO openscada_lite.modules.communication.drivers.test.test_driver [INIT] Creating TestDriver TrainTestDriver +2026-01-10 18:13:34,776 INFO apscheduler.scheduler Adding job tentatively -- it will be properly scheduled when the scheduler starts +2026-01-10 18:13:34,777 INFO apscheduler.scheduler Adding job tentatively -- it will be properly scheduled when the scheduler starts +2026-01-10 18:13:34,779 INFO apscheduler.scheduler Added job "ScheduleService._execute_schedule" to job store "default" +2026-01-10 18:13:34,779 INFO apscheduler.scheduler Added job "ScheduleService._execute_schedule" to job store "default" +2026-01-10 18:13:34,779 INFO apscheduler.scheduler Scheduler started +2026-01-10 18:13:34,810 INFO openscada_lite.modules.rule.manager.rule_manager Initializing RuleEngine with datapoint types: ['BOOL', 'CAMERA_POSITION', 'LEVEL', 'OPENED_CLOSED', 'OPEN_CLOSE_CMD', 'PRESSURE', 'START_STOP', 'START_STOP_CMD', 'SWITCH_CONTROL', 'SWITCH_CONTROL_CMD', 'TEMPERATURE', 'ON_OFF'] +2026-01-10 18:13:34,825 INFO openscada_lite.app [LIFESPAN] Startup complete +2026-01-10 18:13:34,826 INFO apscheduler.executors.default Running job "ScheduleService._execute_schedule (trigger: cron[month='*', day='*', day_of_week='*', hour='17', minute='0'], next run at: 2026-01-11 17:00:00 CET)" (scheduled at 2026-01-10 18:13:34.776416+01:00) +2026-01-10 18:13:34,827 INFO openscada_lite.modules.communication.manager.connector_manager [COMMAND] Sending command: TasmotaRelayDriver@RELAY_1_CMD = ON +2026-01-10 18:13:34,828 WARNING openscada_lite.modules.communication.manager.connector_manager Driver 'TasmotaRelayDriver' is not connected. Cannot send command. +2026-01-10 18:13:34,829 INFO openscada_lite.modules.communication.manager.connector_manager [COMMAND] Sending command: TasmotaRelayDriver@RELAY_2_CMD = ON +2026-01-10 18:13:34,830 WARNING openscada_lite.modules.communication.manager.connector_manager Driver 'TasmotaRelayDriver' is not connected. Cannot send command. +2026-01-10 18:13:34,831 INFO apscheduler.executors.default Job "ScheduleService._execute_schedule (trigger: cron[month='*', day='*', day_of_week='*', hour='17', minute='0'], next run at: 2026-01-11 17:00:00 CET)" executed successfully +2026-01-10 18:13:34,834 INFO apscheduler.executors.default Running job "ScheduleService._execute_schedule (trigger: cron[month='*', day='*', day_of_week='*', hour='23', minute='0'], next run at: 2026-01-10 23:00:00 CET)" (scheduled at 2026-01-10 18:13:34.777148+01:00) +2026-01-10 18:13:34,838 INFO openscada_lite.modules.communication.manager.connector_manager [COMMAND] Sending command: TasmotaRelayDriver@RELAY_1_CMD = OFF +2026-01-10 18:13:34,839 WARNING openscada_lite.modules.communication.manager.connector_manager Driver 'TasmotaRelayDriver' is not connected. Cannot send command. +2026-01-10 18:13:34,840 INFO openscada_lite.modules.communication.manager.connector_manager [COMMAND] Sending command: TasmotaRelayDriver@RELAY_2_CMD = OFF +2026-01-10 18:13:34,840 WARNING openscada_lite.modules.communication.manager.connector_manager Driver 'TasmotaRelayDriver' is not connected. Cannot send command. +2026-01-10 18:13:34,841 INFO apscheduler.executors.default Job "ScheduleService._execute_schedule (trigger: cron[month='*', day='*', day_of_week='*', hour='23', minute='0'], next run at: 2026-01-10 23:00:00 CET)" executed successfully +2026-01-10 18:15:50,964 INFO openscada_lite.app [LIFESPAN] Shutdown complete +2026-01-10 18:15:54,174 INFO openscada_lite.app [LIFESPAN] Startup starting... +2026-01-10 18:15:54,972 INFO openscada_lite.modules.communication.drivers.opc_ua_server_driver [OPCUA] Will expose 6 nodes on connect() +2026-01-10 18:15:54,973 INFO openscada_lite.modules.communication.drivers.test.test_driver [INIT] Creating TestDriver CameraDriver +2026-01-10 18:15:54,973 INFO openscada_lite.modules.communication.drivers.test.test_driver [INIT] Creating TestDriver WaterTank +2026-01-10 18:15:54,974 INFO openscada_lite.modules.communication.drivers.test.test_driver [INIT] Creating TestDriver StressTest +2026-01-10 18:15:54,977 INFO openscada_lite.modules.communication.drivers.test.test_driver [INIT] Creating TestDriver TrainTestDriver +2026-01-10 18:15:55,291 INFO apscheduler.scheduler Adding job tentatively -- it will be properly scheduled when the scheduler starts +2026-01-10 18:15:55,292 INFO apscheduler.scheduler Adding job tentatively -- it will be properly scheduled when the scheduler starts +2026-01-10 18:15:55,294 INFO apscheduler.scheduler Added job "ScheduleService._execute_schedule" to job store "default" +2026-01-10 18:15:55,295 INFO apscheduler.scheduler Added job "ScheduleService._execute_schedule" to job store "default" +2026-01-10 18:15:55,296 INFO apscheduler.scheduler Scheduler started +2026-01-10 18:15:55,336 INFO openscada_lite.modules.rule.manager.rule_manager Initializing RuleEngine with datapoint types: ['BOOL', 'CAMERA_POSITION', 'LEVEL', 'OPENED_CLOSED', 'OPEN_CLOSE_CMD', 'PRESSURE', 'START_STOP', 'START_STOP_CMD', 'SWITCH_CONTROL', 'SWITCH_CONTROL_CMD', 'TEMPERATURE', 'ON_OFF'] +2026-01-10 18:15:55,366 INFO openscada_lite.app [LIFESPAN] Startup complete +2026-01-10 18:15:55,368 INFO apscheduler.executors.default Running job "ScheduleService._execute_schedule (trigger: cron[month='*', day='*', day_of_week='*', hour='17', minute='0'], next run at: 2026-01-11 17:00:00 CET)" (scheduled at 2026-01-10 18:15:55.290680+01:00) +2026-01-10 18:15:55,369 INFO openscada_lite.modules.communication.manager.connector_manager [COMMAND] Sending command: TasmotaRelayDriver@RELAY_1_CMD = ON +2026-01-10 18:15:55,369 WARNING openscada_lite.modules.communication.manager.connector_manager Driver 'TasmotaRelayDriver' is not connected. Cannot send command. +2026-01-10 18:15:55,370 INFO openscada_lite.modules.communication.manager.connector_manager [COMMAND] Sending command: TasmotaRelayDriver@RELAY_2_CMD = ON +2026-01-10 18:15:55,370 WARNING openscada_lite.modules.communication.manager.connector_manager Driver 'TasmotaRelayDriver' is not connected. Cannot send command. +2026-01-10 18:15:55,371 INFO apscheduler.executors.default Job "ScheduleService._execute_schedule (trigger: cron[month='*', day='*', day_of_week='*', hour='17', minute='0'], next run at: 2026-01-11 17:00:00 CET)" executed successfully +2026-01-10 18:15:55,371 INFO apscheduler.executors.default Running job "ScheduleService._execute_schedule (trigger: cron[month='*', day='*', day_of_week='*', hour='23', minute='0'], next run at: 2026-01-10 23:00:00 CET)" (scheduled at 2026-01-10 18:15:55.292172+01:00) +2026-01-10 18:15:55,372 INFO openscada_lite.modules.communication.manager.connector_manager [COMMAND] Sending command: TasmotaRelayDriver@RELAY_1_CMD = OFF +2026-01-10 18:15:55,372 WARNING openscada_lite.modules.communication.manager.connector_manager Driver 'TasmotaRelayDriver' is not connected. Cannot send command. +2026-01-10 18:15:55,373 INFO openscada_lite.modules.communication.manager.connector_manager [COMMAND] Sending command: TasmotaRelayDriver@RELAY_2_CMD = OFF +2026-01-10 18:15:55,373 WARNING openscada_lite.modules.communication.manager.connector_manager Driver 'TasmotaRelayDriver' is not connected. Cannot send command. +2026-01-10 18:15:55,375 INFO apscheduler.executors.default Job "ScheduleService._execute_schedule (trigger: cron[month='*', day='*', day_of_week='*', hour='23', minute='0'], next run at: 2026-01-10 23:00:00 CET)" executed successfully +2026-01-10 18:20:26,836 INFO openscada_lite.app [LIFESPAN] Shutdown complete +2026-01-10 18:20:29,422 INFO openscada_lite.app [LIFESPAN] Startup starting... +2026-01-10 18:20:30,047 INFO openscada_lite.modules.communication.drivers.opc_ua_server_driver [OPCUA] Will expose 6 nodes on connect() +2026-01-10 18:20:30,048 INFO openscada_lite.modules.communication.drivers.test.test_driver [INIT] Creating TestDriver CameraDriver +2026-01-10 18:20:30,048 INFO openscada_lite.modules.communication.drivers.test.test_driver [INIT] Creating TestDriver WaterTank +2026-01-10 18:20:30,049 INFO openscada_lite.modules.communication.drivers.test.test_driver [INIT] Creating TestDriver StressTest +2026-01-10 18:20:30,050 INFO openscada_lite.modules.communication.drivers.test.test_driver [INIT] Creating TestDriver TrainTestDriver +2026-01-10 18:20:30,213 INFO apscheduler.scheduler Adding job tentatively -- it will be properly scheduled when the scheduler starts +2026-01-10 18:20:30,213 INFO apscheduler.scheduler Adding job tentatively -- it will be properly scheduled when the scheduler starts +2026-01-10 18:20:30,215 INFO apscheduler.scheduler Added job "ScheduleService._execute_schedule" to job store "default" +2026-01-10 18:20:30,215 INFO apscheduler.scheduler Added job "ScheduleService._execute_schedule" to job store "default" +2026-01-10 18:20:30,216 INFO apscheduler.scheduler Scheduler started +2026-01-10 18:20:30,241 INFO openscada_lite.modules.rule.manager.rule_manager Initializing RuleEngine with datapoint types: ['BOOL', 'CAMERA_POSITION', 'LEVEL', 'OPENED_CLOSED', 'OPEN_CLOSE_CMD', 'PRESSURE', 'START_STOP', 'START_STOP_CMD', 'SWITCH_CONTROL', 'SWITCH_CONTROL_CMD', 'TEMPERATURE', 'ON_OFF'] +2026-01-10 18:20:30,256 INFO openscada_lite.app [LIFESPAN] Startup complete +2026-01-10 18:20:30,257 INFO apscheduler.executors.default Running job "ScheduleService._execute_schedule (trigger: cron[month='*', day='*', day_of_week='*', hour='17', minute='0'], next run at: 2026-01-11 17:00:00 CET)" (scheduled at 2026-01-10 18:20:30.213008+01:00) +2026-01-10 18:20:30,258 INFO openscada_lite.modules.communication.manager.connector_manager [COMMAND] Sending command: TasmotaRelayDriver@RELAY_1_CMD = ON +2026-01-10 18:20:30,258 WARNING openscada_lite.modules.communication.manager.connector_manager Driver 'TasmotaRelayDriver' is not connected. Cannot send command. +2026-01-10 18:20:30,259 INFO openscada_lite.modules.communication.manager.connector_manager [COMMAND] Sending command: TasmotaRelayDriver@RELAY_2_CMD = ON +2026-01-10 18:20:30,259 WARNING openscada_lite.modules.communication.manager.connector_manager Driver 'TasmotaRelayDriver' is not connected. Cannot send command. +2026-01-10 18:20:30,260 INFO apscheduler.executors.default Job "ScheduleService._execute_schedule (trigger: cron[month='*', day='*', day_of_week='*', hour='17', minute='0'], next run at: 2026-01-11 17:00:00 CET)" executed successfully +2026-01-10 18:20:30,260 INFO apscheduler.executors.default Running job "ScheduleService._execute_schedule (trigger: cron[month='*', day='*', day_of_week='*', hour='23', minute='0'], next run at: 2026-01-10 23:00:00 CET)" (scheduled at 2026-01-10 18:20:30.213703+01:00) +2026-01-10 18:20:30,261 INFO openscada_lite.modules.communication.manager.connector_manager [COMMAND] Sending command: TasmotaRelayDriver@RELAY_1_CMD = OFF +2026-01-10 18:20:30,261 WARNING openscada_lite.modules.communication.manager.connector_manager Driver 'TasmotaRelayDriver' is not connected. Cannot send command. +2026-01-10 18:20:30,261 INFO openscada_lite.modules.communication.manager.connector_manager [COMMAND] Sending command: TasmotaRelayDriver@RELAY_2_CMD = OFF +2026-01-10 18:20:30,262 WARNING openscada_lite.modules.communication.manager.connector_manager Driver 'TasmotaRelayDriver' is not connected. Cannot send command. +2026-01-10 18:20:30,263 INFO apscheduler.executors.default Job "ScheduleService._execute_schedule (trigger: cron[month='*', day='*', day_of_week='*', hour='23', minute='0'], next run at: 2026-01-10 23:00:00 CET)" executed successfully +2026-01-10 18:24:09,065 INFO openscada_lite.app [LIFESPAN] Shutdown complete +2026-01-10 18:24:11,440 INFO openscada_lite.app [LIFESPAN] Startup starting... +2026-01-10 18:24:12,030 INFO openscada_lite.modules.communication.drivers.opc_ua_server_driver [OPCUA] Will expose 6 nodes on connect() +2026-01-10 18:24:12,030 INFO openscada_lite.modules.communication.drivers.test.test_driver [INIT] Creating TestDriver CameraDriver +2026-01-10 18:24:12,031 INFO openscada_lite.modules.communication.drivers.test.test_driver [INIT] Creating TestDriver WaterTank +2026-01-10 18:24:12,031 INFO openscada_lite.modules.communication.drivers.test.test_driver [INIT] Creating TestDriver StressTest +2026-01-10 18:24:12,032 INFO openscada_lite.modules.communication.drivers.test.test_driver [INIT] Creating TestDriver TrainTestDriver +2026-01-10 18:24:12,141 INFO apscheduler.scheduler Adding job tentatively -- it will be properly scheduled when the scheduler starts +2026-01-10 18:24:12,141 INFO apscheduler.scheduler Adding job tentatively -- it will be properly scheduled when the scheduler starts +2026-01-10 18:24:12,142 INFO apscheduler.scheduler Added job "ScheduleService._execute_schedule" to job store "default" +2026-01-10 18:24:12,143 INFO apscheduler.scheduler Added job "ScheduleService._execute_schedule" to job store "default" +2026-01-10 18:24:12,143 INFO apscheduler.scheduler Scheduler started +2026-01-10 18:24:12,163 INFO openscada_lite.modules.rule.manager.rule_manager Initializing RuleEngine with datapoint types: ['BOOL', 'CAMERA_POSITION', 'LEVEL', 'OPENED_CLOSED', 'OPEN_CLOSE_CMD', 'PRESSURE', 'START_STOP', 'START_STOP_CMD', 'SWITCH_CONTROL', 'SWITCH_CONTROL_CMD', 'TEMPERATURE', 'ON_OFF'] +2026-01-10 18:24:12,175 INFO openscada_lite.app [LIFESPAN] Startup complete +2026-01-10 18:24:12,176 INFO apscheduler.executors.default Running job "ScheduleService._execute_schedule (trigger: cron[month='*', day='*', day_of_week='*', hour='17', minute='0'], next run at: 2026-01-11 17:00:00 CET)" (scheduled at 2026-01-10 18:24:12.140989+01:00) +2026-01-10 18:24:12,176 INFO openscada_lite.modules.communication.manager.connector_manager [COMMAND] Sending command: TasmotaRelayDriver@RELAY_1_CMD = ON +2026-01-10 18:24:12,177 WARNING openscada_lite.modules.communication.manager.connector_manager Driver 'TasmotaRelayDriver' is not connected. Cannot send command. +2026-01-10 18:24:12,178 INFO openscada_lite.modules.communication.manager.connector_manager [COMMAND] Sending command: TasmotaRelayDriver@RELAY_2_CMD = ON +2026-01-10 18:24:12,178 WARNING openscada_lite.modules.communication.manager.connector_manager Driver 'TasmotaRelayDriver' is not connected. Cannot send command. +2026-01-10 18:24:12,178 INFO apscheduler.executors.default Job "ScheduleService._execute_schedule (trigger: cron[month='*', day='*', day_of_week='*', hour='17', minute='0'], next run at: 2026-01-11 17:00:00 CET)" executed successfully +2026-01-10 18:24:12,179 INFO apscheduler.executors.default Running job "ScheduleService._execute_schedule (trigger: cron[month='*', day='*', day_of_week='*', hour='23', minute='0'], next run at: 2026-01-10 23:00:00 CET)" (scheduled at 2026-01-10 18:24:12.141520+01:00) +2026-01-10 18:24:12,180 INFO openscada_lite.modules.communication.manager.connector_manager [COMMAND] Sending command: TasmotaRelayDriver@RELAY_1_CMD = OFF +2026-01-10 18:24:12,180 WARNING openscada_lite.modules.communication.manager.connector_manager Driver 'TasmotaRelayDriver' is not connected. Cannot send command. +2026-01-10 18:24:12,181 INFO openscada_lite.modules.communication.manager.connector_manager [COMMAND] Sending command: TasmotaRelayDriver@RELAY_2_CMD = OFF +2026-01-10 18:24:12,181 WARNING openscada_lite.modules.communication.manager.connector_manager Driver 'TasmotaRelayDriver' is not connected. Cannot send command. +2026-01-10 18:24:12,182 INFO apscheduler.executors.default Job "ScheduleService._execute_schedule (trigger: cron[month='*', day='*', day_of_week='*', hour='23', minute='0'], next run at: 2026-01-10 23:00:00 CET)" executed successfully +2026-01-10 18:24:17,650 INFO asyncua.server.internal_server No user manager specified. Using default permissive manager instead. +2026-01-10 18:24:17,650 INFO asyncua.server.internal_session Created internal session Internal +2026-01-10 18:24:17,664 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=15957, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=11715, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:17,664 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=15958, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=15957, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:17,665 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=15959, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=15957, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:17,665 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=15960, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=15957, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:17,665 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=15961, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=15957, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:17,666 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=15962, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=15957, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:17,666 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=15963, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=15957, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:17,666 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=15964, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=15957, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:17,667 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=16134, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=15957, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:17,667 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=16135, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=15957, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:17,667 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=16136, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=15957, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:17,668 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=32408, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=15957, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:17,675 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=3074, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=2007, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:17,676 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=3075, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=2007, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:17,676 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=3076, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=2007, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:17,676 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=3077, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=2007, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:17,677 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=3078, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=3077, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:17,677 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=3079, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=3077, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:17,677 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=3080, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=3077, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:17,678 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=3081, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=3077, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:17,678 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=3082, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=3077, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:17,678 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=3083, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=3077, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:17,678 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=3084, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=2007, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:17,679 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=3085, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=2007, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:17,680 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=3086, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=2009, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:17,680 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=3087, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=2009, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:17,680 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=3088, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=2009, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:17,681 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=3089, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=2009, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:17,681 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=3090, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=2009, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:17,681 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=3091, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=2009, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:17,682 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=3092, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=2009, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:17,682 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=3093, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=2009, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:17,682 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=3094, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=2009, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:17,683 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=3095, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=2010, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:17,683 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=3096, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=3095, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:17,684 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=3097, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=3095, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:17,684 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=3098, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=3095, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:17,684 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=3099, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=3095, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:17,685 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=3100, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=3095, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:17,685 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=3101, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=3095, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:17,685 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=3102, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=3095, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:17,685 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=3104, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=3095, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:17,686 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=3105, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=3095, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:17,686 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=3106, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=3095, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:17,686 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=3107, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=3095, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:17,687 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=3108, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=3095, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:17,687 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=3110, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=2010, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:17,687 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=3111, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=2010, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:17,688 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=3112, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=3111, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:17,688 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=3113, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=3111, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:17,688 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=3114, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=2010, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:17,689 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=3115, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=2012, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:17,693 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=16296, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=16295, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:17,693 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=16297, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=16296, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:17,694 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=16298, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=16296, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:17,694 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=16299, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=16295, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:17,694 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=16300, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=16299, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:17,697 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=3116, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=2021, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:17,697 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=3117, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=2021, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:17,697 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=3118, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=2021, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:17,698 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=3119, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=2021, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:17,698 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=3120, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=2021, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:17,698 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=3121, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=2021, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:17,699 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=3122, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=2021, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:17,699 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=3124, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=2021, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:17,699 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=3125, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=2021, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:17,700 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=3126, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=2021, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:17,700 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=3127, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=2021, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:17,700 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=3128, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=2021, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:17,701 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=3129, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=2744, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:17,701 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=3130, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=2744, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:17,702 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=12098, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=12097, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:17,702 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=12099, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=12098, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:17,703 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=12100, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=12098, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:17,703 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=12101, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=12098, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:17,703 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=12102, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=12098, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:17,704 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=12103, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=12098, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:17,704 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=12104, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=12098, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:17,704 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=12105, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=12098, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:17,705 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=12106, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=12098, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:17,705 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=12107, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=12098, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:17,705 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=12108, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=12098, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:17,706 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=12109, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=12098, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:17,706 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=12110, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=12098, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:17,706 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=12111, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=12098, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:17,706 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=12112, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=12098, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:17,707 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=12113, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=12098, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:17,707 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=12114, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=12098, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:17,708 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=12115, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=12098, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:17,708 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=12116, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=12098, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:17,708 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=12117, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=12098, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:17,709 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=12118, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=12098, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:17,709 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=12119, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=12098, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:17,710 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=12120, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=12098, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:17,710 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=12121, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=12098, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:17,710 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=12122, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=12098, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:17,711 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=12123, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=12098, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:17,712 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=12124, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=12098, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:17,713 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=12125, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=12098, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:17,714 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=12126, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=12098, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:17,714 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=12127, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=12098, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:17,716 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=12128, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=12098, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:17,718 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=12129, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=12098, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:17,719 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=12130, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=12098, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:17,719 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=12131, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=12098, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:17,720 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=12132, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=12098, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:17,721 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=12133, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=12098, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:17,721 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=12134, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=12098, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:17,722 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=12135, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=12098, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:17,722 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=12136, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=12098, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:17,722 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=12137, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=12098, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:17,723 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=12138, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=12098, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:17,723 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=12139, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=12098, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:17,724 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=12140, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=12098, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:17,724 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=12141, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=12098, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:17,725 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=12142, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=12097, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:17,725 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=12143, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=12142, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:17,725 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=12144, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=12142, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:17,726 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=12145, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=12142, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:17,726 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=12146, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=12142, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:17,727 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=12147, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=12142, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:17,727 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=12148, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=12142, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:17,727 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=12149, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=12142, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:17,728 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=12150, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=12142, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:17,728 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=12151, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=12142, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:17,728 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=12152, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=12097, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:17,729 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=3131, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=2030, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:17,729 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=3132, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=2030, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:17,730 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=3133, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=2030, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:17,730 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=3134, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=2030, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:17,730 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=3135, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=2030, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:17,731 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=3136, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=2030, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:17,731 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=3137, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=2030, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:17,732 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=3138, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=2030, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:17,732 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=3139, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=2030, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:17,732 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=3140, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=2030, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:17,733 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=3141, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=2030, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:17,734 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=3142, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=2030, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:17,734 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=3143, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=2030, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:17,735 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=8898, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=2030, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:17,735 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=11891, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=2030, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:17,735 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=3151, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=2030, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:17,736 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=3152, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=2030, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:17,736 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=3153, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=2030, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:17,737 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=3154, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=2030, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:17,737 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=3155, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=2030, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:17,738 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=3156, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=2030, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:17,738 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=3157, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=2030, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:17,739 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=3158, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=2030, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:17,739 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=3159, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=2030, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:17,740 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=3160, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=2030, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:17,740 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=3161, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=2030, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:17,741 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=3162, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=2030, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:17,741 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=3163, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=2030, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:17,741 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=3164, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=2030, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:17,742 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=3165, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=2030, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:17,742 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=3166, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=2030, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:17,743 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=3167, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=2030, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:17,743 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=3168, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=2030, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:17,743 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=3169, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=2030, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:17,744 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=3170, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=2030, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:17,744 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=3171, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=2030, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:17,745 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=3172, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=2030, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:17,745 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=3173, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=2030, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:17,745 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=3174, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=2030, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:17,746 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=3175, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=2030, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:17,746 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=3176, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=2030, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:17,747 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=3177, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=2030, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:17,747 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=3178, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=2030, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:17,747 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=3179, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=2031, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:17,748 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=3180, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=2031, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:17,749 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=3181, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=2031, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:17,750 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=3182, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=2031, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:17,751 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=3183, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=2031, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:17,752 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=3184, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=2031, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:17,752 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=3185, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=2031, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:17,754 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=3186, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=2031, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:17,755 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=3187, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=2031, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:17,808 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=3698, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=2142, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:17,809 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=3699, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=2142, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:17,809 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=3700, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=2142, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:17,810 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=3701, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=2142, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:17,810 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=3702, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=2142, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:17,810 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=3703, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=2142, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:17,819 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=12780, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=12779, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:17,820 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=12781, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=12779, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:17,821 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=12782, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=12779, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:17,822 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=12783, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=12779, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:17,825 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=12785, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=12784, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:17,826 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=12786, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=12784, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:17,826 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=12787, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=12784, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:17,827 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=12788, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=12784, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:17,827 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=12789, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=12784, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:17,827 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=12790, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=12784, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:17,828 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=12791, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=12784, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:17,828 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=12792, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=12784, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:17,829 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=12793, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=12784, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:17,829 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=12794, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=12784, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:17,830 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=12795, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=12784, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:17,830 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=12796, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=12784, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:17,830 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=12797, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=12784, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:17,831 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=12798, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=12784, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:17,831 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=12799, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=12784, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:17,832 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=12800, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=12784, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:17,833 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=12801, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=12784, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:17,835 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=12802, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=12784, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:17,836 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=12803, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=12784, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:17,836 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=12804, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=12784, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:17,837 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=12805, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=12784, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:17,837 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=12806, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=12784, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:17,838 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=12807, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=12784, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:17,839 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=12808, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=12784, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:17,839 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=12809, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=12784, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:17,839 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=12810, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=12784, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:17,840 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=12811, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=12784, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:17,840 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=12812, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=12784, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:17,841 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=12813, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=12784, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:17,841 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=12814, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=12784, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:17,842 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=12815, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=12784, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:17,853 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=12817, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=12816, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:17,853 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=12818, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=12816, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:17,854 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=12819, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=12816, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:17,854 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=12820, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=12816, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:17,855 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=12821, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=12816, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:17,855 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=12822, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=12816, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:17,856 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=12823, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=12816, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:17,856 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=12824, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=12816, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:17,856 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=12825, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=12816, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:17,857 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=12826, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=12816, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:17,857 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=12827, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=12816, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:17,857 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=12828, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=12816, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:17,858 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=12829, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=12816, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:17,858 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=12830, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=12816, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:17,858 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=12831, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=12816, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:17,859 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=12832, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=12816, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:17,859 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=12833, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=12816, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:17,859 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=12834, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=12816, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:17,860 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=12835, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=12816, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:17,860 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=12836, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=12816, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:17,860 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=12837, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=12816, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:17,861 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=12838, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=12816, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:17,861 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=12839, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=12816, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:17,861 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=12840, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=12816, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:17,862 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=12841, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=12816, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:17,862 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=12842, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=12816, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:17,863 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=12843, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=12816, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:17,863 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=12844, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=12816, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:17,863 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=12845, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=12816, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:17,864 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=12846, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=12816, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:17,864 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=12847, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=12816, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:17,864 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=12848, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=12816, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:17,865 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=12849, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=12816, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:17,865 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=12850, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=12816, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:17,866 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=12851, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=12816, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:17,866 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=12852, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=12816, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:17,867 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=12853, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=12816, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:17,868 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=12854, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=12816, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:17,868 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=12855, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=12816, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:17,869 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=12856, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=12816, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:17,870 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=12857, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=12816, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:17,870 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=12858, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=12816, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:17,871 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=12859, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=12816, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:17,890 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=12861, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=12860, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:17,890 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=12862, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=12860, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:17,891 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=12863, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=12860, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:17,891 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=12864, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=12860, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:17,892 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=12865, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=12860, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:17,892 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=12866, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=12860, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:17,893 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=12867, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=12860, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:17,893 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=12868, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=12860, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:17,894 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=12869, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=12860, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:17,915 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=16301, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=15606, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:17,917 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=16302, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=16301, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:17,919 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=16303, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=16301, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:17,920 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=16304, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=15606, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:17,920 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=16305, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=16304, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:17,934 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=11193, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=11192, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:17,935 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=11242, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=11192, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:17,935 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=11273, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=11192, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:17,936 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=11274, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=11192, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:17,936 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=11196, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=11192, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:17,937 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=11197, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=11192, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:17,937 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=11198, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=11192, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:17,938 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=11199, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=11192, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:17,938 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=11200, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=11192, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:17,938 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=11281, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=11192, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:17,939 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=11282, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=11192, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:17,939 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=11283, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=11192, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:17,940 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=11502, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=11192, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:17,940 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=11275, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=11192, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:17,941 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=11201, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=11192, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:17,941 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=19091, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=11192, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:17,943 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=3720, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=2769, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:17,944 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=3724, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=2770, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:17,948 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=3728, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=2772, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:17,948 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=3732, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=2773, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:17,976 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=15755, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=15754, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:17,977 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=15756, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=15755, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:17,977 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=15794, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=15754, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:17,983 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=16162, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=15608, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:17,992 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=15644, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=15606, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:17,993 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=16192, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=15644, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:17,993 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=15656, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=15606, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:17,994 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=16203, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=15656, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:17,994 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=18625, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=15606, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:17,995 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=18626, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=18625, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:17,995 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=15668, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=15606, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:17,995 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=16214, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=15668, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:17,996 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=15416, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=15668, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:17,996 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=16215, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=15668, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:17,996 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=15417, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=15668, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:17,997 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=16216, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=15668, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:17,997 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=24142, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=15668, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:17,997 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=15672, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=15668, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:17,998 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=15673, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=15672, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:17,998 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=15674, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=15668, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:17,999 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=15675, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=15674, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,000 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=16217, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=15668, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,000 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=16218, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=16217, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,001 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=16219, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=15668, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,002 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=16220, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=16219, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,002 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=16221, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=15668, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,003 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=16222, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=16221, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,003 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=16223, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=15668, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,004 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=16224, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=16223, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,004 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=15680, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=15606, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,005 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=16225, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=15680, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,005 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=15418, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=15680, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,005 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=16226, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=15680, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,006 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=15423, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=15680, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,006 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=16227, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=15680, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,007 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=24143, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=15680, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,007 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=15684, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=15680, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,007 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=15685, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=15684, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,008 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=15686, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=15680, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,008 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=15687, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=15686, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,008 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=16228, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=15680, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,009 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=16229, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=16228, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,009 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=16230, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=15680, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,009 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=16231, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=16230, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,010 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=16232, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=15680, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,010 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=16233, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=16232, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,010 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=16234, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=15680, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,011 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=16235, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=16234, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,011 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=16036, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=15606, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,011 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=16236, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=16036, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,012 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=15424, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=16036, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,012 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=16237, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=16036, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,012 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=15425, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=16036, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,013 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=16238, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=16036, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,013 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=24144, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=16036, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,014 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=16041, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=16036, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,014 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=16042, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=16041, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,014 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=16043, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=16036, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,015 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=16044, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=16043, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,015 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=16239, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=16036, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,016 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=16240, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=16239, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,017 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=16241, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=16036, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,017 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=16242, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=16241, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,018 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=16243, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=16036, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,018 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=16244, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=16243, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,019 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=16245, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=16036, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,019 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=16246, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=16245, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,020 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=15692, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=15606, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,020 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=16247, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=15692, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,020 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=15426, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=15692, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,021 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=16248, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=15692, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,021 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=15427, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=15692, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,021 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=16249, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=15692, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,022 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=24145, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=15692, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,022 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=15696, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=15692, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,022 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=15697, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=15696, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,023 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=15698, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=15692, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,023 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=15699, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=15698, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,023 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=16250, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=15692, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,024 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=16251, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=16250, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,024 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=16252, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=15692, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,024 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=16253, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=16252, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,024 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=16254, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=15692, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,025 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=16255, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=16254, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,025 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=16256, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=15692, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,025 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=16257, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=16256, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,026 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=15716, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=15606, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,026 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=16269, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=15716, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,026 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=15428, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=15716, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,026 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=16270, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=15716, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,027 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=15429, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=15716, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,027 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=16271, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=15716, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,027 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=24146, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=15716, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,028 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=15720, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=15716, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,028 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=15721, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=15720, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,028 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=15722, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=15716, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,029 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=15723, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=15722, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,029 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=16272, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=15716, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,029 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=16273, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=16272, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,029 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=16274, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=15716, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,030 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=16275, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=16274, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,030 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=16276, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=15716, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,030 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=16277, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=16276, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,031 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=16278, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=15716, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,031 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=16279, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=16278, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,031 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=15704, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=15606, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,032 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=16258, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=15704, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,032 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=15430, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=15704, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,032 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=16259, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=15704, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,033 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=15527, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=15704, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,034 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=16260, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=15704, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,034 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=24147, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=15704, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,035 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=15708, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=15704, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,035 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=15709, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=15708, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,036 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=15710, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=15704, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,036 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=15711, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=15710, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,036 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=16261, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=15704, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,037 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=16262, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=16261, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,037 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=16263, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=15704, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,037 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=16264, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=16263, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,038 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=16265, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=15704, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,040 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=16266, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=16265, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,041 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=16267, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=15704, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,041 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=16268, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=16267, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,042 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=25565, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=15606, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,042 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=25566, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=25565, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,042 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=25567, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=25565, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,043 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=25568, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=25565, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,043 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=25569, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=25565, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,043 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=25570, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=25565, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,044 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=25571, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=25565, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,044 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=25572, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=25565, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,044 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=25573, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=25572, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,045 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=25574, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=25565, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,045 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=25575, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=25574, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,045 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=25576, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=25565, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,046 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=25577, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=25576, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,046 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=25578, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=25565, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,046 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=25579, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=25578, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,046 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=25580, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=25565, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,047 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=25581, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=25580, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,047 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=25582, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=25565, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,047 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=25583, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=25582, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,048 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=25603, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=15606, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,048 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=25604, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=25603, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,051 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=25605, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=25603, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,052 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=25606, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=25603, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,053 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=25607, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=25603, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,053 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=25608, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=25603, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,054 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=25609, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=25603, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,054 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=25610, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=25603, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,055 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=25611, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=25610, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,055 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=25612, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=25603, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,056 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=25613, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=25612, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,056 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=25614, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=25603, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,057 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=25615, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=25614, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,057 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=25616, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=25603, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,058 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=25617, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=25616, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,058 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=25618, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=25603, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,058 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=25619, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=25618, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,059 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=25620, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=25603, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,059 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=25621, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=25620, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,059 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=25584, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=15606, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,060 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=25585, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=25584, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,060 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=25586, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=25584, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,061 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=25587, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=25584, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,061 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=25588, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=25584, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,061 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=25589, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=25584, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,062 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=25590, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=25584, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,062 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=25591, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=25584, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,062 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=25592, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=25591, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,063 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=25593, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=25584, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,063 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=25594, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=25593, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,064 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=25595, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=25584, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,064 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=25596, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=25595, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,065 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=25597, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=25584, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,065 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=25598, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=25597, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,066 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=25599, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=25584, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,067 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=25600, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=25599, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,067 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=25601, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=25584, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,067 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=25602, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=25601, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,081 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=32588, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=32587, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,082 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=32590, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=32587, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,168 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=9179, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=9178, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,169 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=9180, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=9179, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,169 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=9184, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=9178, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,169 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=9185, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=9184, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,169 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=9188, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=9184, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,170 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=9189, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=9178, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,170 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=9213, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=9178, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,170 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=9214, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=9213, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,170 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=9211, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=9178, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,171 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=9212, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=9178, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,208 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=17285, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=17284, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,208 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=17287, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=17286, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,209 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=17289, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=17288, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,216 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=3840, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=2399, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,216 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=3841, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=2399, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,216 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=3842, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=2399, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,217 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=3843, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=2399, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,217 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=3844, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=2399, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,218 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=3845, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=2399, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,218 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=3846, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=2399, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,218 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=3847, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=2399, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,219 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=15038, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=2399, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,219 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=15040, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=2399, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,219 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=3848, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=2399, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,220 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=3849, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=2399, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,229 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=11168, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=3059, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,230 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=11169, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=3059, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,230 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=11170, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=3059, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,230 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=11171, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=3059, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,236 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=11204, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=11203, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,236 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=11205, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=11203, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,237 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=11206, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=11203, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,237 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=11207, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=11203, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,238 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=32639, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=32638, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,238 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=32640, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=32638, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,239 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=32641, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=32638, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,239 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=32642, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=32638, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,290 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=16707, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=16663, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,291 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=16708, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=16707, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,291 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=16709, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=16708, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,291 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=16710, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=16709, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,292 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=16711, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=16709, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,292 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=16712, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=16709, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,293 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=16713, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=16709, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,293 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=16717, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=16709, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,293 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=16722, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=16717, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,294 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=16723, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=16717, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,294 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=16724, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=16709, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,294 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=16725, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=16724, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,295 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=16726, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=16709, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,295 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=16727, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=16726, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,295 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=16728, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=16726, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,296 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=16729, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=16709, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,296 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=16730, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=16729, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,296 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=16732, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=16709, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,297 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=16733, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=16732, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,297 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=16734, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=16732, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,297 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=16735, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=16709, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,298 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=16736, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=16735, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,298 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=16737, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=16709, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,298 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=16741, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=16709, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,299 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=16742, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=16741, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,299 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=16743, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=16741, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,299 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=16744, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=16709, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,300 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=16745, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=16744, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,300 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=16746, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=16744, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,300 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=16747, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=16709, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,301 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=16748, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=16747, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,301 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=16749, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=16709, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,302 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=16750, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=16749, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,302 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=16751, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=16708, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,302 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=18525, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=16663, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,303 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=18526, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=16663, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,303 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=18527, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=16663, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,303 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=18528, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=16663, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,304 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=18529, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=16663, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,304 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=18530, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=16663, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,305 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=18531, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=16663, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,305 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=18533, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=16663, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,305 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=18534, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=18533, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,306 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=18535, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=18533, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,306 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=18539, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=16663, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,306 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=18541, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=16663, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,307 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=18542, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=18541, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,307 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=18543, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=18541, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,307 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=18544, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=16663, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,308 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=18545, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=18544, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,308 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=18592, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=16663, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,308 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=16706, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=24226, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,347 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=17512, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=17511, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,348 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=17513, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=17511, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,353 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=23558, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=23557, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,353 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=23559, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=23557, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,354 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=23560, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=23557, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,372 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=15914, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=15913, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,372 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=15915, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=15914, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,373 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=15916, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=15914, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,373 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=15917, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=15913, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,373 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=15918, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=15917, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,373 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=25278, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=25277, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,374 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=25279, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=25278, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,374 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=25280, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=25278, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,374 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=25281, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=25277, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,374 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=25282, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=25281, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,377 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=15460, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=15459, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,377 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=15010, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=15459, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,377 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=15011, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=15459, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,377 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=15012, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=15459, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,378 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=15043, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=15459, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,391 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=14418, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=14417, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,392 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=17292, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=14417, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,392 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=17706, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=17292, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,393 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=17478, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=14417, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,393 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=14423, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=14417, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,393 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=15533, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=14423, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,394 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=17503, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=15533, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,394 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=14419, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=14417, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,394 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=14420, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=14419, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,396 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=25404, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=25403, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,396 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=25405, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=25403, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,396 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=25406, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=25403, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,397 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=25407, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=25403, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,397 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=25411, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=25403, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,397 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=25412, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=25411, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,398 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=25413, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=25411, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,398 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=25414, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=25403, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,398 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=25415, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=25414, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,398 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=25416, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=25403, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,399 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=25417, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=25416, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,399 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=25418, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=25416, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,399 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=25419, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=25403, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,400 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=25420, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=25419, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,400 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=25421, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=25403, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,400 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=25422, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=25421, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,401 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=25423, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=25421, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,401 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=25424, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=25403, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,401 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=25425, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=25424, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,402 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=25426, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=25403, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,402 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=25427, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=25426, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,403 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=25428, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=25426, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,403 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=25429, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=25403, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,403 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=25430, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=25429, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,404 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=25431, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=25429, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,404 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=15845, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=15844, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,404 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=18716, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=18715, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,405 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=18717, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=18715, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,405 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=18718, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=18717, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,406 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=18719, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=18717, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,406 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=18720, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=18717, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,406 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=18722, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=18715, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,406 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=18723, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=18722, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,407 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=18724, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=18722, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,407 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=18725, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=18722, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,407 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=18727, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=18715, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,408 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=18728, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=18715, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,408 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=18729, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=18715, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,408 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=18730, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=18729, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,409 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=18731, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=18730, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,409 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=18732, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=18730, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,409 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=18733, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=18730, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,410 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=18735, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=18729, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,410 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=18736, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=18735, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,410 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=18737, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=18735, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,411 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=18738, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=18735, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,411 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=18740, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=18729, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,411 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=18741, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=18740, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,412 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=18742, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=18740, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,412 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=18743, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=18740, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,412 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=18745, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=18729, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,412 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=18746, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=18745, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,413 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=18747, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=18745, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,413 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=18748, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=18745, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,413 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=18750, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=18729, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,414 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=18751, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=18750, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,414 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=18752, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=18750, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,414 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=18753, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=18750, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,415 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=18755, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=18729, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,415 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=18756, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=18755, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,416 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=18757, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=18755, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,416 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=18758, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=18755, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,416 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=18760, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=18715, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,417 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=18761, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=18760, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,417 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=18762, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=18761, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,417 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=18763, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=18760, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,418 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=18764, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=18763, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,418 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=18765, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=18760, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,418 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=18766, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=18765, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,419 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=18767, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=18760, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,419 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=18768, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=18767, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,419 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=23643, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=23642, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,420 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=23644, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=23642, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,420 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=23645, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=23642, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,420 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=23646, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=23642, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,420 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=23647, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=23642, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,421 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=23648, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=23642, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,428 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=25452, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=25451, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,428 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=25453, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=25451, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,429 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=25454, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=25451, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,429 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=25455, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=25451, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,429 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=25459, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=25451, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,429 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=25460, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=25459, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,430 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=25461, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=25459, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,430 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=25462, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=25451, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,430 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=25463, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=25462, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,431 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=25464, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=25451, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,431 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=25465, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=25464, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,431 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=25466, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=25464, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,432 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=25467, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=25451, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,432 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=25468, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=25467, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,433 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=25469, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=25451, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,433 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=25470, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=25469, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,433 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=25471, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=25469, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,434 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=25472, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=25451, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,434 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=25473, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=25472, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,434 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=25474, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=25451, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,435 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=25475, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=25474, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,435 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=25476, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=25474, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,435 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=25477, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=25451, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,436 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=25478, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=25477, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,436 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=25479, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=25477, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,437 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=17406, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=17405, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,437 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=17410, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=17409, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,437 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=17411, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=17409, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,438 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=17412, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=17411, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,438 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=17413, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=17411, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,438 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=17414, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=17411, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,439 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=17416, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=17409, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,439 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=17417, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=17416, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,439 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=17418, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=17416, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,439 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=17419, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=17416, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,440 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=17421, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=17409, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,440 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=17422, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=17409, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,440 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=17423, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=17409, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,440 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=17424, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=17423, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,441 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=17425, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=17424, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,441 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=17426, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=17424, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,442 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=17429, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=17424, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,442 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=17431, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=17423, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,442 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=17432, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=17431, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,443 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=17433, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=17431, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,443 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=17434, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=17431, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,443 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=17436, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=17423, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,444 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=17437, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=17436, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,444 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=17438, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=17436, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,444 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=17439, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=17436, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,445 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=17441, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=17423, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,445 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=17442, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=17441, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,445 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=17443, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=17441, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,446 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=17444, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=17441, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,446 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=17446, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=17423, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,446 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=17447, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=17446, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,447 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=17448, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=17446, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,447 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=17449, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=17446, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,447 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=17451, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=17423, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,448 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=17452, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=17451, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,448 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=17453, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=17451, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,448 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=17454, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=17451, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,449 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=17457, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=17409, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,449 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=17458, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=17457, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,449 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=17459, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=17458, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,449 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=17460, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=17457, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,450 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=17461, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=17460, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,450 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=17462, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=17457, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,450 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=17463, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=17462, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,451 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=17464, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=17457, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,451 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=17466, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=17464, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,451 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=23679, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=23678, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,452 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=23680, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=23678, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,452 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=23681, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=23678, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,452 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=23682, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=23678, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,453 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=23683, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=23678, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,453 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=23684, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=23678, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,453 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=32398, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=23678, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,454 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=32839, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=23678, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,454 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=32840, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=23678, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,455 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=32841, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=23678, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,455 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=32842, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=23678, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,455 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=32399, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=23678, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,456 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=32400, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=23678, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,456 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=32401, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=23678, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,456 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=32402, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=23678, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,457 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=32843, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=23678, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,461 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=16720, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=15222, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,461 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=16721, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=15222, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,462 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=17482, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=15222, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,462 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=15223, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=15222, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,463 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=15224, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=15223, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,464 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=15482, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=15481, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,464 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=15483, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=15482, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,464 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=15484, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=15482, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,465 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=15485, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=15481, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,465 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=15486, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=15485, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,477 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=17202, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=14221, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,478 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=17576, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=17202, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,478 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=17311, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=17310, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,479 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=17204, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=17310, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,479 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=17486, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=17310, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,479 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=17314, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=17310, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,480 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=17315, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=17314, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,480 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=17214, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=17310, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,480 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=17318, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=17310, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,481 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=17319, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=17310, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,481 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=17321, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=17310, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,481 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=17322, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=17310, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,482 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=17558, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=17310, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,482 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=17326, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=17325, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,483 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=17302, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=17325, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,484 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=17487, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=17325, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,484 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=17329, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=17325, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,484 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=17330, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=17329, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,485 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=14601, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=14600, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,485 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=19242, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=19241, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,486 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=19243, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=19241, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,486 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=19244, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=19243, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,486 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=19245, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=19243, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,487 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=19246, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=19243, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,487 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=19248, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=19241, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,487 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=19249, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=19248, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,488 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=19250, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=19248, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,488 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=19251, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=19248, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,489 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=19253, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=19241, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,489 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=19254, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=19241, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,489 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=19255, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=19241, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,490 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=19256, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=19255, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,490 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=19257, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=19256, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,490 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=19258, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=19256, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,491 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=19259, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=19256, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,491 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=19261, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=19255, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,491 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=19262, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=19261, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,492 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=19263, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=19261, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,492 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=19264, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=19261, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,493 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=19266, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=19255, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,493 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=19267, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=19266, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,493 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=19268, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=19266, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,494 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=19269, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=19266, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,494 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=19271, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=19255, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,494 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=19272, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=19271, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,495 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=19273, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=19271, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,495 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=19274, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=19271, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,495 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=19276, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=19255, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,496 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=19277, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=19276, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,496 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=19278, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=19276, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,497 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=19279, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=19276, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,497 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=19281, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=19255, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,497 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=19282, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=19281, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,498 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=19283, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=19281, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,498 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=19284, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=19281, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,498 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=19286, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=19241, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,499 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=19287, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=19286, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,500 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=19288, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=19287, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,503 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=15266, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=15265, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,505 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=17744, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=17743, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,506 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=17745, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=17743, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,506 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=17490, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=17743, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,507 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=17749, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=17743, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,507 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=17750, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=17749, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,507 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=17813, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=17812, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,508 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=17814, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=17812, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,508 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=17815, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=17814, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,508 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=17816, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=17814, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,509 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=17817, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=17814, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,509 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=17819, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=17812, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,510 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=17820, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=17819, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,510 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=17821, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=17819, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,510 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=17822, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=17819, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,511 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=17824, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=17812, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,511 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=17825, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=17812, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,512 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=17826, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=17812, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,512 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=17827, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=17826, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,512 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=17828, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=17827, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,513 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=17829, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=17827, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,513 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=17830, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=17827, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,513 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=17832, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=17826, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,514 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=17833, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=17832, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,514 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=17834, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=17832, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,514 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=17835, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=17832, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,515 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=17837, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=17826, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,515 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=17838, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=17837, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,516 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=17839, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=17837, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,516 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=17840, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=17837, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,516 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=17842, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=17826, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,517 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=17843, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=17842, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,517 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=17844, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=17842, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,517 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=17845, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=17842, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,518 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=17847, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=17826, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,518 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=17848, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=17847, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,518 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=17849, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=17847, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,519 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=17850, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=17847, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,519 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=17853, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=17826, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,519 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=17854, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=17853, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,520 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=17855, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=17853, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,520 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=17856, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=17853, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,521 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=17859, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=17826, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,521 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=17864, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=17859, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,521 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=17871, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=17859, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,521 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=17872, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=17859, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,522 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=17874, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=17826, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,522 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=17878, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=17874, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,523 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=17885, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=17874, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,523 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=17892, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=17874, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,523 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=17900, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=17826, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,524 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=17901, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=17900, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,524 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=17902, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=17900, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,524 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=17903, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=17900, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,525 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=17858, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=17812, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,525 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=17913, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=17858, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,525 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=17920, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=17913, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,525 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=17927, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=17858, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,526 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=17934, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=17927, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,528 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=18077, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=18076, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,528 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=18078, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=18076, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,528 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=18079, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=18076, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,529 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=18080, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=18076, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,529 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=18081, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=18076, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,529 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=18082, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=18076, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,530 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=17560, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=18076, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,530 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=17562, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=18076, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,530 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=17492, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=18076, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,531 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=18088, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=18076, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,531 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=18089, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=18088, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,531 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=21006, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=18076, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,532 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=21016, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=21015, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,532 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=21017, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=21015, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,533 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=21018, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=21017, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,533 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=21019, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=21017, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,533 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=21020, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=21017, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,536 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=21022, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=21015, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,536 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=21023, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=21022, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,537 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=21024, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=21022, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,537 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=21025, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=21022, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,537 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=21027, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=21015, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,538 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=21028, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=21015, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,538 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=21029, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=21015, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,538 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=21030, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=21029, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,539 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=21031, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=21030, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,539 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=21032, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=21030, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,539 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=21033, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=21030, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,540 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=21035, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=21029, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,540 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=21036, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=21035, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,540 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=21037, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=21035, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,541 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=21038, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=21035, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,541 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=21040, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=21029, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,541 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=21041, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=21040, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,542 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=21042, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=21040, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,542 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=21043, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=21040, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,542 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=21045, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=21029, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,543 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=21046, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=21045, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,543 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=21047, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=21045, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,544 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=21048, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=21045, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,544 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=21050, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=21029, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,544 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=21051, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=21050, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,544 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=21052, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=21050, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,545 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=21053, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=21050, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,545 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=21055, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=21029, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,545 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=21056, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=21055, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,545 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=21057, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=21055, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,546 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=21058, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=21055, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,546 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=21061, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=21029, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,546 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=21062, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=21061, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,547 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=21063, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=21061, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,547 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=21064, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=21061, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,547 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=21060, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=21015, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,548 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=21076, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=21060, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,548 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=21077, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=21076, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,548 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=21078, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=21060, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,549 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=21079, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=21078, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,552 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=15300, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=15299, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,552 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=19551, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=19550, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,553 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=19552, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=19550, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,553 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=19553, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=19552, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,553 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=19554, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=19552, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,554 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=19555, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=19552, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,554 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=19557, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=19550, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,554 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=19558, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=19557, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,555 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=19559, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=19557, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,555 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=19560, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=19557, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,555 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=19562, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=19550, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,556 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=19563, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=19550, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,556 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=19564, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=19550, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,556 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=19565, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=19564, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,557 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=19566, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=19565, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,557 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=19567, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=19565, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,557 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=19568, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=19565, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,558 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=19570, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=19564, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,558 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=19571, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=19570, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,558 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=19572, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=19570, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,559 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=19573, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=19570, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,559 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=19575, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=19564, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,560 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=19576, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=19575, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,560 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=19577, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=19575, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,560 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=19578, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=19575, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,561 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=19580, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=19564, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,561 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=19581, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=19580, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,561 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=19582, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=19580, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,562 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=19583, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=19580, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,562 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=19585, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=19564, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,562 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=19586, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=19585, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,563 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=19587, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=19585, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,563 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=19588, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=19585, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,563 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=19590, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=19564, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,564 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=19591, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=19590, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,564 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=19592, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=19590, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,564 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=19593, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=19590, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,565 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=19596, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=19564, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,565 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=19597, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=19596, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,565 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=19598, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=19596, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,566 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=19599, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=19596, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,566 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=19595, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=19550, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,570 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=15308, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=15307, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,571 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=19610, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=19609, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,571 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=19611, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=19609, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,572 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=19612, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=19611, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,572 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=19613, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=19611, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,572 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=19614, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=19611, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,573 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=19616, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=19609, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,573 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=19617, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=19616, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,573 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=19618, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=19616, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,574 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=19619, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=19616, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,574 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=19621, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=19609, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,574 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=19622, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=19609, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,575 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=19623, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=19609, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,575 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=19624, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=19623, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,576 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=19625, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=19624, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,576 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=19626, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=19624, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,576 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=19627, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=19624, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,577 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=19629, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=19623, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,577 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=19630, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=19629, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,577 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=19631, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=19629, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,578 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=19632, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=19629, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,578 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=19634, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=19623, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,579 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=19635, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=19634, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,579 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=19636, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=19634, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,580 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=19637, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=19634, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,580 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=19639, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=19623, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,581 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=19640, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=19639, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,581 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=19641, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=19639, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,582 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=19642, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=19639, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,583 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=19644, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=19623, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,585 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=19645, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=19644, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,585 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=19646, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=19644, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,586 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=19647, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=19644, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,586 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=19649, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=19623, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,587 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=19650, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=19649, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,587 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=19651, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=19649, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,587 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=19652, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=19649, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,588 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=19655, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=19623, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,588 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=19656, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=19655, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,589 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=19657, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=19655, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,589 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=19658, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=19655, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,589 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=19654, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=19609, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,595 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=23808, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=23807, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,595 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=23809, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=23807, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,595 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=23810, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=23807, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,599 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=19680, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=19679, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,599 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=19681, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=19679, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,600 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=19682, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=19679, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,600 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=19685, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=19684, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,601 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=19686, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=19684, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,601 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=19687, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=19684, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,602 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=19693, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=19692, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,603 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=19694, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=19692, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,603 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=19695, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=19692, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,603 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=19698, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=19697, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,604 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=19699, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=19697, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,604 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=19700, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=19697, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,605 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=19703, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=19702, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,605 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=19704, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=19702, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,605 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=19705, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=19702, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,606 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=19708, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=19707, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,606 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=19709, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=19707, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,606 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=19710, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=19707, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,607 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=19713, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=19712, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,607 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=19714, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=19712, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,608 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=19715, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=19712, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,608 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=19718, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=19717, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,609 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=19719, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=19717, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,609 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=19720, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=19717, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,635 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=15154, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=15072, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,636 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=17579, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=15154, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,638 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=23843, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=23842, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,638 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=23844, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=23843, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,639 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=24018, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=24017, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,640 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=24019, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=24018, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,672 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=29878, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=24226, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,672 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=29879, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=29878, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,673 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=29880, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=29878, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,673 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=29881, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=29880, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,688 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=18965, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=18958, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,689 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=18966, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=18965, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,690 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=18967, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=18965, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,690 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=18968, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=18965, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,690 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=18969, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=18965, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,691 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=18972, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=18958, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,694 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=18975, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=18974, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,694 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=18976, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=18974, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,694 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=18977, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=18974, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,695 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=18978, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=18974, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,695 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=18979, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=18974, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,695 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=18981, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=18980, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,696 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=18982, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=18980, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,696 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=18983, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=18980, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,696 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=18984, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=18980, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,697 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=18989, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=18988, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,697 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=18990, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=18988, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,698 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=18991, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=18988, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,698 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=18992, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=18988, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,703 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=19018, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=19017, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,704 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=19019, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=19017, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,704 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=19020, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=19017, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,705 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=19021, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=19017, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,705 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=19022, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=19017, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:18,705 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=19023, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=19017, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:24:19,676 INFO openscada_lite.modules.communication.drivers.opc_ua_server_driver [OPCUA] Created 6 nodes +2026-01-10 18:24:19,676 WARNING asyncua.server.server No encrypting policy available, password may get transferred in plaintext +2026-01-10 18:24:19,677 WARNING asyncua.server.server Endpoints other than open requested but private key and certificate are not set. +2026-01-10 18:24:19,677 INFO asyncua.server.internal_server starting internal server +2026-01-10 18:24:19,678 INFO asyncua.server.binary_server_asyncio Listening on 0.0.0.0:4840 +2026-01-10 18:24:19,679 INFO asyncua.server.subscription_service create subscription +2026-01-10 18:24:19,679 INFO asyncua.common.subscription Subscription created 78 +2026-01-10 18:24:19,680 INFO asyncua.server.subscription_service create monitored items +2026-01-10 18:24:19,680 INFO asyncua.server.monitored_item_service.78 request to subscribe to datachange for node NodeId(Identifier='CameraDriver@CAMERA_1_POSITION_CMD', NamespaceIndex=2, NodeIdType=) and attribute 13 +2026-01-10 18:24:19,681 INFO asyncua.server.subscription_service create monitored items +2026-01-10 18:24:19,681 INFO asyncua.server.monitored_item_service.78 request to subscribe to datachange for node NodeId(Identifier='CameraDriver@CAMERA_2_POSITION_CMD', NamespaceIndex=2, NodeIdType=) and attribute 13 +2026-01-10 18:24:19,681 INFO asyncua.server.subscription_service create monitored items +2026-01-10 18:24:19,681 INFO asyncua.server.monitored_item_service.78 request to subscribe to datachange for node NodeId(Identifier='CameraDriver@CAMERA_3_POSITION_CMD', NamespaceIndex=2, NodeIdType=) and attribute 13 +2026-01-10 18:24:19,682 INFO openscada_lite.modules.communication.drivers.opc_ua_server_driver [OPCUA] Write monitoring enabled on 3 nodes +2026-01-10 18:24:19,682 INFO openscada_lite.modules.communication.drivers.opc_ua_server_driver [OPCUA] Server started at opc.tcp://0.0.0.0:4840/freeopcua/server/ (namespace: http://openscada-lite/opcua/server, idx: 2) +2026-01-10 18:24:19,684 INFO asyncua.common.subscription Publish callback called with result: PublishResult(SubscriptionId=78, AvailableSequenceNumbers=[], MoreNotifications=False, NotificationMessage_=NotificationMessage(SequenceNumber=1, PublishTime=datetime.datetime(2026, 1, 10, 17, 24, 19, 684565, tzinfo=datetime.timezone.utc), NotificationData=[DataChangeNotification(MonitoredItems=[MonitoredItemNotification(ClientHandle=201, Value=DataValue(Value=Variant(Value='', VariantType=, Dimensions=None, is_array=False), StatusCode_=StatusCode(value=0), SourceTimestamp=datetime.datetime(2026, 1, 10, 17, 24, 19, 675405, tzinfo=datetime.timezone.utc), ServerTimestamp=datetime.datetime(2026, 1, 10, 17, 24, 19, 675406, tzinfo=datetime.timezone.utc), SourcePicoseconds=None, ServerPicoseconds=None)), MonitoredItemNotification(ClientHandle=202, Value=DataValue(Value=Variant(Value='', VariantType=, Dimensions=None, is_array=False), StatusCode_=StatusCode(value=0), SourceTimestamp=datetime.datetime(2026, 1, 10, 17, 24, 19, 675724, tzinfo=datetime.timezone.utc), ServerTimestamp=datetime.datetime(2026, 1, 10, 17, 24, 19, 675724, tzinfo=datetime.timezone.utc), SourcePicoseconds=None, ServerPicoseconds=None)), MonitoredItemNotification(ClientHandle=203, Value=DataValue(Value=Variant(Value='', VariantType=, Dimensions=None, is_array=False), StatusCode_=StatusCode(value=0), SourceTimestamp=datetime.datetime(2026, 1, 10, 17, 24, 19, 676029, tzinfo=datetime.timezone.utc), ServerTimestamp=datetime.datetime(2026, 1, 10, 17, 24, 19, 676029, tzinfo=datetime.timezone.utc), SourcePicoseconds=None, ServerPicoseconds=None))], DiagnosticInfos=[])]), Results=[], DiagnosticInfos=[]) +2026-01-10 18:24:19,686 INFO openscada_lite.modules.communication.drivers.opc_ua_server_driver [WRITE] Client wrote CameraDriver@CAMERA_1_POSITION_CMD -> '' +2026-01-10 18:24:19,686 INFO openscada_lite.modules.communication.manager.connector_manager [COMMAND] Sending command: CameraDriver@CAMERA_1_POSITION_CMD = +2026-01-10 18:24:19,687 INFO openscada_lite.modules.communication.drivers.opc_ua_server_driver [WRITE] Client wrote CameraDriver@CAMERA_2_POSITION_CMD -> '' +2026-01-10 18:24:19,688 INFO openscada_lite.modules.communication.manager.connector_manager [COMMAND] Sending command: CameraDriver@CAMERA_2_POSITION_CMD = +2026-01-10 18:24:19,688 INFO openscada_lite.modules.communication.drivers.opc_ua_server_driver [WRITE] Client wrote CameraDriver@CAMERA_3_POSITION_CMD -> '' +2026-01-10 18:24:19,689 INFO openscada_lite.modules.communication.manager.connector_manager [COMMAND] Sending command: CameraDriver@CAMERA_3_POSITION_CMD = +2026-01-10 18:24:31,064 INFO asyncua.server.subscription_service delete subscriptions: [78] +2026-01-10 18:24:31,065 INFO asyncua.server.internal_subscription stopping internal subscription 78 +2026-01-10 18:24:31,065 INFO asyncua.server.internal_subscription exiting _subscription_loop for 78 +2026-01-10 18:24:31,065 INFO asyncua.server.binary_server_asyncio Closing asyncio socket server +2026-01-10 18:24:31,065 INFO asyncua.server.internal_server stopping internal server +2026-01-10 18:24:31,713 INFO asyncua.server.internal_session close session Internal +2026-01-10 18:24:31,713 INFO asyncua.server.subscription_service delete subscriptions: [] +2026-01-10 18:24:31,714 INFO openscada_lite.modules.communication.drivers.opc_ua_server_driver [OPCUA] Server stopped +2026-01-10 18:27:22,054 INFO openscada_lite.app [LIFESPAN] Startup starting... +2026-01-10 18:27:22,993 INFO openscada_lite.modules.communication.drivers.opc_ua_server_driver [OPCUA] Will expose 6 nodes on connect() +2026-01-10 18:27:22,994 INFO openscada_lite.modules.communication.drivers.test.test_driver [INIT] Creating TestDriver CameraDriver +2026-01-10 18:27:22,994 INFO openscada_lite.modules.communication.drivers.test.test_driver [INIT] Creating TestDriver WaterTank +2026-01-10 18:27:22,994 INFO openscada_lite.modules.communication.drivers.test.test_driver [INIT] Creating TestDriver StressTest +2026-01-10 18:27:22,996 INFO openscada_lite.modules.communication.drivers.test.test_driver [INIT] Creating TestDriver TrainTestDriver +2026-01-10 18:27:23,119 INFO apscheduler.scheduler Adding job tentatively -- it will be properly scheduled when the scheduler starts +2026-01-10 18:27:23,120 INFO apscheduler.scheduler Adding job tentatively -- it will be properly scheduled when the scheduler starts +2026-01-10 18:27:23,121 INFO apscheduler.scheduler Added job "ScheduleService._execute_schedule" to job store "default" +2026-01-10 18:27:23,121 INFO apscheduler.scheduler Added job "ScheduleService._execute_schedule" to job store "default" +2026-01-10 18:27:23,122 INFO apscheduler.scheduler Scheduler started +2026-01-10 18:27:23,145 INFO openscada_lite.modules.rule.manager.rule_manager Initializing RuleEngine with datapoint types: ['BOOL', 'CAMERA_POSITION', 'LEVEL', 'OPENED_CLOSED', 'OPEN_CLOSE_CMD', 'PRESSURE', 'START_STOP', 'START_STOP_CMD', 'SWITCH_CONTROL', 'SWITCH_CONTROL_CMD', 'TEMPERATURE', 'ON_OFF'] +2026-01-10 18:27:23,157 INFO openscada_lite.app [LIFESPAN] Startup complete +2026-01-10 18:27:23,158 INFO apscheduler.executors.default Running job "ScheduleService._execute_schedule (trigger: cron[month='*', day='*', day_of_week='*', hour='17', minute='0'], next run at: 2026-01-11 17:00:00 CET)" (scheduled at 2026-01-10 18:27:23.119502+01:00) +2026-01-10 18:27:23,159 INFO openscada_lite.modules.communication.manager.connector_manager [COMMAND] Sending command: TasmotaRelayDriver@RELAY_1_CMD = ON +2026-01-10 18:27:23,159 WARNING openscada_lite.modules.communication.manager.connector_manager Driver 'TasmotaRelayDriver' is not connected. Cannot send command. +2026-01-10 18:27:23,160 INFO openscada_lite.modules.communication.manager.connector_manager [COMMAND] Sending command: TasmotaRelayDriver@RELAY_2_CMD = ON +2026-01-10 18:27:23,160 WARNING openscada_lite.modules.communication.manager.connector_manager Driver 'TasmotaRelayDriver' is not connected. Cannot send command. +2026-01-10 18:27:23,160 INFO apscheduler.executors.default Job "ScheduleService._execute_schedule (trigger: cron[month='*', day='*', day_of_week='*', hour='17', minute='0'], next run at: 2026-01-11 17:00:00 CET)" executed successfully +2026-01-10 18:27:23,161 INFO apscheduler.executors.default Running job "ScheduleService._execute_schedule (trigger: cron[month='*', day='*', day_of_week='*', hour='23', minute='0'], next run at: 2026-01-10 23:00:00 CET)" (scheduled at 2026-01-10 18:27:23.120102+01:00) +2026-01-10 18:27:23,161 INFO openscada_lite.modules.communication.manager.connector_manager [COMMAND] Sending command: TasmotaRelayDriver@RELAY_1_CMD = OFF +2026-01-10 18:27:23,161 WARNING openscada_lite.modules.communication.manager.connector_manager Driver 'TasmotaRelayDriver' is not connected. Cannot send command. +2026-01-10 18:27:23,162 INFO openscada_lite.modules.communication.manager.connector_manager [COMMAND] Sending command: TasmotaRelayDriver@RELAY_2_CMD = OFF +2026-01-10 18:27:23,162 WARNING openscada_lite.modules.communication.manager.connector_manager Driver 'TasmotaRelayDriver' is not connected. Cannot send command. +2026-01-10 18:27:23,163 INFO apscheduler.executors.default Job "ScheduleService._execute_schedule (trigger: cron[month='*', day='*', day_of_week='*', hour='23', minute='0'], next run at: 2026-01-10 23:00:00 CET)" executed successfully +2026-01-10 18:29:36,076 INFO openscada_lite.modules.communication.drivers.test.test_driver [INIT] Initializing values for StressTest tags: {'TEST': RawTagUpdateMsg(track_id='b5c76ea4-4798-48c5-9670-0e566fc34eb4', datapoint_identifier='StressTest@TEST', value='STOPPED', quality='good', timestamp=datetime.datetime(2026, 1, 10, 18, 27, 22, 995166)), 'DP_0': RawTagUpdateMsg(track_id='4120d473-ae38-4b58-8090-e8eea8221171', datapoint_identifier='StressTest@DP_0', value='FALSE', quality='good', timestamp=datetime.datetime(2026, 1, 10, 18, 27, 22, 995166)), 'DP_1': RawTagUpdateMsg(track_id='ea7ac2a4-71fc-4f9e-9e1a-1932b35ad64f', datapoint_identifier='StressTest@DP_1', value='FALSE', quality='good', timestamp=datetime.datetime(2026, 1, 10, 18, 27, 22, 995166)), 'DP_2': RawTagUpdateMsg(track_id='a6aa887a-a244-4255-917c-386290685637', datapoint_identifier='StressTest@DP_2', value='FALSE', quality='good', timestamp=datetime.datetime(2026, 1, 10, 18, 27, 22, 995166)), 'DP_3': RawTagUpdateMsg(track_id='d30e1890-828e-47a0-8195-62bc66b9fbaf', datapoint_identifier='StressTest@DP_3', value='FALSE', quality='good', timestamp=datetime.datetime(2026, 1, 10, 18, 27, 22, 995166)), 'DP_4': RawTagUpdateMsg(track_id='9683d89c-61d5-4643-8190-ad555bbeec42', datapoint_identifier='StressTest@DP_4', value='FALSE', quality='good', timestamp=datetime.datetime(2026, 1, 10, 18, 27, 22, 995166)), 'DP_5': RawTagUpdateMsg(track_id='da0546bd-edf9-45cf-81b6-c5f287629a0f', datapoint_identifier='StressTest@DP_5', value='FALSE', quality='good', timestamp=datetime.datetime(2026, 1, 10, 18, 27, 22, 995166)), 'DP_6': RawTagUpdateMsg(track_id='a427472c-4cf0-408e-ac0d-e66da3dcd5b6', datapoint_identifier='StressTest@DP_6', value='FALSE', quality='good', timestamp=datetime.datetime(2026, 1, 10, 18, 27, 22, 995166)), 'DP_7': RawTagUpdateMsg(track_id='43e163c8-043c-4838-b947-96ec8845127d', datapoint_identifier='StressTest@DP_7', value='FALSE', quality='good', timestamp=datetime.datetime(2026, 1, 10, 18, 27, 22, 995166)), 'DP_8': RawTagUpdateMsg(track_id='2ef68b11-fcc5-4e81-bd18-28dd9f75ad25', datapoint_identifier='StressTest@DP_8', value='FALSE', quality='good', timestamp=datetime.datetime(2026, 1, 10, 18, 27, 22, 995166)), 'DP_9': RawTagUpdateMsg(track_id='188ef908-5204-4c55-ba79-ed2320981bdc', datapoint_identifier='StressTest@DP_9', value='FALSE', quality='good', timestamp=datetime.datetime(2026, 1, 10, 18, 27, 22, 995166)), 'DP_10': RawTagUpdateMsg(track_id='7b98d01d-d570-49c3-8867-326a205ef8e4', datapoint_identifier='StressTest@DP_10', value='FALSE', quality='good', timestamp=datetime.datetime(2026, 1, 10, 18, 27, 22, 995166)), 'DP_11': RawTagUpdateMsg(track_id='ff3b4a13-92e6-4c2e-9c46-e2c755d0ba3e', datapoint_identifier='StressTest@DP_11', value='FALSE', quality='good', timestamp=datetime.datetime(2026, 1, 10, 18, 27, 22, 995166)), 'DP_12': RawTagUpdateMsg(track_id='69aa2c62-0f76-4a66-835f-5e81607b49d1', datapoint_identifier='StressTest@DP_12', value='FALSE', quality='good', timestamp=datetime.datetime(2026, 1, 10, 18, 27, 22, 995166)), 'DP_13': RawTagUpdateMsg(track_id='7099c797-b50e-4211-b84a-7ec51b6d97ec', datapoint_identifier='StressTest@DP_13', value='FALSE', quality='good', timestamp=datetime.datetime(2026, 1, 10, 18, 27, 22, 995166)), 'DP_14': RawTagUpdateMsg(track_id='4055066e-93ce-43f6-8f9f-d29a26d644dd', datapoint_identifier='StressTest@DP_14', value='FALSE', quality='good', timestamp=datetime.datetime(2026, 1, 10, 18, 27, 22, 995166)), 'DP_15': RawTagUpdateMsg(track_id='f855da5c-219d-4f7d-90b4-5109cc70d021', datapoint_identifier='StressTest@DP_15', value='FALSE', quality='good', timestamp=datetime.datetime(2026, 1, 10, 18, 27, 22, 995166)), 'DP_16': RawTagUpdateMsg(track_id='4907dc9c-a336-4806-be2f-00bc059f5683', datapoint_identifier='StressTest@DP_16', value='FALSE', quality='good', timestamp=datetime.datetime(2026, 1, 10, 18, 27, 22, 995166)), 'DP_17': RawTagUpdateMsg(track_id='4cf3bb5a-e33d-4259-9de6-061dcce5a577', datapoint_identifier='StressTest@DP_17', value='FALSE', quality='good', timestamp=datetime.datetime(2026, 1, 10, 18, 27, 22, 995166)), 'DP_18': RawTagUpdateMsg(track_id='87552d94-294d-4e7a-afec-420e174895a8', datapoint_identifier='StressTest@DP_18', value='FALSE', quality='good', timestamp=datetime.datetime(2026, 1, 10, 18, 27, 22, 995166)), 'DP_19': RawTagUpdateMsg(track_id='3418e0cb-96e0-4bc8-9af1-1aa8461111c8', datapoint_identifier='StressTest@DP_19', value='FALSE', quality='good', timestamp=datetime.datetime(2026, 1, 10, 18, 27, 22, 995166)), 'DP_20': RawTagUpdateMsg(track_id='0980376c-fc42-44c4-b2ed-815fadc910bf', datapoint_identifier='StressTest@DP_20', value='FALSE', quality='good', timestamp=datetime.datetime(2026, 1, 10, 18, 27, 22, 995166)), 'DP_21': RawTagUpdateMsg(track_id='2948670a-2ce8-400a-b4f3-b31fc6dbaa74', datapoint_identifier='StressTest@DP_21', value='FALSE', quality='good', timestamp=datetime.datetime(2026, 1, 10, 18, 27, 22, 995166)), 'DP_22': RawTagUpdateMsg(track_id='c53a9fc5-d28b-43f8-b969-5e0b348c13cf', datapoint_identifier='StressTest@DP_22', value='FALSE', quality='good', timestamp=datetime.datetime(2026, 1, 10, 18, 27, 22, 995166)), 'DP_23': RawTagUpdateMsg(track_id='a67e4b57-278d-4e9a-94f6-e7b1fee3acf7', datapoint_identifier='StressTest@DP_23', value='FALSE', quality='good', timestamp=datetime.datetime(2026, 1, 10, 18, 27, 22, 995166)), 'DP_24': RawTagUpdateMsg(track_id='74adad5d-4b52-4dee-b3ed-380febd0b2b0', datapoint_identifier='StressTest@DP_24', value='FALSE', quality='good', timestamp=datetime.datetime(2026, 1, 10, 18, 27, 22, 995166)), 'DP_25': RawTagUpdateMsg(track_id='64906641-41f2-4a6d-a720-8a73edd8d170', datapoint_identifier='StressTest@DP_25', value='FALSE', quality='good', timestamp=datetime.datetime(2026, 1, 10, 18, 27, 22, 995166)), 'DP_26': RawTagUpdateMsg(track_id='89e5e0ce-fd09-4da2-af1e-4dc4da953e7c', datapoint_identifier='StressTest@DP_26', value='FALSE', quality='good', timestamp=datetime.datetime(2026, 1, 10, 18, 27, 22, 995166)), 'DP_27': RawTagUpdateMsg(track_id='f97ef67c-27da-4080-b02c-7107e5be703f', datapoint_identifier='StressTest@DP_27', value='FALSE', quality='good', timestamp=datetime.datetime(2026, 1, 10, 18, 27, 22, 995166)), 'DP_28': RawTagUpdateMsg(track_id='bcfb2595-131c-49fc-aecb-812c415b90d6', datapoint_identifier='StressTest@DP_28', value='FALSE', quality='good', timestamp=datetime.datetime(2026, 1, 10, 18, 27, 22, 995166)), 'DP_29': RawTagUpdateMsg(track_id='ab30fc2a-c9b9-4a2b-a326-5377373cde2f', datapoint_identifier='StressTest@DP_29', value='FALSE', quality='good', timestamp=datetime.datetime(2026, 1, 10, 18, 27, 22, 995166)), 'DP_30': RawTagUpdateMsg(track_id='3a29068a-1f4f-4d92-a0ed-09a42f1450fa', datapoint_identifier='StressTest@DP_30', value='FALSE', quality='good', timestamp=datetime.datetime(2026, 1, 10, 18, 27, 22, 995166)), 'DP_31': RawTagUpdateMsg(track_id='0b930e31-635a-410c-a6d2-4d75e2d60483', datapoint_identifier='StressTest@DP_31', value='FALSE', quality='good', timestamp=datetime.datetime(2026, 1, 10, 18, 27, 22, 995166)), 'DP_32': RawTagUpdateMsg(track_id='43674157-ae82-44e3-a71c-df1fbb9942fb', datapoint_identifier='StressTest@DP_32', value='FALSE', quality='good', timestamp=datetime.datetime(2026, 1, 10, 18, 27, 22, 995166)), 'DP_33': RawTagUpdateMsg(track_id='cdee1392-908c-4cf2-9124-1959271b287f', datapoint_identifier='StressTest@DP_33', value='FALSE', quality='good', timestamp=datetime.datetime(2026, 1, 10, 18, 27, 22, 995166)), 'DP_34': RawTagUpdateMsg(track_id='27c7ca3b-ce12-4329-a57d-5f8a7e210d7a', datapoint_identifier='StressTest@DP_34', value='FALSE', quality='good', timestamp=datetime.datetime(2026, 1, 10, 18, 27, 22, 995166)), 'DP_35': RawTagUpdateMsg(track_id='ab8994c7-19ba-483d-ae04-458c6487691c', datapoint_identifier='StressTest@DP_35', value='FALSE', quality='good', timestamp=datetime.datetime(2026, 1, 10, 18, 27, 22, 995166)), 'DP_36': RawTagUpdateMsg(track_id='7741b67a-e8f1-41b7-9fa4-4bc5fd2b867e', datapoint_identifier='StressTest@DP_36', value='FALSE', quality='good', timestamp=datetime.datetime(2026, 1, 10, 18, 27, 22, 995166)), 'DP_37': RawTagUpdateMsg(track_id='d31672e5-9ffb-42d8-9d07-2443507eb07d', datapoint_identifier='StressTest@DP_37', value='FALSE', quality='good', timestamp=datetime.datetime(2026, 1, 10, 18, 27, 22, 995166)), 'DP_38': RawTagUpdateMsg(track_id='414c6469-2ed8-4d3e-b505-4fdc77004f3e', datapoint_identifier='StressTest@DP_38', value='FALSE', quality='good', timestamp=datetime.datetime(2026, 1, 10, 18, 27, 22, 995166)), 'DP_39': RawTagUpdateMsg(track_id='f9826b06-df7c-4fb2-8fd4-08a1331ecb18', datapoint_identifier='StressTest@DP_39', value='FALSE', quality='good', timestamp=datetime.datetime(2026, 1, 10, 18, 27, 22, 995166)), 'DP_40': RawTagUpdateMsg(track_id='ab100ae9-e546-4914-87f5-2f20d41f71bf', datapoint_identifier='StressTest@DP_40', value='FALSE', quality='good', timestamp=datetime.datetime(2026, 1, 10, 18, 27, 22, 995166)), 'DP_41': RawTagUpdateMsg(track_id='77377e74-000a-4ed1-b3eb-d871b7183ab8', datapoint_identifier='StressTest@DP_41', value='FALSE', quality='good', timestamp=datetime.datetime(2026, 1, 10, 18, 27, 22, 995166)), 'DP_42': RawTagUpdateMsg(track_id='3a65990b-00f6-49a3-be9d-f8103e6e1c5a', datapoint_identifier='StressTest@DP_42', value='FALSE', quality='good', timestamp=datetime.datetime(2026, 1, 10, 18, 27, 22, 995166)), 'DP_43': RawTagUpdateMsg(track_id='294ae185-91c8-4ae9-94e5-9293c37bc3e6', datapoint_identifier='StressTest@DP_43', value='FALSE', quality='good', timestamp=datetime.datetime(2026, 1, 10, 18, 27, 22, 995166)), 'DP_44': RawTagUpdateMsg(track_id='0be8b7bb-4e9b-49ca-b52e-a0a72d02b0cc', datapoint_identifier='StressTest@DP_44', value='FALSE', quality='good', timestamp=datetime.datetime(2026, 1, 10, 18, 27, 22, 995166)), 'DP_45': RawTagUpdateMsg(track_id='97c34709-f774-484b-9493-721bdd59d9d5', datapoint_identifier='StressTest@DP_45', value='FALSE', quality='good', timestamp=datetime.datetime(2026, 1, 10, 18, 27, 22, 995166)), 'DP_46': RawTagUpdateMsg(track_id='5da731bd-5ddd-40b5-aad9-44a2e331cf5a', datapoint_identifier='StressTest@DP_46', value='FALSE', quality='good', timestamp=datetime.datetime(2026, 1, 10, 18, 27, 22, 995166)), 'DP_47': RawTagUpdateMsg(track_id='c6d0d97d-f140-4939-9b92-b50229e30d90', datapoint_identifier='StressTest@DP_47', value='FALSE', quality='good', timestamp=datetime.datetime(2026, 1, 10, 18, 27, 22, 995166)), 'DP_48': RawTagUpdateMsg(track_id='3c6d509f-31d0-4990-97a2-d389c1756902', datapoint_identifier='StressTest@DP_48', value='FALSE', quality='good', timestamp=datetime.datetime(2026, 1, 10, 18, 27, 22, 995166)), 'DP_49': RawTagUpdateMsg(track_id='ab9d48ce-3205-4c94-8859-a48cd1a42f19', datapoint_identifier='StressTest@DP_49', value='FALSE', quality='good', timestamp=datetime.datetime(2026, 1, 10, 18, 27, 22, 995166)), 'DP_50': RawTagUpdateMsg(track_id='55b8d76f-3ae2-46af-84e9-864ec32a836a', datapoint_identifier='StressTest@DP_50', value='FALSE', quality='good', timestamp=datetime.datetime(2026, 1, 10, 18, 27, 22, 995166)), 'DP_51': RawTagUpdateMsg(track_id='a306ca3f-e044-469c-aea3-d07b403831f7', datapoint_identifier='StressTest@DP_51', value='FALSE', quality='good', timestamp=datetime.datetime(2026, 1, 10, 18, 27, 22, 995166)), 'DP_52': RawTagUpdateMsg(track_id='935e2785-bc80-4c9a-b144-53a57fa6de16', datapoint_identifier='StressTest@DP_52', value='FALSE', quality='good', timestamp=datetime.datetime(2026, 1, 10, 18, 27, 22, 995166)), 'DP_53': RawTagUpdateMsg(track_id='a43f34b8-7b05-4c92-97ce-74e4e176337b', datapoint_identifier='StressTest@DP_53', value='FALSE', quality='good', timestamp=datetime.datetime(2026, 1, 10, 18, 27, 22, 995166)), 'DP_54': RawTagUpdateMsg(track_id='71192bfe-ab9a-4fc9-9c82-0023acdf3421', datapoint_identifier='StressTest@DP_54', value='FALSE', quality='good', timestamp=datetime.datetime(2026, 1, 10, 18, 27, 22, 995166)), 'DP_55': RawTagUpdateMsg(track_id='4310fedf-5f8f-4359-ae51-985d84803660', datapoint_identifier='StressTest@DP_55', value='FALSE', quality='good', timestamp=datetime.datetime(2026, 1, 10, 18, 27, 22, 995166)), 'DP_56': RawTagUpdateMsg(track_id='19cc5b96-32e9-419c-9b57-a4bd44050d58', datapoint_identifier='StressTest@DP_56', value='FALSE', quality='good', timestamp=datetime.datetime(2026, 1, 10, 18, 27, 22, 995166)), 'DP_57': RawTagUpdateMsg(track_id='97793c34-e6bb-463b-9d0d-3333e678bd56', datapoint_identifier='StressTest@DP_57', value='FALSE', quality='good', timestamp=datetime.datetime(2026, 1, 10, 18, 27, 22, 995166)), 'DP_58': RawTagUpdateMsg(track_id='9caa1cbc-6207-4bc9-9526-8ce7f90d0151', datapoint_identifier='StressTest@DP_58', value='FALSE', quality='good', timestamp=datetime.datetime(2026, 1, 10, 18, 27, 22, 995166)), 'DP_59': RawTagUpdateMsg(track_id='a8897d9c-94eb-4a9f-ba4b-6de3721b28c7', datapoint_identifier='StressTest@DP_59', value='FALSE', quality='good', timestamp=datetime.datetime(2026, 1, 10, 18, 27, 22, 995166)), 'DP_60': RawTagUpdateMsg(track_id='4352a684-f5b8-4752-88cc-35d89defa350', datapoint_identifier='StressTest@DP_60', value='FALSE', quality='good', timestamp=datetime.datetime(2026, 1, 10, 18, 27, 22, 995166)), 'DP_61': RawTagUpdateMsg(track_id='6c838220-6b80-4bfd-9ad7-131aa8816c67', datapoint_identifier='StressTest@DP_61', value='FALSE', quality='good', timestamp=datetime.datetime(2026, 1, 10, 18, 27, 22, 995166)), 'DP_62': RawTagUpdateMsg(track_id='4cf4518a-31af-443a-aa5c-f1cb18e2038a', datapoint_identifier='StressTest@DP_62', value='FALSE', quality='good', timestamp=datetime.datetime(2026, 1, 10, 18, 27, 22, 995166)), 'DP_63': RawTagUpdateMsg(track_id='74963ecd-5252-4b06-87c5-cc28d2247709', datapoint_identifier='StressTest@DP_63', value='FALSE', quality='good', timestamp=datetime.datetime(2026, 1, 10, 18, 27, 22, 995166)), 'DP_64': RawTagUpdateMsg(track_id='a45dedf9-493e-4157-8407-ace09a4289f3', datapoint_identifier='StressTest@DP_64', value='FALSE', quality='good', timestamp=datetime.datetime(2026, 1, 10, 18, 27, 22, 995166)), 'DP_65': RawTagUpdateMsg(track_id='9e1badfd-e4ed-4558-b6f0-a5cb75ed9cef', datapoint_identifier='StressTest@DP_65', value='FALSE', quality='good', timestamp=datetime.datetime(2026, 1, 10, 18, 27, 22, 995166)), 'DP_66': RawTagUpdateMsg(track_id='1d2b67fd-1c11-418a-91bd-1a55a4e42b54', datapoint_identifier='StressTest@DP_66', value='FALSE', quality='good', timestamp=datetime.datetime(2026, 1, 10, 18, 27, 22, 995166)), 'DP_67': RawTagUpdateMsg(track_id='afb5c626-86d9-46d9-8ca4-dae23b124ec7', datapoint_identifier='StressTest@DP_67', value='FALSE', quality='good', timestamp=datetime.datetime(2026, 1, 10, 18, 27, 22, 995166)), 'DP_68': RawTagUpdateMsg(track_id='c22c2b31-f736-4f05-a35f-f68be8035a94', datapoint_identifier='StressTest@DP_68', value='FALSE', quality='good', timestamp=datetime.datetime(2026, 1, 10, 18, 27, 22, 995166)), 'DP_69': RawTagUpdateMsg(track_id='fa362168-d553-4559-ba76-c9a5c3a39b69', datapoint_identifier='StressTest@DP_69', value='FALSE', quality='good', timestamp=datetime.datetime(2026, 1, 10, 18, 27, 22, 995166)), 'DP_70': RawTagUpdateMsg(track_id='381ca3f1-7184-4340-b062-5656eef41b44', datapoint_identifier='StressTest@DP_70', value='FALSE', quality='good', timestamp=datetime.datetime(2026, 1, 10, 18, 27, 22, 995166)), 'DP_71': RawTagUpdateMsg(track_id='c2b4dc9a-b2be-4697-a3d6-c2c34dfc3fce', datapoint_identifier='StressTest@DP_71', value='FALSE', quality='good', timestamp=datetime.datetime(2026, 1, 10, 18, 27, 22, 995166)), 'DP_72': RawTagUpdateMsg(track_id='d4e87267-677d-4dee-978e-a545de2d4dde', datapoint_identifier='StressTest@DP_72', value='FALSE', quality='good', timestamp=datetime.datetime(2026, 1, 10, 18, 27, 22, 995166)), 'DP_73': RawTagUpdateMsg(track_id='1312355b-dce5-4199-9f49-2bc408a9c7d1', datapoint_identifier='StressTest@DP_73', value='FALSE', quality='good', timestamp=datetime.datetime(2026, 1, 10, 18, 27, 22, 995166)), 'DP_74': RawTagUpdateMsg(track_id='aad2c140-5dd2-4b7b-aed2-44411a193410', datapoint_identifier='StressTest@DP_74', value='FALSE', quality='good', timestamp=datetime.datetime(2026, 1, 10, 18, 27, 22, 995166)), 'DP_75': RawTagUpdateMsg(track_id='752e0da6-dfcc-41d6-b702-32f3b096f883', datapoint_identifier='StressTest@DP_75', value='FALSE', quality='good', timestamp=datetime.datetime(2026, 1, 10, 18, 27, 22, 995166)), 'DP_76': RawTagUpdateMsg(track_id='61ddcc8e-36d0-488a-a8db-5f27d2ddd26e', datapoint_identifier='StressTest@DP_76', value='FALSE', quality='good', timestamp=datetime.datetime(2026, 1, 10, 18, 27, 22, 995166)), 'DP_77': RawTagUpdateMsg(track_id='25d481b2-8f2d-4098-aee8-ec284329032b', datapoint_identifier='StressTest@DP_77', value='FALSE', quality='good', timestamp=datetime.datetime(2026, 1, 10, 18, 27, 22, 995166)), 'DP_78': RawTagUpdateMsg(track_id='bb5c4197-f53a-44dc-af6b-249e2354c933', datapoint_identifier='StressTest@DP_78', value='FALSE', quality='good', timestamp=datetime.datetime(2026, 1, 10, 18, 27, 22, 995166)), 'DP_79': RawTagUpdateMsg(track_id='f7fc81f5-04e5-4ccd-90d9-ca48eabddedf', datapoint_identifier='StressTest@DP_79', value='FALSE', quality='good', timestamp=datetime.datetime(2026, 1, 10, 18, 27, 22, 995166)), 'DP_80': RawTagUpdateMsg(track_id='a7bf965e-2f9b-4304-bfed-1cf4d5c00319', datapoint_identifier='StressTest@DP_80', value='FALSE', quality='good', timestamp=datetime.datetime(2026, 1, 10, 18, 27, 22, 995166)), 'DP_81': RawTagUpdateMsg(track_id='7e622305-5838-432c-a357-6ff3aa75b985', datapoint_identifier='StressTest@DP_81', value='FALSE', quality='good', timestamp=datetime.datetime(2026, 1, 10, 18, 27, 22, 995166)), 'DP_82': RawTagUpdateMsg(track_id='8fe0d8f9-7141-42eb-868b-a5a597418698', datapoint_identifier='StressTest@DP_82', value='FALSE', quality='good', timestamp=datetime.datetime(2026, 1, 10, 18, 27, 22, 995166)), 'DP_83': RawTagUpdateMsg(track_id='cc7b20fe-1840-4688-9805-6227cc16cd94', datapoint_identifier='StressTest@DP_83', value='FALSE', quality='good', timestamp=datetime.datetime(2026, 1, 10, 18, 27, 22, 995166)), 'DP_84': RawTagUpdateMsg(track_id='8c15e8c6-c2c4-462a-8b0e-ef9bc92c1506', datapoint_identifier='StressTest@DP_84', value='FALSE', quality='good', timestamp=datetime.datetime(2026, 1, 10, 18, 27, 22, 995166)), 'DP_85': RawTagUpdateMsg(track_id='2a06fbf8-dbef-4e43-8472-25d221c45edb', datapoint_identifier='StressTest@DP_85', value='FALSE', quality='good', timestamp=datetime.datetime(2026, 1, 10, 18, 27, 22, 995166)), 'DP_86': RawTagUpdateMsg(track_id='e6131e62-2b31-4efa-a127-997d25916473', datapoint_identifier='StressTest@DP_86', value='FALSE', quality='good', timestamp=datetime.datetime(2026, 1, 10, 18, 27, 22, 995166)), 'DP_87': RawTagUpdateMsg(track_id='f9e74b19-3e55-4e1a-b8af-fb691a9192da', datapoint_identifier='StressTest@DP_87', value='FALSE', quality='good', timestamp=datetime.datetime(2026, 1, 10, 18, 27, 22, 995166)), 'DP_88': RawTagUpdateMsg(track_id='6428f549-4003-4963-92ce-4d8f3d7996fa', datapoint_identifier='StressTest@DP_88', value='FALSE', quality='good', timestamp=datetime.datetime(2026, 1, 10, 18, 27, 22, 995166)), 'DP_89': RawTagUpdateMsg(track_id='8c56713e-c3dd-4bed-b065-b87307cb71b3', datapoint_identifier='StressTest@DP_89', value='FALSE', quality='good', timestamp=datetime.datetime(2026, 1, 10, 18, 27, 22, 995166)), 'DP_90': RawTagUpdateMsg(track_id='43d2c466-648a-41f0-b21c-9da3b2cb77eb', datapoint_identifier='StressTest@DP_90', value='FALSE', quality='good', timestamp=datetime.datetime(2026, 1, 10, 18, 27, 22, 995166)), 'DP_91': RawTagUpdateMsg(track_id='4fbc3d65-97bb-4e19-ba6b-953791b7c373', datapoint_identifier='StressTest@DP_91', value='FALSE', quality='good', timestamp=datetime.datetime(2026, 1, 10, 18, 27, 22, 995166)), 'DP_92': RawTagUpdateMsg(track_id='87e5e667-b23e-4723-8c82-7c8cf2509b65', datapoint_identifier='StressTest@DP_92', value='FALSE', quality='good', timestamp=datetime.datetime(2026, 1, 10, 18, 27, 22, 995166)), 'DP_93': RawTagUpdateMsg(track_id='93765dfc-2c62-4dc3-9c03-146677168d34', datapoint_identifier='StressTest@DP_93', value='FALSE', quality='good', timestamp=datetime.datetime(2026, 1, 10, 18, 27, 22, 995166)), 'DP_94': RawTagUpdateMsg(track_id='7db9f24a-8fc1-46bc-bb6c-35332cbced27', datapoint_identifier='StressTest@DP_94', value='FALSE', quality='good', timestamp=datetime.datetime(2026, 1, 10, 18, 27, 22, 995166)), 'DP_95': RawTagUpdateMsg(track_id='7789f75f-116b-4929-b1d4-906abf7fe783', datapoint_identifier='StressTest@DP_95', value='FALSE', quality='good', timestamp=datetime.datetime(2026, 1, 10, 18, 27, 22, 995166)), 'DP_96': RawTagUpdateMsg(track_id='672a0821-a20b-439b-ac19-f15c252d3b45', datapoint_identifier='StressTest@DP_96', value='FALSE', quality='good', timestamp=datetime.datetime(2026, 1, 10, 18, 27, 22, 995166)), 'DP_97': RawTagUpdateMsg(track_id='a7c3d48a-7aec-4234-b420-4aa2f67273da', datapoint_identifier='StressTest@DP_97', value='FALSE', quality='good', timestamp=datetime.datetime(2026, 1, 10, 18, 27, 22, 995166)), 'DP_98': RawTagUpdateMsg(track_id='8d7347a1-6a1e-403b-9a80-11a9cdbd264c', datapoint_identifier='StressTest@DP_98', value='FALSE', quality='good', timestamp=datetime.datetime(2026, 1, 10, 18, 27, 22, 995166)), 'DP_99': RawTagUpdateMsg(track_id='560ccba2-f20c-46bc-97cc-1b790b3d2807', datapoint_identifier='StressTest@DP_99', value='FALSE', quality='good', timestamp=datetime.datetime(2026, 1, 10, 18, 27, 22, 995166)), 'DP_100': RawTagUpdateMsg(track_id='136f6327-6a19-4e09-990a-4bc178be3a17', datapoint_identifier='StressTest@DP_100', value='FALSE', quality='good', timestamp=datetime.datetime(2026, 1, 10, 18, 27, 22, 995166)), 'DP_101': RawTagUpdateMsg(track_id='27d7be6e-de31-4ca6-acec-da3300cd2dc5', datapoint_identifier='StressTest@DP_101', value='FALSE', quality='good', timestamp=datetime.datetime(2026, 1, 10, 18, 27, 22, 995166)), 'DP_102': RawTagUpdateMsg(track_id='134c615c-f1fe-4e8c-ab59-d251de4bd590', datapoint_identifier='StressTest@DP_102', value='FALSE', quality='good', timestamp=datetime.datetime(2026, 1, 10, 18, 27, 22, 995166)), 'DP_103': RawTagUpdateMsg(track_id='4d0e1e98-6c1e-4b16-b2c7-1da19251736d', datapoint_identifier='StressTest@DP_103', value='FALSE', quality='good', timestamp=datetime.datetime(2026, 1, 10, 18, 27, 22, 995166)), 'DP_104': RawTagUpdateMsg(track_id='3bdebc9d-5b23-4643-bc01-c0188a9611b8', datapoint_identifier='StressTest@DP_104', value='FALSE', quality='good', timestamp=datetime.datetime(2026, 1, 10, 18, 27, 22, 995166)), 'DP_105': RawTagUpdateMsg(track_id='e4a0c60a-66b8-4703-973a-6fac721bfa73', datapoint_identifier='StressTest@DP_105', value='FALSE', quality='good', timestamp=datetime.datetime(2026, 1, 10, 18, 27, 22, 995166)), 'DP_106': RawTagUpdateMsg(track_id='934fc3f2-85e5-4299-b946-777e4166956d', datapoint_identifier='StressTest@DP_106', value='FALSE', quality='good', timestamp=datetime.datetime(2026, 1, 10, 18, 27, 22, 995166)), 'DP_107': RawTagUpdateMsg(track_id='b0cc2484-d36a-4e0f-a415-fee7371657ac', datapoint_identifier='StressTest@DP_107', value='FALSE', quality='good', timestamp=datetime.datetime(2026, 1, 10, 18, 27, 22, 995166)), 'DP_108': RawTagUpdateMsg(track_id='93a5b085-7e95-4a41-9a95-28608a2c9e7d', datapoint_identifier='StressTest@DP_108', value='FALSE', quality='good', timestamp=datetime.datetime(2026, 1, 10, 18, 27, 22, 995166)), 'DP_109': RawTagUpdateMsg(track_id='bc5b1066-595c-4b43-8449-2e2a7e09d391', datapoint_identifier='StressTest@DP_109', value='FALSE', quality='good', timestamp=datetime.datetime(2026, 1, 10, 18, 27, 22, 995166)), 'DP_110': RawTagUpdateMsg(track_id='53ee9dbe-375b-4316-89a9-1c989c7eef86', datapoint_identifier='StressTest@DP_110', value='FALSE', quality='good', timestamp=datetime.datetime(2026, 1, 10, 18, 27, 22, 995166)), 'DP_111': RawTagUpdateMsg(track_id='eb07502b-c061-4a09-acd3-c5cb2105cce6', datapoint_identifier='StressTest@DP_111', value='FALSE', quality='good', timestamp=datetime.datetime(2026, 1, 10, 18, 27, 22, 995166)), 'DP_112': RawTagUpdateMsg(track_id='14436045-933e-4a16-a4db-794eccc1246d', datapoint_identifier='StressTest@DP_112', value='FALSE', quality='good', timestamp=datetime.datetime(2026, 1, 10, 18, 27, 22, 995166)), 'DP_113': RawTagUpdateMsg(track_id='94194a22-35b8-47e5-b656-7ac2d11b5b5f', datapoint_identifier='StressTest@DP_113', value='FALSE', quality='good', timestamp=datetime.datetime(2026, 1, 10, 18, 27, 22, 995166)), 'DP_114': RawTagUpdateMsg(track_id='55335cb2-cadc-4b01-882c-8b7eea3454b8', datapoint_identifier='StressTest@DP_114', value='FALSE', quality='good', timestamp=datetime.datetime(2026, 1, 10, 18, 27, 22, 995166)), 'DP_115': RawTagUpdateMsg(track_id='b7255dac-1beb-4763-b0e6-c3a9e79428fc', datapoint_identifier='StressTest@DP_115', value='FALSE', quality='good', timestamp=datetime.datetime(2026, 1, 10, 18, 27, 22, 995166)), 'DP_116': RawTagUpdateMsg(track_id='ba9cf31f-34af-4c6d-b738-f8b4036dcf23', datapoint_identifier='StressTest@DP_116', value='FALSE', quality='good', timestamp=datetime.datetime(2026, 1, 10, 18, 27, 22, 995166)), 'DP_117': RawTagUpdateMsg(track_id='96f9ae54-46a3-4ff1-ac7f-26db99237513', datapoint_identifier='StressTest@DP_117', value='FALSE', quality='good', timestamp=datetime.datetime(2026, 1, 10, 18, 27, 22, 995166)), 'DP_118': RawTagUpdateMsg(track_id='57949396-53ec-4d01-9915-ebd3ee14685a', datapoint_identifier='StressTest@DP_118', value='FALSE', quality='good', timestamp=datetime.datetime(2026, 1, 10, 18, 27, 22, 995166)), 'DP_119': RawTagUpdateMsg(track_id='fe5ebddd-9275-4a82-95e6-b8e83122e261', datapoint_identifier='StressTest@DP_119', value='FALSE', quality='good', timestamp=datetime.datetime(2026, 1, 10, 18, 27, 22, 995166)), 'DP_120': RawTagUpdateMsg(track_id='43d0ec48-71e7-499e-9ea1-4b58a6c84f1a', datapoint_identifier='StressTest@DP_120', value='FALSE', quality='good', timestamp=datetime.datetime(2026, 1, 10, 18, 27, 22, 995166)), 'DP_121': RawTagUpdateMsg(track_id='3af847da-2fb6-407d-8a59-eccc2850c49f', datapoint_identifier='StressTest@DP_121', value='FALSE', quality='good', timestamp=datetime.datetime(2026, 1, 10, 18, 27, 22, 995166)), 'DP_122': RawTagUpdateMsg(track_id='285899c9-ddf9-4e06-855f-559e225cb80c', datapoint_identifier='StressTest@DP_122', value='FALSE', quality='good', timestamp=datetime.datetime(2026, 1, 10, 18, 27, 22, 995166)), 'DP_123': RawTagUpdateMsg(track_id='29f3b0e3-0e7d-42df-b435-be5dc3ac7aee', datapoint_identifier='StressTest@DP_123', value='FALSE', quality='good', timestamp=datetime.datetime(2026, 1, 10, 18, 27, 22, 995166)), 'DP_124': RawTagUpdateMsg(track_id='51eedc75-a62a-41d1-941b-a82a47def200', datapoint_identifier='StressTest@DP_124', value='FALSE', quality='good', timestamp=datetime.datetime(2026, 1, 10, 18, 27, 22, 995166)), 'DP_125': RawTagUpdateMsg(track_id='5df99ea2-7662-4395-b065-53caf94b415a', datapoint_identifier='StressTest@DP_125', value='FALSE', quality='good', timestamp=datetime.datetime(2026, 1, 10, 18, 27, 22, 995166)), 'DP_126': RawTagUpdateMsg(track_id='2240a643-378a-4bf1-8ac7-0c4998167613', datapoint_identifier='StressTest@DP_126', value='FALSE', quality='good', timestamp=datetime.datetime(2026, 1, 10, 18, 27, 22, 995166)), 'DP_127': RawTagUpdateMsg(track_id='3d962269-ad42-4f7c-896a-bd70fbd5db92', datapoint_identifier='StressTest@DP_127', value='FALSE', quality='good', timestamp=datetime.datetime(2026, 1, 10, 18, 27, 22, 995166)), 'DP_128': RawTagUpdateMsg(track_id='b55f7782-8178-40c4-bf37-baef947194f5', datapoint_identifier='StressTest@DP_128', value='FALSE', quality='good', timestamp=datetime.datetime(2026, 1, 10, 18, 27, 22, 995166)), 'DP_129': RawTagUpdateMsg(track_id='f8dd5b56-0c98-4a24-862a-aefe70de28d8', datapoint_identifier='StressTest@DP_129', value='FALSE', quality='good', timestamp=datetime.datetime(2026, 1, 10, 18, 27, 22, 995166)), 'DP_130': RawTagUpdateMsg(track_id='edbcfbd5-4b8d-411e-a443-477989714567', datapoint_identifier='StressTest@DP_130', value='FALSE', quality='good', timestamp=datetime.datetime(2026, 1, 10, 18, 27, 22, 995166)), 'DP_131': RawTagUpdateMsg(track_id='fb7125de-9a73-4878-adcb-d9fe796c28b0', datapoint_identifier='StressTest@DP_131', value='FALSE', quality='good', timestamp=datetime.datetime(2026, 1, 10, 18, 27, 22, 995166)), 'DP_132': RawTagUpdateMsg(track_id='788ac7b8-0c74-4c03-9d67-59d44fe24bbd', datapoint_identifier='StressTest@DP_132', value='FALSE', quality='good', timestamp=datetime.datetime(2026, 1, 10, 18, 27, 22, 995166)), 'DP_133': RawTagUpdateMsg(track_id='53095dc0-ee09-414b-9629-985732c912d3', datapoint_identifier='StressTest@DP_133', value='FALSE', quality='good', timestamp=datetime.datetime(2026, 1, 10, 18, 27, 22, 995166)), 'DP_134': RawTagUpdateMsg(track_id='b551acb1-4219-4b85-b5c3-4aef30b43676', datapoint_identifier='StressTest@DP_134', value='FALSE', quality='good', timestamp=datetime.datetime(2026, 1, 10, 18, 27, 22, 995166)), 'DP_135': RawTagUpdateMsg(track_id='27ed10c4-83c7-4b8f-82e3-2848be258310', datapoint_identifier='StressTest@DP_135', value='FALSE', quality='good', timestamp=datetime.datetime(2026, 1, 10, 18, 27, 22, 995166)), 'DP_136': RawTagUpdateMsg(track_id='f8374bae-3d65-4bbc-a24e-30f3faab72a1', datapoint_identifier='StressTest@DP_136', value='FALSE', quality='good', timestamp=datetime.datetime(2026, 1, 10, 18, 27, 22, 995166)), 'DP_137': RawTagUpdateMsg(track_id='fc391c67-7426-4f1b-b978-8bc21ee6eb59', datapoint_identifier='StressTest@DP_137', value='FALSE', quality='good', timestamp=datetime.datetime(2026, 1, 10, 18, 27, 22, 995166)), 'DP_138': RawTagUpdateMsg(track_id='bdb226fb-cbdc-4ac0-a3ad-15df814adb63', datapoint_identifier='StressTest@DP_138', value='FALSE', quality='good', timestamp=datetime.datetime(2026, 1, 10, 18, 27, 22, 995166)), 'DP_139': RawTagUpdateMsg(track_id='0d83816a-a5dd-4a32-98a5-31b394162ddd', datapoint_identifier='StressTest@DP_139', value='FALSE', quality='good', timestamp=datetime.datetime(2026, 1, 10, 18, 27, 22, 995166)), 'DP_140': RawTagUpdateMsg(track_id='95414f88-f79c-4e8a-b171-d4926e20dc61', datapoint_identifier='StressTest@DP_140', value='FALSE', quality='good', timestamp=datetime.datetime(2026, 1, 10, 18, 27, 22, 995166)), 'DP_141': RawTagUpdateMsg(track_id='3fd394ff-68ae-4b98-99c8-382c7bb36e7d', datapoint_identifier='StressTest@DP_141', value='FALSE', quality='good', timestamp=datetime.datetime(2026, 1, 10, 18, 27, 22, 995166)), 'DP_142': RawTagUpdateMsg(track_id='46930320-7b33-4707-8cd4-ecc26fc94f62', datapoint_identifier='StressTest@DP_142', value='FALSE', quality='good', timestamp=datetime.datetime(2026, 1, 10, 18, 27, 22, 995166)), 'DP_143': RawTagUpdateMsg(track_id='8224308a-50f2-4615-bcd2-4e40389a1f26', datapoint_identifier='StressTest@DP_143', value='FALSE', quality='good', timestamp=datetime.datetime(2026, 1, 10, 18, 27, 22, 995166)), 'DP_144': RawTagUpdateMsg(track_id='381629c7-5e9d-47d8-8cfd-a75c081e395c', datapoint_identifier='StressTest@DP_144', value='FALSE', quality='good', timestamp=datetime.datetime(2026, 1, 10, 18, 27, 22, 995166)), 'DP_145': RawTagUpdateMsg(track_id='2fe2b7c5-f79e-473b-8e14-6d6574585da2', datapoint_identifier='StressTest@DP_145', value='FALSE', quality='good', timestamp=datetime.datetime(2026, 1, 10, 18, 27, 22, 995166)), 'DP_146': RawTagUpdateMsg(track_id='2aa447e3-1fa1-4d9e-a5ea-fa01383bd523', datapoint_identifier='StressTest@DP_146', value='FALSE', quality='good', timestamp=datetime.datetime(2026, 1, 10, 18, 27, 22, 995166)), 'DP_147': RawTagUpdateMsg(track_id='67e052e1-5244-4928-a978-164115a6e538', datapoint_identifier='StressTest@DP_147', value='FALSE', quality='good', timestamp=datetime.datetime(2026, 1, 10, 18, 27, 22, 995166)), 'DP_148': RawTagUpdateMsg(track_id='a01abdfe-f042-4793-a18d-529e712b6fee', datapoint_identifier='StressTest@DP_148', value='FALSE', quality='good', timestamp=datetime.datetime(2026, 1, 10, 18, 27, 22, 995166)), 'DP_149': RawTagUpdateMsg(track_id='5dbe5bb9-9588-4596-b1cd-8645f83a763c', datapoint_identifier='StressTest@DP_149', value='FALSE', quality='good', timestamp=datetime.datetime(2026, 1, 10, 18, 27, 22, 995166)), 'DP_150': RawTagUpdateMsg(track_id='f0bf5c8d-8a75-4485-b4e1-ecab4e2e3d7d', datapoint_identifier='StressTest@DP_150', value='FALSE', quality='good', timestamp=datetime.datetime(2026, 1, 10, 18, 27, 22, 995166)), 'DP_151': RawTagUpdateMsg(track_id='3f74a19f-27e7-4c10-9e48-1c848b386f94', datapoint_identifier='StressTest@DP_151', value='FALSE', quality='good', timestamp=datetime.datetime(2026, 1, 10, 18, 27, 22, 995166)), 'DP_152': RawTagUpdateMsg(track_id='29303689-c6b2-4d47-849f-98c04215ac80', datapoint_identifier='StressTest@DP_152', value='FALSE', quality='good', timestamp=datetime.datetime(2026, 1, 10, 18, 27, 22, 995166)), 'DP_153': RawTagUpdateMsg(track_id='8e33412c-00cc-47a3-8d53-ed5ac6187c44', datapoint_identifier='StressTest@DP_153', value='FALSE', quality='good', timestamp=datetime.datetime(2026, 1, 10, 18, 27, 22, 995166)), 'DP_154': RawTagUpdateMsg(track_id='de7fcaf0-020b-4381-8d1b-830e4570c57b', datapoint_identifier='StressTest@DP_154', value='FALSE', quality='good', timestamp=datetime.datetime(2026, 1, 10, 18, 27, 22, 995166)), 'DP_155': RawTagUpdateMsg(track_id='c6112a28-f2a5-43a7-9696-b54b95a33fd8', datapoint_identifier='StressTest@DP_155', value='FALSE', quality='good', timestamp=datetime.datetime(2026, 1, 10, 18, 27, 22, 995166)), 'DP_156': RawTagUpdateMsg(track_id='8bb986ec-f052-4dc2-a67e-c0094d8b41ca', datapoint_identifier='StressTest@DP_156', value='FALSE', quality='good', timestamp=datetime.datetime(2026, 1, 10, 18, 27, 22, 995166)), 'DP_157': RawTagUpdateMsg(track_id='3b975c2a-e94e-46ac-89a4-7b38c183207b', datapoint_identifier='StressTest@DP_157', value='FALSE', quality='good', timestamp=datetime.datetime(2026, 1, 10, 18, 27, 22, 995166)), 'DP_158': RawTagUpdateMsg(track_id='c9991207-de5a-44c3-8bf8-075702c18f37', datapoint_identifier='StressTest@DP_158', value='FALSE', quality='good', timestamp=datetime.datetime(2026, 1, 10, 18, 27, 22, 995166)), 'DP_159': RawTagUpdateMsg(track_id='d20027e6-46ad-4851-948b-d841e9ea9fbd', datapoint_identifier='StressTest@DP_159', value='FALSE', quality='good', timestamp=datetime.datetime(2026, 1, 10, 18, 27, 22, 995166)), 'DP_160': RawTagUpdateMsg(track_id='9c1192a8-96ab-4b3c-a1fd-baee83adff6d', datapoint_identifier='StressTest@DP_160', value='FALSE', quality='good', timestamp=datetime.datetime(2026, 1, 10, 18, 27, 22, 995166)), 'DP_161': RawTagUpdateMsg(track_id='9c0e7fc9-516a-4bae-bbbf-826c7955e22c', datapoint_identifier='StressTest@DP_161', value='FALSE', quality='good', timestamp=datetime.datetime(2026, 1, 10, 18, 27, 22, 995166)), 'DP_162': RawTagUpdateMsg(track_id='c59c71ae-8011-499f-9a9b-21a3a7896d6a', datapoint_identifier='StressTest@DP_162', value='FALSE', quality='good', timestamp=datetime.datetime(2026, 1, 10, 18, 27, 22, 995166)), 'DP_163': RawTagUpdateMsg(track_id='bce18eec-578d-40b1-8b45-d62fee19f273', datapoint_identifier='StressTest@DP_163', value='FALSE', quality='good', timestamp=datetime.datetime(2026, 1, 10, 18, 27, 22, 995166)), 'DP_164': RawTagUpdateMsg(track_id='362404ca-3fd4-45fa-be69-52d760abbe87', datapoint_identifier='StressTest@DP_164', value='FALSE', quality='good', timestamp=datetime.datetime(2026, 1, 10, 18, 27, 22, 995166)), 'DP_165': RawTagUpdateMsg(track_id='83898800-9608-483e-9f07-6f9219a3e684', datapoint_identifier='StressTest@DP_165', value='FALSE', quality='good', timestamp=datetime.datetime(2026, 1, 10, 18, 27, 22, 995166)), 'DP_166': RawTagUpdateMsg(track_id='0a3f8f6c-a6c7-4da0-a72f-20420e504a56', datapoint_identifier='StressTest@DP_166', value='FALSE', quality='good', timestamp=datetime.datetime(2026, 1, 10, 18, 27, 22, 995166)), 'DP_167': RawTagUpdateMsg(track_id='e8c6435f-562d-4846-b54b-a2cc7d85dcf8', datapoint_identifier='StressTest@DP_167', value='FALSE', quality='good', timestamp=datetime.datetime(2026, 1, 10, 18, 27, 22, 995166)), 'DP_168': RawTagUpdateMsg(track_id='4989e742-f91d-42c2-87c4-4868b9cebd98', datapoint_identifier='StressTest@DP_168', value='FALSE', quality='good', timestamp=datetime.datetime(2026, 1, 10, 18, 27, 22, 995166)), 'DP_169': RawTagUpdateMsg(track_id='1ff91bf9-c57f-4fdf-9038-d50a7ca40341', datapoint_identifier='StressTest@DP_169', value='FALSE', quality='good', timestamp=datetime.datetime(2026, 1, 10, 18, 27, 22, 995166)), 'DP_170': RawTagUpdateMsg(track_id='8ea044be-23e5-4477-8915-ba8fe37dbb9d', datapoint_identifier='StressTest@DP_170', value='FALSE', quality='good', timestamp=datetime.datetime(2026, 1, 10, 18, 27, 22, 995166)), 'DP_171': RawTagUpdateMsg(track_id='d9078850-4d4f-4d61-9286-ab8ea854a36e', datapoint_identifier='StressTest@DP_171', value='FALSE', quality='good', timestamp=datetime.datetime(2026, 1, 10, 18, 27, 22, 995166)), 'DP_172': RawTagUpdateMsg(track_id='bb1b9052-94ba-4b7d-a89f-6dce6dac6abb', datapoint_identifier='StressTest@DP_172', value='FALSE', quality='good', timestamp=datetime.datetime(2026, 1, 10, 18, 27, 22, 995166)), 'DP_173': RawTagUpdateMsg(track_id='d487168e-3085-4e61-a45a-9063501468c8', datapoint_identifier='StressTest@DP_173', value='FALSE', quality='good', timestamp=datetime.datetime(2026, 1, 10, 18, 27, 22, 995166)), 'DP_174': RawTagUpdateMsg(track_id='a5449975-1982-4cf4-941a-936e669528ef', datapoint_identifier='StressTest@DP_174', value='FALSE', quality='good', timestamp=datetime.datetime(2026, 1, 10, 18, 27, 22, 995166)), 'DP_175': RawTagUpdateMsg(track_id='31a467bb-d029-4dfc-b964-3c3a8612aee0', datapoint_identifier='StressTest@DP_175', value='FALSE', quality='good', timestamp=datetime.datetime(2026, 1, 10, 18, 27, 22, 995166)), 'DP_176': RawTagUpdateMsg(track_id='fd3dce54-efbe-44b7-bfaf-01687b281dd3', datapoint_identifier='StressTest@DP_176', value='FALSE', quality='good', timestamp=datetime.datetime(2026, 1, 10, 18, 27, 22, 995166)), 'DP_177': RawTagUpdateMsg(track_id='c451f492-b244-4d55-afb2-54f8745ea00a', datapoint_identifier='StressTest@DP_177', value='FALSE', quality='good', timestamp=datetime.datetime(2026, 1, 10, 18, 27, 22, 995166)), 'DP_178': RawTagUpdateMsg(track_id='62ee8eef-4976-4a20-b17a-f227ac2bf160', datapoint_identifier='StressTest@DP_178', value='FALSE', quality='good', timestamp=datetime.datetime(2026, 1, 10, 18, 27, 22, 995166)), 'DP_179': RawTagUpdateMsg(track_id='af2a3d48-b2eb-4739-b30c-0900f84233a1', datapoint_identifier='StressTest@DP_179', value='FALSE', quality='good', timestamp=datetime.datetime(2026, 1, 10, 18, 27, 22, 995166)), 'DP_180': RawTagUpdateMsg(track_id='45f1f88a-28a6-45ba-943f-4c05b1babe49', datapoint_identifier='StressTest@DP_180', value='FALSE', quality='good', timestamp=datetime.datetime(2026, 1, 10, 18, 27, 22, 995166)), 'DP_181': RawTagUpdateMsg(track_id='5631371f-dc48-481e-9819-168df1c2e7dd', datapoint_identifier='StressTest@DP_181', value='FALSE', quality='good', timestamp=datetime.datetime(2026, 1, 10, 18, 27, 22, 995166)), 'DP_182': RawTagUpdateMsg(track_id='40b34f14-41ab-405f-b1fd-a7cda1de5e88', datapoint_identifier='StressTest@DP_182', value='FALSE', quality='good', timestamp=datetime.datetime(2026, 1, 10, 18, 27, 22, 995166)), 'DP_183': RawTagUpdateMsg(track_id='fe2ac342-f240-4567-b92d-83f8afd6afe0', datapoint_identifier='StressTest@DP_183', value='FALSE', quality='good', timestamp=datetime.datetime(2026, 1, 10, 18, 27, 22, 995166)), 'DP_184': RawTagUpdateMsg(track_id='3343dc0d-efd7-4e13-99db-3580c7cc9a67', datapoint_identifier='StressTest@DP_184', value='FALSE', quality='good', timestamp=datetime.datetime(2026, 1, 10, 18, 27, 22, 995166)), 'DP_185': RawTagUpdateMsg(track_id='f53021a9-6dcb-4ee1-a66c-9a326dc5181f', datapoint_identifier='StressTest@DP_185', value='FALSE', quality='good', timestamp=datetime.datetime(2026, 1, 10, 18, 27, 22, 995166)), 'DP_186': RawTagUpdateMsg(track_id='ebbe016c-1a55-4e1e-b359-d498105bfa36', datapoint_identifier='StressTest@DP_186', value='FALSE', quality='good', timestamp=datetime.datetime(2026, 1, 10, 18, 27, 22, 995166)), 'DP_187': RawTagUpdateMsg(track_id='756ef3d4-f922-4db9-8bc8-151823503246', datapoint_identifier='StressTest@DP_187', value='FALSE', quality='good', timestamp=datetime.datetime(2026, 1, 10, 18, 27, 22, 995166)), 'DP_188': RawTagUpdateMsg(track_id='9c22b5a8-354e-4294-a28d-57ef2aec50cd', datapoint_identifier='StressTest@DP_188', value='FALSE', quality='good', timestamp=datetime.datetime(2026, 1, 10, 18, 27, 22, 995166)), 'DP_189': RawTagUpdateMsg(track_id='3fa0ebc6-bdb7-43c1-8406-a94025b38f58', datapoint_identifier='StressTest@DP_189', value='FALSE', quality='good', timestamp=datetime.datetime(2026, 1, 10, 18, 27, 22, 995166)), 'DP_190': RawTagUpdateMsg(track_id='b777d754-f5d5-4f39-aba9-cd1c9644a556', datapoint_identifier='StressTest@DP_190', value='FALSE', quality='good', timestamp=datetime.datetime(2026, 1, 10, 18, 27, 22, 995166)), 'DP_191': RawTagUpdateMsg(track_id='529b30b9-c668-493c-8000-b5ff5d30c8b1', datapoint_identifier='StressTest@DP_191', value='FALSE', quality='good', timestamp=datetime.datetime(2026, 1, 10, 18, 27, 22, 995166)), 'DP_192': RawTagUpdateMsg(track_id='945bc3db-f3aa-4914-a224-1bda5dc3ecbb', datapoint_identifier='StressTest@DP_192', value='FALSE', quality='good', timestamp=datetime.datetime(2026, 1, 10, 18, 27, 22, 995166)), 'DP_193': RawTagUpdateMsg(track_id='4d9783c4-3ad1-43de-ba82-5851450f9e77', datapoint_identifier='StressTest@DP_193', value='FALSE', quality='good', timestamp=datetime.datetime(2026, 1, 10, 18, 27, 22, 995166)), 'DP_194': RawTagUpdateMsg(track_id='de409fe5-2abe-47c4-b123-f90f4ef2139d', datapoint_identifier='StressTest@DP_194', value='FALSE', quality='good', timestamp=datetime.datetime(2026, 1, 10, 18, 27, 22, 995166)), 'DP_195': RawTagUpdateMsg(track_id='249c5f08-4298-4789-b99e-b53a3200521a', datapoint_identifier='StressTest@DP_195', value='FALSE', quality='good', timestamp=datetime.datetime(2026, 1, 10, 18, 27, 22, 995166)), 'DP_196': RawTagUpdateMsg(track_id='efb63c1e-7c57-4252-bbdb-e401f6740f67', datapoint_identifier='StressTest@DP_196', value='FALSE', quality='good', timestamp=datetime.datetime(2026, 1, 10, 18, 27, 22, 995166)), 'DP_197': RawTagUpdateMsg(track_id='c57af579-373a-4966-8962-bcec398ec280', datapoint_identifier='StressTest@DP_197', value='FALSE', quality='good', timestamp=datetime.datetime(2026, 1, 10, 18, 27, 22, 995166)), 'DP_198': RawTagUpdateMsg(track_id='9c92298d-b887-4e66-9573-eda7ba798038', datapoint_identifier='StressTest@DP_198', value='FALSE', quality='good', timestamp=datetime.datetime(2026, 1, 10, 18, 27, 22, 995166)), 'DP_199': RawTagUpdateMsg(track_id='6dd64b3a-cfb2-45a1-b505-442b0e25f203', datapoint_identifier='StressTest@DP_199', value='FALSE', quality='good', timestamp=datetime.datetime(2026, 1, 10, 18, 27, 22, 995166)), 'DP_200': RawTagUpdateMsg(track_id='9a53df21-36bd-480f-a076-8b37ebbc78ed', datapoint_identifier='StressTest@DP_200', value='FALSE', quality='good', timestamp=datetime.datetime(2026, 1, 10, 18, 27, 22, 995166)), 'DP_201': RawTagUpdateMsg(track_id='cdf075b4-eb1e-4b75-b49d-6c31dd3b4f51', datapoint_identifier='StressTest@DP_201', value='FALSE', quality='good', timestamp=datetime.datetime(2026, 1, 10, 18, 27, 22, 995166)), 'DP_202': RawTagUpdateMsg(track_id='f282d82b-685d-4bb8-96ec-90cda301c5d6', datapoint_identifier='StressTest@DP_202', value='FALSE', quality='good', timestamp=datetime.datetime(2026, 1, 10, 18, 27, 22, 995166)), 'DP_203': RawTagUpdateMsg(track_id='1bf63d46-73a0-417e-a390-4729fc000f89', datapoint_identifier='StressTest@DP_203', value='FALSE', quality='good', timestamp=datetime.datetime(2026, 1, 10, 18, 27, 22, 995166)), 'DP_204': RawTagUpdateMsg(track_id='0fa9dd07-9dde-4242-b995-9113bc7280d9', datapoint_identifier='StressTest@DP_204', value='FALSE', quality='good', timestamp=datetime.datetime(2026, 1, 10, 18, 27, 22, 995166)), 'DP_205': RawTagUpdateMsg(track_id='286d30ff-5d34-4427-8334-849738c0881d', datapoint_identifier='StressTest@DP_205', value='FALSE', quality='good', timestamp=datetime.datetime(2026, 1, 10, 18, 27, 22, 995166)), 'DP_206': RawTagUpdateMsg(track_id='6718581e-5fcf-46b0-af6a-add785800e2d', datapoint_identifier='StressTest@DP_206', value='FALSE', quality='good', timestamp=datetime.datetime(2026, 1, 10, 18, 27, 22, 995166)), 'DP_207': RawTagUpdateMsg(track_id='1824341b-3f76-4e64-a8fc-88c1eaee9ca7', datapoint_identifier='StressTest@DP_207', value='FALSE', quality='good', timestamp=datetime.datetime(2026, 1, 10, 18, 27, 22, 995166)), 'DP_208': RawTagUpdateMsg(track_id='2f74f0da-dea9-4d45-ad95-a197e86b3607', datapoint_identifier='StressTest@DP_208', value='FALSE', quality='good', timestamp=datetime.datetime(2026, 1, 10, 18, 27, 22, 995166)), 'DP_209': RawTagUpdateMsg(track_id='f0b79d1f-7999-4b5d-98f6-3ecb52f6845d', datapoint_identifier='StressTest@DP_209', value='FALSE', quality='good', timestamp=datetime.datetime(2026, 1, 10, 18, 27, 22, 995166)), 'DP_210': RawTagUpdateMsg(track_id='82a0abd3-5f87-4890-a43c-38df6f0ca30d', datapoint_identifier='StressTest@DP_210', value='FALSE', quality='good', timestamp=datetime.datetime(2026, 1, 10, 18, 27, 22, 995166)), 'DP_211': RawTagUpdateMsg(track_id='b5e2d27e-873c-4611-aeaf-552636a405d8', datapoint_identifier='StressTest@DP_211', value='FALSE', quality='good', timestamp=datetime.datetime(2026, 1, 10, 18, 27, 22, 995166)), 'DP_212': RawTagUpdateMsg(track_id='30319792-4339-4917-9efc-bb44b284194f', datapoint_identifier='StressTest@DP_212', value='FALSE', quality='good', timestamp=datetime.datetime(2026, 1, 10, 18, 27, 22, 995166)), 'DP_213': RawTagUpdateMsg(track_id='0de55ecf-2b2b-48d1-af19-6702e3487c92', datapoint_identifier='StressTest@DP_213', value='FALSE', quality='good', timestamp=datetime.datetime(2026, 1, 10, 18, 27, 22, 995166)), 'DP_214': RawTagUpdateMsg(track_id='f280b988-34a9-4476-a54b-df9cf3700ea4', datapoint_identifier='StressTest@DP_214', value='FALSE', quality='good', timestamp=datetime.datetime(2026, 1, 10, 18, 27, 22, 995166)), 'DP_215': RawTagUpdateMsg(track_id='605b4674-861a-4ff4-93b6-a6b40c398e43', datapoint_identifier='StressTest@DP_215', value='FALSE', quality='good', timestamp=datetime.datetime(2026, 1, 10, 18, 27, 22, 995166)), 'DP_216': RawTagUpdateMsg(track_id='a5071f45-74fb-4392-b2c4-a2f4fcb2637d', datapoint_identifier='StressTest@DP_216', value='FALSE', quality='good', timestamp=datetime.datetime(2026, 1, 10, 18, 27, 22, 995166)), 'DP_217': RawTagUpdateMsg(track_id='9cf7ea15-6528-409e-8459-201adbf4d100', datapoint_identifier='StressTest@DP_217', value='FALSE', quality='good', timestamp=datetime.datetime(2026, 1, 10, 18, 27, 22, 995166)), 'DP_218': RawTagUpdateMsg(track_id='2f952a62-b8cb-4aaf-91d0-df60de2fbdc0', datapoint_identifier='StressTest@DP_218', value='FALSE', quality='good', timestamp=datetime.datetime(2026, 1, 10, 18, 27, 22, 995166)), 'DP_219': RawTagUpdateMsg(track_id='4fde7307-8047-4b13-953c-5123e882509e', datapoint_identifier='StressTest@DP_219', value='FALSE', quality='good', timestamp=datetime.datetime(2026, 1, 10, 18, 27, 22, 995166)), 'DP_220': RawTagUpdateMsg(track_id='82cf2cc3-da1e-4e41-bdb1-37f2c9939a24', datapoint_identifier='StressTest@DP_220', value='FALSE', quality='good', timestamp=datetime.datetime(2026, 1, 10, 18, 27, 22, 995166)), 'DP_221': RawTagUpdateMsg(track_id='40076d44-8c7d-42a8-8bc1-c17237184325', datapoint_identifier='StressTest@DP_221', value='FALSE', quality='good', timestamp=datetime.datetime(2026, 1, 10, 18, 27, 22, 995166)), 'DP_222': RawTagUpdateMsg(track_id='c6518360-7b52-46c5-a7ae-3b2b986e91a8', datapoint_identifier='StressTest@DP_222', value='FALSE', quality='good', timestamp=datetime.datetime(2026, 1, 10, 18, 27, 22, 995166)), 'DP_223': RawTagUpdateMsg(track_id='14552e2f-f0ae-46b4-ab5d-c08e02cbb266', datapoint_identifier='StressTest@DP_223', value='FALSE', quality='good', timestamp=datetime.datetime(2026, 1, 10, 18, 27, 22, 995166)), 'DP_224': RawTagUpdateMsg(track_id='b9892e86-d905-434f-bed9-09e4f7c615a4', datapoint_identifier='StressTest@DP_224', value='FALSE', quality='good', timestamp=datetime.datetime(2026, 1, 10, 18, 27, 22, 995166)), 'DP_225': RawTagUpdateMsg(track_id='bb5f3d70-f9d0-4d3f-afe7-7265051c85ed', datapoint_identifier='StressTest@DP_225', value='FALSE', quality='good', timestamp=datetime.datetime(2026, 1, 10, 18, 27, 22, 995166)), 'DP_226': RawTagUpdateMsg(track_id='7d4fff86-1e59-484f-a1c0-6854dd34004c', datapoint_identifier='StressTest@DP_226', value='FALSE', quality='good', timestamp=datetime.datetime(2026, 1, 10, 18, 27, 22, 995166)), 'DP_227': RawTagUpdateMsg(track_id='00cd2cb8-d383-461f-ba12-002a65f15395', datapoint_identifier='StressTest@DP_227', value='FALSE', quality='good', timestamp=datetime.datetime(2026, 1, 10, 18, 27, 22, 995166)), 'DP_228': RawTagUpdateMsg(track_id='070d840b-2f5e-4890-b028-498c668e45d4', datapoint_identifier='StressTest@DP_228', value='FALSE', quality='good', timestamp=datetime.datetime(2026, 1, 10, 18, 27, 22, 995166)), 'DP_229': RawTagUpdateMsg(track_id='3eee8e90-62b1-426d-af65-44b5b6a3b4cf', datapoint_identifier='StressTest@DP_229', value='FALSE', quality='good', timestamp=datetime.datetime(2026, 1, 10, 18, 27, 22, 995166)), 'DP_230': RawTagUpdateMsg(track_id='fa155765-b311-485b-aaab-b96a7672d2f0', datapoint_identifier='StressTest@DP_230', value='FALSE', quality='good', timestamp=datetime.datetime(2026, 1, 10, 18, 27, 22, 995166)), 'DP_231': RawTagUpdateMsg(track_id='44bd8827-2c05-48ce-a56e-630abd55f00f', datapoint_identifier='StressTest@DP_231', value='FALSE', quality='good', timestamp=datetime.datetime(2026, 1, 10, 18, 27, 22, 995166)), 'DP_232': RawTagUpdateMsg(track_id='586c93bd-2d4c-47a0-9c9f-bde39ffe910c', datapoint_identifier='StressTest@DP_232', value='FALSE', quality='good', timestamp=datetime.datetime(2026, 1, 10, 18, 27, 22, 995166)), 'DP_233': RawTagUpdateMsg(track_id='996234be-8a3e-4226-877c-3fba514b9ce5', datapoint_identifier='StressTest@DP_233', value='FALSE', quality='good', timestamp=datetime.datetime(2026, 1, 10, 18, 27, 22, 995166)), 'DP_234': RawTagUpdateMsg(track_id='2cda81c9-1a0d-498f-a5f3-f1c8333f29b5', datapoint_identifier='StressTest@DP_234', value='FALSE', quality='good', timestamp=datetime.datetime(2026, 1, 10, 18, 27, 22, 995166)), 'DP_235': RawTagUpdateMsg(track_id='8328e1a2-8cb7-49f6-907c-02bbb799c005', datapoint_identifier='StressTest@DP_235', value='FALSE', quality='good', timestamp=datetime.datetime(2026, 1, 10, 18, 27, 22, 995166)), 'DP_236': RawTagUpdateMsg(track_id='7a3bf093-5382-4956-b45a-baae92ab6961', datapoint_identifier='StressTest@DP_236', value='FALSE', quality='good', timestamp=datetime.datetime(2026, 1, 10, 18, 27, 22, 995166)), 'DP_237': RawTagUpdateMsg(track_id='d45d8613-cff2-4cd7-a80d-a9c508f2beb5', datapoint_identifier='StressTest@DP_237', value='FALSE', quality='good', timestamp=datetime.datetime(2026, 1, 10, 18, 27, 22, 995166)), 'DP_238': RawTagUpdateMsg(track_id='0ca87618-e7ce-46a2-8f56-f6364c1f3b5c', datapoint_identifier='StressTest@DP_238', value='FALSE', quality='good', timestamp=datetime.datetime(2026, 1, 10, 18, 27, 22, 995166)), 'DP_239': RawTagUpdateMsg(track_id='5b19cd9f-aecf-49f4-92ef-6231bb216b36', datapoint_identifier='StressTest@DP_239', value='FALSE', quality='good', timestamp=datetime.datetime(2026, 1, 10, 18, 27, 22, 995166)), 'DP_240': RawTagUpdateMsg(track_id='df89aa0c-40ac-4c29-9cb3-e2687c26f8dc', datapoint_identifier='StressTest@DP_240', value='FALSE', quality='good', timestamp=datetime.datetime(2026, 1, 10, 18, 27, 22, 995166)), 'DP_241': RawTagUpdateMsg(track_id='5dbaa50a-7b88-4868-8ad4-60b2743e54d9', datapoint_identifier='StressTest@DP_241', value='FALSE', quality='good', timestamp=datetime.datetime(2026, 1, 10, 18, 27, 22, 995166)), 'DP_242': RawTagUpdateMsg(track_id='85942cbf-75d0-4808-95d4-915f456dfc2e', datapoint_identifier='StressTest@DP_242', value='FALSE', quality='good', timestamp=datetime.datetime(2026, 1, 10, 18, 27, 22, 995166)), 'DP_243': RawTagUpdateMsg(track_id='c33770ef-abfd-4dbb-85a5-682628f4fa80', datapoint_identifier='StressTest@DP_243', value='FALSE', quality='good', timestamp=datetime.datetime(2026, 1, 10, 18, 27, 22, 995166)), 'DP_244': RawTagUpdateMsg(track_id='f8f01af4-cb16-4cee-9711-ecc24bea4582', datapoint_identifier='StressTest@DP_244', value='FALSE', quality='good', timestamp=datetime.datetime(2026, 1, 10, 18, 27, 22, 995166)), 'DP_245': RawTagUpdateMsg(track_id='77431f0c-4f20-406a-8514-1396459f0636', datapoint_identifier='StressTest@DP_245', value='FALSE', quality='good', timestamp=datetime.datetime(2026, 1, 10, 18, 27, 22, 995166)), 'DP_246': RawTagUpdateMsg(track_id='6a699795-2143-4ba6-a517-d7b00ded816b', datapoint_identifier='StressTest@DP_246', value='FALSE', quality='good', timestamp=datetime.datetime(2026, 1, 10, 18, 27, 22, 995166)), 'DP_247': RawTagUpdateMsg(track_id='15c5311f-cfa1-4aae-9c98-0f9b8fa99353', datapoint_identifier='StressTest@DP_247', value='FALSE', quality='good', timestamp=datetime.datetime(2026, 1, 10, 18, 27, 22, 995166)), 'DP_248': RawTagUpdateMsg(track_id='5801edac-705d-4973-8bda-d09aff067aa9', datapoint_identifier='StressTest@DP_248', value='FALSE', quality='good', timestamp=datetime.datetime(2026, 1, 10, 18, 27, 22, 995166)), 'DP_249': RawTagUpdateMsg(track_id='8c016245-61cd-4abb-8b05-224f5095d252', datapoint_identifier='StressTest@DP_249', value='FALSE', quality='good', timestamp=datetime.datetime(2026, 1, 10, 18, 27, 22, 995166))} +2026-01-10 18:29:38,223 INFO asyncua.server.internal_server No user manager specified. Using default permissive manager instead. +2026-01-10 18:29:38,223 INFO asyncua.server.internal_session Created internal session Internal +2026-01-10 18:29:38,232 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=15957, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=11715, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,233 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=15958, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=15957, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,233 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=15959, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=15957, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,234 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=15960, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=15957, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,234 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=15961, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=15957, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,234 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=15962, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=15957, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,235 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=15963, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=15957, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,235 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=15964, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=15957, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,235 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=16134, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=15957, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,236 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=16135, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=15957, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,236 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=16136, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=15957, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,236 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=32408, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=15957, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,239 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=3074, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=2007, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,240 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=3075, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=2007, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,240 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=3076, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=2007, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,241 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=3077, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=2007, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,241 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=3078, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=3077, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,241 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=3079, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=3077, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,242 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=3080, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=3077, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,242 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=3081, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=3077, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,242 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=3082, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=3077, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,243 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=3083, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=3077, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,243 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=3084, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=2007, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,243 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=3085, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=2007, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,244 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=3086, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=2009, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,244 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=3087, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=2009, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,245 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=3088, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=2009, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,245 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=3089, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=2009, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,245 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=3090, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=2009, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,246 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=3091, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=2009, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,246 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=3092, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=2009, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,246 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=3093, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=2009, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,247 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=3094, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=2009, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,247 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=3095, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=2010, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,247 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=3096, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=3095, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,248 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=3097, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=3095, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,248 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=3098, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=3095, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,248 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=3099, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=3095, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,249 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=3100, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=3095, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,249 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=3101, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=3095, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,249 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=3102, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=3095, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,249 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=3104, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=3095, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,250 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=3105, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=3095, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,250 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=3106, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=3095, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,250 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=3107, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=3095, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,251 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=3108, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=3095, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,251 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=3110, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=2010, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,251 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=3111, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=2010, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,252 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=3112, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=3111, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,252 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=3113, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=3111, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,252 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=3114, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=2010, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,252 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=3115, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=2012, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,256 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=16296, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=16295, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,256 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=16297, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=16296, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,256 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=16298, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=16296, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,257 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=16299, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=16295, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,257 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=16300, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=16299, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,259 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=3116, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=2021, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,259 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=3117, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=2021, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,260 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=3118, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=2021, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,260 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=3119, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=2021, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,260 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=3120, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=2021, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,260 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=3121, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=2021, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,261 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=3122, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=2021, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,261 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=3124, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=2021, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,261 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=3125, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=2021, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,262 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=3126, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=2021, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,262 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=3127, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=2021, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,262 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=3128, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=2021, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,262 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=3129, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=2744, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,263 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=3130, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=2744, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,263 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=12098, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=12097, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,264 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=12099, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=12098, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,264 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=12100, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=12098, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,264 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=12101, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=12098, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,264 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=12102, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=12098, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,265 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=12103, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=12098, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,265 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=12104, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=12098, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,265 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=12105, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=12098, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,266 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=12106, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=12098, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,266 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=12107, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=12098, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,266 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=12108, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=12098, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,266 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=12109, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=12098, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,267 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=12110, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=12098, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,267 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=12111, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=12098, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,268 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=12112, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=12098, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,268 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=12113, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=12098, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,268 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=12114, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=12098, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,269 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=12115, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=12098, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,269 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=12116, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=12098, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,269 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=12117, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=12098, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,270 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=12118, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=12098, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,270 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=12119, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=12098, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,270 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=12120, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=12098, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,270 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=12121, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=12098, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,271 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=12122, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=12098, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,271 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=12123, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=12098, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,271 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=12124, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=12098, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,272 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=12125, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=12098, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,272 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=12126, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=12098, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,272 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=12127, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=12098, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,272 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=12128, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=12098, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,273 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=12129, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=12098, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,273 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=12130, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=12098, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,273 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=12131, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=12098, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,273 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=12132, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=12098, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,274 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=12133, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=12098, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,274 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=12134, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=12098, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,274 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=12135, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=12098, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,275 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=12136, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=12098, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,275 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=12137, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=12098, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,275 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=12138, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=12098, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,275 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=12139, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=12098, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,276 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=12140, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=12098, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,276 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=12141, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=12098, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,276 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=12142, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=12097, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,277 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=12143, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=12142, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,277 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=12144, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=12142, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,277 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=12145, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=12142, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,278 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=12146, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=12142, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,278 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=12147, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=12142, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,278 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=12148, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=12142, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,278 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=12149, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=12142, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,279 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=12150, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=12142, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,279 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=12151, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=12142, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,279 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=12152, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=12097, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,280 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=3131, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=2030, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,280 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=3132, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=2030, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,281 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=3133, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=2030, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,281 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=3134, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=2030, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,281 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=3135, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=2030, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,282 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=3136, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=2030, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,282 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=3137, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=2030, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,282 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=3138, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=2030, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,283 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=3139, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=2030, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,283 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=3140, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=2030, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,284 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=3141, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=2030, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,284 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=3142, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=2030, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,284 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=3143, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=2030, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,285 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=8898, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=2030, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,286 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=11891, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=2030, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,287 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=3151, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=2030, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,287 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=3152, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=2030, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,288 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=3153, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=2030, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,288 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=3154, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=2030, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,288 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=3155, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=2030, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,289 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=3156, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=2030, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,289 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=3157, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=2030, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,289 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=3158, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=2030, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,290 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=3159, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=2030, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,290 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=3160, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=2030, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,290 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=3161, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=2030, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,291 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=3162, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=2030, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,291 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=3163, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=2030, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,292 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=3164, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=2030, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,292 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=3165, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=2030, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,292 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=3166, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=2030, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,293 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=3167, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=2030, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,293 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=3168, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=2030, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,293 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=3169, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=2030, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,294 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=3170, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=2030, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,294 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=3171, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=2030, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,295 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=3172, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=2030, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,295 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=3173, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=2030, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,295 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=3174, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=2030, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,296 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=3175, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=2030, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,296 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=3176, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=2030, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,297 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=3177, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=2030, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,297 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=3178, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=2030, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,297 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=3179, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=2031, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,298 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=3180, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=2031, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,298 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=3181, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=2031, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,299 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=3182, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=2031, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,299 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=3183, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=2031, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,299 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=3184, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=2031, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,300 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=3185, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=2031, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,300 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=3186, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=2031, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,300 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=3187, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=2031, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,336 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=3698, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=2142, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,337 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=3699, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=2142, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,337 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=3700, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=2142, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,338 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=3701, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=2142, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,338 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=3702, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=2142, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,339 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=3703, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=2142, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,345 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=12780, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=12779, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,345 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=12781, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=12779, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,346 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=12782, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=12779, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,346 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=12783, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=12779, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,348 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=12785, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=12784, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,348 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=12786, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=12784, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,349 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=12787, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=12784, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,349 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=12788, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=12784, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,350 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=12789, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=12784, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,350 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=12790, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=12784, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,351 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=12791, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=12784, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,351 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=12792, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=12784, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,352 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=12793, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=12784, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,352 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=12794, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=12784, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,352 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=12795, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=12784, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,353 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=12796, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=12784, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,353 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=12797, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=12784, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,353 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=12798, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=12784, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,354 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=12799, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=12784, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,354 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=12800, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=12784, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,355 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=12801, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=12784, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,355 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=12802, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=12784, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,355 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=12803, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=12784, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,356 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=12804, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=12784, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,356 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=12805, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=12784, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,356 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=12806, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=12784, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,357 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=12807, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=12784, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,357 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=12808, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=12784, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,358 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=12809, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=12784, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,358 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=12810, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=12784, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,358 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=12811, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=12784, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,359 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=12812, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=12784, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,359 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=12813, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=12784, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,359 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=12814, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=12784, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,360 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=12815, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=12784, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,367 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=12817, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=12816, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,368 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=12818, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=12816, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,368 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=12819, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=12816, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,369 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=12820, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=12816, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,369 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=12821, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=12816, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,369 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=12822, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=12816, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,370 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=12823, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=12816, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,370 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=12824, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=12816, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,371 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=12825, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=12816, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,371 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=12826, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=12816, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,371 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=12827, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=12816, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,372 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=12828, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=12816, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,372 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=12829, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=12816, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,373 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=12830, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=12816, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,373 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=12831, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=12816, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,373 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=12832, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=12816, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,374 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=12833, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=12816, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,374 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=12834, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=12816, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,374 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=12835, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=12816, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,375 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=12836, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=12816, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,375 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=12837, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=12816, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,376 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=12838, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=12816, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,376 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=12839, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=12816, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,376 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=12840, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=12816, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,377 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=12841, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=12816, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,377 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=12842, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=12816, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,377 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=12843, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=12816, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,378 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=12844, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=12816, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,378 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=12845, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=12816, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,378 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=12846, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=12816, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,379 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=12847, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=12816, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,379 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=12848, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=12816, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,380 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=12849, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=12816, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,380 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=12850, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=12816, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,380 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=12851, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=12816, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,381 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=12852, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=12816, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,381 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=12853, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=12816, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,381 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=12854, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=12816, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,382 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=12855, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=12816, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,382 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=12856, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=12816, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,382 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=12857, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=12816, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,383 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=12858, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=12816, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,384 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=12859, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=12816, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,392 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=12861, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=12860, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,393 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=12862, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=12860, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,393 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=12863, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=12860, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,393 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=12864, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=12860, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,394 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=12865, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=12860, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,394 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=12866, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=12860, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,394 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=12867, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=12860, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,395 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=12868, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=12860, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,395 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=12869, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=12860, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,407 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=16301, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=15606, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,407 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=16302, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=16301, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,407 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=16303, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=16301, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,408 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=16304, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=15606, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,408 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=16305, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=16304, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,417 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=11193, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=11192, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,418 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=11242, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=11192, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,418 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=11273, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=11192, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,419 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=11274, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=11192, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,419 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=11196, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=11192, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,419 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=11197, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=11192, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,420 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=11198, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=11192, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,420 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=11199, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=11192, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,420 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=11200, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=11192, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,420 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=11281, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=11192, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,421 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=11282, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=11192, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,421 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=11283, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=11192, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,421 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=11502, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=11192, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,422 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=11275, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=11192, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,422 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=11201, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=11192, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,422 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=19091, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=11192, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,424 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=3720, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=2769, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,424 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=3724, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=2770, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,426 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=3728, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=2772, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,426 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=3732, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=2773, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,446 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=15755, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=15754, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,447 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=15756, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=15755, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,447 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=15794, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=15754, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,454 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=16162, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=15608, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,458 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=15644, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=15606, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,459 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=16192, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=15644, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,459 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=15656, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=15606, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,459 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=16203, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=15656, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,460 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=18625, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=15606, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,460 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=18626, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=18625, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,460 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=15668, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=15606, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,460 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=16214, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=15668, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,461 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=15416, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=15668, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,461 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=16215, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=15668, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,461 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=15417, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=15668, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,462 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=16216, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=15668, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,462 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=24142, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=15668, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,462 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=15672, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=15668, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,463 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=15673, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=15672, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,463 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=15674, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=15668, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,463 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=15675, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=15674, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,464 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=16217, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=15668, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,464 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=16218, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=16217, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,464 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=16219, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=15668, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,465 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=16220, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=16219, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,465 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=16221, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=15668, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,466 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=16222, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=16221, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,466 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=16223, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=15668, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,466 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=16224, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=16223, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,469 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=15680, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=15606, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,469 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=16225, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=15680, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,469 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=15418, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=15680, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,470 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=16226, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=15680, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,470 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=15423, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=15680, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,470 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=16227, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=15680, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,471 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=24143, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=15680, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,471 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=15684, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=15680, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,471 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=15685, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=15684, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,471 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=15686, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=15680, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,472 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=15687, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=15686, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,472 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=16228, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=15680, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,472 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=16229, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=16228, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,473 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=16230, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=15680, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,473 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=16231, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=16230, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,473 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=16232, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=15680, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,473 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=16233, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=16232, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,474 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=16234, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=15680, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,474 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=16235, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=16234, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,474 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=16036, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=15606, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,474 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=16236, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=16036, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,475 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=15424, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=16036, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,475 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=16237, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=16036, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,475 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=15425, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=16036, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,475 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=16238, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=16036, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,476 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=24144, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=16036, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,476 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=16041, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=16036, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,476 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=16042, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=16041, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,477 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=16043, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=16036, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,477 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=16044, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=16043, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,477 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=16239, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=16036, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,477 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=16240, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=16239, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,478 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=16241, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=16036, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,478 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=16242, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=16241, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,478 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=16243, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=16036, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,478 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=16244, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=16243, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,478 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=16245, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=16036, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,479 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=16246, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=16245, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,479 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=15692, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=15606, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,479 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=16247, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=15692, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,479 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=15426, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=15692, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,479 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=16248, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=15692, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,480 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=15427, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=15692, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,480 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=16249, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=15692, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,480 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=24145, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=15692, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,480 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=15696, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=15692, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,481 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=15697, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=15696, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,481 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=15698, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=15692, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,481 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=15699, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=15698, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,481 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=16250, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=15692, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,482 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=16251, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=16250, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,482 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=16252, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=15692, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,482 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=16253, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=16252, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,483 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=16254, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=15692, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,483 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=16255, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=16254, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,483 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=16256, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=15692, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,484 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=16257, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=16256, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,484 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=15716, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=15606, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,484 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=16269, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=15716, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,485 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=15428, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=15716, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,485 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=16270, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=15716, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,485 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=15429, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=15716, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,485 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=16271, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=15716, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,486 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=24146, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=15716, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,486 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=15720, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=15716, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,486 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=15721, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=15720, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,487 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=15722, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=15716, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,487 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=15723, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=15722, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,487 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=16272, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=15716, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,488 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=16273, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=16272, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,488 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=16274, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=15716, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,488 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=16275, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=16274, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,488 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=16276, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=15716, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,489 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=16277, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=16276, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,489 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=16278, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=15716, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,489 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=16279, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=16278, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,489 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=15704, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=15606, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,490 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=16258, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=15704, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,490 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=15430, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=15704, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,490 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=16259, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=15704, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,490 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=15527, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=15704, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,491 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=16260, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=15704, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,491 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=24147, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=15704, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,491 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=15708, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=15704, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,491 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=15709, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=15708, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,492 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=15710, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=15704, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,492 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=15711, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=15710, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,492 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=16261, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=15704, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,492 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=16262, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=16261, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,492 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=16263, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=15704, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,493 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=16264, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=16263, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,493 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=16265, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=15704, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,493 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=16266, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=16265, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,493 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=16267, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=15704, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,494 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=16268, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=16267, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,494 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=25565, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=15606, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,494 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=25566, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=25565, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,494 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=25567, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=25565, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,495 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=25568, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=25565, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,495 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=25569, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=25565, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,495 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=25570, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=25565, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,496 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=25571, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=25565, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,496 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=25572, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=25565, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,496 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=25573, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=25572, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,496 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=25574, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=25565, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,497 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=25575, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=25574, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,497 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=25576, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=25565, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,497 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=25577, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=25576, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,497 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=25578, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=25565, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,498 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=25579, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=25578, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,498 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=25580, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=25565, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,498 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=25581, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=25580, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,498 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=25582, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=25565, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,499 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=25583, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=25582, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,499 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=25603, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=15606, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,499 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=25604, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=25603, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,500 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=25605, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=25603, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,500 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=25606, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=25603, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,500 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=25607, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=25603, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,501 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=25608, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=25603, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,501 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=25609, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=25603, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,501 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=25610, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=25603, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,501 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=25611, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=25610, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,502 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=25612, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=25603, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,502 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=25613, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=25612, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,502 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=25614, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=25603, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,502 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=25615, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=25614, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,502 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=25616, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=25603, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,503 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=25617, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=25616, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,503 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=25618, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=25603, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,503 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=25619, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=25618, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,503 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=25620, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=25603, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,504 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=25621, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=25620, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,504 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=25584, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=15606, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,504 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=25585, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=25584, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,505 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=25586, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=25584, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,505 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=25587, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=25584, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,505 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=25588, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=25584, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,505 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=25589, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=25584, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,506 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=25590, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=25584, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,506 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=25591, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=25584, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,506 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=25592, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=25591, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,506 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=25593, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=25584, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,507 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=25594, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=25593, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,507 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=25595, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=25584, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,507 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=25596, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=25595, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,507 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=25597, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=25584, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,507 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=25598, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=25597, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,508 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=25599, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=25584, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,508 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=25600, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=25599, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,508 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=25601, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=25584, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,508 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=25602, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=25601, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,572 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=32588, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=32587, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,573 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=32590, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=32587, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,589 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=9179, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=9178, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,590 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=9180, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=9179, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,590 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=9184, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=9178, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,590 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=9185, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=9184, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,591 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=9188, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=9184, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,591 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=9189, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=9178, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,591 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=9213, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=9178, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,592 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=9214, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=9213, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,592 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=9211, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=9178, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,592 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=9212, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=9178, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,626 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=17285, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=17284, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,627 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=17287, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=17286, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,628 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=17289, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=17288, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,632 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=3840, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=2399, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,632 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=3841, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=2399, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,633 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=3842, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=2399, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,633 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=3843, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=2399, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,634 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=3844, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=2399, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,634 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=3845, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=2399, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,635 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=3846, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=2399, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,635 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=3847, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=2399, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,636 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=15038, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=2399, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,636 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=15040, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=2399, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,636 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=3848, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=2399, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,637 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=3849, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=2399, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,647 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=11168, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=3059, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,648 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=11169, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=3059, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,648 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=11170, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=3059, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,648 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=11171, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=3059, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,654 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=11204, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=11203, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,654 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=11205, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=11203, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,654 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=11206, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=11203, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,655 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=11207, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=11203, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,655 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=32639, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=32638, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,656 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=32640, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=32638, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,656 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=32641, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=32638, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,656 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=32642, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=32638, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,711 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=16707, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=16663, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,711 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=16708, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=16707, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,712 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=16709, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=16708, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,712 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=16710, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=16709, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,712 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=16711, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=16709, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,713 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=16712, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=16709, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,713 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=16713, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=16709, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,713 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=16717, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=16709, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,714 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=16722, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=16717, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,714 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=16723, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=16717, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,714 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=16724, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=16709, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,715 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=16725, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=16724, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,715 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=16726, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=16709, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,715 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=16727, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=16726, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,716 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=16728, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=16726, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,716 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=16729, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=16709, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,716 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=16730, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=16729, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,717 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=16732, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=16709, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,717 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=16733, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=16732, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,718 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=16734, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=16732, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,718 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=16735, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=16709, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,718 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=16736, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=16735, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,719 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=16737, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=16709, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,719 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=16741, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=16709, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,719 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=16742, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=16741, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,720 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=16743, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=16741, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,720 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=16744, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=16709, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,720 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=16745, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=16744, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,721 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=16746, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=16744, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,721 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=16747, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=16709, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,721 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=16748, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=16747, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,722 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=16749, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=16709, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,722 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=16750, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=16749, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,723 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=16751, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=16708, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,723 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=18525, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=16663, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,723 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=18526, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=16663, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,724 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=18527, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=16663, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,724 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=18528, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=16663, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,725 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=18529, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=16663, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,725 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=18530, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=16663, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,725 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=18531, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=16663, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,726 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=18533, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=16663, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,726 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=18534, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=18533, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,726 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=18535, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=18533, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,727 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=18539, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=16663, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,727 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=18541, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=16663, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,727 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=18542, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=18541, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,728 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=18543, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=18541, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,728 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=18544, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=16663, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,729 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=18545, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=18544, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,729 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=18592, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=16663, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,729 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=16706, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=24226, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,759 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=17512, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=17511, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,760 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=17513, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=17511, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,764 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=23558, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=23557, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,764 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=23559, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=23557, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,765 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=23560, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=23557, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,783 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=15914, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=15913, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,784 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=15915, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=15914, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,784 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=15916, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=15914, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,784 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=15917, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=15913, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,785 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=15918, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=15917, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,785 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=25278, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=25277, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,785 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=25279, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=25278, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,786 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=25280, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=25278, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,786 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=25281, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=25277, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,787 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=25282, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=25281, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,789 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=15460, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=15459, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,789 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=15010, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=15459, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,789 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=15011, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=15459, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,790 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=15012, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=15459, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,790 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=15043, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=15459, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,800 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=14418, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=14417, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,801 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=17292, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=14417, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,801 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=17706, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=17292, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,802 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=17478, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=14417, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,802 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=14423, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=14417, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,802 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=15533, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=14423, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,803 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=17503, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=15533, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,803 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=14419, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=14417, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,803 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=14420, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=14419, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,805 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=25404, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=25403, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,805 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=25405, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=25403, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,805 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=25406, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=25403, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,806 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=25407, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=25403, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,806 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=25411, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=25403, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,806 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=25412, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=25411, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,807 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=25413, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=25411, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,807 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=25414, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=25403, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,807 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=25415, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=25414, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,808 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=25416, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=25403, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,808 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=25417, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=25416, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,808 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=25418, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=25416, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,809 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=25419, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=25403, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,809 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=25420, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=25419, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,809 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=25421, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=25403, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,809 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=25422, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=25421, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,810 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=25423, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=25421, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,810 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=25424, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=25403, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,810 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=25425, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=25424, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,811 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=25426, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=25403, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,811 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=25427, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=25426, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,811 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=25428, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=25426, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,812 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=25429, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=25403, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,812 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=25430, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=25429, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,812 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=25431, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=25429, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,813 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=15845, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=15844, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,813 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=18716, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=18715, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,813 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=18717, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=18715, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,814 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=18718, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=18717, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,814 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=18719, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=18717, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,814 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=18720, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=18717, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,814 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=18722, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=18715, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,815 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=18723, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=18722, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,815 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=18724, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=18722, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,815 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=18725, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=18722, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,816 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=18727, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=18715, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,816 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=18728, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=18715, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,816 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=18729, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=18715, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,816 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=18730, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=18729, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,817 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=18731, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=18730, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,817 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=18732, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=18730, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,818 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=18733, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=18730, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,818 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=18735, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=18729, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,818 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=18736, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=18735, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,818 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=18737, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=18735, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,819 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=18738, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=18735, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,819 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=18740, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=18729, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,819 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=18741, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=18740, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,820 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=18742, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=18740, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,820 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=18743, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=18740, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,820 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=18745, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=18729, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,821 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=18746, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=18745, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,821 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=18747, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=18745, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,821 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=18748, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=18745, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,822 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=18750, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=18729, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,822 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=18751, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=18750, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,822 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=18752, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=18750, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,822 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=18753, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=18750, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,823 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=18755, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=18729, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,823 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=18756, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=18755, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,823 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=18757, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=18755, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,824 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=18758, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=18755, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,824 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=18760, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=18715, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,824 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=18761, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=18760, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,824 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=18762, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=18761, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,825 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=18763, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=18760, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,825 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=18764, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=18763, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,825 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=18765, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=18760, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,826 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=18766, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=18765, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,826 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=18767, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=18760, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,826 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=18768, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=18767, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,827 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=23643, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=23642, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,827 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=23644, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=23642, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,827 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=23645, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=23642, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,828 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=23646, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=23642, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,828 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=23647, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=23642, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,828 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=23648, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=23642, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,833 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=25452, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=25451, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,833 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=25453, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=25451, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,833 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=25454, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=25451, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,834 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=25455, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=25451, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,834 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=25459, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=25451, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,834 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=25460, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=25459, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,835 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=25461, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=25459, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,835 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=25462, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=25451, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,835 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=25463, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=25462, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,836 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=25464, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=25451, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,836 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=25465, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=25464, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,836 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=25466, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=25464, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,837 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=25467, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=25451, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,837 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=25468, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=25467, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,837 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=25469, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=25451, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,837 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=25470, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=25469, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,838 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=25471, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=25469, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,838 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=25472, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=25451, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,838 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=25473, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=25472, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,839 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=25474, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=25451, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,839 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=25475, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=25474, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,839 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=25476, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=25474, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,840 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=25477, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=25451, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,840 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=25478, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=25477, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,840 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=25479, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=25477, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,841 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=17406, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=17405, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,841 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=17410, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=17409, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,841 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=17411, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=17409, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,842 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=17412, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=17411, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,842 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=17413, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=17411, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,842 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=17414, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=17411, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,843 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=17416, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=17409, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,843 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=17417, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=17416, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,843 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=17418, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=17416, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,844 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=17419, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=17416, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,844 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=17421, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=17409, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,844 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=17422, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=17409, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,844 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=17423, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=17409, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,845 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=17424, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=17423, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,845 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=17425, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=17424, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,845 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=17426, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=17424, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,846 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=17429, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=17424, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,846 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=17431, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=17423, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,846 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=17432, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=17431, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,847 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=17433, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=17431, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,847 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=17434, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=17431, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,847 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=17436, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=17423, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,847 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=17437, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=17436, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,848 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=17438, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=17436, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,848 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=17439, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=17436, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,848 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=17441, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=17423, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,849 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=17442, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=17441, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,849 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=17443, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=17441, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,849 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=17444, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=17441, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,849 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=17446, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=17423, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,850 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=17447, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=17446, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,850 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=17448, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=17446, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,850 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=17449, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=17446, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,851 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=17451, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=17423, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,851 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=17452, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=17451, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,851 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=17453, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=17451, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,852 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=17454, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=17451, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,852 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=17457, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=17409, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,852 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=17458, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=17457, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,852 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=17459, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=17458, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,853 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=17460, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=17457, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,853 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=17461, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=17460, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,853 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=17462, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=17457, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,854 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=17463, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=17462, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,854 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=17464, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=17457, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,854 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=17466, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=17464, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,855 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=23679, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=23678, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,855 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=23680, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=23678, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,855 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=23681, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=23678, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,856 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=23682, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=23678, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,856 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=23683, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=23678, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,856 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=23684, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=23678, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,857 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=32398, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=23678, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,857 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=32839, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=23678, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,857 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=32840, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=23678, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,858 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=32841, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=23678, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,858 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=32842, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=23678, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,858 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=32399, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=23678, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,859 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=32400, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=23678, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,859 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=32401, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=23678, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,859 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=32402, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=23678, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,859 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=32843, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=23678, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,862 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=16720, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=15222, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,863 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=16721, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=15222, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,863 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=17482, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=15222, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,863 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=15223, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=15222, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,863 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=15224, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=15223, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,864 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=15482, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=15481, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,865 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=15483, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=15482, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,865 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=15484, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=15482, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,865 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=15485, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=15481, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,866 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=15486, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=15485, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,876 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=17202, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=14221, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,877 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=17576, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=17202, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,877 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=17311, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=17310, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,878 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=17204, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=17310, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,878 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=17486, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=17310, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,878 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=17314, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=17310, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,879 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=17315, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=17314, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,879 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=17214, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=17310, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,879 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=17318, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=17310, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,880 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=17319, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=17310, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,880 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=17321, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=17310, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,880 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=17322, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=17310, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,881 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=17558, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=17310, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,881 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=17326, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=17325, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,881 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=17302, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=17325, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,881 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=17487, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=17325, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,882 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=17329, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=17325, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,882 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=17330, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=17329, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,883 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=14601, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=14600, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,883 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=19242, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=19241, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,883 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=19243, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=19241, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,883 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=19244, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=19243, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,884 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=19245, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=19243, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,884 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=19246, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=19243, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,885 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=19248, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=19241, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,885 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=19249, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=19248, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,885 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=19250, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=19248, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,886 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=19251, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=19248, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,886 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=19253, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=19241, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,886 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=19254, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=19241, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,887 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=19255, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=19241, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,887 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=19256, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=19255, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,887 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=19257, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=19256, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,888 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=19258, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=19256, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,888 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=19259, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=19256, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,888 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=19261, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=19255, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,888 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=19262, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=19261, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,889 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=19263, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=19261, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,889 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=19264, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=19261, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,889 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=19266, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=19255, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,890 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=19267, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=19266, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,890 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=19268, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=19266, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,890 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=19269, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=19266, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,891 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=19271, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=19255, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,891 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=19272, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=19271, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,891 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=19273, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=19271, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,892 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=19274, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=19271, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,892 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=19276, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=19255, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,892 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=19277, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=19276, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,893 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=19278, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=19276, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,893 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=19279, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=19276, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,893 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=19281, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=19255, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,894 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=19282, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=19281, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,894 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=19283, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=19281, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,894 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=19284, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=19281, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,895 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=19286, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=19241, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,895 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=19287, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=19286, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,895 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=19288, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=19287, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,898 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=15266, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=15265, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,899 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=17744, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=17743, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,899 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=17745, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=17743, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,900 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=17490, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=17743, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,900 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=17749, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=17743, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,900 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=17750, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=17749, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,901 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=17813, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=17812, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,901 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=17814, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=17812, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,901 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=17815, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=17814, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,902 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=17816, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=17814, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,902 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=17817, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=17814, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,902 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=17819, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=17812, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,902 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=17820, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=17819, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,903 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=17821, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=17819, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,903 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=17822, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=17819, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,903 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=17824, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=17812, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,904 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=17825, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=17812, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,904 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=17826, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=17812, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,904 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=17827, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=17826, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,904 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=17828, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=17827, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,905 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=17829, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=17827, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,905 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=17830, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=17827, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,905 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=17832, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=17826, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,906 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=17833, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=17832, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,906 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=17834, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=17832, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,906 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=17835, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=17832, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,907 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=17837, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=17826, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,907 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=17838, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=17837, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,907 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=17839, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=17837, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,907 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=17840, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=17837, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,908 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=17842, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=17826, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,908 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=17843, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=17842, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,908 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=17844, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=17842, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,909 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=17845, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=17842, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,909 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=17847, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=17826, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,909 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=17848, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=17847, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,910 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=17849, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=17847, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,910 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=17850, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=17847, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,910 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=17853, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=17826, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,911 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=17854, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=17853, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,911 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=17855, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=17853, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,911 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=17856, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=17853, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,912 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=17859, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=17826, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,912 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=17864, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=17859, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,912 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=17871, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=17859, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,912 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=17872, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=17859, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,913 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=17874, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=17826, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,913 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=17878, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=17874, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,914 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=17885, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=17874, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,914 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=17892, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=17874, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,914 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=17900, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=17826, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,915 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=17901, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=17900, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,915 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=17902, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=17900, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,915 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=17903, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=17900, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,915 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=17858, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=17812, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,916 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=17913, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=17858, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,916 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=17920, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=17913, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,916 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=17927, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=17858, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,917 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=17934, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=17927, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,919 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=18077, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=18076, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,920 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=18078, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=18076, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,920 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=18079, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=18076, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,921 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=18080, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=18076, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,921 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=18081, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=18076, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,922 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=18082, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=18076, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,922 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=17560, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=18076, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,922 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=17562, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=18076, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,922 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=17492, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=18076, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,923 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=18088, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=18076, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,923 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=18089, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=18088, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,923 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=21006, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=18076, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,924 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=21016, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=21015, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,924 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=21017, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=21015, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,924 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=21018, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=21017, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,925 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=21019, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=21017, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,925 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=21020, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=21017, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,925 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=21022, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=21015, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,926 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=21023, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=21022, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,926 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=21024, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=21022, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,926 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=21025, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=21022, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,927 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=21027, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=21015, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,927 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=21028, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=21015, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,927 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=21029, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=21015, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,928 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=21030, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=21029, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,928 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=21031, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=21030, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,928 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=21032, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=21030, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,929 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=21033, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=21030, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,929 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=21035, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=21029, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,929 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=21036, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=21035, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,930 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=21037, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=21035, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,930 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=21038, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=21035, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,930 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=21040, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=21029, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,931 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=21041, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=21040, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,931 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=21042, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=21040, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,932 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=21043, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=21040, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,932 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=21045, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=21029, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,932 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=21046, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=21045, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,933 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=21047, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=21045, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,933 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=21048, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=21045, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,933 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=21050, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=21029, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,934 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=21051, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=21050, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,934 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=21052, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=21050, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,934 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=21053, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=21050, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,935 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=21055, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=21029, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,935 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=21056, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=21055, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,935 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=21057, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=21055, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,936 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=21058, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=21055, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,936 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=21061, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=21029, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,936 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=21062, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=21061, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,937 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=21063, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=21061, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,937 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=21064, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=21061, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,937 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=21060, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=21015, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,938 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=21076, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=21060, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,938 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=21077, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=21076, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,938 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=21078, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=21060, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,939 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=21079, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=21078, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,941 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=15300, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=15299, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,942 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=19551, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=19550, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,942 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=19552, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=19550, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,942 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=19553, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=19552, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,943 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=19554, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=19552, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,943 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=19555, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=19552, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,943 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=19557, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=19550, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,944 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=19558, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=19557, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,944 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=19559, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=19557, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,944 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=19560, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=19557, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,945 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=19562, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=19550, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,945 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=19563, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=19550, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,945 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=19564, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=19550, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,946 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=19565, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=19564, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,946 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=19566, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=19565, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,947 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=19567, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=19565, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,947 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=19568, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=19565, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,947 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=19570, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=19564, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,947 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=19571, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=19570, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,948 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=19572, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=19570, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,948 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=19573, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=19570, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,949 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=19575, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=19564, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,949 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=19576, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=19575, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,949 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=19577, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=19575, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,950 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=19578, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=19575, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,950 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=19580, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=19564, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,950 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=19581, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=19580, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,951 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=19582, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=19580, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,951 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=19583, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=19580, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,951 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=19585, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=19564, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,952 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=19586, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=19585, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,952 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=19587, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=19585, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,952 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=19588, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=19585, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,953 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=19590, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=19564, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,953 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=19591, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=19590, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,953 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=19592, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=19590, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,954 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=19593, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=19590, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,954 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=19596, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=19564, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,954 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=19597, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=19596, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,955 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=19598, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=19596, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,955 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=19599, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=19596, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,955 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=19595, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=19550, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,959 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=15308, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=15307, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,959 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=19610, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=19609, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,959 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=19611, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=19609, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,960 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=19612, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=19611, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,960 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=19613, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=19611, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,960 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=19614, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=19611, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,961 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=19616, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=19609, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,961 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=19617, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=19616, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,962 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=19618, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=19616, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,962 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=19619, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=19616, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,962 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=19621, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=19609, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,963 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=19622, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=19609, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,963 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=19623, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=19609, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,964 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=19624, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=19623, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,964 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=19625, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=19624, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,964 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=19626, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=19624, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,965 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=19627, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=19624, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,965 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=19629, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=19623, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,965 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=19630, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=19629, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,966 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=19631, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=19629, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,966 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=19632, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=19629, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,967 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=19634, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=19623, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,967 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=19635, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=19634, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,968 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=19636, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=19634, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,968 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=19637, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=19634, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,968 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=19639, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=19623, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,968 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=19640, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=19639, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,969 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=19641, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=19639, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,969 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=19642, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=19639, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,969 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=19644, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=19623, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,970 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=19645, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=19644, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,970 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=19646, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=19644, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,971 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=19647, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=19644, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,971 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=19649, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=19623, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,971 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=19650, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=19649, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,972 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=19651, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=19649, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,972 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=19652, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=19649, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,972 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=19655, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=19623, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,973 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=19656, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=19655, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,973 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=19657, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=19655, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,973 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=19658, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=19655, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,974 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=19654, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=19609, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,978 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=23808, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=23807, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,979 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=23809, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=23807, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,979 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=23810, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=23807, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,983 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=19680, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=19679, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,983 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=19681, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=19679, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,983 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=19682, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=19679, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,984 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=19685, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=19684, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,984 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=19686, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=19684, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,984 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=19687, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=19684, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,985 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=19693, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=19692, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,986 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=19694, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=19692, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,986 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=19695, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=19692, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,987 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=19698, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=19697, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,987 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=19699, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=19697, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,987 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=19700, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=19697, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,988 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=19703, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=19702, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,988 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=19704, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=19702, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,988 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=19705, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=19702, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,989 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=19708, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=19707, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,989 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=19709, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=19707, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,989 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=19710, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=19707, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,990 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=19713, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=19712, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,990 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=19714, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=19712, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,990 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=19715, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=19712, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,991 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=19718, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=19717, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,991 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=19719, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=19717, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:38,992 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=19720, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=19717, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:39,022 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=15154, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=15072, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:39,023 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=17579, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=15154, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:39,025 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=23843, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=23842, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:39,026 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=23844, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=23843, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:39,027 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=24018, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=24017, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:39,028 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=24019, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=24018, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:39,057 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=29878, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=24226, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:39,058 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=29879, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=29878, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:39,058 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=29880, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=29878, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:39,059 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=29881, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=29880, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:39,074 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=18965, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=18958, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:39,074 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=18966, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=18965, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:39,074 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=18967, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=18965, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:39,075 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=18968, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=18965, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:39,075 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=18969, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=18965, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:39,075 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=18972, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=18958, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:39,078 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=18975, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=18974, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:39,079 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=18976, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=18974, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:39,079 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=18977, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=18974, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:39,079 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=18978, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=18974, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:39,080 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=18979, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=18974, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:39,080 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=18981, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=18980, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:39,080 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=18982, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=18980, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:39,081 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=18983, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=18980, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:39,081 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=18984, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=18980, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:39,081 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=18989, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=18988, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:39,082 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=18990, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=18988, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:39,082 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=18991, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=18988, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:39,083 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=18992, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=18988, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:39,087 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=19018, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=19017, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:39,087 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=19019, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=19017, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:39,088 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=19020, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=19017, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:39,088 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=19021, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=19017, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:39,088 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=19022, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=19017, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:39,089 INFO asyncua.server.address_space add_node: while adding node NumericNodeId(Identifier=19023, NamespaceIndex=0, NodeIdType=), requested parent node NumericNodeId(Identifier=19017, NamespaceIndex=0, NodeIdType=) does not exists +2026-01-10 18:29:39,949 INFO openscada_lite.modules.communication.drivers.opc_ua_server_driver [OPCUA] Created 6 nodes +2026-01-10 18:29:39,949 WARNING asyncua.server.server No encrypting policy available, password may get transferred in plaintext +2026-01-10 18:29:39,950 WARNING asyncua.server.server Endpoints other than open requested but private key and certificate are not set. +2026-01-10 18:29:39,950 INFO asyncua.server.internal_server starting internal server +2026-01-10 18:29:39,951 INFO asyncua.server.binary_server_asyncio Listening on 0.0.0.0:4840 +2026-01-10 18:29:39,952 INFO asyncua.server.subscription_service create subscription +2026-01-10 18:29:39,952 INFO asyncua.common.subscription Subscription created 78 +2026-01-10 18:29:39,952 INFO asyncua.server.subscription_service create monitored items +2026-01-10 18:29:39,953 INFO asyncua.server.monitored_item_service.78 request to subscribe to datachange for node NodeId(Identifier='CameraDriver@CAMERA_1_POSITION_CMD', NamespaceIndex=2, NodeIdType=) and attribute 13 +2026-01-10 18:29:39,953 INFO asyncua.server.subscription_service create monitored items +2026-01-10 18:29:39,953 INFO asyncua.server.monitored_item_service.78 request to subscribe to datachange for node NodeId(Identifier='CameraDriver@CAMERA_2_POSITION_CMD', NamespaceIndex=2, NodeIdType=) and attribute 13 +2026-01-10 18:29:39,954 INFO asyncua.server.subscription_service create monitored items +2026-01-10 18:29:39,954 INFO asyncua.server.monitored_item_service.78 request to subscribe to datachange for node NodeId(Identifier='CameraDriver@CAMERA_3_POSITION_CMD', NamespaceIndex=2, NodeIdType=) and attribute 13 +2026-01-10 18:29:39,954 INFO openscada_lite.modules.communication.drivers.opc_ua_server_driver [OPCUA] Write monitoring enabled on 3 nodes +2026-01-10 18:29:39,955 INFO openscada_lite.modules.communication.drivers.opc_ua_server_driver [OPCUA] Server started at opc.tcp://0.0.0.0:4840/freeopcua/server/ (namespace: http://openscada-lite/opcua/server, idx: 2) +2026-01-10 18:29:39,956 INFO asyncua.common.subscription Publish callback called with result: PublishResult(SubscriptionId=78, AvailableSequenceNumbers=[], MoreNotifications=False, NotificationMessage_=NotificationMessage(SequenceNumber=1, PublishTime=datetime.datetime(2026, 1, 10, 17, 29, 39, 956228, tzinfo=datetime.timezone.utc), NotificationData=[DataChangeNotification(MonitoredItems=[MonitoredItemNotification(ClientHandle=201, Value=DataValue(Value=Variant(Value='', VariantType=, Dimensions=None, is_array=False), StatusCode_=StatusCode(value=0), SourceTimestamp=datetime.datetime(2026, 1, 10, 17, 29, 39, 948709, tzinfo=datetime.timezone.utc), ServerTimestamp=datetime.datetime(2026, 1, 10, 17, 29, 39, 948709, tzinfo=datetime.timezone.utc), SourcePicoseconds=None, ServerPicoseconds=None)), MonitoredItemNotification(ClientHandle=202, Value=DataValue(Value=Variant(Value='', VariantType=, Dimensions=None, is_array=False), StatusCode_=StatusCode(value=0), SourceTimestamp=datetime.datetime(2026, 1, 10, 17, 29, 39, 948967, tzinfo=datetime.timezone.utc), ServerTimestamp=datetime.datetime(2026, 1, 10, 17, 29, 39, 948967, tzinfo=datetime.timezone.utc), SourcePicoseconds=None, ServerPicoseconds=None)), MonitoredItemNotification(ClientHandle=203, Value=DataValue(Value=Variant(Value='', VariantType=, Dimensions=None, is_array=False), StatusCode_=StatusCode(value=0), SourceTimestamp=datetime.datetime(2026, 1, 10, 17, 29, 39, 949215, tzinfo=datetime.timezone.utc), ServerTimestamp=datetime.datetime(2026, 1, 10, 17, 29, 39, 949215, tzinfo=datetime.timezone.utc), SourcePicoseconds=None, ServerPicoseconds=None))], DiagnosticInfos=[])]), Results=[], DiagnosticInfos=[]) +2026-01-10 18:29:39,957 INFO openscada_lite.modules.communication.drivers.opc_ua_server_driver [WRITE] Client wrote CameraDriver@CAMERA_1_POSITION_CMD -> '' +2026-01-10 18:29:39,957 INFO openscada_lite.modules.communication.manager.connector_manager [COMMAND] Sending command: CameraDriver@CAMERA_1_POSITION_CMD = +2026-01-10 18:29:39,958 INFO openscada_lite.modules.communication.drivers.opc_ua_server_driver [WRITE] Client wrote CameraDriver@CAMERA_2_POSITION_CMD -> '' +2026-01-10 18:29:39,959 INFO openscada_lite.modules.communication.manager.connector_manager [COMMAND] Sending command: CameraDriver@CAMERA_2_POSITION_CMD = +2026-01-10 18:29:39,959 INFO openscada_lite.modules.communication.drivers.opc_ua_server_driver [WRITE] Client wrote CameraDriver@CAMERA_3_POSITION_CMD -> '' +2026-01-10 18:29:39,960 INFO openscada_lite.modules.communication.manager.connector_manager [COMMAND] Sending command: CameraDriver@CAMERA_3_POSITION_CMD = +2026-01-10 18:32:49,300 INFO openscada_lite.app [LIFESPAN] Shutdown complete +2026-01-10 18:32:49,301 INFO asyncua.server.internal_subscription exiting _subscription_loop for 78 +2026-01-10 18:32:52,295 INFO openscada_lite.app [LIFESPAN] Startup starting... +2026-01-10 18:33:07,564 INFO openscada_lite.modules.communication.drivers.opc_ua_server_driver [OPCUA] Will expose 6 nodes on connect() +2026-01-10 18:33:07,565 INFO openscada_lite.modules.communication.drivers.test.test_driver [INIT] Creating TestDriver CameraDriver +2026-01-10 18:33:07,565 INFO openscada_lite.modules.communication.drivers.test.test_driver [INIT] Creating TestDriver WaterTank +2026-01-10 18:33:07,566 INFO openscada_lite.modules.communication.drivers.test.test_driver [INIT] Creating TestDriver StressTest +2026-01-10 18:33:07,568 INFO openscada_lite.modules.communication.drivers.test.test_driver [INIT] Creating TestDriver TrainTestDriver +2026-01-10 18:33:07,795 INFO apscheduler.scheduler Adding job tentatively -- it will be properly scheduled when the scheduler starts +2026-01-10 18:33:07,795 INFO apscheduler.scheduler Adding job tentatively -- it will be properly scheduled when the scheduler starts +2026-01-10 18:33:07,797 INFO apscheduler.scheduler Added job "ScheduleService._execute_schedule" to job store "default" +2026-01-10 18:33:07,798 INFO apscheduler.scheduler Added job "ScheduleService._execute_schedule" to job store "default" +2026-01-10 18:33:07,798 INFO apscheduler.scheduler Scheduler started +2026-01-10 18:33:07,825 INFO openscada_lite.modules.rule.manager.rule_manager Initializing RuleEngine with datapoint types: ['BOOL', 'CAMERA_POSITION', 'LEVEL', 'OPENED_CLOSED', 'OPEN_CLOSE_CMD', 'PRESSURE', 'START_STOP', 'START_STOP_CMD', 'SWITCH_CONTROL', 'SWITCH_CONTROL_CMD', 'TEMPERATURE', 'ON_OFF'] +2026-01-10 18:33:07,837 INFO openscada_lite.app [LIFESPAN] Startup complete +2026-01-10 18:33:07,838 INFO apscheduler.executors.default Running job "ScheduleService._execute_schedule (trigger: cron[month='*', day='*', day_of_week='*', hour='17', minute='0'], next run at: 2026-01-11 17:00:00 CET)" (scheduled at 2026-01-10 18:33:07.795113+01:00) +2026-01-10 18:33:07,839 INFO openscada_lite.modules.communication.manager.connector_manager [COMMAND] Sending command: TasmotaRelayDriver@RELAY_1_CMD = ON +2026-01-10 18:33:07,839 WARNING openscada_lite.modules.communication.manager.connector_manager Driver 'TasmotaRelayDriver' is not connected. Cannot send command. +2026-01-10 18:33:07,840 INFO openscada_lite.modules.communication.manager.connector_manager [COMMAND] Sending command: TasmotaRelayDriver@RELAY_2_CMD = ON +2026-01-10 18:33:07,840 WARNING openscada_lite.modules.communication.manager.connector_manager Driver 'TasmotaRelayDriver' is not connected. Cannot send command. +2026-01-10 18:33:07,841 INFO apscheduler.executors.default Job "ScheduleService._execute_schedule (trigger: cron[month='*', day='*', day_of_week='*', hour='17', minute='0'], next run at: 2026-01-11 17:00:00 CET)" executed successfully +2026-01-10 18:33:07,841 INFO apscheduler.executors.default Running job "ScheduleService._execute_schedule (trigger: cron[month='*', day='*', day_of_week='*', hour='23', minute='0'], next run at: 2026-01-10 23:00:00 CET)" (scheduled at 2026-01-10 18:33:07.795788+01:00) +2026-01-10 18:33:07,842 INFO openscada_lite.modules.communication.manager.connector_manager [COMMAND] Sending command: TasmotaRelayDriver@RELAY_1_CMD = OFF +2026-01-10 18:33:07,842 WARNING openscada_lite.modules.communication.manager.connector_manager Driver 'TasmotaRelayDriver' is not connected. Cannot send command. +2026-01-10 18:33:07,842 INFO openscada_lite.modules.communication.manager.connector_manager [COMMAND] Sending command: TasmotaRelayDriver@RELAY_2_CMD = OFF +2026-01-10 18:33:07,843 WARNING openscada_lite.modules.communication.manager.connector_manager Driver 'TasmotaRelayDriver' is not connected. Cannot send command. +2026-01-10 18:33:07,844 INFO apscheduler.executors.default Job "ScheduleService._execute_schedule (trigger: cron[month='*', day='*', day_of_week='*', hour='23', minute='0'], next run at: 2026-01-10 23:00:00 CET)" executed successfully +2026-01-10 18:34:12,936 INFO openscada_lite.app [LIFESPAN] Shutdown complete +2026-01-10 18:35:44,977 INFO openscada_lite.app [LIFESPAN] Startup starting... +2026-01-10 18:35:45,547 INFO openscada_lite.modules.communication.drivers.opc_ua_server_driver [OPCUA] Will expose 6 nodes on connect() +2026-01-10 18:35:45,547 INFO openscada_lite.modules.communication.drivers.test.test_driver [INIT] Creating TestDriver CameraDriver +2026-01-10 18:35:45,547 INFO openscada_lite.modules.communication.drivers.test.test_driver [INIT] Creating TestDriver WaterTank +2026-01-10 18:35:45,548 INFO openscada_lite.modules.communication.drivers.test.test_driver [INIT] Creating TestDriver StressTest +2026-01-10 18:35:45,550 INFO openscada_lite.modules.communication.drivers.test.test_driver [INIT] Creating TestDriver TrainTestDriver +2026-01-10 18:35:45,700 INFO apscheduler.scheduler Adding job tentatively -- it will be properly scheduled when the scheduler starts +2026-01-10 18:35:45,700 INFO apscheduler.scheduler Adding job tentatively -- it will be properly scheduled when the scheduler starts +2026-01-10 18:35:45,702 INFO apscheduler.scheduler Added job "ScheduleService._execute_schedule" to job store "default" +2026-01-10 18:35:45,702 INFO apscheduler.scheduler Added job "ScheduleService._execute_schedule" to job store "default" +2026-01-10 18:35:45,702 INFO apscheduler.scheduler Scheduler started +2026-01-10 18:35:45,725 INFO openscada_lite.modules.rule.manager.rule_manager Initializing RuleEngine with datapoint types: ['BOOL', 'CAMERA_POSITION', 'LEVEL', 'OPENED_CLOSED', 'OPEN_CLOSE_CMD', 'PRESSURE', 'START_STOP', 'START_STOP_CMD', 'SWITCH_CONTROL', 'SWITCH_CONTROL_CMD', 'TEMPERATURE', 'ON_OFF'] +2026-01-10 18:35:45,736 INFO openscada_lite.app [LIFESPAN] Startup complete +2026-01-10 18:35:45,737 INFO apscheduler.executors.default Running job "ScheduleService._execute_schedule (trigger: cron[month='*', day='*', day_of_week='*', hour='17', minute='0'], next run at: 2026-01-11 17:00:00 CET)" (scheduled at 2026-01-10 18:35:45.699878+01:00) +2026-01-10 18:35:45,737 INFO openscada_lite.modules.communication.manager.connector_manager [COMMAND] Sending command: TasmotaRelayDriver@RELAY_1_CMD = ON +2026-01-10 18:35:45,738 WARNING openscada_lite.modules.communication.manager.connector_manager Driver 'TasmotaRelayDriver' is not connected. Cannot send command. +2026-01-10 18:35:45,738 INFO openscada_lite.modules.communication.manager.connector_manager [COMMAND] Sending command: TasmotaRelayDriver@RELAY_2_CMD = ON +2026-01-10 18:35:45,738 WARNING openscada_lite.modules.communication.manager.connector_manager Driver 'TasmotaRelayDriver' is not connected. Cannot send command. +2026-01-10 18:35:45,739 INFO apscheduler.executors.default Job "ScheduleService._execute_schedule (trigger: cron[month='*', day='*', day_of_week='*', hour='17', minute='0'], next run at: 2026-01-11 17:00:00 CET)" executed successfully +2026-01-10 18:35:45,739 INFO apscheduler.executors.default Running job "ScheduleService._execute_schedule (trigger: cron[month='*', day='*', day_of_week='*', hour='23', minute='0'], next run at: 2026-01-10 23:00:00 CET)" (scheduled at 2026-01-10 18:35:45.700515+01:00) +2026-01-10 18:35:45,740 INFO openscada_lite.modules.communication.manager.connector_manager [COMMAND] Sending command: TasmotaRelayDriver@RELAY_1_CMD = OFF +2026-01-10 18:35:45,740 WARNING openscada_lite.modules.communication.manager.connector_manager Driver 'TasmotaRelayDriver' is not connected. Cannot send command. +2026-01-10 18:35:45,741 INFO openscada_lite.modules.communication.manager.connector_manager [COMMAND] Sending command: TasmotaRelayDriver@RELAY_2_CMD = OFF +2026-01-10 18:35:45,741 WARNING openscada_lite.modules.communication.manager.connector_manager Driver 'TasmotaRelayDriver' is not connected. Cannot send command. +2026-01-10 18:35:45,742 INFO apscheduler.executors.default Job "ScheduleService._execute_schedule (trigger: cron[month='*', day='*', day_of_week='*', hour='23', minute='0'], next run at: 2026-01-10 23:00:00 CET)" executed successfully +2026-01-10 18:38:02,871 INFO openscada_lite.app [LIFESPAN] Shutdown complete +2026-01-10 18:38:05,098 INFO openscada_lite.app [LIFESPAN] Startup starting... +2026-01-10 18:38:05,926 INFO openscada_lite.modules.communication.drivers.opc_ua_server_driver [OPCUA] Will expose 6 nodes on connect() +2026-01-10 18:38:05,927 INFO openscada_lite.modules.communication.drivers.test.test_driver [INIT] Creating TestDriver CameraDriver +2026-01-10 18:38:05,927 INFO openscada_lite.modules.communication.drivers.test.test_driver [INIT] Creating TestDriver WaterTank +2026-01-10 18:38:05,928 INFO openscada_lite.modules.communication.drivers.test.test_driver [INIT] Creating TestDriver StressTest +2026-01-10 18:38:05,930 INFO openscada_lite.modules.communication.drivers.test.test_driver [INIT] Creating TestDriver TrainTestDriver +2026-01-10 18:38:06,116 INFO apscheduler.scheduler Adding job tentatively -- it will be properly scheduled when the scheduler starts +2026-01-10 18:38:06,117 INFO apscheduler.scheduler Adding job tentatively -- it will be properly scheduled when the scheduler starts +2026-01-10 18:38:06,119 INFO apscheduler.scheduler Added job "ScheduleService._execute_schedule" to job store "default" +2026-01-10 18:38:06,119 INFO apscheduler.scheduler Added job "ScheduleService._execute_schedule" to job store "default" +2026-01-10 18:38:06,120 INFO apscheduler.scheduler Scheduler started +2026-01-10 18:38:06,143 INFO openscada_lite.modules.rule.manager.rule_manager Initializing RuleEngine with datapoint types: ['BOOL', 'CAMERA_POSITION', 'LEVEL', 'OPENED_CLOSED', 'OPEN_CLOSE_CMD', 'PRESSURE', 'START_STOP', 'START_STOP_CMD', 'SWITCH_CONTROL', 'SWITCH_CONTROL_CMD', 'TEMPERATURE', 'ON_OFF'] +2026-01-10 18:38:06,154 INFO openscada_lite.app [LIFESPAN] Startup complete +2026-01-10 18:38:06,155 INFO apscheduler.executors.default Running job "ScheduleService._execute_schedule (trigger: cron[month='*', day='*', day_of_week='*', hour='17', minute='0'], next run at: 2026-01-11 17:00:00 CET)" (scheduled at 2026-01-10 18:38:06.116092+01:00) +2026-01-10 18:38:06,156 INFO openscada_lite.modules.communication.manager.connector_manager [COMMAND] Sending command: TasmotaRelayDriver@RELAY_1_CMD = ON +2026-01-10 18:38:06,156 WARNING openscada_lite.modules.communication.manager.connector_manager Driver 'TasmotaRelayDriver' is not connected. Cannot send command. +2026-01-10 18:38:06,157 INFO openscada_lite.modules.communication.manager.connector_manager [COMMAND] Sending command: TasmotaRelayDriver@RELAY_2_CMD = ON +2026-01-10 18:38:06,157 WARNING openscada_lite.modules.communication.manager.connector_manager Driver 'TasmotaRelayDriver' is not connected. Cannot send command. +2026-01-10 18:38:06,157 INFO apscheduler.executors.default Job "ScheduleService._execute_schedule (trigger: cron[month='*', day='*', day_of_week='*', hour='17', minute='0'], next run at: 2026-01-11 17:00:00 CET)" executed successfully +2026-01-10 18:38:06,158 INFO apscheduler.executors.default Running job "ScheduleService._execute_schedule (trigger: cron[month='*', day='*', day_of_week='*', hour='23', minute='0'], next run at: 2026-01-10 23:00:00 CET)" (scheduled at 2026-01-10 18:38:06.117329+01:00) +2026-01-10 18:38:06,158 INFO openscada_lite.modules.communication.manager.connector_manager [COMMAND] Sending command: TasmotaRelayDriver@RELAY_1_CMD = OFF +2026-01-10 18:38:06,159 WARNING openscada_lite.modules.communication.manager.connector_manager Driver 'TasmotaRelayDriver' is not connected. Cannot send command. +2026-01-10 18:38:06,159 INFO openscada_lite.modules.communication.manager.connector_manager [COMMAND] Sending command: TasmotaRelayDriver@RELAY_2_CMD = OFF +2026-01-10 18:38:06,159 WARNING openscada_lite.modules.communication.manager.connector_manager Driver 'TasmotaRelayDriver' is not connected. Cannot send command. +2026-01-10 18:38:06,160 INFO apscheduler.executors.default Job "ScheduleService._execute_schedule (trigger: cron[month='*', day='*', day_of_week='*', hour='23', minute='0'], next run at: 2026-01-10 23:00:00 CET)" executed successfully +2026-01-10 18:38:30,575 INFO openscada_lite.app [LIFESPAN] Shutdown complete +2026-01-10 18:39:49,403 INFO openscada_lite.app [LIFESPAN] Startup starting... +2026-01-10 18:39:49,919 INFO openscada_lite.modules.communication.drivers.opc_ua_server_driver [OPCUA] Will expose 6 nodes on connect() +2026-01-10 18:39:49,919 INFO openscada_lite.modules.communication.drivers.test.test_driver [INIT] Creating TestDriver CameraDriver +2026-01-10 18:39:49,919 INFO openscada_lite.modules.communication.drivers.test.test_driver [INIT] Creating TestDriver WaterTank +2026-01-10 18:39:49,920 INFO openscada_lite.modules.communication.drivers.test.test_driver [INIT] Creating TestDriver StressTest +2026-01-10 18:39:49,921 INFO openscada_lite.modules.communication.drivers.test.test_driver [INIT] Creating TestDriver TrainTestDriver +2026-01-10 18:39:50,023 INFO apscheduler.scheduler Adding job tentatively -- it will be properly scheduled when the scheduler starts +2026-01-10 18:39:50,024 INFO apscheduler.scheduler Adding job tentatively -- it will be properly scheduled when the scheduler starts +2026-01-10 18:39:50,025 INFO apscheduler.scheduler Added job "ScheduleService._execute_schedule" to job store "default" +2026-01-10 18:39:50,025 INFO apscheduler.scheduler Added job "ScheduleService._execute_schedule" to job store "default" +2026-01-10 18:39:50,025 INFO apscheduler.scheduler Scheduler started +2026-01-10 18:39:50,044 INFO openscada_lite.modules.rule.manager.rule_manager Initializing RuleEngine with datapoint types: ['BOOL', 'CAMERA_POSITION', 'LEVEL', 'OPENED_CLOSED', 'OPEN_CLOSE_CMD', 'PRESSURE', 'START_STOP', 'START_STOP_CMD', 'SWITCH_CONTROL', 'SWITCH_CONTROL_CMD', 'TEMPERATURE', 'ON_OFF'] +2026-01-10 18:39:50,053 INFO openscada_lite.app [LIFESPAN] Startup complete +2026-01-10 18:39:50,054 INFO apscheduler.executors.default Running job "ScheduleService._execute_schedule (trigger: cron[month='*', day='*', day_of_week='*', hour='17', minute='0'], next run at: 2026-01-11 17:00:00 CET)" (scheduled at 2026-01-10 18:39:50.023471+01:00) +2026-01-10 18:39:50,055 INFO openscada_lite.modules.communication.manager.connector_manager [COMMAND] Sending command: TasmotaRelayDriver@RELAY_1_CMD = ON +2026-01-10 18:39:50,055 WARNING openscada_lite.modules.communication.manager.connector_manager Driver 'TasmotaRelayDriver' is not connected. Cannot send command. +2026-01-10 18:39:50,056 INFO openscada_lite.modules.communication.manager.connector_manager [COMMAND] Sending command: TasmotaRelayDriver@RELAY_2_CMD = ON +2026-01-10 18:39:50,056 WARNING openscada_lite.modules.communication.manager.connector_manager Driver 'TasmotaRelayDriver' is not connected. Cannot send command. +2026-01-10 18:39:50,056 INFO apscheduler.executors.default Job "ScheduleService._execute_schedule (trigger: cron[month='*', day='*', day_of_week='*', hour='17', minute='0'], next run at: 2026-01-11 17:00:00 CET)" executed successfully +2026-01-10 18:39:50,057 INFO apscheduler.executors.default Running job "ScheduleService._execute_schedule (trigger: cron[month='*', day='*', day_of_week='*', hour='23', minute='0'], next run at: 2026-01-10 23:00:00 CET)" (scheduled at 2026-01-10 18:39:50.023911+01:00) +2026-01-10 18:39:50,057 INFO openscada_lite.modules.communication.manager.connector_manager [COMMAND] Sending command: TasmotaRelayDriver@RELAY_1_CMD = OFF +2026-01-10 18:39:50,057 WARNING openscada_lite.modules.communication.manager.connector_manager Driver 'TasmotaRelayDriver' is not connected. Cannot send command. +2026-01-10 18:39:50,058 INFO openscada_lite.modules.communication.manager.connector_manager [COMMAND] Sending command: TasmotaRelayDriver@RELAY_2_CMD = OFF +2026-01-10 18:39:50,058 WARNING openscada_lite.modules.communication.manager.connector_manager Driver 'TasmotaRelayDriver' is not connected. Cannot send command. +2026-01-10 18:39:50,059 INFO apscheduler.executors.default Job "ScheduleService._execute_schedule (trigger: cron[month='*', day='*', day_of_week='*', hour='23', minute='0'], next run at: 2026-01-10 23:00:00 CET)" executed successfully +2026-01-10 18:48:39,933 INFO openscada_lite.app [LIFESPAN] Startup starting... +2026-01-10 18:48:41,125 INFO openscada_lite.modules.communication.drivers.opc_ua_server_driver [OPCUA] Will expose 6 nodes on connect() +2026-01-10 18:48:41,125 INFO openscada_lite.modules.communication.drivers.test.test_driver [INIT] Creating TestDriver CameraDriver +2026-01-10 18:48:41,126 INFO openscada_lite.modules.communication.drivers.test.test_driver [INIT] Creating TestDriver WaterTank +2026-01-10 18:48:41,126 INFO openscada_lite.modules.communication.drivers.test.test_driver [INIT] Creating TestDriver StressTest +2026-01-10 18:48:41,128 INFO openscada_lite.modules.communication.drivers.test.test_driver [INIT] Creating TestDriver TrainTestDriver +2026-01-10 18:48:41,378 INFO apscheduler.scheduler Adding job tentatively -- it will be properly scheduled when the scheduler starts +2026-01-10 18:48:41,379 INFO apscheduler.scheduler Adding job tentatively -- it will be properly scheduled when the scheduler starts +2026-01-10 18:48:41,380 INFO apscheduler.scheduler Added job "ScheduleService._execute_schedule" to job store "default" +2026-01-10 18:48:41,381 INFO apscheduler.scheduler Added job "ScheduleService._execute_schedule" to job store "default" +2026-01-10 18:48:41,381 INFO apscheduler.scheduler Scheduler started +2026-01-10 18:48:41,411 INFO openscada_lite.modules.rule.manager.rule_manager Initializing RuleEngine with datapoint types: ['BOOL', 'CAMERA_POSITION', 'LEVEL', 'OPENED_CLOSED', 'OPEN_CLOSE_CMD', 'PRESSURE', 'START_STOP', 'START_STOP_CMD', 'SWITCH_CONTROL', 'SWITCH_CONTROL_CMD', 'TEMPERATURE', 'ON_OFF'] +2026-01-10 18:48:41,473 INFO openscada_lite.app [LIFESPAN] Startup complete +2026-01-10 18:48:41,495 INFO apscheduler.executors.default Running job "ScheduleService._execute_schedule (trigger: cron[month='*', day='*', day_of_week='*', hour='17', minute='0'], next run at: 2026-01-11 17:00:00 CET)" (scheduled at 2026-01-10 18:48:41.378526+01:00) +2026-01-10 18:48:41,500 INFO openscada_lite.modules.communication.manager.connector_manager [COMMAND] Sending command: TasmotaRelayDriver@RELAY_1_CMD = ON +2026-01-10 18:48:41,507 WARNING openscada_lite.modules.communication.manager.connector_manager Driver 'TasmotaRelayDriver' is not connected. Cannot send command. +2026-01-10 18:48:41,514 INFO openscada_lite.modules.communication.manager.connector_manager [COMMAND] Sending command: TasmotaRelayDriver@RELAY_2_CMD = ON +2026-01-10 18:48:41,533 WARNING openscada_lite.modules.communication.manager.connector_manager Driver 'TasmotaRelayDriver' is not connected. Cannot send command. +2026-01-10 18:48:41,540 INFO apscheduler.executors.default Job "ScheduleService._execute_schedule (trigger: cron[month='*', day='*', day_of_week='*', hour='17', minute='0'], next run at: 2026-01-11 17:00:00 CET)" executed successfully +2026-01-10 18:48:41,542 INFO apscheduler.executors.default Running job "ScheduleService._execute_schedule (trigger: cron[month='*', day='*', day_of_week='*', hour='23', minute='0'], next run at: 2026-01-10 23:00:00 CET)" (scheduled at 2026-01-10 18:48:41.379158+01:00) +2026-01-10 18:48:41,544 INFO openscada_lite.modules.communication.manager.connector_manager [COMMAND] Sending command: TasmotaRelayDriver@RELAY_1_CMD = OFF +2026-01-10 18:48:41,547 WARNING openscada_lite.modules.communication.manager.connector_manager Driver 'TasmotaRelayDriver' is not connected. Cannot send command. +2026-01-10 18:48:41,549 INFO openscada_lite.modules.communication.manager.connector_manager [COMMAND] Sending command: TasmotaRelayDriver@RELAY_2_CMD = OFF +2026-01-10 18:48:41,556 WARNING openscada_lite.modules.communication.manager.connector_manager Driver 'TasmotaRelayDriver' is not connected. Cannot send command. +2026-01-10 18:48:41,558 INFO apscheduler.executors.default Job "ScheduleService._execute_schedule (trigger: cron[month='*', day='*', day_of_week='*', hour='23', minute='0'], next run at: 2026-01-10 23:00:00 CET)" executed successfully +2026-01-10 18:53:19,359 INFO openscada_lite.app [LIFESPAN] Startup starting... +2026-01-10 18:53:20,021 INFO openscada_lite.modules.communication.drivers.opc_ua_server_driver [OPCUA] Will expose 6 nodes on connect() +2026-01-10 18:53:20,022 INFO openscada_lite.modules.communication.drivers.test.test_driver [INIT] Creating TestDriver CameraDriver +2026-01-10 18:53:20,022 INFO openscada_lite.modules.communication.drivers.test.test_driver [INIT] Creating TestDriver WaterTank +2026-01-10 18:53:20,023 INFO openscada_lite.modules.communication.drivers.test.test_driver [INIT] Creating TestDriver StressTest +2026-01-10 18:53:20,024 INFO openscada_lite.modules.communication.drivers.test.test_driver [INIT] Creating TestDriver TrainTestDriver +2026-01-10 18:53:20,145 INFO apscheduler.scheduler Adding job tentatively -- it will be properly scheduled when the scheduler starts +2026-01-10 18:53:20,146 INFO apscheduler.scheduler Adding job tentatively -- it will be properly scheduled when the scheduler starts +2026-01-10 18:53:20,148 INFO apscheduler.scheduler Added job "ScheduleService._execute_schedule" to job store "default" +2026-01-10 18:53:20,148 INFO apscheduler.scheduler Added job "ScheduleService._execute_schedule" to job store "default" +2026-01-10 18:53:20,148 INFO apscheduler.scheduler Scheduler started +2026-01-10 18:53:20,175 INFO openscada_lite.modules.rule.manager.rule_manager Initializing RuleEngine with datapoint types: ['BOOL', 'CAMERA_POSITION', 'LEVEL', 'OPENED_CLOSED', 'OPEN_CLOSE_CMD', 'PRESSURE', 'START_STOP', 'START_STOP_CMD', 'SWITCH_CONTROL', 'SWITCH_CONTROL_CMD', 'TEMPERATURE', 'ON_OFF'] +2026-01-10 18:53:20,189 INFO openscada_lite.app [LIFESPAN] Startup complete +2026-01-10 18:53:20,190 INFO apscheduler.executors.default Running job "ScheduleService._execute_schedule (trigger: cron[month='*', day='*', day_of_week='*', hour='17', minute='0'], next run at: 2026-01-11 17:00:00 CET)" (scheduled at 2026-01-10 18:53:20.145089+01:00) +2026-01-10 18:53:20,191 INFO openscada_lite.modules.communication.manager.connector_manager [COMMAND] Sending command: TasmotaRelayDriver@RELAY_1_CMD = ON +2026-01-10 18:53:20,192 WARNING openscada_lite.modules.communication.manager.connector_manager Driver 'TasmotaRelayDriver' is not connected. Cannot send command. +2026-01-10 18:53:20,193 INFO openscada_lite.modules.communication.manager.connector_manager [COMMAND] Sending command: TasmotaRelayDriver@RELAY_2_CMD = ON +2026-01-10 18:53:20,193 WARNING openscada_lite.modules.communication.manager.connector_manager Driver 'TasmotaRelayDriver' is not connected. Cannot send command. +2026-01-10 18:53:20,194 INFO apscheduler.executors.default Job "ScheduleService._execute_schedule (trigger: cron[month='*', day='*', day_of_week='*', hour='17', minute='0'], next run at: 2026-01-11 17:00:00 CET)" executed successfully +2026-01-10 18:53:20,195 INFO apscheduler.executors.default Running job "ScheduleService._execute_schedule (trigger: cron[month='*', day='*', day_of_week='*', hour='23', minute='0'], next run at: 2026-01-10 23:00:00 CET)" (scheduled at 2026-01-10 18:53:20.145920+01:00) +2026-01-10 18:53:20,195 INFO openscada_lite.modules.communication.manager.connector_manager [COMMAND] Sending command: TasmotaRelayDriver@RELAY_1_CMD = OFF +2026-01-10 18:53:20,196 WARNING openscada_lite.modules.communication.manager.connector_manager Driver 'TasmotaRelayDriver' is not connected. Cannot send command. +2026-01-10 18:53:20,197 INFO openscada_lite.modules.communication.manager.connector_manager [COMMAND] Sending command: TasmotaRelayDriver@RELAY_2_CMD = OFF +2026-01-10 18:53:20,197 WARNING openscada_lite.modules.communication.manager.connector_manager Driver 'TasmotaRelayDriver' is not connected. Cannot send command. +2026-01-10 18:53:20,198 INFO apscheduler.executors.default Job "ScheduleService._execute_schedule (trigger: cron[month='*', day='*', day_of_week='*', hour='23', minute='0'], next run at: 2026-01-10 23:00:00 CET)" executed successfully +2026-01-10 18:57:44,426 INFO openscada_lite.app [LIFESPAN] Shutdown complete +2026-01-10 18:57:47,618 INFO openscada_lite.app [LIFESPAN] Startup starting... +2026-01-10 18:57:48,513 INFO openscada_lite.modules.communication.drivers.opc_ua_server_driver [OPCUA] Will expose 6 nodes on connect() +2026-01-10 18:57:48,514 INFO openscada_lite.modules.communication.drivers.test.test_driver [INIT] Creating TestDriver CameraDriver +2026-01-10 18:57:48,514 INFO openscada_lite.modules.communication.drivers.test.test_driver [INIT] Creating TestDriver WaterTank +2026-01-10 18:57:48,515 INFO openscada_lite.modules.communication.drivers.test.test_driver [INIT] Creating TestDriver StressTest +2026-01-10 18:57:48,517 INFO openscada_lite.modules.communication.drivers.test.test_driver [INIT] Creating TestDriver TrainTestDriver +2026-01-10 18:57:48,648 INFO apscheduler.scheduler Adding job tentatively -- it will be properly scheduled when the scheduler starts +2026-01-10 18:57:48,649 INFO apscheduler.scheduler Adding job tentatively -- it will be properly scheduled when the scheduler starts +2026-01-10 18:57:48,651 INFO apscheduler.scheduler Added job "ScheduleService._execute_schedule" to job store "default" +2026-01-10 18:57:48,652 INFO apscheduler.scheduler Added job "ScheduleService._execute_schedule" to job store "default" +2026-01-10 18:57:48,652 INFO apscheduler.scheduler Scheduler started +2026-01-10 18:57:48,684 INFO openscada_lite.modules.rule.manager.rule_manager Initializing RuleEngine with datapoint types: ['BOOL', 'CAMERA_POSITION', 'LEVEL', 'OPENED_CLOSED', 'OPEN_CLOSE_CMD', 'PRESSURE', 'START_STOP', 'START_STOP_CMD', 'SWITCH_CONTROL', 'SWITCH_CONTROL_CMD', 'TEMPERATURE', 'ON_OFF'] +2026-01-10 18:57:48,706 INFO openscada_lite.app [LIFESPAN] Startup complete +2026-01-10 18:57:48,707 INFO apscheduler.executors.default Running job "ScheduleService._execute_schedule (trigger: cron[month='*', day='*', day_of_week='*', hour='17', minute='0'], next run at: 2026-01-11 17:00:00 CET)" (scheduled at 2026-01-10 18:57:48.648346+01:00) +2026-01-10 18:57:48,710 INFO openscada_lite.modules.communication.manager.connector_manager [COMMAND] Sending command: TasmotaRelayDriver@RELAY_1_CMD = ON +2026-01-10 18:57:48,711 WARNING openscada_lite.modules.communication.manager.connector_manager Driver 'TasmotaRelayDriver' is not connected. Cannot send command. +2026-01-10 18:57:48,713 INFO openscada_lite.modules.communication.manager.connector_manager [COMMAND] Sending command: TasmotaRelayDriver@RELAY_2_CMD = ON +2026-01-10 18:57:48,714 WARNING openscada_lite.modules.communication.manager.connector_manager Driver 'TasmotaRelayDriver' is not connected. Cannot send command. +2026-01-10 18:57:48,720 INFO apscheduler.executors.default Job "ScheduleService._execute_schedule (trigger: cron[month='*', day='*', day_of_week='*', hour='17', minute='0'], next run at: 2026-01-11 17:00:00 CET)" executed successfully +2026-01-10 18:57:48,724 INFO apscheduler.executors.default Running job "ScheduleService._execute_schedule (trigger: cron[month='*', day='*', day_of_week='*', hour='23', minute='0'], next run at: 2026-01-10 23:00:00 CET)" (scheduled at 2026-01-10 18:57:48.649230+01:00) +2026-01-10 18:57:48,727 INFO openscada_lite.modules.communication.manager.connector_manager [COMMAND] Sending command: TasmotaRelayDriver@RELAY_1_CMD = OFF +2026-01-10 18:57:48,729 WARNING openscada_lite.modules.communication.manager.connector_manager Driver 'TasmotaRelayDriver' is not connected. Cannot send command. +2026-01-10 18:57:48,735 INFO openscada_lite.modules.communication.manager.connector_manager [COMMAND] Sending command: TasmotaRelayDriver@RELAY_2_CMD = OFF +2026-01-10 18:57:48,738 WARNING openscada_lite.modules.communication.manager.connector_manager Driver 'TasmotaRelayDriver' is not connected. Cannot send command. +2026-01-10 18:57:48,740 INFO apscheduler.executors.default Job "ScheduleService._execute_schedule (trigger: cron[month='*', day='*', day_of_week='*', hour='23', minute='0'], next run at: 2026-01-10 23:00:00 CET)" executed successfully +2026-01-10 19:04:31,546 INFO openscada_lite.app [LIFESPAN] Shutdown complete +2026-01-10 19:04:36,473 INFO openscada_lite.app [LIFESPAN] Startup starting... +2026-01-10 19:04:37,140 ERROR openscada_lite.app [LIFESPAN] Error loading modules: No module named 'openscada_lite.common.utils.AsyncUtils' +Traceback (most recent call last): + File "D:\git-extern\python-scada\src\openscada_lite\app.py", line 113, in lifespan + await module_loader(system_config, sio, event_bus, app) + File "D:\git-extern\python-scada\src\openscada_lite\modules\loader.py", line 39, in module_loader + importlib.import_module(f"{base_path}.service"), f"{class_prefix}Service" + ~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^ + File "C:\Python313\Lib\importlib\__init__.py", line 88, in import_module + return _bootstrap._gcd_import(name[level:], package, level) + ~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "", line 1387, in _gcd_import + File "", line 1360, in _find_and_load + File "", line 1331, in _find_and_load_unlocked + File "", line 935, in _load_unlocked + File "", line 1026, in exec_module + File "", line 488, in _call_with_frames_removed + File "D:\git-extern\python-scada\src\openscada_lite\modules\communication\service.py", line 22, in + from openscada_lite.modules.communication.manager.connector_manager import ( + ...<2 lines>... + ) + File "D:\git-extern\python-scada\src\openscada_lite\modules\communication\manager\connector_manager.py", line 18, in + from openscada_lite.modules.communication.drivers.test.test_driver import TestDriver + File "D:\git-extern\python-scada\src\openscada_lite\modules\communication\drivers\__init__.py", line 34, in + from openscada_lite.modules.communication.drivers.mqtt_tasmota_driver import ( + MQTTTasmotaRelayDriver + ) + File "D:\git-extern\python-scada\src\openscada_lite\modules\communication\drivers\mqtt_tasmota_driver.py", line 26, in + from openscada_lite.common.utils.AsyncUtils import safe_call_listener +ModuleNotFoundError: No module named 'openscada_lite.common.utils.AsyncUtils' +2026-01-10 19:04:37,144 INFO openscada_lite.app [LIFESPAN] Startup complete +2026-01-10 19:05:44,566 INFO openscada_lite.app [LIFESPAN] Shutdown complete +2026-01-10 19:05:47,405 INFO openscada_lite.app [LIFESPAN] Startup starting... +2026-01-10 19:05:48,110 INFO openscada_lite.modules.communication.drivers.opc_ua_server_driver [OPCUA] Will expose 6 nodes on connect() +2026-01-10 19:05:48,111 INFO openscada_lite.modules.communication.drivers.test.test_driver [INIT] Creating TestDriver CameraDriver +2026-01-10 19:05:48,111 INFO openscada_lite.modules.communication.drivers.test.test_driver [INIT] Creating TestDriver WaterTank +2026-01-10 19:05:48,112 INFO openscada_lite.modules.communication.drivers.test.test_driver [INIT] Creating TestDriver StressTest +2026-01-10 19:05:48,113 INFO openscada_lite.modules.communication.drivers.test.test_driver [INIT] Creating TestDriver TrainTestDriver +2026-01-10 19:05:48,325 INFO apscheduler.scheduler Adding job tentatively -- it will be properly scheduled when the scheduler starts +2026-01-10 19:05:48,326 INFO apscheduler.scheduler Adding job tentatively -- it will be properly scheduled when the scheduler starts +2026-01-10 19:05:48,327 INFO apscheduler.scheduler Added job "ScheduleService._execute_schedule" to job store "default" +2026-01-10 19:05:48,328 INFO apscheduler.scheduler Added job "ScheduleService._execute_schedule" to job store "default" +2026-01-10 19:05:48,328 INFO apscheduler.scheduler Scheduler started +2026-01-10 19:05:48,352 INFO openscada_lite.modules.rule.manager.rule_manager Initializing RuleEngine with datapoint types: ['BOOL', 'CAMERA_POSITION', 'LEVEL', 'OPENED_CLOSED', 'OPEN_CLOSE_CMD', 'PRESSURE', 'START_STOP', 'START_STOP_CMD', 'SWITCH_CONTROL', 'SWITCH_CONTROL_CMD', 'TEMPERATURE', 'ON_OFF'] +2026-01-10 19:05:48,382 INFO openscada_lite.app [LIFESPAN] Startup complete +2026-01-10 19:05:48,383 INFO apscheduler.executors.default Running job "ScheduleService._execute_schedule (trigger: cron[month='*', day='*', day_of_week='*', hour='17', minute='0'], next run at: 2026-01-11 17:00:00 CET)" (scheduled at 2026-01-10 19:05:48.324955+01:00) +2026-01-10 19:05:48,384 INFO openscada_lite.modules.communication.manager.connector_manager [COMMAND] Sending command: TasmotaRelayDriver@RELAY_1_CMD = ON +2026-01-10 19:05:48,384 WARNING openscada_lite.modules.communication.manager.connector_manager Driver 'TasmotaRelayDriver' is not connected. Cannot send command. +2026-01-10 19:05:48,385 INFO openscada_lite.modules.communication.manager.connector_manager [COMMAND] Sending command: TasmotaRelayDriver@RELAY_2_CMD = ON +2026-01-10 19:05:48,385 WARNING openscada_lite.modules.communication.manager.connector_manager Driver 'TasmotaRelayDriver' is not connected. Cannot send command. +2026-01-10 19:05:48,386 INFO apscheduler.executors.default Job "ScheduleService._execute_schedule (trigger: cron[month='*', day='*', day_of_week='*', hour='17', minute='0'], next run at: 2026-01-11 17:00:00 CET)" executed successfully +2026-01-10 19:05:48,386 INFO apscheduler.executors.default Running job "ScheduleService._execute_schedule (trigger: cron[month='*', day='*', day_of_week='*', hour='23', minute='0'], next run at: 2026-01-10 23:00:00 CET)" (scheduled at 2026-01-10 19:05:48.325936+01:00) +2026-01-10 19:05:48,387 INFO openscada_lite.modules.communication.manager.connector_manager [COMMAND] Sending command: TasmotaRelayDriver@RELAY_1_CMD = OFF +2026-01-10 19:05:48,387 WARNING openscada_lite.modules.communication.manager.connector_manager Driver 'TasmotaRelayDriver' is not connected. Cannot send command. +2026-01-10 19:05:48,388 INFO openscada_lite.modules.communication.manager.connector_manager [COMMAND] Sending command: TasmotaRelayDriver@RELAY_2_CMD = OFF +2026-01-10 19:05:48,388 WARNING openscada_lite.modules.communication.manager.connector_manager Driver 'TasmotaRelayDriver' is not connected. Cannot send command. +2026-01-10 19:05:48,389 INFO apscheduler.executors.default Job "ScheduleService._execute_schedule (trigger: cron[month='*', day='*', day_of_week='*', hour='23', minute='0'], next run at: 2026-01-10 23:00:00 CET)" executed successfully +2026-01-10 19:07:26,779 INFO openscada_lite.app [LIFESPAN] Shutdown complete +2026-01-10 19:07:39,212 INFO openscada_lite.app [LIFESPAN] Startup starting... +2026-01-10 19:07:40,208 INFO openscada_lite.modules.communication.drivers.opc_ua_server_driver [OPCUA] Will expose 6 nodes on connect() +2026-01-10 19:07:40,208 INFO openscada_lite.modules.communication.drivers.test.test_driver [INIT] Creating TestDriver CameraDriver +2026-01-10 19:07:40,209 INFO openscada_lite.modules.communication.drivers.test.test_driver [INIT] Creating TestDriver WaterTank +2026-01-10 19:07:40,210 INFO openscada_lite.modules.communication.drivers.test.test_driver [INIT] Creating TestDriver StressTest +2026-01-10 19:07:40,212 INFO openscada_lite.modules.communication.drivers.test.test_driver [INIT] Creating TestDriver TrainTestDriver +2026-01-10 19:07:40,382 INFO apscheduler.scheduler Adding job tentatively -- it will be properly scheduled when the scheduler starts +2026-01-10 19:07:40,383 INFO apscheduler.scheduler Adding job tentatively -- it will be properly scheduled when the scheduler starts +2026-01-10 19:07:40,385 INFO apscheduler.scheduler Added job "ScheduleService._execute_schedule" to job store "default" +2026-01-10 19:07:40,385 INFO apscheduler.scheduler Added job "ScheduleService._execute_schedule" to job store "default" +2026-01-10 19:07:40,386 INFO apscheduler.scheduler Scheduler started +2026-01-10 19:07:40,429 INFO openscada_lite.modules.rule.manager.rule_manager Initializing RuleEngine with datapoint types: ['BOOL', 'CAMERA_POSITION', 'LEVEL', 'OPENED_CLOSED', 'OPEN_CLOSE_CMD', 'PRESSURE', 'START_STOP', 'START_STOP_CMD', 'SWITCH_CONTROL', 'SWITCH_CONTROL_CMD', 'TEMPERATURE', 'ON_OFF'] +2026-01-10 19:07:40,447 INFO openscada_lite.app [LIFESPAN] Startup complete +2026-01-10 19:07:40,448 INFO apscheduler.executors.default Running job "ScheduleService._execute_schedule (trigger: cron[month='*', day='*', day_of_week='*', hour='17', minute='0'], next run at: 2026-01-11 17:00:00 CET)" (scheduled at 2026-01-10 19:07:40.382578+01:00) +2026-01-10 19:07:40,450 INFO openscada_lite.modules.communication.manager.connector_manager [COMMAND] Sending command: TasmotaRelayDriver@RELAY_1_CMD = ON +2026-01-10 19:07:40,450 WARNING openscada_lite.modules.communication.manager.connector_manager Driver 'TasmotaRelayDriver' is not connected. Cannot send command. +2026-01-10 19:07:40,451 INFO openscada_lite.modules.communication.manager.connector_manager [COMMAND] Sending command: TasmotaRelayDriver@RELAY_2_CMD = ON +2026-01-10 19:07:40,451 WARNING openscada_lite.modules.communication.manager.connector_manager Driver 'TasmotaRelayDriver' is not connected. Cannot send command. +2026-01-10 19:07:40,452 INFO apscheduler.executors.default Job "ScheduleService._execute_schedule (trigger: cron[month='*', day='*', day_of_week='*', hour='17', minute='0'], next run at: 2026-01-11 17:00:00 CET)" executed successfully +2026-01-10 19:07:40,453 INFO apscheduler.executors.default Running job "ScheduleService._execute_schedule (trigger: cron[month='*', day='*', day_of_week='*', hour='23', minute='0'], next run at: 2026-01-10 23:00:00 CET)" (scheduled at 2026-01-10 19:07:40.383298+01:00) +2026-01-10 19:07:40,453 INFO openscada_lite.modules.communication.manager.connector_manager [COMMAND] Sending command: TasmotaRelayDriver@RELAY_1_CMD = OFF +2026-01-10 19:07:40,454 WARNING openscada_lite.modules.communication.manager.connector_manager Driver 'TasmotaRelayDriver' is not connected. Cannot send command. +2026-01-10 19:07:40,454 INFO openscada_lite.modules.communication.manager.connector_manager [COMMAND] Sending command: TasmotaRelayDriver@RELAY_2_CMD = OFF +2026-01-10 19:07:40,455 WARNING openscada_lite.modules.communication.manager.connector_manager Driver 'TasmotaRelayDriver' is not connected. Cannot send command. +2026-01-10 19:07:40,456 INFO apscheduler.executors.default Job "ScheduleService._execute_schedule (trigger: cron[month='*', day='*', day_of_week='*', hour='23', minute='0'], next run at: 2026-01-10 23:00:00 CET)" executed successfully +2026-01-10 19:08:34,641 INFO openscada_lite.app [LIFESPAN] Startup starting... +2026-01-10 19:08:35,310 INFO openscada_lite.modules.communication.drivers.opc_ua_server_driver [OPCUA] Will expose 6 nodes on connect() +2026-01-10 19:08:35,311 INFO openscada_lite.modules.communication.drivers.test.test_driver [INIT] Creating TestDriver CameraDriver +2026-01-10 19:08:35,311 INFO openscada_lite.modules.communication.drivers.test.test_driver [INIT] Creating TestDriver WaterTank +2026-01-10 19:08:35,311 INFO openscada_lite.modules.communication.drivers.test.test_driver [INIT] Creating TestDriver StressTest +2026-01-10 19:08:35,314 INFO openscada_lite.modules.communication.drivers.test.test_driver [INIT] Creating TestDriver TrainTestDriver +2026-01-10 19:08:35,450 INFO apscheduler.scheduler Adding job tentatively -- it will be properly scheduled when the scheduler starts +2026-01-10 19:08:35,451 INFO apscheduler.scheduler Adding job tentatively -- it will be properly scheduled when the scheduler starts +2026-01-10 19:08:35,453 INFO apscheduler.scheduler Added job "ScheduleService._execute_schedule" to job store "default" +2026-01-10 19:08:35,454 INFO apscheduler.scheduler Added job "ScheduleService._execute_schedule" to job store "default" +2026-01-10 19:08:35,454 INFO apscheduler.scheduler Scheduler started +2026-01-10 19:08:35,482 INFO openscada_lite.modules.rule.manager.rule_manager Initializing RuleEngine with datapoint types: ['BOOL', 'CAMERA_POSITION', 'LEVEL', 'OPENED_CLOSED', 'OPEN_CLOSE_CMD', 'PRESSURE', 'START_STOP', 'START_STOP_CMD', 'SWITCH_CONTROL', 'SWITCH_CONTROL_CMD', 'TEMPERATURE', 'ON_OFF'] +2026-01-10 19:08:35,496 INFO openscada_lite.app [LIFESPAN] Startup complete +2026-01-10 19:08:35,497 INFO apscheduler.executors.default Running job "ScheduleService._execute_schedule (trigger: cron[month='*', day='*', day_of_week='*', hour='17', minute='0'], next run at: 2026-01-11 17:00:00 CET)" (scheduled at 2026-01-10 19:08:35.450030+01:00) +2026-01-10 19:08:35,498 INFO openscada_lite.modules.communication.manager.connector_manager [COMMAND] Sending command: TasmotaRelayDriver@RELAY_1_CMD = ON +2026-01-10 19:08:35,498 WARNING openscada_lite.modules.communication.manager.connector_manager Driver 'TasmotaRelayDriver' is not connected. Cannot send command. +2026-01-10 19:08:35,499 INFO openscada_lite.modules.communication.manager.connector_manager [COMMAND] Sending command: TasmotaRelayDriver@RELAY_2_CMD = ON +2026-01-10 19:08:35,500 WARNING openscada_lite.modules.communication.manager.connector_manager Driver 'TasmotaRelayDriver' is not connected. Cannot send command. +2026-01-10 19:08:35,501 INFO apscheduler.executors.default Job "ScheduleService._execute_schedule (trigger: cron[month='*', day='*', day_of_week='*', hour='17', minute='0'], next run at: 2026-01-11 17:00:00 CET)" executed successfully +2026-01-10 19:08:35,501 INFO apscheduler.executors.default Running job "ScheduleService._execute_schedule (trigger: cron[month='*', day='*', day_of_week='*', hour='23', minute='0'], next run at: 2026-01-10 23:00:00 CET)" (scheduled at 2026-01-10 19:08:35.450901+01:00) +2026-01-10 19:08:35,502 INFO openscada_lite.modules.communication.manager.connector_manager [COMMAND] Sending command: TasmotaRelayDriver@RELAY_1_CMD = OFF +2026-01-10 19:08:35,502 WARNING openscada_lite.modules.communication.manager.connector_manager Driver 'TasmotaRelayDriver' is not connected. Cannot send command. +2026-01-10 19:08:35,503 INFO openscada_lite.modules.communication.manager.connector_manager [COMMAND] Sending command: TasmotaRelayDriver@RELAY_2_CMD = OFF +2026-01-10 19:08:35,503 WARNING openscada_lite.modules.communication.manager.connector_manager Driver 'TasmotaRelayDriver' is not connected. Cannot send command. +2026-01-10 19:08:35,504 INFO apscheduler.executors.default Job "ScheduleService._execute_schedule (trigger: cron[month='*', day='*', day_of_week='*', hour='23', minute='0'], next run at: 2026-01-10 23:00:00 CET)" executed successfully +2026-01-10 19:08:59,339 INFO openscada_lite.app [LIFESPAN] Shutdown complete +2026-01-10 19:09:02,531 INFO openscada_lite.app [LIFESPAN] Startup starting... +2026-01-10 19:09:03,460 INFO openscada_lite.modules.communication.drivers.opc_ua_server_driver [OPCUA] Will expose 6 nodes on connect() +2026-01-10 19:09:03,460 INFO openscada_lite.modules.communication.drivers.test.test_driver [INIT] Creating TestDriver CameraDriver +2026-01-10 19:09:03,461 INFO openscada_lite.modules.communication.drivers.test.test_driver [INIT] Creating TestDriver WaterTank +2026-01-10 19:09:03,461 INFO openscada_lite.modules.communication.drivers.test.test_driver [INIT] Creating TestDriver StressTest +2026-01-10 19:09:03,464 INFO openscada_lite.modules.communication.drivers.test.test_driver [INIT] Creating TestDriver TrainTestDriver +2026-01-10 19:09:03,618 INFO apscheduler.scheduler Adding job tentatively -- it will be properly scheduled when the scheduler starts +2026-01-10 19:09:03,619 INFO apscheduler.scheduler Adding job tentatively -- it will be properly scheduled when the scheduler starts +2026-01-10 19:09:03,621 INFO apscheduler.scheduler Added job "ScheduleService._execute_schedule" to job store "default" +2026-01-10 19:09:03,621 INFO apscheduler.scheduler Added job "ScheduleService._execute_schedule" to job store "default" +2026-01-10 19:09:03,622 INFO apscheduler.scheduler Scheduler started +2026-01-10 19:09:03,651 INFO openscada_lite.modules.rule.manager.rule_manager Initializing RuleEngine with datapoint types: ['BOOL', 'CAMERA_POSITION', 'LEVEL', 'OPENED_CLOSED', 'OPEN_CLOSE_CMD', 'PRESSURE', 'START_STOP', 'START_STOP_CMD', 'SWITCH_CONTROL', 'SWITCH_CONTROL_CMD', 'TEMPERATURE', 'ON_OFF'] +2026-01-10 19:09:03,667 INFO openscada_lite.app [LIFESPAN] Startup complete +2026-01-10 19:09:03,668 INFO apscheduler.executors.default Running job "ScheduleService._execute_schedule (trigger: cron[month='*', day='*', day_of_week='*', hour='17', minute='0'], next run at: 2026-01-11 17:00:00 CET)" (scheduled at 2026-01-10 19:09:03.618038+01:00) +2026-01-10 19:09:03,669 INFO openscada_lite.modules.communication.manager.connector_manager [COMMAND] Sending command: TasmotaRelayDriver@RELAY_1_CMD = ON +2026-01-10 19:09:03,670 WARNING openscada_lite.modules.communication.manager.connector_manager Driver 'TasmotaRelayDriver' is not connected. Cannot send command. +2026-01-10 19:09:03,671 INFO openscada_lite.modules.communication.manager.connector_manager [COMMAND] Sending command: TasmotaRelayDriver@RELAY_2_CMD = ON +2026-01-10 19:09:03,671 WARNING openscada_lite.modules.communication.manager.connector_manager Driver 'TasmotaRelayDriver' is not connected. Cannot send command. +2026-01-10 19:09:03,671 INFO apscheduler.executors.default Job "ScheduleService._execute_schedule (trigger: cron[month='*', day='*', day_of_week='*', hour='17', minute='0'], next run at: 2026-01-11 17:00:00 CET)" executed successfully +2026-01-10 19:09:03,672 INFO apscheduler.executors.default Running job "ScheduleService._execute_schedule (trigger: cron[month='*', day='*', day_of_week='*', hour='23', minute='0'], next run at: 2026-01-10 23:00:00 CET)" (scheduled at 2026-01-10 19:09:03.618991+01:00) +2026-01-10 19:09:03,673 INFO openscada_lite.modules.communication.manager.connector_manager [COMMAND] Sending command: TasmotaRelayDriver@RELAY_1_CMD = OFF +2026-01-10 19:09:03,673 WARNING openscada_lite.modules.communication.manager.connector_manager Driver 'TasmotaRelayDriver' is not connected. Cannot send command. +2026-01-10 19:09:03,674 INFO openscada_lite.modules.communication.manager.connector_manager [COMMAND] Sending command: TasmotaRelayDriver@RELAY_2_CMD = OFF +2026-01-10 19:09:03,674 WARNING openscada_lite.modules.communication.manager.connector_manager Driver 'TasmotaRelayDriver' is not connected. Cannot send command. +2026-01-10 19:09:03,675 INFO apscheduler.executors.default Job "ScheduleService._execute_schedule (trigger: cron[month='*', day='*', day_of_week='*', hour='23', minute='0'], next run at: 2026-01-10 23:00:00 CET)" executed successfully +2026-01-10 19:11:53,472 INFO openscada_lite.app [LIFESPAN] Shutdown complete +2026-01-10 19:11:56,618 INFO openscada_lite.app [LIFESPAN] Startup starting... +2026-01-10 19:11:57,316 INFO openscada_lite.modules.communication.drivers.opc_ua_server_driver [OPCUA] Will expose 6 nodes on connect() +2026-01-10 19:11:57,317 INFO openscada_lite.modules.communication.drivers.test.test_driver [INIT] Creating TestDriver CameraDriver +2026-01-10 19:11:57,317 INFO openscada_lite.modules.communication.drivers.test.test_driver [INIT] Creating TestDriver WaterTank +2026-01-10 19:11:57,318 INFO openscada_lite.modules.communication.drivers.test.test_driver [INIT] Creating TestDriver StressTest +2026-01-10 19:11:57,319 INFO openscada_lite.modules.communication.drivers.test.test_driver [INIT] Creating TestDriver TrainTestDriver +2026-01-10 19:11:57,446 INFO apscheduler.scheduler Adding job tentatively -- it will be properly scheduled when the scheduler starts +2026-01-10 19:11:57,447 INFO apscheduler.scheduler Adding job tentatively -- it will be properly scheduled when the scheduler starts +2026-01-10 19:11:57,448 INFO apscheduler.scheduler Added job "ScheduleService._execute_schedule" to job store "default" +2026-01-10 19:11:57,449 INFO apscheduler.scheduler Added job "ScheduleService._execute_schedule" to job store "default" +2026-01-10 19:11:57,449 INFO apscheduler.scheduler Scheduler started +2026-01-10 19:11:57,472 INFO openscada_lite.modules.rule.manager.rule_manager Initializing RuleEngine with datapoint types: ['BOOL', 'CAMERA_POSITION', 'LEVEL', 'OPENED_CLOSED', 'OPEN_CLOSE_CMD', 'PRESSURE', 'START_STOP', 'START_STOP_CMD', 'SWITCH_CONTROL', 'SWITCH_CONTROL_CMD', 'TEMPERATURE', 'ON_OFF'] +2026-01-10 19:11:57,483 INFO openscada_lite.app [LIFESPAN] Startup complete +2026-01-10 19:11:57,484 INFO apscheduler.executors.default Running job "ScheduleService._execute_schedule (trigger: cron[month='*', day='*', day_of_week='*', hour='17', minute='0'], next run at: 2026-01-11 17:00:00 CET)" (scheduled at 2026-01-10 19:11:57.446500+01:00) +2026-01-10 19:11:57,485 INFO openscada_lite.modules.communication.manager.connector_manager [COMMAND] Sending command: TasmotaRelayDriver@RELAY_1_CMD = ON +2026-01-10 19:11:57,486 WARNING openscada_lite.modules.communication.manager.connector_manager Driver 'TasmotaRelayDriver' is not connected. Cannot send command. +2026-01-10 19:11:57,486 INFO openscada_lite.modules.communication.manager.connector_manager [COMMAND] Sending command: TasmotaRelayDriver@RELAY_2_CMD = ON +2026-01-10 19:11:57,487 WARNING openscada_lite.modules.communication.manager.connector_manager Driver 'TasmotaRelayDriver' is not connected. Cannot send command. +2026-01-10 19:11:57,487 INFO apscheduler.executors.default Job "ScheduleService._execute_schedule (trigger: cron[month='*', day='*', day_of_week='*', hour='17', minute='0'], next run at: 2026-01-11 17:00:00 CET)" executed successfully +2026-01-10 19:11:57,487 INFO apscheduler.executors.default Running job "ScheduleService._execute_schedule (trigger: cron[month='*', day='*', day_of_week='*', hour='23', minute='0'], next run at: 2026-01-10 23:00:00 CET)" (scheduled at 2026-01-10 19:11:57.447250+01:00) +2026-01-10 19:11:57,488 INFO openscada_lite.modules.communication.manager.connector_manager [COMMAND] Sending command: TasmotaRelayDriver@RELAY_1_CMD = OFF +2026-01-10 19:11:57,488 WARNING openscada_lite.modules.communication.manager.connector_manager Driver 'TasmotaRelayDriver' is not connected. Cannot send command. +2026-01-10 19:11:57,489 INFO openscada_lite.modules.communication.manager.connector_manager [COMMAND] Sending command: TasmotaRelayDriver@RELAY_2_CMD = OFF +2026-01-10 19:11:57,489 WARNING openscada_lite.modules.communication.manager.connector_manager Driver 'TasmotaRelayDriver' is not connected. Cannot send command. +2026-01-10 19:11:57,490 INFO apscheduler.executors.default Job "ScheduleService._execute_schedule (trigger: cron[month='*', day='*', day_of_week='*', hour='23', minute='0'], next run at: 2026-01-10 23:00:00 CET)" executed successfully +2026-01-10 19:19:45,381 INFO openscada_lite.app [LIFESPAN] Shutdown complete +2026-01-10 19:19:50,707 INFO openscada_lite.app [LIFESPAN] Startup starting... +2026-01-10 19:19:51,832 INFO openscada_lite.modules.communication.drivers.opc_ua_server_driver [OPCUA] Will expose 6 nodes on connect() +2026-01-10 19:19:51,833 INFO openscada_lite.modules.communication.drivers.test.test_driver [INIT] Creating TestDriver CameraDriver +2026-01-10 19:19:51,833 INFO openscada_lite.modules.communication.drivers.test.test_driver [INIT] Creating TestDriver WaterTank +2026-01-10 19:19:51,834 INFO openscada_lite.modules.communication.drivers.test.test_driver [INIT] Creating TestDriver StressTest +2026-01-10 19:19:51,836 INFO openscada_lite.modules.communication.drivers.test.test_driver [INIT] Creating TestDriver TrainTestDriver +2026-01-10 19:19:52,035 INFO apscheduler.scheduler Adding job tentatively -- it will be properly scheduled when the scheduler starts +2026-01-10 19:19:52,036 INFO apscheduler.scheduler Adding job tentatively -- it will be properly scheduled when the scheduler starts +2026-01-10 19:19:52,039 INFO apscheduler.scheduler Added job "ScheduleService._execute_schedule" to job store "default" +2026-01-10 19:19:52,040 INFO apscheduler.scheduler Added job "ScheduleService._execute_schedule" to job store "default" +2026-01-10 19:19:52,040 INFO apscheduler.scheduler Scheduler started +2026-01-10 19:19:52,068 INFO openscada_lite.modules.rule.manager.rule_manager Initializing RuleEngine with datapoint types: ['BOOL', 'CAMERA_POSITION', 'LEVEL', 'OPENED_CLOSED', 'OPEN_CLOSE_CMD', 'PRESSURE', 'START_STOP', 'START_STOP_CMD', 'SWITCH_CONTROL', 'SWITCH_CONTROL_CMD', 'TEMPERATURE', 'ON_OFF'] +2026-01-10 19:19:52,084 INFO openscada_lite.app [LIFESPAN] Startup complete +2026-01-10 19:19:52,085 INFO apscheduler.executors.default Running job "ScheduleService._execute_schedule (trigger: cron[month='*', day='*', day_of_week='*', hour='17', minute='0'], next run at: 2026-01-11 17:00:00 CET)" (scheduled at 2026-01-10 19:19:52.035167+01:00) +2026-01-10 19:19:52,086 INFO openscada_lite.modules.communication.manager.connector_manager [COMMAND] Sending command: TasmotaRelayDriver@RELAY_1_CMD = ON +2026-01-10 19:19:52,086 WARNING openscada_lite.modules.communication.manager.connector_manager Driver 'TasmotaRelayDriver' is not connected. Cannot send command. +2026-01-10 19:19:52,089 INFO openscada_lite.modules.communication.manager.connector_manager [COMMAND] Sending command: TasmotaRelayDriver@RELAY_2_CMD = ON +2026-01-10 19:19:52,090 WARNING openscada_lite.modules.communication.manager.connector_manager Driver 'TasmotaRelayDriver' is not connected. Cannot send command. +2026-01-10 19:19:52,091 INFO apscheduler.executors.default Job "ScheduleService._execute_schedule (trigger: cron[month='*', day='*', day_of_week='*', hour='17', minute='0'], next run at: 2026-01-11 17:00:00 CET)" executed successfully +2026-01-10 19:19:52,092 INFO apscheduler.executors.default Running job "ScheduleService._execute_schedule (trigger: cron[month='*', day='*', day_of_week='*', hour='23', minute='0'], next run at: 2026-01-10 23:00:00 CET)" (scheduled at 2026-01-10 19:19:52.036047+01:00) +2026-01-10 19:19:52,092 INFO openscada_lite.modules.communication.manager.connector_manager [COMMAND] Sending command: TasmotaRelayDriver@RELAY_1_CMD = OFF +2026-01-10 19:19:52,092 WARNING openscada_lite.modules.communication.manager.connector_manager Driver 'TasmotaRelayDriver' is not connected. Cannot send command. +2026-01-10 19:19:52,093 INFO openscada_lite.modules.communication.manager.connector_manager [COMMAND] Sending command: TasmotaRelayDriver@RELAY_2_CMD = OFF +2026-01-10 19:19:52,093 WARNING openscada_lite.modules.communication.manager.connector_manager Driver 'TasmotaRelayDriver' is not connected. Cannot send command. +2026-01-10 19:19:52,094 INFO apscheduler.executors.default Job "ScheduleService._execute_schedule (trigger: cron[month='*', day='*', day_of_week='*', hour='23', minute='0'], next run at: 2026-01-10 23:00:00 CET)" executed successfully +2026-01-10 19:23:11,659 INFO openscada_lite.app [LIFESPAN] Shutdown complete +2026-01-10 19:23:16,005 INFO openscada_lite.app [LIFESPAN] Startup starting... +2026-01-10 19:23:16,776 INFO openscada_lite.modules.communication.drivers.opc_ua_server_driver [OPCUA] Will expose 6 nodes on connect() +2026-01-10 19:23:16,776 INFO openscada_lite.modules.communication.drivers.test.test_driver [INIT] Creating TestDriver CameraDriver +2026-01-10 19:23:16,777 INFO openscada_lite.modules.communication.drivers.test.test_driver [INIT] Creating TestDriver WaterTank +2026-01-10 19:23:16,777 INFO openscada_lite.modules.communication.drivers.test.test_driver [INIT] Creating TestDriver StressTest +2026-01-10 19:23:16,779 INFO openscada_lite.modules.communication.drivers.test.test_driver [INIT] Creating TestDriver TrainTestDriver +2026-01-10 19:23:16,924 INFO apscheduler.scheduler Adding job tentatively -- it will be properly scheduled when the scheduler starts +2026-01-10 19:23:16,925 INFO apscheduler.scheduler Adding job tentatively -- it will be properly scheduled when the scheduler starts +2026-01-10 19:23:16,927 INFO apscheduler.scheduler Added job "ScheduleService._execute_schedule" to job store "default" +2026-01-10 19:23:16,927 INFO apscheduler.scheduler Added job "ScheduleService._execute_schedule" to job store "default" +2026-01-10 19:23:16,928 INFO apscheduler.scheduler Scheduler started +2026-01-10 19:23:16,953 INFO openscada_lite.modules.rule.manager.rule_manager Initializing RuleEngine with datapoint types: ['BOOL', 'CAMERA_POSITION', 'LEVEL', 'OPENED_CLOSED', 'OPEN_CLOSE_CMD', 'PRESSURE', 'START_STOP', 'START_STOP_CMD', 'SWITCH_CONTROL', 'SWITCH_CONTROL_CMD', 'TEMPERATURE', 'ON_OFF'] +2026-01-10 19:23:16,965 INFO openscada_lite.app [LIFESPAN] Startup complete +2026-01-10 19:23:16,967 INFO apscheduler.executors.default Running job "ScheduleService._execute_schedule (trigger: cron[month='*', day='*', day_of_week='*', hour='17', minute='0'], next run at: 2026-01-11 17:00:00 CET)" (scheduled at 2026-01-10 19:23:16.924453+01:00) +2026-01-10 19:23:16,967 INFO openscada_lite.modules.communication.manager.connector_manager [COMMAND] Sending command: TasmotaRelayDriver@RELAY_1_CMD = ON +2026-01-10 19:23:16,968 WARNING openscada_lite.modules.communication.manager.connector_manager Driver 'TasmotaRelayDriver' is not connected. Cannot send command. +2026-01-10 19:23:16,968 INFO openscada_lite.modules.communication.manager.connector_manager [COMMAND] Sending command: TasmotaRelayDriver@RELAY_2_CMD = ON +2026-01-10 19:23:16,969 WARNING openscada_lite.modules.communication.manager.connector_manager Driver 'TasmotaRelayDriver' is not connected. Cannot send command. +2026-01-10 19:23:16,969 INFO apscheduler.executors.default Job "ScheduleService._execute_schedule (trigger: cron[month='*', day='*', day_of_week='*', hour='17', minute='0'], next run at: 2026-01-11 17:00:00 CET)" executed successfully +2026-01-10 19:23:16,970 INFO apscheduler.executors.default Running job "ScheduleService._execute_schedule (trigger: cron[month='*', day='*', day_of_week='*', hour='23', minute='0'], next run at: 2026-01-10 23:00:00 CET)" (scheduled at 2026-01-10 19:23:16.925371+01:00) +2026-01-10 19:23:16,970 INFO openscada_lite.modules.communication.manager.connector_manager [COMMAND] Sending command: TasmotaRelayDriver@RELAY_1_CMD = OFF +2026-01-10 19:23:16,970 WARNING openscada_lite.modules.communication.manager.connector_manager Driver 'TasmotaRelayDriver' is not connected. Cannot send command. +2026-01-10 19:23:16,971 INFO openscada_lite.modules.communication.manager.connector_manager [COMMAND] Sending command: TasmotaRelayDriver@RELAY_2_CMD = OFF +2026-01-10 19:23:16,971 WARNING openscada_lite.modules.communication.manager.connector_manager Driver 'TasmotaRelayDriver' is not connected. Cannot send command. +2026-01-10 19:23:16,972 INFO apscheduler.executors.default Job "ScheduleService._execute_schedule (trigger: cron[month='*', day='*', day_of_week='*', hour='23', minute='0'], next run at: 2026-01-10 23:00:00 CET)" executed successfully +2026-01-10 19:24:19,814 INFO openscada_lite.app [LIFESPAN] Shutdown complete +2026-01-10 19:24:22,708 INFO openscada_lite.app [LIFESPAN] Startup starting... +2026-01-10 19:24:23,394 INFO openscada_lite.modules.communication.drivers.opc_ua_server_driver [OPCUA] Will expose 6 nodes on connect() +2026-01-10 19:24:23,395 INFO openscada_lite.modules.communication.drivers.test.test_driver [INIT] Creating TestDriver CameraDriver +2026-01-10 19:24:23,395 INFO openscada_lite.modules.communication.drivers.test.test_driver [INIT] Creating TestDriver WaterTank +2026-01-10 19:24:23,396 INFO openscada_lite.modules.communication.drivers.test.test_driver [INIT] Creating TestDriver StressTest +2026-01-10 19:24:23,397 INFO openscada_lite.modules.communication.drivers.test.test_driver [INIT] Creating TestDriver TrainTestDriver +2026-01-10 19:24:23,529 INFO apscheduler.scheduler Adding job tentatively -- it will be properly scheduled when the scheduler starts +2026-01-10 19:24:23,530 INFO apscheduler.scheduler Adding job tentatively -- it will be properly scheduled when the scheduler starts +2026-01-10 19:24:23,532 INFO apscheduler.scheduler Added job "ScheduleService._execute_schedule" to job store "default" +2026-01-10 19:24:23,532 INFO apscheduler.scheduler Added job "ScheduleService._execute_schedule" to job store "default" +2026-01-10 19:24:23,533 INFO apscheduler.scheduler Scheduler started +2026-01-10 19:24:23,566 INFO openscada_lite.modules.rule.manager.rule_manager Initializing RuleEngine with datapoint types: ['BOOL', 'CAMERA_POSITION', 'LEVEL', 'OPENED_CLOSED', 'OPEN_CLOSE_CMD', 'PRESSURE', 'START_STOP', 'START_STOP_CMD', 'SWITCH_CONTROL', 'SWITCH_CONTROL_CMD', 'TEMPERATURE', 'ON_OFF'] +2026-01-10 19:24:23,576 INFO openscada_lite.app [LIFESPAN] Startup complete +2026-01-10 19:24:23,578 INFO apscheduler.executors.default Running job "ScheduleService._execute_schedule (trigger: cron[month='*', day='*', day_of_week='*', hour='17', minute='0'], next run at: 2026-01-11 17:00:00 CET)" (scheduled at 2026-01-10 19:24:23.529097+01:00) +2026-01-10 19:24:23,578 INFO openscada_lite.modules.communication.manager.connector_manager [COMMAND] Sending command: TasmotaRelayDriver@RELAY_1_CMD = ON +2026-01-10 19:24:23,579 WARNING openscada_lite.modules.communication.manager.connector_manager Driver 'TasmotaRelayDriver' is not connected. Cannot send command. +2026-01-10 19:24:23,580 INFO openscada_lite.modules.communication.manager.connector_manager [COMMAND] Sending command: TasmotaRelayDriver@RELAY_2_CMD = ON +2026-01-10 19:24:23,581 WARNING openscada_lite.modules.communication.manager.connector_manager Driver 'TasmotaRelayDriver' is not connected. Cannot send command. +2026-01-10 19:24:23,582 INFO apscheduler.executors.default Job "ScheduleService._execute_schedule (trigger: cron[month='*', day='*', day_of_week='*', hour='17', minute='0'], next run at: 2026-01-11 17:00:00 CET)" executed successfully +2026-01-10 19:24:23,582 INFO apscheduler.executors.default Running job "ScheduleService._execute_schedule (trigger: cron[month='*', day='*', day_of_week='*', hour='23', minute='0'], next run at: 2026-01-10 23:00:00 CET)" (scheduled at 2026-01-10 19:24:23.529970+01:00) +2026-01-10 19:24:23,583 INFO openscada_lite.modules.communication.manager.connector_manager [COMMAND] Sending command: TasmotaRelayDriver@RELAY_1_CMD = OFF +2026-01-10 19:24:23,583 WARNING openscada_lite.modules.communication.manager.connector_manager Driver 'TasmotaRelayDriver' is not connected. Cannot send command. +2026-01-10 19:24:23,584 INFO openscada_lite.modules.communication.manager.connector_manager [COMMAND] Sending command: TasmotaRelayDriver@RELAY_2_CMD = OFF +2026-01-10 19:24:23,584 WARNING openscada_lite.modules.communication.manager.connector_manager Driver 'TasmotaRelayDriver' is not connected. Cannot send command. +2026-01-10 19:24:23,585 INFO apscheduler.executors.default Job "ScheduleService._execute_schedule (trigger: cron[month='*', day='*', day_of_week='*', hour='23', minute='0'], next run at: 2026-01-10 23:00:00 CET)" executed successfully +2026-01-10 19:25:25,955 INFO openscada_lite.app [LIFESPAN] Shutdown complete +2026-01-10 20:33:26,740 INFO openscada_lite.app [LIFESPAN] Startup starting... +2026-01-10 20:33:27,625 INFO openscada_lite.modules.communication.drivers.opc_ua_server_driver [OPCUA] Will expose 6 nodes on connect() +2026-01-10 20:33:27,625 INFO openscada_lite.modules.communication.drivers.test.test_driver [INIT] Creating TestDriver CameraDriver +2026-01-10 20:33:27,626 INFO openscada_lite.modules.communication.drivers.test.test_driver [INIT] Creating TestDriver WaterTank +2026-01-10 20:33:27,626 INFO openscada_lite.modules.communication.drivers.test.test_driver [INIT] Creating TestDriver StressTest +2026-01-10 20:33:27,629 INFO openscada_lite.modules.communication.drivers.test.test_driver [INIT] Creating TestDriver TrainTestDriver +2026-01-10 20:33:27,859 INFO apscheduler.scheduler Adding job tentatively -- it will be properly scheduled when the scheduler starts +2026-01-10 20:33:27,860 INFO apscheduler.scheduler Adding job tentatively -- it will be properly scheduled when the scheduler starts +2026-01-10 20:33:27,863 INFO apscheduler.scheduler Added job "ScheduleService._execute_schedule" to job store "default" +2026-01-10 20:33:27,864 INFO apscheduler.scheduler Added job "ScheduleService._execute_schedule" to job store "default" +2026-01-10 20:33:27,864 INFO apscheduler.scheduler Scheduler started +2026-01-10 20:33:27,891 INFO openscada_lite.modules.rule.manager.rule_manager Initializing RuleEngine with datapoint types: ['BOOL', 'CAMERA_POSITION', 'LEVEL', 'OPENED_CLOSED', 'OPEN_CLOSE_CMD', 'PRESSURE', 'START_STOP', 'START_STOP_CMD', 'SWITCH_CONTROL', 'SWITCH_CONTROL_CMD', 'TEMPERATURE', 'ON_OFF'] +2026-01-10 20:33:27,917 INFO openscada_lite.app [LIFESPAN] Startup complete +2026-01-10 20:33:27,918 INFO apscheduler.executors.default Running job "ScheduleService._execute_schedule (trigger: cron[month='*', day='*', day_of_week='*', hour='17', minute='0'], next run at: 2026-01-11 17:00:00 CET)" (scheduled at 2026-01-10 20:33:27.859674+01:00) +2026-01-10 20:33:27,918 INFO openscada_lite.modules.communication.manager.connector_manager [COMMAND] Sending command: TasmotaRelayDriver@RELAY_1_CMD = ON +2026-01-10 20:33:27,918 WARNING openscada_lite.modules.communication.manager.connector_manager Driver 'TasmotaRelayDriver' is not connected. Cannot send command. +2026-01-10 20:33:27,919 INFO openscada_lite.modules.communication.manager.connector_manager [COMMAND] Sending command: TasmotaRelayDriver@RELAY_2_CMD = ON +2026-01-10 20:33:27,919 WARNING openscada_lite.modules.communication.manager.connector_manager Driver 'TasmotaRelayDriver' is not connected. Cannot send command. +2026-01-10 20:33:27,920 INFO apscheduler.executors.default Job "ScheduleService._execute_schedule (trigger: cron[month='*', day='*', day_of_week='*', hour='17', minute='0'], next run at: 2026-01-11 17:00:00 CET)" executed successfully +2026-01-10 20:33:27,920 INFO apscheduler.executors.default Running job "ScheduleService._execute_schedule (trigger: cron[month='*', day='*', day_of_week='*', hour='23', minute='0'], next run at: 2026-01-10 23:00:00 CET)" (scheduled at 2026-01-10 20:33:27.860574+01:00) +2026-01-10 20:33:27,920 INFO openscada_lite.modules.communication.manager.connector_manager [COMMAND] Sending command: TasmotaRelayDriver@RELAY_1_CMD = OFF +2026-01-10 20:33:27,921 WARNING openscada_lite.modules.communication.manager.connector_manager Driver 'TasmotaRelayDriver' is not connected. Cannot send command. +2026-01-10 20:33:27,921 INFO openscada_lite.modules.communication.manager.connector_manager [COMMAND] Sending command: TasmotaRelayDriver@RELAY_2_CMD = OFF +2026-01-10 20:33:27,922 WARNING openscada_lite.modules.communication.manager.connector_manager Driver 'TasmotaRelayDriver' is not connected. Cannot send command. +2026-01-10 20:33:27,922 INFO apscheduler.executors.default Job "ScheduleService._execute_schedule (trigger: cron[month='*', day='*', day_of_week='*', hour='23', minute='0'], next run at: 2026-01-10 23:00:00 CET)" executed successfully +2026-01-10 20:34:45,522 INFO openscada_lite.modules.security.controller User admin logged in successfully +2026-01-10 20:46:04,637 INFO openscada_lite.app [LIFESPAN] Shutdown complete +2026-01-10 20:46:07,849 INFO openscada_lite.app [LIFESPAN] Startup starting... +2026-01-10 20:46:09,023 INFO openscada_lite.modules.communication.drivers.opc_ua_server_driver [OPCUA] Will expose 6 nodes on connect() +2026-01-10 20:46:09,023 INFO openscada_lite.modules.communication.drivers.test.test_driver [INIT] Creating TestDriver CameraDriver +2026-01-10 20:46:09,024 INFO openscada_lite.modules.communication.drivers.test.test_driver [INIT] Creating TestDriver WaterTank +2026-01-10 20:46:09,024 INFO openscada_lite.modules.communication.drivers.test.test_driver [INIT] Creating TestDriver StressTest +2026-01-10 20:46:09,026 INFO openscada_lite.modules.communication.drivers.test.test_driver [INIT] Creating TestDriver TrainTestDriver +2026-01-10 20:46:09,223 INFO apscheduler.scheduler Adding job tentatively -- it will be properly scheduled when the scheduler starts +2026-01-10 20:46:09,224 INFO apscheduler.scheduler Adding job tentatively -- it will be properly scheduled when the scheduler starts +2026-01-10 20:46:09,227 INFO apscheduler.scheduler Added job "ScheduleService._execute_schedule" to job store "default" +2026-01-10 20:46:09,227 INFO apscheduler.scheduler Added job "ScheduleService._execute_schedule" to job store "default" +2026-01-10 20:46:09,228 INFO apscheduler.scheduler Scheduler started +2026-01-10 20:46:09,259 INFO openscada_lite.modules.rule.manager.rule_manager Initializing RuleEngine with datapoint types: ['BOOL', 'CAMERA_POSITION', 'LEVEL', 'OPENED_CLOSED', 'OPEN_CLOSE_CMD', 'PRESSURE', 'START_STOP', 'START_STOP_CMD', 'SWITCH_CONTROL', 'SWITCH_CONTROL_CMD', 'TEMPERATURE', 'ON_OFF'] +2026-01-10 20:46:09,274 INFO openscada_lite.app [LIFESPAN] Startup complete +2026-01-10 20:46:09,277 INFO apscheduler.executors.default Running job "ScheduleService._execute_schedule (trigger: cron[month='*', day='*', day_of_week='*', hour='17', minute='0'], next run at: 2026-01-11 17:00:00 CET)" (scheduled at 2026-01-10 20:46:09.223207+01:00) +2026-01-10 20:46:09,278 INFO openscada_lite.modules.communication.manager.connector_manager [COMMAND] Sending command: TasmotaRelayDriver@RELAY_1_CMD = ON +2026-01-10 20:46:09,279 WARNING openscada_lite.modules.communication.manager.connector_manager Driver 'TasmotaRelayDriver' is not connected. Cannot send command. +2026-01-10 20:46:09,279 INFO openscada_lite.modules.communication.manager.connector_manager [COMMAND] Sending command: TasmotaRelayDriver@RELAY_2_CMD = ON +2026-01-10 20:46:09,280 WARNING openscada_lite.modules.communication.manager.connector_manager Driver 'TasmotaRelayDriver' is not connected. Cannot send command. +2026-01-10 20:46:09,281 INFO apscheduler.executors.default Job "ScheduleService._execute_schedule (trigger: cron[month='*', day='*', day_of_week='*', hour='17', minute='0'], next run at: 2026-01-11 17:00:00 CET)" executed successfully +2026-01-10 20:46:09,281 INFO apscheduler.executors.default Running job "ScheduleService._execute_schedule (trigger: cron[month='*', day='*', day_of_week='*', hour='23', minute='0'], next run at: 2026-01-10 23:00:00 CET)" (scheduled at 2026-01-10 20:46:09.224695+01:00) +2026-01-10 20:46:09,282 INFO openscada_lite.modules.communication.manager.connector_manager [COMMAND] Sending command: TasmotaRelayDriver@RELAY_1_CMD = OFF +2026-01-10 20:46:09,282 WARNING openscada_lite.modules.communication.manager.connector_manager Driver 'TasmotaRelayDriver' is not connected. Cannot send command. +2026-01-10 20:46:09,285 INFO openscada_lite.modules.communication.manager.connector_manager [COMMAND] Sending command: TasmotaRelayDriver@RELAY_2_CMD = OFF +2026-01-10 20:46:09,288 WARNING openscada_lite.modules.communication.manager.connector_manager Driver 'TasmotaRelayDriver' is not connected. Cannot send command. +2026-01-10 20:46:09,290 INFO apscheduler.executors.default Job "ScheduleService._execute_schedule (trigger: cron[month='*', day='*', day_of_week='*', hour='23', minute='0'], next run at: 2026-01-10 23:00:00 CET)" executed successfully +2026-01-10 20:46:34,190 INFO openscada_lite.modules.communication.manager.connector_manager [COMMAND] Sending command: TasmotaRelayDriver@RELAY_1_CMD = ON +2026-01-10 20:46:47,493 INFO openscada_lite.modules.communication.manager.connector_manager [COMMAND] Sending command: TasmotaRelayDriver@RELAY_2_CMD = ON +2026-01-10 20:47:16,991 INFO openscada_lite.modules.communication.manager.connector_manager [COMMAND] Sending command: TasmotaRelayDriver@RELAY_1_CMD = OFF +2026-01-10 20:47:23,904 INFO openscada_lite.modules.communication.manager.connector_manager [COMMAND] Sending command: TasmotaRelayDriver@RELAY_2_CMD = OFF +2026-01-10 20:59:25,698 INFO openscada_lite.app [LIFESPAN] Startup starting... +2026-01-10 20:59:26,289 INFO openscada_lite.modules.communication.drivers.opc_ua_server_driver [OPCUA] Will expose 6 nodes on connect() +2026-01-10 20:59:26,289 INFO openscada_lite.modules.communication.drivers.test.test_driver [INIT] Creating TestDriver CameraDriver +2026-01-10 20:59:26,290 INFO openscada_lite.modules.communication.drivers.test.test_driver [INIT] Creating TestDriver WaterTank +2026-01-10 20:59:26,290 INFO openscada_lite.modules.communication.drivers.test.test_driver [INIT] Creating TestDriver StressTest +2026-01-10 20:59:26,291 INFO openscada_lite.modules.communication.drivers.test.test_driver [INIT] Creating TestDriver TrainTestDriver +2026-01-10 20:59:26,410 INFO apscheduler.scheduler Adding job tentatively -- it will be properly scheduled when the scheduler starts +2026-01-10 20:59:26,411 INFO apscheduler.scheduler Adding job tentatively -- it will be properly scheduled when the scheduler starts +2026-01-10 20:59:26,412 INFO apscheduler.scheduler Added job "ScheduleService._execute_schedule" to job store "default" +2026-01-10 20:59:26,412 INFO apscheduler.scheduler Added job "ScheduleService._execute_schedule" to job store "default" +2026-01-10 20:59:26,413 INFO apscheduler.scheduler Scheduler started +2026-01-10 20:59:26,430 INFO openscada_lite.modules.rule.manager.rule_manager Initializing RuleEngine with datapoint types: ['BOOL', 'CAMERA_POSITION', 'LEVEL', 'OPENED_CLOSED', 'OPEN_CLOSE_CMD', 'PRESSURE', 'START_STOP', 'START_STOP_CMD', 'SWITCH_CONTROL', 'SWITCH_CONTROL_CMD', 'TEMPERATURE', 'ON_OFF'] +2026-01-10 20:59:26,437 INFO openscada_lite.app [LIFESPAN] Startup complete +2026-01-10 20:59:26,438 INFO apscheduler.executors.default Running job "ScheduleService._execute_schedule (trigger: cron[month='*', day='*', day_of_week='*', hour='17', minute='0'], next run at: 2026-01-11 17:00:00 CET)" (scheduled at 2026-01-10 20:59:26.410845+01:00) +2026-01-10 20:59:26,439 INFO openscada_lite.modules.communication.manager.connector_manager [COMMAND] Sending command: TasmotaRelayDriver@RELAY_1_CMD = ON +2026-01-10 20:59:26,440 WARNING openscada_lite.modules.communication.manager.connector_manager Driver 'TasmotaRelayDriver' is not connected. Cannot send command. +2026-01-10 20:59:26,440 INFO openscada_lite.modules.communication.manager.connector_manager [COMMAND] Sending command: TasmotaRelayDriver@RELAY_2_CMD = ON +2026-01-10 20:59:26,441 WARNING openscada_lite.modules.communication.manager.connector_manager Driver 'TasmotaRelayDriver' is not connected. Cannot send command. +2026-01-10 20:59:26,441 INFO apscheduler.executors.default Job "ScheduleService._execute_schedule (trigger: cron[month='*', day='*', day_of_week='*', hour='17', minute='0'], next run at: 2026-01-11 17:00:00 CET)" executed successfully +2026-01-10 20:59:26,442 INFO apscheduler.executors.default Running job "ScheduleService._execute_schedule (trigger: cron[month='*', day='*', day_of_week='*', hour='23', minute='0'], next run at: 2026-01-10 23:00:00 CET)" (scheduled at 2026-01-10 20:59:26.411428+01:00) +2026-01-10 20:59:26,442 INFO openscada_lite.modules.communication.manager.connector_manager [COMMAND] Sending command: TasmotaRelayDriver@RELAY_1_CMD = OFF +2026-01-10 20:59:26,443 WARNING openscada_lite.modules.communication.manager.connector_manager Driver 'TasmotaRelayDriver' is not connected. Cannot send command. +2026-01-10 20:59:26,444 INFO openscada_lite.modules.communication.manager.connector_manager [COMMAND] Sending command: TasmotaRelayDriver@RELAY_2_CMD = OFF +2026-01-10 20:59:26,444 WARNING openscada_lite.modules.communication.manager.connector_manager Driver 'TasmotaRelayDriver' is not connected. Cannot send command. +2026-01-10 20:59:26,445 INFO apscheduler.executors.default Job "ScheduleService._execute_schedule (trigger: cron[month='*', day='*', day_of_week='*', hour='23', minute='0'], next run at: 2026-01-10 23:00:00 CET)" executed successfully +2026-01-10 20:59:45,617 INFO openscada_lite.modules.communication.manager.connector_manager [COMMAND] Sending command: TasmotaRelayDriver@RELAY_1_CMD = ON +2026-01-10 20:59:54,595 INFO openscada_lite.modules.communication.manager.connector_manager [COMMAND] Sending command: TasmotaRelayDriver@RELAY_1_CMD = OFF +2026-01-10 21:00:29,924 INFO openscada_lite.app [LIFESPAN] Shutdown complete +2026-01-10 21:00:33,126 INFO openscada_lite.app [LIFESPAN] Startup starting... +2026-01-10 21:00:33,902 INFO openscada_lite.modules.communication.drivers.opc_ua_server_driver [OPCUA] Will expose 6 nodes on connect() +2026-01-10 21:00:33,902 INFO openscada_lite.modules.communication.drivers.test.test_driver [INIT] Creating TestDriver CameraDriver +2026-01-10 21:00:33,903 INFO openscada_lite.modules.communication.drivers.test.test_driver [INIT] Creating TestDriver WaterTank +2026-01-10 21:00:33,903 INFO openscada_lite.modules.communication.drivers.test.test_driver [INIT] Creating TestDriver StressTest +2026-01-10 21:00:33,905 INFO openscada_lite.modules.communication.drivers.test.test_driver [INIT] Creating TestDriver TrainTestDriver +2026-01-10 21:00:34,128 INFO apscheduler.scheduler Adding job tentatively -- it will be properly scheduled when the scheduler starts +2026-01-10 21:00:34,128 INFO apscheduler.scheduler Adding job tentatively -- it will be properly scheduled when the scheduler starts +2026-01-10 21:00:34,131 INFO apscheduler.scheduler Added job "ScheduleService._execute_schedule" to job store "default" +2026-01-10 21:00:34,131 INFO apscheduler.scheduler Added job "ScheduleService._execute_schedule" to job store "default" +2026-01-10 21:00:34,131 INFO apscheduler.scheduler Scheduler started +2026-01-10 21:00:34,157 INFO openscada_lite.modules.rule.manager.rule_manager Initializing RuleEngine with datapoint types: ['BOOL', 'CAMERA_POSITION', 'LEVEL', 'OPENED_CLOSED', 'OPEN_CLOSE_CMD', 'PRESSURE', 'START_STOP', 'START_STOP_CMD', 'SWITCH_CONTROL', 'SWITCH_CONTROL_CMD', 'TEMPERATURE', 'ON_OFF'] +2026-01-10 21:00:34,166 INFO openscada_lite.app [LIFESPAN] Startup complete +2026-01-10 21:00:34,167 INFO apscheduler.executors.default Running job "ScheduleService._execute_schedule (trigger: cron[month='*', day='*', day_of_week='*', hour='17', minute='0'], next run at: 2026-01-11 17:00:00 CET)" (scheduled at 2026-01-10 21:00:34.127673+01:00) +2026-01-10 21:00:34,168 INFO openscada_lite.modules.communication.manager.connector_manager [COMMAND] Sending command: TasmotaRelayDriver@RELAY_1_CMD = ON +2026-01-10 21:00:34,169 WARNING openscada_lite.modules.communication.manager.connector_manager Driver 'TasmotaRelayDriver' is not connected. Cannot send command. +2026-01-10 21:00:34,170 INFO openscada_lite.modules.communication.manager.connector_manager [COMMAND] Sending command: TasmotaRelayDriver@RELAY_2_CMD = ON +2026-01-10 21:00:34,170 WARNING openscada_lite.modules.communication.manager.connector_manager Driver 'TasmotaRelayDriver' is not connected. Cannot send command. +2026-01-10 21:00:34,171 INFO apscheduler.executors.default Job "ScheduleService._execute_schedule (trigger: cron[month='*', day='*', day_of_week='*', hour='17', minute='0'], next run at: 2026-01-11 17:00:00 CET)" executed successfully +2026-01-10 21:00:34,171 INFO apscheduler.executors.default Running job "ScheduleService._execute_schedule (trigger: cron[month='*', day='*', day_of_week='*', hour='23', minute='0'], next run at: 2026-01-10 23:00:00 CET)" (scheduled at 2026-01-10 21:00:34.128760+01:00) +2026-01-10 21:00:34,172 INFO openscada_lite.modules.communication.manager.connector_manager [COMMAND] Sending command: TasmotaRelayDriver@RELAY_1_CMD = OFF +2026-01-10 21:00:34,173 WARNING openscada_lite.modules.communication.manager.connector_manager Driver 'TasmotaRelayDriver' is not connected. Cannot send command. +2026-01-10 21:00:34,174 INFO openscada_lite.modules.communication.manager.connector_manager [COMMAND] Sending command: TasmotaRelayDriver@RELAY_2_CMD = OFF +2026-01-10 21:00:34,174 WARNING openscada_lite.modules.communication.manager.connector_manager Driver 'TasmotaRelayDriver' is not connected. Cannot send command. +2026-01-10 21:00:34,175 INFO apscheduler.executors.default Job "ScheduleService._execute_schedule (trigger: cron[month='*', day='*', day_of_week='*', hour='23', minute='0'], next run at: 2026-01-10 23:00:00 CET)" executed successfully +2026-01-10 21:00:51,994 INFO openscada_lite.modules.communication.manager.connector_manager [COMMAND] Sending command: TasmotaRelayDriver@RELAY_1_CMD = ON +2026-01-10 21:06:45,195 INFO openscada_lite.app [LIFESPAN] Shutdown complete +2026-01-10 21:06:49,765 INFO openscada_lite.app [LIFESPAN] Startup starting... +2026-01-10 21:06:50,764 INFO openscada_lite.modules.communication.drivers.opc_ua_server_driver [OPCUA] Will expose 6 nodes on connect() +2026-01-10 21:06:50,765 INFO openscada_lite.modules.communication.drivers.test.test_driver [INIT] Creating TestDriver CameraDriver +2026-01-10 21:06:50,765 INFO openscada_lite.modules.communication.drivers.test.test_driver [INIT] Creating TestDriver WaterTank +2026-01-10 21:06:50,765 INFO openscada_lite.modules.communication.drivers.test.test_driver [INIT] Creating TestDriver StressTest +2026-01-10 21:06:50,767 INFO openscada_lite.modules.communication.drivers.test.test_driver [INIT] Creating TestDriver TrainTestDriver +2026-01-10 21:06:50,911 INFO apscheduler.scheduler Adding job tentatively -- it will be properly scheduled when the scheduler starts +2026-01-10 21:06:50,911 INFO apscheduler.scheduler Adding job tentatively -- it will be properly scheduled when the scheduler starts +2026-01-10 21:06:50,913 INFO apscheduler.scheduler Added job "ScheduleService._execute_schedule" to job store "default" +2026-01-10 21:06:50,913 INFO apscheduler.scheduler Added job "ScheduleService._execute_schedule" to job store "default" +2026-01-10 21:06:50,914 INFO apscheduler.scheduler Scheduler started +2026-01-10 21:06:50,937 INFO openscada_lite.modules.rule.manager.rule_manager Initializing RuleEngine with datapoint types: ['BOOL', 'CAMERA_POSITION', 'LEVEL', 'OPENED_CLOSED', 'OPEN_CLOSE_CMD', 'PRESSURE', 'START_STOP', 'START_STOP_CMD', 'SWITCH_CONTROL', 'SWITCH_CONTROL_CMD', 'TEMPERATURE', 'ON_OFF'] +2026-01-10 21:06:50,947 INFO openscada_lite.app [LIFESPAN] Startup complete +2026-01-10 21:06:50,948 INFO apscheduler.executors.default Running job "ScheduleService._execute_schedule (trigger: cron[month='*', day='*', day_of_week='*', hour='17', minute='0'], next run at: 2026-01-11 17:00:00 CET)" (scheduled at 2026-01-10 21:06:50.910990+01:00) +2026-01-10 21:06:50,949 INFO openscada_lite.modules.communication.manager.connector_manager [COMMAND] Sending command: TasmotaRelayDriver@RELAY_1_CMD = ON +2026-01-10 21:06:50,949 WARNING openscada_lite.modules.communication.manager.connector_manager Driver 'TasmotaRelayDriver' is not connected. Cannot send command. +2026-01-10 21:06:50,950 INFO openscada_lite.modules.communication.manager.connector_manager [COMMAND] Sending command: TasmotaRelayDriver@RELAY_2_CMD = ON +2026-01-10 21:06:50,950 WARNING openscada_lite.modules.communication.manager.connector_manager Driver 'TasmotaRelayDriver' is not connected. Cannot send command. +2026-01-10 21:06:50,951 INFO apscheduler.executors.default Job "ScheduleService._execute_schedule (trigger: cron[month='*', day='*', day_of_week='*', hour='17', minute='0'], next run at: 2026-01-11 17:00:00 CET)" executed successfully +2026-01-10 21:06:50,951 INFO apscheduler.executors.default Running job "ScheduleService._execute_schedule (trigger: cron[month='*', day='*', day_of_week='*', hour='23', minute='0'], next run at: 2026-01-10 23:00:00 CET)" (scheduled at 2026-01-10 21:06:50.911604+01:00) +2026-01-10 21:06:50,952 INFO openscada_lite.modules.communication.manager.connector_manager [COMMAND] Sending command: TasmotaRelayDriver@RELAY_1_CMD = OFF +2026-01-10 21:06:50,952 WARNING openscada_lite.modules.communication.manager.connector_manager Driver 'TasmotaRelayDriver' is not connected. Cannot send command. +2026-01-10 21:06:50,953 INFO openscada_lite.modules.communication.manager.connector_manager [COMMAND] Sending command: TasmotaRelayDriver@RELAY_2_CMD = OFF +2026-01-10 21:06:50,953 WARNING openscada_lite.modules.communication.manager.connector_manager Driver 'TasmotaRelayDriver' is not connected. Cannot send command. +2026-01-10 21:06:50,953 INFO apscheduler.executors.default Job "ScheduleService._execute_schedule (trigger: cron[month='*', day='*', day_of_week='*', hour='23', minute='0'], next run at: 2026-01-10 23:00:00 CET)" executed successfully +2026-01-10 21:07:08,398 INFO openscada_lite.modules.communication.manager.connector_manager [COMMAND] Sending command: TasmotaRelayDriver@RELAY_1_CMD = ON +2026-01-10 21:07:15,151 INFO openscada_lite.modules.communication.manager.connector_manager [COMMAND] Sending command: TasmotaRelayDriver@RELAY_2_CMD = ON +2026-01-10 23:00:00,052 INFO apscheduler.executors.default Running job "ScheduleService._execute_schedule (trigger: cron[month='*', day='*', day_of_week='*', hour='23', minute='0'], next run at: 2026-01-11 23:00:00 CET)" (scheduled at 2026-01-10 23:00:00+01:00) +2026-01-10 23:00:00,072 INFO openscada_lite.modules.communication.manager.connector_manager [COMMAND] Sending command: TasmotaRelayDriver@RELAY_1_CMD = OFF +2026-01-10 23:00:00,081 INFO openscada_lite.modules.communication.manager.connector_manager [COMMAND] Sending command: TasmotaRelayDriver@RELAY_2_CMD = OFF +2026-01-10 23:00:00,084 INFO apscheduler.executors.default Job "ScheduleService._execute_schedule (trigger: cron[month='*', day='*', day_of_week='*', hour='23', minute='0'], next run at: 2026-01-11 23:00:00 CET)" executed successfully +2026-01-10 23:07:56,065 INFO openscada_lite.modules.security.controller User admin logged in successfully +2026-01-10 23:08:01,894 INFO openscada_lite.app [LIFESPAN] Shutdown complete +2026-01-10 23:08:08,753 INFO openscada_lite.app [LIFESPAN] Startup starting... +2026-01-10 23:08:09,887 INFO openscada_lite.modules.communication.drivers.opc_ua_server_driver [OPCUA] Will expose 6 nodes on connect() +2026-01-10 23:08:09,888 INFO openscada_lite.modules.communication.drivers.test.test_driver [INIT] Creating TestDriver CameraDriver +2026-01-10 23:08:09,888 INFO openscada_lite.modules.communication.drivers.test.test_driver [INIT] Creating TestDriver WaterTank +2026-01-10 23:08:09,889 INFO openscada_lite.modules.communication.drivers.test.test_driver [INIT] Creating TestDriver StressTest +2026-01-10 23:08:09,890 INFO openscada_lite.modules.communication.drivers.test.test_driver [INIT] Creating TestDriver TrainTestDriver +2026-01-10 23:08:10,123 INFO apscheduler.scheduler Adding job tentatively -- it will be properly scheduled when the scheduler starts +2026-01-10 23:08:10,123 INFO apscheduler.scheduler Adding job tentatively -- it will be properly scheduled when the scheduler starts +2026-01-10 23:08:10,125 INFO apscheduler.scheduler Added job "ScheduleService._execute_schedule" to job store "default" +2026-01-10 23:08:10,125 INFO apscheduler.scheduler Added job "ScheduleService._execute_schedule" to job store "default" +2026-01-10 23:08:10,125 INFO apscheduler.scheduler Scheduler started +2026-01-10 23:08:10,156 INFO openscada_lite.modules.rule.manager.rule_manager Initializing RuleEngine with datapoint types: ['BOOL', 'CAMERA_POSITION', 'LEVEL', 'OPENED_CLOSED', 'OPEN_CLOSE_CMD', 'PRESSURE', 'START_STOP', 'START_STOP_CMD', 'SWITCH_CONTROL', 'SWITCH_CONTROL_CMD', 'TEMPERATURE', 'ON_OFF'] +2026-01-10 23:08:10,189 INFO openscada_lite.app [LIFESPAN] Startup complete +2026-01-10 23:08:10,191 INFO apscheduler.executors.default Running job "ScheduleService._execute_schedule (trigger: cron[month='*', day='*', day_of_week='*', hour='17', minute='0'], next run at: 2026-01-11 17:00:00 CET)" (scheduled at 2026-01-10 23:08:10.122804+01:00) +2026-01-10 23:08:10,192 INFO openscada_lite.modules.communication.manager.connector_manager [COMMAND] Sending command: TasmotaRelayDriver@RELAY_1_CMD = ON +2026-01-10 23:08:10,192 WARNING openscada_lite.modules.communication.manager.connector_manager Driver 'TasmotaRelayDriver' is not connected. Cannot send command. +2026-01-10 23:08:10,193 INFO openscada_lite.modules.communication.manager.connector_manager [COMMAND] Sending command: TasmotaRelayDriver@RELAY_2_CMD = ON +2026-01-10 23:08:10,193 WARNING openscada_lite.modules.communication.manager.connector_manager Driver 'TasmotaRelayDriver' is not connected. Cannot send command. +2026-01-10 23:08:10,194 INFO apscheduler.executors.default Job "ScheduleService._execute_schedule (trigger: cron[month='*', day='*', day_of_week='*', hour='17', minute='0'], next run at: 2026-01-11 17:00:00 CET)" executed successfully +2026-01-10 23:08:10,195 INFO apscheduler.executors.default Running job "ScheduleService._execute_schedule (trigger: cron[month='*', day='*', day_of_week='*', hour='23', minute='0'], next run at: 2026-01-11 23:00:00 CET)" (scheduled at 2026-01-10 23:08:10.123502+01:00) +2026-01-10 23:08:10,198 INFO openscada_lite.modules.communication.manager.connector_manager [COMMAND] Sending command: TasmotaRelayDriver@RELAY_1_CMD = OFF +2026-01-10 23:08:10,198 WARNING openscada_lite.modules.communication.manager.connector_manager Driver 'TasmotaRelayDriver' is not connected. Cannot send command. +2026-01-10 23:08:10,199 INFO openscada_lite.modules.communication.manager.connector_manager [COMMAND] Sending command: TasmotaRelayDriver@RELAY_2_CMD = OFF +2026-01-10 23:08:10,200 WARNING openscada_lite.modules.communication.manager.connector_manager Driver 'TasmotaRelayDriver' is not connected. Cannot send command. +2026-01-10 23:08:10,200 INFO apscheduler.executors.default Job "ScheduleService._execute_schedule (trigger: cron[month='*', day='*', day_of_week='*', hour='23', minute='0'], next run at: 2026-01-11 23:00:00 CET)" executed successfully +2026-01-10 23:08:14,594 INFO openscada_lite.modules.security.controller User admin logged in successfully +2026-01-10 23:20:53,664 INFO openscada_lite.app [LIFESPAN] Shutdown complete +2026-01-10 23:20:57,956 INFO openscada_lite.app [LIFESPAN] Startup starting... +2026-01-10 23:20:58,635 INFO openscada_lite.modules.communication.drivers.opc_ua_server_driver [OPCUA] Will expose 6 nodes on connect() +2026-01-10 23:20:58,636 INFO openscada_lite.modules.communication.drivers.test.test_driver [INIT] Creating TestDriver CameraDriver +2026-01-10 23:20:58,636 INFO openscada_lite.modules.communication.drivers.test.test_driver [INIT] Creating TestDriver WaterTank +2026-01-10 23:20:58,636 INFO openscada_lite.modules.communication.drivers.test.test_driver [INIT] Creating TestDriver StressTest +2026-01-10 23:20:58,637 INFO openscada_lite.modules.communication.drivers.test.test_driver [INIT] Creating TestDriver TrainTestDriver +2026-01-10 23:20:58,797 INFO apscheduler.scheduler Adding job tentatively -- it will be properly scheduled when the scheduler starts +2026-01-10 23:20:58,797 INFO apscheduler.scheduler Adding job tentatively -- it will be properly scheduled when the scheduler starts +2026-01-10 23:20:58,799 INFO apscheduler.scheduler Added job "ScheduleService._execute_schedule" to job store "default" +2026-01-10 23:20:58,799 INFO apscheduler.scheduler Added job "ScheduleService._execute_schedule" to job store "default" +2026-01-10 23:20:58,799 INFO apscheduler.scheduler Scheduler started +2026-01-10 23:20:58,817 INFO openscada_lite.modules.rule.manager.rule_manager Initializing RuleEngine with datapoint types: ['BOOL', 'CAMERA_POSITION', 'LEVEL', 'OPENED_CLOSED', 'OPEN_CLOSE_CMD', 'PRESSURE', 'START_STOP', 'START_STOP_CMD', 'SWITCH_CONTROL', 'SWITCH_CONTROL_CMD', 'TEMPERATURE', 'ON_OFF'] +2026-01-10 23:20:58,825 INFO openscada_lite.app [LIFESPAN] Startup complete +2026-01-10 23:20:58,826 INFO apscheduler.executors.default Running job "ScheduleService._execute_schedule (trigger: cron[month='*', day='*', day_of_week='*', hour='17', minute='0'], next run at: 2026-01-11 17:00:00 CET)" (scheduled at 2026-01-10 23:20:58.797206+01:00) +2026-01-10 23:20:58,827 INFO openscada_lite.modules.communication.manager.connector_manager [COMMAND] Sending command: TasmotaRelayDriver@RELAY_1_CMD = ON +2026-01-10 23:20:58,827 WARNING openscada_lite.modules.communication.manager.connector_manager Driver 'TasmotaRelayDriver' is not connected. Cannot send command. +2026-01-10 23:20:58,828 INFO openscada_lite.modules.communication.manager.connector_manager [COMMAND] Sending command: TasmotaRelayDriver@RELAY_2_CMD = ON +2026-01-10 23:20:58,828 WARNING openscada_lite.modules.communication.manager.connector_manager Driver 'TasmotaRelayDriver' is not connected. Cannot send command. +2026-01-10 23:20:58,828 INFO apscheduler.executors.default Job "ScheduleService._execute_schedule (trigger: cron[month='*', day='*', day_of_week='*', hour='17', minute='0'], next run at: 2026-01-11 17:00:00 CET)" executed successfully +2026-01-10 23:20:58,829 INFO apscheduler.executors.default Running job "ScheduleService._execute_schedule (trigger: cron[month='*', day='*', day_of_week='*', hour='23', minute='0'], next run at: 2026-01-11 23:00:00 CET)" (scheduled at 2026-01-10 23:20:58.797698+01:00) +2026-01-10 23:20:58,829 INFO openscada_lite.modules.communication.manager.connector_manager [COMMAND] Sending command: TasmotaRelayDriver@RELAY_1_CMD = OFF +2026-01-10 23:20:58,829 WARNING openscada_lite.modules.communication.manager.connector_manager Driver 'TasmotaRelayDriver' is not connected. Cannot send command. +2026-01-10 23:20:58,830 INFO openscada_lite.modules.communication.manager.connector_manager [COMMAND] Sending command: TasmotaRelayDriver@RELAY_2_CMD = OFF +2026-01-10 23:20:58,830 WARNING openscada_lite.modules.communication.manager.connector_manager Driver 'TasmotaRelayDriver' is not connected. Cannot send command. +2026-01-10 23:20:58,830 INFO apscheduler.executors.default Job "ScheduleService._execute_schedule (trigger: cron[month='*', day='*', day_of_week='*', hour='23', minute='0'], next run at: 2026-01-11 23:00:00 CET)" executed successfully +2026-01-10 23:21:22,424 INFO openscada_lite.modules.communication.manager.connector_manager [COMMAND] Sending command: TasmotaRelayDriver@RELAY_1_CMD = TOGGLE +2026-01-10 23:26:57,617 INFO openscada_lite.app [LIFESPAN] Shutdown complete +2026-01-10 23:27:00,510 INFO openscada_lite.app [LIFESPAN] Startup starting... +2026-01-10 23:27:01,479 INFO openscada_lite.modules.communication.drivers.opc_ua_server_driver [OPCUA] Will expose 6 nodes on connect() +2026-01-10 23:27:01,479 INFO openscada_lite.modules.communication.drivers.test.test_driver [INIT] Creating TestDriver CameraDriver +2026-01-10 23:27:01,480 INFO openscada_lite.modules.communication.drivers.test.test_driver [INIT] Creating TestDriver WaterTank +2026-01-10 23:27:01,480 INFO openscada_lite.modules.communication.drivers.test.test_driver [INIT] Creating TestDriver StressTest +2026-01-10 23:27:01,482 INFO openscada_lite.modules.communication.drivers.test.test_driver [INIT] Creating TestDriver TrainTestDriver +2026-01-10 23:27:01,633 INFO apscheduler.scheduler Adding job tentatively -- it will be properly scheduled when the scheduler starts +2026-01-10 23:27:01,634 INFO apscheduler.scheduler Adding job tentatively -- it will be properly scheduled when the scheduler starts +2026-01-10 23:27:01,636 INFO apscheduler.scheduler Added job "ScheduleService._execute_schedule" to job store "default" +2026-01-10 23:27:01,636 INFO apscheduler.scheduler Added job "ScheduleService._execute_schedule" to job store "default" +2026-01-10 23:27:01,636 INFO apscheduler.scheduler Scheduler started +2026-01-10 23:27:01,666 INFO openscada_lite.modules.rule.manager.rule_manager Initializing RuleEngine with datapoint types: ['BOOL', 'CAMERA_POSITION', 'LEVEL', 'OPENED_CLOSED', 'OPEN_CLOSE_CMD', 'PRESSURE', 'START_STOP', 'START_STOP_CMD', 'SWITCH_CONTROL', 'SWITCH_CONTROL_CMD', 'TEMPERATURE', 'ON_OFF'] +2026-01-10 23:27:01,687 INFO openscada_lite.app [LIFESPAN] Startup complete +2026-01-10 23:27:01,688 INFO apscheduler.executors.default Running job "ScheduleService._execute_schedule (trigger: cron[month='*', day='*', day_of_week='*', hour='17', minute='0'], next run at: 2026-01-11 17:00:00 CET)" (scheduled at 2026-01-10 23:27:01.633121+01:00) +2026-01-10 23:27:01,689 INFO openscada_lite.modules.communication.manager.connector_manager [COMMAND] Sending command: TasmotaRelayDriver@RELAY_1_CMD = ON +2026-01-10 23:27:01,689 WARNING openscada_lite.modules.communication.manager.connector_manager Driver 'TasmotaRelayDriver' is not connected. Cannot send command. +2026-01-10 23:27:01,690 INFO openscada_lite.modules.communication.manager.connector_manager [COMMAND] Sending command: TasmotaRelayDriver@RELAY_2_CMD = ON +2026-01-10 23:27:01,691 WARNING openscada_lite.modules.communication.manager.connector_manager Driver 'TasmotaRelayDriver' is not connected. Cannot send command. +2026-01-10 23:27:01,691 INFO apscheduler.executors.default Job "ScheduleService._execute_schedule (trigger: cron[month='*', day='*', day_of_week='*', hour='17', minute='0'], next run at: 2026-01-11 17:00:00 CET)" executed successfully +2026-01-10 23:27:01,692 INFO apscheduler.executors.default Running job "ScheduleService._execute_schedule (trigger: cron[month='*', day='*', day_of_week='*', hour='23', minute='0'], next run at: 2026-01-11 23:00:00 CET)" (scheduled at 2026-01-10 23:27:01.633893+01:00) +2026-01-10 23:27:01,692 INFO openscada_lite.modules.communication.manager.connector_manager [COMMAND] Sending command: TasmotaRelayDriver@RELAY_1_CMD = OFF +2026-01-10 23:27:01,693 WARNING openscada_lite.modules.communication.manager.connector_manager Driver 'TasmotaRelayDriver' is not connected. Cannot send command. +2026-01-10 23:27:01,693 INFO openscada_lite.modules.communication.manager.connector_manager [COMMAND] Sending command: TasmotaRelayDriver@RELAY_2_CMD = OFF +2026-01-10 23:27:01,694 WARNING openscada_lite.modules.communication.manager.connector_manager Driver 'TasmotaRelayDriver' is not connected. Cannot send command. +2026-01-10 23:27:01,694 INFO apscheduler.executors.default Job "ScheduleService._execute_schedule (trigger: cron[month='*', day='*', day_of_week='*', hour='23', minute='0'], next run at: 2026-01-11 23:00:00 CET)" executed successfully +2026-01-10 23:27:16,310 INFO openscada_lite.modules.communication.manager.connector_manager [COMMAND] Sending command: TasmotaRelayDriver@RELAY_1_CMD = TOGGLE +2026-01-10 23:27:27,349 INFO openscada_lite.modules.communication.manager.connector_manager [COMMAND] Sending command: TasmotaRelayDriver@RELAY_1_CMD = TOGGLE +2026-01-10 23:31:11,373 INFO openscada_lite.app [LIFESPAN] Shutdown complete +2026-01-10 23:31:15,995 INFO openscada_lite.app [LIFESPAN] Startup starting... +2026-01-10 23:31:17,250 INFO openscada_lite.modules.communication.drivers.opc_ua_server_driver [OPCUA] Will expose 6 nodes on connect() +2026-01-10 23:31:17,279 INFO openscada_lite.modules.communication.drivers.test.test_driver [INIT] Creating TestDriver CameraDriver +2026-01-10 23:31:17,279 INFO openscada_lite.modules.communication.drivers.test.test_driver [INIT] Creating TestDriver WaterTank +2026-01-10 23:31:17,280 INFO openscada_lite.modules.communication.drivers.test.test_driver [INIT] Creating TestDriver StressTest +2026-01-10 23:31:17,282 INFO openscada_lite.modules.communication.drivers.test.test_driver [INIT] Creating TestDriver TrainTestDriver +2026-01-10 23:31:17,528 INFO apscheduler.scheduler Adding job tentatively -- it will be properly scheduled when the scheduler starts +2026-01-10 23:31:17,529 INFO apscheduler.scheduler Adding job tentatively -- it will be properly scheduled when the scheduler starts +2026-01-10 23:31:17,530 INFO apscheduler.scheduler Added job "ScheduleService._execute_schedule" to job store "default" +2026-01-10 23:31:17,531 INFO apscheduler.scheduler Added job "ScheduleService._execute_schedule" to job store "default" +2026-01-10 23:31:17,531 INFO apscheduler.scheduler Scheduler started +2026-01-10 23:31:17,556 INFO openscada_lite.modules.rule.manager.rule_manager Initializing RuleEngine with datapoint types: ['BOOL', 'CAMERA_POSITION', 'LEVEL', 'OPENED_CLOSED', 'OPEN_CLOSE_CMD', 'PRESSURE', 'START_STOP', 'START_STOP_CMD', 'SWITCH_CONTROL', 'SWITCH_CONTROL_CMD', 'TEMPERATURE', 'ON_OFF'] +2026-01-10 23:31:17,584 INFO openscada_lite.app [LIFESPAN] Startup complete +2026-01-10 23:31:17,585 INFO apscheduler.executors.default Running job "ScheduleService._execute_schedule (trigger: cron[month='*', day='*', day_of_week='*', hour='17', minute='0'], next run at: 2026-01-11 17:00:00 CET)" (scheduled at 2026-01-10 23:31:17.528738+01:00) +2026-01-10 23:31:17,586 INFO openscada_lite.modules.communication.manager.connector_manager [COMMAND] Sending command: TasmotaRelayDriver@RELAY_1_CMD = ON +2026-01-10 23:31:17,586 WARNING openscada_lite.modules.communication.manager.connector_manager Driver 'TasmotaRelayDriver' is not connected. Cannot send command. +2026-01-10 23:31:17,587 INFO openscada_lite.modules.communication.manager.connector_manager [COMMAND] Sending command: TasmotaRelayDriver@RELAY_2_CMD = ON +2026-01-10 23:31:17,588 WARNING openscada_lite.modules.communication.manager.connector_manager Driver 'TasmotaRelayDriver' is not connected. Cannot send command. +2026-01-10 23:31:17,588 INFO apscheduler.executors.default Job "ScheduleService._execute_schedule (trigger: cron[month='*', day='*', day_of_week='*', hour='17', minute='0'], next run at: 2026-01-11 17:00:00 CET)" executed successfully +2026-01-10 23:31:17,589 INFO apscheduler.executors.default Running job "ScheduleService._execute_schedule (trigger: cron[month='*', day='*', day_of_week='*', hour='23', minute='0'], next run at: 2026-01-11 23:00:00 CET)" (scheduled at 2026-01-10 23:31:17.529296+01:00) +2026-01-10 23:31:17,589 INFO openscada_lite.modules.communication.manager.connector_manager [COMMAND] Sending command: TasmotaRelayDriver@RELAY_1_CMD = OFF +2026-01-10 23:31:17,589 WARNING openscada_lite.modules.communication.manager.connector_manager Driver 'TasmotaRelayDriver' is not connected. Cannot send command. +2026-01-10 23:31:17,591 INFO openscada_lite.modules.communication.manager.connector_manager [COMMAND] Sending command: TasmotaRelayDriver@RELAY_2_CMD = OFF +2026-01-10 23:31:17,591 WARNING openscada_lite.modules.communication.manager.connector_manager Driver 'TasmotaRelayDriver' is not connected. Cannot send command. +2026-01-10 23:31:17,592 INFO apscheduler.executors.default Job "ScheduleService._execute_schedule (trigger: cron[month='*', day='*', day_of_week='*', hour='23', minute='0'], next run at: 2026-01-11 23:00:00 CET)" executed successfully +2026-01-10 23:31:34,116 INFO openscada_lite.modules.communication.manager.connector_manager [COMMAND] Sending command: TasmotaRelayDriver@RELAY_1_CMD = TOGGLE +2026-01-10 23:38:33,564 INFO openscada_lite.modules.communication.drivers.test.test_driver [INIT] Initializing values for TrainTestDriver tags: {'RIGHT_SWITCH_CONTROL': RawTagUpdateMsg(track_id='e2ab7015-1242-4852-a064-706092d6a0f3', datapoint_identifier='TrainTestDriver@RIGHT_SWITCH_CONTROL', value='STRAIGHT', quality='good', timestamp=datetime.datetime(2026, 1, 10, 23, 31, 17, 282498)), 'LEFT_SWITCH_CONTROL': RawTagUpdateMsg(track_id='d4e58598-6809-4258-9f9f-7e527034e5a8', datapoint_identifier='TrainTestDriver@LEFT_SWITCH_CONTROL', value='STRAIGHT', quality='good', timestamp=datetime.datetime(2026, 1, 10, 23, 31, 17, 282498))} +2026-01-10 23:38:47,018 INFO openscada_lite.modules.communication.manager.connector_manager [COMMAND] Sending command: TrainTestDriver@LEFT_SWITCH_CONTROL_CMD = TOGGLE +2026-01-10 23:38:47,018 INFO openscada_lite.modules.communication.drivers.test.test_driver [COMMAND] Handling special command: LEFT_SWITCH_CONTROL_CMD = TOGGLE +2026-01-10 23:38:47,019 ERROR openscada_lite.modules.communication.drivers.test.test_driver Exception in callback >: name 'ACTION_MAP' is not defined +2026-01-10 23:38:57,007 INFO openscada_lite.modules.communication.manager.connector_manager [COMMAND] Sending command: TrainTestDriver@RIGHT_SWITCH_CONTROL_CMD = TOGGLE +2026-01-10 23:38:57,008 INFO openscada_lite.modules.communication.drivers.test.test_driver [COMMAND] Handling special command: RIGHT_SWITCH_CONTROL_CMD = TOGGLE +2026-01-10 23:38:57,008 ERROR openscada_lite.modules.communication.drivers.test.test_driver Exception in callback >: name 'ACTION_MAP' is not defined +2026-01-10 23:39:03,238 INFO openscada_lite.modules.communication.manager.connector_manager [COMMAND] Sending command: TrainTestDriver@LEFT_SWITCH_CONTROL_CMD = TOGGLE +2026-01-10 23:39:03,238 INFO openscada_lite.modules.communication.drivers.test.test_driver [COMMAND] Handling special command: LEFT_SWITCH_CONTROL_CMD = TOGGLE +2026-01-10 23:39:03,239 ERROR openscada_lite.modules.communication.drivers.test.test_driver Exception in callback >: name 'ACTION_MAP' is not defined +2026-01-10 23:53:58,397 INFO openscada_lite.app [LIFESPAN] Shutdown complete +2026-01-10 23:54:04,098 INFO openscada_lite.app [LIFESPAN] Startup starting... +2026-01-10 23:54:05,321 INFO openscada_lite.modules.communication.drivers.opc_ua_server_driver [OPCUA] Will expose 6 nodes on connect() +2026-01-10 23:54:05,321 INFO openscada_lite.modules.communication.drivers.test.test_driver [INIT] Creating TestDriver CameraDriver +2026-01-10 23:54:05,322 INFO openscada_lite.modules.communication.drivers.test.test_driver [INIT] Creating TestDriver WaterTank +2026-01-10 23:54:05,322 INFO openscada_lite.modules.communication.drivers.test.test_driver [INIT] Creating TestDriver StressTest +2026-01-10 23:54:05,325 INFO openscada_lite.modules.communication.drivers.test.test_driver [INIT] Creating TestDriver TrainTestDriver +2026-01-10 23:54:05,582 INFO apscheduler.scheduler Adding job tentatively -- it will be properly scheduled when the scheduler starts +2026-01-10 23:54:05,583 INFO apscheduler.scheduler Adding job tentatively -- it will be properly scheduled when the scheduler starts +2026-01-10 23:54:05,585 INFO apscheduler.scheduler Added job "ScheduleService._execute_schedule" to job store "default" +2026-01-10 23:54:05,585 INFO apscheduler.scheduler Added job "ScheduleService._execute_schedule" to job store "default" +2026-01-10 23:54:05,585 INFO apscheduler.scheduler Scheduler started +2026-01-10 23:54:05,611 INFO openscada_lite.modules.rule.manager.rule_manager Initializing RuleEngine with datapoint types: ['BOOL', 'CAMERA_POSITION', 'LEVEL', 'OPENED_CLOSED', 'OPEN_CLOSE_CMD', 'PRESSURE', 'START_STOP', 'START_STOP_CMD', 'SWITCH_CONTROL', 'SWITCH_CONTROL_CMD', 'TEMPERATURE', 'ON_OFF'] +2026-01-10 23:54:05,655 INFO openscada_lite.app [LIFESPAN] Startup complete +2026-01-10 23:54:05,656 INFO apscheduler.executors.default Running job "ScheduleService._execute_schedule (trigger: cron[month='*', day='*', day_of_week='*', hour='17', minute='0'], next run at: 2026-01-11 17:00:00 CET)" (scheduled at 2026-01-10 23:54:05.582695+01:00) +2026-01-10 23:54:05,657 INFO openscada_lite.modules.communication.manager.connector_manager [COMMAND] Sending command: TasmotaRelayDriver@RELAY_1_CMD = ON +2026-01-10 23:54:05,657 WARNING openscada_lite.modules.communication.manager.connector_manager Driver 'TasmotaRelayDriver' is not connected. Cannot send command. +2026-01-10 23:54:05,658 INFO openscada_lite.modules.communication.manager.connector_manager [COMMAND] Sending command: TasmotaRelayDriver@RELAY_2_CMD = ON +2026-01-10 23:54:05,659 WARNING openscada_lite.modules.communication.manager.connector_manager Driver 'TasmotaRelayDriver' is not connected. Cannot send command. +2026-01-10 23:54:05,660 INFO apscheduler.executors.default Job "ScheduleService._execute_schedule (trigger: cron[month='*', day='*', day_of_week='*', hour='17', minute='0'], next run at: 2026-01-11 17:00:00 CET)" executed successfully +2026-01-10 23:54:05,661 INFO apscheduler.executors.default Running job "ScheduleService._execute_schedule (trigger: cron[month='*', day='*', day_of_week='*', hour='23', minute='0'], next run at: 2026-01-11 23:00:00 CET)" (scheduled at 2026-01-10 23:54:05.583355+01:00) +2026-01-10 23:54:05,662 INFO openscada_lite.modules.communication.manager.connector_manager [COMMAND] Sending command: TasmotaRelayDriver@RELAY_1_CMD = OFF +2026-01-10 23:54:05,662 WARNING openscada_lite.modules.communication.manager.connector_manager Driver 'TasmotaRelayDriver' is not connected. Cannot send command. +2026-01-10 23:54:05,663 INFO openscada_lite.modules.communication.manager.connector_manager [COMMAND] Sending command: TasmotaRelayDriver@RELAY_2_CMD = OFF +2026-01-10 23:54:05,663 WARNING openscada_lite.modules.communication.manager.connector_manager Driver 'TasmotaRelayDriver' is not connected. Cannot send command. +2026-01-10 23:54:05,664 INFO apscheduler.executors.default Job "ScheduleService._execute_schedule (trigger: cron[month='*', day='*', day_of_week='*', hour='23', minute='0'], next run at: 2026-01-11 23:00:00 CET)" executed successfully +2026-01-10 23:54:19,643 INFO openscada_lite.modules.communication.manager.connector_manager [COMMAND] Sending command: TasmotaRelayDriver@RELAY_1_CMD = TOGGLE +2026-01-10 23:55:41,551 INFO openscada_lite.modules.communication.manager.connector_manager [COMMAND] Sending command: TasmotaRelayDriver@RELAY_1_CMD = TOGGLE +2026-01-10 23:55:48,742 INFO openscada_lite.app [LIFESPAN] Shutdown complete +2026-01-10 23:55:54,631 INFO openscada_lite.app [LIFESPAN] Startup starting... +2026-01-10 23:55:55,150 INFO openscada_lite.modules.communication.drivers.opc_ua_server_driver [OPCUA] Will expose 6 nodes on connect() +2026-01-10 23:55:55,150 INFO openscada_lite.modules.communication.drivers.test.test_driver [INIT] Creating TestDriver CameraDriver +2026-01-10 23:55:55,151 INFO openscada_lite.modules.communication.drivers.test.test_driver [INIT] Creating TestDriver WaterTank +2026-01-10 23:55:55,151 INFO openscada_lite.modules.communication.drivers.test.test_driver [INIT] Creating TestDriver StressTest +2026-01-10 23:55:55,152 INFO openscada_lite.modules.communication.drivers.test.test_driver [INIT] Creating TestDriver TrainTestDriver +2026-01-10 23:55:55,254 INFO apscheduler.scheduler Adding job tentatively -- it will be properly scheduled when the scheduler starts +2026-01-10 23:55:55,255 INFO apscheduler.scheduler Adding job tentatively -- it will be properly scheduled when the scheduler starts +2026-01-10 23:55:55,256 INFO apscheduler.scheduler Added job "ScheduleService._execute_schedule" to job store "default" +2026-01-10 23:55:55,257 INFO apscheduler.scheduler Added job "ScheduleService._execute_schedule" to job store "default" +2026-01-10 23:55:55,257 INFO apscheduler.scheduler Scheduler started +2026-01-10 23:55:55,279 INFO openscada_lite.modules.rule.manager.rule_manager Initializing RuleEngine with datapoint types: ['BOOL', 'CAMERA_POSITION', 'LEVEL', 'OPENED_CLOSED', 'OPEN_CLOSE_CMD', 'PRESSURE', 'START_STOP', 'START_STOP_CMD', 'SWITCH_CONTROL', 'SWITCH_CONTROL_CMD', 'TEMPERATURE', 'ON_OFF'] +2026-01-10 23:55:55,288 INFO openscada_lite.app [LIFESPAN] Startup complete +2026-01-10 23:55:55,289 INFO apscheduler.executors.default Running job "ScheduleService._execute_schedule (trigger: cron[month='*', day='*', day_of_week='*', hour='17', minute='0'], next run at: 2026-01-11 17:00:00 CET)" (scheduled at 2026-01-10 23:55:55.254814+01:00) +2026-01-10 23:55:55,289 INFO openscada_lite.modules.communication.manager.connector_manager [COMMAND] Sending command: TasmotaRelayDriver@RELAY_1_CMD = ON +2026-01-10 23:55:55,289 WARNING openscada_lite.modules.communication.manager.connector_manager Driver 'TasmotaRelayDriver' is not connected. Cannot send command. +2026-01-10 23:55:55,290 INFO openscada_lite.modules.communication.manager.connector_manager [COMMAND] Sending command: TasmotaRelayDriver@RELAY_2_CMD = ON +2026-01-10 23:55:55,290 WARNING openscada_lite.modules.communication.manager.connector_manager Driver 'TasmotaRelayDriver' is not connected. Cannot send command. +2026-01-10 23:55:55,291 INFO apscheduler.executors.default Job "ScheduleService._execute_schedule (trigger: cron[month='*', day='*', day_of_week='*', hour='17', minute='0'], next run at: 2026-01-11 17:00:00 CET)" executed successfully +2026-01-10 23:55:55,291 INFO apscheduler.executors.default Running job "ScheduleService._execute_schedule (trigger: cron[month='*', day='*', day_of_week='*', hour='23', minute='0'], next run at: 2026-01-11 23:00:00 CET)" (scheduled at 2026-01-10 23:55:55.255414+01:00) +2026-01-10 23:55:55,291 INFO openscada_lite.modules.communication.manager.connector_manager [COMMAND] Sending command: TasmotaRelayDriver@RELAY_1_CMD = OFF +2026-01-10 23:55:55,292 WARNING openscada_lite.modules.communication.manager.connector_manager Driver 'TasmotaRelayDriver' is not connected. Cannot send command. +2026-01-10 23:55:55,292 INFO openscada_lite.modules.communication.manager.connector_manager [COMMAND] Sending command: TasmotaRelayDriver@RELAY_2_CMD = OFF +2026-01-10 23:55:55,292 WARNING openscada_lite.modules.communication.manager.connector_manager Driver 'TasmotaRelayDriver' is not connected. Cannot send command. +2026-01-10 23:55:55,293 INFO apscheduler.executors.default Job "ScheduleService._execute_schedule (trigger: cron[month='*', day='*', day_of_week='*', hour='23', minute='0'], next run at: 2026-01-11 23:00:00 CET)" executed successfully +2026-01-10 23:56:05,480 INFO openscada_lite.modules.security.controller User admin logged in successfully +2026-01-10 23:56:15,625 INFO openscada_lite.modules.communication.manager.connector_manager [COMMAND] Sending command: TasmotaRelayDriver@RELAY_1_CMD = TOGGLE +2026-01-10 23:58:13,163 INFO openscada_lite.app [LIFESPAN] Shutdown complete +2026-01-10 23:58:16,553 INFO openscada_lite.app [LIFESPAN] Startup starting... +2026-01-10 23:58:17,356 INFO openscada_lite.modules.communication.drivers.opc_ua_server_driver [OPCUA] Will expose 6 nodes on connect() +2026-01-10 23:58:17,356 INFO openscada_lite.modules.communication.drivers.test.test_driver [INIT] Creating TestDriver CameraDriver +2026-01-10 23:58:17,357 INFO openscada_lite.modules.communication.drivers.test.test_driver [INIT] Creating TestDriver WaterTank +2026-01-10 23:58:17,357 INFO openscada_lite.modules.communication.drivers.test.test_driver [INIT] Creating TestDriver StressTest +2026-01-10 23:58:17,360 INFO openscada_lite.modules.communication.drivers.test.test_driver [INIT] Creating TestDriver TrainTestDriver +2026-01-10 23:58:17,495 INFO apscheduler.scheduler Adding job tentatively -- it will be properly scheduled when the scheduler starts +2026-01-10 23:58:17,496 INFO apscheduler.scheduler Adding job tentatively -- it will be properly scheduled when the scheduler starts +2026-01-10 23:58:17,497 INFO apscheduler.scheduler Added job "ScheduleService._execute_schedule" to job store "default" +2026-01-10 23:58:17,497 INFO apscheduler.scheduler Added job "ScheduleService._execute_schedule" to job store "default" +2026-01-10 23:58:17,497 INFO apscheduler.scheduler Scheduler started +2026-01-10 23:58:17,519 INFO openscada_lite.modules.rule.manager.rule_manager Initializing RuleEngine with datapoint types: ['BOOL', 'CAMERA_POSITION', 'LEVEL', 'OPENED_CLOSED', 'OPEN_CLOSE_CMD', 'PRESSURE', 'START_STOP', 'START_STOP_CMD', 'SWITCH_CONTROL', 'SWITCH_CONTROL_CMD', 'TEMPERATURE', 'ON_OFF'] +2026-01-10 23:58:17,532 INFO openscada_lite.app [LIFESPAN] Startup complete +2026-01-10 23:58:17,533 INFO apscheduler.executors.default Running job "ScheduleService._execute_schedule (trigger: cron[month='*', day='*', day_of_week='*', hour='17', minute='0'], next run at: 2026-01-11 17:00:00 CET)" (scheduled at 2026-01-10 23:58:17.495575+01:00) +2026-01-10 23:58:17,534 INFO openscada_lite.modules.communication.manager.connector_manager [COMMAND] Sending command: TasmotaRelayDriver@RELAY_1_CMD = ON +2026-01-10 23:58:17,534 WARNING openscada_lite.modules.communication.manager.connector_manager Driver 'TasmotaRelayDriver' is not connected. Cannot send command. +2026-01-10 23:58:17,535 INFO openscada_lite.modules.communication.manager.connector_manager [COMMAND] Sending command: TasmotaRelayDriver@RELAY_2_CMD = ON +2026-01-10 23:58:17,535 WARNING openscada_lite.modules.communication.manager.connector_manager Driver 'TasmotaRelayDriver' is not connected. Cannot send command. +2026-01-10 23:58:17,536 INFO apscheduler.executors.default Job "ScheduleService._execute_schedule (trigger: cron[month='*', day='*', day_of_week='*', hour='17', minute='0'], next run at: 2026-01-11 17:00:00 CET)" executed successfully +2026-01-10 23:58:17,536 INFO apscheduler.executors.default Running job "ScheduleService._execute_schedule (trigger: cron[month='*', day='*', day_of_week='*', hour='23', minute='0'], next run at: 2026-01-11 23:00:00 CET)" (scheduled at 2026-01-10 23:58:17.496101+01:00) +2026-01-10 23:58:17,537 INFO openscada_lite.modules.communication.manager.connector_manager [COMMAND] Sending command: TasmotaRelayDriver@RELAY_1_CMD = OFF +2026-01-10 23:58:17,537 WARNING openscada_lite.modules.communication.manager.connector_manager Driver 'TasmotaRelayDriver' is not connected. Cannot send command. +2026-01-10 23:58:17,538 INFO openscada_lite.modules.communication.manager.connector_manager [COMMAND] Sending command: TasmotaRelayDriver@RELAY_2_CMD = OFF +2026-01-10 23:58:17,539 WARNING openscada_lite.modules.communication.manager.connector_manager Driver 'TasmotaRelayDriver' is not connected. Cannot send command. +2026-01-10 23:58:17,539 INFO apscheduler.executors.default Job "ScheduleService._execute_schedule (trigger: cron[month='*', day='*', day_of_week='*', hour='23', minute='0'], next run at: 2026-01-11 23:00:00 CET)" executed successfully +2026-01-10 23:58:36,801 INFO openscada_lite.modules.communication.manager.connector_manager [COMMAND] Sending command: TasmotaRelayDriver@RELAY_1_CMD = TOGGLE +2026-01-10 23:58:44,816 INFO openscada_lite.modules.communication.manager.connector_manager [COMMAND] Sending command: TasmotaRelayDriver@RELAY_1_CMD = TOGGLE +2026-01-10 23:58:50,525 INFO openscada_lite.modules.communication.manager.connector_manager [COMMAND] Sending command: TasmotaRelayDriver@RELAY_1_CMD = TOGGLE +2026-01-10 23:59:28,374 INFO openscada_lite.modules.security.controller User admin logged in successfully +2026-01-10 23:59:40,566 INFO openscada_lite.modules.communication.manager.connector_manager [COMMAND] Sending command: TasmotaRelayDriver@RELAY_2_CMD = TOGGLE +2026-01-10 23:59:46,109 INFO openscada_lite.modules.communication.manager.connector_manager [COMMAND] Sending command: TasmotaRelayDriver@RELAY_2_CMD = TOGGLE +2026-01-11 00:00:40,359 INFO openscada_lite.app [LIFESPAN] Shutdown complete +2026-01-11 00:00:43,161 INFO openscada_lite.app [LIFESPAN] Startup starting... +2026-01-11 00:00:43,837 INFO openscada_lite.modules.communication.drivers.opc_ua_server_driver [OPCUA] Will expose 6 nodes on connect() +2026-01-11 00:00:43,838 INFO openscada_lite.modules.communication.drivers.test.test_driver [INIT] Creating TestDriver CameraDriver +2026-01-11 00:00:43,838 INFO openscada_lite.modules.communication.drivers.test.test_driver [INIT] Creating TestDriver WaterTank +2026-01-11 00:00:43,839 INFO openscada_lite.modules.communication.drivers.test.test_driver [INIT] Creating TestDriver StressTest +2026-01-11 00:00:43,841 INFO openscada_lite.modules.communication.drivers.test.test_driver [INIT] Creating TestDriver TrainTestDriver +2026-01-11 00:00:43,968 INFO apscheduler.scheduler Adding job tentatively -- it will be properly scheduled when the scheduler starts +2026-01-11 00:00:43,969 INFO apscheduler.scheduler Adding job tentatively -- it will be properly scheduled when the scheduler starts +2026-01-11 00:00:43,970 INFO apscheduler.scheduler Added job "ScheduleService._execute_schedule" to job store "default" +2026-01-11 00:00:43,971 INFO apscheduler.scheduler Added job "ScheduleService._execute_schedule" to job store "default" +2026-01-11 00:00:43,971 INFO apscheduler.scheduler Scheduler started +2026-01-11 00:00:43,997 INFO openscada_lite.modules.rule.manager.rule_manager Initializing RuleEngine with datapoint types: ['BOOL', 'CAMERA_POSITION', 'LEVEL', 'OPENED_CLOSED', 'OPEN_CLOSE_CMD', 'PRESSURE', 'START_STOP', 'START_STOP_CMD', 'SWITCH_CONTROL', 'SWITCH_CONTROL_CMD', 'TEMPERATURE', 'ON_OFF'] +2026-01-11 00:00:44,009 INFO openscada_lite.app [LIFESPAN] Startup complete +2026-01-11 00:00:44,010 INFO apscheduler.executors.default Running job "ScheduleService._execute_schedule (trigger: cron[month='*', day='*', day_of_week='*', hour='17', minute='0'], next run at: 2026-01-11 17:00:00 CET)" (scheduled at 2026-01-11 00:00:43.968341+01:00) +2026-01-11 00:00:44,011 INFO openscada_lite.modules.communication.manager.connector_manager [COMMAND] Sending command: TasmotaRelayDriver@RELAY_1_CMD = ON +2026-01-11 00:00:44,011 WARNING openscada_lite.modules.communication.manager.connector_manager Driver 'TasmotaRelayDriver' is not connected. Cannot send command. +2026-01-11 00:00:44,012 INFO openscada_lite.modules.communication.manager.connector_manager [COMMAND] Sending command: TasmotaRelayDriver@RELAY_2_CMD = ON +2026-01-11 00:00:44,012 WARNING openscada_lite.modules.communication.manager.connector_manager Driver 'TasmotaRelayDriver' is not connected. Cannot send command. +2026-01-11 00:00:44,012 INFO apscheduler.executors.default Job "ScheduleService._execute_schedule (trigger: cron[month='*', day='*', day_of_week='*', hour='17', minute='0'], next run at: 2026-01-11 17:00:00 CET)" executed successfully +2026-01-11 00:00:44,013 INFO apscheduler.executors.default Running job "ScheduleService._execute_schedule (trigger: cron[month='*', day='*', day_of_week='*', hour='23', minute='0'], next run at: 2026-01-11 23:00:00 CET)" (scheduled at 2026-01-11 00:00:43.969006+01:00) +2026-01-11 00:00:44,013 INFO openscada_lite.modules.communication.manager.connector_manager [COMMAND] Sending command: TasmotaRelayDriver@RELAY_1_CMD = OFF +2026-01-11 00:00:44,014 WARNING openscada_lite.modules.communication.manager.connector_manager Driver 'TasmotaRelayDriver' is not connected. Cannot send command. +2026-01-11 00:00:44,015 INFO openscada_lite.modules.communication.manager.connector_manager [COMMAND] Sending command: TasmotaRelayDriver@RELAY_2_CMD = OFF +2026-01-11 00:00:44,015 WARNING openscada_lite.modules.communication.manager.connector_manager Driver 'TasmotaRelayDriver' is not connected. Cannot send command. +2026-01-11 00:00:44,016 INFO apscheduler.executors.default Job "ScheduleService._execute_schedule (trigger: cron[month='*', day='*', day_of_week='*', hour='23', minute='0'], next run at: 2026-01-11 23:00:00 CET)" executed successfully +2026-01-11 00:00:56,742 INFO openscada_lite.modules.communication.manager.connector_manager [COMMAND] Sending command: TasmotaRelayDriver@RELAY_1_CMD = TOGGLE +2026-01-11 00:01:09,048 INFO openscada_lite.modules.communication.manager.connector_manager [COMMAND] Sending command: TasmotaRelayDriver@RELAY_1_CMD = TOGGLE +2026-01-11 00:01:15,204 INFO openscada_lite.modules.communication.manager.connector_manager [COMMAND] Sending command: TasmotaRelayDriver@RELAY_1_CMD = TOGGLE +2026-01-11 00:02:04,429 INFO openscada_lite.app [LIFESPAN] Startup starting... +2026-01-11 00:02:05,087 INFO openscada_lite.modules.communication.drivers.opc_ua_server_driver [OPCUA] Will expose 6 nodes on connect() +2026-01-11 00:02:05,088 INFO openscada_lite.modules.communication.drivers.test.test_driver [INIT] Creating TestDriver CameraDriver +2026-01-11 00:02:05,088 INFO openscada_lite.modules.communication.drivers.test.test_driver [INIT] Creating TestDriver WaterTank +2026-01-11 00:02:05,089 INFO openscada_lite.modules.communication.drivers.test.test_driver [INIT] Creating TestDriver StressTest +2026-01-11 00:02:05,090 INFO openscada_lite.modules.communication.drivers.test.test_driver [INIT] Creating TestDriver TrainTestDriver +2026-01-11 00:02:05,219 INFO apscheduler.scheduler Adding job tentatively -- it will be properly scheduled when the scheduler starts +2026-01-11 00:02:05,220 INFO apscheduler.scheduler Adding job tentatively -- it will be properly scheduled when the scheduler starts +2026-01-11 00:02:05,221 INFO apscheduler.scheduler Added job "ScheduleService._execute_schedule" to job store "default" +2026-01-11 00:02:05,222 INFO apscheduler.scheduler Added job "ScheduleService._execute_schedule" to job store "default" +2026-01-11 00:02:05,222 INFO apscheduler.scheduler Scheduler started +2026-01-11 00:02:05,245 INFO openscada_lite.modules.rule.manager.rule_manager Initializing RuleEngine with datapoint types: ['BOOL', 'CAMERA_POSITION', 'LEVEL', 'OPENED_CLOSED', 'OPEN_CLOSE_CMD', 'PRESSURE', 'START_STOP', 'START_STOP_CMD', 'SWITCH_CONTROL', 'SWITCH_CONTROL_CMD', 'TEMPERATURE', 'ON_OFF'] +2026-01-11 00:02:05,257 INFO openscada_lite.app [LIFESPAN] Startup complete +2026-01-11 00:02:05,258 INFO apscheduler.executors.default Running job "ScheduleService._execute_schedule (trigger: cron[month='*', day='*', day_of_week='*', hour='17', minute='0'], next run at: 2026-01-11 17:00:00 CET)" (scheduled at 2026-01-11 00:02:05.219307+01:00) +2026-01-11 00:02:05,259 INFO openscada_lite.modules.communication.manager.connector_manager [COMMAND] Sending command: TasmotaRelayDriver@RELAY_1_CMD = ON +2026-01-11 00:02:05,259 WARNING openscada_lite.modules.communication.manager.connector_manager Driver 'TasmotaRelayDriver' is not connected. Cannot send command. +2026-01-11 00:02:05,260 INFO openscada_lite.modules.communication.manager.connector_manager [COMMAND] Sending command: TasmotaRelayDriver@RELAY_2_CMD = ON +2026-01-11 00:02:05,260 WARNING openscada_lite.modules.communication.manager.connector_manager Driver 'TasmotaRelayDriver' is not connected. Cannot send command. +2026-01-11 00:02:05,261 INFO apscheduler.executors.default Job "ScheduleService._execute_schedule (trigger: cron[month='*', day='*', day_of_week='*', hour='17', minute='0'], next run at: 2026-01-11 17:00:00 CET)" executed successfully +2026-01-11 00:02:05,261 INFO apscheduler.executors.default Running job "ScheduleService._execute_schedule (trigger: cron[month='*', day='*', day_of_week='*', hour='23', minute='0'], next run at: 2026-01-11 23:00:00 CET)" (scheduled at 2026-01-11 00:02:05.219986+01:00) +2026-01-11 00:02:05,262 INFO openscada_lite.modules.communication.manager.connector_manager [COMMAND] Sending command: TasmotaRelayDriver@RELAY_1_CMD = OFF +2026-01-11 00:02:05,262 WARNING openscada_lite.modules.communication.manager.connector_manager Driver 'TasmotaRelayDriver' is not connected. Cannot send command. +2026-01-11 00:02:05,262 INFO openscada_lite.modules.communication.manager.connector_manager [COMMAND] Sending command: TasmotaRelayDriver@RELAY_2_CMD = OFF +2026-01-11 00:02:05,263 WARNING openscada_lite.modules.communication.manager.connector_manager Driver 'TasmotaRelayDriver' is not connected. Cannot send command. +2026-01-11 00:02:05,263 INFO apscheduler.executors.default Job "ScheduleService._execute_schedule (trigger: cron[month='*', day='*', day_of_week='*', hour='23', minute='0'], next run at: 2026-01-11 23:00:00 CET)" executed successfully +2026-01-11 00:02:24,048 INFO openscada_lite.modules.security.controller User admin logged in successfully +2026-01-11 00:02:30,245 INFO openscada_lite.modules.security.controller User admin logged in successfully +2026-01-11 00:02:40,354 INFO openscada_lite.modules.communication.manager.connector_manager [COMMAND] Sending command: TasmotaRelayDriver@RELAY_1_CMD = TOGGLE +2026-01-11 00:02:40,354 WARNING openscada_lite.modules.communication.manager.connector_manager Driver 'TasmotaRelayDriver' is not connected. Cannot send command. +2026-01-11 00:02:46,194 INFO openscada_lite.modules.communication.manager.connector_manager [COMMAND] Sending command: TasmotaRelayDriver@RELAY_1_CMD = TOGGLE +2026-01-11 00:02:46,195 WARNING openscada_lite.modules.communication.manager.connector_manager Driver 'TasmotaRelayDriver' is not connected. Cannot send command. +2026-01-11 00:02:58,431 INFO openscada_lite.modules.communication.manager.connector_manager [COMMAND] Sending command: TasmotaRelayDriver@RELAY_1_CMD = TOGGLE +2026-01-11 00:03:03,669 INFO openscada_lite.modules.communication.manager.connector_manager [COMMAND] Sending command: TasmotaRelayDriver@RELAY_2_CMD = TOGGLE +2026-01-11 00:09:05,325 INFO openscada_lite.app [LIFESPAN] Startup starting... +2026-01-11 00:09:05,968 INFO openscada_lite.modules.communication.drivers.test.test_driver [INIT] Creating TestDriver WaterTank +2026-01-11 00:09:05,969 INFO openscada_lite.modules.communication.drivers.test.test_driver [INIT] Creating TestDriver AuxServer +2026-01-11 00:09:06,001 INFO openscada_lite.app [LIFESPAN] Startup complete +2026-01-11 00:09:12,701 INFO openscada_lite.modules.communication.manager.connector_manager [COMMAND] Sending command: WaterTank@TANK = 42 +2026-01-11 00:09:12,701 WARNING openscada_lite.modules.communication.manager.connector_manager Driver 'WaterTank' is not connected. Cannot send command. +2026-01-11 00:09:14,972 INFO openscada_lite.modules.communication.drivers.test.test_driver [INIT] Creating TestDriver WaterTank +2026-01-11 00:09:14,972 INFO openscada_lite.modules.communication.drivers.test.test_driver [INIT] Creating TestDriver AuxServer +2026-01-11 00:09:14,975 INFO openscada_lite.modules.communication.drivers.test.test_driver [INIT] Initializing values for WaterTank tags: {'TANK': RawTagUpdateMsg(track_id='e5a91bfd-91a9-40e4-a1a0-4f709e9c82d6', datapoint_identifier='WaterTank@TANK', value=0.0, quality='good', timestamp=datetime.datetime(2026, 1, 11, 0, 9, 14, 972561)), 'PUMP': RawTagUpdateMsg(track_id='f0224adb-557c-49b7-969e-57aa122c0ac0', datapoint_identifier='WaterTank@PUMP', value='CLOSED', quality='good', timestamp=datetime.datetime(2026, 1, 11, 0, 9, 14, 972561)), 'DOOR': RawTagUpdateMsg(track_id='cfe58afd-ea86-4a49-b84f-4ea9e256b835', datapoint_identifier='WaterTank@DOOR', value='CLOSED', quality='good', timestamp=datetime.datetime(2026, 1, 11, 0, 9, 14, 972561))} +2026-01-11 00:09:14,978 INFO openscada_lite.modules.communication.drivers.test.test_driver [INIT] Creating TestDriver WaterTank +2026-01-11 00:09:14,978 INFO openscada_lite.modules.communication.drivers.test.test_driver [INIT] Creating TestDriver AuxServer +2026-01-11 00:09:14,987 INFO openscada_lite.modules.communication.drivers.test.test_driver [INIT] Creating TestDriver WaterTank +2026-01-11 00:09:14,987 INFO openscada_lite.modules.communication.drivers.test.test_driver [INIT] Creating TestDriver AuxServer +2026-01-11 00:09:14,988 INFO openscada_lite.modules.communication.drivers.test.test_driver [INIT] Initializing values for WaterTank tags: {'TANK': RawTagUpdateMsg(track_id='3d08fede-5499-40fe-9f60-e8ae04b7a65c', datapoint_identifier='WaterTank@TANK', value=0.0, quality='good', timestamp=datetime.datetime(2026, 1, 11, 0, 9, 14, 987408)), 'PUMP': RawTagUpdateMsg(track_id='2abd25b1-ac7b-471d-8d1d-66f519d4379e', datapoint_identifier='WaterTank@PUMP', value='CLOSED', quality='good', timestamp=datetime.datetime(2026, 1, 11, 0, 9, 14, 987408)), 'DOOR': RawTagUpdateMsg(track_id='ac068f8d-f40c-4930-9c90-c2f5a46ae592', datapoint_identifier='WaterTank@DOOR', value='CLOSED', quality='good', timestamp=datetime.datetime(2026, 1, 11, 0, 9, 14, 987408))} +2026-01-11 00:09:14,988 INFO openscada_lite.modules.communication.drivers.test.test_driver [INIT] Initializing values for AuxServer tags: {'VALVE': RawTagUpdateMsg(track_id='838dc710-fac3-4f89-babd-cd4112db9f4b', datapoint_identifier='AuxServer@VALVE', value='CLOSED', quality='good', timestamp=datetime.datetime(2026, 1, 11, 0, 9, 14, 987584)), 'PRESSURE': RawTagUpdateMsg(track_id='bad9fa33-79f9-4509-a347-b4f1b3b7b34c', datapoint_identifier='AuxServer@PRESSURE', value=50.0, quality='good', timestamp=datetime.datetime(2026, 1, 11, 0, 9, 14, 987584)), 'TEMPERATURE': RawTagUpdateMsg(track_id='5baf062b-9bc1-47cb-a46b-7b6dd0d1edc3', datapoint_identifier='AuxServer@TEMPERATURE', value=120.0, quality='good', timestamp=datetime.datetime(2026, 1, 11, 0, 9, 14, 987584)), 'HEATER': RawTagUpdateMsg(track_id='c59cdd0e-5583-4868-9eb5-18fb5d773223', datapoint_identifier='AuxServer@HEATER', value='CLOSED', quality='good', timestamp=datetime.datetime(2026, 1, 11, 0, 9, 14, 987584))} +2026-01-11 00:09:14,988 INFO openscada_lite.modules.communication.drivers.test.test_driver [DISCONNECT] Disconnecting driver WaterTank +2026-01-11 00:09:14,989 INFO openscada_lite.modules.communication.drivers.test.test_driver [DISCONNECT] Disconnecting driver AuxServer +2026-01-11 00:09:16,901 INFO openscada_lite.app [LIFESPAN] Startup starting... +2026-01-11 00:09:17,488 INFO openscada_lite.modules.communication.drivers.test.test_driver [INIT] Creating TestDriver WaterTank +2026-01-11 00:09:17,488 INFO openscada_lite.modules.communication.drivers.test.test_driver [INIT] Creating TestDriver AuxServer +2026-01-11 00:09:17,498 INFO openscada_lite.app [LIFESPAN] Startup complete +2026-01-11 00:09:26,488 INFO openscada_lite.modules.communication.drivers.test.test_driver [INIT] Creating TestDriver WaterTank +2026-01-11 00:09:26,489 INFO openscada_lite.modules.communication.drivers.test.test_driver [INIT] Creating TestDriver AuxServer +2026-01-11 00:09:26,489 INFO openscada_lite.modules.communication.drivers.test.test_driver [INIT] Initializing values for WaterTank tags: {'TANK': RawTagUpdateMsg(track_id='f63196af-f699-484d-b113-dc7156ad6f54', datapoint_identifier='WaterTank@TANK', value=0.0, quality='good', timestamp=datetime.datetime(2026, 1, 11, 0, 9, 26, 489019)), 'PUMP': RawTagUpdateMsg(track_id='df64517a-ab38-487e-b15f-81fa108b269b', datapoint_identifier='WaterTank@PUMP', value='CLOSED', quality='good', timestamp=datetime.datetime(2026, 1, 11, 0, 9, 26, 489019)), 'DOOR': RawTagUpdateMsg(track_id='eb3553eb-b2fb-4c2b-ab4c-1afb752836bb', datapoint_identifier='WaterTank@DOOR', value='CLOSED', quality='good', timestamp=datetime.datetime(2026, 1, 11, 0, 9, 26, 489019))} +2026-01-11 00:09:26,490 INFO openscada_lite.modules.communication.drivers.test.test_driver [INIT] Initializing values for AuxServer tags: {'VALVE': RawTagUpdateMsg(track_id='aa3d47ae-b8a3-44e2-88cb-8545fe637d60', datapoint_identifier='AuxServer@VALVE', value='CLOSED', quality='good', timestamp=datetime.datetime(2026, 1, 11, 0, 9, 26, 489220)), 'PRESSURE': RawTagUpdateMsg(track_id='45a607f1-3c2d-4718-b3ef-23471c07fe1c', datapoint_identifier='AuxServer@PRESSURE', value=50.0, quality='good', timestamp=datetime.datetime(2026, 1, 11, 0, 9, 26, 489220)), 'TEMPERATURE': RawTagUpdateMsg(track_id='3268adb6-03aa-42b1-b4a8-515864ccfe37', datapoint_identifier='AuxServer@TEMPERATURE', value=120.0, quality='good', timestamp=datetime.datetime(2026, 1, 11, 0, 9, 26, 489220)), 'HEATER': RawTagUpdateMsg(track_id='ed5e0aa9-ec5f-456b-a644-1bf5e1d2ec28', datapoint_identifier='AuxServer@HEATER', value='CLOSED', quality='good', timestamp=datetime.datetime(2026, 1, 11, 0, 9, 26, 489220))} +2026-01-11 00:09:28,491 INFO openscada_lite.modules.communication.drivers.test.test_driver [DISCONNECT] Disconnecting driver WaterTank +2026-01-11 00:09:28,491 INFO openscada_lite.modules.communication.drivers.test.test_driver [DISCONNECT] Disconnecting driver AuxServer +2026-01-11 00:09:28,506 INFO openscada_lite.modules.communication.drivers.test.test_driver [INIT] Initializing values for WaterTank tags: {'TANK': RawTagUpdateMsg(track_id='f63196af-f699-484d-b113-dc7156ad6f54', datapoint_identifier='WaterTank@TANK', value=0.0, quality='good', timestamp=datetime.datetime(2026, 1, 11, 0, 9, 26, 489543)), 'PUMP': RawTagUpdateMsg(track_id='df64517a-ab38-487e-b15f-81fa108b269b', datapoint_identifier='WaterTank@PUMP', value='CLOSED', quality='good', timestamp=datetime.datetime(2026, 1, 11, 0, 9, 26, 489543)), 'DOOR': RawTagUpdateMsg(track_id='eb3553eb-b2fb-4c2b-ab4c-1afb752836bb', datapoint_identifier='WaterTank@DOOR', value='CLOSED', quality='good', timestamp=datetime.datetime(2026, 1, 11, 0, 9, 26, 489543))} +2026-01-11 00:09:28,506 INFO openscada_lite.modules.communication.drivers.test.test_driver [INIT] Initializing values for AuxServer tags: {'VALVE': RawTagUpdateMsg(track_id='aa3d47ae-b8a3-44e2-88cb-8545fe637d60', datapoint_identifier='AuxServer@VALVE', value='CLOSED', quality='good', timestamp=datetime.datetime(2026, 1, 11, 0, 9, 26, 490279)), 'PRESSURE': RawTagUpdateMsg(track_id='45a607f1-3c2d-4718-b3ef-23471c07fe1c', datapoint_identifier='AuxServer@PRESSURE', value=50.0, quality='good', timestamp=datetime.datetime(2026, 1, 11, 0, 9, 26, 490279)), 'TEMPERATURE': RawTagUpdateMsg(track_id='3268adb6-03aa-42b1-b4a8-515864ccfe37', datapoint_identifier='AuxServer@TEMPERATURE', value=120.0, quality='good', timestamp=datetime.datetime(2026, 1, 11, 0, 9, 26, 490279)), 'HEATER': RawTagUpdateMsg(track_id='ed5e0aa9-ec5f-456b-a644-1bf5e1d2ec28', datapoint_identifier='AuxServer@HEATER', value='CLOSED', quality='good', timestamp=datetime.datetime(2026, 1, 11, 0, 9, 26, 490279))} +2026-01-11 00:09:28,507 INFO openscada_lite.modules.communication.manager.connector_manager [COMMAND] Sending command: WaterTank@TANK = 99 +2026-01-11 00:09:28,507 INFO openscada_lite.modules.communication.drivers.test.test_driver [COMMAND] Handling special command: TANK = 99 +2026-01-11 00:09:28,507 INFO openscada_lite.modules.communication.drivers.test.test_driver [DISCONNECT] Disconnecting driver WaterTank +2026-01-11 00:09:28,507 INFO openscada_lite.modules.communication.drivers.test.test_driver [DISCONNECT] Disconnecting driver AuxServer +2026-01-11 00:09:28,511 INFO openscada_lite.modules.communication.drivers.test.test_driver [INIT] Initializing values for WaterTank tags: {'TANK': RawTagUpdateMsg(track_id='f63196af-f699-484d-b113-dc7156ad6f54', datapoint_identifier='WaterTank@TANK', value=99, quality='good', timestamp=datetime.datetime(2026, 1, 11, 0, 9, 28, 507186)), 'PUMP': RawTagUpdateMsg(track_id='df64517a-ab38-487e-b15f-81fa108b269b', datapoint_identifier='WaterTank@PUMP', value='CLOSED', quality='good', timestamp=datetime.datetime(2026, 1, 11, 0, 9, 28, 506104)), 'DOOR': RawTagUpdateMsg(track_id='eb3553eb-b2fb-4c2b-ab4c-1afb752836bb', datapoint_identifier='WaterTank@DOOR', value='CLOSED', quality='good', timestamp=datetime.datetime(2026, 1, 11, 0, 9, 28, 506104))} +2026-01-11 00:09:28,512 INFO openscada_lite.modules.communication.drivers.test.test_driver [INIT] Initializing values for AuxServer tags: {'VALVE': RawTagUpdateMsg(track_id='aa3d47ae-b8a3-44e2-88cb-8545fe637d60', datapoint_identifier='AuxServer@VALVE', value='CLOSED', quality='good', timestamp=datetime.datetime(2026, 1, 11, 0, 9, 28, 506543)), 'PRESSURE': RawTagUpdateMsg(track_id='45a607f1-3c2d-4718-b3ef-23471c07fe1c', datapoint_identifier='AuxServer@PRESSURE', value=50.0, quality='good', timestamp=datetime.datetime(2026, 1, 11, 0, 9, 28, 506543)), 'TEMPERATURE': RawTagUpdateMsg(track_id='3268adb6-03aa-42b1-b4a8-515864ccfe37', datapoint_identifier='AuxServer@TEMPERATURE', value=120.0, quality='good', timestamp=datetime.datetime(2026, 1, 11, 0, 9, 28, 506543)), 'HEATER': RawTagUpdateMsg(track_id='ed5e0aa9-ec5f-456b-a644-1bf5e1d2ec28', datapoint_identifier='AuxServer@HEATER', value='CLOSED', quality='good', timestamp=datetime.datetime(2026, 1, 11, 0, 9, 28, 506543))} +2026-01-11 00:09:28,512 INFO openscada_lite.modules.rule.manager.rule_manager Initializing RuleEngine with datapoint types: ['LEVEL', 'STATUS', 'PRESSURE', 'TEMPERATURE'] +2026-01-11 00:09:28,513 ERROR openscada_lite.modules.communication.drivers.test.test_driver Exception in callback >: name 'ACTION_MAP' is not defined +2026-01-11 00:09:28,884 INFO openscada_lite.modules.rule.manager.rule_manager Initializing RuleEngine with datapoint types: ['LEVEL', 'STATUS', 'PRESSURE', 'TEMPERATURE'] +2026-01-11 00:09:28,915 INFO openscada_lite.modules.rule.manager.rule_manager Initializing RuleEngine with datapoint types: ['LEVEL', 'STATUS', 'PRESSURE', 'TEMPERATURE'] +2026-01-11 00:09:28,958 INFO openscada_lite.modules.rule.manager.rule_manager Initializing RuleEngine with datapoint types: ['LEVEL', 'STATUS', 'PRESSURE', 'TEMPERATURE'] +2026-01-11 00:09:29,056 INFO openscada_lite.modules.rule.manager.rule_manager Initializing RuleEngine with datapoint types: ['LEVEL', 'STATUS', 'PRESSURE', 'TEMPERATURE'] +2026-01-11 00:09:29,096 INFO openscada_lite.modules.rule.manager.rule_manager Initializing RuleEngine with datapoint types: ['LEVEL', 'STATUS', 'PRESSURE', 'TEMPERATURE'] +2026-01-11 00:09:29,130 INFO openscada_lite.modules.rule.manager.rule_manager Initializing RuleEngine with datapoint types: ['LEVEL', 'STATUS', 'PRESSURE', 'TEMPERATURE'] +2026-01-11 00:09:29,165 INFO openscada_lite.modules.rule.manager.rule_manager Initializing RuleEngine with datapoint types: ['LEVEL', 'STATUS', 'PRESSURE', 'TEMPERATURE'] +2026-01-11 00:09:29,209 INFO openscada_lite.modules.rule.manager.rule_manager Initializing RuleEngine with datapoint types: ['LEVEL', 'STATUS', 'PRESSURE', 'TEMPERATURE'] +2026-01-11 00:09:29,298 INFO openscada_lite.modules.security.controller User admin logged in successfully +2026-01-11 00:09:29,342 WARNING openscada_lite.modules.security.controller Authentication failed for user: admin +2026-01-11 00:09:29,347 WARNING openscada_lite.modules.security.controller Authentication failed for user: ghost +2026-01-11 00:09:29,434 INFO openscada_lite.modules.security.controller User admin logged in successfully +2026-01-11 00:09:29,444 INFO openscada_lite.modules.communication.drivers.test.test_driver [INIT] Creating TestDriver WaterTank +2026-01-11 00:09:29,444 INFO openscada_lite.modules.communication.drivers.test.test_driver [INIT] Initializing values for WaterTank tags: {'TANK': RawTagUpdateMsg(track_id='74377e12-ed01-40dd-b9e4-925320a19e1d', datapoint_identifier='WaterTank@TANK', value=0, quality='good', timestamp=datetime.datetime(2026, 1, 11, 0, 9, 29, 444729)), 'PUMP': RawTagUpdateMsg(track_id='711ee1a2-0717-4b60-bff6-87fc395cec25', datapoint_identifier='WaterTank@PUMP', value='CLOSED', quality='good', timestamp=datetime.datetime(2026, 1, 11, 0, 9, 29, 444729)), 'DOOR': RawTagUpdateMsg(track_id='4f444dae-1bf6-4e22-9b9e-2d337f410766', datapoint_identifier='WaterTank@DOOR', value='CLOSED', quality='good', timestamp=datetime.datetime(2026, 1, 11, 0, 9, 29, 444729))} +2026-01-11 00:09:31,445 INFO openscada_lite.modules.communication.drivers.test.test_driver [DISCONNECT] Disconnecting driver WaterTank +2026-01-11 00:09:31,449 INFO openscada_lite.modules.communication.drivers.test.test_driver [INIT] Creating TestDriver WaterTank +2026-01-11 00:09:31,449 INFO openscada_lite.modules.communication.drivers.test.test_driver [INIT] Initializing values for WaterTank tags: {'TANK': RawTagUpdateMsg(track_id='bdc4f8b2-a5ec-4d7b-988b-afb04caedb82', datapoint_identifier='WaterTank@TANK', value=0.0, quality='good', timestamp=datetime.datetime(2026, 1, 11, 0, 9, 31, 449493))} +2026-01-11 00:09:31,449 INFO openscada_lite.modules.communication.drivers.test.test_driver [COMMAND] Handling special command: TANK = 50 +2026-01-11 00:09:31,449 INFO openscada_lite.modules.communication.drivers.test.test_driver [DISCONNECT] Disconnecting driver WaterTank +2026-01-11 00:10:43,328 INFO openscada_lite.app [LIFESPAN] Startup starting... +2026-01-11 00:10:43,863 INFO openscada_lite.modules.communication.drivers.test.test_driver [INIT] Creating TestDriver WaterTank +2026-01-11 00:10:43,864 INFO openscada_lite.modules.communication.drivers.test.test_driver [INIT] Creating TestDriver AuxServer +2026-01-11 00:10:43,876 INFO openscada_lite.app [LIFESPAN] Startup complete +2026-01-11 00:10:51,078 INFO openscada_lite.modules.communication.manager.connector_manager [COMMAND] Sending command: WaterTank@TANK = 42 +2026-01-11 00:10:51,078 WARNING openscada_lite.modules.communication.manager.connector_manager Driver 'WaterTank' is not connected. Cannot send command. +2026-01-11 00:10:53,333 INFO openscada_lite.modules.communication.drivers.test.test_driver [INIT] Creating TestDriver WaterTank +2026-01-11 00:10:53,333 INFO openscada_lite.modules.communication.drivers.test.test_driver [INIT] Creating TestDriver AuxServer +2026-01-11 00:10:53,335 INFO openscada_lite.modules.communication.drivers.test.test_driver [INIT] Initializing values for WaterTank tags: {'TANK': RawTagUpdateMsg(track_id='f4dfa270-c08a-42d9-b205-db9174dcafd0', datapoint_identifier='WaterTank@TANK', value=0.0, quality='good', timestamp=datetime.datetime(2026, 1, 11, 0, 10, 53, 333761)), 'PUMP': RawTagUpdateMsg(track_id='0384b627-ba92-4bfb-9863-8390e899acab', datapoint_identifier='WaterTank@PUMP', value='CLOSED', quality='good', timestamp=datetime.datetime(2026, 1, 11, 0, 10, 53, 333761)), 'DOOR': RawTagUpdateMsg(track_id='111be95a-abc7-4119-b6d5-9bc68d768f1d', datapoint_identifier='WaterTank@DOOR', value='CLOSED', quality='good', timestamp=datetime.datetime(2026, 1, 11, 0, 10, 53, 333761))} +2026-01-11 00:10:53,339 INFO openscada_lite.modules.communication.drivers.test.test_driver [INIT] Creating TestDriver WaterTank +2026-01-11 00:10:53,339 INFO openscada_lite.modules.communication.drivers.test.test_driver [INIT] Creating TestDriver AuxServer +2026-01-11 00:10:53,348 INFO openscada_lite.modules.communication.drivers.test.test_driver [INIT] Creating TestDriver WaterTank +2026-01-11 00:10:53,348 INFO openscada_lite.modules.communication.drivers.test.test_driver [INIT] Creating TestDriver AuxServer +2026-01-11 00:10:53,349 INFO openscada_lite.modules.communication.drivers.test.test_driver [INIT] Initializing values for WaterTank tags: {'TANK': RawTagUpdateMsg(track_id='e6bd9e88-f21b-41d1-93b2-95f110017cab', datapoint_identifier='WaterTank@TANK', value=0.0, quality='good', timestamp=datetime.datetime(2026, 1, 11, 0, 10, 53, 348457)), 'PUMP': RawTagUpdateMsg(track_id='7da29c48-e6ba-4e42-9c0c-418b4ae85472', datapoint_identifier='WaterTank@PUMP', value='CLOSED', quality='good', timestamp=datetime.datetime(2026, 1, 11, 0, 10, 53, 348457)), 'DOOR': RawTagUpdateMsg(track_id='e7f119f7-d781-473b-adcc-33397d02aec6', datapoint_identifier='WaterTank@DOOR', value='CLOSED', quality='good', timestamp=datetime.datetime(2026, 1, 11, 0, 10, 53, 348457))} +2026-01-11 00:10:53,349 INFO openscada_lite.modules.communication.drivers.test.test_driver [INIT] Initializing values for AuxServer tags: {'VALVE': RawTagUpdateMsg(track_id='09c35e5f-90b6-450d-bcc2-c6e8b614dd09', datapoint_identifier='AuxServer@VALVE', value='CLOSED', quality='good', timestamp=datetime.datetime(2026, 1, 11, 0, 10, 53, 348716)), 'PRESSURE': RawTagUpdateMsg(track_id='22279d12-2a74-491f-b527-ccf7008c070d', datapoint_identifier='AuxServer@PRESSURE', value=50.0, quality='good', timestamp=datetime.datetime(2026, 1, 11, 0, 10, 53, 348716)), 'TEMPERATURE': RawTagUpdateMsg(track_id='a9c280bf-a53d-4149-9162-1105cf2d96b2', datapoint_identifier='AuxServer@TEMPERATURE', value=120.0, quality='good', timestamp=datetime.datetime(2026, 1, 11, 0, 10, 53, 348716)), 'HEATER': RawTagUpdateMsg(track_id='0b080479-8d32-432e-a2e4-20015992da37', datapoint_identifier='AuxServer@HEATER', value='CLOSED', quality='good', timestamp=datetime.datetime(2026, 1, 11, 0, 10, 53, 348716))} +2026-01-11 00:10:53,350 INFO openscada_lite.modules.communication.drivers.test.test_driver [DISCONNECT] Disconnecting driver WaterTank +2026-01-11 00:10:53,350 INFO openscada_lite.modules.communication.drivers.test.test_driver [DISCONNECT] Disconnecting driver AuxServer +2026-01-11 00:10:54,720 INFO openscada_lite.app [LIFESPAN] Startup starting... +2026-01-11 00:10:55,270 INFO openscada_lite.modules.communication.drivers.test.test_driver [INIT] Creating TestDriver WaterTank +2026-01-11 00:10:55,270 INFO openscada_lite.modules.communication.drivers.test.test_driver [INIT] Creating TestDriver AuxServer +2026-01-11 00:10:55,281 INFO openscada_lite.app [LIFESPAN] Startup complete +2026-01-11 00:11:04,848 INFO openscada_lite.modules.communication.drivers.test.test_driver [INIT] Creating TestDriver WaterTank +2026-01-11 00:11:04,849 INFO openscada_lite.modules.communication.drivers.test.test_driver [INIT] Creating TestDriver AuxServer +2026-01-11 00:11:04,849 INFO openscada_lite.modules.communication.drivers.test.test_driver [INIT] Initializing values for WaterTank tags: {'TANK': RawTagUpdateMsg(track_id='31175a39-336d-4c67-938f-8e7e34ec816c', datapoint_identifier='WaterTank@TANK', value=0.0, quality='good', timestamp=datetime.datetime(2026, 1, 11, 0, 11, 4, 849037)), 'PUMP': RawTagUpdateMsg(track_id='5e43f62e-e7aa-42e7-8174-461728a814fd', datapoint_identifier='WaterTank@PUMP', value='CLOSED', quality='good', timestamp=datetime.datetime(2026, 1, 11, 0, 11, 4, 849037)), 'DOOR': RawTagUpdateMsg(track_id='c3108055-ef67-49a6-bffe-18b363881174', datapoint_identifier='WaterTank@DOOR', value='CLOSED', quality='good', timestamp=datetime.datetime(2026, 1, 11, 0, 11, 4, 849037))} +2026-01-11 00:11:04,850 INFO openscada_lite.modules.communication.drivers.test.test_driver [INIT] Initializing values for AuxServer tags: {'VALVE': RawTagUpdateMsg(track_id='eca13815-9e33-4fdb-86a0-806ba9edb73f', datapoint_identifier='AuxServer@VALVE', value='CLOSED', quality='good', timestamp=datetime.datetime(2026, 1, 11, 0, 11, 4, 849208)), 'PRESSURE': RawTagUpdateMsg(track_id='edd55e9b-afcb-4230-8321-d7185814dc7f', datapoint_identifier='AuxServer@PRESSURE', value=50.0, quality='good', timestamp=datetime.datetime(2026, 1, 11, 0, 11, 4, 849208)), 'TEMPERATURE': RawTagUpdateMsg(track_id='3963c71e-2585-431d-b36f-9f32bd5eab45', datapoint_identifier='AuxServer@TEMPERATURE', value=120.0, quality='good', timestamp=datetime.datetime(2026, 1, 11, 0, 11, 4, 849208)), 'HEATER': RawTagUpdateMsg(track_id='3eb00ef0-40f2-4a8b-8ae5-2bde194fb57e', datapoint_identifier='AuxServer@HEATER', value='CLOSED', quality='good', timestamp=datetime.datetime(2026, 1, 11, 0, 11, 4, 849208))} +2026-01-11 00:11:06,852 INFO openscada_lite.modules.communication.drivers.test.test_driver [DISCONNECT] Disconnecting driver WaterTank +2026-01-11 00:11:06,852 INFO openscada_lite.modules.communication.drivers.test.test_driver [DISCONNECT] Disconnecting driver AuxServer +2026-01-11 00:11:06,857 INFO openscada_lite.modules.communication.drivers.test.test_driver [INIT] Initializing values for WaterTank tags: {'TANK': RawTagUpdateMsg(track_id='31175a39-336d-4c67-938f-8e7e34ec816c', datapoint_identifier='WaterTank@TANK', value=0.0, quality='good', timestamp=datetime.datetime(2026, 1, 11, 0, 11, 4, 849585)), 'PUMP': RawTagUpdateMsg(track_id='5e43f62e-e7aa-42e7-8174-461728a814fd', datapoint_identifier='WaterTank@PUMP', value='CLOSED', quality='good', timestamp=datetime.datetime(2026, 1, 11, 0, 11, 4, 849585)), 'DOOR': RawTagUpdateMsg(track_id='c3108055-ef67-49a6-bffe-18b363881174', datapoint_identifier='WaterTank@DOOR', value='CLOSED', quality='good', timestamp=datetime.datetime(2026, 1, 11, 0, 11, 4, 849585))} +2026-01-11 00:11:06,858 INFO openscada_lite.modules.communication.drivers.test.test_driver [INIT] Initializing values for AuxServer tags: {'VALVE': RawTagUpdateMsg(track_id='eca13815-9e33-4fdb-86a0-806ba9edb73f', datapoint_identifier='AuxServer@VALVE', value='CLOSED', quality='good', timestamp=datetime.datetime(2026, 1, 11, 0, 11, 4, 850471)), 'PRESSURE': RawTagUpdateMsg(track_id='edd55e9b-afcb-4230-8321-d7185814dc7f', datapoint_identifier='AuxServer@PRESSURE', value=50.0, quality='good', timestamp=datetime.datetime(2026, 1, 11, 0, 11, 4, 850471)), 'TEMPERATURE': RawTagUpdateMsg(track_id='3963c71e-2585-431d-b36f-9f32bd5eab45', datapoint_identifier='AuxServer@TEMPERATURE', value=120.0, quality='good', timestamp=datetime.datetime(2026, 1, 11, 0, 11, 4, 850471)), 'HEATER': RawTagUpdateMsg(track_id='3eb00ef0-40f2-4a8b-8ae5-2bde194fb57e', datapoint_identifier='AuxServer@HEATER', value='CLOSED', quality='good', timestamp=datetime.datetime(2026, 1, 11, 0, 11, 4, 850471))} +2026-01-11 00:11:06,858 INFO openscada_lite.modules.communication.manager.connector_manager [COMMAND] Sending command: WaterTank@TANK = 99 +2026-01-11 00:11:06,858 INFO openscada_lite.modules.communication.drivers.test.test_driver [COMMAND] Handling special command: TANK = 99 +2026-01-11 00:11:06,858 INFO openscada_lite.modules.communication.drivers.test.test_driver [DISCONNECT] Disconnecting driver WaterTank +2026-01-11 00:11:06,858 INFO openscada_lite.modules.communication.drivers.test.test_driver [DISCONNECT] Disconnecting driver AuxServer +2026-01-11 00:11:06,862 INFO openscada_lite.modules.communication.drivers.test.test_driver [INIT] Initializing values for WaterTank tags: {'TANK': RawTagUpdateMsg(track_id='31175a39-336d-4c67-938f-8e7e34ec816c', datapoint_identifier='WaterTank@TANK', value=99, quality='good', timestamp=datetime.datetime(2026, 1, 11, 0, 11, 6, 858607)), 'PUMP': RawTagUpdateMsg(track_id='5e43f62e-e7aa-42e7-8174-461728a814fd', datapoint_identifier='WaterTank@PUMP', value='CLOSED', quality='good', timestamp=datetime.datetime(2026, 1, 11, 0, 11, 6, 857696)), 'DOOR': RawTagUpdateMsg(track_id='c3108055-ef67-49a6-bffe-18b363881174', datapoint_identifier='WaterTank@DOOR', value='CLOSED', quality='good', timestamp=datetime.datetime(2026, 1, 11, 0, 11, 6, 857696))} +2026-01-11 00:11:06,863 INFO openscada_lite.modules.communication.drivers.test.test_driver [INIT] Initializing values for AuxServer tags: {'VALVE': RawTagUpdateMsg(track_id='eca13815-9e33-4fdb-86a0-806ba9edb73f', datapoint_identifier='AuxServer@VALVE', value='CLOSED', quality='good', timestamp=datetime.datetime(2026, 1, 11, 0, 11, 6, 858085)), 'PRESSURE': RawTagUpdateMsg(track_id='edd55e9b-afcb-4230-8321-d7185814dc7f', datapoint_identifier='AuxServer@PRESSURE', value=50.0, quality='good', timestamp=datetime.datetime(2026, 1, 11, 0, 11, 6, 858085)), 'TEMPERATURE': RawTagUpdateMsg(track_id='3963c71e-2585-431d-b36f-9f32bd5eab45', datapoint_identifier='AuxServer@TEMPERATURE', value=120.0, quality='good', timestamp=datetime.datetime(2026, 1, 11, 0, 11, 6, 858085)), 'HEATER': RawTagUpdateMsg(track_id='3eb00ef0-40f2-4a8b-8ae5-2bde194fb57e', datapoint_identifier='AuxServer@HEATER', value='CLOSED', quality='good', timestamp=datetime.datetime(2026, 1, 11, 0, 11, 6, 858085))} +2026-01-11 00:11:06,863 INFO openscada_lite.modules.rule.manager.rule_manager Initializing RuleEngine with datapoint types: ['LEVEL', 'STATUS', 'PRESSURE', 'TEMPERATURE'] +2026-01-11 00:11:06,864 INFO openscada_lite.modules.communication.manager.connector_manager [COMMAND] Sending command: AuxServer@VALVE1_POS = 0 +2026-01-11 00:11:06,865 INFO openscada_lite.modules.communication.manager.connector_manager [COMMAND] Sending command: AuxServer@VALVE1_POS = 0 +2026-01-11 00:11:06,917 INFO openscada_lite.modules.communication.manager.connector_manager [COMMAND] Sending command: AuxServer@VALVE1_POS = 0 +2026-01-11 00:11:06,974 INFO openscada_lite.modules.rule.manager.rule_manager Initializing RuleEngine with datapoint types: ['LEVEL', 'STATUS', 'PRESSURE', 'TEMPERATURE'] +2026-01-11 00:11:07,132 INFO openscada_lite.modules.rule.manager.rule_manager Initializing RuleEngine with datapoint types: ['LEVEL', 'STATUS', 'PRESSURE', 'TEMPERATURE'] +2026-01-11 00:11:07,180 INFO openscada_lite.modules.rule.manager.rule_manager Initializing RuleEngine with datapoint types: ['LEVEL', 'STATUS', 'PRESSURE', 'TEMPERATURE'] +2026-01-11 00:11:07,195 INFO openscada_lite.modules.rule.manager.rule_manager Initializing RuleEngine with datapoint types: ['LEVEL', 'STATUS', 'PRESSURE', 'TEMPERATURE'] +2026-01-11 00:11:07,222 INFO openscada_lite.modules.rule.manager.rule_manager Initializing RuleEngine with datapoint types: ['LEVEL', 'STATUS', 'PRESSURE', 'TEMPERATURE'] +2026-01-11 00:11:07,239 INFO openscada_lite.modules.rule.manager.rule_manager Initializing RuleEngine with datapoint types: ['LEVEL', 'STATUS', 'PRESSURE', 'TEMPERATURE'] +2026-01-11 00:11:07,266 INFO openscada_lite.modules.rule.manager.rule_manager Initializing RuleEngine with datapoint types: ['LEVEL', 'STATUS', 'PRESSURE', 'TEMPERATURE'] +2026-01-11 00:11:07,330 INFO openscada_lite.modules.rule.manager.rule_manager Initializing RuleEngine with datapoint types: ['LEVEL', 'STATUS', 'PRESSURE', 'TEMPERATURE'] +2026-01-11 00:11:07,415 INFO openscada_lite.modules.security.controller User admin logged in successfully +2026-01-11 00:11:07,436 WARNING openscada_lite.modules.security.controller Authentication failed for user: admin +2026-01-11 00:11:07,441 WARNING openscada_lite.modules.security.controller Authentication failed for user: ghost +2026-01-11 00:11:07,498 INFO openscada_lite.modules.security.controller User admin logged in successfully +2026-01-11 00:11:07,508 INFO openscada_lite.modules.communication.drivers.test.test_driver [INIT] Creating TestDriver WaterTank +2026-01-11 00:11:07,508 INFO openscada_lite.modules.communication.drivers.test.test_driver [INIT] Initializing values for WaterTank tags: {'TANK': RawTagUpdateMsg(track_id='71dce1f1-06b9-49d5-ad7d-c3be33761d42', datapoint_identifier='WaterTank@TANK', value=0, quality='good', timestamp=datetime.datetime(2026, 1, 11, 0, 11, 7, 508636)), 'PUMP': RawTagUpdateMsg(track_id='6606c8db-caa7-4a3a-ac2b-dad08c3437e6', datapoint_identifier='WaterTank@PUMP', value='CLOSED', quality='good', timestamp=datetime.datetime(2026, 1, 11, 0, 11, 7, 508636)), 'DOOR': RawTagUpdateMsg(track_id='19c17a7a-1fe4-4782-a253-787f87d0bd3c', datapoint_identifier='WaterTank@DOOR', value='CLOSED', quality='good', timestamp=datetime.datetime(2026, 1, 11, 0, 11, 7, 508636))} +2026-01-11 00:11:09,509 INFO openscada_lite.modules.communication.drivers.test.test_driver [DISCONNECT] Disconnecting driver WaterTank +2026-01-11 00:11:09,522 INFO openscada_lite.modules.communication.drivers.test.test_driver [INIT] Creating TestDriver WaterTank +2026-01-11 00:11:09,523 INFO openscada_lite.modules.communication.drivers.test.test_driver [INIT] Initializing values for WaterTank tags: {'TANK': RawTagUpdateMsg(track_id='3d3e2872-204c-4d91-9159-6ba6d9c9f59f', datapoint_identifier='WaterTank@TANK', value=0.0, quality='good', timestamp=datetime.datetime(2026, 1, 11, 0, 11, 9, 523205))} +2026-01-11 00:11:09,523 INFO openscada_lite.modules.communication.drivers.test.test_driver [COMMAND] Handling special command: TANK = 50 +2026-01-11 00:11:09,523 INFO openscada_lite.modules.communication.drivers.test.test_driver [DISCONNECT] Disconnecting driver WaterTank diff --git a/config/camera_gis_system_config.json b/config/camera_gis_system_config.json index 1e74332..3cce243 100644 --- a/config/camera_gis_system_config.json +++ b/config/camera_gis_system_config.json @@ -50,7 +50,7 @@ } ], "driver_class": "OPCUAServerDriver", - "driver_config": { + "params": { "allow_write_regex": ".*_CMD$", "namespaceurl": "http://openscada-lite/opcua/server" }, diff --git a/config/logging_config.json b/config/logging_config.json index ec6f99a..b450091 100644 --- a/config/logging_config.json +++ b/config/logging_config.json @@ -9,37 +9,37 @@ "console": { "class": "logging.StreamHandler", "formatter": "default", - "level": "DEBUG" + "level": "INFO" }, "file": { "class": "logging.FileHandler", "formatter": "default", "filename": "app.log", - "level": "DEBUG" + "level": "INFO" } }, "root": { - "level": "DEBUG", + "level": "INFO", "handlers": ["console", "file"] }, "loggers": { "openscada_lite.modules.security.service": { - "level": "DEBUG", + "level": "INFO", "handlers": ["console", "file"], "propagate": false }, "openscada_lite.modules.security.controller": { - "level": "DEBUG", + "level": "INFO", "handlers": ["console", "file"], "propagate": false }, "openscada_lite.modules.base.base_controller": { - "level": "DEBUG", + "level": "INFO", "handlers": ["console", "file"], "propagate": false }, "openscada_lite.modules.communication.controller": { - "level": "DEBUG", + "level": "INFO", "handlers": ["console", "file"], "propagate": false } diff --git a/config/security_config.json b/config/security_config.json index 093986d..3fbc10c 100644 --- a/config/security_config.json +++ b/config/security_config.json @@ -3,7 +3,18 @@ { "name": "test_group", "permissions": [ - "security_editor_access" + "security_editor_access", + "datapoint/rawtagupdatemsg", + "save_security_config", + "save_config", + "communication/driverconnectcommand", + "save_config_as", + "alert/clientalertfeedbackmsg", + "alarm/ackalarmmsg", + "animation/animationupdaterequestmsg", + "restart_app", + "command/sendcommandmsg", + "login" ] } ], diff --git a/config/svg/0.room.svg b/config/svg/0.room.svg new file mode 100644 index 0000000..283913a --- /dev/null +++ b/config/svg/0.room.svg @@ -0,0 +1,3840 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Light 1 + Light 2 + MQTT Driver + diff --git a/config/svg/0.room.txt b/config/svg/0.room.txt new file mode 100644 index 0000000..67077d3 --- /dev/null +++ b/config/svg/0.room.txt @@ -0,0 +1,5 @@ +This is the MQTT module. +1. Connect / Disconnect the MQTT Driver +2. Connect the Light 1 or Light 2 +3. Check in the Commands tab the status of the commands +4. Click in the Datapoints the status of the datapoints \ No newline at end of file diff --git a/config/svg_system_config.json b/config/svg_system_config.json index a0c9c74..e67927b 100644 --- a/config/svg_system_config.json +++ b/config/svg_system_config.json @@ -370,7 +370,7 @@ } ], "driver_class": "OPCUAServerDriver", - "driver_config": { + "params": { "allow_write_regex": ".*_CMD$", "namespaceurl": "http://openscada-lite/opcua/server" }, diff --git a/config/system_config.json b/config/system_config.json index cf52e6d..0307667 100644 --- a/config/system_config.json +++ b/config/system_config.json @@ -88,9 +88,58 @@ "max": 150, "min": 100, "type": "enum" + }, + "ON_OFF": { + "default": "OFF", + "type": "enum", + "values": [ + "ON", + "OFF", + "TOGGLE" + ] } }, "drivers": [ + { + "name": "TasmotaRelayDriver", + "driver_class": "MQTTTasmotaRelayDriver", + "connection_info": { + "server_name": "TasmotaRelayDriver" + }, + "datapoints": [ + { "name": "RELAY_1_STATUS", "type": "ON_OFF" }, + { "name": "RELAY_2_STATUS", "type": "ON_OFF" } + ], + "command_datapoints": [ + { "name": "RELAY_1_CMD", "type": "ON_OFF" }, + { "name": "RELAY_2_CMD", "type": "ON_OFF" } + ], + "params": { + "host": "orangepizero3", + "port": 1883, + "client_id": "openscada-tasmota-xmas", + "username": "scada", + "password": "dani23", + "device_topic": "xmas", + "relay_mapping": { + "RELAY_1": "POWER1", + "RELAY_2": "POWER2" + }, + "subscriptions": [ + { + "topic": "stat/xmas/POWER+", + "type": "status" + }, + { + "topic": "stat/xmas/RESULT", + "type": "feedback" + } + ], + "publish": { + "command": "cmnd/{device}/{power}" + } + } + }, { "command_datapoints": [], "connection_info": { @@ -123,7 +172,7 @@ } ], "driver_class": "OPCUAServerDriver", - "driver_config": { + "params": { "allow_write_regex": ".*_CMD$", "namespaceurl": "http://openscada-lite/opcua/server" }, @@ -1347,6 +1396,29 @@ { "name": "datapoint" }, + { + "name": "schedule", + "config": { + "schedules": [ + { + "schedule_id": "on_mode", + "cron": "0 17 * * *", + "actions": [ + "send_command('TasmotaRelayDriver@RELAY_1_CMD', 'ON')", + "send_command('TasmotaRelayDriver@RELAY_2_CMD', 'ON')" + ] + }, + { + "schedule_id": "off_mode", + "cron": "0 23 * * *", + "actions": [ + "send_command('TasmotaRelayDriver@RELAY_1_CMD', 'OFF')", + "send_command('TasmotaRelayDriver@RELAY_2_CMD', 'OFF')" + ] + } + ] + } + }, { "name": "alert" }, @@ -1522,6 +1594,18 @@ } } ], + "LIGHTS": [ + { + "attribute": "visibility", + "expression": { + "OFF": "hidden", + "ON": "visible" + }, + "quality": { + "unknown": "hidden" + } + } + ], "RIGHT_SWITCH_TURN": [ { "attribute": "visibility", @@ -1571,6 +1655,19 @@ } } ], + "CONNECTOR_ANIMATION": [ + { + "attribute": "fill", + "default": "gray", + "expression": { + "ON": "green", + "OFF": "red" + }, + "quality": { + "unknown": "gray" + } + } + ], "driver_connection": [ { "attribute": "fill", diff --git a/flow_events.log b/flow_events.log new file mode 100644 index 0000000..c96807e --- /dev/null +++ b/flow_events.log @@ -0,0 +1,44 @@ +{"track_id": "eb8f9278-db6e-4468-9eab-8cc47ceaf117", "event_type": "DriverConnectStatus", "source": "CommunicationController", "status": "forwarded", "timestamp": "2026-01-11T00:09:05.969925", "payload": {"driver_name": "WaterTank", "status": "offline"}} +{"track_id": "eb8f9278-db6e-4468-9eab-8cc47ceaf117", "event_type": "DriverConnectStatus", "source": "ConnectorManager", "status": "received", "timestamp": "2026-01-11T00:09:05.969943", "payload": {"driver_name": "WaterTank", "status": "offline"}} +{"track_id": "eb8f9278-db6e-4468-9eab-8cc47ceaf117", "event_type": "DriverConnectStatus", "source": "CommunicationService", "status": "created", "timestamp": "2026-01-11T00:09:05.969826", "payload": {"driver_name": "WaterTank", "status": "offline"}} +{"track_id": "2d10f1c0-ed7f-423e-94de-4f3d2f18a6bd", "event_type": "DriverConnectStatus", "source": "CommunicationService", "status": "created", "timestamp": "2026-01-11T00:09:05.970079", "payload": {"driver_name": "AuxServer", "status": "offline"}} +{"track_id": "2d10f1c0-ed7f-423e-94de-4f3d2f18a6bd", "event_type": "DriverConnectStatus", "source": "CommunicationController", "status": "forwarded", "timestamp": "2026-01-11T00:09:05.970115", "payload": {"driver_name": "AuxServer", "status": "offline"}} +{"track_id": "2d10f1c0-ed7f-423e-94de-4f3d2f18a6bd", "event_type": "DriverConnectStatus", "source": "ConnectorManager", "status": "received", "timestamp": "2026-01-11T00:09:05.970131", "payload": {"driver_name": "AuxServer", "status": "offline"}} +{"track_id": "f973e9fd-e476-47d7-8edf-d7449c1e477a", "event_type": "CommandFeedbackMsg", "source": "CommandService", "status": "created", "timestamp": "2026-01-11T00:09:12.704529", "payload": {"command_id": "testcmd1", "datapoint_identifier": "WaterTank@TANK", "value": 42, "feedback": "NOK-driver-offline", "timestamp": "2026-01-11T00:09:12.704399"}} +{"track_id": "f973e9fd-e476-47d7-8edf-d7449c1e477a", "event_type": "CommandFeedbackMsg", "source": "CommandController", "status": "forwarded", "timestamp": "2026-01-11T00:09:12.704642", "payload": {"command_id": "testcmd1", "datapoint_identifier": "WaterTank@TANK", "value": 42, "feedback": "NOK-driver-offline", "timestamp": "2026-01-11T00:09:12.704399"}} +{"track_id": "f973e9fd-e476-47d7-8edf-d7449c1e477a", "event_type": "CommandFeedbackMsg", "source": "ConnectorManager", "status": "received", "timestamp": "2026-01-11T00:09:12.704659", "payload": {"command_id": "testcmd1", "datapoint_identifier": "WaterTank@TANK", "value": 42, "feedback": "NOK-driver-offline", "timestamp": "2026-01-11T00:09:12.704399"}} +{"track_id": "7c5f469b-9adc-4a1b-9696-7140a5d203dd", "event_type": "SendCommandMsg", "source": "ConnectorManager", "status": "forwarded", "timestamp": "2026-01-11T00:09:12.704676", "payload": {"command_id": "testcmd1", "datapoint_identifier": "WaterTank@TANK", "value": 42}} +{"track_id": "7c5f469b-9adc-4a1b-9696-7140a5d203dd", "event_type": "SendCommandMsg", "source": "CommunicationService", "status": "received", "timestamp": "2026-01-11T00:09:12.704688", "payload": {"command_id": "testcmd1", "datapoint_identifier": "WaterTank@TANK", "value": 42}} +{"track_id": "7c5f469b-9adc-4a1b-9696-7140a5d203dd", "event_type": "SendCommandMsg", "source": "CommandService", "status": "received", "timestamp": "2026-01-11T00:09:12.704698", "payload": {"command_id": "testcmd1", "datapoint_identifier": "WaterTank@TANK", "value": 42}} +{"track_id": "50f40287-bbf4-434c-8bd7-643724cf8df7", "event_type": "DriverConnectStatus", "source": "CommunicationController", "status": "forwarded", "timestamp": "2026-01-11T00:09:17.488924", "payload": {"driver_name": "WaterTank", "status": "offline"}} +{"track_id": "50f40287-bbf4-434c-8bd7-643724cf8df7", "event_type": "DriverConnectStatus", "source": "ConnectorManager", "status": "received", "timestamp": "2026-01-11T00:09:17.488939", "payload": {"driver_name": "WaterTank", "status": "offline"}} +{"track_id": "50f40287-bbf4-434c-8bd7-643724cf8df7", "event_type": "DriverConnectStatus", "source": "CommunicationService", "status": "created", "timestamp": "2026-01-11T00:09:17.488835", "payload": {"driver_name": "WaterTank", "status": "offline"}} +{"track_id": "f6794d48-62ff-4a87-b214-6ca04f57823e", "event_type": "DriverConnectStatus", "source": "CommunicationService", "status": "created", "timestamp": "2026-01-11T00:09:17.489121", "payload": {"driver_name": "AuxServer", "status": "offline"}} +{"track_id": "f6794d48-62ff-4a87-b214-6ca04f57823e", "event_type": "DriverConnectStatus", "source": "CommunicationController", "status": "forwarded", "timestamp": "2026-01-11T00:09:17.489157", "payload": {"driver_name": "AuxServer", "status": "offline"}} +{"track_id": "f6794d48-62ff-4a87-b214-6ca04f57823e", "event_type": "DriverConnectStatus", "source": "ConnectorManager", "status": "received", "timestamp": "2026-01-11T00:09:17.489168", "payload": {"driver_name": "AuxServer", "status": "offline"}} +{"track_id": "12c104c1-3b13-4560-bad8-e0bc9ea3a76b", "event_type": "TagUpdateMsg", "source": "DatapointService", "status": "created", "timestamp": "2026-01-11T00:09:24.095230", "payload": {"datapoint_identifier": "WaterTank@TANK", "value": 123.45, "timestamp": "2026-01-11T00:09:24.095176"}} +{"track_id": "12c104c1-3b13-4560-bad8-e0bc9ea3a76b", "event_type": "TagUpdateMsg", "source": "CommunicationService", "status": "received", "timestamp": "2026-01-11T00:09:24.095305", "payload": {"datapoint_identifier": "WaterTank@TANK", "value": 123.45, "timestamp": "2026-01-11T00:09:24.095176"}} +{"track_id": "12c104c1-3b13-4560-bad8-e0bc9ea3a76b", "event_type": "TagUpdateMsg", "source": "DatapointController", "status": "forwarded", "timestamp": "2026-01-11T00:09:24.095356", "payload": {"datapoint_identifier": "WaterTank@TANK", "value": 123.45, "timestamp": "2026-01-11T00:09:24.095176"}} +{"track_id": "12c104c1-3b13-4560-bad8-e0bc9ea3a76b", "event_type": "RawTagUpdateMsg", "source": "DatapointService", "status": "received", "timestamp": "2026-01-11T00:09:24.095370", "payload": {"datapoint_identifier": "WaterTank@TANK", "value": 123.45, "timestamp": "2026-01-11T00:09:24.095176"}} +{"track_id": "4080dbe7-8207-4d6c-98dd-9a98612cc6cf", "event_type": "DriverConnectStatus", "source": "CommunicationController", "status": "forwarded", "timestamp": "2026-01-11T00:10:43.864726", "payload": {"driver_name": "WaterTank", "status": "offline"}} +{"track_id": "4080dbe7-8207-4d6c-98dd-9a98612cc6cf", "event_type": "DriverConnectStatus", "source": "ConnectorManager", "status": "received", "timestamp": "2026-01-11T00:10:43.864741", "payload": {"driver_name": "WaterTank", "status": "offline"}} +{"track_id": "8ac84b34-5b41-457e-9365-9f79f88fd19e", "event_type": "DriverConnectStatus", "source": "CommunicationService", "status": "created", "timestamp": "2026-01-11T00:10:43.864818", "payload": {"driver_name": "AuxServer", "status": "offline"}} +{"track_id": "8ac84b34-5b41-457e-9365-9f79f88fd19e", "event_type": "DriverConnectStatus", "source": "CommunicationController", "status": "forwarded", "timestamp": "2026-01-11T00:10:43.864842", "payload": {"driver_name": "AuxServer", "status": "offline"}} +{"track_id": "8ac84b34-5b41-457e-9365-9f79f88fd19e", "event_type": "DriverConnectStatus", "source": "ConnectorManager", "status": "received", "timestamp": "2026-01-11T00:10:43.864852", "payload": {"driver_name": "AuxServer", "status": "offline"}} +{"track_id": "4080dbe7-8207-4d6c-98dd-9a98612cc6cf", "event_type": "DriverConnectStatus", "source": "CommunicationService", "status": "created", "timestamp": "2026-01-11T00:10:43.864640", "payload": {"driver_name": "WaterTank", "status": "offline"}} +{"track_id": "bfcb6942-c293-4684-a50b-03d02cfe44bc", "event_type": "CommandFeedbackMsg", "source": "CommandService", "status": "created", "timestamp": "2026-01-11T00:10:51.078643", "payload": {"command_id": "testcmd1", "datapoint_identifier": "WaterTank@TANK", "value": 42, "feedback": "NOK-driver-offline", "timestamp": "2026-01-11T00:10:51.078581"}} +{"track_id": "bfcb6942-c293-4684-a50b-03d02cfe44bc", "event_type": "CommandFeedbackMsg", "source": "CommandController", "status": "forwarded", "timestamp": "2026-01-11T00:10:51.078721", "payload": {"command_id": "testcmd1", "datapoint_identifier": "WaterTank@TANK", "value": 42, "feedback": "NOK-driver-offline", "timestamp": "2026-01-11T00:10:51.078581"}} +{"track_id": "bfcb6942-c293-4684-a50b-03d02cfe44bc", "event_type": "CommandFeedbackMsg", "source": "ConnectorManager", "status": "received", "timestamp": "2026-01-11T00:10:51.078735", "payload": {"command_id": "testcmd1", "datapoint_identifier": "WaterTank@TANK", "value": 42, "feedback": "NOK-driver-offline", "timestamp": "2026-01-11T00:10:51.078581"}} +{"track_id": "54d883f7-bf09-47d7-b5e5-ca795f927c63", "event_type": "SendCommandMsg", "source": "ConnectorManager", "status": "forwarded", "timestamp": "2026-01-11T00:10:51.078748", "payload": {"command_id": "testcmd1", "datapoint_identifier": "WaterTank@TANK", "value": 42}} +{"track_id": "54d883f7-bf09-47d7-b5e5-ca795f927c63", "event_type": "SendCommandMsg", "source": "CommunicationService", "status": "received", "timestamp": "2026-01-11T00:10:51.078756", "payload": {"command_id": "testcmd1", "datapoint_identifier": "WaterTank@TANK", "value": 42}} +{"track_id": "54d883f7-bf09-47d7-b5e5-ca795f927c63", "event_type": "SendCommandMsg", "source": "CommandService", "status": "received", "timestamp": "2026-01-11T00:10:51.078764", "payload": {"command_id": "testcmd1", "datapoint_identifier": "WaterTank@TANK", "value": 42}} +{"track_id": "2f808119-13a0-469d-a8b4-134bcd1c38ac", "event_type": "DriverConnectStatus", "source": "CommunicationController", "status": "forwarded", "timestamp": "2026-01-11T00:10:55.271354", "payload": {"driver_name": "WaterTank", "status": "offline"}} +{"track_id": "2f808119-13a0-469d-a8b4-134bcd1c38ac", "event_type": "DriverConnectStatus", "source": "ConnectorManager", "status": "received", "timestamp": "2026-01-11T00:10:55.271370", "payload": {"driver_name": "WaterTank", "status": "offline"}} +{"track_id": "2f808119-13a0-469d-a8b4-134bcd1c38ac", "event_type": "DriverConnectStatus", "source": "CommunicationService", "status": "created", "timestamp": "2026-01-11T00:10:55.271269", "payload": {"driver_name": "WaterTank", "status": "offline"}} +{"track_id": "9bce5503-73e9-46ac-81f3-5dd24ba5b604", "event_type": "DriverConnectStatus", "source": "CommunicationService", "status": "created", "timestamp": "2026-01-11T00:10:55.271544", "payload": {"driver_name": "AuxServer", "status": "offline"}} +{"track_id": "9bce5503-73e9-46ac-81f3-5dd24ba5b604", "event_type": "DriverConnectStatus", "source": "CommunicationController", "status": "forwarded", "timestamp": "2026-01-11T00:10:55.271596", "payload": {"driver_name": "AuxServer", "status": "offline"}} +{"track_id": "9bce5503-73e9-46ac-81f3-5dd24ba5b604", "event_type": "DriverConnectStatus", "source": "ConnectorManager", "status": "received", "timestamp": "2026-01-11T00:10:55.271613", "payload": {"driver_name": "AuxServer", "status": "offline"}} +{"track_id": "e9792789-7640-4ca1-97c9-9a857da6fe31", "event_type": "TagUpdateMsg", "source": "DatapointService", "status": "created", "timestamp": "2026-01-11T00:11:02.454424", "payload": {"datapoint_identifier": "WaterTank@TANK", "value": 123.45, "timestamp": "2026-01-11T00:11:02.454342"}} +{"track_id": "e9792789-7640-4ca1-97c9-9a857da6fe31", "event_type": "TagUpdateMsg", "source": "CommunicationService", "status": "received", "timestamp": "2026-01-11T00:11:02.454557", "payload": {"datapoint_identifier": "WaterTank@TANK", "value": 123.45, "timestamp": "2026-01-11T00:11:02.454342"}} +{"track_id": "e9792789-7640-4ca1-97c9-9a857da6fe31", "event_type": "TagUpdateMsg", "source": "DatapointController", "status": "forwarded", "timestamp": "2026-01-11T00:11:02.454657", "payload": {"datapoint_identifier": "WaterTank@TANK", "value": 123.45, "timestamp": "2026-01-11T00:11:02.454342"}} +{"track_id": "e9792789-7640-4ca1-97c9-9a857da6fe31", "event_type": "RawTagUpdateMsg", "source": "DatapointService", "status": "received", "timestamp": "2026-01-11T00:11:02.454683", "payload": {"datapoint_identifier": "WaterTank@TANK", "value": 123.45, "timestamp": "2026-01-11T00:11:02.454342"}} diff --git a/src/openscada_lite/common/actions/__init__.py b/src/openscada_lite/common/actions/__init__.py new file mode 100644 index 0000000..b518569 --- /dev/null +++ b/src/openscada_lite/common/actions/__init__.py @@ -0,0 +1,15 @@ +# ----------------------------------------------------------------------------- +# Copyright 2025 Daniel&Hector Fernandez +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ----------------------------------------------------------------------------- diff --git a/src/openscada_lite/modules/rule/actioncommands/action.py b/src/openscada_lite/common/actions/action.py similarity index 100% rename from src/openscada_lite/modules/rule/actioncommands/action.py rename to src/openscada_lite/common/actions/action.py diff --git a/src/openscada_lite/modules/rule/actioncommands/command_map.py b/src/openscada_lite/common/actions/action_map.py similarity index 70% rename from src/openscada_lite/modules/rule/actioncommands/command_map.py rename to src/openscada_lite/common/actions/action_map.py index 601f5f7..92baed9 100644 --- a/src/openscada_lite/modules/rule/actioncommands/command_map.py +++ b/src/openscada_lite/common/actions/action_map.py @@ -15,11 +15,11 @@ # ----------------------------------------------------------------------------- from typing import Dict -from openscada_lite.modules.rule.actioncommands.action import Action -from openscada_lite.modules.rule.actioncommands.lower_alarm import LowerAlarmAction -from openscada_lite.modules.rule.actioncommands.raise_alarm import RaiseAlarmAction -from openscada_lite.modules.rule.actioncommands.send_command import SendCommandAction -from openscada_lite.modules.rule.actioncommands.client_alert import ClientAlertAction +from openscada_lite.common.actions.action import Action +from openscada_lite.common.actions.lower_alarm import LowerAlarmAction +from openscada_lite.common.actions.raise_alarm import RaiseAlarmAction +from openscada_lite.common.actions.send_command import SendCommandAction +from openscada_lite.common.actions.client_alert import ClientAlertAction ACTION_MAP: Dict[str, Action] = { diff --git a/src/openscada_lite/common/actions/action_utils.py b/src/openscada_lite/common/actions/action_utils.py new file mode 100644 index 0000000..117c79a --- /dev/null +++ b/src/openscada_lite/common/actions/action_utils.py @@ -0,0 +1,39 @@ +import re +from openscada_lite.common.actions.action_map import ACTION_MAP + + +def parse_action(action_str: str): + """ + Parse an action string into its name and parameters. + + Args: + action_str (str): The action string, e.g., "raise_alarm('msg')". + + Returns: + tuple: (action_name, params) + """ + match = re.match(r"(\w+)\((.*)\)", action_str, re.DOTALL) + if not match: + raise ValueError(f"Invalid action string: {action_str}") + + action_name, params_str = match.groups() + params = eval(f"({params_str},)") if params_str else () + return action_name, params + + +async def execute_action(action_str, identifier, track_id, rule_id=None): + """ + Execute an action by looking up its handler and calling it. + + Args: + action_str (str): The action string to execute. + identifier (str): The tag that triggered the rule. + active (bool): Whether this is an 'on' or 'off' action. + track_id (str): The track ID associated with the action. + """ + action_name, params = parse_action(action_str) + handler = ACTION_MAP.get(action_name) + if not handler: + raise ValueError(f"Unknown action: {action_name}") + + await handler(identifier, params, track_id=track_id, rule_id=rule_id) diff --git a/src/openscada_lite/modules/rule/actioncommands/client_alert.py b/src/openscada_lite/common/actions/client_alert.py similarity index 95% rename from src/openscada_lite/modules/rule/actioncommands/client_alert.py rename to src/openscada_lite/common/actions/client_alert.py index 5009728..7e19b44 100644 --- a/src/openscada_lite/modules/rule/actioncommands/client_alert.py +++ b/src/openscada_lite/common/actions/client_alert.py @@ -14,7 +14,7 @@ # limitations under the License. # ----------------------------------------------------------------------------- -from openscada_lite.modules.rule.actioncommands.action import Action +from openscada_lite.common.actions.action import Action from openscada_lite.common.bus.event_types import EventType from openscada_lite.common.models.dtos import ClientAlertMsg diff --git a/src/openscada_lite/modules/rule/actioncommands/lower_alarm.py b/src/openscada_lite/common/actions/lower_alarm.py similarity index 94% rename from src/openscada_lite/modules/rule/actioncommands/lower_alarm.py rename to src/openscada_lite/common/actions/lower_alarm.py index 80c180e..7b0f2b9 100644 --- a/src/openscada_lite/modules/rule/actioncommands/lower_alarm.py +++ b/src/openscada_lite/common/actions/lower_alarm.py @@ -14,7 +14,7 @@ # limitations under the License. # ----------------------------------------------------------------------------- -from openscada_lite.modules.rule.actioncommands.action import Action +from openscada_lite.common.actions.action import Action from openscada_lite.common.bus.event_types import EventType from openscada_lite.common.models.dtos import LowerAlarmMsg diff --git a/src/openscada_lite/modules/rule/actioncommands/raise_alarm.py b/src/openscada_lite/common/actions/raise_alarm.py similarity index 94% rename from src/openscada_lite/modules/rule/actioncommands/raise_alarm.py rename to src/openscada_lite/common/actions/raise_alarm.py index 959490d..a4329f5 100644 --- a/src/openscada_lite/modules/rule/actioncommands/raise_alarm.py +++ b/src/openscada_lite/common/actions/raise_alarm.py @@ -14,7 +14,7 @@ # limitations under the License. # ----------------------------------------------------------------------------- -from openscada_lite.modules.rule.actioncommands.action import Action +from openscada_lite.common.actions.action import Action from openscada_lite.common.bus.event_types import EventType from openscada_lite.common.models.dtos import RaiseAlarmMsg diff --git a/src/openscada_lite/modules/rule/actioncommands/send_command.py b/src/openscada_lite/common/actions/send_command.py similarity index 95% rename from src/openscada_lite/modules/rule/actioncommands/send_command.py rename to src/openscada_lite/common/actions/send_command.py index a39739d..9f41078 100644 --- a/src/openscada_lite/modules/rule/actioncommands/send_command.py +++ b/src/openscada_lite/common/actions/send_command.py @@ -14,7 +14,7 @@ # limitations under the License. # ----------------------------------------------------------------------------- -from openscada_lite.modules.rule.actioncommands.action import Action +from openscada_lite.common.actions.action import Action from openscada_lite.common.bus.event_types import EventType from openscada_lite.common.models.dtos import SendCommandMsg import uuid diff --git a/src/openscada_lite/modules/communication/drivers/__init__.py b/src/openscada_lite/modules/communication/drivers/__init__.py index bd55b1b..ffda0b9 100644 --- a/src/openscada_lite/modules/communication/drivers/__init__.py +++ b/src/openscada_lite/modules/communication/drivers/__init__.py @@ -31,6 +31,9 @@ from openscada_lite.modules.communication.drivers.test.boiler_test_driver import ( BoilerTestDriver, ) +from openscada_lite.modules.communication.drivers.mqtt_tasmota_driver import ( + MQTTTasmotaRelayDriver +) DRIVER_REGISTRY = { "TankTestDriver": TankTestDriver, @@ -39,4 +42,5 @@ "OPCUAServerDriver": OPCUAServerDriver, "StressTestDriver": StressTestDriver, "CameraDriver": CameraDriver, + "MQTTTasmotaRelayDriver": MQTTTasmotaRelayDriver } diff --git a/src/openscada_lite/modules/communication/drivers/mqtt_tasmota_driver.py b/src/openscada_lite/modules/communication/drivers/mqtt_tasmota_driver.py new file mode 100644 index 0000000..9f9d7ed --- /dev/null +++ b/src/openscada_lite/modules/communication/drivers/mqtt_tasmota_driver.py @@ -0,0 +1,305 @@ +# ----------------------------------------------------------------------------- +# Copyright 2025 Daniel&Hector Fernandez +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ----------------------------------------------------------------------------- + +import asyncio +import json +import datetime +from typing import Callable, List, Optional + +import paho.mqtt.client as mqtt + +from openscada_lite.common.models.dtos import ( + SendCommandMsg, + RawTagUpdateMsg, + DriverConnectStatus, + CommandFeedbackMsg, +) +from openscada_lite.common.models.entities import Datapoint +from openscada_lite.modules.communication.drivers.driver_protocol import DriverProtocol + + +class MQTTTasmotaRelayDriver(DriverProtocol): + def __init__(self, server_name: str) -> None: + self._server_name = server_name + self._client: Optional[mqtt.Client] = None + self._connected: bool = False + + # asyncio loop (captured on connect) + self._loop: Optional[asyncio.AbstractEventLoop] = None + + self._config: dict = {} + self._device_topic: str = "" + + self._relay_mapping: dict[str, str] = {} + self._reverse_relay_mapping: dict[str, str] = {} + + self._subscriptions: list[dict] = [] + self._publish_templates: dict = {} + + self._value_listener: Optional[Callable] = None + self._status_listener: Optional[Callable] = None + self._feedback_listener: Optional[Callable] = None + + # Command tracking + self._pending_command: Optional[SendCommandMsg] = None + self._command_timeout_task: Optional[asyncio.Task] = None + # Track last known relay status per relay key (RELAY_1, RELAY_2) + self._relay_status: dict[str, str] = {} + + # -------------------------------------------------- + # Lifecycle + # -------------------------------------------------- + + def initialize(self, config: dict) -> None: + self._config = config + self._device_topic = config["device_topic"] + + self._relay_mapping = config.get("relay_mapping", {}) + self._reverse_relay_mapping = { + v: k for k, v in self._relay_mapping.items() + } + + self._subscriptions = config.get("subscriptions", []) + self._publish_templates = config.get("publish", {}) + + async def connect(self) -> None: + self._loop = asyncio.get_running_loop() + + self._client = mqtt.Client( + client_id=self._config.get("client_id") + ) + + if "username" in self._config: + self._client.username_pw_set( + self._config["username"], + self._config.get("password"), + ) + + self._client.on_connect = self._on_connect + self._client.on_disconnect = self._on_disconnect + self._client.on_message = self._on_message + + self._client.connect( + self._config["host"], + self._config.get("port", 1883), + keepalive=self._config.get("keepalive", 60), + ) + + self._client.loop_start() + + async def disconnect(self) -> None: + if self._client: + self._client.loop_stop() + self._client.disconnect() + + # -------------------------------------------------- + # Protocol-required + # -------------------------------------------------- + + def subscribe(self, datapoints: List[Datapoint]) -> None: + #MQTT doesn't work like this + pass + + async def send_command(self, data: SendCommandMsg) -> None: + if not self._client or not self._loop: + return + + identifier = data.datapoint_identifier + dp_name = identifier.split("@", 1)[1] if "@" in identifier else identifier + relay_key = dp_name.replace("_CMD", "") + + power = self._relay_mapping.get(relay_key) + if not power: + return + + template = self._publish_templates.get("command") + if not template: + return + + topic = template.format( + device=self._device_topic, + power=power, + ) + + # Handle TOGGLE: compute explicit ON/OFF based on current status + desired_value = data.value + if isinstance(desired_value, str) and desired_value.upper() == "TOGGLE": + print("Current relay status:", self._relay_status) + current = self._relay_status.get(relay_key) + if current == "ON": + desired_value = "OFF" + elif current == "OFF": + desired_value = "ON" + else: + desired_value = "ON" + + # Mutate the DTO so feedback reflects the effective value + data.value = desired_value + + payload = desired_value + if not isinstance(payload, str): + payload = json.dumps(payload) + + # Track pending command + self._pending_command = data + + # Cancel previous timeout (defensive) + if self._command_timeout_task: + self._command_timeout_task.cancel() + + timeout_seconds = self._config.get("command_timeout", 5) + + self._command_timeout_task = asyncio.create_task( + self._command_timeout_handler(data, timeout_seconds) + ) + + self._client.publish(topic, payload, qos=1) + + def register_value_listener(self, callback: Callable) -> None: + self._value_listener = callback + + def register_communication_status_listener(self, callback: Callable) -> None: + self._status_listener = callback + + def register_command_feedback(self, callback: Callable) -> None: + self._feedback_listener = callback + + # -------------------------------------------------- + # Properties + # -------------------------------------------------- + + @property + def server_name(self) -> str: + return self._server_name + + @property + def is_connected(self) -> bool: + return self._connected + + # -------------------------------------------------- + # MQTT callbacks (Paho thread!) + # -------------------------------------------------- + + def _on_connect(self, client, userdata, flags, rc): + self._connected = (rc == 0) + + for sub in self._subscriptions: + topic = sub.get("topic", "").replace("{device}", self._device_topic) + ttype = sub.get("type") + + if ttype == "status" and topic.endswith("POWER+"): + for power in self._relay_mapping.values(): + client.subscribe(f"stat/{self._device_topic}/{power}") + else: + client.subscribe(topic) + + if self._status_listener and self._loop: + asyncio.run_coroutine_threadsafe( + self._status_listener( + DriverConnectStatus( + driver_name=self._server_name, + status="online", + ) + ), + self._loop, + ) + + def _on_disconnect(self, client, userdata, rc): + self._connected = False + + if self._status_listener and self._loop: + asyncio.run_coroutine_threadsafe( + self._status_listener( + DriverConnectStatus( + driver_name=self._server_name, + status="offline", + ) + ), + self._loop, + ) + + def _on_message(self, client, userdata, msg): + topic = msg.topic + payload = msg.payload.decode().upper() + + # ---- Relay status ---- + if topic.startswith(f"stat/{self._device_topic}/POWER"): + power = topic.split("/")[-1] + relay_key = self._reverse_relay_mapping.get(power) + if not relay_key or not self._value_listener or not self._loop: + return + + if payload in ("ON", "OFF"): + # Track last known status for toggle computation + self._relay_status[relay_key] = payload + asyncio.run_coroutine_threadsafe( + self._value_listener( + RawTagUpdateMsg( + datapoint_identifier=f"{self._server_name}@{relay_key}_STATUS", + value=payload, + timestamp=datetime.datetime.now(), + ) + ), + self._loop, + ) + return + + # ---- Command RESULT feedback ---- + if topic == f"stat/{self._device_topic}/RESULT": + if not self._pending_command or not self._feedback_listener or not self._loop: + return + + cmd = self._pending_command + self._pending_command = None + + if self._command_timeout_task: + self._command_timeout_task.cancel() + self._command_timeout_task = None + + asyncio.run_coroutine_threadsafe( + self._send_command_feedback(cmd, exists=True), + self._loop, + ) + + # -------------------------------------------------- + # Feedback + Timeout + # -------------------------------------------------- + + async def _command_timeout_handler(self, data: SendCommandMsg, timeout: int): + try: + await asyncio.sleep(timeout) + except asyncio.CancelledError: + return + + if self._pending_command == data: + self._pending_command = None + await self._send_command_feedback(data, exists=False) + + async def _send_command_feedback(self, data: SendCommandMsg, exists: bool): + if not self._feedback_listener: + return + + feedback = "OK" if exists else "NOK" + + msg = CommandFeedbackMsg( + command_id=data.command_id, + datapoint_identifier=data.datapoint_identifier, + feedback=feedback, + value=data.value, + timestamp=datetime.datetime.now(), + ) + + await self._feedback_listener(msg) diff --git a/src/openscada_lite/modules/communication/manager/connector_manager.py b/src/openscada_lite/modules/communication/manager/connector_manager.py index e4ebdfd..9a0a098 100644 --- a/src/openscada_lite/modules/communication/manager/connector_manager.py +++ b/src/openscada_lite/modules/communication/manager/connector_manager.py @@ -130,6 +130,7 @@ def set_command_listener(self, listener: CommandListener): async def handle_driver_connect_command(self, data: DriverConnectCommand): driver_name = data.driver_name status = data.status + print(f"Handling driver command: {driver_name} -> {status} from {self.driver_instances.keys()}") driver = self.driver_instances.get(driver_name) if driver: if status == "connect": @@ -152,6 +153,7 @@ async def emit_command_feedback(self, data: CommandFeedbackMsg): @publish_from_arg_async(status=DataFlowStatus.RECEIVED) async def emit_communication_status(self, data: DriverConnectStatus): + print(f"Emitting communication status: {data.driver_name} -> {data.status}") await self.listener.on_driver_connect_status(data) if self.listener else None # If the driver went offline, publish all tags as unknown driver_name = data.driver_name diff --git a/src/openscada_lite/modules/rule/manager/rule_manager.py b/src/openscada_lite/modules/rule/manager/rule_manager.py index bd27edf..a2ffd84 100644 --- a/src/openscada_lite/modules/rule/manager/rule_manager.py +++ b/src/openscada_lite/modules/rule/manager/rule_manager.py @@ -24,14 +24,15 @@ import re from asteval import Interpreter +from openscada_lite.common.actions.action_map import ACTION_MAP from openscada_lite.common.tracking.decorators import publish_from_arg_async -from openscada_lite.modules.rule.actioncommands.action import Action +from openscada_lite.common.actions.action import Action from openscada_lite.common.tracking.tracking_types import DataFlowStatus from openscada_lite.common.bus.event_types import EventType from openscada_lite.common.config.config import Config from openscada_lite.common.bus.event_bus import EventBus from openscada_lite.common.models.dtos import TagUpdateMsg -from openscada_lite.modules.rule.actioncommands.command_map import ACTION_MAP + import logging logger = logging.getLogger(__name__) diff --git a/src/openscada_lite/modules/schedule/controller.py b/src/openscada_lite/modules/schedule/controller.py new file mode 100644 index 0000000..3532d01 --- /dev/null +++ b/src/openscada_lite/modules/schedule/controller.py @@ -0,0 +1,9 @@ +from fastapi import APIRouter +from openscada_lite.modules.base.base_controller import BaseController + +class ScheduleController(BaseController[None, None]): + def __init__(self, model, socketio, module_name: str, router: APIRouter): + super().__init__(model, socketio, None, None, module_name, router) + + def validate_request_data(self, data: None) -> None: + return data diff --git a/src/openscada_lite/modules/schedule/model.py b/src/openscada_lite/modules/schedule/model.py new file mode 100644 index 0000000..63c2a50 --- /dev/null +++ b/src/openscada_lite/modules/schedule/model.py @@ -0,0 +1,5 @@ +from openscada_lite.modules.base.base_model import BaseModel + +class ScheduleModel(BaseModel[None]): + def __init__(self): + super().__init__() diff --git a/src/openscada_lite/modules/schedule/service.py b/src/openscada_lite/modules/schedule/service.py new file mode 100644 index 0000000..d8791b8 --- /dev/null +++ b/src/openscada_lite/modules/schedule/service.py @@ -0,0 +1,51 @@ +from datetime import datetime +from apscheduler.schedulers.asyncio import AsyncIOScheduler +from apscheduler.triggers.cron import CronTrigger +import uuid + +from openscada_lite.common.actions.action_utils import execute_action +from openscada_lite.common.config.config import Config +from openscada_lite.modules.base.base_service import BaseService + +class ScheduleService(BaseService[None, None, None]): + def __init__(self, event_bus, model, controller): + super().__init__( + event_bus, + model, + controller, + None, + None, + None + ) + self.scheduler = AsyncIOScheduler() + self.config = Config.get_instance() + self.schedules = Config.get_instance().get_module_config("schedule").get("schedules", []) + print(f"Loaded schedules: {self.schedules}") + for sched in self.schedules: + self._register_schedule(sched) + self.scheduler.start() + + def _register_schedule(self, sched_cfg): + trigger = CronTrigger.from_crontab(sched_cfg["cron"]) + self.scheduler.add_job( + self._execute_schedule, + trigger=trigger, + args=[sched_cfg], + id=sched_cfg["schedule_id"], + replace_existing=True, + next_run_time=datetime.now() + ) + + async def _execute_schedule(self, sched_cfg): + track_id = str(uuid.uuid4()) + + for action in sched_cfg.get("actions", []): + await execute_action( + action_str=action, + identifier="SCHEDULER", + track_id=track_id, + rule_id=sched_cfg["schedule_id"], + ) + + def should_accept_update(self, msg: None) -> bool: + return False diff --git a/tests/test_mqtt_tasmota_driver.py b/tests/test_mqtt_tasmota_driver.py new file mode 100644 index 0000000..8c0aa63 --- /dev/null +++ b/tests/test_mqtt_tasmota_driver.py @@ -0,0 +1,183 @@ +import asyncio +import json +import pytest + +from types import SimpleNamespace + +from openscada_lite.common.models.dtos import SendCommandMsg, DriverConnectStatus, CommandFeedbackMsg +import openscada_lite.modules.communication.drivers.mqtt_tasmota_driver as mtd +from openscada_lite.modules.communication.drivers.mqtt_tasmota_driver import MQTTTasmotaRelayDriver + + +class FakeMQTTMessage: + def __init__(self, topic: str, payload: bytes): + self.topic = topic + self.payload = payload + + +class FakeClient: + def __init__(self, client_id=None): + self.client_id = client_id + self.subscriptions = [] + self.published = [] + # Callbacks assigned by driver + self.on_connect = None + self.on_disconnect = None + self.on_message = None + + def username_pw_set(self, username, password=None): + pass + + def connect(self, host, port=1883, keepalive=60): + # No real network + return 0 + + def loop_start(self): + pass + + def loop_stop(self): + pass + + def disconnect(self): + pass + + def subscribe(self, topic): + self.subscriptions.append(topic) + + def publish(self, topic, payload, qos=1): + self.published.append((topic, payload, qos)) + + +@pytest.mark.asyncio +async def test_mqtt_connect_emits_status_and_subscribes(monkeypatch): + # Patch the mqtt.Client used inside the driver module + # Patch the internal mqtt symbol to a namespace exposing Client + monkeypatch.setattr(mtd, "mqtt", SimpleNamespace(Client=FakeClient)) + + driver = MQTTTasmotaRelayDriver("XmasServer") + driver.initialize( + { + "host": "localhost", + "port": 1883, + "client_id": "client-1", + "device_topic": "xmas", + "relay_mapping": {"RELAY_1": "POWER1", "RELAY_2": "POWER2"}, + "subscriptions": [ + {"topic": "stat/{device}/POWER+", "type": "status"}, + {"topic": "stat/{device}/RESULT", "type": "feedback"}, + ], + "publish": {"command": "cmnd/{device}/{power}"}, + } + ) + + # Capture emitted status + status_events = [] + ev = asyncio.Event() + + async def status_cb(msg: DriverConnectStatus): + status_events.append(msg) + ev.set() + + driver.register_communication_status_listener(status_cb) + await driver.connect() + + # Simulate on_connect (rc=0) with the driver's client + driver._on_connect(driver._client, None, None, 0) + + await asyncio.wait_for(ev.wait(), timeout=1.0) + + assert status_events and status_events[0].status == "online" + subs = driver._client.subscriptions + assert f"stat/xmas/POWER1" in subs + assert f"stat/xmas/POWER2" in subs + assert f"stat/xmas/RESULT" in subs + + +@pytest.mark.asyncio +async def test_mqtt_toggle_publishes_opposite_and_feedback(monkeypatch): + monkeypatch.setattr(mtd, "mqtt", SimpleNamespace(Client=FakeClient)) + + driver = MQTTTasmotaRelayDriver("XmasServer") + driver.initialize( + { + "host": "localhost", + "port": 1883, + "client_id": "client-2", + "device_topic": "xmas", + "relay_mapping": {"RELAY_1": "POWER1"}, + "subscriptions": [ + {"topic": "stat/{device}/POWER+", "type": "status"}, + {"topic": "stat/{device}/RESULT", "type": "feedback"}, + ], + "publish": {"command": "cmnd/{device}/{power}"}, + "command_timeout": 2, + } + ) + + # Async feedback capture + feedback_events = [] + fb_ev = asyncio.Event() + + async def feedback_cb(msg: CommandFeedbackMsg): + feedback_events.append(msg) + fb_ev.set() + + driver.register_command_feedback(feedback_cb) + + # Value listener not strictly needed here + async def value_cb(_): + return None + + driver.register_value_listener(value_cb) + await driver.connect() + + # Seed current status to ON via POWER1 message + msg_on = FakeMQTTMessage("stat/xmas/POWER1", b"ON") + driver._on_message(driver._client, None, msg_on) + + # Send TOGGLE command; should publish OFF + await driver.send_command(SendCommandMsg("cmd-1", "XmasServer@RELAY_1_CMD", "TOGGLE")) + topic, payload, qos = driver._client.published[-1] + assert topic == "cmnd/xmas/POWER1" + assert payload == "OFF" + assert qos == 1 + + # Simulate RESULT to generate OK feedback + msg_result = FakeMQTTMessage("stat/xmas/RESULT", json.dumps({"POWER1": "OFF"}).encode()) + driver._on_message(driver._client, None, msg_result) + + await asyncio.wait_for(fb_ev.wait(), timeout=1.0) + + assert feedback_events, "Expected feedback event after RESULT" + fb = feedback_events[0] + assert fb.command_id == "cmd-1" + assert fb.datapoint_identifier == "XmasServer@RELAY_1_CMD" + assert fb.feedback == "OK" + assert fb.value == "OFF" + + +@pytest.mark.asyncio +async def test_mqtt_toggle_unknown_state_sends_toggle(monkeypatch): + monkeypatch.setattr(mtd, "mqtt", SimpleNamespace(Client=FakeClient)) + + driver = MQTTTasmotaRelayDriver("XmasServer") + driver.initialize( + { + "host": "localhost", + "port": 1883, + "client_id": "client-3", + "device_topic": "xmas", + "relay_mapping": {"RELAY_2": "POWER2"}, + "subscriptions": [], + "publish": {"command": "cmnd/{device}/{power}"}, + } + ) + + await driver.connect() + + # Without prior status, toggle should send 'ON' (default) + await driver.send_command(SendCommandMsg("cmd-2", "XmasServer@RELAY_2_CMD", "TOGGLE")) + topic, payload, qos = driver._client.published[-1] + assert topic == "cmnd/xmas/POWER2" + assert payload == "ON" + assert qos == 1 diff --git a/tests/test_schedule.py b/tests/test_schedule.py new file mode 100644 index 0000000..ec133d4 --- /dev/null +++ b/tests/test_schedule.py @@ -0,0 +1,107 @@ +import asyncio +import pytest +from types import SimpleNamespace + +from openscada_lite.modules.schedule.model import ScheduleModel +from openscada_lite.modules.schedule.service import ScheduleService +from openscada_lite.common.config.config import Config + + +class FakeScheduler: + def __init__(self): + self.jobs = [] + self.started = False + + def add_job(self, func, trigger, args=None, id=None, replace_existing=False, next_run_time=None): + self.jobs.append( + { + "func": func, + "trigger": trigger, + "args": args or [], + "id": id, + "replace_existing": replace_existing, + "next_run_time": next_run_time, + } + ) + + def start(self): + self.started = True + + +class DummyEventBus: + async def publish(self, *args, **kwargs): + pass + + +@pytest.mark.asyncio +async def test_schedule_registers_jobs_and_starts(monkeypatch): + # Provide a dummy schedule config via Config + class DummyConfig: + def get_module_config(self, name): + assert name == "schedule" + return { + "schedules": [ + {"schedule_id": "on_mode", "cron": "*/5 * * * *", "actions": ["mode:on"]}, + {"schedule_id": "off_mode", "cron": "0 23 * * *", "actions": ["mode:off"]}, + ] + } + + @staticmethod + def get_instance(): + return DummyConfig() + + # Monkeypatch Config.get_instance to our dummy + monkeypatch.setattr(Config, "get_instance", DummyConfig.get_instance) + # Monkeypatch AsyncIOScheduler to FakeScheduler + import openscada_lite.modules.schedule.service as schedule_service_module + monkeypatch.setattr(schedule_service_module, "AsyncIOScheduler", FakeScheduler) + + svc = ScheduleService(DummyEventBus(), ScheduleModel(), None) + + # Scheduler should be started + assert isinstance(svc.scheduler, FakeScheduler) + assert svc.scheduler.started is True + + # Two jobs should be registered + assert len(svc.scheduler.jobs) == 2 + job_ids = {job["id"] for job in svc.scheduler.jobs} + assert job_ids == {"on_mode", "off_mode"} + + # next_run_time should be set (immediate run behavior) + assert all(job["next_run_time"] is not None for job in svc.scheduler.jobs) + + +@pytest.mark.asyncio +async def test_schedule_execute_triggers_actions(monkeypatch): + # Dummy single schedule + sched_cfg = {"schedule_id": "daily_toggle", "cron": "0 12 * * *", "actions": ["mode:toggle", "notify:all"]} + + # Capture execute_action calls (monkeypatch the symbol used in the schedule service module) + calls = [] + async def fake_execute_action(action_str, identifier, track_id, rule_id): + calls.append({ + "action_str": action_str, + "identifier": identifier, + "track_id": track_id, + "rule_id": rule_id, + }) + + # Minimal service with fake scheduler + import openscada_lite.modules.schedule.service as schedule_service_module + monkeypatch.setattr(schedule_service_module, "AsyncIOScheduler", FakeScheduler) + monkeypatch.setattr(schedule_service_module, "execute_action", fake_execute_action) + svc = ScheduleService(DummyEventBus(), ScheduleModel(), None) + + # Execute directly + # Use parseable action strings + parseable_sched = {"schedule_id": "daily_toggle", "cron": "0 12 * * *", "actions": ["mode('toggle')", "notify('all')"]} + await svc._execute_schedule(parseable_sched) + + # Verify actions executed in order + assert [c["action_str"] for c in calls] == ["mode('toggle')", "notify('all')"] + # Identifier should be SCHEDULER per implementation + assert all(c["identifier"] == "SCHEDULER" for c in calls) + # Rule id propagation + assert all(c["rule_id"] == "daily_toggle" for c in calls) + # Track id should be a UUID-like string (non-empty) + assert all(isinstance(c["track_id"], str) and len(c["track_id"]) > 0 for c in calls) From 3c3b3d4334d3c725169a99acec3ff74a041a75b2 Mon Sep 17 00:00:00 2001 From: FERNANDEZ BOADA Daniel Date: Sun, 11 Jan 2026 00:17:38 +0100 Subject: [PATCH 2/8] Cleanup --- app.log | 29 +++++++++++++++++++ scripts/remove_override.py | 5 +++- .../modules/animation/controller.py | 9 ++++-- .../manager/connector_manager.py | 4 +-- .../modules/schedule/service.py | 5 +++- 5 files changed, 45 insertions(+), 7 deletions(-) diff --git a/app.log b/app.log index 986b7cb..6ff00b3 100644 --- a/app.log +++ b/app.log @@ -4324,3 +4324,32 @@ ModuleNotFoundError: No module named 'openscada_lite.common.utils.AsyncUtils' 2026-01-11 00:11:09,523 INFO openscada_lite.modules.communication.drivers.test.test_driver [INIT] Initializing values for WaterTank tags: {'TANK': RawTagUpdateMsg(track_id='3d3e2872-204c-4d91-9159-6ba6d9c9f59f', datapoint_identifier='WaterTank@TANK', value=0.0, quality='good', timestamp=datetime.datetime(2026, 1, 11, 0, 11, 9, 523205))} 2026-01-11 00:11:09,523 INFO openscada_lite.modules.communication.drivers.test.test_driver [COMMAND] Handling special command: TANK = 50 2026-01-11 00:11:09,523 INFO openscada_lite.modules.communication.drivers.test.test_driver [DISCONNECT] Disconnecting driver WaterTank +2026-01-11 00:12:54,623 INFO openscada_lite.app [LIFESPAN] Shutdown complete +2026-01-11 00:12:57,239 INFO openscada_lite.app [LIFESPAN] Startup starting... +2026-01-11 00:12:57,888 INFO openscada_lite.modules.communication.drivers.opc_ua_server_driver [OPCUA] Will expose 6 nodes on connect() +2026-01-11 00:12:57,889 INFO openscada_lite.modules.communication.drivers.test.test_driver [INIT] Creating TestDriver CameraDriver +2026-01-11 00:12:57,889 INFO openscada_lite.modules.communication.drivers.test.test_driver [INIT] Creating TestDriver WaterTank +2026-01-11 00:12:57,889 INFO openscada_lite.modules.communication.drivers.test.test_driver [INIT] Creating TestDriver StressTest +2026-01-11 00:12:57,891 INFO openscada_lite.modules.communication.drivers.test.test_driver [INIT] Creating TestDriver TrainTestDriver +2026-01-11 00:12:58,024 INFO apscheduler.scheduler Adding job tentatively -- it will be properly scheduled when the scheduler starts +2026-01-11 00:12:58,025 INFO apscheduler.scheduler Adding job tentatively -- it will be properly scheduled when the scheduler starts +2026-01-11 00:12:58,026 INFO apscheduler.scheduler Added job "ScheduleService._execute_schedule" to job store "default" +2026-01-11 00:12:58,027 INFO apscheduler.scheduler Added job "ScheduleService._execute_schedule" to job store "default" +2026-01-11 00:12:58,027 INFO apscheduler.scheduler Scheduler started +2026-01-11 00:12:58,052 INFO openscada_lite.modules.rule.manager.rule_manager Initializing RuleEngine with datapoint types: ['BOOL', 'CAMERA_POSITION', 'LEVEL', 'OPENED_CLOSED', 'OPEN_CLOSE_CMD', 'PRESSURE', 'START_STOP', 'START_STOP_CMD', 'SWITCH_CONTROL', 'SWITCH_CONTROL_CMD', 'TEMPERATURE', 'ON_OFF'] +2026-01-11 00:12:58,065 INFO openscada_lite.app [LIFESPAN] Startup complete +2026-01-11 00:12:58,066 INFO apscheduler.executors.default Running job "ScheduleService._execute_schedule (trigger: cron[month='*', day='*', day_of_week='*', hour='17', minute='0'], next run at: 2026-01-11 17:00:00 CET)" (scheduled at 2026-01-11 00:12:58.024459+01:00) +2026-01-11 00:12:58,067 INFO openscada_lite.modules.communication.manager.connector_manager [COMMAND] Sending command: TasmotaRelayDriver@RELAY_1_CMD = ON +2026-01-11 00:12:58,068 WARNING openscada_lite.modules.communication.manager.connector_manager Driver 'TasmotaRelayDriver' is not connected. Cannot send command. +2026-01-11 00:12:58,068 INFO openscada_lite.modules.communication.manager.connector_manager [COMMAND] Sending command: TasmotaRelayDriver@RELAY_2_CMD = ON +2026-01-11 00:12:58,068 WARNING openscada_lite.modules.communication.manager.connector_manager Driver 'TasmotaRelayDriver' is not connected. Cannot send command. +2026-01-11 00:12:58,069 INFO apscheduler.executors.default Job "ScheduleService._execute_schedule (trigger: cron[month='*', day='*', day_of_week='*', hour='17', minute='0'], next run at: 2026-01-11 17:00:00 CET)" executed successfully +2026-01-11 00:12:58,070 INFO apscheduler.executors.default Running job "ScheduleService._execute_schedule (trigger: cron[month='*', day='*', day_of_week='*', hour='23', minute='0'], next run at: 2026-01-11 23:00:00 CET)" (scheduled at 2026-01-11 00:12:58.025130+01:00) +2026-01-11 00:12:58,070 INFO openscada_lite.modules.communication.manager.connector_manager [COMMAND] Sending command: TasmotaRelayDriver@RELAY_1_CMD = OFF +2026-01-11 00:12:58,070 WARNING openscada_lite.modules.communication.manager.connector_manager Driver 'TasmotaRelayDriver' is not connected. Cannot send command. +2026-01-11 00:12:58,072 INFO openscada_lite.modules.communication.manager.connector_manager [COMMAND] Sending command: TasmotaRelayDriver@RELAY_2_CMD = OFF +2026-01-11 00:12:58,072 WARNING openscada_lite.modules.communication.manager.connector_manager Driver 'TasmotaRelayDriver' is not connected. Cannot send command. +2026-01-11 00:12:58,073 INFO apscheduler.executors.default Job "ScheduleService._execute_schedule (trigger: cron[month='*', day='*', day_of_week='*', hour='23', minute='0'], next run at: 2026-01-11 23:00:00 CET)" executed successfully +2026-01-11 00:13:13,168 INFO openscada_lite.modules.communication.drivers.test.test_driver [INIT] Initializing values for TrainTestDriver tags: {'RIGHT_SWITCH_CONTROL': RawTagUpdateMsg(track_id='6cbdc52d-f3b5-4caa-af47-44d550128844', datapoint_identifier='TrainTestDriver@RIGHT_SWITCH_CONTROL', value='STRAIGHT', quality='good', timestamp=datetime.datetime(2026, 1, 11, 0, 12, 57, 891620)), 'LEFT_SWITCH_CONTROL': RawTagUpdateMsg(track_id='9552524b-3fd0-4394-a448-0ef538da2d5f', datapoint_identifier='TrainTestDriver@LEFT_SWITCH_CONTROL', value='STRAIGHT', quality='good', timestamp=datetime.datetime(2026, 1, 11, 0, 12, 57, 891620))} +2026-01-11 00:13:18,555 INFO openscada_lite.modules.communication.manager.connector_manager [COMMAND] Sending command: TrainTestDriver@LEFT_SWITCH_CONTROL_CMD = TOGGLE +2026-01-11 00:13:18,556 INFO openscada_lite.modules.communication.drivers.test.test_driver [COMMAND] Handling special command: LEFT_SWITCH_CONTROL_CMD = TOGGLE diff --git a/scripts/remove_override.py b/scripts/remove_override.py index 917417b..e4770f9 100644 --- a/scripts/remove_override.py +++ b/scripts/remove_override.py @@ -1,5 +1,8 @@ import os import re +import logging + +logger = logging.getLogger(__name__) # Remove override when used in python3.11 BASE_DIR = "./openscada_lite" # Change if needed @@ -32,4 +35,4 @@ def remove_override_from_import(match): with open(path, "w", encoding="utf-8") as f: f.write(content) - print(f"Processed {path}") + logger.debug(f"Processed {path}") diff --git a/src/openscada_lite/modules/animation/controller.py b/src/openscada_lite/modules/animation/controller.py index 6ff6965..8b0eba9 100644 --- a/src/openscada_lite/modules/animation/controller.py +++ b/src/openscada_lite/modules/animation/controller.py @@ -22,6 +22,9 @@ AnimationUpdateRequestMsg, AnimationUpdateMsg, ) +import logging + +logger = logging.getLogger(__name__) class AnimationController( @@ -43,7 +46,7 @@ def __init__(self, model, socketio, module_name: str, router: APIRouter): def register_local_routes(self, router: APIRouter): @router.get("/animation/svgs", tags=[self.base_event], operation_id="getSvgs") async def list_svgs(): - print("Listing SVG files") + logger.debug("Listing SVG files") """Return the list of SVG files for the animation module.""" return JSONResponse(content=self.svg_files) @@ -64,11 +67,11 @@ async def list_svgs(): }, ) async def svg(filename: str): - print(f"Requested SVG file: {filename}") + logger.debug(f"Requested SVG file: {filename}") svg_dir = ( Path(__file__).parent.parent.parent.parent.parent / "config" / "svg" ) - print(f"SVG directory: {svg_dir}") + logger.debug(f"SVG directory: {svg_dir}") file = svg_dir / filename if file.exists(): return FileResponse( diff --git a/src/openscada_lite/modules/communication/manager/connector_manager.py b/src/openscada_lite/modules/communication/manager/connector_manager.py index 9a0a098..554a89d 100644 --- a/src/openscada_lite/modules/communication/manager/connector_manager.py +++ b/src/openscada_lite/modules/communication/manager/connector_manager.py @@ -130,7 +130,7 @@ def set_command_listener(self, listener: CommandListener): async def handle_driver_connect_command(self, data: DriverConnectCommand): driver_name = data.driver_name status = data.status - print(f"Handling driver command: {driver_name} -> {status} from {self.driver_instances.keys()}") + logger.debug(f"Handling driver command: {driver_name} -> {status} from {self.driver_instances.keys()}") driver = self.driver_instances.get(driver_name) if driver: if status == "connect": @@ -153,7 +153,7 @@ async def emit_command_feedback(self, data: CommandFeedbackMsg): @publish_from_arg_async(status=DataFlowStatus.RECEIVED) async def emit_communication_status(self, data: DriverConnectStatus): - print(f"Emitting communication status: {data.driver_name} -> {data.status}") + logger.debug(f"Emitting communication status: {data.driver_name} -> {data.status}") await self.listener.on_driver_connect_status(data) if self.listener else None # If the driver went offline, publish all tags as unknown driver_name = data.driver_name diff --git a/src/openscada_lite/modules/schedule/service.py b/src/openscada_lite/modules/schedule/service.py index d8791b8..239586d 100644 --- a/src/openscada_lite/modules/schedule/service.py +++ b/src/openscada_lite/modules/schedule/service.py @@ -6,6 +6,9 @@ from openscada_lite.common.actions.action_utils import execute_action from openscada_lite.common.config.config import Config from openscada_lite.modules.base.base_service import BaseService +import logging + +logger = logging.getLogger(__name__) class ScheduleService(BaseService[None, None, None]): def __init__(self, event_bus, model, controller): @@ -20,7 +23,7 @@ def __init__(self, event_bus, model, controller): self.scheduler = AsyncIOScheduler() self.config = Config.get_instance() self.schedules = Config.get_instance().get_module_config("schedule").get("schedules", []) - print(f"Loaded schedules: {self.schedules}") + logger.debug(f"Loaded schedules: {self.schedules}") for sched in self.schedules: self._register_schedule(sched) self.scheduler.start() From 505d8e2cf8b58780c9ab9bb30fb02c84e33a0b1a Mon Sep 17 00:00:00 2001 From: FERNANDEZ BOADA Daniel Date: Sun, 11 Jan 2026 09:52:49 +0100 Subject: [PATCH 3/8] Cleanup --- app.log | 1 + setup.py | 9 ++--- src/openscada_lite/app.py | 4 +- src/openscada_lite/common/actions/action.py | 4 +- src/openscada_lite/common/bus/event_bus.py | 8 +--- src/openscada_lite/common/config/config.py | 37 +++++-------------- src/openscada_lite/common/models/dtos.py | 8 +--- .../common/tracking/decorators.py | 12 ++---- .../common/tracking/publisher.py | 21 +++-------- .../common/utils/SecurityUtils.py | 3 +- .../modules/alarm/controller.py | 8 +--- src/openscada_lite/modules/alarm/service.py | 4 +- src/openscada_lite/modules/alert/service.py | 4 +- .../modules/animation/controller.py | 16 ++------ .../animation/handlers/alarm_handler.py | 12 ++---- .../animation/handlers/connection_handler.py | 8 +--- .../modules/animation/handlers/tag_handler.py | 4 +- .../modules/animation/service.py | 10 +---- .../modules/base/base_controller.py | 12 ++---- .../modules/base/base_service.py | 4 +- .../modules/command/controller.py | 4 +- src/openscada_lite/modules/command/model.py | 4 +- src/openscada_lite/modules/command/service.py | 4 +- .../modules/communication/controller.py | 4 +- .../modules/communication/drivers/__init__.py | 6 +-- .../drivers/mqtt_tasmota_driver.py | 14 +++---- .../drivers/opc_ua_server_driver.py | 12 ++---- .../drivers/test/boiler_test_driver.py | 14 ++----- .../communication/drivers/test/test_driver.py | 24 +++--------- .../manager/connector_manager.py | 33 ++++++----------- .../modules/communication/service.py | 8 +--- .../modules/datapoint/controller.py | 8 +--- src/openscada_lite/modules/datapoint/model.py | 4 +- src/openscada_lite/modules/datapoint/utils.py | 4 +- src/openscada_lite/modules/gis/service.py | 15 ++------ src/openscada_lite/modules/loader.py | 12 ++---- .../modules/rule/manager/rule_manager.py | 28 ++++---------- .../modules/schedule/controller.py | 17 +++++++++ src/openscada_lite/modules/schedule/model.py | 17 +++++++++ .../modules/schedule/service.py | 28 +++++++++----- .../modules/security/controller.py | 24 +++--------- src/openscada_lite/modules/security/model.py | 4 +- .../modules/security/service.py | 10 +---- .../modules/tracking/service.py | 4 +- .../web/config_editor/routes.py | 8 +--- src/openscada_lite/web/scada/__init__.py | 4 +- .../web/security_editor/routes.py | 8 +--- tests/test_alarm_service.py | 8 +--- tests/test_animation_service.py | 12 ++---- tests/test_communication.py | 27 ++++---------- tests/test_datapoint_app.py | 4 +- tests/test_datapoint_controller.py | 13 ++----- tests/test_datapoint_manager.py | 20 +++------- tests/test_event_bus.py | 20 +++------- tests/test_gis.py | 20 +++------- tests/test_integration_connector_datapoint.py | 4 +- tests/test_integration_ruleengine_alarm.py | 28 ++++---------- tests/test_mqtt_tasmota_driver.py | 12 ++++-- tests/test_rule_engine.py | 20 +++------- tests/test_schedule.py | 34 ++++++++++------- tests/test_tracking_module.py | 3 +- 61 files changed, 244 insertions(+), 492 deletions(-) diff --git a/app.log b/app.log index 6ff00b3..0812563 100644 --- a/app.log +++ b/app.log @@ -4353,3 +4353,4 @@ ModuleNotFoundError: No module named 'openscada_lite.common.utils.AsyncUtils' 2026-01-11 00:13:13,168 INFO openscada_lite.modules.communication.drivers.test.test_driver [INIT] Initializing values for TrainTestDriver tags: {'RIGHT_SWITCH_CONTROL': RawTagUpdateMsg(track_id='6cbdc52d-f3b5-4caa-af47-44d550128844', datapoint_identifier='TrainTestDriver@RIGHT_SWITCH_CONTROL', value='STRAIGHT', quality='good', timestamp=datetime.datetime(2026, 1, 11, 0, 12, 57, 891620)), 'LEFT_SWITCH_CONTROL': RawTagUpdateMsg(track_id='9552524b-3fd0-4394-a448-0ef538da2d5f', datapoint_identifier='TrainTestDriver@LEFT_SWITCH_CONTROL', value='STRAIGHT', quality='good', timestamp=datetime.datetime(2026, 1, 11, 0, 12, 57, 891620))} 2026-01-11 00:13:18,555 INFO openscada_lite.modules.communication.manager.connector_manager [COMMAND] Sending command: TrainTestDriver@LEFT_SWITCH_CONTROL_CMD = TOGGLE 2026-01-11 00:13:18,556 INFO openscada_lite.modules.communication.drivers.test.test_driver [COMMAND] Handling special command: LEFT_SWITCH_CONTROL_CMD = TOGGLE +2026-01-11 09:43:29,643 INFO openscada_lite.app [LIFESPAN] Shutdown complete diff --git a/setup.py b/setup.py index 091beb3..4264fba 100644 --- a/setup.py +++ b/setup.py @@ -13,6 +13,7 @@ For more information, see: https://setuptools.pypa.io/en/latest/userguide/index.html """ + from setuptools import setup, find_packages @@ -20,9 +21,7 @@ def read_requirements(filename="requirements.txt"): """Read requirements from a file, ignoring BOM and comments.""" with open(filename, encoding="utf-8-sig") as f: # 'utf-8-sig' automatically removes BOM if present - lines = [ - line.strip() for line in f if line.strip() and not line.startswith("#") - ] + lines = [line.strip() for line in f if line.strip() and not line.startswith("#")] return lines @@ -34,9 +33,7 @@ def read_requirements(filename="requirements.txt"): author_email="boadadf@yahoo.com", url="https://github.com/boadadf/python-scada", package_dir={"": "src"}, - packages=find_packages( - where="src", include=["openscada_lite*", "openscada_lite.*"] - ), + packages=find_packages(where="src", include=["openscada_lite*", "openscada_lite.*"]), install_requires=read_requirements(), python_requires=">=3.9", include_package_data=True, diff --git a/src/openscada_lite/app.py b/src/openscada_lite/app.py index f0013fe..6e14b62 100644 --- a/src/openscada_lite/app.py +++ b/src/openscada_lite/app.py @@ -62,9 +62,7 @@ def get_logging_config_path(args=None): env_var = "LOGGING_CONFIG_PATH" if env_var in os.environ: return os.environ[env_var] - cfg = next( - (arg for arg in (args or []) if arg.startswith("--logging-config=")), None - ) + cfg = next((arg for arg in (args or []) if arg.startswith("--logging-config=")), None) if cfg: return cfg.split("=", 1)[1] return str(Path(__file__).parent.parent.parent / "config" / "logging_config.json") diff --git a/src/openscada_lite/common/actions/action.py b/src/openscada_lite/common/actions/action.py index 2d97624..94f7175 100644 --- a/src/openscada_lite/common/actions/action.py +++ b/src/openscada_lite/common/actions/action.py @@ -34,9 +34,7 @@ def __init__(self): async def __call__( self, datapoint_identifier, params, track_id, rule_id ) -> tuple[DTO, EventType]: - dto, event = self.get_event_data( - datapoint_identifier, params, track_id, rule_id - ) + dto, event = self.get_event_data(datapoint_identifier, params, track_id, rule_id) await self.bus.publish(event, dto) return dto, event diff --git a/src/openscada_lite/common/bus/event_bus.py b/src/openscada_lite/common/bus/event_bus.py index 368da59..cbe614d 100644 --- a/src/openscada_lite/common/bus/event_bus.py +++ b/src/openscada_lite/common/bus/event_bus.py @@ -27,9 +27,7 @@ class EventBus: def __new__(cls, *args, **kwargs): if cls._instance is not None: - raise RuntimeError( - "Use EventBus.get_instance() instead of direct instantiation." - ) + raise RuntimeError("Use EventBus.get_instance() instead of direct instantiation.") return super().__new__(cls) @classmethod @@ -42,9 +40,7 @@ def get_instance(cls): def __init__(self): # Each event type has a list of subscriber callbacks - self._subscribers: Dict[EventType, List[Callable[[Any], Any]]] = defaultdict( - list - ) + self._subscribers: Dict[EventType, List[Callable[[Any], Any]]] = defaultdict(list) def clear_subscribers(self): """Remove all subscribers (for test isolation).""" diff --git a/src/openscada_lite/common/config/config.py b/src/openscada_lite/common/config/config.py index ee70879..363f560 100644 --- a/src/openscada_lite/common/config/config.py +++ b/src/openscada_lite/common/config/config.py @@ -29,9 +29,7 @@ class Config: def __new__(cls, *args, **kwargs): if cls._instance is not None: - raise RuntimeError( - "Use Config.get_instance() instead of direct instantiation." - ) + raise RuntimeError("Use Config.get_instance() instead of direct instantiation.") return super().__new__(cls) def __init__(self, config_path: str): @@ -81,10 +79,7 @@ def get_datapoint_types_for_driver(self, driver_name: str, types: dict) -> dict: """ for drv in self.get_drivers(): if drv["name"] == driver_name: - return { - dp["name"]: types.get(dp["type"]) - for dp in drv.get("datapoints", []) - } + return {dp["name"]: types.get(dp["type"]) for dp in drv.get("datapoints", [])} return {} def get_allowed_datapoint_identifiers(self): @@ -96,9 +91,7 @@ def get_allowed_datapoint_identifiers(self): # Check if the datapoint_identifier is already fully qualified # Fully qualified dps are handled by its own driver if "@" not in datapoint_identifier["name"]: - datapoint_identifiers.append( - f"{driver_name}@{datapoint_identifier['name']}" - ) + datapoint_identifiers.append(f"{driver_name}@{datapoint_identifier['name']}") return datapoint_identifiers def get_allowed_command_identifiers(self): @@ -107,9 +100,7 @@ def get_allowed_command_identifiers(self): for driver in self.get_drivers(): driver_name = driver["name"] for datapoint_identifier in driver.get("command_datapoints", []): - datapoint_identifiers.append( - f"{driver_name}@{datapoint_identifier['name']}" - ) + datapoint_identifiers.append(f"{driver_name}@{datapoint_identifier['name']}") return datapoint_identifiers def _get_default_for_datapoint(self, dp_name: str, datapoints: list) -> any: @@ -133,9 +124,7 @@ def get_default_value(self, datapoint_identifier: str): for driver in self._config.get("drivers", []): if driver.get("name") == driver_name: # Search in datapoints - default = self._get_default_for_datapoint( - dp_name, driver.get("datapoints", []) - ) + default = self._get_default_for_datapoint(dp_name, driver.get("datapoints", [])) if default is not None: return default # Search in command_datapoints if not found @@ -148,9 +137,7 @@ def _find_datapoint_type(self, datapoint_identifier: str): """Find and return the datapoint type definition for a given identifier.""" for driver in self.get_drivers(): driver_name = driver["name"] - for dp in driver.get("datapoints", []) + driver.get( - "command_datapoints", [] - ): + for dp in driver.get("datapoints", []) + driver.get("command_datapoints", []): if f"{driver_name}@{dp['name']}" == datapoint_identifier: dp_type_name = dp.get("type") return self.get_types().get(dp_type_name) @@ -199,9 +186,7 @@ def get_module_config(self, module_name: str) -> dict: def get_animations(self): animations_dict = self._config.get("animations", {}) return { - name: Animation( - name=name, entries=[AnimationEntry(**entry) for entry in entries] - ) + name: Animation(name=name, entries=[AnimationEntry(**entry) for entry in entries]) for name, entries in animations_dict.items() } @@ -254,9 +239,7 @@ def get_animation_datapoint_map(self) -> dict: dp = elem.attrib.get("data-datapoint") anim = elem.attrib.get("data-animation") if dp and anim: - datapoint_map.setdefault(dp, []).append( - (fname, elem.attrib.get("id"), anim) - ) + datapoint_map.setdefault(dp, []).append((fname, elem.attrib.get("id"), anim)) return datapoint_map def get_gis_icons(self) -> list: @@ -278,9 +261,7 @@ def get_security_config_path(self) -> str: ) base_dir = os.path.dirname(raw_path) else: - logger.debug( - f"SCADA_CONFIG_PATH is a directory. Using it directly: {raw_path}" - ) + logger.debug(f"SCADA_CONFIG_PATH is a directory. Using it directly: {raw_path}") base_dir = raw_path logger.debug( f"Security config will be at: {os.path.join(base_dir, 'security_config.json')}" diff --git a/src/openscada_lite/common/models/dtos.py b/src/openscada_lite/common/models/dtos.py index 2a1b470..3ac8e03 100644 --- a/src/openscada_lite/common/models/dtos.py +++ b/src/openscada_lite/common/models/dtos.py @@ -424,12 +424,8 @@ def to_test_update_msg(self) -> Union[AlarmUpdateMsg, TagUpdateMsg]: now = datetime.datetime.now() status = (self.alarm_status or "UNKNOWN").upper() - activation_time = ( - now if status in ["ACTIVE", "ACK", "INACTIVE", "FINISHED"] else None - ) - acknowledge_time = ( - now if status in ["ACK", "INACTIVE", "FINISHED"] else None - ) + activation_time = now if status in ["ACTIVE", "ACK", "INACTIVE", "FINISHED"] else None + acknowledge_time = now if status in ["ACK", "INACTIVE", "FINISHED"] else None deactivation_time = now if status in ["INACTIVE", "FINISHED"] else None return AlarmUpdateMsg( diff --git a/src/openscada_lite/common/tracking/decorators.py b/src/openscada_lite/common/tracking/decorators.py index efec1bc..1773b23 100644 --- a/src/openscada_lite/common/tracking/decorators.py +++ b/src/openscada_lite/common/tracking/decorators.py @@ -136,13 +136,9 @@ async def wrapper(*args, **kwargs): result = await func(*args, **kwargs) dto = None - logger.debug( - f"[TRACKING] Tape {type(result)} returned from {func.__name__}" - ) + logger.debug(f"[TRACKING] Tape {type(result)} returned from {func.__name__}") if isinstance(result, JSONResponse): - logger.debug( - f"[TRACKING] JSONResponse detected with body: {result.body}" - ) + logger.debug(f"[TRACKING] JSONResponse detected with body: {result.body}") try: content_dict = json.loads(result.body.decode()) dto = DataFlowEventMsg( @@ -162,9 +158,7 @@ async def wrapper(*args, **kwargs): logger.debug( f"[TRACKING] Publishing event from route {func.__name__} with status {status}" ) - pub.publish_data_flow_event( - dto, source=source or func.__name__, status=status - ) + pub.publish_data_flow_event(dto, source=source or func.__name__, status=status) return result diff --git a/src/openscada_lite/common/tracking/publisher.py b/src/openscada_lite/common/tracking/publisher.py index beee28c..d102cc1 100644 --- a/src/openscada_lite/common/tracking/publisher.py +++ b/src/openscada_lite/common/tracking/publisher.py @@ -90,9 +90,7 @@ def enable(self): """Enable actual deliveries to the event loop.""" """Safe to call once the app is fully running.""" self._enabled = True - logger.debug( - "[TrackingPublisher] enabled; will start dispatching queued events" - ) + logger.debug("[TrackingPublisher] enabled; will start dispatching queued events") def disable(self): self._enabled = False @@ -118,14 +116,10 @@ def publish_data_flow_event(self, dto: DTO, source: str, status: DataFlowStatus) payload=dto.get_track_payload(), ) except Exception as e: - logging.debug( - "[TrackingPublisher] failed creating DataFlowEventMsg: %s", e - ) + logging.debug("[TrackingPublisher] failed creating DataFlowEventMsg: %s", e) return else: - logging.debug( - "[TrackingPublisher] skipped: dto is not a valid DTO or DataFlowEventMsg" - ) + logging.debug("[TrackingPublisher] skipped: dto is not a valid DTO or DataFlowEventMsg") return logging.debug("[TrackingPublisher] created event %s %s", event.track_id, status) self.queue.put(event) @@ -154,9 +148,7 @@ def _requeue_event(self, item: DataFlowEventMsg): def _publish_to_event_bus(self, item: DataFlowEventMsg): """Publish event to the event bus.""" try: - logging.debug( - "[TrackingPublisher] scheduling publish for %s", item.track_id - ) + logging.debug("[TrackingPublisher] scheduling publish for %s", item.track_id) asyncio.run_coroutine_threadsafe( EventBus.get_instance().publish(EventType.TRACKING_EVENT, item), self.loop, @@ -169,10 +161,7 @@ def _persist_to_file(self, item: DataFlowEventMsg): if self.mode == "file": try: with open(self.file_path, "a") as f: - f.write( - json.dumps(item.get_track_payload(), default=safe_serialize) - + "\n" - ) + f.write(json.dumps(item.get_track_payload(), default=safe_serialize) + "\n") except Exception: logger.exception("[TrackingPublisher] failed writing event to file") diff --git a/src/openscada_lite/common/utils/SecurityUtils.py b/src/openscada_lite/common/utils/SecurityUtils.py index 2989fa7..13272e6 100644 --- a/src/openscada_lite/common/utils/SecurityUtils.py +++ b/src/openscada_lite/common/utils/SecurityUtils.py @@ -33,8 +33,7 @@ def create_jwt(username: str, groups=None) -> str: payload = { "username": username, "groups": groups or [], - "exp": datetime.datetime.now() - + datetime.timedelta(seconds=JWT_EXP_DELTA_SECONDS), + "exp": datetime.datetime.now() + datetime.timedelta(seconds=JWT_EXP_DELTA_SECONDS), } token = jwt.encode(payload, JWT_SECRET, algorithm=JWT_ALGORITHM) return token diff --git a/src/openscada_lite/modules/alarm/controller.py b/src/openscada_lite/modules/alarm/controller.py index def451d..1409be3 100644 --- a/src/openscada_lite/modules/alarm/controller.py +++ b/src/openscada_lite/modules/alarm/controller.py @@ -22,12 +22,8 @@ class AlarmController(BaseController[AlarmUpdateMsg, AckAlarmMsg]): - def __init__( - self, model: AlarmModel, socketio, module_name: str, router: APIRouter - ): - super().__init__( - model, socketio, AlarmUpdateMsg, AckAlarmMsg, module_name, router - ) + def __init__(self, model: AlarmModel, socketio, module_name: str, router: APIRouter): + super().__init__(model, socketio, AlarmUpdateMsg, AckAlarmMsg, module_name, router) self.model: AlarmModel = model def validate_request_data(self, data: AckAlarmMsg) -> Union[AckAlarmMsg, StatusDTO]: diff --git a/src/openscada_lite/modules/alarm/service.py b/src/openscada_lite/modules/alarm/service.py index 0a92f8f..806d709 100644 --- a/src/openscada_lite/modules/alarm/service.py +++ b/src/openscada_lite/modules/alarm/service.py @@ -31,9 +31,7 @@ ) -class AlarmService( - BaseService[Union[RaiseAlarmMsg, LowerAlarmMsg], AckAlarmMsg, AlarmUpdateMsg] -): +class AlarmService(BaseService[Union[RaiseAlarmMsg, LowerAlarmMsg], AckAlarmMsg, AlarmUpdateMsg]): def __init__(self, event_bus, model: AlarmModel, controller: AlarmController): super().__init__( event_bus, diff --git a/src/openscada_lite/modules/alert/service.py b/src/openscada_lite/modules/alert/service.py index 0711317..ac9ca06 100644 --- a/src/openscada_lite/modules/alert/service.py +++ b/src/openscada_lite/modules/alert/service.py @@ -61,6 +61,4 @@ async def handle_controller_message(self, data: ClientAlertFeedbackMsg): datapoint_identifier=alert_msg.command_datapoint, value=alert_msg.command_value, ) - await self.event_bus.publish( - SendCommandMsg.get_event_type(), cmd_msg - ) + await self.event_bus.publish(SendCommandMsg.get_event_type(), cmd_msg) diff --git a/src/openscada_lite/modules/animation/controller.py b/src/openscada_lite/modules/animation/controller.py index 8b0eba9..162a645 100644 --- a/src/openscada_lite/modules/animation/controller.py +++ b/src/openscada_lite/modules/animation/controller.py @@ -27,9 +27,7 @@ logger = logging.getLogger(__name__) -class AnimationController( - BaseController[AnimationUpdateMsg, AnimationUpdateRequestMsg] -): +class AnimationController(BaseController[AnimationUpdateMsg, AnimationUpdateRequestMsg]): def __init__(self, model, socketio, module_name: str, router: APIRouter): super().__init__( model, @@ -68,19 +66,13 @@ async def list_svgs(): ) async def svg(filename: str): logger.debug(f"Requested SVG file: {filename}") - svg_dir = ( - Path(__file__).parent.parent.parent.parent.parent / "config" / "svg" - ) + svg_dir = Path(__file__).parent.parent.parent.parent.parent / "config" / "svg" logger.debug(f"SVG directory: {svg_dir}") file = svg_dir / filename if file.exists(): - return FileResponse( - file, media_type="text/plain" - ) # Ensure correct media type + return FileResponse(file, media_type="text/plain") # Ensure correct media type return JSONResponse(content={"error": "File not found"}, status_code=404) - def validate_request_data( - self, data: AnimationUpdateRequestMsg - ) -> AnimationUpdateRequestMsg: + def validate_request_data(self, data: AnimationUpdateRequestMsg) -> AnimationUpdateRequestMsg: # You could also return a StatusDTO if invalid return data diff --git a/src/openscada_lite/modules/animation/handlers/alarm_handler.py b/src/openscada_lite/modules/animation/handlers/alarm_handler.py index 4c101b1..9c549db 100644 --- a/src/openscada_lite/modules/animation/handlers/alarm_handler.py +++ b/src/openscada_lite/modules/animation/handlers/alarm_handler.py @@ -54,16 +54,12 @@ def _process_animation_entries(self, animation, event_value, quality, service): def _schedule_revert_if_needed(self, entry, svg_name, elem_id, anim_name, service): if getattr(entry, "revert_after", 0): - task = asyncio.create_task( - service.schedule_revert(svg_name, elem_id, anim_name, entry) - ) + task = asyncio.create_task(service.schedule_revert(svg_name, elem_id, anim_name, entry)) task.add_done_callback(lambda t: t.exception()) def handle(self, msg, service): updates = [] - identifier = getattr(msg, "datapoint_identifier", None) or getattr( - msg, "alarm_id", None - ) + identifier = getattr(msg, "datapoint_identifier", None) or getattr(msg, "alarm_id", None) if not identifier: return updates @@ -86,9 +82,7 @@ def handle(self, msg, service): continue for entry in animation.entries: if getattr(entry, "trigger_type", "") == "alarm": - self._schedule_revert_if_needed( - entry, svg_name, elem_id, anim_name, service - ) + self._schedule_revert_if_needed(entry, svg_name, elem_id, anim_name, service) cfg = {"attr": agg_attr, "duration": duration} if agg_text: diff --git a/src/openscada_lite/modules/animation/handlers/connection_handler.py b/src/openscada_lite/modules/animation/handlers/connection_handler.py index 692ad87..e2f08a7 100644 --- a/src/openscada_lite/modules/animation/handlers/connection_handler.py +++ b/src/openscada_lite/modules/animation/handlers/connection_handler.py @@ -38,9 +38,7 @@ def handle(self, msg, service): return updates - def _create_animation_update( - self, service, svg_name, elem_id, anim_name, event_value - ): + def _create_animation_update(self, service, svg_name, elem_id, anim_name, event_value): animation = service.animations.get(anim_name) if not animation: return None @@ -70,9 +68,7 @@ def _process_animation_entries(self, service, animation, event_value): if getattr(entry, "trigger_type", "") != "connection": continue - attr_changes, text_change, dur = service.process_single_entry( - entry, event_value, None - ) + attr_changes, text_change, dur = service.process_single_entry(entry, event_value, None) agg_attr.update(attr_changes) if text_change: agg_text = text_change diff --git a/src/openscada_lite/modules/animation/handlers/tag_handler.py b/src/openscada_lite/modules/animation/handlers/tag_handler.py index 82449bb..411cf79 100644 --- a/src/openscada_lite/modules/animation/handlers/tag_handler.py +++ b/src/openscada_lite/modules/animation/handlers/tag_handler.py @@ -56,9 +56,7 @@ def _process_mapping(self, msg, service, svg_name, elem_id, anim_name): test=getattr(msg, "test", False), ) - def _process_animation_entries( - self, animation, msg, service, svg_name, elem_id, anim_name - ): + def _process_animation_entries(self, animation, msg, service, svg_name, elem_id, anim_name): agg_attr = {} agg_text = None duration = service.DURATION_DEFAULT diff --git a/src/openscada_lite/modules/animation/service.py b/src/openscada_lite/modules/animation/service.py index ed84cac..cb50a3e 100644 --- a/src/openscada_lite/modules/animation/service.py +++ b/src/openscada_lite/modules/animation/service.py @@ -171,11 +171,7 @@ async def schedule_revert(self, svg_name, element_id, animation_name, entry): if delay <= 0: return await asyncio.sleep(delay) - if ( - not hasattr(entry, "default") - or entry.default is None - or entry.default == "" - ): + if not hasattr(entry, "default") or entry.default is None or entry.default == "": return revert_cfg = { @@ -210,8 +206,6 @@ def _evaluate_expression(self, expr, value, quality): try: return simple_eval(expr, names={"value": value}) except Exception as e: - logger.error( - f"AnimationService: error evaluating '{expr}' with value={value}: {e}" - ) + logger.error(f"AnimationService: error evaluating '{expr}' with value={value}: {e}") return None return None diff --git a/src/openscada_lite/modules/base/base_controller.py b/src/openscada_lite/modules/base/base_controller.py index 1ec8493..836f0ca 100644 --- a/src/openscada_lite/modules/base/base_controller.py +++ b/src/openscada_lite/modules/base/base_controller.py @@ -97,9 +97,7 @@ async def _subscribe_handler(sid): await self.handle_subscribe_live_feed(sid) async def handle_subscribe_live_feed(self, sid): - logger.debug( - f"[{self.base_event}] ******* Client subscribed to live feed: {sid}" - ) + logger.debug(f"[{self.base_event}] ******* Client subscribed to live feed: {sid}") self._initializing_clients.add(sid) all_msgs = self.model.get_all() sorted_msgs = sorted(all_msgs.values(), key=lambda v: v.get_id()) @@ -169,9 +167,7 @@ async def _incoming_handler(body: model_cls, request: Request): # type: ignore user_info = verify_jwt(token) if token else None username = user_info["username"] if user_info else None logger.debug(f"Verified username from token: {username}") - if not SecurityService.get_instance_or_none().is_allowed( - username, endpoint_name - ): + if not SecurityService.get_instance_or_none().is_allowed(username, endpoint_name): logger.debug( f"Unauthorized access attempt by user: {username}" f"to endpoint: {endpoint_name}" @@ -184,9 +180,7 @@ async def _incoming_handler(body: model_cls, request: Request): # type: ignore user=username, endpoint=endpoint_name, ) - logger.debug( - f"User {username} is authorized for endpoint: {endpoint_name}" - ) + logger.debug(f"User {username} is authorized for endpoint: {endpoint_name}") logger.debug(f"Request: {request}") logger.debug( f"Incoming data for user {username} on endpoint {endpoint_name}: {body}" diff --git a/src/openscada_lite/modules/base/base_service.py b/src/openscada_lite/modules/base/base_service.py index 7017094..b713233 100644 --- a/src/openscada_lite/modules/base/base_service.py +++ b/src/openscada_lite/modules/base/base_service.py @@ -72,9 +72,7 @@ def __init__( if t_cls is not None: for t_cls in self.t_cls_list: if t_cls is not None: - self.event_bus.subscribe( - t_cls.get_event_type(), self.handle_bus_message - ) + self.event_bus.subscribe(t_cls.get_event_type(), self.handle_bus_message) # @publish_from_arg_async(status=DataFlowStatus.RECEIVED) async def handle_bus_message(self, data: T): diff --git a/src/openscada_lite/modules/command/controller.py b/src/openscada_lite/modules/command/controller.py index 351ba10..4d5dcd4 100644 --- a/src/openscada_lite/modules/command/controller.py +++ b/src/openscada_lite/modules/command/controller.py @@ -22,9 +22,7 @@ class CommandController(BaseController[CommandFeedbackMsg, SendCommandMsg]): def __init__(self, model, socketio, module_name: str, router: APIRouter): - super().__init__( - model, socketio, CommandFeedbackMsg, SendCommandMsg, module_name, router - ) + super().__init__(model, socketio, CommandFeedbackMsg, SendCommandMsg, module_name, router) def validate_request_data(self, data): return data diff --git a/src/openscada_lite/modules/command/model.py b/src/openscada_lite/modules/command/model.py index 3d3aba8..ad514d7 100644 --- a/src/openscada_lite/modules/command/model.py +++ b/src/openscada_lite/modules/command/model.py @@ -23,9 +23,7 @@ class CommandModel(BaseModel[CommandFeedbackMsg]): def __init__(self): super().__init__() - self._allowed_commands = set( - Config.get_instance().get_allowed_command_identifiers() - ) + self._allowed_commands = set(Config.get_instance().get_allowed_command_identifiers()) self.initial_load() def initial_load(self): diff --git a/src/openscada_lite/modules/command/service.py b/src/openscada_lite/modules/command/service.py index 169d8ae..91bd85b 100644 --- a/src/openscada_lite/modules/command/service.py +++ b/src/openscada_lite/modules/command/service.py @@ -19,9 +19,7 @@ from openscada_lite.common.models.dtos import CommandFeedbackMsg, SendCommandMsg -class CommandService( - BaseService[CommandFeedbackMsg, SendCommandMsg, CommandFeedbackMsg] -): +class CommandService(BaseService[CommandFeedbackMsg, SendCommandMsg, CommandFeedbackMsg]): def __init__(self, event_bus, model, controller): super().__init__( event_bus, diff --git a/src/openscada_lite/modules/communication/controller.py b/src/openscada_lite/modules/communication/controller.py index 625e7a2..2967f18 100644 --- a/src/openscada_lite/modules/communication/controller.py +++ b/src/openscada_lite/modules/communication/controller.py @@ -26,9 +26,7 @@ ) -class CommunicationController( - BaseController[DriverConnectStatus, DriverConnectCommand] -): +class CommunicationController(BaseController[DriverConnectStatus, DriverConnectCommand]): def __init__(self, model, socketio, module_name: str, router: APIRouter): super().__init__( model, diff --git a/src/openscada_lite/modules/communication/drivers/__init__.py b/src/openscada_lite/modules/communication/drivers/__init__.py index ffda0b9..5154227 100644 --- a/src/openscada_lite/modules/communication/drivers/__init__.py +++ b/src/openscada_lite/modules/communication/drivers/__init__.py @@ -31,9 +31,7 @@ from openscada_lite.modules.communication.drivers.test.boiler_test_driver import ( BoilerTestDriver, ) -from openscada_lite.modules.communication.drivers.mqtt_tasmota_driver import ( - MQTTTasmotaRelayDriver -) +from openscada_lite.modules.communication.drivers.mqtt_tasmota_driver import MQTTTasmotaRelayDriver DRIVER_REGISTRY = { "TankTestDriver": TankTestDriver, @@ -42,5 +40,5 @@ "OPCUAServerDriver": OPCUAServerDriver, "StressTestDriver": StressTestDriver, "CameraDriver": CameraDriver, - "MQTTTasmotaRelayDriver": MQTTTasmotaRelayDriver + "MQTTTasmotaRelayDriver": MQTTTasmotaRelayDriver, } diff --git a/src/openscada_lite/modules/communication/drivers/mqtt_tasmota_driver.py b/src/openscada_lite/modules/communication/drivers/mqtt_tasmota_driver.py index 9f9d7ed..32f4d07 100644 --- a/src/openscada_lite/modules/communication/drivers/mqtt_tasmota_driver.py +++ b/src/openscada_lite/modules/communication/drivers/mqtt_tasmota_driver.py @@ -1,5 +1,5 @@ # ----------------------------------------------------------------------------- -# Copyright 2025 Daniel&Hector Fernandez +# Copyright 2026 Daniel&Hector Fernandez # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. @@ -68,9 +68,7 @@ def initialize(self, config: dict) -> None: self._device_topic = config["device_topic"] self._relay_mapping = config.get("relay_mapping", {}) - self._reverse_relay_mapping = { - v: k for k, v in self._relay_mapping.items() - } + self._reverse_relay_mapping = {v: k for k, v in self._relay_mapping.items()} self._subscriptions = config.get("subscriptions", []) self._publish_templates = config.get("publish", {}) @@ -78,9 +76,7 @@ def initialize(self, config: dict) -> None: async def connect(self) -> None: self._loop = asyncio.get_running_loop() - self._client = mqtt.Client( - client_id=self._config.get("client_id") - ) + self._client = mqtt.Client(client_id=self._config.get("client_id")) if "username" in self._config: self._client.username_pw_set( @@ -110,7 +106,7 @@ async def disconnect(self) -> None: # -------------------------------------------------- def subscribe(self, datapoints: List[Datapoint]) -> None: - #MQTT doesn't work like this + # MQTT doesn't work like this pass async def send_command(self, data: SendCommandMsg) -> None: @@ -194,7 +190,7 @@ def is_connected(self) -> bool: # -------------------------------------------------- def _on_connect(self, client, userdata, flags, rc): - self._connected = (rc == 0) + self._connected = rc == 0 for sub in self._subscriptions: topic = sub.get("topic", "").replace("{device}", self._device_topic) diff --git a/src/openscada_lite/modules/communication/drivers/opc_ua_server_driver.py b/src/openscada_lite/modules/communication/drivers/opc_ua_server_driver.py index 1befe9c..e619424 100644 --- a/src/openscada_lite/modules/communication/drivers/opc_ua_server_driver.py +++ b/src/openscada_lite/modules/communication/drivers/opc_ua_server_driver.py @@ -60,9 +60,7 @@ def __init__(self, server_name="OPCUAServer", **kwargs): # Configuration # ---------------------------------------------------------------------- def initialize(self, config: dict) -> None: - self.namespace_url = config.get( - "namespaceurl", "http://default.namespace" - ) # NOSONAR + self.namespace_url = config.get("namespaceurl", "http://default.namespace") # NOSONAR self.allow_write_regex = re.compile(config.get("allow_write_regex", ".*_CMD$")) self.endpoint = config.get("endpoint", self.endpoint) @@ -171,9 +169,7 @@ async def _create_nodes(self): await node.write_attribute( ua.AttributeIds.UserWriteMask, ua.DataValue(ua.UInt32(1)) ) - await node.write_attribute( - ua.AttributeIds.WriteMask, ua.DataValue(ua.UInt32(1)) - ) + await node.write_attribute(ua.AttributeIds.WriteMask, ua.DataValue(ua.UInt32(1))) self.nodes[dp_name] = node count += 1 @@ -199,9 +195,7 @@ async def _setup_write_monitors(self): async def datachange_notification(self, node, val, data): """Called when OPC UA client writes to a node.""" - dp_name = next( - (n for n, nd in self.nodes.items() if nd.nodeid == node.nodeid), None - ) + dp_name = next((n for n, nd in self.nodes.items() if nd.nodeid == node.nodeid), None) if not dp_name: return diff --git a/src/openscada_lite/modules/communication/drivers/test/boiler_test_driver.py b/src/openscada_lite/modules/communication/drivers/test/boiler_test_driver.py index a23bb58..e082d90 100644 --- a/src/openscada_lite/modules/communication/drivers/test/boiler_test_driver.py +++ b/src/openscada_lite/modules/communication/drivers/test/boiler_test_driver.py @@ -43,23 +43,15 @@ def _simulate_values(self): heater = heater_tag.value if heater_tag.value else "CLOSED" try: - pressure = ( - float(pressure_tag.value) - if pressure_tag.value not in (None, "") - else 50.0 - ) + pressure = float(pressure_tag.value) if pressure_tag.value not in (None, "") else 50.0 except Exception as e: - logger.warning( - f"[SIM] Error parsing pressure value: {pressure_tag.value} ({e})" - ) + logger.warning(f"[SIM] Error parsing pressure value: {pressure_tag.value} ({e})") pressure = 50.0 try: temp = float(temp_tag.value) if temp_tag.value not in (None, "") else 120.0 except Exception as e: - logger.warning( - f"[SIM] Error parsing temperature value: {temp_tag.value} ({e})" - ) + logger.warning(f"[SIM] Error parsing temperature value: {temp_tag.value} ({e})") temp = 120.0 logger.debug( diff --git a/src/openscada_lite/modules/communication/drivers/test/test_driver.py b/src/openscada_lite/modules/communication/drivers/test/test_driver.py index 9e0c48d..16da8e7 100644 --- a/src/openscada_lite/modules/communication/drivers/test/test_driver.py +++ b/src/openscada_lite/modules/communication/drivers/test/test_driver.py @@ -41,12 +41,8 @@ def __init__(self, server_name: str): self._server_name = server_name self._tags: Dict[str, RawTagUpdateMsg] = {} self._value_callback: Callable[[RawTagUpdateMsg], Any] | None = None - self._communication_status_callback: ( - Callable[[DriverConnectStatus], Any] | None - ) = None - self._command_feedback_callback: Callable[[CommandFeedbackMsg], Any] | None = ( - None - ) + self._communication_status_callback: Callable[[DriverConnectStatus], Any] | None = None + self._command_feedback_callback: Callable[[CommandFeedbackMsg], Any] | None = None self._running = False self._connected = False self._task: asyncio.Task | None = None @@ -79,13 +75,9 @@ async def disconnect(self): async def initValues(self): now = datetime.datetime.now() - logger.info( - f"[INIT] Initializing values for {self._server_name} tags: {self._tags}" - ) + logger.info(f"[INIT] Initializing values for {self._server_name} tags: {self._tags}") for tag in self._tags.values(): - tag.value = Config.get_instance().get_default_value( - tag.datapoint_identifier - ) + tag.value = Config.get_instance().get_default_value(tag.datapoint_identifier) tag.timestamp = now tag.quality = "good" await self._publish_value(tag) @@ -179,9 +171,7 @@ async def _send_command_feedback(self, data: SendCommandMsg, exists: bool): ) await self._safe_invoke(self._command_feedback_callback, msg) - async def handle_special_command( - self, datapoint_name: str, value: str - ) -> Optional[str]: + async def handle_special_command(self, datapoint_name: str, value: str) -> Optional[str]: logger.info(f"[COMMAND] Handling special command: {datapoint_name} = {value}") if datapoint_name == "TEST_CMD": @@ -266,9 +256,7 @@ async def _publish_loop_async(self): await self._publish_value(tag) logger.debug(f"[TEST] Published all tag values for {self._server_name}") await asyncio.sleep(5) - logger.debug( - f"[TEST] Simulation loop iteration complete for {self._server_name}" - ) + logger.debug(f"[TEST] Simulation loop iteration complete for {self._server_name}") except asyncio.CancelledError: logger.debug(f"[TEST] Simulation loop canceled for {self._server_name}") raise diff --git a/src/openscada_lite/modules/communication/manager/connector_manager.py b/src/openscada_lite/modules/communication/manager/connector_manager.py index 554a89d..e63037f 100644 --- a/src/openscada_lite/modules/communication/manager/connector_manager.py +++ b/src/openscada_lite/modules/communication/manager/connector_manager.py @@ -49,9 +49,7 @@ class ConnectorManager: def __new__(cls, *args, **kwargs): if cls._instance is not None: - raise RuntimeError( - "Use EventBus.get_instance() instead of direct instantiation." - ) + raise RuntimeError("Use EventBus.get_instance() instead of direct instantiation.") return super().__new__(cls) @classmethod @@ -86,9 +84,7 @@ def __init__(self): driver_cls = DRIVER_REGISTRY.get(cfg["driver_class"]) if not driver_cls: raise ValueError(f"Unknown driver class: {cfg['driver_class']}") - driver_instance: DriverProtocol = driver_cls( - **cfg.get("connection_info", {}) - ) + driver_instance: DriverProtocol = driver_cls(**cfg.get("connection_info", {})) driver_instance.initialize(cfg.get("params", {})) driver_instance.subscribe(datapoint_objs) self.driver_instances[cfg["name"]] = driver_instance @@ -104,9 +100,7 @@ async def init_drivers(self): for driver in self.driver_instances.values(): driver.register_value_listener(self.emit_value) driver.register_command_feedback(self.emit_command_feedback) - driver.register_communication_status_listener( - self.emit_communication_status - ) + driver.register_communication_status_listener(self.emit_communication_status) await self.emit_communication_status( DriverConnectStatus(driver_name=driver.server_name, status="offline") ) @@ -130,7 +124,10 @@ def set_command_listener(self, listener: CommandListener): async def handle_driver_connect_command(self, data: DriverConnectCommand): driver_name = data.driver_name status = data.status - logger.debug(f"Handling driver command: {driver_name} -> {status} from {self.driver_instances.keys()}") + logger.debug( + f"Handling driver command: {driver_name}" + f" -> {status} from {self.driver_instances.keys()}" + ) driver = self.driver_instances.get(driver_name) if driver: if status == "connect": @@ -167,13 +164,9 @@ async def emit_communication_status(self, data: DriverConnectStatus): async def publish_unknown_for_driver(self, driver_name: str): now = datetime.datetime.now() - datapoint_types = self.config.get_datapoint_types_for_driver( - driver_name, self.types - ) + datapoint_types = self.config.get_datapoint_types_for_driver(driver_name, self.types) for tag_name, dp_type in datapoint_types.items(): - default_value = ( - dp_type.get("default") if dp_type and "default" in dp_type else None - ) + default_value = dp_type.get("default") if dp_type and "default" in dp_type else None tag_msg = RawTagUpdateMsg( datapoint_identifier=f"{driver_name}@{tag_name}", value=default_value, @@ -195,9 +188,7 @@ async def stop_all(self): @publish_from_arg_async(status=DataFlowStatus.FORWARDED) async def send_command(self, data: SendCommandMsg): - logger.info( - f"[COMMAND] Sending command: {data.datapoint_identifier} = {data.value}" - ) + logger.info(f"[COMMAND] Sending command: {data.datapoint_identifier} = {data.value}") config = Config.get_instance() server_id, _ = data.datapoint_identifier.split("@", 1) @@ -217,9 +208,7 @@ async def send_command(self, data: SendCommandMsg): if driver.is_connected: await driver.send_command(data) else: - logger.warning( - f"Driver '{server_id}' is not connected. Cannot send command." - ) + logger.warning(f"Driver '{server_id}' is not connected. Cannot send command.") feedback = CommandFeedbackMsg( command_id=data.command_id, datapoint_identifier=data.datapoint_identifier, diff --git a/src/openscada_lite/modules/communication/service.py b/src/openscada_lite/modules/communication/service.py index 4f88ccf..f54e48a 100644 --- a/src/openscada_lite/modules/communication/service.py +++ b/src/openscada_lite/modules/communication/service.py @@ -35,9 +35,7 @@ class CommunicationService( - BaseService[ - Union[SendCommandMsg, TagUpdateMsg], DriverConnectCommand, DriverConnectStatus - ], + BaseService[Union[SendCommandMsg, TagUpdateMsg], DriverConnectCommand, DriverConnectStatus], CommandListener, ): def __init__(self, event_bus, model, controller): @@ -51,9 +49,7 @@ def __init__(self, event_bus, model, controller): ) self.connection_manager = ConnectorManager.get_instance() self.connection_manager.register_listener(self) - self.connection_manager.set_command_listener( - self - ) # Register as command listener + self.connection_manager.set_command_listener(self) # Register as command listener async def async_init(self): await self.connection_manager.init_drivers() diff --git a/src/openscada_lite/modules/datapoint/controller.py b/src/openscada_lite/modules/datapoint/controller.py index 4532f43..43ea512 100644 --- a/src/openscada_lite/modules/datapoint/controller.py +++ b/src/openscada_lite/modules/datapoint/controller.py @@ -23,13 +23,9 @@ class DatapointController(BaseController[TagUpdateMsg, RawTagUpdateMsg]): def __init__(self, model, socketio, module_name: str, router: APIRouter): - super().__init__( - model, socketio, TagUpdateMsg, RawTagUpdateMsg, module_name, router - ) + super().__init__(model, socketio, TagUpdateMsg, RawTagUpdateMsg, module_name, router) - def validate_request_data( - self, data: RawTagUpdateMsg - ) -> Union[TagUpdateMsg, StatusDTO]: + def validate_request_data(self, data: RawTagUpdateMsg) -> Union[TagUpdateMsg, StatusDTO]: try: datapoint_identifier = data.datapoint_identifier value = data.value diff --git a/src/openscada_lite/modules/datapoint/model.py b/src/openscada_lite/modules/datapoint/model.py index 84cb016..6537dfd 100644 --- a/src/openscada_lite/modules/datapoint/model.py +++ b/src/openscada_lite/modules/datapoint/model.py @@ -28,9 +28,7 @@ class DatapointModel(BaseModel[TagUpdateMsg]): def __init__(self): super().__init__() - self._allowed_tags = set( - Config.get_instance().get_allowed_datapoint_identifiers() - ) + self._allowed_tags = set(Config.get_instance().get_allowed_datapoint_identifiers()) self.initial_load() def initial_load(self): diff --git a/src/openscada_lite/modules/datapoint/utils.py b/src/openscada_lite/modules/datapoint/utils.py index 29fa002..9292a4a 100644 --- a/src/openscada_lite/modules/datapoint/utils.py +++ b/src/openscada_lite/modules/datapoint/utils.py @@ -24,9 +24,7 @@ class Utils: @staticmethod - def is_valid( - model: "DatapointModel", tag: RawTagUpdateMsg - ) -> bool: # Use string for type hint + def is_valid(model: "DatapointModel", tag: RawTagUpdateMsg) -> bool: # Use string for type hint # Example validation logic if tag.datapoint_identifier not in model._allowed_tags: return False diff --git a/src/openscada_lite/modules/gis/service.py b/src/openscada_lite/modules/gis/service.py index 09f7726..d41a841 100644 --- a/src/openscada_lite/modules/gis/service.py +++ b/src/openscada_lite/modules/gis/service.py @@ -53,9 +53,7 @@ def __init__(self, event_bus, model, controller): self.model.update(gis_msg) def process_msg(self, msg: TagUpdateMsg | AlarmUpdateMsg) -> GisUpdateMsg | None: - logger.debug( - f"=================================GisService processing message: {msg}" - ) + logger.debug(f"=================================GisService processing message: {msg}") for icon_cfg in self.gis_icons_config: if isinstance(msg, TagUpdateMsg): result = self._process_tag_update(msg, icon_cfg) @@ -67,9 +65,7 @@ def process_msg(self, msg: TagUpdateMsg | AlarmUpdateMsg) -> GisUpdateMsg | None return result return None - def _process_tag_update( - self, msg: TagUpdateMsg, icon_cfg: dict - ) -> GisUpdateMsg | None: + def _process_tag_update(self, msg: TagUpdateMsg, icon_cfg: dict) -> GisUpdateMsg | None: if icon_cfg.get("datapoint") != msg.datapoint_identifier: return None @@ -88,9 +84,7 @@ def _process_tag_update( extra={"datapoint-value": icon_url}, ) - def _process_alarm_update( - self, msg: AlarmUpdateMsg, icon_cfg: dict - ) -> GisUpdateMsg | None: + def _process_alarm_update(self, msg: AlarmUpdateMsg, icon_cfg: dict) -> GisUpdateMsg | None: if icon_cfg.get("rule_id") != getattr(msg, "rule_id", None): return None @@ -124,6 +118,5 @@ def should_accept_update(self, tag: Union[TagUpdateMsg, AlarmUpdateMsg]) -> bool ) else: return any( - icon.get("datapoint") == tag.datapoint_identifier - for icon in self.gis_icons_config + icon.get("datapoint") == tag.datapoint_identifier for icon in self.gis_icons_config ) diff --git a/src/openscada_lite/modules/loader.py b/src/openscada_lite/modules/loader.py index 88bf836..a4ae72d 100644 --- a/src/openscada_lite/modules/loader.py +++ b/src/openscada_lite/modules/loader.py @@ -26,9 +26,7 @@ async def module_loader(config: dict, socketio_obj, event_bus, app) -> dict: logger.info(f"[INIT] Loading module: {module_name}") - model_cls = getattr( - importlib.import_module(f"{base_path}.model"), f"{class_prefix}Model" - ) + model_cls = getattr(importlib.import_module(f"{base_path}.model"), f"{class_prefix}Model") logger.debug(f"[INIT] Model class loaded: {module_name}") controller_cls = getattr( importlib.import_module(f"{base_path}.controller"), @@ -41,9 +39,7 @@ async def module_loader(config: dict, socketio_obj, event_bus, app) -> dict: logger.debug(f"[INIT] Service class loaded: {module_name}") model = model_cls() logger.debug(f"[INIT] Model initialized: {module_name}") - controller: BaseController = controller_cls( - model, socketio_obj, module_name, app - ) + controller: BaseController = controller_cls(model, socketio_obj, module_name, app) logger.debug(f"[INIT] Controller initialized: {module_name}") service = service_cls(event_bus, model, controller) logger.debug(f"[INIT] Service initialized: {module_name}") @@ -55,9 +51,7 @@ async def module_loader(config: dict, socketio_obj, event_bus, app) -> dict: logger.info("[INIT] Loading Security module") # Security module is always loaded regardless of config security_model = SecurityModel() - security_controller = SecurityController( - security_model, socketio_obj, "security", app - ) + security_controller = SecurityController(security_model, socketio_obj, "security", app) security_service = SecurityService(event_bus, security_model, security_controller) security_controller.set_service(security_service) logger.debug("[INIT] Security module loaded") diff --git a/src/openscada_lite/modules/rule/manager/rule_manager.py b/src/openscada_lite/modules/rule/manager/rule_manager.py index a2ffd84..db4adf4 100644 --- a/src/openscada_lite/modules/rule/manager/rule_manager.py +++ b/src/openscada_lite/modules/rule/manager/rule_manager.py @@ -52,9 +52,7 @@ class RuleEngine: def __new__(cls, *args, **kwargs): if cls._instance is not None: - raise RuntimeError( - "Use RuleManager.get_instance() instead of direct instantiation." - ) + raise RuntimeError("Use RuleManager.get_instance() instead of direct instantiation.") cls._instance = super().__new__(cls) return cls._instance @@ -81,9 +79,7 @@ def __init__(self, event_bus: EventBus = None): self.asteval.symtable["FALSE"] = False config = Config.get_instance() dp_types = config.get_types() - logger.info( - f"Initializing RuleEngine with datapoint types: {list(dp_types.keys())}" - ) + logger.info(f"Initializing RuleEngine with datapoint types: {list(dp_types.keys())}") for dp in dp_types.values(): values = dp.get("values", []) for val in values: @@ -187,9 +183,7 @@ async def _process_rule(self, rule, tag_id, track_id): on_result, has_off, off_result = evaluation_result if has_off: - await self._handle_on_off_rule( - rule, rule_id, on_result, off_result, tag_id, track_id - ) + await self._handle_on_off_rule(rule, rule_id, on_result, off_result, tag_id, track_id) else: await self._handle_on_only_rule(rule, rule_id, on_result, tag_id, track_id) @@ -197,9 +191,7 @@ def _evaluate_rule_conditions(self, rule, rule_id): """Evaluate on and off conditions for a rule.""" try: on_result = self.asteval(rule.on_condition.replace("@", "__")) - logger.debug( - f"[RuleEngine] Evaluated on_condition for rule {rule_id}: {on_result}" - ) + logger.debug(f"[RuleEngine] Evaluated on_condition for rule {rule_id}: {on_result}") if self.asteval.error: logger.error(f"asteval errors: {self.asteval.error}") @@ -216,9 +208,7 @@ def _evaluate_rule_conditions(self, rule, rule_id): logger.error(f"[RuleEngine] Error evaluating rule {rule_id}: {e}") return None - async def _handle_on_off_rule( - self, rule, rule_id, on_result, off_result, tag_id, track_id - ): + async def _handle_on_off_rule(self, rule, rule_id, on_result, off_result, tag_id, track_id): """Handle rules with both on and off conditions.""" on_active = self.rule_states.get(rule_id, False) @@ -256,9 +246,7 @@ async def _handle_alarm_lowering(self, rule, tag_id, track_id, rule_id): async def _execute_actions(self, actions, tag_id, track_id, active, rule_id): """Execute a list of actions.""" for action in actions: - await self.execute_action( - action, tag_id, track_id, active=active, rule_id=rule_id - ) + await self.execute_action(action, tag_id, track_id, active=active, rule_id=rule_id) def parse_action(self, action_str): """ @@ -277,9 +265,7 @@ def parse_action(self, action_str): params = eval(f"({params_str},)") if params_str else () return action_name, params - async def execute_action( - self, action_str, identifier, track_id, active=True, rule_id=None - ): + async def execute_action(self, action_str, identifier, track_id, active=True, rule_id=None): """ Execute an action by looking up its handler and calling it. diff --git a/src/openscada_lite/modules/schedule/controller.py b/src/openscada_lite/modules/schedule/controller.py index 3532d01..8e0aafa 100644 --- a/src/openscada_lite/modules/schedule/controller.py +++ b/src/openscada_lite/modules/schedule/controller.py @@ -1,6 +1,23 @@ +# ----------------------------------------------------------------------------- +# Copyright 2026 Daniel&Hector Fernandez +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ----------------------------------------------------------------------------- + from fastapi import APIRouter from openscada_lite.modules.base.base_controller import BaseController + class ScheduleController(BaseController[None, None]): def __init__(self, model, socketio, module_name: str, router: APIRouter): super().__init__(model, socketio, None, None, module_name, router) diff --git a/src/openscada_lite/modules/schedule/model.py b/src/openscada_lite/modules/schedule/model.py index 63c2a50..096ef28 100644 --- a/src/openscada_lite/modules/schedule/model.py +++ b/src/openscada_lite/modules/schedule/model.py @@ -1,5 +1,22 @@ +# ----------------------------------------------------------------------------- +# Copyright 2026 Daniel&Hector Fernandez +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ----------------------------------------------------------------------------- + from openscada_lite.modules.base.base_model import BaseModel + class ScheduleModel(BaseModel[None]): def __init__(self): super().__init__() diff --git a/src/openscada_lite/modules/schedule/service.py b/src/openscada_lite/modules/schedule/service.py index 239586d..4a76aec 100644 --- a/src/openscada_lite/modules/schedule/service.py +++ b/src/openscada_lite/modules/schedule/service.py @@ -1,3 +1,19 @@ +# ----------------------------------------------------------------------------- +# Copyright 2026 Daniel&Hector Fernandez +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ----------------------------------------------------------------------------- + from datetime import datetime from apscheduler.schedulers.asyncio import AsyncIOScheduler from apscheduler.triggers.cron import CronTrigger @@ -10,16 +26,10 @@ logger = logging.getLogger(__name__) + class ScheduleService(BaseService[None, None, None]): def __init__(self, event_bus, model, controller): - super().__init__( - event_bus, - model, - controller, - None, - None, - None - ) + super().__init__(event_bus, model, controller, None, None, None) self.scheduler = AsyncIOScheduler() self.config = Config.get_instance() self.schedules = Config.get_instance().get_module_config("schedule").get("schedules", []) @@ -36,7 +46,7 @@ def _register_schedule(self, sched_cfg): args=[sched_cfg], id=sched_cfg["schedule_id"], replace_existing=True, - next_run_time=datetime.now() + next_run_time=datetime.now(), ) async def _execute_schedule(self, sched_cfg): diff --git a/src/openscada_lite/modules/security/controller.py b/src/openscada_lite/modules/security/controller.py index bc1ca81..93d88d0 100644 --- a/src/openscada_lite/modules/security/controller.py +++ b/src/openscada_lite/modules/security/controller.py @@ -30,9 +30,7 @@ class SecurityController( BaseController[None, None], ): - def __init__( - self, model: SecurityModel, socketio, module_name: str, router: APIRouter - ): + def __init__(self, model: SecurityModel, socketio, module_name: str, router: APIRouter): super().__init__(model, socketio, None, None, module_name, router) self.model = model @@ -114,18 +112,14 @@ async def login(data: dict, response: Response, app: str = None): return response # GET security config - @router.get( - "/security/config", tags=[self.base_event], operation_id="getSecurityConfig" - ) + @router.get("/security/config", tags=[self.base_event], operation_id="getSecurityConfig") async def get_security_config(): try: config = self.model.get_security_config() return JSONResponse(content=config) except Exception as e: return JSONResponse( - content=StatusDTO( - status="error", reason=f"Failed to load: {e}" - ).to_dict(), + content=StatusDTO(status="error", reason=f"Failed to load: {e}").to_dict(), status_code=500, ) @@ -138,26 +132,20 @@ async def get_security_config(): async def save_security_config(data: dict): if not data: return JSONResponse( - content=StatusDTO( - status="error", reason="No data provided" - ).to_dict(), + content=StatusDTO(status="error", reason="No data provided").to_dict(), status_code=400, ) try: self.model.save_security_config(data) except Exception as e: return JSONResponse( - content=StatusDTO( - status="error", reason=f"Failed to save: {e}" - ).to_dict(), + content=StatusDTO(status="error", reason=f"Failed to save: {e}").to_dict(), status_code=500, ) # Notify service if applicable if hasattr(self.service, "notify_config_changed"): self.service.notify_config_changed() - return JSONResponse( - content=StatusDTO(status="ok", reason="Config saved").to_dict() - ) + return JSONResponse(content=StatusDTO(status="ok", reason="Config saved").to_dict()) self.model.load_endpoints(router) diff --git a/src/openscada_lite/modules/security/model.py b/src/openscada_lite/modules/security/model.py index 1461bd0..6b5de46 100644 --- a/src/openscada_lite/modules/security/model.py +++ b/src/openscada_lite/modules/security/model.py @@ -43,9 +43,7 @@ def load_endpoints(self, router: APIRouter): """Scan FastAPI app for all registered POST endpoint names.""" with self._lock: self.endpoints = { - route.name - for route in router.routes - if "POST" in getattr(route, "methods", []) + route.name for route in router.routes if "POST" in getattr(route, "methods", []) } def _load(self): diff --git a/src/openscada_lite/modules/security/service.py b/src/openscada_lite/modules/security/service.py index e8d757f..eb14381 100644 --- a/src/openscada_lite/modules/security/service.py +++ b/src/openscada_lite/modules/security/service.py @@ -91,11 +91,7 @@ def is_allowed(self, username: str, endpoint_name: str) -> bool: for group_name in user.get("groups", []): logger.debug("Checking permissions for group: %s", group_name) group = next( - ( - g - for g in self.model.get_all_groups_list() - if g["name"] == group_name - ), + (g for g in self.model.get_all_groups_list() if g["name"] == group_name), None, ) logger.debug("Permissions for the group: %s", group.get("permissions", [])) @@ -106,9 +102,7 @@ def is_allowed(self, username: str, endpoint_name: str) -> bool: endpoint_name, ) return True - logger.debug( - "Access denied for user: %s to endpoint: %s", username, endpoint_name - ) + logger.debug("Access denied for user: %s to endpoint: %s", username, endpoint_name) return False def should_accept_update(self, tag: None) -> bool: diff --git a/src/openscada_lite/modules/tracking/service.py b/src/openscada_lite/modules/tracking/service.py index bc97141..c00a7a1 100644 --- a/src/openscada_lite/modules/tracking/service.py +++ b/src/openscada_lite/modules/tracking/service.py @@ -20,9 +20,7 @@ class TrackingService(BaseService[DataFlowEventMsg, None, DataFlowEventMsg]): def __init__(self, event_bus, model, controller): - super().__init__( - event_bus, model, controller, DataFlowEventMsg, None, DataFlowEventMsg - ) + super().__init__(event_bus, model, controller, DataFlowEventMsg, None, DataFlowEventMsg) def should_accept_update(self, msg: DataFlowEventMsg) -> bool: return True diff --git a/src/openscada_lite/web/config_editor/routes.py b/src/openscada_lite/web/config_editor/routes.py index e006031..e9bac8c 100644 --- a/src/openscada_lite/web/config_editor/routes.py +++ b/src/openscada_lite/web/config_editor/routes.py @@ -71,9 +71,7 @@ async def get_configs(): print("Getting configs...") config_dir = os.path.dirname(CONFIG_FILE) print("Config dir:", config_dir) - files = [ - f for f in os.listdir(config_dir) if f.endswith(f"_{SYSTEM_CONFIG_FILENAME}") - ] + files = [f for f in os.listdir(config_dir) if f.endswith(f"_{SYSTEM_CONFIG_FILENAME}")] print("Found config files:", files) # Strip suffix for user display display_names = [f.replace(f"_{SYSTEM_CONFIG_FILENAME}", "") for f in files] @@ -131,9 +129,7 @@ async def _restart(): container_id = os.environ.get("HOSTNAME") if container_id: container = client.containers.get(container_id) - logger.info( - f"[RESTART] Restarting container {container_id} via Docker socket..." - ) + logger.info(f"[RESTART] Restarting container {container_id} via Docker socket...") container.restart() return except Exception as e: diff --git a/src/openscada_lite/web/scada/__init__.py b/src/openscada_lite/web/scada/__init__.py index 408401f..ec45e7a 100644 --- a/src/openscada_lite/web/scada/__init__.py +++ b/src/openscada_lite/web/scada/__init__.py @@ -31,6 +31,4 @@ ) # Templates -templates = Jinja2Templates( - directory=os.path.join(os.path.dirname(__file__), "templates") -) +templates = Jinja2Templates(directory=os.path.join(os.path.dirname(__file__), "templates")) diff --git a/src/openscada_lite/web/security_editor/routes.py b/src/openscada_lite/web/security_editor/routes.py index 43b3dd6..f07458a 100644 --- a/src/openscada_lite/web/security_editor/routes.py +++ b/src/openscada_lite/web/security_editor/routes.py @@ -25,9 +25,7 @@ # Paths current_dir = Path(__file__).parent static_dir = current_dir / "static" / "frontend" / "dist" -config_file = ( - Path(__file__).parent.parent.parent / ".." / "config" / "security_config.json" -) +config_file = Path(__file__).parent.parent.parent / ".." / "config" / "security_config.json" # API router security_router = APIRouter( @@ -35,9 +33,7 @@ ) # Mount static frontend files -security_router.mount( - "/static", StaticFiles(directory=static_dir), name="security_static" -) +security_router.mount("/static", StaticFiles(directory=static_dir), name="security_static") # Serve main React index.html for the editor diff --git a/tests/test_alarm_service.py b/tests/test_alarm_service.py index 5918561..cf4fc84 100644 --- a/tests/test_alarm_service.py +++ b/tests/test_alarm_service.py @@ -36,9 +36,7 @@ async def capture(data): await bus.publish( EventType.RAISE_ALARM, - RaiseAlarmMsg( - datapoint_identifier="tag1", timestamp=datetime.now(), rule_id="rule1" - ), + RaiseAlarmMsg(datapoint_identifier="tag1", timestamp=datetime.now(), rule_id="rule1"), ) await asyncio.sleep(0.01) @@ -64,9 +62,7 @@ async def capture(data): await bus.publish( EventType.RAISE_ALARM, - RaiseAlarmMsg( - datapoint_identifier="tag1", timestamp=datetime.now(), rule_id="rule1" - ), + RaiseAlarmMsg(datapoint_identifier="tag1", timestamp=datetime.now(), rule_id="rule1"), ) await asyncio.sleep(0.01) await bus.publish( diff --git a/tests/test_animation_service.py b/tests/test_animation_service.py index 1bbd2d3..d130394 100644 --- a/tests/test_animation_service.py +++ b/tests/test_animation_service.py @@ -122,9 +122,7 @@ def dummy_config(monkeypatch, tmp_path): @pytest.mark.asyncio async def test_tag_update_triggers_animation(dummy_config): controller = DummyController() - service = AnimationService( - DummyEventBus(), model=DummyModel(), controller=controller - ) + service = AnimationService(DummyEventBus(), model=DummyModel(), controller=controller) msg = TagUpdateMsg(datapoint_identifier="WaterTank@TANK", value=50, quality="good") updates = service.process_msg(msg) @@ -145,9 +143,7 @@ async def test_tag_update_triggers_animation(dummy_config): @pytest.mark.asyncio async def test_alarm_update_triggers_alarm_animation(dummy_config): controller = DummyController() - service = AnimationService( - DummyEventBus(), model=DummyModel(), controller=controller - ) + service = AnimationService(DummyEventBus(), model=DummyModel(), controller=controller) # Add alarm animation manually to dummy_config for testing service.animations["ALARM_TEST"] = Animation( @@ -166,9 +162,7 @@ async def test_alarm_update_triggers_alarm_animation(dummy_config): ], ) # Add mapping for alarm animation - service.datapoint_map["WaterTank@ALARM_DP"] = [ - ("train.svg", "alert-switch", "ALARM_TEST") - ] + service.datapoint_map["WaterTank@ALARM_DP"] = [("train.svg", "alert-switch", "ALARM_TEST")] msg = AlarmUpdateMsg( datapoint_identifier="WaterTank@ALARM_DP", diff --git a/tests/test_communication.py b/tests/test_communication.py index d3a1ade..6fcee36 100644 --- a/tests/test_communication.py +++ b/tests/test_communication.py @@ -105,13 +105,9 @@ async def test_connect_driver_valid_status(fastapi_app): # Use ASGITransport to wrap the FastAPI app transport = ASGITransport(app=app) - async with AsyncClient( - transport=transport, base_url="http://testserver" - ) as ac: # NOSONAR + async with AsyncClient(transport=transport, base_url="http://testserver") as ac: # NOSONAR data = DriverConnectCommand(driver_name="WaterTank", status="connect") - response = await ac.post( - "/communication/driverconnectcommand", json=data.to_dict() - ) + response = await ac.post("/communication/driverconnectcommand", json=data.to_dict()) assert response.status_code == 200 assert response.json()["status"] == "ok" @@ -131,19 +127,14 @@ async def test_connect_driver_invalid_status(fastapi_app): # Use ASGITransport to wrap the FastAPI app transport = ASGITransport(app=app) - async with AsyncClient( - transport=transport, base_url="http://testserver" - ) as ac: # NOSONAR + async with AsyncClient(transport=transport, base_url="http://testserver") as ac: # NOSONAR data = DriverConnectCommand(driver_name="WaterTank", status="bad_status") - response = await ac.post( - "/communication/driverconnectcommand", json=data.to_dict() - ) + response = await ac.post("/communication/driverconnectcommand", json=data.to_dict()) assert response.status_code == 400 assert response.json()["status"] == "error" assert ( - response.json()["reason"] - == "Invalid status. Must be 'connect', 'disconnect', or 'toggle'." + response.json()["reason"] == "Invalid status. Must be 'connect', 'disconnect', or 'toggle'." ) assert "data" in response.json() # Optionally check for data key controller.service.handle_controller_message.assert_not_called() @@ -165,9 +156,7 @@ def fake_emit(*args, **kwargs): controller.socketio.emit = fake_emit # Create a command message - cmd = DriverConnectCommand( - track_id="1234", driver_name="WaterTank", status="connect" - ) + cmd = DriverConnectCommand(track_id="1234", driver_name="WaterTank", status="connect") # Call publish (synchronous method, no await needed) controller.publish(cmd) @@ -218,9 +207,7 @@ async def handler(evt): bus.subscribe(EventType.DRIVER_CONNECT_STATUS, handler) await comm_service.async_init() - await comm_service.handle_controller_message( - DriverConnectCommand("WaterTank", "connect") - ) + await comm_service.handle_controller_message(DriverConnectCommand("WaterTank", "connect")) assert any(getattr(e, "driver_name", None) == "WaterTank" for e in events) diff --git a/tests/test_datapoint_app.py b/tests/test_datapoint_app.py index bc42ae5..1e2274f 100644 --- a/tests/test_datapoint_app.py +++ b/tests/test_datapoint_app.py @@ -105,9 +105,7 @@ def on_datapoint_update(data): all_updates = [item for batch in received_updates for item in batch] # Check if the expected update is in the batch - update = next( - (u for u in all_updates if u["datapoint_identifier"] == test_tag), None - ) + update = next((u for u in all_updates if u["datapoint_identifier"] == test_tag), None) assert update is not None, "Expected update not found in received updates" assert update["value"] == pytest.approx(test_value) diff --git a/tests/test_datapoint_controller.py b/tests/test_datapoint_controller.py index 5ed9450..9011798 100644 --- a/tests/test_datapoint_controller.py +++ b/tests/test_datapoint_controller.py @@ -88,18 +88,13 @@ async def test_publish_tag_emits_when_no_initializing(controller): controller.socketio.emit.assert_called_once() args, _ = controller.socketio.emit.call_args assert args[0] == "datapoint_tagupdatemsg" - assert any( - tag["datapoint_identifier"] == "Test@TAG" and tag["value"] == 456 - for tag in args[1] - ) + assert any(tag["datapoint_identifier"] == "Test@TAG" and tag["value"] == 456 for tag in args[1]) @pytest.mark.asyncio async def test_handle_subscribe_live_feed_emits_initial_state(controller): # Mock the `enter_room` method - with patch.object( - controller.socketio, "enter_room", new_callable=AsyncMock - ) as mock_enter_room: + with patch.object(controller.socketio, "enter_room", new_callable=AsyncMock) as mock_enter_room: # Mock the `trigger_event` method async def mock_trigger_event(event_name, *args, **kwargs): if event_name == f"{controller.base_event}_subscribe_live_feed": @@ -183,6 +178,4 @@ async def test_set_tag_calls_service_and_emits_ack(controller): quality="good", timestamp=test_data.timestamp, ) - test_controller.service.handle_controller_message.assert_called_once_with( - expected_data - ) + test_controller.service.handle_controller_message.assert_called_once_with(expected_data) diff --git a/tests/test_datapoint_manager.py b/tests/test_datapoint_manager.py index 6721651..e7eeada 100644 --- a/tests/test_datapoint_manager.py +++ b/tests/test_datapoint_manager.py @@ -39,9 +39,7 @@ async def capture(msg: TagUpdateMsg): bus.subscribe(EventType.TAG_UPDATE, capture) now = datetime.datetime.now() - await dp_engine.handle_controller_message( - RawTagUpdateMsg("WaterTank@TANK", 55.5, "bad", now) - ) + await dp_engine.handle_controller_message(RawTagUpdateMsg("WaterTank@TANK", 55.5, "bad", now)) tag = dp_engine.model.get("WaterTank@TANK") assert tag.value == 55.5 assert tag.quality == "bad" @@ -71,15 +69,9 @@ async def capture(msg: TagUpdateMsg): bus.subscribe(EventType.TAG_UPDATE, capture) - await dp_engine.handle_controller_message( - RawTagUpdateMsg("WaterTank@TANK", 10, "good", None) - ) - await dp_engine.handle_controller_message( - RawTagUpdateMsg("WaterTank@TANK", 20, "good", None) - ) - await dp_engine.handle_controller_message( - RawTagUpdateMsg("WaterTank@TANK", 15, "good", None) - ) + await dp_engine.handle_controller_message(RawTagUpdateMsg("WaterTank@TANK", 10, "good", None)) + await dp_engine.handle_controller_message(RawTagUpdateMsg("WaterTank@TANK", 20, "good", None)) + await dp_engine.handle_controller_message(RawTagUpdateMsg("WaterTank@TANK", 15, "good", None)) await asyncio.sleep(0.01) assert dp_engine.model.get("WaterTank@TANK").value == 15 @@ -99,9 +91,7 @@ async def capture(msg: TagUpdateMsg): bus.subscribe(EventType.TAG_UPDATE, capture) - await dp_engine.handle_controller_message( - RawTagUpdateMsg("WaterTank@TANK", 99, "good", None) - ) + await dp_engine.handle_controller_message(RawTagUpdateMsg("WaterTank@TANK", 99, "good", None)) tag = dp_engine.model.get("WaterTank@TANK") assert tag.value == 99 assert tag.quality == "good" # Default quality diff --git a/tests/test_event_bus.py b/tests/test_event_bus.py index 789366d..6530bb4 100644 --- a/tests/test_event_bus.py +++ b/tests/test_event_bus.py @@ -26,9 +26,7 @@ async def callback(msg: TagUpdateMsg): TagUpdateMsg(track_id="1234", datapoint_identifier="t1", value=42), ) await asyncio.sleep(0.01) - assert results == [ - TagUpdateMsg(track_id="1234", datapoint_identifier="t1", value=42) - ] + assert results == [TagUpdateMsg(track_id="1234", datapoint_identifier="t1", value=42)] @pytest.mark.asyncio @@ -50,12 +48,8 @@ async def callback2(msg: TagUpdateMsg): TagUpdateMsg(track_id="1234", datapoint_identifier="t2", value=123), ) await asyncio.sleep(0.01) - assert results1 == [ - TagUpdateMsg(track_id="1234", datapoint_identifier="t2", value=123) - ] - assert results2 == [ - TagUpdateMsg(track_id="1234", datapoint_identifier="t2", value=123) - ] + assert results1 == [TagUpdateMsg(track_id="1234", datapoint_identifier="t2", value=123)] + assert results2 == [TagUpdateMsg(track_id="1234", datapoint_identifier="t2", value=123)] @pytest.mark.asyncio @@ -68,9 +62,7 @@ async def callback(msg: TagUpdateMsg): bus.subscribe(EventType.TAG_UPDATE, callback) bus.unsubscribe(EventType.TAG_UPDATE, callback) - await bus.publish( - EventType.TAG_UPDATE, TagUpdateMsg(datapoint_identifier="t3", value=999) - ) + await bus.publish(EventType.TAG_UPDATE, TagUpdateMsg(datapoint_identifier="t3", value=999)) await asyncio.sleep(0.01) assert results == [] @@ -79,6 +71,4 @@ async def callback(msg: TagUpdateMsg): async def test_publish_no_subscribers(): bus = EventBus.get_instance() # Should not raise any error - await bus.publish( - EventType.TAG_UPDATE, TagUpdateMsg(datapoint_identifier="t4", value=True) - ) + await bus.publish(EventType.TAG_UPDATE, TagUpdateMsg(datapoint_identifier="t4", value=True)) diff --git a/tests/test_gis.py b/tests/test_gis.py index d31c806..110f3e9 100644 --- a/tests/test_gis.py +++ b/tests/test_gis.py @@ -66,9 +66,7 @@ def test_process_tag_update_match(gis_service): quality="good", timestamp="2025-11-23T12:00:00Z", ) - gis_update = gis_service._process_tag_update( - tag_msg, gis_service.gis_icons_config[0] - ) + gis_update = gis_service._process_tag_update(tag_msg, gis_service.gis_icons_config[0]) assert gis_update is not None assert isinstance(gis_update, GisUpdateMsg) assert gis_update.id == "icon1" @@ -83,9 +81,7 @@ def test_process_tag_update_no_match(gis_service): quality="good", timestamp="2025-11-23T12:00:00Z", ) - gis_update = gis_service._process_tag_update( - tag_msg, gis_service.gis_icons_config[0] - ) + gis_update = gis_service._process_tag_update(tag_msg, gis_service.gis_icons_config[0]) assert gis_update is None @@ -98,9 +94,7 @@ def test_process_tag_update_with_states(gis_service): quality="good", timestamp="2025-11-23T12:00:00Z", ) - gis_update = gis_service._process_tag_update( - tag_msg, gis_service.gis_icons_config[0] - ) + gis_update = gis_service._process_tag_update(tag_msg, gis_service.gis_icons_config[0]) assert gis_update is not None assert gis_update.icon == "state_icon.png" @@ -115,9 +109,7 @@ def test_process_alarm_update_match(gis_service): deactivation_time=None, ) - gis_update = gis_service._process_alarm_update( - alarm_msg, gis_service.gis_icons_config[1] - ) + gis_update = gis_service._process_alarm_update(alarm_msg, gis_service.gis_icons_config[1]) assert gis_update is not None assert isinstance(gis_update, GisUpdateMsg) assert gis_update.id == "icon2" @@ -134,9 +126,7 @@ def test_process_alarm_update_no_match(gis_service): acknowledge_time=None, deactivation_time=None, ) - gis_update = gis_service._process_alarm_update( - alarm_msg, gis_service.gis_icons_config[1] - ) + gis_update = gis_service._process_alarm_update(alarm_msg, gis_service.gis_icons_config[1]) assert gis_update is None diff --git a/tests/test_integration_connector_datapoint.py b/tests/test_integration_connector_datapoint.py index 4dac950..621bafa 100644 --- a/tests/test_integration_connector_datapoint.py +++ b/tests/test_integration_connector_datapoint.py @@ -70,9 +70,7 @@ async def capture(msg): command_id = uuid.uuid4() # Send a command to WaterTank@TANK1_LEVEL - await connector_manager.send_command( - SendCommandMsg(command_id, "WaterTank@TANK", 99) - ) + await connector_manager.send_command(SendCommandMsg(command_id, "WaterTank@TANK", 99)) # Wait for feedback await asyncio.wait_for(event.wait(), timeout=2.0) diff --git a/tests/test_integration_ruleengine_alarm.py b/tests/test_integration_ruleengine_alarm.py index b24bc63..057ec99 100644 --- a/tests/test_integration_ruleengine_alarm.py +++ b/tests/test_integration_ruleengine_alarm.py @@ -67,15 +67,11 @@ async def capture(msg: AlarmUpdateMsg): # --- Simulate condition for switch_error_turn --- await bus.publish( EventType.TAG_UPDATE, - TagUpdateMsg( - datapoint_identifier="TrainTestDriver@RIGHT_SWITCH_CONTROL", value="TURN" - ), + TagUpdateMsg(datapoint_identifier="TrainTestDriver@RIGHT_SWITCH_CONTROL", value="TURN"), ) await bus.publish( EventType.TAG_UPDATE, - TagUpdateMsg( - datapoint_identifier="TrainTestDriver@LEFT_SWITCH_CONTROL", value="STRAIGHT" - ), + TagUpdateMsg(datapoint_identifier="TrainTestDriver@LEFT_SWITCH_CONTROL", value="STRAIGHT"), ) await asyncio.sleep(0.05) @@ -98,9 +94,7 @@ async def capture(msg: AlarmUpdateMsg): ) await bus.publish( EventType.TAG_UPDATE, - TagUpdateMsg( - datapoint_identifier="TrainTestDriver@LEFT_SWITCH_CONTROL", value="TURN" - ), + TagUpdateMsg(datapoint_identifier="TrainTestDriver@LEFT_SWITCH_CONTROL", value="TURN"), ) await asyncio.sleep(0.05) @@ -123,9 +117,7 @@ async def capture(msg: AlarmUpdateMsg): ) await bus.publish( EventType.TAG_UPDATE, - TagUpdateMsg( - datapoint_identifier="TrainTestDriver@LEFT_SWITCH_CONTROL", value="STRAIGHT" - ), + TagUpdateMsg(datapoint_identifier="TrainTestDriver@LEFT_SWITCH_CONTROL", value="STRAIGHT"), ) await asyncio.sleep(0.05) @@ -165,19 +157,13 @@ async def capture(msg: AlarmUpdateMsg): bus.subscribe(EventType.ALARM_UPDATE, capture) # Activate once - await bus.publish( - EventType.TAG_UPDATE, TagUpdateMsg(datapoint_identifier="X@pos", value="A") - ) + await bus.publish(EventType.TAG_UPDATE, TagUpdateMsg(datapoint_identifier="X@pos", value="A")) await asyncio.sleep(0.01) # Deactivate - await bus.publish( - EventType.TAG_UPDATE, TagUpdateMsg(datapoint_identifier="X@pos", value="B") - ) + await bus.publish(EventType.TAG_UPDATE, TagUpdateMsg(datapoint_identifier="X@pos", value="B")) await asyncio.sleep(0.01) # Reactivate - await bus.publish( - EventType.TAG_UPDATE, TagUpdateMsg(datapoint_identifier="X@pos", value="A") - ) + await bus.publish(EventType.TAG_UPDATE, TagUpdateMsg(datapoint_identifier="X@pos", value="A")) await asyncio.sleep(0.01) assert len(updates) >= 3 diff --git a/tests/test_mqtt_tasmota_driver.py b/tests/test_mqtt_tasmota_driver.py index 8c0aa63..218dc54 100644 --- a/tests/test_mqtt_tasmota_driver.py +++ b/tests/test_mqtt_tasmota_driver.py @@ -4,7 +4,11 @@ from types import SimpleNamespace -from openscada_lite.common.models.dtos import SendCommandMsg, DriverConnectStatus, CommandFeedbackMsg +from openscada_lite.common.models.dtos import ( + SendCommandMsg, + DriverConnectStatus, + CommandFeedbackMsg, +) import openscada_lite.modules.communication.drivers.mqtt_tasmota_driver as mtd from openscada_lite.modules.communication.drivers.mqtt_tasmota_driver import MQTTTasmotaRelayDriver @@ -88,9 +92,9 @@ async def status_cb(msg: DriverConnectStatus): assert status_events and status_events[0].status == "online" subs = driver._client.subscriptions - assert f"stat/xmas/POWER1" in subs - assert f"stat/xmas/POWER2" in subs - assert f"stat/xmas/RESULT" in subs + assert "stat/xmas/POWER1" in subs + assert "stat/xmas/POWER2" in subs + assert "stat/xmas/RESULT" in subs @pytest.mark.asyncio diff --git a/tests/test_rule_engine.py b/tests/test_rule_engine.py index aff38da..7c8084f 100644 --- a/tests/test_rule_engine.py +++ b/tests/test_rule_engine.py @@ -219,9 +219,7 @@ async def capture_lower(msg: LowerAlarmMsg): # --- 1. Both STRAIGHT initially -> no alarms await test_bus.publish( EventType.TAG_UPDATE, - TagUpdateMsg( - datapoint_identifier="TrainTestDriver@LEFT_SWITCH_CONTROL", value="STRAIGHT" - ), + TagUpdateMsg(datapoint_identifier="TrainTestDriver@LEFT_SWITCH_CONTROL", value="STRAIGHT"), ) await test_bus.publish( EventType.TAG_UPDATE, @@ -237,9 +235,7 @@ async def capture_lower(msg: LowerAlarmMsg): # --- 2. Right TURN, Left STRAIGHT -> switch_error_turn should activate await test_bus.publish( EventType.TAG_UPDATE, - TagUpdateMsg( - datapoint_identifier="TrainTestDriver@RIGHT_SWITCH_CONTROL", value="TURN" - ), + TagUpdateMsg(datapoint_identifier="TrainTestDriver@RIGHT_SWITCH_CONTROL", value="TURN"), ) await asyncio.sleep(0.01) assert any(r[1] == "switch_error_turn" for r in raised) @@ -248,17 +244,13 @@ async def capture_lower(msg: LowerAlarmMsg): # error_straight should NOT activate await test_bus.publish( EventType.TAG_UPDATE, - TagUpdateMsg( - datapoint_identifier="TrainTestDriver@LEFT_SWITCH_CONTROL", value="TURN" - ), + TagUpdateMsg(datapoint_identifier="TrainTestDriver@LEFT_SWITCH_CONTROL", value="TURN"), ) await asyncio.sleep(0.01) # should deactivate switch_error_turn assert any(lowered_alarm[1] == "switch_error_turn" for lowered_alarm in lowered) # and not raise straight alarm - assert not any( - r[1] == "switch_error_straight" for r in raised if r[1] != "switch_error_turn" - ) + assert not any(r[1] == "switch_error_straight" for r in raised if r[1] != "switch_error_turn") # --- 4. Right STRAIGHT, Left TURN -> now switch_error_straight should activate await test_bus.publish( @@ -274,9 +266,7 @@ async def capture_lower(msg: LowerAlarmMsg): # --- 5. Both STRAIGHT again -> switch_error_straight should deactivate await test_bus.publish( EventType.TAG_UPDATE, - TagUpdateMsg( - datapoint_identifier="TrainTestDriver@LEFT_SWITCH_CONTROL", value="STRAIGHT" - ), + TagUpdateMsg(datapoint_identifier="TrainTestDriver@LEFT_SWITCH_CONTROL", value="STRAIGHT"), ) await asyncio.sleep(0.01) assert any(lowered_alarm[1] == "switch_error_straight" for lowered_alarm in lowered) diff --git a/tests/test_schedule.py b/tests/test_schedule.py index ec133d4..84abd69 100644 --- a/tests/test_schedule.py +++ b/tests/test_schedule.py @@ -1,6 +1,4 @@ -import asyncio import pytest -from types import SimpleNamespace from openscada_lite.modules.schedule.model import ScheduleModel from openscada_lite.modules.schedule.service import ScheduleService @@ -12,7 +10,9 @@ def __init__(self): self.jobs = [] self.started = False - def add_job(self, func, trigger, args=None, id=None, replace_existing=False, next_run_time=None): + def add_job( + self, func, trigger, args=None, id=None, replace_existing=False, next_run_time=None + ): self.jobs.append( { "func": func, @@ -54,6 +54,7 @@ def get_instance(): monkeypatch.setattr(Config, "get_instance", DummyConfig.get_instance) # Monkeypatch AsyncIOScheduler to FakeScheduler import openscada_lite.modules.schedule.service as schedule_service_module + monkeypatch.setattr(schedule_service_module, "AsyncIOScheduler", FakeScheduler) svc = ScheduleService(DummyEventBus(), ScheduleModel(), None) @@ -73,28 +74,35 @@ def get_instance(): @pytest.mark.asyncio async def test_schedule_execute_triggers_actions(monkeypatch): - # Dummy single schedule - sched_cfg = {"schedule_id": "daily_toggle", "cron": "0 12 * * *", "actions": ["mode:toggle", "notify:all"]} + # Dummy single schedule (parseable strings will be used below) # Capture execute_action calls (monkeypatch the symbol used in the schedule service module) calls = [] - async def fake_execute_action(action_str, identifier, track_id, rule_id): - calls.append({ - "action_str": action_str, - "identifier": identifier, - "track_id": track_id, - "rule_id": rule_id, - }) + + async def fake_execute_action(action_str, identifier, track_id, rule_id): # NOSONAR + calls.append( + { + "action_str": action_str, + "identifier": identifier, + "track_id": track_id, + "rule_id": rule_id, + } + ) # Minimal service with fake scheduler import openscada_lite.modules.schedule.service as schedule_service_module + monkeypatch.setattr(schedule_service_module, "AsyncIOScheduler", FakeScheduler) monkeypatch.setattr(schedule_service_module, "execute_action", fake_execute_action) svc = ScheduleService(DummyEventBus(), ScheduleModel(), None) # Execute directly # Use parseable action strings - parseable_sched = {"schedule_id": "daily_toggle", "cron": "0 12 * * *", "actions": ["mode('toggle')", "notify('all')"]} + parseable_sched = { + "schedule_id": "daily_toggle", + "cron": "0 12 * * *", + "actions": ["mode('toggle')", "notify('all')"], + } await svc._execute_schedule(parseable_sched) # Verify actions executed in order diff --git a/tests/test_tracking_module.py b/tests/test_tracking_module.py index 2087002..78e0e32 100644 --- a/tests/test_tracking_module.py +++ b/tests/test_tracking_module.py @@ -98,8 +98,7 @@ async def test_controller_publish_live_feed(model): args, kwargs = socketio.emit.call_args assert args[0] == "tracking_datafloweventmsg" assert any( - emitted_event["track_id"] == "abc123" - and emitted_event["event_type"] == "TestEvent" + emitted_event["track_id"] == "abc123" and emitted_event["event_type"] == "TestEvent" for emitted_event in args[1] ) From 6908f56c8b9c5665bdfadacf4067949ac4db5434 Mon Sep 17 00:00:00 2001 From: FERNANDEZ BOADA Daniel Date: Sun, 11 Jan 2026 09:58:56 +0100 Subject: [PATCH 4/8] Cleanup --- app.log | 116 ++++++++++++++++++ flow_events.log | 44 +++++++ .../modules/security/controller.py | 32 +++-- .../web/config_editor/routes.py | 16 ++- 4 files changed, 192 insertions(+), 16 deletions(-) diff --git a/app.log b/app.log index 0812563..c291381 100644 --- a/app.log +++ b/app.log @@ -4354,3 +4354,119 @@ ModuleNotFoundError: No module named 'openscada_lite.common.utils.AsyncUtils' 2026-01-11 00:13:18,555 INFO openscada_lite.modules.communication.manager.connector_manager [COMMAND] Sending command: TrainTestDriver@LEFT_SWITCH_CONTROL_CMD = TOGGLE 2026-01-11 00:13:18,556 INFO openscada_lite.modules.communication.drivers.test.test_driver [COMMAND] Handling special command: LEFT_SWITCH_CONTROL_CMD = TOGGLE 2026-01-11 09:43:29,643 INFO openscada_lite.app [LIFESPAN] Shutdown complete +2026-01-11 09:57:00,661 INFO openscada_lite.app [LIFESPAN] Startup starting... +2026-01-11 09:57:01,282 INFO openscada_lite.modules.communication.drivers.test.test_driver [INIT] Creating TestDriver WaterTank +2026-01-11 09:57:01,282 INFO openscada_lite.modules.communication.drivers.test.test_driver [INIT] Creating TestDriver AuxServer +2026-01-11 09:57:01,293 INFO openscada_lite.app [LIFESPAN] Startup complete +2026-01-11 09:57:08,328 INFO openscada_lite.modules.communication.manager.connector_manager [COMMAND] Sending command: WaterTank@TANK = 42 +2026-01-11 09:57:08,328 WARNING openscada_lite.modules.communication.manager.connector_manager Driver 'WaterTank' is not connected. Cannot send command. +2026-01-11 09:57:10,588 INFO openscada_lite.modules.communication.drivers.test.test_driver [INIT] Creating TestDriver WaterTank +2026-01-11 09:57:10,588 INFO openscada_lite.modules.communication.drivers.test.test_driver [INIT] Creating TestDriver AuxServer +2026-01-11 09:57:10,592 INFO openscada_lite.modules.communication.drivers.test.test_driver [INIT] Initializing values for WaterTank tags: {'TANK': RawTagUpdateMsg(track_id='011abc2d-4b5a-4f5c-9849-fd10f2f3bc49', datapoint_identifier='WaterTank@TANK', value=0.0, quality='good', timestamp=datetime.datetime(2026, 1, 11, 9, 57, 10, 588837)), 'PUMP': RawTagUpdateMsg(track_id='66389a5e-0ef7-426f-ace6-b36535699fea', datapoint_identifier='WaterTank@PUMP', value='CLOSED', quality='good', timestamp=datetime.datetime(2026, 1, 11, 9, 57, 10, 588837)), 'DOOR': RawTagUpdateMsg(track_id='79d6c975-bba2-400e-9091-9165d5ed67ab', datapoint_identifier='WaterTank@DOOR', value='CLOSED', quality='good', timestamp=datetime.datetime(2026, 1, 11, 9, 57, 10, 588837))} +2026-01-11 09:57:10,597 INFO openscada_lite.modules.communication.drivers.test.test_driver [INIT] Creating TestDriver WaterTank +2026-01-11 09:57:10,597 INFO openscada_lite.modules.communication.drivers.test.test_driver [INIT] Creating TestDriver AuxServer +2026-01-11 09:57:10,616 INFO openscada_lite.modules.communication.drivers.test.test_driver [INIT] Creating TestDriver WaterTank +2026-01-11 09:57:10,616 INFO openscada_lite.modules.communication.drivers.test.test_driver [INIT] Creating TestDriver AuxServer +2026-01-11 09:57:10,616 INFO openscada_lite.modules.communication.drivers.test.test_driver [INIT] Initializing values for WaterTank tags: {'TANK': RawTagUpdateMsg(track_id='f8f487a4-abb5-4552-a6e1-de0bb70af384', datapoint_identifier='WaterTank@TANK', value=0.0, quality='good', timestamp=datetime.datetime(2026, 1, 11, 9, 57, 10, 616362)), 'PUMP': RawTagUpdateMsg(track_id='79bd85d8-36fb-4240-bf7a-78c947e56bb1', datapoint_identifier='WaterTank@PUMP', value='CLOSED', quality='good', timestamp=datetime.datetime(2026, 1, 11, 9, 57, 10, 616362)), 'DOOR': RawTagUpdateMsg(track_id='ae37a05a-f754-4ddf-99c3-10c85cf5e13c', datapoint_identifier='WaterTank@DOOR', value='CLOSED', quality='good', timestamp=datetime.datetime(2026, 1, 11, 9, 57, 10, 616362))} +2026-01-11 09:57:10,617 INFO openscada_lite.modules.communication.drivers.test.test_driver [INIT] Initializing values for AuxServer tags: {'VALVE': RawTagUpdateMsg(track_id='ef1ba1c0-b36c-48a7-a09f-95aa4f320f25', datapoint_identifier='AuxServer@VALVE', value='CLOSED', quality='good', timestamp=datetime.datetime(2026, 1, 11, 9, 57, 10, 616559)), 'PRESSURE': RawTagUpdateMsg(track_id='17d4b074-bea9-43f1-b50c-16d67a6cace1', datapoint_identifier='AuxServer@PRESSURE', value=50.0, quality='good', timestamp=datetime.datetime(2026, 1, 11, 9, 57, 10, 616559)), 'TEMPERATURE': RawTagUpdateMsg(track_id='63a19996-7785-406c-b89a-2da4de14653f', datapoint_identifier='AuxServer@TEMPERATURE', value=120.0, quality='good', timestamp=datetime.datetime(2026, 1, 11, 9, 57, 10, 616559)), 'HEATER': RawTagUpdateMsg(track_id='d3a73988-048e-43b9-b945-c1df5c1a7f19', datapoint_identifier='AuxServer@HEATER', value='CLOSED', quality='good', timestamp=datetime.datetime(2026, 1, 11, 9, 57, 10, 616559))} +2026-01-11 09:57:10,617 INFO openscada_lite.modules.communication.drivers.test.test_driver [DISCONNECT] Disconnecting driver WaterTank +2026-01-11 09:57:10,618 INFO openscada_lite.modules.communication.drivers.test.test_driver [DISCONNECT] Disconnecting driver AuxServer +2026-01-11 09:57:12,530 INFO openscada_lite.app [LIFESPAN] Startup starting... +2026-01-11 09:57:13,312 INFO openscada_lite.modules.communication.drivers.test.test_driver [INIT] Creating TestDriver WaterTank +2026-01-11 09:57:13,313 INFO openscada_lite.modules.communication.drivers.test.test_driver [INIT] Creating TestDriver AuxServer +2026-01-11 09:57:13,325 INFO openscada_lite.app [LIFESPAN] Startup complete +2026-01-11 09:57:22,185 INFO openscada_lite.modules.communication.drivers.test.test_driver [INIT] Creating TestDriver WaterTank +2026-01-11 09:57:22,185 INFO openscada_lite.modules.communication.drivers.test.test_driver [INIT] Creating TestDriver AuxServer +2026-01-11 09:57:22,186 INFO openscada_lite.modules.communication.drivers.test.test_driver [INIT] Initializing values for WaterTank tags: {'TANK': RawTagUpdateMsg(track_id='0028836f-b1e8-4fb0-a2d9-5306a0ccb364', datapoint_identifier='WaterTank@TANK', value=0.0, quality='good', timestamp=datetime.datetime(2026, 1, 11, 9, 57, 22, 185871)), 'PUMP': RawTagUpdateMsg(track_id='f672c405-d164-4a70-9c05-e5cea3909ae5', datapoint_identifier='WaterTank@PUMP', value='CLOSED', quality='good', timestamp=datetime.datetime(2026, 1, 11, 9, 57, 22, 185871)), 'DOOR': RawTagUpdateMsg(track_id='02f846a9-bab8-4efe-a0d7-1159c4b316e9', datapoint_identifier='WaterTank@DOOR', value='CLOSED', quality='good', timestamp=datetime.datetime(2026, 1, 11, 9, 57, 22, 185871))} +2026-01-11 09:57:22,186 INFO openscada_lite.modules.communication.drivers.test.test_driver [INIT] Initializing values for AuxServer tags: {'VALVE': RawTagUpdateMsg(track_id='5814edcb-f7c3-4053-b995-4833b1f20e91', datapoint_identifier='AuxServer@VALVE', value='CLOSED', quality='good', timestamp=datetime.datetime(2026, 1, 11, 9, 57, 22, 186029)), 'PRESSURE': RawTagUpdateMsg(track_id='a8e0cf7c-ce8a-4eb6-a6b1-537c0accbf82', datapoint_identifier='AuxServer@PRESSURE', value=50.0, quality='good', timestamp=datetime.datetime(2026, 1, 11, 9, 57, 22, 186029)), 'TEMPERATURE': RawTagUpdateMsg(track_id='aa415524-64ea-4805-a9e6-51a37f59fa21', datapoint_identifier='AuxServer@TEMPERATURE', value=120.0, quality='good', timestamp=datetime.datetime(2026, 1, 11, 9, 57, 22, 186029)), 'HEATER': RawTagUpdateMsg(track_id='c081a31d-2d9f-40a7-b19b-5a47375e47fb', datapoint_identifier='AuxServer@HEATER', value='CLOSED', quality='good', timestamp=datetime.datetime(2026, 1, 11, 9, 57, 22, 186029))} +2026-01-11 09:57:24,188 INFO openscada_lite.modules.communication.drivers.test.test_driver [DISCONNECT] Disconnecting driver WaterTank +2026-01-11 09:57:24,189 INFO openscada_lite.modules.communication.drivers.test.test_driver [DISCONNECT] Disconnecting driver AuxServer +2026-01-11 09:57:24,194 INFO openscada_lite.modules.communication.drivers.test.test_driver [INIT] Initializing values for WaterTank tags: {'TANK': RawTagUpdateMsg(track_id='0028836f-b1e8-4fb0-a2d9-5306a0ccb364', datapoint_identifier='WaterTank@TANK', value=0.0, quality='good', timestamp=datetime.datetime(2026, 1, 11, 9, 57, 22, 186265)), 'PUMP': RawTagUpdateMsg(track_id='f672c405-d164-4a70-9c05-e5cea3909ae5', datapoint_identifier='WaterTank@PUMP', value='CLOSED', quality='good', timestamp=datetime.datetime(2026, 1, 11, 9, 57, 22, 186265)), 'DOOR': RawTagUpdateMsg(track_id='02f846a9-bab8-4efe-a0d7-1159c4b316e9', datapoint_identifier='WaterTank@DOOR', value='CLOSED', quality='good', timestamp=datetime.datetime(2026, 1, 11, 9, 57, 22, 186265))} +2026-01-11 09:57:24,195 INFO openscada_lite.modules.communication.drivers.test.test_driver [INIT] Initializing values for AuxServer tags: {'VALVE': RawTagUpdateMsg(track_id='5814edcb-f7c3-4053-b995-4833b1f20e91', datapoint_identifier='AuxServer@VALVE', value='CLOSED', quality='good', timestamp=datetime.datetime(2026, 1, 11, 9, 57, 22, 186854)), 'PRESSURE': RawTagUpdateMsg(track_id='a8e0cf7c-ce8a-4eb6-a6b1-537c0accbf82', datapoint_identifier='AuxServer@PRESSURE', value=50.0, quality='good', timestamp=datetime.datetime(2026, 1, 11, 9, 57, 22, 186854)), 'TEMPERATURE': RawTagUpdateMsg(track_id='aa415524-64ea-4805-a9e6-51a37f59fa21', datapoint_identifier='AuxServer@TEMPERATURE', value=120.0, quality='good', timestamp=datetime.datetime(2026, 1, 11, 9, 57, 22, 186854)), 'HEATER': RawTagUpdateMsg(track_id='c081a31d-2d9f-40a7-b19b-5a47375e47fb', datapoint_identifier='AuxServer@HEATER', value='CLOSED', quality='good', timestamp=datetime.datetime(2026, 1, 11, 9, 57, 22, 186854))} +2026-01-11 09:57:24,195 INFO openscada_lite.modules.communication.manager.connector_manager [COMMAND] Sending command: WaterTank@TANK = 99 +2026-01-11 09:57:24,198 INFO openscada_lite.modules.communication.drivers.test.test_driver [COMMAND] Handling special command: TANK = 99 +2026-01-11 09:57:24,198 INFO openscada_lite.modules.communication.drivers.test.test_driver [DISCONNECT] Disconnecting driver WaterTank +2026-01-11 09:57:24,198 INFO openscada_lite.modules.communication.drivers.test.test_driver [DISCONNECT] Disconnecting driver AuxServer +2026-01-11 09:57:24,203 INFO openscada_lite.modules.communication.drivers.test.test_driver [INIT] Initializing values for WaterTank tags: {'TANK': RawTagUpdateMsg(track_id='0028836f-b1e8-4fb0-a2d9-5306a0ccb364', datapoint_identifier='WaterTank@TANK', value=99, quality='good', timestamp=datetime.datetime(2026, 1, 11, 9, 57, 24, 198135)), 'PUMP': RawTagUpdateMsg(track_id='f672c405-d164-4a70-9c05-e5cea3909ae5', datapoint_identifier='WaterTank@PUMP', value='CLOSED', quality='good', timestamp=datetime.datetime(2026, 1, 11, 9, 57, 24, 194934)), 'DOOR': RawTagUpdateMsg(track_id='02f846a9-bab8-4efe-a0d7-1159c4b316e9', datapoint_identifier='WaterTank@DOOR', value='CLOSED', quality='good', timestamp=datetime.datetime(2026, 1, 11, 9, 57, 24, 194934))} +2026-01-11 09:57:24,205 INFO openscada_lite.modules.communication.drivers.test.test_driver [INIT] Initializing values for AuxServer tags: {'VALVE': RawTagUpdateMsg(track_id='5814edcb-f7c3-4053-b995-4833b1f20e91', datapoint_identifier='AuxServer@VALVE', value='CLOSED', quality='good', timestamp=datetime.datetime(2026, 1, 11, 9, 57, 24, 195342)), 'PRESSURE': RawTagUpdateMsg(track_id='a8e0cf7c-ce8a-4eb6-a6b1-537c0accbf82', datapoint_identifier='AuxServer@PRESSURE', value=50.0, quality='good', timestamp=datetime.datetime(2026, 1, 11, 9, 57, 24, 195342)), 'TEMPERATURE': RawTagUpdateMsg(track_id='aa415524-64ea-4805-a9e6-51a37f59fa21', datapoint_identifier='AuxServer@TEMPERATURE', value=120.0, quality='good', timestamp=datetime.datetime(2026, 1, 11, 9, 57, 24, 195342)), 'HEATER': RawTagUpdateMsg(track_id='c081a31d-2d9f-40a7-b19b-5a47375e47fb', datapoint_identifier='AuxServer@HEATER', value='CLOSED', quality='good', timestamp=datetime.datetime(2026, 1, 11, 9, 57, 24, 195342))} +2026-01-11 09:57:24,205 INFO openscada_lite.modules.rule.manager.rule_manager Initializing RuleEngine with datapoint types: ['LEVEL', 'STATUS', 'PRESSURE', 'TEMPERATURE'] +2026-01-11 09:57:24,206 INFO openscada_lite.modules.communication.manager.connector_manager [COMMAND] Sending command: AuxServer@VALVE1_POS = 0 +2026-01-11 09:57:24,207 INFO openscada_lite.modules.communication.manager.connector_manager [COMMAND] Sending command: AuxServer@VALVE1_POS = 0 +2026-01-11 09:57:24,260 INFO openscada_lite.modules.communication.manager.connector_manager [COMMAND] Sending command: AuxServer@VALVE1_POS = 0 +2026-01-11 09:57:24,315 INFO openscada_lite.modules.rule.manager.rule_manager Initializing RuleEngine with datapoint types: ['LEVEL', 'STATUS', 'PRESSURE', 'TEMPERATURE'] +2026-01-11 09:57:24,476 INFO openscada_lite.modules.rule.manager.rule_manager Initializing RuleEngine with datapoint types: ['LEVEL', 'STATUS', 'PRESSURE', 'TEMPERATURE'] +2026-01-11 09:57:24,526 INFO openscada_lite.modules.rule.manager.rule_manager Initializing RuleEngine with datapoint types: ['LEVEL', 'STATUS', 'PRESSURE', 'TEMPERATURE'] +2026-01-11 09:57:24,542 INFO openscada_lite.modules.rule.manager.rule_manager Initializing RuleEngine with datapoint types: ['LEVEL', 'STATUS', 'PRESSURE', 'TEMPERATURE'] +2026-01-11 09:57:24,571 INFO openscada_lite.modules.rule.manager.rule_manager Initializing RuleEngine with datapoint types: ['LEVEL', 'STATUS', 'PRESSURE', 'TEMPERATURE'] +2026-01-11 09:57:24,587 INFO openscada_lite.modules.rule.manager.rule_manager Initializing RuleEngine with datapoint types: ['LEVEL', 'STATUS', 'PRESSURE', 'TEMPERATURE'] +2026-01-11 09:57:24,613 INFO openscada_lite.modules.rule.manager.rule_manager Initializing RuleEngine with datapoint types: ['LEVEL', 'STATUS', 'PRESSURE', 'TEMPERATURE'] +2026-01-11 09:57:24,673 INFO openscada_lite.modules.rule.manager.rule_manager Initializing RuleEngine with datapoint types: ['LEVEL', 'STATUS', 'PRESSURE', 'TEMPERATURE'] +2026-01-11 09:57:24,768 INFO openscada_lite.modules.security.controller User admin logged in successfully +2026-01-11 09:57:24,810 WARNING openscada_lite.modules.security.controller Authentication failed for user: admin +2026-01-11 09:57:24,816 WARNING openscada_lite.modules.security.controller Authentication failed for user: ghost +2026-01-11 09:57:24,919 INFO openscada_lite.modules.security.controller User admin logged in successfully +2026-01-11 09:57:24,929 INFO openscada_lite.modules.communication.drivers.test.test_driver [INIT] Creating TestDriver WaterTank +2026-01-11 09:57:24,930 INFO openscada_lite.modules.communication.drivers.test.test_driver [INIT] Initializing values for WaterTank tags: {'TANK': RawTagUpdateMsg(track_id='48b19f51-a170-4df6-90b6-39ea39a7f945', datapoint_identifier='WaterTank@TANK', value=0, quality='good', timestamp=datetime.datetime(2026, 1, 11, 9, 57, 24, 929980)), 'PUMP': RawTagUpdateMsg(track_id='af21e1de-c087-4e10-bce2-2b600a13a49b', datapoint_identifier='WaterTank@PUMP', value='CLOSED', quality='good', timestamp=datetime.datetime(2026, 1, 11, 9, 57, 24, 929980)), 'DOOR': RawTagUpdateMsg(track_id='f28cad82-b92d-4c3a-acdd-ab7063a46b37', datapoint_identifier='WaterTank@DOOR', value='CLOSED', quality='good', timestamp=datetime.datetime(2026, 1, 11, 9, 57, 24, 929980))} +2026-01-11 09:57:26,941 INFO openscada_lite.modules.communication.drivers.test.test_driver [DISCONNECT] Disconnecting driver WaterTank +2026-01-11 09:57:26,949 INFO openscada_lite.modules.communication.drivers.test.test_driver [INIT] Creating TestDriver WaterTank +2026-01-11 09:57:26,949 INFO openscada_lite.modules.communication.drivers.test.test_driver [INIT] Initializing values for WaterTank tags: {'TANK': RawTagUpdateMsg(track_id='91f254e3-4f62-4750-866b-99c7a4608c85', datapoint_identifier='WaterTank@TANK', value=0.0, quality='good', timestamp=datetime.datetime(2026, 1, 11, 9, 57, 26, 949407))} +2026-01-11 09:57:26,950 INFO openscada_lite.modules.communication.drivers.test.test_driver [COMMAND] Handling special command: TANK = 50 +2026-01-11 09:57:26,950 INFO openscada_lite.modules.communication.drivers.test.test_driver [DISCONNECT] Disconnecting driver WaterTank +2026-01-11 09:58:23,016 INFO openscada_lite.app [LIFESPAN] Startup starting... +2026-01-11 09:58:23,637 INFO openscada_lite.modules.communication.drivers.test.test_driver [INIT] Creating TestDriver WaterTank +2026-01-11 09:58:23,637 INFO openscada_lite.modules.communication.drivers.test.test_driver [INIT] Creating TestDriver AuxServer +2026-01-11 09:58:23,653 INFO openscada_lite.app [LIFESPAN] Startup complete +2026-01-11 09:58:30,539 INFO openscada_lite.modules.communication.manager.connector_manager [COMMAND] Sending command: WaterTank@TANK = 42 +2026-01-11 09:58:30,540 WARNING openscada_lite.modules.communication.manager.connector_manager Driver 'WaterTank' is not connected. Cannot send command. +2026-01-11 09:58:32,804 INFO openscada_lite.modules.communication.drivers.test.test_driver [INIT] Creating TestDriver WaterTank +2026-01-11 09:58:32,804 INFO openscada_lite.modules.communication.drivers.test.test_driver [INIT] Creating TestDriver AuxServer +2026-01-11 09:58:32,806 INFO openscada_lite.modules.communication.drivers.test.test_driver [INIT] Initializing values for WaterTank tags: {'TANK': RawTagUpdateMsg(track_id='df3a868c-a67b-45e6-867a-b9182c16ab32', datapoint_identifier='WaterTank@TANK', value=0.0, quality='good', timestamp=datetime.datetime(2026, 1, 11, 9, 58, 32, 804682)), 'PUMP': RawTagUpdateMsg(track_id='ab9e2fea-b240-4780-acca-77e88a61c92a', datapoint_identifier='WaterTank@PUMP', value='CLOSED', quality='good', timestamp=datetime.datetime(2026, 1, 11, 9, 58, 32, 804682)), 'DOOR': RawTagUpdateMsg(track_id='267be1be-ce97-4368-8569-c91088bcf6d4', datapoint_identifier='WaterTank@DOOR', value='CLOSED', quality='good', timestamp=datetime.datetime(2026, 1, 11, 9, 58, 32, 804682))} +2026-01-11 09:58:32,809 INFO openscada_lite.modules.communication.drivers.test.test_driver [INIT] Creating TestDriver WaterTank +2026-01-11 09:58:32,809 INFO openscada_lite.modules.communication.drivers.test.test_driver [INIT] Creating TestDriver AuxServer +2026-01-11 09:58:32,820 INFO openscada_lite.modules.communication.drivers.test.test_driver [INIT] Creating TestDriver WaterTank +2026-01-11 09:58:32,820 INFO openscada_lite.modules.communication.drivers.test.test_driver [INIT] Creating TestDriver AuxServer +2026-01-11 09:58:32,820 INFO openscada_lite.modules.communication.drivers.test.test_driver [INIT] Initializing values for WaterTank tags: {'TANK': RawTagUpdateMsg(track_id='0c2bc2fd-2f36-4009-9cb2-1f0c6fe0d0f0', datapoint_identifier='WaterTank@TANK', value=0.0, quality='good', timestamp=datetime.datetime(2026, 1, 11, 9, 58, 32, 820325)), 'PUMP': RawTagUpdateMsg(track_id='522a6b73-27df-492f-b04b-9b0b965ecf65', datapoint_identifier='WaterTank@PUMP', value='CLOSED', quality='good', timestamp=datetime.datetime(2026, 1, 11, 9, 58, 32, 820325)), 'DOOR': RawTagUpdateMsg(track_id='5258c3ef-8494-4913-8d25-a20901ac2fd4', datapoint_identifier='WaterTank@DOOR', value='CLOSED', quality='good', timestamp=datetime.datetime(2026, 1, 11, 9, 58, 32, 820325))} +2026-01-11 09:58:32,821 INFO openscada_lite.modules.communication.drivers.test.test_driver [INIT] Initializing values for AuxServer tags: {'VALVE': RawTagUpdateMsg(track_id='8d869b31-65f0-416b-83a0-9d805b53ced9', datapoint_identifier='AuxServer@VALVE', value='CLOSED', quality='good', timestamp=datetime.datetime(2026, 1, 11, 9, 58, 32, 820458)), 'PRESSURE': RawTagUpdateMsg(track_id='30e5a156-5ab3-4369-87ce-d3c906c980fc', datapoint_identifier='AuxServer@PRESSURE', value=50.0, quality='good', timestamp=datetime.datetime(2026, 1, 11, 9, 58, 32, 820458)), 'TEMPERATURE': RawTagUpdateMsg(track_id='e6fde78f-c790-458f-b59c-49602b2b50c1', datapoint_identifier='AuxServer@TEMPERATURE', value=120.0, quality='good', timestamp=datetime.datetime(2026, 1, 11, 9, 58, 32, 820458)), 'HEATER': RawTagUpdateMsg(track_id='774be2bc-212a-4caa-820c-f5525e24c51d', datapoint_identifier='AuxServer@HEATER', value='CLOSED', quality='good', timestamp=datetime.datetime(2026, 1, 11, 9, 58, 32, 820458))} +2026-01-11 09:58:32,821 INFO openscada_lite.modules.communication.drivers.test.test_driver [DISCONNECT] Disconnecting driver WaterTank +2026-01-11 09:58:32,821 INFO openscada_lite.modules.communication.drivers.test.test_driver [DISCONNECT] Disconnecting driver AuxServer +2026-01-11 09:58:34,254 INFO openscada_lite.app [LIFESPAN] Startup starting... +2026-01-11 09:58:34,869 INFO openscada_lite.modules.communication.drivers.test.test_driver [INIT] Creating TestDriver WaterTank +2026-01-11 09:58:34,869 INFO openscada_lite.modules.communication.drivers.test.test_driver [INIT] Creating TestDriver AuxServer +2026-01-11 09:58:34,880 INFO openscada_lite.app [LIFESPAN] Startup complete +2026-01-11 09:58:44,305 INFO openscada_lite.modules.communication.drivers.test.test_driver [INIT] Creating TestDriver WaterTank +2026-01-11 09:58:44,306 INFO openscada_lite.modules.communication.drivers.test.test_driver [INIT] Creating TestDriver AuxServer +2026-01-11 09:58:44,306 INFO openscada_lite.modules.communication.drivers.test.test_driver [INIT] Initializing values for WaterTank tags: {'TANK': RawTagUpdateMsg(track_id='141ec8ed-f5b7-44fc-9942-cd54fd6418fb', datapoint_identifier='WaterTank@TANK', value=0.0, quality='good', timestamp=datetime.datetime(2026, 1, 11, 9, 58, 44, 305984)), 'PUMP': RawTagUpdateMsg(track_id='c586714b-6d9b-41c4-abca-d79523a5ad4b', datapoint_identifier='WaterTank@PUMP', value='CLOSED', quality='good', timestamp=datetime.datetime(2026, 1, 11, 9, 58, 44, 305984)), 'DOOR': RawTagUpdateMsg(track_id='871cdc6d-c583-42aa-a325-0267059d8c01', datapoint_identifier='WaterTank@DOOR', value='CLOSED', quality='good', timestamp=datetime.datetime(2026, 1, 11, 9, 58, 44, 305984))} +2026-01-11 09:58:44,307 INFO openscada_lite.modules.communication.drivers.test.test_driver [INIT] Initializing values for AuxServer tags: {'VALVE': RawTagUpdateMsg(track_id='8ad43d37-1843-4484-a523-018a6a1c6310', datapoint_identifier='AuxServer@VALVE', value='CLOSED', quality='good', timestamp=datetime.datetime(2026, 1, 11, 9, 58, 44, 306147)), 'PRESSURE': RawTagUpdateMsg(track_id='7609d145-da4d-41a6-87f3-55ef408a1a21', datapoint_identifier='AuxServer@PRESSURE', value=50.0, quality='good', timestamp=datetime.datetime(2026, 1, 11, 9, 58, 44, 306147)), 'TEMPERATURE': RawTagUpdateMsg(track_id='eaa8703c-4747-416c-986e-db3855987ca6', datapoint_identifier='AuxServer@TEMPERATURE', value=120.0, quality='good', timestamp=datetime.datetime(2026, 1, 11, 9, 58, 44, 306147)), 'HEATER': RawTagUpdateMsg(track_id='a8753db8-b6c6-48ee-bb9e-e50c6285a9fb', datapoint_identifier='AuxServer@HEATER', value='CLOSED', quality='good', timestamp=datetime.datetime(2026, 1, 11, 9, 58, 44, 306147))} +2026-01-11 09:58:46,308 INFO openscada_lite.modules.communication.drivers.test.test_driver [DISCONNECT] Disconnecting driver WaterTank +2026-01-11 09:58:46,309 INFO openscada_lite.modules.communication.drivers.test.test_driver [DISCONNECT] Disconnecting driver AuxServer +2026-01-11 09:58:46,314 INFO openscada_lite.modules.communication.drivers.test.test_driver [INIT] Initializing values for WaterTank tags: {'TANK': RawTagUpdateMsg(track_id='141ec8ed-f5b7-44fc-9942-cd54fd6418fb', datapoint_identifier='WaterTank@TANK', value=0.0, quality='good', timestamp=datetime.datetime(2026, 1, 11, 9, 58, 44, 306425)), 'PUMP': RawTagUpdateMsg(track_id='c586714b-6d9b-41c4-abca-d79523a5ad4b', datapoint_identifier='WaterTank@PUMP', value='CLOSED', quality='good', timestamp=datetime.datetime(2026, 1, 11, 9, 58, 44, 306425)), 'DOOR': RawTagUpdateMsg(track_id='871cdc6d-c583-42aa-a325-0267059d8c01', datapoint_identifier='WaterTank@DOOR', value='CLOSED', quality='good', timestamp=datetime.datetime(2026, 1, 11, 9, 58, 44, 306425))} +2026-01-11 09:58:46,314 INFO openscada_lite.modules.communication.drivers.test.test_driver [INIT] Initializing values for AuxServer tags: {'VALVE': RawTagUpdateMsg(track_id='8ad43d37-1843-4484-a523-018a6a1c6310', datapoint_identifier='AuxServer@VALVE', value='CLOSED', quality='good', timestamp=datetime.datetime(2026, 1, 11, 9, 58, 44, 307193)), 'PRESSURE': RawTagUpdateMsg(track_id='7609d145-da4d-41a6-87f3-55ef408a1a21', datapoint_identifier='AuxServer@PRESSURE', value=50.0, quality='good', timestamp=datetime.datetime(2026, 1, 11, 9, 58, 44, 307193)), 'TEMPERATURE': RawTagUpdateMsg(track_id='eaa8703c-4747-416c-986e-db3855987ca6', datapoint_identifier='AuxServer@TEMPERATURE', value=120.0, quality='good', timestamp=datetime.datetime(2026, 1, 11, 9, 58, 44, 307193)), 'HEATER': RawTagUpdateMsg(track_id='a8753db8-b6c6-48ee-bb9e-e50c6285a9fb', datapoint_identifier='AuxServer@HEATER', value='CLOSED', quality='good', timestamp=datetime.datetime(2026, 1, 11, 9, 58, 44, 307193))} +2026-01-11 09:58:46,314 INFO openscada_lite.modules.communication.manager.connector_manager [COMMAND] Sending command: WaterTank@TANK = 99 +2026-01-11 09:58:46,314 INFO openscada_lite.modules.communication.drivers.test.test_driver [COMMAND] Handling special command: TANK = 99 +2026-01-11 09:58:46,315 INFO openscada_lite.modules.communication.drivers.test.test_driver [DISCONNECT] Disconnecting driver WaterTank +2026-01-11 09:58:46,315 INFO openscada_lite.modules.communication.drivers.test.test_driver [DISCONNECT] Disconnecting driver AuxServer +2026-01-11 09:58:46,318 INFO openscada_lite.modules.communication.drivers.test.test_driver [INIT] Initializing values for WaterTank tags: {'TANK': RawTagUpdateMsg(track_id='141ec8ed-f5b7-44fc-9942-cd54fd6418fb', datapoint_identifier='WaterTank@TANK', value=99, quality='good', timestamp=datetime.datetime(2026, 1, 11, 9, 58, 46, 314962)), 'PUMP': RawTagUpdateMsg(track_id='c586714b-6d9b-41c4-abca-d79523a5ad4b', datapoint_identifier='WaterTank@PUMP', value='CLOSED', quality='good', timestamp=datetime.datetime(2026, 1, 11, 9, 58, 46, 314071)), 'DOOR': RawTagUpdateMsg(track_id='871cdc6d-c583-42aa-a325-0267059d8c01', datapoint_identifier='WaterTank@DOOR', value='CLOSED', quality='good', timestamp=datetime.datetime(2026, 1, 11, 9, 58, 46, 314071))} +2026-01-11 09:58:46,319 INFO openscada_lite.modules.communication.drivers.test.test_driver [INIT] Initializing values for AuxServer tags: {'VALVE': RawTagUpdateMsg(track_id='8ad43d37-1843-4484-a523-018a6a1c6310', datapoint_identifier='AuxServer@VALVE', value='CLOSED', quality='good', timestamp=datetime.datetime(2026, 1, 11, 9, 58, 46, 314441)), 'PRESSURE': RawTagUpdateMsg(track_id='7609d145-da4d-41a6-87f3-55ef408a1a21', datapoint_identifier='AuxServer@PRESSURE', value=50.0, quality='good', timestamp=datetime.datetime(2026, 1, 11, 9, 58, 46, 314441)), 'TEMPERATURE': RawTagUpdateMsg(track_id='eaa8703c-4747-416c-986e-db3855987ca6', datapoint_identifier='AuxServer@TEMPERATURE', value=120.0, quality='good', timestamp=datetime.datetime(2026, 1, 11, 9, 58, 46, 314441)), 'HEATER': RawTagUpdateMsg(track_id='a8753db8-b6c6-48ee-bb9e-e50c6285a9fb', datapoint_identifier='AuxServer@HEATER', value='CLOSED', quality='good', timestamp=datetime.datetime(2026, 1, 11, 9, 58, 46, 314441))} +2026-01-11 09:58:46,319 INFO openscada_lite.modules.rule.manager.rule_manager Initializing RuleEngine with datapoint types: ['LEVEL', 'STATUS', 'PRESSURE', 'TEMPERATURE'] +2026-01-11 09:58:46,320 INFO openscada_lite.modules.communication.manager.connector_manager [COMMAND] Sending command: AuxServer@VALVE1_POS = 0 +2026-01-11 09:58:46,321 INFO openscada_lite.modules.communication.manager.connector_manager [COMMAND] Sending command: AuxServer@VALVE1_POS = 0 +2026-01-11 09:58:46,372 INFO openscada_lite.modules.communication.manager.connector_manager [COMMAND] Sending command: AuxServer@VALVE1_POS = 0 +2026-01-11 09:58:46,429 INFO openscada_lite.modules.rule.manager.rule_manager Initializing RuleEngine with datapoint types: ['LEVEL', 'STATUS', 'PRESSURE', 'TEMPERATURE'] +2026-01-11 09:58:46,589 INFO openscada_lite.modules.rule.manager.rule_manager Initializing RuleEngine with datapoint types: ['LEVEL', 'STATUS', 'PRESSURE', 'TEMPERATURE'] +2026-01-11 09:58:46,639 INFO openscada_lite.modules.rule.manager.rule_manager Initializing RuleEngine with datapoint types: ['LEVEL', 'STATUS', 'PRESSURE', 'TEMPERATURE'] +2026-01-11 09:58:46,654 INFO openscada_lite.modules.rule.manager.rule_manager Initializing RuleEngine with datapoint types: ['LEVEL', 'STATUS', 'PRESSURE', 'TEMPERATURE'] +2026-01-11 09:58:46,682 INFO openscada_lite.modules.rule.manager.rule_manager Initializing RuleEngine with datapoint types: ['LEVEL', 'STATUS', 'PRESSURE', 'TEMPERATURE'] +2026-01-11 09:58:46,699 INFO openscada_lite.modules.rule.manager.rule_manager Initializing RuleEngine with datapoint types: ['LEVEL', 'STATUS', 'PRESSURE', 'TEMPERATURE'] +2026-01-11 09:58:46,726 INFO openscada_lite.modules.rule.manager.rule_manager Initializing RuleEngine with datapoint types: ['LEVEL', 'STATUS', 'PRESSURE', 'TEMPERATURE'] +2026-01-11 09:58:46,792 INFO openscada_lite.modules.rule.manager.rule_manager Initializing RuleEngine with datapoint types: ['LEVEL', 'STATUS', 'PRESSURE', 'TEMPERATURE'] +2026-01-11 09:58:46,873 INFO openscada_lite.modules.security.controller User admin logged in successfully +2026-01-11 09:58:46,894 WARNING openscada_lite.modules.security.controller Authentication failed for user: admin +2026-01-11 09:58:46,899 WARNING openscada_lite.modules.security.controller Authentication failed for user: ghost +2026-01-11 09:58:46,961 INFO openscada_lite.modules.security.controller User admin logged in successfully +2026-01-11 09:58:46,973 INFO openscada_lite.modules.communication.drivers.test.test_driver [INIT] Creating TestDriver WaterTank +2026-01-11 09:58:46,973 INFO openscada_lite.modules.communication.drivers.test.test_driver [INIT] Initializing values for WaterTank tags: {'TANK': RawTagUpdateMsg(track_id='f591d203-2875-44a1-b397-0cc4761a9735', datapoint_identifier='WaterTank@TANK', value=0, quality='good', timestamp=datetime.datetime(2026, 1, 11, 9, 58, 46, 973711)), 'PUMP': RawTagUpdateMsg(track_id='9315e012-4689-4166-9f4c-ce0129eb9bd3', datapoint_identifier='WaterTank@PUMP', value='CLOSED', quality='good', timestamp=datetime.datetime(2026, 1, 11, 9, 58, 46, 973711)), 'DOOR': RawTagUpdateMsg(track_id='568dfaae-6536-456a-becd-2ca5d5a37daf', datapoint_identifier='WaterTank@DOOR', value='CLOSED', quality='good', timestamp=datetime.datetime(2026, 1, 11, 9, 58, 46, 973711))} +2026-01-11 09:58:48,975 INFO openscada_lite.modules.communication.drivers.test.test_driver [DISCONNECT] Disconnecting driver WaterTank +2026-01-11 09:58:48,980 INFO openscada_lite.modules.communication.drivers.test.test_driver [INIT] Creating TestDriver WaterTank +2026-01-11 09:58:48,980 INFO openscada_lite.modules.communication.drivers.test.test_driver [INIT] Initializing values for WaterTank tags: {'TANK': RawTagUpdateMsg(track_id='d928e8a0-3daf-4e48-b0ce-da21ae4a3578', datapoint_identifier='WaterTank@TANK', value=0.0, quality='good', timestamp=datetime.datetime(2026, 1, 11, 9, 58, 48, 980529))} +2026-01-11 09:58:48,980 INFO openscada_lite.modules.communication.drivers.test.test_driver [COMMAND] Handling special command: TANK = 50 +2026-01-11 09:58:48,981 INFO openscada_lite.modules.communication.drivers.test.test_driver [DISCONNECT] Disconnecting driver WaterTank diff --git a/flow_events.log b/flow_events.log index c96807e..7259e41 100644 --- a/flow_events.log +++ b/flow_events.log @@ -42,3 +42,47 @@ {"track_id": "e9792789-7640-4ca1-97c9-9a857da6fe31", "event_type": "TagUpdateMsg", "source": "CommunicationService", "status": "received", "timestamp": "2026-01-11T00:11:02.454557", "payload": {"datapoint_identifier": "WaterTank@TANK", "value": 123.45, "timestamp": "2026-01-11T00:11:02.454342"}} {"track_id": "e9792789-7640-4ca1-97c9-9a857da6fe31", "event_type": "TagUpdateMsg", "source": "DatapointController", "status": "forwarded", "timestamp": "2026-01-11T00:11:02.454657", "payload": {"datapoint_identifier": "WaterTank@TANK", "value": 123.45, "timestamp": "2026-01-11T00:11:02.454342"}} {"track_id": "e9792789-7640-4ca1-97c9-9a857da6fe31", "event_type": "RawTagUpdateMsg", "source": "DatapointService", "status": "received", "timestamp": "2026-01-11T00:11:02.454683", "payload": {"datapoint_identifier": "WaterTank@TANK", "value": 123.45, "timestamp": "2026-01-11T00:11:02.454342"}} +{"track_id": "752ce2fc-00e9-44b0-97c8-df1806449ce6", "event_type": "DriverConnectStatus", "source": "CommunicationController", "status": "forwarded", "timestamp": "2026-01-11T09:57:01.282748", "payload": {"driver_name": "WaterTank", "status": "offline"}} +{"track_id": "752ce2fc-00e9-44b0-97c8-df1806449ce6", "event_type": "DriverConnectStatus", "source": "ConnectorManager", "status": "received", "timestamp": "2026-01-11T09:57:01.282764", "payload": {"driver_name": "WaterTank", "status": "offline"}} +{"track_id": "43efe369-4bbc-4fc1-b0b4-8104556d9d97", "event_type": "DriverConnectStatus", "source": "CommunicationService", "status": "created", "timestamp": "2026-01-11T09:57:01.282801", "payload": {"driver_name": "AuxServer", "status": "offline"}} +{"track_id": "43efe369-4bbc-4fc1-b0b4-8104556d9d97", "event_type": "DriverConnectStatus", "source": "CommunicationController", "status": "forwarded", "timestamp": "2026-01-11T09:57:01.282825", "payload": {"driver_name": "AuxServer", "status": "offline"}} +{"track_id": "43efe369-4bbc-4fc1-b0b4-8104556d9d97", "event_type": "DriverConnectStatus", "source": "ConnectorManager", "status": "received", "timestamp": "2026-01-11T09:57:01.282835", "payload": {"driver_name": "AuxServer", "status": "offline"}} +{"track_id": "752ce2fc-00e9-44b0-97c8-df1806449ce6", "event_type": "DriverConnectStatus", "source": "CommunicationService", "status": "created", "timestamp": "2026-01-11T09:57:01.282663", "payload": {"driver_name": "WaterTank", "status": "offline"}} +{"track_id": "da4167a2-1704-42a5-8719-24a50f11cf22", "event_type": "CommandFeedbackMsg", "source": "CommandService", "status": "created", "timestamp": "2026-01-11T09:57:08.328990", "payload": {"command_id": "testcmd1", "datapoint_identifier": "WaterTank@TANK", "value": 42, "feedback": "NOK-driver-offline", "timestamp": "2026-01-11T09:57:08.328914"}} +{"track_id": "da4167a2-1704-42a5-8719-24a50f11cf22", "event_type": "CommandFeedbackMsg", "source": "CommandController", "status": "forwarded", "timestamp": "2026-01-11T09:57:08.329108", "payload": {"command_id": "testcmd1", "datapoint_identifier": "WaterTank@TANK", "value": 42, "feedback": "NOK-driver-offline", "timestamp": "2026-01-11T09:57:08.328914"}} +{"track_id": "da4167a2-1704-42a5-8719-24a50f11cf22", "event_type": "CommandFeedbackMsg", "source": "ConnectorManager", "status": "received", "timestamp": "2026-01-11T09:57:08.329128", "payload": {"command_id": "testcmd1", "datapoint_identifier": "WaterTank@TANK", "value": 42, "feedback": "NOK-driver-offline", "timestamp": "2026-01-11T09:57:08.328914"}} +{"track_id": "b0d4d65f-7fb0-4989-a39e-fa88c85b7ef0", "event_type": "SendCommandMsg", "source": "ConnectorManager", "status": "forwarded", "timestamp": "2026-01-11T09:57:08.329151", "payload": {"command_id": "testcmd1", "datapoint_identifier": "WaterTank@TANK", "value": 42}} +{"track_id": "b0d4d65f-7fb0-4989-a39e-fa88c85b7ef0", "event_type": "SendCommandMsg", "source": "CommunicationService", "status": "received", "timestamp": "2026-01-11T09:57:08.329160", "payload": {"command_id": "testcmd1", "datapoint_identifier": "WaterTank@TANK", "value": 42}} +{"track_id": "b0d4d65f-7fb0-4989-a39e-fa88c85b7ef0", "event_type": "SendCommandMsg", "source": "CommandService", "status": "received", "timestamp": "2026-01-11T09:57:08.329170", "payload": {"command_id": "testcmd1", "datapoint_identifier": "WaterTank@TANK", "value": 42}} +{"track_id": "8c1fb17e-f73f-4fb0-9e56-020d74e06520", "event_type": "DriverConnectStatus", "source": "CommunicationController", "status": "forwarded", "timestamp": "2026-01-11T09:57:13.313666", "payload": {"driver_name": "WaterTank", "status": "offline"}} +{"track_id": "8c1fb17e-f73f-4fb0-9e56-020d74e06520", "event_type": "DriverConnectStatus", "source": "ConnectorManager", "status": "received", "timestamp": "2026-01-11T09:57:13.313684", "payload": {"driver_name": "WaterTank", "status": "offline"}} +{"track_id": "476fecae-d191-465f-9b97-82f6760e6614", "event_type": "DriverConnectStatus", "source": "CommunicationService", "status": "created", "timestamp": "2026-01-11T09:57:13.313724", "payload": {"driver_name": "AuxServer", "status": "offline"}} +{"track_id": "476fecae-d191-465f-9b97-82f6760e6614", "event_type": "DriverConnectStatus", "source": "CommunicationController", "status": "forwarded", "timestamp": "2026-01-11T09:57:13.313751", "payload": {"driver_name": "AuxServer", "status": "offline"}} +{"track_id": "476fecae-d191-465f-9b97-82f6760e6614", "event_type": "DriverConnectStatus", "source": "ConnectorManager", "status": "received", "timestamp": "2026-01-11T09:57:13.313762", "payload": {"driver_name": "AuxServer", "status": "offline"}} +{"track_id": "8c1fb17e-f73f-4fb0-9e56-020d74e06520", "event_type": "DriverConnectStatus", "source": "CommunicationService", "status": "created", "timestamp": "2026-01-11T09:57:13.313574", "payload": {"driver_name": "WaterTank", "status": "offline"}} +{"track_id": "878ac7f3-c395-4dc4-9f8c-b0f93be6ebdb", "event_type": "TagUpdateMsg", "source": "DatapointService", "status": "created", "timestamp": "2026-01-11T09:57:19.734210", "payload": {"datapoint_identifier": "WaterTank@TANK", "value": 123.45, "timestamp": "2026-01-11T09:57:19.734077"}} +{"track_id": "878ac7f3-c395-4dc4-9f8c-b0f93be6ebdb", "event_type": "TagUpdateMsg", "source": "CommunicationService", "status": "received", "timestamp": "2026-01-11T09:57:19.734382", "payload": {"datapoint_identifier": "WaterTank@TANK", "value": 123.45, "timestamp": "2026-01-11T09:57:19.734077"}} +{"track_id": "878ac7f3-c395-4dc4-9f8c-b0f93be6ebdb", "event_type": "TagUpdateMsg", "source": "DatapointController", "status": "forwarded", "timestamp": "2026-01-11T09:57:19.734531", "payload": {"datapoint_identifier": "WaterTank@TANK", "value": 123.45, "timestamp": "2026-01-11T09:57:19.734077"}} +{"track_id": "878ac7f3-c395-4dc4-9f8c-b0f93be6ebdb", "event_type": "RawTagUpdateMsg", "source": "DatapointService", "status": "received", "timestamp": "2026-01-11T09:57:19.734570", "payload": {"datapoint_identifier": "WaterTank@TANK", "value": 123.45, "timestamp": "2026-01-11T09:57:19.734077"}} +{"track_id": "c56d6baf-dd79-4194-8da8-a3b1f8b23d26", "event_type": "DriverConnectStatus", "source": "CommunicationController", "status": "forwarded", "timestamp": "2026-01-11T09:58:23.637847", "payload": {"driver_name": "WaterTank", "status": "offline"}} +{"track_id": "c56d6baf-dd79-4194-8da8-a3b1f8b23d26", "event_type": "DriverConnectStatus", "source": "ConnectorManager", "status": "received", "timestamp": "2026-01-11T09:58:23.637867", "payload": {"driver_name": "WaterTank", "status": "offline"}} +{"track_id": "47798393-0290-4c3e-bd97-48d18006a05d", "event_type": "DriverConnectStatus", "source": "CommunicationService", "status": "created", "timestamp": "2026-01-11T09:58:23.637911", "payload": {"driver_name": "AuxServer", "status": "offline"}} +{"track_id": "47798393-0290-4c3e-bd97-48d18006a05d", "event_type": "DriverConnectStatus", "source": "CommunicationController", "status": "forwarded", "timestamp": "2026-01-11T09:58:23.637942", "payload": {"driver_name": "AuxServer", "status": "offline"}} +{"track_id": "47798393-0290-4c3e-bd97-48d18006a05d", "event_type": "DriverConnectStatus", "source": "ConnectorManager", "status": "received", "timestamp": "2026-01-11T09:58:23.637955", "payload": {"driver_name": "AuxServer", "status": "offline"}} +{"track_id": "c56d6baf-dd79-4194-8da8-a3b1f8b23d26", "event_type": "DriverConnectStatus", "source": "CommunicationService", "status": "created", "timestamp": "2026-01-11T09:58:23.637747", "payload": {"driver_name": "WaterTank", "status": "offline"}} +{"track_id": "1c33590d-5f36-44c5-a2d7-746906b3fdf5", "event_type": "CommandFeedbackMsg", "source": "CommandService", "status": "created", "timestamp": "2026-01-11T09:58:30.541156", "payload": {"command_id": "testcmd1", "datapoint_identifier": "WaterTank@TANK", "value": 42, "feedback": "NOK-driver-offline", "timestamp": "2026-01-11T09:58:30.541041"}} +{"track_id": "1c33590d-5f36-44c5-a2d7-746906b3fdf5", "event_type": "CommandFeedbackMsg", "source": "CommandController", "status": "forwarded", "timestamp": "2026-01-11T09:58:30.541285", "payload": {"command_id": "testcmd1", "datapoint_identifier": "WaterTank@TANK", "value": 42, "feedback": "NOK-driver-offline", "timestamp": "2026-01-11T09:58:30.541041"}} +{"track_id": "1c33590d-5f36-44c5-a2d7-746906b3fdf5", "event_type": "CommandFeedbackMsg", "source": "ConnectorManager", "status": "received", "timestamp": "2026-01-11T09:58:30.541306", "payload": {"command_id": "testcmd1", "datapoint_identifier": "WaterTank@TANK", "value": 42, "feedback": "NOK-driver-offline", "timestamp": "2026-01-11T09:58:30.541041"}} +{"track_id": "e6bf72fd-823a-48dc-b633-56e59c55acc9", "event_type": "SendCommandMsg", "source": "ConnectorManager", "status": "forwarded", "timestamp": "2026-01-11T09:58:30.541326", "payload": {"command_id": "testcmd1", "datapoint_identifier": "WaterTank@TANK", "value": 42}} +{"track_id": "e6bf72fd-823a-48dc-b633-56e59c55acc9", "event_type": "SendCommandMsg", "source": "CommunicationService", "status": "received", "timestamp": "2026-01-11T09:58:30.541340", "payload": {"command_id": "testcmd1", "datapoint_identifier": "WaterTank@TANK", "value": 42}} +{"track_id": "e6bf72fd-823a-48dc-b633-56e59c55acc9", "event_type": "SendCommandMsg", "source": "CommandService", "status": "received", "timestamp": "2026-01-11T09:58:30.541351", "payload": {"command_id": "testcmd1", "datapoint_identifier": "WaterTank@TANK", "value": 42}} +{"track_id": "5442d7d9-1d11-455b-a888-55a9efee35cb", "event_type": "DriverConnectStatus", "source": "CommunicationController", "status": "forwarded", "timestamp": "2026-01-11T09:58:34.870156", "payload": {"driver_name": "WaterTank", "status": "offline"}} +{"track_id": "5442d7d9-1d11-455b-a888-55a9efee35cb", "event_type": "DriverConnectStatus", "source": "ConnectorManager", "status": "received", "timestamp": "2026-01-11T09:58:34.870172", "payload": {"driver_name": "WaterTank", "status": "offline"}} +{"track_id": "f1221057-54aa-4552-8036-2ee8c13118f9", "event_type": "DriverConnectStatus", "source": "CommunicationService", "status": "created", "timestamp": "2026-01-11T09:58:34.870209", "payload": {"driver_name": "AuxServer", "status": "offline"}} +{"track_id": "f1221057-54aa-4552-8036-2ee8c13118f9", "event_type": "DriverConnectStatus", "source": "CommunicationController", "status": "forwarded", "timestamp": "2026-01-11T09:58:34.870232", "payload": {"driver_name": "AuxServer", "status": "offline"}} +{"track_id": "f1221057-54aa-4552-8036-2ee8c13118f9", "event_type": "DriverConnectStatus", "source": "ConnectorManager", "status": "received", "timestamp": "2026-01-11T09:58:34.870242", "payload": {"driver_name": "AuxServer", "status": "offline"}} +{"track_id": "5442d7d9-1d11-455b-a888-55a9efee35cb", "event_type": "DriverConnectStatus", "source": "CommunicationService", "status": "created", "timestamp": "2026-01-11T09:58:34.870065", "payload": {"driver_name": "WaterTank", "status": "offline"}} +{"track_id": "54726493-d968-4b6e-a4a7-a8b10c7a00d1", "event_type": "TagUpdateMsg", "source": "DatapointService", "status": "created", "timestamp": "2026-01-11T09:58:41.895556", "payload": {"datapoint_identifier": "WaterTank@TANK", "value": 123.45, "timestamp": "2026-01-11T09:58:41.895439"}} +{"track_id": "54726493-d968-4b6e-a4a7-a8b10c7a00d1", "event_type": "TagUpdateMsg", "source": "CommunicationService", "status": "received", "timestamp": "2026-01-11T09:58:41.895658", "payload": {"datapoint_identifier": "WaterTank@TANK", "value": 123.45, "timestamp": "2026-01-11T09:58:41.895439"}} +{"track_id": "54726493-d968-4b6e-a4a7-a8b10c7a00d1", "event_type": "TagUpdateMsg", "source": "DatapointController", "status": "forwarded", "timestamp": "2026-01-11T09:58:41.895726", "payload": {"datapoint_identifier": "WaterTank@TANK", "value": 123.45, "timestamp": "2026-01-11T09:58:41.895439"}} +{"track_id": "54726493-d968-4b6e-a4a7-a8b10c7a00d1", "event_type": "RawTagUpdateMsg", "source": "DatapointService", "status": "received", "timestamp": "2026-01-11T09:58:41.895742", "payload": {"datapoint_identifier": "WaterTank@TANK", "value": 123.45, "timestamp": "2026-01-11T09:58:41.895439"}} diff --git a/src/openscada_lite/modules/security/controller.py b/src/openscada_lite/modules/security/controller.py index 93d88d0..bd6c698 100644 --- a/src/openscada_lite/modules/security/controller.py +++ b/src/openscada_lite/modules/security/controller.py @@ -30,7 +30,9 @@ class SecurityController( BaseController[None, None], ): - def __init__(self, model: SecurityModel, socketio, module_name: str, router: APIRouter): + def __init__( + self, model: SecurityModel, socketio, module_name: str, router: APIRouter + ): super().__init__(model, socketio, None, None, module_name, router) self.model = model @@ -45,7 +47,7 @@ async def require_jwt(self, request: Request) -> str: # ---------------- Register Routes ---------------- def register_local_routes(self, router: APIRouter): - print("[SECURITY] Loading security routes") + logger.debug("[SECURITY] Loading security routes") # GET all registered endpoints @router.get( @@ -57,19 +59,19 @@ async def get_endpoints(): endpoints = self.model.get_end_points() return JSONResponse(content=endpoints) - print("[SECURITY] Registered endpoints route loaded") + logger.debug("[SECURITY] Registered endpoints route loaded") # POST login @router.post("/security/login", tags=[self.base_event], operation_id="login") @publish_route_async(DataFlowStatus.USER_ACTION, source="SecurityController") async def login(data: dict, response: Response, app: str = None): - print("[SECURITY] Login request received") + logger.debug("[SECURITY] Login request received") username = data.get("username") password = data.get("password") app_name = app if app is not None else data.get("app") - print(f"[SECURITY] Login attempt for user: {username}, app: {app_name}") + logger.debug(f"[SECURITY] Login attempt for user: {username}, app: {app_name}") if not username or not password or not app_name: logger.warning("[SECURITY] Missing username, password, or app") @@ -112,14 +114,18 @@ async def login(data: dict, response: Response, app: str = None): return response # GET security config - @router.get("/security/config", tags=[self.base_event], operation_id="getSecurityConfig") + @router.get( + "/security/config", tags=[self.base_event], operation_id="getSecurityConfig" + ) async def get_security_config(): try: config = self.model.get_security_config() return JSONResponse(content=config) except Exception as e: return JSONResponse( - content=StatusDTO(status="error", reason=f"Failed to load: {e}").to_dict(), + content=StatusDTO( + status="error", reason=f"Failed to load: {e}" + ).to_dict(), status_code=500, ) @@ -132,20 +138,26 @@ async def get_security_config(): async def save_security_config(data: dict): if not data: return JSONResponse( - content=StatusDTO(status="error", reason="No data provided").to_dict(), + content=StatusDTO( + status="error", reason="No data provided" + ).to_dict(), status_code=400, ) try: self.model.save_security_config(data) except Exception as e: return JSONResponse( - content=StatusDTO(status="error", reason=f"Failed to save: {e}").to_dict(), + content=StatusDTO( + status="error", reason=f"Failed to save: {e}" + ).to_dict(), status_code=500, ) # Notify service if applicable if hasattr(self.service, "notify_config_changed"): self.service.notify_config_changed() - return JSONResponse(content=StatusDTO(status="ok", reason="Config saved").to_dict()) + return JSONResponse( + content=StatusDTO(status="ok", reason="Config saved").to_dict() + ) self.model.load_endpoints(router) diff --git a/src/openscada_lite/web/config_editor/routes.py b/src/openscada_lite/web/config_editor/routes.py index e9bac8c..97e6465 100644 --- a/src/openscada_lite/web/config_editor/routes.py +++ b/src/openscada_lite/web/config_editor/routes.py @@ -68,14 +68,16 @@ async def get_config_by_name(name: str): operation_id="getConfigs", ) async def get_configs(): - print("Getting configs...") + logger.debug("Getting configs...") config_dir = os.path.dirname(CONFIG_FILE) - print("Config dir:", config_dir) - files = [f for f in os.listdir(config_dir) if f.endswith(f"_{SYSTEM_CONFIG_FILENAME}")] - print("Found config files:", files) + logger.debug("Config dir:", config_dir) + files = [ + f for f in os.listdir(config_dir) if f.endswith(f"_{SYSTEM_CONFIG_FILENAME}") + ] + logger.debug("Found config files:", files) # Strip suffix for user display display_names = [f.replace(f"_{SYSTEM_CONFIG_FILENAME}", "") for f in files] - print("Display names:", display_names) + logger.debug("Display names:", display_names) return display_names @@ -129,7 +131,9 @@ async def _restart(): container_id = os.environ.get("HOSTNAME") if container_id: container = client.containers.get(container_id) - logger.info(f"[RESTART] Restarting container {container_id} via Docker socket...") + logger.info( + f"[RESTART] Restarting container {container_id} via Docker socket..." + ) container.restart() return except Exception as e: From 3eb95dc01fc0c0638da332db61d08d020a281f02 Mon Sep 17 00:00:00 2001 From: FERNANDEZ BOADA Daniel Date: Sun, 11 Jan 2026 10:13:43 +0100 Subject: [PATCH 5/8] Cleanup --- requirements.txt | 1 + 1 file changed, 1 insertion(+) diff --git a/requirements.txt b/requirements.txt index acbf6b7..26b753e 100644 --- a/requirements.txt +++ b/requirements.txt @@ -76,3 +76,4 @@ Werkzeug==3.1.3 wsproto==1.2.0 zope.event==6.1 zope.interface==8.1.1 +paho-mqtt==1.6.1 From 5963a135872c5d500300d43f34851c774685fd25 Mon Sep 17 00:00:00 2001 From: FERNANDEZ BOADA Daniel Date: Sun, 11 Jan 2026 10:43:53 +0100 Subject: [PATCH 6/8] Cleanup --- .../drivers/mqtt_tasmota_driver.py | 20 +++++++++++++++++-- 1 file changed, 18 insertions(+), 2 deletions(-) diff --git a/src/openscada_lite/modules/communication/drivers/mqtt_tasmota_driver.py b/src/openscada_lite/modules/communication/drivers/mqtt_tasmota_driver.py index 32f4d07..790e64c 100644 --- a/src/openscada_lite/modules/communication/drivers/mqtt_tasmota_driver.py +++ b/src/openscada_lite/modules/communication/drivers/mqtt_tasmota_driver.py @@ -262,7 +262,12 @@ def _on_message(self, client, userdata, msg): self._pending_command = None if self._command_timeout_task: - self._command_timeout_task.cancel() + old_task = self._command_timeout_task + old_task.cancel() + # Consume the canceled task to avoid 'Task exception was never retrieved' + asyncio.run_coroutine_threadsafe( + self._consume_canceled_task(old_task), self._loop + ) self._command_timeout_task = None asyncio.run_coroutine_threadsafe( @@ -278,12 +283,23 @@ async def _command_timeout_handler(self, data: SendCommandMsg, timeout: int): try: await asyncio.sleep(timeout) except asyncio.CancelledError: - return + # Re-raise cancellation after any cleanup to propagate properly + raise if self._pending_command == data: self._pending_command = None await self._send_command_feedback(data, exists=False) + async def _consume_canceled_task(self, task: asyncio.Task): + try: + await task + except asyncio.CancelledError: + # Expected cancellation; swallow to avoid noisy logs + pass + except Exception: + # Any other exception shouldn't bubble up from a canceled timeout task + pass + async def _send_command_feedback(self, data: SendCommandMsg, exists: bool): if not self._feedback_listener: return From f2e89e5d10b5afc55dd39b64c9c8a4b2bad21699 Mon Sep 17 00:00:00 2001 From: FERNANDEZ BOADA Daniel Date: Sun, 11 Jan 2026 10:58:30 +0100 Subject: [PATCH 7/8] Cleanup --- .../drivers/mqtt_tasmota_driver.py | 24 +++++-------------- 1 file changed, 6 insertions(+), 18 deletions(-) diff --git a/src/openscada_lite/modules/communication/drivers/mqtt_tasmota_driver.py b/src/openscada_lite/modules/communication/drivers/mqtt_tasmota_driver.py index 790e64c..a0ed1be 100644 --- a/src/openscada_lite/modules/communication/drivers/mqtt_tasmota_driver.py +++ b/src/openscada_lite/modules/communication/drivers/mqtt_tasmota_driver.py @@ -17,6 +17,7 @@ import asyncio import json import datetime +import logging from typing import Callable, List, Optional import paho.mqtt.client as mqtt @@ -33,6 +34,7 @@ class MQTTTasmotaRelayDriver(DriverProtocol): def __init__(self, server_name: str) -> None: + self._logger = logging.getLogger(__name__) self._server_name = server_name self._client: Optional[mqtt.Client] = None self._connected: bool = False @@ -262,12 +264,7 @@ def _on_message(self, client, userdata, msg): self._pending_command = None if self._command_timeout_task: - old_task = self._command_timeout_task - old_task.cancel() - # Consume the canceled task to avoid 'Task exception was never retrieved' - asyncio.run_coroutine_threadsafe( - self._consume_canceled_task(old_task), self._loop - ) + self._command_timeout_task.cancel() self._command_timeout_task = None asyncio.run_coroutine_threadsafe( @@ -283,23 +280,14 @@ async def _command_timeout_handler(self, data: SendCommandMsg, timeout: int): try: await asyncio.sleep(timeout) except asyncio.CancelledError: - # Re-raise cancellation after any cleanup to propagate properly - raise + # Task was canceled intentionally; stop execution and do not raise (NOSONAR) + self._logger.debug("Command timeout task canceled; stopping handler.") + return # NOSONAR if self._pending_command == data: self._pending_command = None await self._send_command_feedback(data, exists=False) - async def _consume_canceled_task(self, task: asyncio.Task): - try: - await task - except asyncio.CancelledError: - # Expected cancellation; swallow to avoid noisy logs - pass - except Exception: - # Any other exception shouldn't bubble up from a canceled timeout task - pass - async def _send_command_feedback(self, data: SendCommandMsg, exists: bool): if not self._feedback_listener: return From 866776f22dfe388a5fffa6d3ec757d511be09ae1 Mon Sep 17 00:00:00 2001 From: FERNANDEZ BOADA Daniel Date: Sun, 11 Jan 2026 11:00:02 +0100 Subject: [PATCH 8/8] Cleanup --- .../modules/communication/drivers/mqtt_tasmota_driver.py | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) diff --git a/src/openscada_lite/modules/communication/drivers/mqtt_tasmota_driver.py b/src/openscada_lite/modules/communication/drivers/mqtt_tasmota_driver.py index a0ed1be..672ee54 100644 --- a/src/openscada_lite/modules/communication/drivers/mqtt_tasmota_driver.py +++ b/src/openscada_lite/modules/communication/drivers/mqtt_tasmota_driver.py @@ -17,7 +17,6 @@ import asyncio import json import datetime -import logging from typing import Callable, List, Optional import paho.mqtt.client as mqtt @@ -34,7 +33,6 @@ class MQTTTasmotaRelayDriver(DriverProtocol): def __init__(self, server_name: str) -> None: - self._logger = logging.getLogger(__name__) self._server_name = server_name self._client: Optional[mqtt.Client] = None self._connected: bool = False @@ -279,10 +277,9 @@ def _on_message(self, client, userdata, msg): async def _command_timeout_handler(self, data: SendCommandMsg, timeout: int): try: await asyncio.sleep(timeout) - except asyncio.CancelledError: - # Task was canceled intentionally; stop execution and do not raise (NOSONAR) - self._logger.debug("Command timeout task canceled; stopping handler.") - return # NOSONAR + except asyncio.CancelledError: # NOSONAR + # Feedback was received so no need to raise timeout + return if self._pending_command == data: self._pending_command = None