2019-11-13 21:25:46,892 [INFO] [doorpi.main] ___ ___ _ / \___ ___ _ __ / _ (_) VoIP Door-Intercomstation with Raspberry Pi / /\ / _ \ / _ \| '__/ /_)/ | version: 2.5.1 / /_// (_) | (_) | | / ___/| | license: CC BY-NC 4.0 /___,' \___/ \___/|_| \/ |_| URL: Authors: Thomas Meissner Supporter: Phillip Munz Hermann Dötsch Dennis Häußler Hubert Nusser Michael Hauer Andreas Schwarz Max Rößler missing someone? -> sorry -> mail me 2019-11-13 21:25:46,902 [INFO] [doorpi.conf.config_object] use configfile: /usr/local/etc/DoorPi/conf/doorpi.ini 2019-11-13 21:25:46,911 [TRACE] [doorpi.conf.config_object] get_from_config 2019-11-13 21:25:46,917 [TRACE] [doorpi.conf.config_object] get_string for key base_path in section DoorPi (default: /usr/local/etc/DoorPi) returns /usr/local/etc/DoorPi 2019-11-13 21:25:46,919 [TRACE] [doorpi.conf.config_object] get_string for key eventlog in section DoorPi (default: !BASEPATH!/conf/eventlog.db) returns !BASEPATH!/conf/eventlog.db 2019-11-13 21:25:46,924 [TRACE] [doorpi.action.handler] register Event BeforeStartup from doorpi.doorpi 2019-11-13 21:25:46,926 [TRACE] [doorpi.action.handler] added event_name BeforeStartup and registered source doorpi.doorpi 2019-11-13 21:25:46,927 [TRACE] [doorpi.action.handler] register Event OnStartup from doorpi.doorpi 2019-11-13 21:25:46,928 [TRACE] [doorpi.action.handler] added event_name OnStartup and registered source doorpi.doorpi 2019-11-13 21:25:46,929 [TRACE] [doorpi.action.handler] register Event AfterStartup from doorpi.doorpi 2019-11-13 21:25:46,931 [TRACE] [doorpi.action.handler] added event_name AfterStartup and registered source doorpi.doorpi 2019-11-13 21:25:46,932 [TRACE] [doorpi.action.handler] register Event BeforeShutdown from doorpi.doorpi 2019-11-13 21:25:46,933 [TRACE] [doorpi.action.handler] added event_name BeforeShutdown and registered source doorpi.doorpi 2019-11-13 21:25:46,934 [TRACE] [doorpi.action.handler] register Event OnShutdown from doorpi.doorpi 2019-11-13 21:25:46,935 [TRACE] [doorpi.action.handler] added event_name OnShutdown and registered source doorpi.doorpi 2019-11-13 21:25:46,936 [TRACE] [doorpi.action.handler] register Event AfterShutdown from doorpi.doorpi 2019-11-13 21:25:46,938 [TRACE] [doorpi.action.handler] added event_name AfterShutdown and registered source doorpi.doorpi 2019-11-13 21:25:46,944 [TRACE] [doorpi.action.handler] action TimeTickDestroyAction with args () and kwargs {} was added to new evententry OnShutdown 2019-11-13 21:25:46,946 [TRACE] [doorpi.action.handler] action TimeTickAction with args ('!last_tick!',) and kwargs {} was added to new evententry OnTimeTick 2019-11-13 21:25:46,947 [TRACE] [doorpi.conf.config_object] get_string for key ip in section DoorPiWeb (default: ) returns 2019-11-13 21:25:46,949 [TRACE] [doorpi.conf.config_object] get_integer for key port in section DoorPiWeb (default: 80) returns 80 2019-11-13 21:25:46,951 [WARNING] [doorpi.status.webserver] failed to initiating WebService at ip and port 80 ([Errno 13] Permission denied) 2019-11-13 21:25:46,953 [WARNING] [doorpi.status.webserver] failed to initiating WebService at ip and port 80 ([Errno 13] Permission denied) 2019-11-13 21:25:46,957 [INFO] [doorpi.status.webserver] Initiating WebService at ip and port 8080 2019-11-13 21:25:46,958 [TRACE] [doorpi.action.handler] register Event OnWebServerStart from doorpi.status.webserver 2019-11-13 21:25:46,960 [TRACE] [doorpi.action.handler] added event_name OnWebServerStart and registered source doorpi.status.webserver 2019-11-13 21:25:46,961 [TRACE] [doorpi.action.handler] register Event OnWebServerStop from doorpi.status.webserver 2019-11-13 21:25:46,962 [TRACE] [doorpi.action.handler] added event_name OnWebServerStop and registered source doorpi.status.webserver 2019-11-13 21:25:46,964 [TRACE] [doorpi.conf.config_object] get_string for key www in section DoorPiWeb (default: !BASEPATH!/../DoorPiWeb) returns !BASEPATH!/../DoorPiWeb 2019-11-13 21:25:46,966 [TRACE] [doorpi.conf.config_object] get_string for key indexfile in section DoorPiWeb (default: index.html) returns index.html 2019-11-13 21:25:46,968 [TRACE] [doorpi.conf.config_object] get_string for key loginfile in section DoorPiWeb (default: login.html) returns login.html 2019-11-13 21:25:46,969 [TRACE] [doorpi.conf.config_object] get_string for key public in section DoorPiWeb (default: AREA_public) returns AREA_public 2019-11-13 21:25:46,971 [TRACE] [doorpi.conf.config_object] get_string for key online_fallback in section DoorPiWeb (default: http://motom001.github.io/DoorPiWeb) returns http://motom001.github.io/DoorPiWeb 2019-11-13 21:25:46,972 [WARNING] [root] section WritePermission not found in configfile 2019-11-13 21:25:46,973 [TRACE] [doorpi.conf.config_object] get_keys for section WritePermission returns [] 2019-11-13 21:25:46,973 [WARNING] [root] section ReadPermission not found in configfile 2019-11-13 21:25:46,974 [TRACE] [doorpi.conf.config_object] get_keys for section ReadPermission returns [] 2019-11-13 21:25:46,974 [WARNING] [root] section Group not found in configfile 2019-11-13 21:25:46,975 [TRACE] [doorpi.conf.config_object] get_keys for section Group returns [] 2019-11-13 21:25:46,975 [WARNING] [root] section User not found in configfile 2019-11-13 21:25:46,976 [TRACE] [doorpi.conf.config_object] get_keys for section User returns [] 2019-11-13 21:25:46,976 [TRACE] [doorpi.conf.config_object] get_sections returns ['onboardpins_OutputPins', 'onboardpins_keyboard', 'nextion_keyboard', 'EVENT_OnSipPhoneMakeCall', 'keyboards', 'AdminNumbers', 'DTMF', 'SIP-Phone', 'EVENT_OnStartup', 'nextion_InputPins', 'DoorPiWeb', 'onboardpins_InputPins', 'DoorPi'] 2019-11-13 21:25:46,977 [ERROR] [doorpi.status.webserver] no ReadPermission found 2019-11-13 21:25:46,977 [ERROR] [doorpi.status.webserver] no groups in configfile! 2019-11-13 21:25:46,978 [ERROR] [doorpi.status.webserver] no WritePermission found 2019-11-13 21:25:46,978 [TRACE] [doorpi.action.handler] action WebServerStartupAction with args () and kwargs {} was added to new evententry OnWebServerStart 2019-11-13 21:25:46,979 [TRACE] [doorpi.action.handler] action WebServerShutdownAction with args () and kwargs {} was added to event OnShutdown 2019-11-13 21:25:46,979 [TRACE] [doorpi.action.handler] fire Event OnWebServerStart from doorpi.status.webserver asyncron 2019-11-13 21:25:46,981 [TRACE] [doorpi.action.handler] register Event OnWebServerRequest from doorpi.status.webserver_lib.request_handler 2019-11-13 21:25:46,982 [TRACE] [doorpi.action.handler] added event_name OnWebServerRequest and registered source doorpi.status.webserver_lib.request_handler 2019-11-13 21:25:46,983 [TRACE] [doorpi.action.handler] register Event OnWebServerRequestGet from doorpi.status.webserver_lib.request_handler 2019-11-13 21:25:46,983 [TRACE] [doorpi.action.handler] added event_name OnWebServerRequestGet and registered source doorpi.status.webserver_lib.request_handler 2019-11-13 21:25:46,984 [TRACE] [doorpi.action.handler] register Event OnWebServerRequestPost from doorpi.status.webserver_lib.request_handler 2019-11-13 21:25:46,985 [TRACE] [doorpi.action.handler] added event_name OnWebServerRequestPost and registered source doorpi.status.webserver_lib.request_handler 2019-11-13 21:25:46,985 [TRACE] [doorpi.action.handler] register Event OnWebServerVirtualResource from doorpi.status.webserver_lib.request_handler 2019-11-13 21:25:46,986 [TRACE] [doorpi.action.handler] added event_name OnWebServerVirtualResource and registered source doorpi.status.webserver_lib.request_handler 2019-11-13 21:25:46,986 [TRACE] [doorpi.action.handler] register Event OnWebServerRealResource from doorpi.status.webserver_lib.request_handler 2019-11-13 21:25:46,987 [TRACE] [doorpi.action.handler] added event_name OnWebServerRealResource and registered source doorpi.status.webserver_lib.request_handler 2019-11-13 21:25:46,987 [TRACE] [doorpi.action.handler] register Event OnFireEvent from doorpi.status.webserver_lib.request_handler 2019-11-13 21:25:46,988 [TRACE] [doorpi.action.handler] added event_name OnFireEvent and registered source doorpi.status.webserver_lib.request_handler 2019-11-13 21:25:46,988 [TRACE] [doorpi.action.handler] register Event OnConfigKeySet from doorpi.status.webserver_lib.request_handler 2019-11-13 21:25:46,989 [TRACE] [doorpi.action.handler] added event_name OnConfigKeySet and registered source doorpi.status.webserver_lib.request_handler 2019-11-13 21:25:46,990 [TRACE] [doorpi.action.handler] register Event OnConfigKeyDelete from doorpi.status.webserver_lib.request_handler 2019-11-13 21:25:46,991 [TRACE] [doorpi.action.handler] added event_name OnConfigKeyDelete and registered source doorpi.status.webserver_lib.request_handler 2019-11-13 21:25:46,991 [TRACE] [doorpi.action.handler] action > with args () and kwargs {} was added to new evententry OnTimeSecondEvenNumber 2019-11-13 21:25:46,992 [TRACE] [doorpi.conf.config_object] get_keys for section keyboards returns ['nextion', 'onboardpins'] 2019-11-13 21:25:46,993 [INFO] [doorpi.keyboard.KeyboardInterface] using multi-keyboard mode (keyboards: nextion, onboardpins) 2019-11-13 21:25:46,994 [INFO] [doorpi.keyboard.KeyboardInterface] trying to add keyboard 'nextion' to handler 2019-11-13 21:25:46,995 [TRACE] [doorpi.conf.config_object] get_string for key nextion in section keyboards (default: dummy) returns nextion 2019-11-13 21:25:46,996 [TRACE] [doorpi.conf.config_object] get_keys for section nextion_InputPins returns ['bouncetime', '54542121'] 2019-11-13 21:25:46,996 [WARNING] [root] section nextion_OutputPins not found in configfile 2019-11-13 21:25:46,997 [TRACE] [doorpi.conf.config_object] get_keys for section nextion_OutputPins returns [] 2019-11-13 21:25:46,998 [TRACE] [doorpi.conf.config_object] get_integer for key bouncetime in section nextion_keyboard (default: 2000) returns 500.0 2019-11-13 21:25:46,999 [TRACE] [doorpi.conf.config_object] get_integer for key polarity in section nextion_keyboard (default: 0) returns 0 2019-11-13 21:25:46,999 [TRACE] [doorpi.conf.config_object] get_boolean for key pressed_on_keydown in section nextion_keyboard (default: True) returns True Exception in thread OnWebServerStart from doorpi.status.webserver: Traceback (most recent call last): File "/usr/lib/python2.7/threading.py", line 810, in __bootstrap_inner self.run() File "/usr/lib/python2.7/threading.py", line 763, in run self.__target(*self.__args, **self.__kwargs) File "/usr/local/lib/python2.7/dist-packages/doorpi/action/handler.py", line 251, in fire_event_synchron if not silent: self.db.insert_event_log(event_fire_id, event_source, event_name, start_time, kwargs) File "/usr/local/lib/python2.7/dist-packages/doorpi/action/handler.py", line 135, in insert_event_log self.execute_sql(sql_statement) File "/usr/local/lib/python2.7/dist-packages/doorpi/action/handler.py", line 121, in execute_sql return self._db.execute(sql) OperationalError: attempt to write a readonly database 2019-11-13 21:25:47,000 [ERROR] [doorpi.keyboard.KeyboardInterface] keyboard nextion not found @ keyboard.from_nextion (msg: No module named from_nextion) Traceback (most recent call last): File "/usr/local/lib/python2.7/dist-packages/doorpi/keyboard/KeyboardInterface.py", line 42, in load_single_keyboard keyboard = importlib.import_module('doorpi.keyboard.from_'+keyboard_type).get( File "/usr/lib/python2.7/importlib/__init__.py", line 37, in import_module __import__(name) ImportError: No module named from_nextion 2019-11-13 21:25:47,003 [ERROR] [doorpi.keyboard.KeyboardInterface] couldn't load keyboard nextion 2019-11-13 21:25:47,004 [INFO] [doorpi.keyboard.KeyboardInterface] trying to add keyboard 'onboardpins' to handler 2019-11-13 21:25:47,005 [TRACE] [doorpi.conf.config_object] get_string for key onboardpins in section keyboards (default: dummy) returns piface 2019-11-13 21:25:47,005 [TRACE] [doorpi.conf.config_object] get_keys for section onboardpins_InputPins returns ['0'] 2019-11-13 21:25:47,006 [TRACE] [doorpi.conf.config_object] get_keys for section onboardpins_OutputPins returns ['1', '0'] 2019-11-13 21:25:47,007 [TRACE] [doorpi.conf.config_object] get_integer for key bouncetime in section onboardpins_keyboard (default: 2000) returns 2000.0 2019-11-13 21:25:47,008 [TRACE] [doorpi.conf.config_object] get_integer for key polarity in section onboardpins_keyboard (default: 0) returns 0 2019-11-13 21:25:47,009 [TRACE] [doorpi.conf.config_object] get_boolean for key pressed_on_keydown in section onboardpins_keyboard (default: True) returns True 2019-11-13 21:25:47,125 [TRACE] [doorpi.action.handler] register Event OnKeyPressed from doorpi.keyboard.from_piface 2019-11-13 21:25:47,125 [TRACE] [doorpi.action.handler] added event_name OnKeyPressed and registered source doorpi.keyboard.from_piface 2019-11-13 21:25:47,126 [TRACE] [doorpi.action.handler] register Event OnKeyPressed_0 from doorpi.keyboard.from_piface 2019-11-13 21:25:47,127 [TRACE] [doorpi.action.handler] added event_name OnKeyPressed_0 and registered source doorpi.keyboard.from_piface 2019-11-13 21:25:47,128 [TRACE] [doorpi.action.handler] register Event OnKeyPressed_onboardpins.0 from doorpi.keyboard.from_piface 2019-11-13 21:25:47,128 [TRACE] [doorpi.action.handler] added event_name OnKeyPressed_onboardpins.0 and registered source doorpi.keyboard.from_piface 2019-11-13 21:25:47,129 [TRACE] [doorpi.action.handler] register Event OnKeyUp from doorpi.keyboard.from_piface 2019-11-13 21:25:47,129 [TRACE] [doorpi.action.handler] added event_name OnKeyUp and registered source doorpi.keyboard.from_piface 2019-11-13 21:25:47,130 [TRACE] [doorpi.action.handler] register Event OnKeyUp_0 from doorpi.keyboard.from_piface 2019-11-13 21:25:47,131 [TRACE] [doorpi.action.handler] added event_name OnKeyUp_0 and registered source doorpi.keyboard.from_piface 2019-11-13 21:25:47,131 [TRACE] [doorpi.action.handler] register Event OnKeyUp_onboardpins.0 from doorpi.keyboard.from_piface 2019-11-13 21:25:47,132 [TRACE] [doorpi.action.handler] added event_name OnKeyUp_onboardpins.0 and registered source doorpi.keyboard.from_piface 2019-11-13 21:25:47,132 [TRACE] [doorpi.action.handler] register Event OnKeyDown from doorpi.keyboard.from_piface 2019-11-13 21:25:47,133 [TRACE] [doorpi.action.handler] added event_name OnKeyDown and registered source doorpi.keyboard.from_piface 2019-11-13 21:25:47,134 [TRACE] [doorpi.action.handler] register Event OnKeyDown_0 from doorpi.keyboard.from_piface 2019-11-13 21:25:47,134 [TRACE] [doorpi.action.handler] added event_name OnKeyDown_0 and registered source doorpi.keyboard.from_piface 2019-11-13 21:25:47,135 [TRACE] [doorpi.action.handler] register Event OnKeyDown_onboardpins.0 from doorpi.keyboard.from_piface 2019-11-13 21:25:47,135 [TRACE] [doorpi.action.handler] added event_name OnKeyDown_onboardpins.0 and registered source doorpi.keyboard.from_piface 2019-11-13 21:25:47,159 [TRACE] [doorpi.action.handler] action KeyboardDestroyAction with args () and kwargs {} was added to event OnShutdown 2019-11-13 21:25:47,161 [TRACE] [doorpi.conf.config_object] get_keys for section onboardpins_OutputPins returns ['1', '0'] 2019-11-13 21:25:47,162 [TRACE] [doorpi.conf.config_object] get_string for key 1 in section onboardpins_OutputPins (default: ) returns Klingel 2019-11-13 21:25:47,163 [TRACE] [doorpi.conf.config_object] get_string for key 0 in section onboardpins_OutputPins (default: ) returns Tueroeffner 2019-11-13 21:25:47,240 [INFO] [doorpi.sipphone.SipphoneInterface] found installed sipphone "linphone" and use this as default 2019-11-13 21:25:47,241 [TRACE] [doorpi.conf.config_object] get_string for key sipphonetyp in section SIP-Phone (default: linphone) returns linphone 2019-11-13 21:25:47,249 [TRACE] [doorpi.action.handler] action > with args () and kwargs {} was added to event OnShutdown 2019-11-13 21:25:47,250 [TRACE] [doorpi.action.handler] register Event OnSipPhoneCreate from doorpi.sipphone.from_linphone 2019-11-13 21:25:47,251 [TRACE] [doorpi.action.handler] added event_name OnSipPhoneCreate and registered source doorpi.sipphone.from_linphone 2019-11-13 21:25:47,251 [TRACE] [doorpi.action.handler] register Event OnSipPhoneStart from doorpi.sipphone.from_linphone 2019-11-13 21:25:47,252 [TRACE] [doorpi.action.handler] added event_name OnSipPhoneStart and registered source doorpi.sipphone.from_linphone 2019-11-13 21:25:47,253 [TRACE] [doorpi.action.handler] register Event OnSipPhoneDestroy from doorpi.sipphone.from_linphone 2019-11-13 21:25:47,253 [TRACE] [doorpi.action.handler] added event_name OnSipPhoneDestroy and registered source doorpi.sipphone.from_linphone 2019-11-13 21:25:47,254 [TRACE] [doorpi.action.handler] register Event OnSipPhoneRecorderCreate from doorpi.sipphone.from_linphone 2019-11-13 21:25:47,254 [TRACE] [doorpi.action.handler] added event_name OnSipPhoneRecorderCreate and registered source doorpi.sipphone.from_linphone 2019-11-13 21:25:47,255 [TRACE] [doorpi.action.handler] register Event OnSipPhoneRecorderDestroy from doorpi.sipphone.from_linphone 2019-11-13 21:25:47,256 [TRACE] [doorpi.action.handler] added event_name OnSipPhoneRecorderDestroy and registered source doorpi.sipphone.from_linphone 2019-11-13 21:25:47,256 [TRACE] [doorpi.action.handler] register Event BeforeSipPhoneMakeCall from doorpi.sipphone.from_linphone 2019-11-13 21:25:47,257 [TRACE] [doorpi.action.handler] added event_name BeforeSipPhoneMakeCall and registered source doorpi.sipphone.from_linphone 2019-11-13 21:25:47,257 [TRACE] [doorpi.action.handler] register Event OnSipPhoneMakeCall from doorpi.sipphone.from_linphone 2019-11-13 21:25:47,258 [TRACE] [doorpi.action.handler] added event_name OnSipPhoneMakeCall and registered source doorpi.sipphone.from_linphone 2019-11-13 21:25:47,259 [TRACE] [doorpi.action.handler] register Event OnSipPhoneMakeCallFailed from doorpi.sipphone.from_linphone 2019-11-13 21:25:47,259 [TRACE] [doorpi.action.handler] added event_name OnSipPhoneMakeCallFailed and registered source doorpi.sipphone.from_linphone 2019-11-13 21:25:47,260 [TRACE] [doorpi.action.handler] register Event AfterSipPhoneMakeCall from doorpi.sipphone.from_linphone 2019-11-13 21:25:47,260 [TRACE] [doorpi.action.handler] added event_name AfterSipPhoneMakeCall and registered source doorpi.sipphone.from_linphone 2019-11-13 21:25:47,261 [TRACE] [doorpi.action.handler] register Event OnSipPhoneCallTimeoutNoResponse from doorpi.sipphone.from_linphone 2019-11-13 21:25:47,261 [TRACE] [doorpi.action.handler] added event_name OnSipPhoneCallTimeoutNoResponse and registered source doorpi.sipphone.from_linphone 2019-11-13 21:25:47,262 [TRACE] [doorpi.action.handler] register Event OnSipPhoneCallTimeoutMaxCalltime from doorpi.sipphone.from_linphone 2019-11-13 21:25:47,263 [TRACE] [doorpi.action.handler] added event_name OnSipPhoneCallTimeoutMaxCalltime and registered source doorpi.sipphone.from_linphone 2019-11-13 21:25:47,263 [TRACE] [doorpi.action.handler] register Event OnPlayerCreated from doorpi.sipphone.from_linphone 2019-11-13 21:25:47,264 [TRACE] [doorpi.action.handler] added event_name OnPlayerCreated and registered source doorpi.sipphone.from_linphone 2019-11-13 21:25:47,265 [TRACE] [doorpi.action.handler] action > with args () and kwargs {} was added to new evententry OnSipPhoneDestroy 2019-11-13 21:25:47,265 [TRACE] [doorpi.action.handler] register Event OnCallMediaStateChange from doorpi.sipphone.linphone_lib.CallBacks 2019-11-13 21:25:47,266 [TRACE] [doorpi.action.handler] added event_name OnCallMediaStateChange and registered source doorpi.sipphone.linphone_lib.CallBacks 2019-11-13 21:25:47,267 [TRACE] [doorpi.action.handler] register Event OnMediaRequired from doorpi.sipphone.linphone_lib.CallBacks 2019-11-13 21:25:47,268 [TRACE] [doorpi.action.handler] added event_name OnMediaRequired and registered source doorpi.sipphone.linphone_lib.CallBacks 2019-11-13 21:25:47,269 [TRACE] [doorpi.action.handler] register Event OnMediaNotRequired from doorpi.sipphone.linphone_lib.CallBacks 2019-11-13 21:25:47,269 [TRACE] [doorpi.action.handler] added event_name OnMediaNotRequired and registered source doorpi.sipphone.linphone_lib.CallBacks 2019-11-13 21:25:47,270 [TRACE] [doorpi.action.handler] register Event OnCallStateChange from doorpi.sipphone.linphone_lib.CallBacks 2019-11-13 21:25:47,270 [TRACE] [doorpi.action.handler] added event_name OnCallStateChange and registered source doorpi.sipphone.linphone_lib.CallBacks 2019-11-13 21:25:47,271 [TRACE] [doorpi.action.handler] register Event OnCallStateConnect from doorpi.sipphone.linphone_lib.CallBacks 2019-11-13 21:25:47,272 [TRACE] [doorpi.action.handler] added event_name OnCallStateConnect and registered source doorpi.sipphone.linphone_lib.CallBacks 2019-11-13 21:25:47,272 [TRACE] [doorpi.action.handler] register Event AfterCallStateConnect from doorpi.sipphone.linphone_lib.CallBacks 2019-11-13 21:25:47,273 [TRACE] [doorpi.action.handler] added event_name AfterCallStateConnect and registered source doorpi.sipphone.linphone_lib.CallBacks 2019-11-13 21:25:47,273 [TRACE] [doorpi.action.handler] register Event OnCallStateDisconnect from doorpi.sipphone.linphone_lib.CallBacks 2019-11-13 21:25:47,274 [TRACE] [doorpi.action.handler] added event_name OnCallStateDisconnect and registered source doorpi.sipphone.linphone_lib.CallBacks 2019-11-13 21:25:47,275 [TRACE] [doorpi.action.handler] register Event AfterCallStateDisconnect from doorpi.sipphone.linphone_lib.CallBacks 2019-11-13 21:25:47,275 [TRACE] [doorpi.action.handler] added event_name AfterCallStateDisconnect and registered source doorpi.sipphone.linphone_lib.CallBacks 2019-11-13 21:25:47,276 [TRACE] [doorpi.action.handler] register Event OnCallStateDismissed from doorpi.sipphone.linphone_lib.CallBacks 2019-11-13 21:25:47,276 [TRACE] [doorpi.action.handler] added event_name OnCallStateDismissed and registered source doorpi.sipphone.linphone_lib.CallBacks 2019-11-13 21:25:47,277 [TRACE] [doorpi.action.handler] register Event OnCallStateReject from doorpi.sipphone.linphone_lib.CallBacks 2019-11-13 21:25:47,278 [TRACE] [doorpi.action.handler] added event_name OnCallStateReject and registered source doorpi.sipphone.linphone_lib.CallBacks 2019-11-13 21:25:47,278 [TRACE] [doorpi.action.handler] register Event OnCallStart from doorpi.sipphone.linphone_lib.CallBacks 2019-11-13 21:25:47,279 [TRACE] [doorpi.action.handler] added event_name OnCallStart and registered source doorpi.sipphone.linphone_lib.CallBacks 2019-11-13 21:25:47,279 [TRACE] [doorpi.action.handler] register Event OnDTMF from doorpi.sipphone.linphone_lib.CallBacks 2019-11-13 21:25:47,280 [TRACE] [doorpi.action.handler] added event_name OnDTMF and registered source doorpi.sipphone.linphone_lib.CallBacks 2019-11-13 21:25:47,280 [TRACE] [doorpi.conf.config_object] get_keys for section DTMF returns ['\xe2\x80\x9e0\xe2\x80\x9c'] 2019-11-13 21:25:47,281 [TRACE] [doorpi.action.handler] register Event OnDTMF_„0“ from doorpi.sipphone.linphone_lib.CallBacks 2019-11-13 21:25:47,282 [TRACE] [doorpi.action.handler] added event_name OnDTMF_„0“ and registered source doorpi.sipphone.linphone_lib.CallBacks 2019-11-13 21:25:47,282 [TRACE] [doorpi.action.handler] register Event OnCallStart from doorpi.sipphone.linphone_lib.CallBacks 2019-11-13 21:25:47,283 [TRACE] [doorpi.action.handler] nothing to do - event OnCallStart from source doorpi.sipphone.linphone_lib.CallBacks is already known 2019-11-13 21:25:47,283 [TRACE] [doorpi.action.handler] register Event BeforeCallIncoming from doorpi.sipphone.linphone_lib.CallBacks 2019-11-13 21:25:47,284 [TRACE] [doorpi.action.handler] added event_name BeforeCallIncoming and registered source doorpi.sipphone.linphone_lib.CallBacks 2019-11-13 21:25:47,285 [TRACE] [doorpi.action.handler] register Event OnCallReconnect from doorpi.sipphone.linphone_lib.CallBacks 2019-11-13 21:25:47,285 [TRACE] [doorpi.action.handler] added event_name OnCallReconnect and registered source doorpi.sipphone.linphone_lib.CallBacks 2019-11-13 21:25:47,286 [TRACE] [doorpi.action.handler] register Event AfterCallReconnect from doorpi.sipphone.linphone_lib.CallBacks 2019-11-13 21:25:47,286 [TRACE] [doorpi.action.handler] added event_name AfterCallReconnect and registered source doorpi.sipphone.linphone_lib.CallBacks 2019-11-13 21:25:47,287 [TRACE] [doorpi.action.handler] register Event OnCallBusy from doorpi.sipphone.linphone_lib.CallBacks 2019-11-13 21:25:47,287 [TRACE] [doorpi.action.handler] added event_name OnCallBusy and registered source doorpi.sipphone.linphone_lib.CallBacks 2019-11-13 21:25:47,288 [TRACE] [doorpi.action.handler] register Event AfterCallBusy from doorpi.sipphone.linphone_lib.CallBacks 2019-11-13 21:25:47,289 [TRACE] [doorpi.action.handler] added event_name AfterCallBusy and registered source doorpi.sipphone.linphone_lib.CallBacks 2019-11-13 21:25:47,289 [TRACE] [doorpi.action.handler] register Event OnCallIncoming from doorpi.sipphone.linphone_lib.CallBacks 2019-11-13 21:25:47,290 [TRACE] [doorpi.action.handler] added event_name OnCallIncoming and registered source doorpi.sipphone.linphone_lib.CallBacks 2019-11-13 21:25:47,290 [TRACE] [doorpi.action.handler] register Event AfterCallIncoming from doorpi.sipphone.linphone_lib.CallBacks 2019-11-13 21:25:47,291 [TRACE] [doorpi.action.handler] added event_name AfterCallIncoming and registered source doorpi.sipphone.linphone_lib.CallBacks 2019-11-13 21:25:47,291 [TRACE] [doorpi.action.handler] register Event OnCallReject from doorpi.sipphone.linphone_lib.CallBacks 2019-11-13 21:25:47,292 [TRACE] [doorpi.action.handler] added event_name OnCallReject and registered source doorpi.sipphone.linphone_lib.CallBacks 2019-11-13 21:25:47,293 [TRACE] [doorpi.action.handler] register Event AfterCallReject from doorpi.sipphone.linphone_lib.CallBacks 2019-11-13 21:25:47,293 [TRACE] [doorpi.action.handler] added event_name AfterCallReject and registered source doorpi.sipphone.linphone_lib.CallBacks 2019-11-13 21:25:47,294 [TRACE] [doorpi.action.handler] fire Event OnCallStart from doorpi.sipphone.linphone_lib.CallBacks asyncron 2019-11-13 21:25:47,458 [TRACE] [doorpi.conf.config_object] get_string for key identity in section SIP-Phone (default: DoorPi) returns DoorPi 2019-11-13 21:25:47,461 [TRACE] [doorpi.action.handler] fire Event OnSipPhoneCreate from doorpi.sipphone.from_linphone asyncron Exception in thread OnCallStart from doorpi.sipphone.linphone_lib.CallBacks: Traceback (most recent call last): File "/usr/lib/python2.7/threading.py", line 810, in __bootstrap_inner self.run() File "/usr/lib/python2.7/threading.py", line 763, in run self.__target(*self.__args, **self.__kwargs) File "/usr/local/lib/python2.7/dist-packages/doorpi/action/handler.py", line 251, in fire_event_synchron if not silent: self.db.insert_event_log(event_fire_id, event_source, event_name, start_time, kwargs) File "/usr/local/lib/python2.7/dist-packages/doorpi/action/handler.py", line 135, in insert_event_log self.execute_sql(sql_statement) File "/usr/local/lib/python2.7/dist-packages/doorpi/action/handler.py", line 121, in execute_sql return self._db.execute(sql) OperationalError: attempt to write a readonly database 2019-11-13 21:25:47,464 [TRACE] [doorpi.conf.config_object] get_integer for key ua.max_calls in section SIP-Phone (default: 2) returns 2 2019-11-13 21:25:47,465 [TRACE] [doorpi.conf.config_object] get_boolean for key echo_cancellation_enabled in section SIP-Phone (default: False) returns False 2019-11-13 21:25:47,466 [TRACE] [doorpi.conf.config_object] get_integer for key local_port in section SIP-Phone (default: 5060) returns 5060 2019-11-13 21:25:47,467 [TRACE] [doorpi.conf.config_object] get_integer for key local_port in section SIP-Phone (default: 5060) returns 5060 2019-11-13 21:25:47,469 [TRACE] [doorpi.conf.config_object] get_boolean for key video_display_enabled in section SIP-Phone (default: False) returns False 2019-11-13 21:25:47,470 [TRACE] [doorpi.conf.config_object] get_string for key stun_server in section SIP-Phone (default: ) returns 2019-11-13 21:25:47,473 [TRACE] [doorpi.conf.config_object] get_string for key FirewallPolicy in section SIP-Phone (default: PolicyNoFirewall) returns PolicyNoFirewall Exception in thread OnSipPhoneCreate from doorpi.sipphone.from_linphone: Traceback (most recent call last): File "/usr/lib/python2.7/threading.py", line 810, in __bootstrap_inner self.run() File "/usr/lib/python2.7/threading.py", line 763, in run self.__target(*self.__args, **self.__kwargs) File "/usr/local/lib/python2.7/dist-packages/doorpi/action/handler.py", line 251, in fire_event_synchron if not silent: self.db.insert_event_log(event_fire_id, event_source, event_name, start_time, kwargs) File "/usr/local/lib/python2.7/dist-packages/doorpi/action/handler.py", line 135, in insert_event_log self.execute_sql(sql_statement) File "/usr/local/lib/python2.7/dist-packages/doorpi/action/handler.py", line 121, in execute_sql return self._db.execute(sql) OperationalError: attempt to write a readonly database 2019-11-13 21:25:47,475 [TRACE] [doorpi.conf.config_object] get_integer for key max_call_time in section SIP-Phone (default: 120) returns 120 2019-11-13 21:25:47,476 [TRACE] [doorpi.conf.config_object] get_integer for key call_timeout in section SIP-Phone (default: 15) returns 40 2019-11-13 21:25:47,477 [TRACE] [doorpi.conf.config_object] get_string for key dialtone in section SIP-Phone (default: !BASEPATH!/media/ShortDialTone.wav) returns !BASEPATH!/media/ShortDialTone.wav 2019-11-13 21:25:47,479 [TRACE] [doorpi.action.handler] action > with args () and kwargs {} was added to event OnSipPhoneDestroy 2019-11-13 21:25:47,481 [TRACE] [doorpi.conf.config_object] get_boolean for key dialtone_renew_every_start in section SIP-Phone (default: False) returns False 2019-11-13 21:25:47,482 [TRACE] [doorpi.action.handler] register Event OnPlayerStarted from doorpi.sipphone.linphone_lib.Player 2019-11-13 21:25:47,482 [TRACE] [doorpi.action.handler] added event_name OnPlayerStarted and registered source doorpi.sipphone.linphone_lib.Player 2019-11-13 21:25:47,483 [TRACE] [doorpi.action.handler] register Event OnPlayerStopped from doorpi.sipphone.linphone_lib.Player 2019-11-13 21:25:47,483 [TRACE] [doorpi.action.handler] added event_name OnPlayerStopped and registered source doorpi.sipphone.linphone_lib.Player 2019-11-13 21:25:47,484 [TRACE] [doorpi.action.handler] register Event OnPlayerCreated from doorpi.sipphone.linphone_lib.Player 2019-11-13 21:25:47,484 [TRACE] [doorpi.action.handler] added event_source doorpi.sipphone.linphone_lib.Player to existing event OnPlayerCreated 2019-11-13 21:25:47,485 [TRACE] [doorpi.action.handler] action > with args () and kwargs {} was added to new evententry OnSipPhoneMakeCall 2019-11-13 21:25:47,485 [TRACE] [doorpi.action.handler] action > with args () and kwargs {} was added to new evententry OnCallStateConnect 2019-11-13 21:25:47,486 [TRACE] [doorpi.action.handler] action > with args () and kwargs {} was added to new evententry OnCallStateDisconnect 2019-11-13 21:25:47,486 [TRACE] [doorpi.action.handler] fire Event OnPlayerCreated from doorpi.sipphone.linphone_lib.Player asyncron 2019-11-13 21:25:47,488 [TRACE] [doorpi.conf.config_object] get_string for key records in section SIP-Phone (default: !BASEPATH!/records/%Y-%m-%d_%H-%M-%S.wav) returns !BASEPATH!/records/%Y-%m-%d_%H-%M-%S.wav 2019-11-13 21:25:47,489 [TRACE] [doorpi.action.handler] action > with args () and kwargs {} was added to event OnSipPhoneDestroy 2019-11-13 21:25:47,490 [TRACE] [doorpi.action.handler] register Event OnRecorderStarted from doorpi.sipphone.linphone_lib.Recorder 2019-11-13 21:25:47,491 [TRACE] [doorpi.action.handler] added event_name OnRecorderStarted and registered source doorpi.sipphone.linphone_lib.Recorder 2019-11-13 21:25:47,492 [TRACE] [doorpi.action.handler] register Event OnRecorderStopped from doorpi.sipphone.linphone_lib.Recorder Exception in thread OnPlayerCreated from doorpi.sipphone.linphone_lib.Player: Traceback (most recent call last): File "/usr/lib/python2.7/threading.py", line 810, in __bootstrap_inner self.run() File "/usr/lib/python2.7/threading.py", line 763, in run self.__target(*self.__args, **self.__kwargs) File "/usr/local/lib/python2.7/dist-packages/doorpi/action/handler.py", line 251, in fire_event_synchron if not silent: self.db.insert_event_log(event_fire_id, event_source, event_name, start_time, kwargs) File "/usr/local/lib/python2.7/dist-packages/doorpi/action/handler.py", line 135, in insert_event_log self.execute_sql(sql_statement) File "/usr/local/lib/python2.7/dist-packages/doorpi/action/handler.py", line 121, in execute_sql return self._db.execute(sql) OperationalError: attempt to write a readonly database 2019-11-13 21:25:47,492 [TRACE] [doorpi.action.handler] added event_name OnRecorderStopped and registered source doorpi.sipphone.linphone_lib.Recorder 2019-11-13 21:25:47,493 [TRACE] [doorpi.action.handler] register Event OnRecorderCreated from doorpi.sipphone.linphone_lib.Recorder 2019-11-13 21:25:47,494 [TRACE] [doorpi.action.handler] added event_name OnRecorderCreated and registered source doorpi.sipphone.linphone_lib.Recorder 2019-11-13 21:25:47,495 [TRACE] [doorpi.conf.config_object] get_boolean for key record_while_dialing in section SIP-Phone (default: False) returns False 2019-11-13 21:25:47,496 [TRACE] [doorpi.action.handler] action > with args () and kwargs {} was added to event OnCallStateConnect 2019-11-13 21:25:47,496 [TRACE] [doorpi.action.handler] action > with args () and kwargs {} was added to event OnCallStateDisconnect 2019-11-13 21:25:47,497 [TRACE] [doorpi.action.handler] fire Event OnRecorderCreated from doorpi.sipphone.linphone_lib.Recorder asyncron 2019-11-13 21:25:47,499 [TRACE] [doorpi.conf.config_object] get_string for key capture_device in section SIP-Phone (default: ALSA: default device) returns ALSA: USB Audio Device 2019-11-13 21:25:47,500 [TRACE] [doorpi.conf.config_object] get_string for key playback_device in section SIP-Phone (default: ALSA: default device) returns ALSA: USB Audio Device 2019-11-13 21:25:47,501 [INFO] [doorpi.sipphone.from_linphone] found 3 possible sounddevices: 2019-11-13 21:25:47,504 [TRACE] [doorpi.conf.config_object] get_list for key audio_codecs in section SIP-Phone (default: PCMA,PCMU) returns ['PCMA', 'PCMU'] 2019-11-13 21:25:47,509 [INFO] [doorpi.sipphone.from_linphone] found 2 possible videodevices: 2019-11-13 21:25:47,511 [TRACE] [doorpi.conf.config_object] get_string for key video_device in section SIP-Phone (default: V4L2: /dev/video0) returns V4L2: /dev/video0 2019-11-13 21:25:47,512 [TRACE] [doorpi.conf.config_object] get_string for key video_size in section SIP-Phone (default: vga) returns vga Exception in thread OnRecorderCreated from doorpi.sipphone.linphone_lib.Recorder: Traceback (most recent call last): File "/usr/lib/python2.7/threading.py", line 810, in __bootstrap_inner self.run() File "/usr/lib/python2.7/threading.py", line 763, in run self.__target(*self.__args, **self.__kwargs) File "/usr/local/lib/python2.7/dist-packages/doorpi/action/handler.py", line 251, in fire_event_synchron if not silent: self.db.insert_event_log(event_fire_id, event_source, event_name, start_time, kwargs) File "/usr/local/lib/python2.7/dist-packages/doorpi/action/handler.py", line 135, in insert_event_log self.execute_sql(sql_statement) File "/usr/local/lib/python2.7/dist-packages/doorpi/action/handler.py", line 121, in execute_sql return self._db.execute(sql) OperationalError: attempt to write a readonly database 2019-11-13 21:25:47,513 [TRACE] [doorpi.conf.config_object] get_list for key video_codecs in section SIP-Phone (default: VP8) returns ['VP8'] 2019-11-13 21:25:47,514 [WARNING] [doorpi.conf.config_object] could not delete section SIP-Phone, because it's not empty. 2019-11-13 21:25:47,515 [WARNING] [doorpi.conf.config_object] found SIP-Phone - sipserver_server in BACKWARD_COMPATIBILITY_KEYS with SIP-Phone - server 2019-11-13 21:25:47,515 [TRACE] [doorpi.conf.config_object] get_string for key sipserver_server in section SIP-Phone (default: ) returns 192.168.2.119 2019-11-13 21:25:47,516 [WARNING] [doorpi.conf.config_object] could not delete section SIP-Phone, because it's not empty. 2019-11-13 21:25:47,516 [WARNING] [doorpi.conf.config_object] found SIP-Phone - sipserver_username in BACKWARD_COMPATIBILITY_KEYS with SIP-Phone - username 2019-11-13 21:25:47,517 [TRACE] [doorpi.conf.config_object] get_string for key sipserver_username in section SIP-Phone (default: ) returns 1000 2019-11-13 21:25:47,517 [WARNING] [doorpi.conf.config_object] could not delete section SIP-Phone, because it's not empty. 2019-11-13 21:25:47,518 [WARNING] [doorpi.conf.config_object] found SIP-Phone - sipserver_password in BACKWARD_COMPATIBILITY_KEYS with SIP-Phone - password 2019-11-13 21:25:47,518 [TRACE] [doorpi.conf.config_object] get_string for key sipserver_password in section SIP-Phone (default: 1000) returns ******* 2019-11-13 21:25:47,519 [WARNING] [doorpi.conf.config_object] could not delete section SIP-Phone, because it's not empty. 2019-11-13 21:25:47,519 [WARNING] [doorpi.conf.config_object] found SIP-Phone - sipserver_realm in BACKWARD_COMPATIBILITY_KEYS with SIP-Phone - realm 2019-11-13 21:25:47,520 [TRACE] [doorpi.conf.config_object] get_string for key sipserver_realm in section SIP-Phone (default: 192.168.2.119) returns 192.168.2.119 2019-11-13 21:25:47,520 [INFO] [doorpi.sipphone.from_linphone] using DoorPi with SIP-Server 2019-11-13 21:25:47,521 [TRACE] [doorpi.conf.config_object] get_string for key identity in section SIP-Phone (default: DoorPi) returns DoorPi 2019-11-13 21:25:47,525 [TRACE] [doorpi.conf.config_object] get_sections returns ['EVENT_OnSipPhoneMakeCall', 'EVENT_OnStartup'] 2019-11-13 21:25:47,525 [INFO] [doorpi.doorpi] found EVENT_ section 'EVENT_OnSipPhoneMakeCall' in configfile 2019-11-13 21:25:47,526 [TRACE] [doorpi.conf.config_object] get_keys for section EVENT_OnSipPhoneMakeCall returns ['10'] 2019-11-13 21:25:47,526 [INFO] [doorpi.doorpi] registering action '10' for event 'OnSipPhoneMakeCall' 2019-11-13 21:25:47,527 [TRACE] [doorpi.conf.config_object] get_string for key 10 in section EVENT_OnSipPhoneMakeCall (default: ) returns out:Klingel,1,0,3 2019-11-13 21:25:47,530 [TRACE] [doorpi.action.handler] action OutTriggeredAction with args () and kwargs {'stop_pin': 'NoStopPinSet', 'end_value': '0', 'timeout': 3.0, 'pin': 'Klingel', 'start_value': '1'} was added to event OnSipPhoneMakeCall 2019-11-13 21:25:47,530 [INFO] [doorpi.doorpi] found EVENT_ section 'EVENT_OnStartup' in configfile 2019-11-13 21:25:47,531 [TRACE] [doorpi.conf.config_object] get_keys for section EVENT_OnStartup returns ['10'] 2019-11-13 21:25:47,531 [INFO] [doorpi.doorpi] registering action '10' for event 'OnStartup' 2019-11-13 21:25:47,532 [TRACE] [doorpi.conf.config_object] get_string for key 10 in section EVENT_OnStartup (default: ) returns sleep:1 2019-11-13 21:25:47,534 [TRACE] [doorpi.action.handler] action SleepAction with args (1.0,) and kwargs {} was added to new evententry OnStartup 2019-11-13 21:25:47,534 [TRACE] [doorpi.conf.config_object] get_string for key 0 in section onboardpins_InputPins (default: ) returns call:5000 2019-11-13 21:25:47,536 [TRACE] [doorpi.action.handler] action CallAction with args () and kwargs {'number': '5000'} was added to new evententry OnKeyPressed_onboardpins.0 2019-11-13 21:25:47,536 [TRACE] [doorpi.conf.config_object] get_keys for section DTMF returns ['\xe2\x80\x9e0\xe2\x80\x9c'] 2019-11-13 21:25:47,537 [TRACE] [doorpi.conf.config_object] get_string for key „0“ in section DTMF (default: ) returns out:Tueroeffner,1,0,3 2019-11-13 21:25:47,538 [TRACE] [doorpi.action.handler] action OutTriggeredAction with args () and kwargs {'stop_pin': 'NoStopPinSet', 'end_value': '0', 'timeout': 3.0, 'pin': 'Tueroeffner', 'start_value': '1'} was added to new evententry OnDTMF_„0“ 2019-11-13 21:25:47,539 [TRACE] [doorpi.conf.config_object] get_string for key is_alive_led in section DoorPi (default: ) returns 2019-11-13 21:25:47,539 [TRACE] [doorpi.action.handler] fire Event BeforeStartup from doorpi.doorpi asyncron Exception in thread BeforeStartup from doorpi.doorpi: Traceback (most recent call last): File "/usr/lib/python2.7/threading.py", line 810, in __bootstrap_inner self.run() File "/usr/lib/python2.7/threading.py", line 763, in run self.__target(*self.__args, **self.__kwargs) File "/usr/local/lib/python2.7/dist-packages/doorpi/action/handler.py", line 251, in fire_event_synchron if not silent: self.db.insert_event_log(event_fire_id, event_source, event_name, start_time, kwargs) File "/usr/local/lib/python2.7/dist-packages/doorpi/action/handler.py", line 135, in insert_event_log self.execute_sql(sql_statement) File "/usr/local/lib/python2.7/dist-packages/doorpi/action/handler.py", line 121, in execute_sql return self._db.execute(sql) OperationalError: attempt to write a readonly database 2019-11-13 21:25:47,541 [ERROR] [doorpi.main] Exception NameError: attempt to write a readonly database Traceback (most recent call last): File "/usr/local/lib/python2.7/dist-packages/doorpi/main.py", line 152, in main_as_application try: doorpi.DoorPi(parsed_arguments).run() File "/usr/local/lib/python2.7/dist-packages/doorpi/doorpi.py", line 235, in run self.event_handler.fire_event_synchron('OnStartup', __name__) File "/usr/local/lib/python2.7/dist-packages/doorpi/action/handler.py", line 251, in fire_event_synchron if not silent: self.db.insert_event_log(event_fire_id, event_source, event_name, start_time, kwargs) File "/usr/local/lib/python2.7/dist-packages/doorpi/action/handler.py", line 135, in insert_event_log self.execute_sql(sql_statement) File "/usr/local/lib/python2.7/dist-packages/doorpi/action/handler.py", line 121, in execute_sql return self._db.execute(sql) OperationalError: attempt to write a readonly database 2019-11-13 21:25:47,549 [TRACE] [doorpi.action.handler] fire Event BeforeShutdown from doorpi.doorpi asyncron Traceback (most recent call last): File "/usr/local/bin/doorpi_cli", line 11, in sys.exit(entry_point()) File "/usr/local/lib/python2.7/dist-packages/doorpi/main.py", line 169, in entry_point Exception in thread BeforeShutdown from doorpi.doorpi: Traceback (most recent call last): File "/usr/lib/python2.7/threading.py", line 810, in __bootstrap_inner self.run() File "/usr/lib/python2.7/threading.py", line 763, in run self.__target(*self.__args, **self.__kwargs) File "/usr/local/lib/python2.7/dist-packages/doorpi/action/handler.py", line 251, in fire_event_synchron if not silent: self.db.insert_event_log(event_fire_id, event_source, event_name, start_time, kwargs) File "/usr/local/lib/python2.7/dist-packages/doorpi/action/handler.py", line 135, in insert_event_log self.execute_sql(sql_statement) File "/usr/local/lib/python2.7/dist-packages/doorpi/action/handler.py", line 121, in execute_sql return self._db.execute(sql) OperationalError: attempt to write a readonly database raise SystemExit(main_as_application(sys.argv)) File "/usr/local/lib/python2.7/dist-packages/doorpi/main.py", line 155, in main_as_application finally: doorpi.DoorPi().destroy() File "/usr/local/lib/python2.7/dist-packages/doorpi/doorpi.py", line 205, in destroy self.event_handler.fire_event_synchron('OnShutdown', __name__) File "/usr/local/lib/python2.7/dist-packages/doorpi/action/handler.py", line 251, in fire_event_synchron if not silent: self.db.insert_event_log(event_fire_id, event_source, event_name, start_time, kwargs) File "/usr/local/lib/python2.7/dist-packages/doorpi/action/handler.py", line 135, in insert_event_log self.execute_sql(sql_statement) File "/usr/local/lib/python2.7/dist-packages/doorpi/action/handler.py", line 121, in execute_sql return self._db.execute(sql) sqlite3.OperationalError: attempt to write a readonly database