ilseh/Oppleo

Oppleo.py socketserver (code=exited

Closed this issue · 62 comments

Hi,

First of all, nice project!
I installed all the software on a Raspberry pi 3B+
Almost everything went well. pigpio.zip was not found but I fixed it by installing pigpio by hand:
sudo apt-get install pigpio

But when I run install.sh I got an error. How can I fix this?

(venv) pi@EVBox:~/Oppleo $ install/install.sh
Install script for the Oppleo service
v0.4 05-05-2020
Checking prereqs: is Pi GPIO Daemon (pigpiod) installed and running?
  found pigpiod, it is enabled
  done checking pigpiod prereq.
Installing the Oppleo systemd service...
 determining the location of the install script...
 install script in dir /home/pi/Oppleo/install...
 project root /home/pi/Oppleo...
 activate virtual environment...
 make sure pip is up to date...
 install psycopg2...
 set SSL library for C compiler...
 On a raspberry :)
 - installing raspberry dependencies incl mfrc522, RPi.GPIO, and spidev...
 - preparing service file Oppleo.service from template by updating path...
 - stopping Oppleo if running...
 - Update config/ installing Oppleo.service for systemd...
 - reloading daemon config...
 - starting Oppleo systemd daemon...
 - enabling daemon autostart...
● Oppleo.service - Oppleo Application
   Loaded: loaded (/etc/systemd/system/Oppleo.service; enabled; vendor preset: enabled)
   Active: activating (auto-restart) (Result: exit-code) since Fri 2020-06-19 11:57:49 CEST; 87ms ago
  Process: 2746 ExecStart=/home/pi/Oppleo/venv/bin/python3 /home/pi/Oppleo/src/nl/oppleo/webapp/Oppleo.py socketserver (code=exited, status=1/FAILURE)
 Main PID: 2746 (code=exited, status=1/FAILURE)
Done!
Syslog: Jun 19 11:49:20 EVBox systemd[1]: /etc/systemd/system/Oppleo.service:11: Invalid environment assignment, ignoring: /home/pi/Oppleo/src

Hi @PrutzerNL, the install.sh creates a file named Oppleo.service in the install directory and copies that to /etc/systemd/system/Oppleo.service which allows the systemctl to start/stop the daemon.

Try to start the daeomon directly using sudo systemctl start Oppleo.service and check the failure using sudo systemctl status Oppleo.service.
In the Oppleo.service file the ExecStart cmd is listed (ExecStart=/home/pi/Oppleo/venv/bin/python3 /home/pi/Oppleo/src/nl/oppleo/webapp/ Oppleo.py socketserver). You can try that on the cmd line with the Python virtual environment activated.
Finally the file /tmp/Oppleo.log contains python application logging, only if the application started to begin with.

I haven't tried the install description from scratch, maybe I forgot a step (sorry for that if it is the case).
Let me know if this helps.

Thanks for your reply. I tried the things you said.
(I did not install the stuf for the cardreader because I have no reader. Maybe that is the problem?)

Starting the Oppleo service:

pi@EVBox:~ $ sudo systemctl start Oppleo.service
pi@EVBox:~ $ sudo systemctl status Oppleo.service
● Oppleo.service - Oppleo Application
   Loaded: loaded (/etc/systemd/system/Oppleo.service; enabled; vendor preset: e
   Active: activating (auto-restart) (Result: exit-code) since Sat 2020-06-20 11
  Process: 943 ExecStart=/home/pi/Oppleo/venv/bin/python3 /home/pi/Oppleo/src/nl
 Main PID: 943 (code=exited, status=1/FAILURE)
lines 1-5/5 (END)

Try to start the daeomon directly:

(venv) pi@EVBox:~/Oppleo $ ExecStart=/home/pi/Oppleo/venv/bin/python3 /home/pi/Oppleo/src/nl/oppleo/webapp/Oppleo.py socketserver
-bash: /home/pi/Oppleo/src/nl/oppleo/webapp/Oppleo.py: Permission denied
(venv) pi@EVBox:~/Oppleo $ sudo ExecStart=/home/pi/Oppleo/venv/bin/python3 /home/pi/Oppleo/src/nl/oppleo/webapp/Oppleo.py socketserver
sudo: /home/pi/Oppleo/src/nl/oppleo/webapp/Oppleo.py: command not found
(venv) pi@EVBox:~/Oppleo $ cd /home/pi/Oppleo/src/nl/oppleo/webapp
(venv) pi@EVBox:~/Oppleo/src/nl/oppleo/webapp $ ls
AuthorizeForm.py  ChangePasswordForm.py  flaskRoutes.py  LoginForm.py  Oppleo.py  RfidChangeForm.py  static  templates  WebSocketQueueReaderBackgroundTask.py
(venv) pi@EVBox:~/Oppleo/src/nl/oppleo/webapp $ python3 Oppleo.py
Traceback (most recent call last):
  File "Oppleo.py", line 3, in <module>
    from nl.oppleo.config.OppleoSystemConfig import OppleoSystemConfig
ModuleNotFoundError: No module named 'nl'
(venv) pi@EVBox:~/Oppleo/src/nl/oppleo/webapp $

Log file:

There is no /tmp/Oppleo.log file:
(venv) pi@EVBox:~/Oppleo/src/nl/oppleo/webapp $ cd /tmp
(venv) pi@EVBox:/tmp $ ls
systemd-private-1816ae8d90ee47fd9300c486f5a86d3b-systemd-timesyncd.service-8h51wk
(venv) pi@EVBox:/tmp $

Other question:
On which pins did you connect the SmartEVSE switch pins and on which pins did you connect the KWH meter S0 pins? Did you use a relay to switch the evse on and off, or not?

If you start it manually just use python3 /home/pi/Oppleo/src/nl/oppleo/webapp/Oppleo.py socketserver in the venv. Leave the ExecStart= off.

If you set the env varable in the Oppleo/src/nl/oppleo/config/oppleo.ini file to Development(I think that could be any text not being 'Production') it does not load pi-specific libraries. I use this to develop the software on my laptop.

Maybe there is more information in /var/log/syslog as to what might be missing.

If you don't attach an rfid reader you'll need to put dummy cards in the database table rfid. I use the reader for first registration. Active/disable can also be done through the web interface.

In the doc/diagrams directory is a visio file with the pin layout. I use a modbus kWh meter, I was googling if that is the same but did not find an anwser. I use an usb RS485 reader with the raspberry.

I installed al the Rfid reader stuf and tried again :)

Starting it manually:

(venv) pi@EVBox:~/Oppleo/src/nl/oppleo/webapp $ python3 /home/pi/Oppleo/src/nl/oppleo/webapp/Oppleo.py socketserver
Traceback (most recent call last):
  File "/home/pi/Oppleo/src/nl/oppleo/webapp/Oppleo.py", line 3, in <module>
    from nl.oppleo.config.OppleoSystemConfig import OppleoSystemConfig
ModuleNotFoundError: No module named 'nl'

Syslog:

Jun 21 10:29:49 EVBox rsyslogd:  [origin software="rsyslogd" swVersion="8.1901.0" x-pid="325" x-info="https://www.rsyslog.com"] rsyslogd was HUPed
Jun 21 10:29:49 EVBox rsyslogd:  [origin software="rsyslogd" swVersion="8.1901.0" x-pid="325" x-info="https://www.rsyslog.com"] rsyslogd was HUPed
Jun 21 10:29:49 EVBox systemd[1]: logrotate.service: Succeeded.
Jun 21 10:29:49 EVBox systemd[1]: Started Rotate log files.
Jun 21 10:29:51 EVBox systemd[1]: man-db.service: Succeeded.
Jun 21 10:29:51 EVBox systemd[1]: Started Daily man-db regeneration.
Jun 21 10:29:51 EVBox systemd[1]: apt-daily.service: Succeeded.
Jun 21 10:29:51 EVBox systemd[1]: Started Daily apt download activities.
Jun 21 10:29:51 EVBox systemd[1]: Starting Daily apt upgrade and clean activities...
Jun 21 10:29:52 EVBox systemd[1]: Oppleo.service: Service RestartSec=5s expired, scheduling restart.
Jun 21 10:29:52 EVBox systemd[1]: Oppleo.service: Scheduled restart job, restart counter is at 4.
Jun 21 10:29:52 EVBox systemd[1]: Stopped Oppleo Application.
Jun 21 10:29:52 EVBox systemd[1]: Started Oppleo Application.
Jun 21 10:29:52 EVBox python3[677]: Traceback (most recent call last):
Jun 21 10:29:52 EVBox python3[677]:   File "/home/pi/Oppleo/src/nl/oppleo/webapp/Oppleo.py", line 3, in <module>
Jun 21 10:29:52 EVBox python3[677]:     from nl.oppleo.config.OppleoSystemConfig import OppleoSystemConfig
Jun 21 10:29:52 EVBox python3[677]:   File "/home/pi/Oppleo/src/nl/oppleo/config/OppleoSystemConfig.py", line 6, in <module>
Jun 21 10:29:52 EVBox python3[677]:     from werkzeug.security import generate_password_hash, check_password_hash
Jun 21 10:29:52 EVBox python3[677]: ModuleNotFoundError: No module named 'werkzeug'
Jun 21 10:29:52 EVBox systemd[1]: Oppleo.service: Main process exited, code=exited, status=1/FAILURE
Jun 21 10:29:52 EVBox systemd[1]: Oppleo.service: Failed with result 'exit-code'.
Jun 21 10:29:53 EVBox systemd[1]: apt-daily-upgrade.service: Succeeded.
Jun 21 10:29:53 EVBox systemd[1]: Started Daily apt upgrade and clean activities.
Jun 21 10:29:56 EVBox systemd[1]: systemd-hostnamed.service: Succeeded.
Jun 21 10:29:58 EVBox systemd[1]: Oppleo.service: Service RestartSec=5s expired, scheduling restart.
Jun 21 10:29:58 EVBox systemd[1]: Oppleo.service: Scheduled restart job, restart counter is at 5.
Jun 21 10:29:58 EVBox systemd[1]: Stopped Oppleo Application.
Jun 21 10:29:58 EVBox systemd[1]: Started Oppleo Application.
Jun 21 10:29:58 EVBox python3[709]: Traceback (most recent call last):
Jun 21 10:29:58 EVBox python3[709]:   File "/home/pi/Oppleo/src/nl/oppleo/webapp/Oppleo.py", line 3, in <module>
Jun 21 10:29:58 EVBox python3[709]:     from nl.oppleo.config.OppleoSystemConfig import OppleoSystemConfig
Jun 21 10:29:58 EVBox python3[709]:   File "/home/pi/Oppleo/src/nl/oppleo/config/OppleoSystemConfig.py", line 6, in <module>
Jun 21 10:29:58 EVBox python3[709]:     from werkzeug.security import generate_password_hash, check_password_hash
Jun 21 10:29:58 EVBox python3[709]: ModuleNotFoundError: No module named 'werkzeug'
Jun 21 10:29:58 EVBox systemd[1]: Oppleo.service: Main process exited, code=exited, status=1/FAILURE
Jun 21 10:29:58 EVBox systemd[1]: Oppleo.service: Failed with result 'exit-code'.
Jun 21 10:30:03 EVBox systemd[1]: Oppleo.service: Service RestartSec=5s expired, scheduling restart.
Jun 21 10:30:03 EVBox systemd[1]: Oppleo.service: Scheduled restart job, restart counter is at 6.
Jun 21 10:30:03 EVBox systemd[1]: Stopped Oppleo Application.
Jun 21 10:30:03 EVBox systemd[1]: Started Oppleo Application.
Jun 21 10:30:03 EVBox python3[713]: Traceback (most recent call last):
Jun 21 10:30:03 EVBox python3[713]:   File "/home/pi/Oppleo/src/nl/oppleo/webapp/Oppleo.py", line 3, in <module>
Jun 21 10:30:03 EVBox python3[713]:     from nl.oppleo.config.OppleoSystemConfig import OppleoSystemConfig
Jun 21 10:30:03 EVBox python3[713]:   File "/home/pi/Oppleo/src/nl/oppleo/config/OppleoSystemConfig.py", line 6, in <module>
Jun 21 10:30:03 EVBox python3[713]:     from werkzeug.security import generate_password_hash, check_password_hash

I will buy a reader. The S0 port on a KWH meter is a simple switch which goes 1000 times on / off in per KWH. I will buy a KWH with a modbus function.

The ModuleNotFoundError: No module named 'nl' when starting manually is a python path issue. The modules are all imported from the nl/ directory inside the src/ directory, so the src directory should be added to the python path. I haven't started Oppleo manually for a while, and after fixing the path issue (export PYTHONPATH=./src) I run into more issues including some permissions on the log file, so lets focus on starting the service for now.

The install.sh script has included this path, so this is not the issue. The issue running Oppleo as service is ModuleNotFoundError: No module named 'werkzeug'. Werkzeug is used to generate a random hash to identify the Oppleo instance, and do password hashing etc.
If you activate the venv (source venv/bin/activate) and run pip show werkzeug what does it show?
My output is
Name: Werkzeug Version: 0.16.0 Summary: The comprehensive WSGI web application library. Home-page: https://palletsprojects.com/p/werkzeug/ Author: Armin Ronacher Author-email: armin.ronacher@active-4.com License: BSD-3-Clause Location: /home/pi/Oppleo/venv/lib/python3.7/site-packages Requires: Required-by: Flask

I use an Eastrom SMD630 modbus, reads 3 phases power, current and kWh.

(venv) pi@EVBox:~ $ pip show werkzeug
Name: Werkzeug
Version: 0.16.0
Summary: The comprehensive WSGI web application library.
Home-page: https://palletsprojects.com/p/werkzeug/
Author: Armin Ronacher
Author-email: armin.ronacher@active-4.com
License: BSD-3-Clause
Location: /home/pi/venv/lib/python3.7/site-packages
Requires:
Required-by: Flask

I'm going to buy the Eastron SDM120-Modbus MID, 1 Fase kWh meter met Modbus. One phase is enough for my Hyundai Ioniq Electriq :)
https://webshop.cedel.nl/1-Fase-kWh-meter-met-Modbus

I did add the path:

(venv) pi@EVBox:~/Oppleo $ export PYTHONPATH=./src
(venv) pi@EVBox:~/Oppleo $ python3 /home/pi/Oppleo/src/nl/oppleo/webapp/Oppleo.py socketserver
2020-06-21 12:12:10,364 - nl.oppleo.config.OppleoSystemConfig - 717 MainProcess - 1996098256 MainThread - ERROR - Ini file ERROR: No SIGNATURE in Oppleo
System configuration loaded
Reporting sys.version 3.7.3 (default, Dec 20 2019, 18:57:59)
[GCC 8.3.0] :
2020-06-21 12:12:12,098 - nl.oppleo.models.Base init_db() - 717 MainProcess - 1996098256 MainThread - ERROR - COULD NOT CONNECT TO DATABASE!!! Exiting...
COULD NOT CONNECT TO DATABASE!!! Exiting...
2020-06-21 12:12:12,099 - nl.oppleo.webapp.Oppleo - 717 MainProcess - 1996098256 MainThread - ERROR - DbException stopped Oppleo!
2020-06-21 12:12:12,100 - nl.oppleo.webapp.Oppleo - 717 MainProcess - 1996098256 MainThread - ERROR - Running Oppleo in limp mode...
Traceback (most recent call last):
  File "/home/pi/venv/lib/python3.7/site-packages/sqlalchemy/engine/base.py", line 2276, in _wrap_pool_connect
    return fn()
  File "/home/pi/venv/lib/python3.7/site-packages/sqlalchemy/pool/base.py", line 363, in connect
    return _ConnectionFairy._checkout(self)
  File "/home/pi/venv/lib/python3.7/site-packages/sqlalchemy/pool/base.py", line 760, in _checkout
    fairy = _ConnectionRecord.checkout(pool)
  File "/home/pi/venv/lib/python3.7/site-packages/sqlalchemy/pool/base.py", line 492, in checkout
    rec = pool._do_get()
  File "/home/pi/venv/lib/python3.7/site-packages/sqlalchemy/pool/impl.py", line 139, in _do_get
    self._dec_overflow()
  File "/home/pi/venv/lib/python3.7/site-packages/sqlalchemy/util/langhelpers.py", line 68, in __exit__
    compat.reraise(exc_type, exc_value, exc_tb)
  File "/home/pi/venv/lib/python3.7/site-packages/sqlalchemy/util/compat.py", line 153, in reraise
    raise value
  File "/home/pi/venv/lib/python3.7/site-packages/sqlalchemy/pool/impl.py", line 136, in _do_get
    return self._create_connection()
  File "/home/pi/venv/lib/python3.7/site-packages/sqlalchemy/pool/base.py", line 308, in _create_connection
    return _ConnectionRecord(self)
  File "/home/pi/venv/lib/python3.7/site-packages/sqlalchemy/pool/base.py", line 437, in __init__
    self.__connect(first_connect_check=True)
  File "/home/pi/venv/lib/python3.7/site-packages/sqlalchemy/pool/base.py", line 639, in __connect
    connection = pool._invoke_creator(self)
  File "/home/pi/venv/lib/python3.7/site-packages/sqlalchemy/engine/strategies.py", line 114, in connect
    return dialect.connect(*cargs, **cparams)
  File "/home/pi/venv/lib/python3.7/site-packages/sqlalchemy/engine/default.py", line 482, in connect
    return self.dbapi.connect(*cargs, **cparams)
  File "/home/pi/venv/lib/python3.7/site-packages/psycopg2/__init__.py", line 126, in connect
    conn = _connect(dsn, connection_factory=connection_factory, **kwasync)
psycopg2.OperationalError: could not connect to server: Connection refused
        Is the server running on host "192.168.1.245" and accepting
        TCP/IP connections on port 5432?


The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "/home/pi/Oppleo/src/nl/oppleo/models/Base.py", line 47, in init_db
    Base.metadata.create_all(bind=engine)
  File "/home/pi/venv/lib/python3.7/site-packages/sqlalchemy/sql/schema.py", line 4316, in create_all
    ddl.SchemaGenerator, self, checkfirst=checkfirst, tables=tables
  File "/home/pi/venv/lib/python3.7/site-packages/sqlalchemy/engine/base.py", line 2048, in _run_visitor
    with self._optional_conn_ctx_manager(connection) as conn:
  File "/usr/lib/python3.7/contextlib.py", line 112, in __enter__
    return next(self.gen)
  File "/home/pi/venv/lib/python3.7/site-packages/sqlalchemy/engine/base.py", line 2040, in _optional_conn_ctx_manager
    with self._contextual_connect() as conn:
  File "/home/pi/venv/lib/python3.7/site-packages/sqlalchemy/engine/base.py", line 2242, in _contextual_connect
    self._wrap_pool_connect(self.pool.connect, None),
  File "/home/pi/venv/lib/python3.7/site-packages/sqlalchemy/engine/base.py", line 2280, in _wrap_pool_connect
    e, dialect, self
  File "/home/pi/venv/lib/python3.7/site-packages/sqlalchemy/engine/base.py", line 1547, in _handle_dbapi_exception_noconnection
    util.raise_from_cause(sqlalchemy_exception, exc_info)
  File "/home/pi/venv/lib/python3.7/site-packages/sqlalchemy/util/compat.py", line 398, in raise_from_cause
    reraise(type(exception), exception, tb=exc_tb, cause=cause)
  File "/home/pi/venv/lib/python3.7/site-packages/sqlalchemy/util/compat.py", line 152, in reraise
    raise value.with_traceback(tb)
  File "/home/pi/venv/lib/python3.7/site-packages/sqlalchemy/engine/base.py", line 2276, in _wrap_pool_connect
    return fn()
  File "/home/pi/venv/lib/python3.7/site-packages/sqlalchemy/pool/base.py", line 363, in connect
    return _ConnectionFairy._checkout(self)
  File "/home/pi/venv/lib/python3.7/site-packages/sqlalchemy/pool/base.py", line 760, in _checkout
    fairy = _ConnectionRecord.checkout(pool)
  File "/home/pi/venv/lib/python3.7/site-packages/sqlalchemy/pool/base.py", line 492, in checkout
    rec = pool._do_get()
  File "/home/pi/venv/lib/python3.7/site-packages/sqlalchemy/pool/impl.py", line 139, in _do_get
    self._dec_overflow()
  File "/home/pi/venv/lib/python3.7/site-packages/sqlalchemy/util/langhelpers.py", line 68, in __exit__
    compat.reraise(exc_type, exc_value, exc_tb)
  File "/home/pi/venv/lib/python3.7/site-packages/sqlalchemy/util/compat.py", line 153, in reraise
    raise value
  File "/home/pi/venv/lib/python3.7/site-packages/sqlalchemy/pool/impl.py", line 136, in _do_get
    return self._create_connection()
  File "/home/pi/venv/lib/python3.7/site-packages/sqlalchemy/pool/base.py", line 308, in _create_connection
    return _ConnectionRecord(self)
  File "/home/pi/venv/lib/python3.7/site-packages/sqlalchemy/pool/base.py", line 437, in __init__
    self.__connect(first_connect_check=True)
  File "/home/pi/venv/lib/python3.7/site-packages/sqlalchemy/pool/base.py", line 639, in __connect
    connection = pool._invoke_creator(self)
  File "/home/pi/venv/lib/python3.7/site-packages/sqlalchemy/engine/strategies.py", line 114, in connect
    return dialect.connect(*cargs, **cparams)
  File "/home/pi/venv/lib/python3.7/site-packages/sqlalchemy/engine/default.py", line 482, in connect
    return self.dbapi.connect(*cargs, **cparams)
  File "/home/pi/venv/lib/python3.7/site-packages/psycopg2/__init__.py", line 126, in connect
    conn = _connect(dsn, connection_factory=connection_factory, **kwasync)
sqlalchemy.exc.OperationalError: (psycopg2.OperationalError) could not connect to server: Connection refused
        Is the server running on host "192.168.1.245" and accepting
        TCP/IP connections on port 5432?

(Background on this error at: http://sqlalche.me/e/e3q8)

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/home/pi/Oppleo/src/nl/oppleo/webapp/Oppleo.py", line 20, in <module>
    from nl.oppleo.models.Base import Base
  File "/home/pi/Oppleo/src/nl/oppleo/models/Base.py", line 56, in <module>
    init_db()
  File "/home/pi/Oppleo/src/nl/oppleo/models/Base.py", line 52, in init_db
    raise DbException('Database connection failed')
nl.oppleo.exceptions.Exceptions.DbException: Database connection failed

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/home/pi/Oppleo/src/nl/oppleo/webapp/Oppleo.py", line 405, in <module>
    use_evalex=True
  File "/home/pi/venv/lib/python3.7/site-packages/werkzeug/serving.py", line 1010, in run_simple
    inner()
  File "/home/pi/venv/lib/python3.7/site-packages/werkzeug/serving.py", line 963, in inner
    fd=fd,
  File "/home/pi/venv/lib/python3.7/site-packages/werkzeug/serving.py", line 821, in make_server
    host, port, app, request_handler, passthrough_errors, ssl_context, fd=fd
  File "/home/pi/venv/lib/python3.7/site-packages/werkzeug/serving.py", line 699, in __init__
    HTTPServer.__init__(self, server_address, handler)
  File "/usr/lib/python3.7/socketserver.py", line 452, in __init__
    self.server_bind()
  File "/usr/lib/python3.7/http/server.py", line 137, in server_bind
    socketserver.TCPServer.server_bind(self)
  File "/usr/lib/python3.7/socketserver.py", line 466, in server_bind
    self.socket.bind(self.server_address)
PermissionError: [Errno 13] Permission denied

The database is onlne:
(venv) pi@EVBox:~/Oppleo $ psql evbox
psql (11.7 (Raspbian 11.7-0+deb10u1))
Type "help" for help.

evbox=>

We might need to make some code changes for the SDM120, as the sw currently reads 3 phases. Probably not too much work. Modbus registers for the 120
modbus registers for the SDM120

Can you try to reinstall werkzeug?
Other projects seem to have similar issues. Run pip3 uninstall Werkzeug followed by pip3 install Werkzeug==0.16.0.

(venv) pi@EVBox:/var/log/postgresql $ pip3 uninstall Werkzeug
Found existing installation: Werkzeug 0.16.0
Uninstalling Werkzeug-0.16.0:
  Would remove:
    /home/pi/venv/lib/python3.7/site-packages/Werkzeug-0.16.0.dist-info/*
    /home/pi/venv/lib/python3.7/site-packages/werkzeug/*
Proceed (y/n)? y
  Successfully uninstalled Werkzeug-0.16.0
(venv) pi@EVBox:/var/log/postgresql $ pip3 install Werkzeug==0.16.0
Looking in indexes: https://pypi.org/simple, https://www.piwheels.org/simple
Collecting Werkzeug==0.16.0
  Using cached Werkzeug-0.16.0-py2.py3-none-any.whl (327 kB)
Installing collected packages: Werkzeug
Successfully installed Werkzeug-0.16.0
(venv) pi@EVBox:/var/log/postgresql $ python3 /home/pi/Oppleo/src/nl/oppleo/webapp/Oppleo.py socketserver
Traceback (most recent call last):
  File "/home/pi/Oppleo/src/nl/oppleo/webapp/Oppleo.py", line 3, in <module>
    from nl.oppleo.config.OppleoSystemConfig import OppleoSystemConfig
ModuleNotFoundError: No module named 'nl'
(venv) pi@EVBox:/var/log/postgresql $ pip show werkzeug
Name: Werkzeug
Version: 0.16.0
Summary: The comprehensive WSGI web application library.
Home-page: https://palletsprojects.com/p/werkzeug/
Author: Armin Ronacher
Author-email: armin.ronacher@active-4.com
License: BSD-3-Clause
Location: /home/pi/venv/lib/python3.7/site-packages
Requires:
Required-by: Flask
(venv) pi@EVBox:/var/log/postgresql $

SYslog:

Jun 21 12:43:11 EVBox python3[1310]: Traceback (most recent call last):
Jun 21 12:43:11 EVBox python3[1310]:   File "/home/pi/Oppleo/src/nl/oppleo/webapp/Oppleo.py", line 3, in <module>
Jun 21 12:43:11 EVBox python3[1310]:     from nl.oppleo.config.OppleoSystemConfig import OppleoSystemConfig
Jun 21 12:43:11 EVBox python3[1310]:   File "/home/pi/Oppleo/src/nl/oppleo/config/OppleoSystemConfig.py", line 6, in <module>
Jun 21 12:43:11 EVBox python3[1310]:     from werkzeug.security import generate_password_hash, check_password_hash
Jun 21 12:43:11 EVBox python3[1310]: ModuleNotFoundError: No module named 'werkzeug'
Jun 21 12:43:11 EVBox systemd[1]: Oppleo.service: Main process exited, code=exited, status=1/FAILURE
Jun 21 12:43:11 EVBox systemd[1]: Oppleo.service: Failed with result 'exit-code'.
Jun 21 12:43:16 EVBox systemd[1]: Oppleo.service: Service RestartSec=5s expired, scheduling restart.
Jun 21 12:43:16 EVBox systemd[1]: Oppleo.service: Scheduled restart job, restart counter is at 403.
Jun 21 12:43:16 EVBox systemd[1]: Stopped Oppleo Application.
Jun 21 12:43:16 EVBox systemd[1]: Started Oppleo Application.
Jun 21 12:43:16 EVBox python3[1311]: Traceback (most recent call last):
Jun 21 12:43:16 EVBox python3[1311]:   File "/home/pi/Oppleo/src/nl/oppleo/webapp/Oppleo.py", line 3, in <module>
Jun 21 12:43:16 EVBox python3[1311]:     from nl.oppleo.config.OppleoSystemConfig import OppleoSystemConfig
Jun 21 12:43:16 EVBox python3[1311]:   File "/home/pi/Oppleo/src/nl/oppleo/config/OppleoSystemConfig.py", line 6, in <module>
Jun 21 12:43:16 EVBox python3[1311]:     from werkzeug.security import generate_password_hash, check_password_hash
Jun 21 12:43:16 EVBox python3[1311]: ModuleNotFoundError: No module named 'werkzeug'
Jun 21 12:43:16 EVBox systemd[1]: Oppleo.service: Main process exited, code=exited, status=1/FAILURE
Jun 21 12:43:16 EVBox systemd[1]: Oppleo.service: Failed with result 'exit-code'.
Jun 21 12:43:22 EVBox systemd[1]: Oppleo.service: Service RestartSec=5s expired, scheduling restart.
Jun 21 12:43:22 EVBox systemd[1]: Oppleo.service: Scheduled restart job, restart counter is at 404.
Jun 21 12:43:22 EVBox systemd[1]: Stopped Oppleo Application.
Jun 21 12:43:22 EVBox systemd[1]: Started Oppleo Application.
Jun 21 12:43:22 EVBox python3[1312]: Traceback (most recent call last):
Jun 21 12:43:22 EVBox python3[1312]:   File "/home/pi/Oppleo/src/nl/oppleo/webapp/Oppleo.py", line 3, in <module>
Jun 21 12:43:22 EVBox python3[1312]:     from nl.oppleo.config.OppleoSystemConfig import OppleoSystemConfig
Jun 21 12:43:22 EVBox python3[1312]:   File "/home/pi/Oppleo/src/nl/oppleo/config/OppleoSystemConfig.py", line 6, in <module>
Jun 21 12:43:22 EVBox python3[1312]:     from werkzeug.security import generate_password_hash, check_password_hash
Jun 21 12:43:22 EVBox python3[1312]: ModuleNotFoundError: No module named 'werkzeug'
Jun 21 12:43:22 EVBox systemd[1]: Oppleo.service: Main process exited, code=exited, status=1/FAILURE
Jun 21 12:43:22 EVBox systemd[1]: Oppleo.service: Failed with result 'exit-code'.
Jun 21 12:43:27 EVBox systemd[1]: Oppleo.service: Service RestartSec=5s expired, scheduling restart.
Jun 21 12:43:27 EVBox systemd[1]: Oppleo.service: Scheduled restart job, restart counter is at 405.
Jun 21 12:43:27 EVBox systemd[1]: Stopped Oppleo Application.
Jun 21 12:43:27 EVBox systemd[1]: Started Oppleo Application.
Jun 21 12:43:27 EVBox python3[1314]: Traceback (most recent call last):
Jun 21 12:43:27 EVBox python3[1314]:   File "/home/pi/Oppleo/src/nl/oppleo/webapp/Oppleo.py", line 3, in <module>
Jun 21 12:43:27 EVBox python3[1314]:     from nl.oppleo.config.OppleoSystemConfig import OppleoSystemConfig
Jun 21 12:43:27 EVBox python3[1314]:   File "/home/pi/Oppleo/src/nl/oppleo/config/OppleoSystemConfig.py", line 6, in <module>
Jun 21 12:43:27 EVBox python3[1314]:     from werkzeug.security import generate_password_hash, check_password_hash
Jun 21 12:43:27 EVBox python3[1314]: ModuleNotFoundError: No module named 'werkzeug'
Jun 21 12:43:27 EVBox systemd[1]: Oppleo.service: Main process exited, code=exited, status=1/FAILURE
Jun 21 12:43:27 EVBox systemd[1]: Oppleo.service: Failed with result 'exit-code'.
Jun 21 12:43:32 EVBox systemd[1]: Oppleo.service: Service RestartSec=5s expired, scheduling restart.
Jun 21 12:43:32 EVBox systemd[1]: Oppleo.service: Scheduled restart job, restart counter is at 406.
Jun 21 12:43:32 EVBox systemd[1]: Stopped Oppleo Application.
Jun 21 12:43:32 EVBox systemd[1]: Started Oppleo Application.
Jun 21 12:43:33 EVBox python3[1315]: Traceback (most recent call last):
Jun 21 12:43:33 EVBox python3[1315]:   File "/home/pi/Oppleo/src/nl/oppleo/webapp/Oppleo.py", line 3, in <module>
Jun 21 12:43:33 EVBox python3[1315]:     from nl.oppleo.config.OppleoSystemConfig import OppleoSystemConfig
Jun 21 12:43:33 EVBox python3[1315]:   File "/home/pi/Oppleo/src/nl/oppleo/config/OppleoSystemConfig.py", line 6, in <module>
Jun 21 12:43:33 EVBox python3[1315]:     from werkzeug.security import generate_password_hash, check_password_hash
Jun 21 12:43:33 EVBox python3[1315]: ModuleNotFoundError: No module named 'werkzeug'
Jun 21 12:43:33 EVBox systemd[1]: Oppleo.service: Main process exited, code=exited, status=1/FAILURE
Jun 21 12:43:33 EVBox systemd[1]: Oppleo.service: Failed with result 'exit-code'.
Jun 21 12:43:38 EVBox systemd[1]: Oppleo.service: Service RestartSec=5s expired, scheduling restart.
Jun 21 12:43:38 EVBox systemd[1]: Oppleo.service: Scheduled restart job, restart counter is at 407.
Jun 21 12:43:38 EVBox systemd[1]: Stopped Oppleo Application.
Jun 21 12:43:38 EVBox systemd[1]: Started Oppleo Application.
Jun 21 12:43:38 EVBox python3[1316]: Traceback (most recent call last):
Jun 21 12:43:38 EVBox python3[1316]:   File "/home/pi/Oppleo/src/nl/oppleo/webapp/Oppleo.py", line 3, in <module>
Jun 21 12:43:38 EVBox python3[1316]:     from nl.oppleo.config.OppleoSystemConfig import OppleoSystemConfig
Jun 21 12:43:38 EVBox python3[1316]:   File "/home/pi/Oppleo/src/nl/oppleo/config/OppleoSystemConfig.py", line 6, in <module>
Jun 21 12:43:38 EVBox python3[1316]:     from werkzeug.security import generate_password_hash, check_password_hash
Jun 21 12:43:38 EVBox python3[1316]: ModuleNotFoundError: No module named 'werkzeug'
Jun 21 12:43:38 EVBox systemd[1]: Oppleo.service: Main process exited, code=exited, status=1/FAILURE
Jun 21 12:43:38 EVBox systemd[1]: Oppleo.service: Failed with result 'exit-code'.
Jun 21 12:43:43 EVBox systemd[1]: Oppleo.service: Service RestartSec=5s expired, scheduling restart.
Jun 21 12:43:43 EVBox systemd[1]: Oppleo.service: Scheduled restart job, restart counter is at 408.
Jun 21 12:43:43 EVBox systemd[1]: Stopped Oppleo Application.
Jun 21 12:43:43 EVBox systemd[1]: Started Oppleo Application.
Jun 21 12:43:43 EVBox python3[1317]: Traceback (most recent call last):
Jun 21 12:43:43 EVBox python3[1317]:   File "/home/pi/Oppleo/src/nl/oppleo/webapp/Oppleo.py", line 3, in <module>
Jun 21 12:43:43 EVBox python3[1317]:     from nl.oppleo.config.OppleoSystemConfig import OppleoSystemConfig
Jun 21 12:43:43 EVBox python3[1317]:   File "/home/pi/Oppleo/src/nl/oppleo/config/OppleoSystemConfig.py", line 6, in <module>
Jun 21 12:43:43 EVBox python3[1317]:     from werkzeug.security import generate_password_hash, check_password_hash
Jun 21 12:43:43 EVBox python3[1317]: ModuleNotFoundError: No module named 'werkzeug'
Jun 21 12:43:43 EVBox systemd[1]: Oppleo.service: Main process exited, code=exited, status=1/FAILURE
Jun 21 12:43:43 EVBox systemd[1]: Oppleo.service: Failed with result 'exit-code'.
Jun 21 12:43:49 EVBox systemd[1]: Oppleo.service: Service RestartSec=5s expired, scheduling restart.
Jun 21 12:43:49 EVBox systemd[1]: Oppleo.service: Scheduled restart job, restart counter is at 409.
Jun 21 12:43:49 EVBox systemd[1]: Stopped Oppleo Application.
Jun 21 12:43:49 EVBox systemd[1]: Started Oppleo Application.
Jun 21 12:43:49 EVBox python3[1318]: Traceback (most recent call last):
Jun 21 12:43:49 EVBox python3[1318]:   File "/home/pi/Oppleo/src/nl/oppleo/webapp/Oppleo.py", line 3, in <module>
Jun 21 12:43:49 EVBox python3[1318]:     from nl.oppleo.config.OppleoSystemConfig import OppleoSystemConfig
Jun 21 12:43:49 EVBox python3[1318]:   File "/home/pi/Oppleo/src/nl/oppleo/config/OppleoSystemConfig.py", line 6, in <module>
Jun 21 12:43:49 EVBox python3[1318]:     from werkzeug.security import generate_password_hash, check_password_hash
Jun 21 12:43:49 EVBox python3[1318]: ModuleNotFoundError: No module named 'werkzeug'
Jun 21 12:43:49 EVBox systemd[1]: Oppleo.service: Main process exited, code=exited, status=1/FAILURE
Jun 21 12:43:49 EVBox systemd[1]: Oppleo.service: Failed with result 'exit-code'.
Jun 21 12:43:54 EVBox systemd[1]: Oppleo.service: Service RestartSec=5s expired, scheduling restart.
Jun 21 12:43:54 EVBox systemd[1]: Oppleo.service: Scheduled restart job, restart counter is at 410.
Jun 21 12:43:54 EVBox systemd[1]: Stopped Oppleo Application.
Jun 21 12:43:54 EVBox systemd[1]: Started Oppleo Application.
Jun 21 12:43:54 EVBox python3[1320]: Traceback (most recent call last):
Jun 21 12:43:54 EVBox python3[1320]:   File "/home/pi/Oppleo/src/nl/oppleo/webapp/Oppleo.py", line 3, in <module>
Jun 21 12:43:54 EVBox python3[1320]:     from nl.oppleo.config.OppleoSystemConfig import OppleoSystemConfig
Jun 21 12:43:54 EVBox python3[1320]:   File "/home/pi/Oppleo/src/nl/oppleo/config/OppleoSystemConfig.py", line 6, in <module>
Jun 21 12:43:54 EVBox python3[1320]:     from werkzeug.security import generate_password_hash, check_password_hash
Jun 21 12:43:54 EVBox python3[1320]: ModuleNotFoundError: No module named 'werkzeug'
Jun 21 12:43:54 EVBox systemd[1]: Oppleo.service: Main process exited, code=exited, status=1/FAILURE
Jun 21 12:43:54 EVBox systemd[1]: Oppleo.service: Failed with result 'exit-code'.
Jun 21 12:43:59 EVBox systemd[1]: Oppleo.service: Service RestartSec=5s expired, scheduling restart.
Jun 21 12:43:59 EVBox systemd[1]: Oppleo.service: Scheduled restart job, restart counter is at 411.
Jun 21 12:43:59 EVBox systemd[1]: Stopped Oppleo Application.
Jun 21 12:43:59 EVBox systemd[1]: Started Oppleo Application.
Jun 21 12:44:00 EVBox python3[1322]: Traceback (most recent call last):
Jun 21 12:44:00 EVBox python3[1322]:   File "/home/pi/Oppleo/src/nl/oppleo/webapp/Oppleo.py", line 3, in <module>
Jun 21 12:44:00 EVBox python3[1322]:     from nl.oppleo.config.OppleoSystemConfig import OppleoSystemConfig
Jun 21 12:44:00 EVBox python3[1322]:   File "/home/pi/Oppleo/src/nl/oppleo/config/OppleoSystemConfig.py", line 6, in <module>
Jun 21 12:44:00 EVBox python3[1322]:     from werkzeug.security import generate_password_hash, check_password_hash
Jun 21 12:44:00 EVBox python3[1322]: ModuleNotFoundError: No module named 'werkzeug'
Jun 21 12:44:00 EVBox systemd[1]: Oppleo.service: Main process exited, code=exited, status=1/FAILURE
Jun 21 12:44:00 EVBox systemd[1]: Oppleo.service: Failed with result 'exit-code'.
Jun 21 12:44:05 EVBox systemd[1]: Oppleo.service: Service RestartSec=5s expired, scheduling restart.
Jun 21 12:44:05 EVBox systemd[1]: Oppleo.service: Scheduled restart job, restart counter is at 412.
Jun 21 12:44:05 EVBox systemd[1]: Stopped Oppleo Application.
Jun 21 12:44:05 EVBox systemd[1]: Started Oppleo Application.
Jun 21 12:44:05 EVBox python3[1323]: Traceback (most recent call last):
Jun 21 12:44:05 EVBox python3[1323]:   File "/home/pi/Oppleo/src/nl/oppleo/webapp/Oppleo.py", line 3, in <module>
Jun 21 12:44:05 EVBox python3[1323]:     from nl.oppleo.config.OppleoSystemConfig import OppleoSystemConfig
Jun 21 12:44:05 EVBox python3[1323]:   File "/home/pi/Oppleo/src/nl/oppleo/config/OppleoSystemConfig.py", line 6, in <module>
Jun 21 12:44:05 EVBox python3[1323]:     from werkzeug.security import generate_password_hash, check_password_hash
Jun 21 12:44:05 EVBox python3[1323]: ModuleNotFoundError: No module named 'werkzeug'
Jun 21 12:44:05 EVBox systemd[1]: Oppleo.service: Main process exited, code=exited, status=1/FAILURE
Jun 21 12:44:05 EVBox systemd[1]: Oppleo.service: Failed with result 'exit-code'.
Jun 21 12:44:10 EVBox systemd[1]: Oppleo.service: Service RestartSec=5s expired, scheduling restart.
Jun 21 12:44:10 EVBox systemd[1]: Oppleo.service: Scheduled restart job, restart counter is at 413.
Jun 21 12:44:10 EVBox systemd[1]: Stopped Oppleo Application.
Jun 21 12:44:10 EVBox systemd[1]: Started Oppleo Application.
Jun 21 12:44:10 EVBox python3[1325]: Traceback (most recent call last):
Jun 21 12:44:10 EVBox python3[1325]:   File "/home/pi/Oppleo/src/nl/oppleo/webapp/Oppleo.py", line 3, in <module>
Jun 21 12:44:10 EVBox python3[1325]:     from nl.oppleo.config.OppleoSystemConfig import OppleoSystemConfig
Jun 21 12:44:10 EVBox python3[1325]:   File "/home/pi/Oppleo/src/nl/oppleo/config/OppleoSystemConfig.py", line 6, in <module>
Jun 21 12:44:10 EVBox python3[1325]:     from werkzeug.security import generate_password_hash, check_password_hash
Jun 21 12:44:10 EVBox python3[1325]: ModuleNotFoundError: No module named 'werkzeug'
Jun 21 12:44:10 EVBox systemd[1]: Oppleo.service: Main process exited, code=exited, status=1/FAILURE
Jun 21 12:44:10 EVBox systemd[1]: Oppleo.service: Failed with result 'exit-code'.
Jun 21 12:44:16 EVBox systemd[1]: Oppleo.service: Service RestartSec=5s expired, scheduling restart.
Jun 21 12:44:16 EVBox systemd[1]: Oppleo.service: Scheduled restart job, restart counter is at 414.
Jun 21 12:44:16 EVBox systemd[1]: Stopped Oppleo Application.
Jun 21 12:44:16 EVBox systemd[1]: Started Oppleo Application.
Jun 21 12:44:16 EVBox python3[1328]: Traceback (most recent call last):
Jun 21 12:44:16 EVBox python3[1328]:   File "/home/pi/Oppleo/src/nl/oppleo/webapp/Oppleo.py", line 3, in <module>
Jun 21 12:44:16 EVBox python3[1328]:     from nl.oppleo.config.OppleoSystemConfig import OppleoSystemConfig
Jun 21 12:44:16 EVBox python3[1328]:   File "/home/pi/Oppleo/src/nl/oppleo/config/OppleoSystemConfig.py", line 6, in <module>
Jun 21 12:44:16 EVBox python3[1328]:     from werkzeug.security import generate_password_hash, check_password_hash
Jun 21 12:44:16 EVBox python3[1328]: ModuleNotFoundError: No module named 'werkzeug'
Jun 21 12:44:16 EVBox systemd[1]: Oppleo.service: Main process exited, code=exited, status=1/FAILURE
Jun 21 12:44:16 EVBox systemd[1]: Oppleo.service: Failed with result 'exit-code'.
Jun 21 12:44:18 EVBox systemd[1]: Started Session c2 of user pi.
Jun 21 12:44:21 EVBox systemd[1]: Oppleo.service: Service RestartSec=5s expired, scheduling restart.
Jun 21 12:44:21 EVBox systemd[1]: Oppleo.service: Scheduled restart job, restart counter is at 415.
Jun 21 12:44:21 EVBox systemd[1]: Stopped Oppleo Application.
Jun 21 12:44:21 EVBox systemd[1]: Started Oppleo Application.
Jun 21 12:44:21 EVBox python3[1341]: Traceback (most recent call last):
Jun 21 12:44:21 EVBox python3[1341]:   File "/home/pi/Oppleo/src/nl/oppleo/webapp/Oppleo.py", line 3, in <module>
Jun 21 12:44:21 EVBox python3[1341]:     from nl.oppleo.config.OppleoSystemConfig import OppleoSystemConfig
Jun 21 12:44:21 EVBox python3[1341]:   File "/home/pi/Oppleo/src/nl/oppleo/config/OppleoSystemConfig.py", line 6, in <module>
Jun 21 12:44:21 EVBox python3[1341]:     from werkzeug.security import generate_password_hash, check_password_hash
Jun 21 12:44:21 EVBox python3[1341]: ModuleNotFoundError: No module named 'werkzeug'
Jun 21 12:44:21 EVBox systemd[1]: Oppleo.service: Main process exited, code=exited, status=1/FAILURE
Jun 21 12:44:21 EVBox systemd[1]: Oppleo.service: Failed with result 'exit-code'.
Jun 21 12:44:26 EVBox systemd[1]: Oppleo.service: Service RestartSec=5s expired, scheduling restart.
Jun 21 12:44:26 EVBox systemd[1]: Oppleo.service: Scheduled restart job, restart counter is at 416.
Jun 21 12:44:26 EVBox systemd[1]: Stopped Oppleo Application.
Jun 21 12:44:26 EVBox systemd[1]: Started Oppleo Application.
Jun 21 12:44:27 EVBox python3[1342]: Traceback (most recent call last):
Jun 21 12:44:27 EVBox python3[1342]:   File "/home/pi/Oppleo/src/nl/oppleo/webapp/Oppleo.py", line 3, in <module>
Jun 21 12:44:27 EVBox python3[1342]:     from nl.oppleo.config.OppleoSystemConfig import OppleoSystemConfig
Jun 21 12:44:27 EVBox python3[1342]:   File "/home/pi/Oppleo/src/nl/oppleo/config/OppleoSystemConfig.py", line 6, in <module>
Jun 21 12:44:27 EVBox python3[1342]:     from werkzeug.security import generate_password_hash, check_password_hash
Jun 21 12:44:27 EVBox python3[1342]: ModuleNotFoundError: No module named 'werkzeug'
Jun 21 12:44:27 EVBox systemd[1]: Oppleo.service: Main process exited, code=exited, status=1/FAILURE
Jun 21 12:44:27 EVBox systemd[1]: Oppleo.service: Failed with result 'exit-code'.
Jun 21 12:44:32 EVBox systemd[1]: Oppleo.service: Service RestartSec=5s expired, scheduling restart.
Jun 21 12:44:32 EVBox systemd[1]: Oppleo.service: Scheduled restart job, restart counter is at 417.
Jun 21 12:44:32 EVBox systemd[1]: Stopped Oppleo Application.
Jun 21 12:44:32 EVBox systemd[1]: Started Oppleo Application.
Jun 21 12:44:32 EVBox python3[1344]: Traceback (most recent call last):
Jun 21 12:44:32 EVBox python3[1344]:   File "/home/pi/Oppleo/src/nl/oppleo/webapp/Oppleo.py", line 3, in <module>
Jun 21 12:44:32 EVBox python3[1344]:     from nl.oppleo.config.OppleoSystemConfig import OppleoSystemConfig
Jun 21 12:44:32 EVBox python3[1344]:   File "/home/pi/Oppleo/src/nl/oppleo/config/OppleoSystemConfig.py", line 6, in <module>
Jun 21 12:44:32 EVBox python3[1344]:     from werkzeug.security import generate_password_hash, check_password_hash
Jun 21 12:44:32 EVBox python3[1344]: ModuleNotFoundError: No module named 'werkzeug'
Jun 21 12:44:32 EVBox systemd[1]: Oppleo.service: Main process exited, code=exited, status=1/FAILURE
Jun 21 12:44:32 EVBox systemd[1]: Oppleo.service: Failed with result 'exit-code'.

Try starting the service using sudo systemctl start Oppleo.service and checking the status through sudo systemctl start Oppleo.service, the syslog anf /tmp/Oppleo.log

Without venv:

pi@EVBox:~ $ sudo systemctl start Oppleo.service
pi@EVBox:~ $ sudo systemctl status Oppleo.service
● Oppleo.service - Oppleo Application
   Loaded: loaded (/etc/systemd/system/Oppleo.service; enabled; vendor preset: e
   Active: active (running) since Sun 2020-06-21 13:47:07 CEST; 193ms ago
 Main PID: 2378 (python3)
    Tasks: 1 (limit: 2200)
   Memory: 2.6M
   CGroup: /system.slice/Oppleo.service
           └─2378 /home/pi/Oppleo/venv/bin/python3 /home/pi/Oppleo/src/nl/oppleo

Jun 21 13:47:07 EVBox systemd[1]: Started Oppleo Application.

Syslog:

Jun 21 13:46:19 EVBox python3[2321]: ModuleNotFoundError: No module named 'werkzeug'
Jun 21 13:46:19 EVBox systemd[1]: Oppleo.service: Main process exited, code=exited, status=1/FAILURE
Jun 21 13:46:19 EVBox systemd[1]: Oppleo.service: Failed with result 'exit-code'.
Jun 21 13:46:24 EVBox systemd[1]: Oppleo.service: Service RestartSec=5s expired, scheduling restart.
Jun 21 13:46:24 EVBox systemd[1]: Oppleo.service: Scheduled restart job, restart counter is at 1102.
Jun 21 13:46:24 EVBox systemd[1]: Stopped Oppleo Application.
Jun 21 13:46:24 EVBox systemd[1]: Started Oppleo Application.
Jun 21 13:46:24 EVBox python3[2332]: Traceback (most recent call last):
Jun 21 13:46:24 EVBox python3[2332]:   File "/home/pi/Oppleo/src/nl/oppleo/webapp/Oppleo.py", line 3, in <module>
Jun 21 13:46:24 EVBox python3[2332]:     from nl.oppleo.config.OppleoSystemConfig import OppleoSystemConfig
Jun 21 13:46:24 EVBox python3[2332]:   File "/home/pi/Oppleo/src/nl/oppleo/config/OppleoSystemConfig.py", line 6, in <module>
Jun 21 13:46:24 EVBox python3[2332]:     from werkzeug.security import generate_password_hash, check_password_hash
Jun 21 13:46:24 EVBox python3[2332]: ModuleNotFoundError: No module named 'werkzeug'
Jun 21 13:46:24 EVBox systemd[1]: Oppleo.service: Main process exited, code=exited, status=1/FAILURE
Jun 21 13:46:24 EVBox systemd[1]: Oppleo.service: Failed with result 'exit-code'.
Jun 21 13:46:29 EVBox systemd[1]: Oppleo.service: Service RestartSec=5s expired, scheduling restart.
Jun 21 13:46:29 EVBox systemd[1]: Oppleo.service: Scheduled restart job, restart counter is at 1103.
Jun 21 13:46:29 EVBox systemd[1]: Stopped Oppleo Application.
Jun 21 13:46:29 EVBox systemd[1]: Started Oppleo Application.
Jun 21 13:46:29 EVBox python3[2334]: Traceback (most recent call last):
Jun 21 13:46:29 EVBox python3[2334]:   File "/home/pi/Oppleo/src/nl/oppleo/webapp/Oppleo.py", line 3, in <module>
Jun 21 13:46:29 EVBox python3[2334]:     from nl.oppleo.config.OppleoSystemConfig import OppleoSystemConfig
Jun 21 13:46:29 EVBox python3[2334]:   File "/home/pi/Oppleo/src/nl/oppleo/config/OppleoSystemConfig.py", line 6, in <module>
Jun 21 13:46:29 EVBox python3[2334]:     from werkzeug.security import generate_password_hash, check_password_hash
Jun 21 13:46:29 EVBox python3[2334]: ModuleNotFoundError: No module named 'werkzeug'
Jun 21 13:46:29 EVBox systemd[1]: Oppleo.service: Main process exited, code=exited, status=1/FAILURE
Jun 21 13:46:29 EVBox systemd[1]: Oppleo.service: Failed with result 'exit-code'.
Jun 21 13:46:35 EVBox systemd[1]: Oppleo.service: Service RestartSec=5s expired, scheduling restart.
Jun 21 13:46:35 EVBox systemd[1]: Oppleo.service: Scheduled restart job, restart counter is at 1104.
Jun 21 13:46:35 EVBox systemd[1]: Stopped Oppleo Application.
Jun 21 13:46:35 EVBox systemd[1]: Started Oppleo Application.
Jun 21 13:46:35 EVBox python3[2335]: Traceback (most recent call last):
Jun 21 13:46:35 EVBox python3[2335]:   File "/home/pi/Oppleo/src/nl/oppleo/webapp/Oppleo.py", line 3, in <module>
Jun 21 13:46:35 EVBox python3[2335]:     from nl.oppleo.config.OppleoSystemConfig import OppleoSystemConfig
Jun 21 13:46:35 EVBox python3[2335]:   File "/home/pi/Oppleo/src/nl/oppleo/config/OppleoSystemConfig.py", line 6, in <module>
Jun 21 13:46:35 EVBox python3[2335]:     from werkzeug.security import generate_password_hash, check_password_hash
Jun 21 13:46:35 EVBox python3[2335]: ModuleNotFoundError: No module named 'werkzeug'
Jun 21 13:46:35 EVBox systemd[1]: Oppleo.service: Main process exited, code=exited, status=1/FAILURE
Jun 21 13:46:35 EVBox systemd[1]: Oppleo.service: Failed with result 'exit-code'.
Jun 21 13:46:40 EVBox systemd[1]: Oppleo.service: Service RestartSec=5s expired, scheduling restart.
Jun 21 13:46:40 EVBox systemd[1]: Oppleo.service: Scheduled restart job, restart counter is at 1105.
Jun 21 13:46:40 EVBox systemd[1]: Stopped Oppleo Application.
Jun 21 13:46:40 EVBox systemd[1]: Started Oppleo Application.
Jun 21 13:46:40 EVBox python3[2336]: Traceback (most recent call last):
Jun 21 13:46:40 EVBox python3[2336]:   File "/home/pi/Oppleo/src/nl/oppleo/webapp/Oppleo.py", line 3, in <module>
Jun 21 13:46:40 EVBox python3[2336]:     from nl.oppleo.config.OppleoSystemConfig import OppleoSystemConfig
Jun 21 13:46:40 EVBox python3[2336]:   File "/home/pi/Oppleo/src/nl/oppleo/config/OppleoSystemConfig.py", line 6, in <module>
Jun 21 13:46:40 EVBox python3[2336]:     from werkzeug.security import generate_password_hash, check_password_hash
Jun 21 13:46:40 EVBox python3[2336]: ModuleNotFoundError: No module named 'werkzeug'
Jun 21 13:46:40 EVBox systemd[1]: Oppleo.service: Main process exited, code=exited, status=1/FAILURE
Jun 21 13:46:40 EVBox systemd[1]: Oppleo.service: Failed with result 'exit-code'.
Jun 21 13:46:45 EVBox systemd[1]: Oppleo.service: Service RestartSec=5s expired, scheduling restart.
Jun 21 13:46:45 EVBox systemd[1]: Oppleo.service: Scheduled restart job, restart counter is at 1106.
Jun 21 13:46:45 EVBox systemd[1]: Stopped Oppleo Application.
Jun 21 13:46:45 EVBox systemd[1]: Started Oppleo Application.
Jun 21 13:46:45 EVBox python3[2339]: Traceback (most recent call last):
Jun 21 13:46:45 EVBox python3[2339]:   File "/home/pi/Oppleo/src/nl/oppleo/webapp/Oppleo.py", line 3, in <module>
Jun 21 13:46:45 EVBox python3[2339]:     from nl.oppleo.config.OppleoSystemConfig import OppleoSystemConfig
Jun 21 13:46:45 EVBox python3[2339]:   File "/home/pi/Oppleo/src/nl/oppleo/config/OppleoSystemConfig.py", line 6, in <module>
Jun 21 13:46:45 EVBox python3[2339]:     from werkzeug.security import generate_password_hash, check_password_hash
Jun 21 13:46:45 EVBox python3[2339]: ModuleNotFoundError: No module named 'werkzeug'
Jun 21 13:46:46 EVBox systemd[1]: Oppleo.service: Main process exited, code=exited, status=1/FAILURE
Jun 21 13:46:46 EVBox systemd[1]: Oppleo.service: Failed with result 'exit-code'.
Jun 21 13:46:49 EVBox systemd[1]: Started Session c3 of user pi.
Jun 21 13:46:51 EVBox systemd[1]: Oppleo.service: Service RestartSec=5s expired, scheduling restart.
Jun 21 13:46:51 EVBox systemd[1]: Oppleo.service: Scheduled restart job, restart counter is at 1107.
Jun 21 13:46:51 EVBox systemd[1]: Stopped Oppleo Application.
Jun 21 13:46:51 EVBox systemd[1]: Started Oppleo Application.
Jun 21 13:46:51 EVBox python3[2363]: Traceback (most recent call last):
Jun 21 13:46:51 EVBox python3[2363]:   File "/home/pi/Oppleo/src/nl/oppleo/webapp/Oppleo.py", line 3, in <module>
Jun 21 13:46:51 EVBox python3[2363]:     from nl.oppleo.config.OppleoSystemConfig import OppleoSystemConfig
Jun 21 13:46:51 EVBox python3[2363]:   File "/home/pi/Oppleo/src/nl/oppleo/config/OppleoSystemConfig.py", line 6, in <module>
Jun 21 13:46:51 EVBox python3[2363]:     from werkzeug.security import generate_password_hash, check_password_hash
Jun 21 13:46:51 EVBox python3[2363]: ModuleNotFoundError: No module named 'werkzeug'
Jun 21 13:46:51 EVBox systemd[1]: Oppleo.service: Main process exited, code=exited, status=1/FAILURE
Jun 21 13:46:51 EVBox systemd[1]: Oppleo.service: Failed with result 'exit-code'.
Jun 21 13:46:56 EVBox systemd[1]: Oppleo.service: Service RestartSec=5s expired, scheduling restart.
Jun 21 13:46:56 EVBox systemd[1]: Oppleo.service: Scheduled restart job, restart counter is at 1108.
Jun 21 13:46:56 EVBox systemd[1]: Stopped Oppleo Application.
Jun 21 13:46:56 EVBox systemd[1]: Started Oppleo Application.
Jun 21 13:46:56 EVBox python3[2364]: Traceback (most recent call last):
Jun 21 13:46:56 EVBox python3[2364]:   File "/home/pi/Oppleo/src/nl/oppleo/webapp/Oppleo.py", line 3, in <module>
Jun 21 13:46:56 EVBox python3[2364]:     from nl.oppleo.config.OppleoSystemConfig import OppleoSystemConfig
Jun 21 13:46:56 EVBox python3[2364]:   File "/home/pi/Oppleo/src/nl/oppleo/config/OppleoSystemConfig.py", line 6, in <module>
Jun 21 13:46:56 EVBox python3[2364]:     from werkzeug.security import generate_password_hash, check_password_hash
Jun 21 13:46:56 EVBox python3[2364]: ModuleNotFoundError: No module named 'werkzeug'
Jun 21 13:46:56 EVBox systemd[1]: Oppleo.service: Main process exited, code=exited, status=1/FAILURE
Jun 21 13:46:56 EVBox systemd[1]: Oppleo.service: Failed with result 'exit-code'.
Jun 21 13:47:02 EVBox systemd[1]: Oppleo.service: Service RestartSec=5s expired, scheduling restart.
Jun 21 13:47:02 EVBox systemd[1]: Oppleo.service: Scheduled restart job, restart counter is at 1109.
Jun 21 13:47:02 EVBox systemd[1]: Stopped Oppleo Application.
Jun 21 13:47:02 EVBox systemd[1]: Started Oppleo Application.
Jun 21 13:47:02 EVBox python3[2373]: Traceback (most recent call last):
Jun 21 13:47:02 EVBox python3[2373]:   File "/home/pi/Oppleo/src/nl/oppleo/webapp/Oppleo.py", line 3, in <module>
Jun 21 13:47:02 EVBox python3[2373]:     from nl.oppleo.config.OppleoSystemConfig import OppleoSystemConfig
Jun 21 13:47:02 EVBox python3[2373]:   File "/home/pi/Oppleo/src/nl/oppleo/config/OppleoSystemConfig.py", line 6, in <module>
Jun 21 13:47:02 EVBox python3[2373]:     from werkzeug.security import generate_password_hash, check_password_hash
Jun 21 13:47:02 EVBox python3[2373]: ModuleNotFoundError: No module named 'werkzeug'
Jun 21 13:47:02 EVBox systemd[1]: Oppleo.service: Main process exited, code=exited, status=1/FAILURE
Jun 21 13:47:02 EVBox systemd[1]: Oppleo.service: Failed with result 'exit-code'.
Jun 21 13:47:07 EVBox systemd[1]: Oppleo.service: Service RestartSec=5s expired, scheduling restart.
Jun 21 13:47:07 EVBox systemd[1]: Oppleo.service: Scheduled restart job, restart counter is at 1110.
Jun 21 13:47:07 EVBox systemd[1]: Stopped Oppleo Application.
Jun 21 13:47:07 EVBox systemd[1]: Started Oppleo Application.
Jun 21 13:47:07 EVBox python3[2378]: Traceback (most recent call last):
Jun 21 13:47:07 EVBox python3[2378]:   File "/home/pi/Oppleo/src/nl/oppleo/webapp/Oppleo.py", line 3, in <module>
Jun 21 13:47:07 EVBox python3[2378]:     from nl.oppleo.config.OppleoSystemConfig import OppleoSystemConfig
Jun 21 13:47:07 EVBox python3[2378]:   File "/home/pi/Oppleo/src/nl/oppleo/config/OppleoSystemConfig.py", line 6, in <module>
Jun 21 13:47:07 EVBox python3[2378]:     from werkzeug.security import generate_password_hash, check_password_hash
Jun 21 13:47:07 EVBox python3[2378]: ModuleNotFoundError: No module named 'werkzeug'
Jun 21 13:47:07 EVBox systemd[1]: Oppleo.service: Main process exited, code=exited, status=1/FAILURE
Jun 21 13:47:07 EVBox systemd[1]: Oppleo.service: Failed with result 'exit-code'.
Jun 21 13:47:13 EVBox systemd[1]: Oppleo.service: Service RestartSec=5s expired, scheduling restart.
Jun 21 13:47:13 EVBox systemd[1]: Oppleo.service: Scheduled restart job, restart counter is at 1111.
Jun 21 13:47:13 EVBox systemd[1]: Stopped Oppleo Application.
Jun 21 13:47:13 EVBox systemd[1]: Started Oppleo Application.
Jun 21 13:47:13 EVBox python3[2386]: Traceback (most recent call last):
Jun 21 13:47:13 EVBox python3[2386]:   File "/home/pi/Oppleo/src/nl/oppleo/webapp/Oppleo.py", line 3, in <module>
Jun 21 13:47:13 EVBox python3[2386]:     from nl.oppleo.config.OppleoSystemConfig import OppleoSystemConfig
Jun 21 13:47:13 EVBox python3[2386]:   File "/home/pi/Oppleo/src/nl/oppleo/config/OppleoSystemConfig.py", line 6, in <module>
Jun 21 13:47:13 EVBox python3[2386]:     from werkzeug.security import generate_password_hash, check_password_hash
Jun 21 13:47:13 EVBox python3[2386]: ModuleNotFoundError: No module named 'werkzeug'
Jun 21 13:47:13 EVBox systemd[1]: Oppleo.service: Main process exited, code=exited, status=1/FAILURE
Jun 21 13:47:13 EVBox systemd[1]: Oppleo.service: Failed with result 'exit-code'.
Jun 21 13:47:18 EVBox systemd[1]: Oppleo.service: Service RestartSec=5s expired, scheduling restart.
Jun 21 13:47:18 EVBox systemd[1]: Oppleo.service: Scheduled restart job, restart counter is at 1112.
Jun 21 13:47:18 EVBox systemd[1]: Stopped Oppleo Application.
Jun 21 13:47:18 EVBox systemd[1]: Started Oppleo Application.
Jun 21 13:47:18 EVBox python3[2391]: Traceback (most recent call last):
Jun 21 13:47:18 EVBox python3[2391]:   File "/home/pi/Oppleo/src/nl/oppleo/webapp/Oppleo.py", line 3, in <module>
Jun 21 13:47:18 EVBox python3[2391]:     from nl.oppleo.config.OppleoSystemConfig import OppleoSystemConfig
Jun 21 13:47:18 EVBox python3[2391]:   File "/home/pi/Oppleo/src/nl/oppleo/config/OppleoSystemConfig.py", line 6, in <module>
Jun 21 13:47:18 EVBox python3[2391]:     from werkzeug.security import generate_password_hash, check_password_hash
Jun 21 13:47:18 EVBox python3[2391]: ModuleNotFoundError: No module named 'werkzeug'
Jun 21 13:47:18 EVBox systemd[1]: Oppleo.service: Main process exited, code=exited, status=1/FAILURE
Jun 21 13:47:18 EVBox systemd[1]: Oppleo.service: Failed with result 'exit-code'.
Jun 21 13:47:23 EVBox systemd[1]: Oppleo.service: Service RestartSec=5s expired, scheduling restart.
Jun 21 13:47:23 EVBox systemd[1]: Oppleo.service: Scheduled restart job, restart counter is at 1113.
Jun 21 13:47:23 EVBox systemd[1]: Stopped Oppleo Application.
Jun 21 13:47:23 EVBox systemd[1]: Started Oppleo Application.
Jun 21 13:47:23 EVBox python3[2392]: Traceback (most recent call last):
Jun 21 13:47:23 EVBox python3[2392]:   File "/home/pi/Oppleo/src/nl/oppleo/webapp/Oppleo.py", line 3, in <module>
Jun 21 13:47:23 EVBox python3[2392]:     from nl.oppleo.config.OppleoSystemConfig import OppleoSystemConfig
Jun 21 13:47:23 EVBox python3[2392]:   File "/home/pi/Oppleo/src/nl/oppleo/config/OppleoSystemConfig.py", line 6, in <module>
Jun 21 13:47:23 EVBox python3[2392]:     from werkzeug.security import generate_password_hash, check_password_hash
Jun 21 13:47:23 EVBox python3[2392]: ModuleNotFoundError: No module named 'werkzeug'
Jun 21 13:47:23 EVBox systemd[1]: Oppleo.service: Main process exited, code=exited, status=1/FAILURE
Jun 21 13:47:23 EVBox systemd[1]: Oppleo.service: Failed with result 'exit-code'.
Jun 21 13:47:29 EVBox systemd[1]: Oppleo.service: Service RestartSec=5s expired, scheduling restart.
Jun 21 13:47:29 EVBox systemd[1]: Oppleo.service: Scheduled restart job, restart counter is at 1114.
Jun 21 13:47:29 EVBox systemd[1]: Stopped Oppleo Application.
Jun 21 13:47:29 EVBox systemd[1]: Started Oppleo Application.
Jun 21 13:47:29 EVBox python3[2394]: Traceback (most recent call last):
Jun 21 13:47:29 EVBox python3[2394]:   File "/home/pi/Oppleo/src/nl/oppleo/webapp/Oppleo.py", line 3, in <module>
Jun 21 13:47:29 EVBox python3[2394]:     from nl.oppleo.config.OppleoSystemConfig import OppleoSystemConfig
Jun 21 13:47:29 EVBox python3[2394]:   File "/home/pi/Oppleo/src/nl/oppleo/config/OppleoSystemConfig.py", line 6, in <module>
Jun 21 13:47:29 EVBox python3[2394]:     from werkzeug.security import generate_password_hash, check_password_hash
Jun 21 13:47:29 EVBox python3[2394]: ModuleNotFoundError: No module named 'werkzeug'
Jun 21 13:47:29 EVBox systemd[1]: Oppleo.service: Main process exited, code=exited, status=1/FAILURE
Jun 21 13:47:29 EVBox systemd[1]: Oppleo.service: Failed with result 'exit-code'.
Jun 21 13:47:34 EVBox systemd[1]: Oppleo.service: Service RestartSec=5s expired, scheduling restart.
Jun 21 13:47:34 EVBox systemd[1]: Oppleo.service: Scheduled restart job, restart counter is at 1115.
Jun 21 13:47:34 EVBox systemd[1]: Stopped Oppleo Application.
Jun 21 13:47:34 EVBox systemd[1]: Started Oppleo Application.
Jun 21 13:47:34 EVBox python3[2395]: Traceback (most recent call last):
Jun 21 13:47:34 EVBox python3[2395]:   File "/home/pi/Oppleo/src/nl/oppleo/webapp/Oppleo.py", line 3, in <module>
Jun 21 13:47:34 EVBox python3[2395]:     from nl.oppleo.config.OppleoSystemConfig import OppleoSystemConfig
Jun 21 13:47:34 EVBox python3[2395]:   File "/home/pi/Oppleo/src/nl/oppleo/config/OppleoSystemConfig.py", line 6, in <module>
Jun 21 13:47:34 EVBox python3[2395]:     from werkzeug.security import generate_password_hash, check_password_hash
Jun 21 13:47:34 EVBox python3[2395]: ModuleNotFoundError: No module named 'werkzeug'
Jun 21 13:47:34 EVBox systemd[1]: Oppleo.service: Main process exited, code=exited, status=1/FAILURE
Jun 21 13:47:34 EVBox systemd[1]: Oppleo.service: Failed with result 'exit-code'.
Jun 21 13:47:40 EVBox systemd[1]: Oppleo.service: Service RestartSec=5s expired, scheduling restart.
Jun 21 13:47:40 EVBox systemd[1]: Oppleo.service: Scheduled restart job, restart counter is at 1116.
Jun 21 13:47:40 EVBox systemd[1]: Stopped Oppleo Application.
Jun 21 13:47:40 EVBox systemd[1]: Started Oppleo Application.
Jun 21 13:47:40 EVBox python3[2396]: Traceback (most recent call last):
Jun 21 13:47:40 EVBox python3[2396]:   File "/home/pi/Oppleo/src/nl/oppleo/webapp/Oppleo.py", line 3, in <module>
Jun 21 13:47:40 EVBox python3[2396]:     from nl.oppleo.config.OppleoSystemConfig import OppleoSystemConfig
Jun 21 13:47:40 EVBox python3[2396]:   File "/home/pi/Oppleo/src/nl/oppleo/config/OppleoSystemConfig.py", line 6, in <module>
Jun 21 13:47:40 EVBox python3[2396]:     from werkzeug.security import generate_password_hash, check_password_hash
Jun 21 13:47:40 EVBox python3[2396]: ModuleNotFoundError: No module named 'werkzeug'
Jun 21 13:47:40 EVBox systemd[1]: Oppleo.service: Main process exited, code=exited, status=1/FAILURE
Jun 21 13:47:40 EVBox systemd[1]: Oppleo.service: Failed with result 'exit-code'.
Jun 21 13:47:45 EVBox systemd[1]: Oppleo.service: Service RestartSec=5s expired, scheduling restart.
Jun 21 13:47:45 EVBox systemd[1]: Oppleo.service: Scheduled restart job, restart counter is at 1117.
Jun 21 13:47:45 EVBox systemd[1]: Stopped Oppleo Application.
Jun 21 13:47:45 EVBox systemd[1]: Started Oppleo Application.
Jun 21 13:47:45 EVBox python3[2397]: Traceback (most recent call last):
Jun 21 13:47:45 EVBox python3[2397]:   File "/home/pi/Oppleo/src/nl/oppleo/webapp/Oppleo.py", line 3, in <module>
Jun 21 13:47:45 EVBox python3[2397]:     from nl.oppleo.config.OppleoSystemConfig import OppleoSystemConfig
Jun 21 13:47:45 EVBox python3[2397]:   File "/home/pi/Oppleo/src/nl/oppleo/config/OppleoSystemConfig.py", line 6, in <module>
Jun 21 13:47:45 EVBox python3[2397]:     from werkzeug.security import generate_password_hash, check_password_hash
Jun 21 13:47:45 EVBox python3[2397]: ModuleNotFoundError: No module named 'werkzeug'
Jun 21 13:47:45 EVBox systemd[1]: Oppleo.service: Main process exited, code=exited, status=1/FAILURE
Jun 21 13:47:45 EVBox systemd[1]: Oppleo.service: Failed with result 'exit-code'.
Jun 21 13:47:50 EVBox systemd[1]: Oppleo.service: Service RestartSec=5s expired, scheduling restart.
Jun 21 13:47:50 EVBox systemd[1]: Oppleo.service: Scheduled restart job, restart counter is at 1118.
Jun 21 13:47:50 EVBox systemd[1]: Stopped Oppleo Application.
Jun 21 13:47:50 EVBox systemd[1]: Started Oppleo Application.
Jun 21 13:47:51 EVBox python3[2398]: Traceback (most recent call last):
Jun 21 13:47:51 EVBox python3[2398]:   File "/home/pi/Oppleo/src/nl/oppleo/webapp/Oppleo.py", line 3, in <module>
Jun 21 13:47:51 EVBox python3[2398]:     from nl.oppleo.config.OppleoSystemConfig import OppleoSystemConfig
Jun 21 13:47:51 EVBox python3[2398]:   File "/home/pi/Oppleo/src/nl/oppleo/config/OppleoSystemConfig.py", line 6, in <module>
Jun 21 13:47:51 EVBox python3[2398]:     from werkzeug.security import generate_password_hash, check_password_hash
Jun 21 13:47:51 EVBox python3[2398]: ModuleNotFoundError: No module named 'werkzeug'
Jun 21 13:47:51 EVBox systemd[1]: Oppleo.service: Main process exited, code=exited, status=1/FAILURE
Jun 21 13:47:51 EVBox systemd[1]: Oppleo.service: Failed with result 'exit-code'.
Jun 21 13:47:56 EVBox systemd[1]: Oppleo.service: Service RestartSec=5s expired, scheduling restart.
Jun 21 13:47:56 EVBox systemd[1]: Oppleo.service: Scheduled restart job, restart counter is at 1119.
Jun 21 13:47:56 EVBox systemd[1]: Stopped Oppleo Application.
Jun 21 13:47:56 EVBox systemd[1]: Started Oppleo Application.
Jun 21 13:47:56 EVBox python3[2399]: Traceback (most recent call last):
Jun 21 13:47:56 EVBox python3[2399]:   File "/home/pi/Oppleo/src/nl/oppleo/webapp/Oppleo.py", line 3, in <module>
Jun 21 13:47:56 EVBox python3[2399]:     from nl.oppleo.config.OppleoSystemConfig import OppleoSystemConfig
Jun 21 13:47:56 EVBox python3[2399]:   File "/home/pi/Oppleo/src/nl/oppleo/config/OppleoSystemConfig.py", line 6, in <module>
Jun 21 13:47:56 EVBox python3[2399]:     from werkzeug.security import generate_password_hash, check_password_hash
Jun 21 13:47:56 EVBox python3[2399]: ModuleNotFoundError: No module named 'werkzeug'
Jun 21 13:47:56 EVBox systemd[1]: Oppleo.service: Main process exited, code=exited, status=1/FAILURE
Jun 21 13:47:56 EVBox systemd[1]: Oppleo.service: Failed with result 'exit-code'.
Jun 21 13:48:01 EVBox systemd[1]: Oppleo.service: Service RestartSec=5s expired, scheduling restart.
Jun 21 13:48:01 EVBox systemd[1]: Oppleo.service: Scheduled restart job, restart counter is at 1120.
Jun 21 13:48:01 EVBox systemd[1]: Stopped Oppleo Application.
Jun 21 13:48:01 EVBox systemd[1]: Started Oppleo Application.
Jun 21 13:48:01 EVBox python3[2401]: Traceback (most recent call last):
Jun 21 13:48:01 EVBox python3[2401]:   File "/home/pi/Oppleo/src/nl/oppleo/webapp/Oppleo.py", line 3, in <module>
Jun 21 13:48:01 EVBox python3[2401]:     from nl.oppleo.config.OppleoSystemConfig import OppleoSystemConfig
Jun 21 13:48:01 EVBox python3[2401]:   File "/home/pi/Oppleo/src/nl/oppleo/config/OppleoSystemConfig.py", line 6, in <module>
Jun 21 13:48:01 EVBox python3[2401]:     from werkzeug.security import generate_password_hash, check_password_hash
Jun 21 13:48:01 EVBox python3[2401]: ModuleNotFoundError: No module named 'werkzeug'
Jun 21 13:48:01 EVBox systemd[1]: Oppleo.service: Main process exited, code=exited, status=1/FAILURE
Jun 21 13:48:01 EVBox systemd[1]: Oppleo.service: Failed with result 'exit-code'.
Jun 21 13:48:07 EVBox systemd[1]: Oppleo.service: Service RestartSec=5s expired, scheduling restart.
Jun 21 13:48:07 EVBox systemd[1]: Oppleo.service: Scheduled restart job, restart counter is at 1121.
Jun 21 13:48:07 EVBox systemd[1]: Stopped Oppleo Application.
Jun 21 13:48:07 EVBox systemd[1]: Started Oppleo Application.
Jun 21 13:48:07 EVBox python3[2402]: Traceback (most recent call last):
Jun 21 13:48:07 EVBox python3[2402]:   File "/home/pi/Oppleo/src/nl/oppleo/webapp/Oppleo.py", line 3, in <module>
Jun 21 13:48:07 EVBox python3[2402]:     from nl.oppleo.config.OppleoSystemConfig import OppleoSystemConfig
Jun 21 13:48:07 EVBox python3[2402]:   File "/home/pi/Oppleo/src/nl/oppleo/config/OppleoSystemConfig.py", line 6, in <module>
Jun 21 13:48:07 EVBox python3[2402]:     from werkzeug.security import generate_password_hash, check_password_hash
Jun 21 13:48:07 EVBox python3[2402]: ModuleNotFoundError: No module named 'werkzeug'
Jun 21 13:48:07 EVBox systemd[1]: Oppleo.service: Main process exited, code=exited, status=1/FAILURE
Jun 21 13:48:07 EVBox systemd[1]: Oppleo.service: Failed with result 'exit-code'.

/tmp/Oppleo.log:

2020-06-21 12:12:10,360 - nl.oppleo.config.OppleoSystemConfig - 717 MainProcess - 1996098256 MainThread - DEBUG - Initializing Oppleo System...
2020-06-21 12:12:10,361 - nl.oppleo.config.OppleoSystemConfig - 717 MainProcess - 1996098256 MainThread - DEBUG - Looking for system configuration file /home/pi/Oppleo/src/nl/oppleo/config$
2020-06-21 12:12:10,364 - nl.oppleo.config.OppleoSystemConfig - 717 MainProcess - 1996098256 MainThread - ERROR - Ini file ERROR: No SIGNATURE in Oppleo
2020-06-21 12:12:10,365 - nl.oppleo.webapp.Oppleo - 717 MainProcess - 1996098256 MainThread - DEBUG - Initializing Oppleo...
2020-06-21 12:12:10,366 - nl.oppleo.webapp.Oppleo - 717 MainProcess - 1996098256 MainThread - DEBUG - sys.version 3.7.3 (default, Dec 20 2019, 18:57:59)
[GCC 8.3.0] :
2020-06-21 12:12:12,098 - nl.oppleo.models.Base init_db() - 717 MainProcess - 1996098256 MainThread - ERROR - COULD NOT CONNECT TO DATABASE!!! Exiting...
2020-06-21 12:12:12,099 - nl.oppleo.webapp.Oppleo - 717 MainProcess - 1996098256 MainThread - ERROR - DbException stopped Oppleo!
2020-06-21 12:12:12,100 - nl.oppleo.webapp.Oppleo - 717 MainProcess - 1996098256 MainThread - ERROR - Running Oppleo in limp mode...
2020-06-21 12:12:12,581 - nl.oppleo.services.PushMessageProwl - 717 MainProcess - 1996098256 MainThread - DEBUG - sendMessage()
2020-06-21 12:12:13,129 - nl.oppleo.services.PushMessageProwl - 717 MainProcess - 1996098256 MainThread - DEBUG - Result 200 - OK

In Venv:

pi@EVBox:~ $ nano /tmp/Oppleo.log
pi@EVBox:~ $ source venv/bin/activate
(venv) pi@EVBox:~ $ sudo systemctl start Oppleo.service
(venv) pi@EVBox:~ $ sudo systemctl status Oppleo.service
● Oppleo.service - Oppleo Application
   Loaded: loaded (/etc/systemd/system/Oppleo.service; enabled; vendor preset: enabled)
   Active: activating (auto-restart) (Result: exit-code) since Sun 2020-06-21 13:52:16 CEST; 4s ago
  Process: 2470 ExecStart=/home/pi/Oppleo/venv/bin/python3 /home/pi/Oppleo/src/nl/oppleo/webapp/Oppleo.py socketserver (code=exited, status=1/FAILURE)
 Main PID: 2470 (code=exited, status=1/FAILURE)
(venv) pi@EVBox:~ $

The log is repeating, as it is trying to start. There was a bug in spidev 3.4 which caused Oppleo to crash after 3 days so I added auto-retry. This bug was solved in spidev 3.5 which is in the requirements_raspberry.txy file now.

Did you complete the pip install -r requirements_raspberry.txt in venv without any errors?

Can you share the outcome of pip freeze in the venv?

Thanks for all you help and time! I appreciate it a lot!

pip install -r requirements_raspberry.txt was succesfully after removing the line pkg-resources==0.0.0 in the TXT file as you descriped.

Here I installed it again:

(venv) pi@EVBox:~ $ cd Oppleo/
(venv) pi@EVBox:~/Oppleo $ ls
db                  install    requirements_non_raspberry.txt  snapshot  test
doc                 kill.sh    requirements_raspberry.txt      src       tools
docker-compose.yml  README.md  requirements.txt                start.sh  venv
(venv) pi@EVBox:~/Oppleo $ pip install -r requirements_raspberry.txt
Looking in indexes: https://pypi.org/simple, https://www.piwheels.org/simple
Requirement already satisfied: alembic==1.3.1 in /home/pi/venv/lib/python3.7/sit                                                                                                             e-packages (from -r requirements_raspberry.txt (line 1)) (1.3.1)
Requirement already satisfied: APScheduler==3.6.3 in /home/pi/venv/lib/python3.7                                                                                                             /site-packages (from -r requirements_raspberry.txt (line 2)) (3.6.3)
Requirement already satisfied: astroid==2.3.3 in /home/pi/venv/lib/python3.7/sit                                                                                                             e-packages (from -r requirements_raspberry.txt (line 3)) (2.3.3)
Requirement already satisfied: bcrypt==3.1.7 in /home/pi/venv/lib/python3.7/site                                                                                                             -packages (from -r requirements_raspberry.txt (line 4)) (3.1.7)
Requirement already satisfied: blinker==1.4 in /home/pi/venv/lib/python3.7/site-                                                                                                             packages (from -r requirements_raspberry.txt (line 5)) (1.4)
Requirement already satisfied: certifi==2019.11.28 in /home/pi/venv/lib/python3.                                                                                                             7/site-packages (from -r requirements_raspberry.txt (line 6)) (2019.11.28)
Requirement already satisfied: cffi==1.13.2 in /home/pi/venv/lib/python3.7/site-                                                                                                             packages (from -r requirements_raspberry.txt (line 7)) (1.13.2)
Requirement already satisfied: chardet==3.0.4 in /home/pi/venv/lib/python3.7/sit                                                                                                             e-packages (from -r requirements_raspberry.txt (line 8)) (3.0.4)
Requirement already satisfied: Click==7.0 in /home/pi/venv/lib/python3.7/site-pa                                                                                                             ckages (from -r requirements_raspberry.txt (line 9)) (7.0)
Requirement already satisfied: cryptography==2.8 in /home/pi/venv/lib/python3.7/                                                                                                             site-packages (from -r requirements_raspberry.txt (line 10)) (2.8)
Requirement already satisfied: dnspython==1.16.0 in /home/pi/venv/lib/python3.7/                                                                                                             site-packages (from -r requirements_raspberry.txt (line 11)) (1.16.0)
Requirement already satisfied: docutils==0.15.2 in /home/pi/venv/lib/python3.7/s                                                                                                             ite-packages (from -r requirements_raspberry.txt (line 12)) (0.15.2)
Requirement already satisfied: eventlet==0.25.1 in /home/pi/venv/lib/python3.7/s                                                                                                             ite-packages (from -r requirements_raspberry.txt (line 13)) (0.25.1)
Requirement already satisfied: Flask==1.1.1 in /home/pi/venv/lib/python3.7/site-                                                                                                             packages (from -r requirements_raspberry.txt (line 14)) (1.1.1)
Requirement already satisfied: Flask-APScheduler==1.11.0 in /home/pi/venv/lib/py                                                                                                             thon3.7/site-packages (from -r requirements_raspberry.txt (line 15)) (1.11.0)
Requirement already satisfied: Flask-Bcrypt==0.7.1 in /home/pi/venv/lib/python3.                                                                                                             7/site-packages (from -r requirements_raspberry.txt (line 16)) (0.7.1)
Requirement already satisfied: Flask-Injector==0.12.0 in /home/pi/venv/lib/pytho                                                                                                             n3.7/site-packages (from -r requirements_raspberry.txt (line 17)) (0.12.0)
Requirement already satisfied: Flask-Login==0.4.1 in /home/pi/venv/lib/python3.7                                                                                                             /site-packages (from -r requirements_raspberry.txt (line 18)) (0.4.1)
Requirement already satisfied: Flask-Mail==0.9.1 in /home/pi/venv/lib/python3.7/                                                                                                             site-packages (from -r requirements_raspberry.txt (line 19)) (0.9.1)
Requirement already satisfied: Flask-Migrate==2.5.2 in /home/pi/venv/lib/python3                                                                                                             .7/site-packages (from -r requirements_raspberry.txt (line 20)) (2.5.2)
Requirement already satisfied: Flask-Script==2.0.6 in /home/pi/venv/lib/python3.                                                                                                             7/site-packages (from -r requirements_raspberry.txt (line 21)) (2.0.6)
Requirement already satisfied: Flask-SocketIO==4.2.1 in /home/pi/venv/lib/python                                                                                                             3.7/site-packages (from -r requirements_raspberry.txt (line 22)) (4.2.1)
Requirement already satisfied: Flask-SQLAlchemy==2.4.1 in /home/pi/venv/lib/pyth                                                                                                             on3.7/site-packages (from -r requirements_raspberry.txt (line 23)) (2.4.1)
Requirement already satisfied: Flask-User==1.0.2.2 in /home/pi/venv/lib/python3.                                                                                                             7/site-packages (from -r requirements_raspberry.txt (line 24)) (1.0.2.2)
Requirement already satisfied: Flask-WTF==0.14.2 in /home/pi/venv/lib/python3.7/                                                                                                             site-packages (from -r requirements_raspberry.txt (line 25)) (0.14.2)
Requirement already satisfied: greenlet==0.4.15 in /home/pi/venv/lib/python3.7/s                                                                                                             ite-packages (from -r requirements_raspberry.txt (line 26)) (0.4.15)
Requirement already satisfied: idna==2.8 in /home/pi/venv/lib/python3.7/site-pac                                                                                                             kages (from -r requirements_raspberry.txt (line 27)) (2.8)
Requirement already satisfied: injector==0.18.2 in /home/pi/venv/lib/python3.7/s                                                                                                             ite-packages (from -r requirements_raspberry.txt (line 28)) (0.18.2)
Requirement already satisfied: isort==4.3.21 in /home/pi/venv/lib/python3.7/site                                                                                                             -packages (from -r requirements_raspberry.txt (line 29)) (4.3.21)
Requirement already satisfied: itsdangerous==1.1.0 in /home/pi/venv/lib/python3.                                                                                                             7/site-packages (from -r requirements_raspberry.txt (line 30)) (1.1.0)
Requirement already satisfied: Jinja2==2.10.3 in /home/pi/venv/lib/python3.7/sit                                                                                                             e-packages (from -r requirements_raspberry.txt (line 31)) (2.10.3)
Requirement already satisfied: lazy-object-proxy==1.4.3 in /home/pi/venv/lib/pyt                                                                                                             hon3.7/site-packages (from -r requirements_raspberry.txt (line 32)) (1.4.3)
Requirement already satisfied: lockfile==0.12.2 in /home/pi/venv/lib/python3.7/s                                                                                                             ite-packages (from -r requirements_raspberry.txt (line 33)) (0.12.2)
Requirement already satisfied: Mako==1.1.0 in /home/pi/venv/lib/python3.7/site-p                                                                                                             ackages (from -r requirements_raspberry.txt (line 34)) (1.1.0)
Requirement already satisfied: MarkupSafe==1.1.1 in /home/pi/venv/lib/python3.7/                                                                                                             site-packages (from -r requirements_raspberry.txt (line 35)) (1.1.1)
Requirement already satisfied: marshmallow==3.3.0 in /home/pi/venv/lib/python3.7                                                                                                             /site-packages (from -r requirements_raspberry.txt (line 36)) (3.3.0)
Requirement already satisfied: mccabe==0.6.1 in /home/pi/venv/lib/python3.7/site                                                                                                             -packages (from -r requirements_raspberry.txt (line 37)) (0.6.1)
Requirement already satisfied: mfrc522==0.0.7 in /home/pi/venv/lib/python3.7/sit                                                                                                             e-packages (from -r requirements_raspberry.txt (line 38)) (0.0.7)
Requirement already satisfied: minimalmodbus==1.0.2 in /home/pi/venv/lib/python3                                                                                                             .7/site-packages (from -r requirements_raspberry.txt (line 39)) (1.0.2)
Requirement already satisfied: monotonic==1.5 in /home/pi/venv/lib/python3.7/sit                                                                                                             e-packages (from -r requirements_raspberry.txt (line 40)) (1.5)
Requirement already satisfied: netifaces==0.10.9 in /home/pi/venv/lib/python3.7/                                                                                                             site-packages (from -r requirements_raspberry.txt (line 41)) (0.10.9)
Requirement already satisfied: passlib==1.7.2 in /home/pi/venv/lib/python3.7/sit                                                                                                             e-packages (from -r requirements_raspberry.txt (line 42)) (1.7.2)
Requirement already satisfied: pid==2.2.5 in /home/pi/venv/lib/python3.7/site-pa                                                                                                             ckages (from -r requirements_raspberry.txt (line 43)) (2.2.5)
Requirement already satisfied: pigpio==1.45 in /home/pi/venv/lib/python3.7/site-                                                                                                             packages (from -r requirements_raspberry.txt (line 44)) (1.45)
Requirement already satisfied: psutil==5.6.7 in /home/pi/venv/lib/python3.7/site                                                                                                             -packages (from -r requirements_raspberry.txt (line 46)) (5.6.7)
Requirement already satisfied: psycopg2==2.8.4 in /home/pi/venv/lib/python3.7/si                                                                                                             te-packages (from -r requirements_raspberry.txt (line 47)) (2.8.4)
Requirement already satisfied: psycopg2-binary==2.8.4 in /home/pi/venv/lib/pytho                                                                                                             n3.7/site-packages (from -r requirements_raspberry.txt (line 48)) (2.8.4)
Requirement already satisfied: py-cpuinfo==5.0.0 in /home/pi/venv/lib/python3.7/                                                                                                             site-packages (from -r requirements_raspberry.txt (line 49)) (5.0.0)
Requirement already satisfied: pycparser==2.19 in /home/pi/venv/lib/python3.7/si                                                                                                             te-packages (from -r requirements_raspberry.txt (line 50)) (2.19)
Requirement already satisfied: PyJWT==1.7.1 in /home/pi/venv/lib/python3.7/site-                                                                                                             packages (from -r requirements_raspberry.txt (line 51)) (1.7.1)
Requirement already satisfied: pylint==2.4.4 in /home/pi/venv/lib/python3.7/site                                                                                                             -packages (from -r requirements_raspberry.txt (line 52)) (2.4.4)
Requirement already satisfied: pyserial==3.4 in /home/pi/venv/lib/python3.7/site                                                                                                             -packages (from -r requirements_raspberry.txt (line 53)) (3.4)
Requirement already satisfied: python-daemon==2.2.4 in /home/pi/venv/lib/python3                                                                                                             .7/site-packages (from -r requirements_raspberry.txt (line 54)) (2.2.4)
Requirement already satisfied: python-dateutil==2.8.1 in /home/pi/venv/lib/pytho                                                                                                             n3.7/site-packages (from -r requirements_raspberry.txt (line 55)) (2.8.1)
Requirement already satisfied: python-editor==1.0.4 in /home/pi/venv/lib/python3                                                                                                             .7/site-packages (from -r requirements_raspberry.txt (line 56)) (1.0.4)
Requirement already satisfied: python-engineio==3.11.1 in /home/pi/venv/lib/pyth                                                                                                             on3.7/site-packages (from -r requirements_raspberry.txt (line 57)) (3.11.1)
Requirement already satisfied: python-socketio==4.4.0 in /home/pi/venv/lib/pytho                                                                                                             n3.7/site-packages (from -r requirements_raspberry.txt (line 58)) (4.4.0)
Requirement already satisfied: pytz==2019.3 in /home/pi/venv/lib/python3.7/site-                                                                                                             packages (from -r requirements_raspberry.txt (line 59)) (2019.3)
Requirement already satisfied: requests==2.22.0 in /home/pi/venv/lib/python3.7/s                                                                                                             ite-packages (from -r requirements_raspberry.txt (line 60)) (2.22.0)
Requirement already satisfied: RPi.GPIO==0.7.0 in /home/pi/venv/lib/python3.7/si                                                                                                             te-packages (from -r requirements_raspberry.txt (line 61)) (0.7.0)
Requirement already satisfied: service==0.6.0 in /home/pi/venv/lib/python3.7/sit                                                                                                             e-packages (from -r requirements_raspberry.txt (line 62)) (0.6.0)
Requirement already satisfied: setproctitle==1.1.10 in /home/pi/venv/lib/python3                                                                                                             .7/site-packages (from -r requirements_raspberry.txt (line 63)) (1.1.10)
Requirement already satisfied: six==1.13.0 in /home/pi/venv/lib/python3.7/site-p                                                                                                             ackages (from -r requirements_raspberry.txt (line 64)) (1.13.0)
Requirement already satisfied: spidev==3.5 in /home/pi/venv/lib/python3.7/site-p                                                                                                             ackages (from -r requirements_raspberry.txt (line 65)) (3.5)
Requirement already satisfied: SQLAlchemy==1.3.11 in /home/pi/venv/lib/python3.7                                                                                                             /site-packages (from -r requirements_raspberry.txt (line 66)) (1.3.11)
Requirement already satisfied: typed-ast==1.4.0 in /home/pi/venv/lib/python3.7/s                                                                                                             ite-packages (from -r requirements_raspberry.txt (line 67)) (1.4.0)
Requirement already satisfied: typing==3.7.4.1 in /home/pi/venv/lib/python3.7/si                                                                                                             te-packages (from -r requirements_raspberry.txt (line 68)) (3.7.4.1)
Requirement already satisfied: typing-extensions==3.7.4.1 in /home/pi/venv/lib/p                                                                                                             ython3.7/site-packages (from -r requirements_raspberry.txt (line 69)) (3.7.4.1)
Requirement already satisfied: tzlocal==2.0.0 in /home/pi/venv/lib/python3.7/sit                                                                                                             e-packages (from -r requirements_raspberry.txt (line 70)) (2.0.0)
Requirement already satisfied: urllib3==1.25.8 in /home/pi/venv/lib/python3.7/si                                                                                                             te-packages (from -r requirements_raspberry.txt (line 71)) (1.25.8)
Requirement already satisfied: Werkzeug==0.16.0 in /home/pi/venv/lib/python3.7/s                                                                                                             ite-packages (from -r requirements_raspberry.txt (line 72)) (0.16.0)
Requirement already satisfied: wrapt==1.11.2 in /home/pi/venv/lib/python3.7/site                                                                                                             -packages (from -r requirements_raspberry.txt (line 73)) (1.11.2)
Requirement already satisfied: WTForms==2.2.1 in /home/pi/venv/lib/python3.7/sit                                                                                                             e-packages (from -r requirements_raspberry.txt (line 74)) (2.2.1)
Requirement already satisfied: yolk3k==0.9 in /home/pi/venv/lib/python3.7/site-p                                                                                                             ackages (from -r requirements_raspberry.txt (line 75)) (0.9)
Requirement already satisfied: setuptools>=0.7 in /home/pi/venv/lib/python3.7/si                                                                                                             te-packages (from APScheduler==3.6.3->-r requirements_raspberry.txt (line 2)) (4                                                                                                             0.8.0)
(venv) pi@EVBox:~/Oppleo $

Results of pip freeze:

(venv) pi@EVBox:~/Oppleo $ pip freeze
alembic==1.3.1
APScheduler==3.6.3
astroid==2.3.3
bcrypt==3.1.7
blinker==1.4
certifi==2019.11.28
cffi==1.13.2
chardet==3.0.4
Click==7.0
cryptography==2.8
dnspython==1.16.0
docutils==0.15.2
eventlet==0.25.1
Flask==1.1.1
Flask-APScheduler==1.11.0
Flask-Bcrypt==0.7.1
Flask-Injector==0.12.0
Flask-Login==0.4.1
Flask-Mail==0.9.1
Flask-Migrate==2.5.2
Flask-Script==2.0.6
Flask-SocketIO==4.2.1
Flask-SQLAlchemy==2.4.1
Flask-User==1.0.2.2
Flask-WTF==0.14.2
greenlet==0.4.15
idna==2.8
injector==0.18.2
isort==4.3.21
itsdangerous==1.1.0
Jinja2==2.10.3
lazy-object-proxy==1.4.3
lockfile==0.12.2
Mako==1.1.0
MarkupSafe==1.1.1
marshmallow==3.3.0
mccabe==0.6.1
mfrc522==0.0.7
minimalmodbus==1.0.2
monotonic==1.5
netifaces==0.10.9
passlib==1.7.2
pid==2.2.5
pigpio==1.45
pkg-resources==0.0.0
psutil==5.6.7
psycopg2==2.8.4
psycopg2-binary==2.8.4
py-cpuinfo==5.0.0
pycparser==2.19
PyJWT==1.7.1
pylint==2.4.4
pyserial==3.4
python-daemon==2.2.4
python-dateutil==2.8.1
python-editor==1.0.4
python-engineio==3.11.1
python-socketio==4.4.0
pytz==2019.3
requests==2.22.0
RPi.GPIO==0.7.0
service==0.6.0
setproctitle==1.1.10
six==1.13.0
spidev==3.5
SQLAlchemy==1.3.11
typed-ast==1.4.0
typing==3.7.4.1
typing-extensions==3.7.4.1
tzlocal==2.0.0
urllib3==1.25.8
Werkzeug==0.16.0
wrapt==1.11.2
WTForms==2.2.1
yolk3k==0.9
(venv) pi@EVBox:~/Oppleo $
(venv) pi@EVBox:~/Oppleo $ sudo systemctl start Oppleo.service
(venv) pi@EVBox:~/Oppleo $ sudo systemctl status Oppleo.service
● Oppleo.service - Oppleo Application
   Loaded: loaded (/etc/systemd/system/Oppleo.service; enabled; vendor preset: enabled)
   Active: activating (auto-restart) (Result: exit-code) since Sun 2020-06-21 20:20:40 CEST; 710ms ago
  Process: 711 ExecStart=/home/pi/Oppleo/venv/bin/python3 /home/pi/Oppleo/src/nl/oppleo/webapp/Oppleo.py socketserver (code=exited, status=1/FAILURE)
 Main PID: 711 (code=exited, status=1/FAILURE)
(venv) pi@EVBox:~/Oppleo $

Sure, let's make it work.

The results you show are all equal to what I have. We just have to to compare more.

  • Can you run env in the venv and share the outcome?
  • can you verify you have a werkzeug directory in your virtual environment (/home/pi/Oppleo/venv/lib/python3.7/site-packages/werkzeug/) that has a security.py file in it?
  • can you share the generated Oppleo.service file in /etc/systemd/system/Oppleo.service?
  • does the .env file exist in /user/pi/Oppleo with PYTHONPATH=src in it? (should not matter for systemctl, just comparing everything...)
pi@EVBox:~ $ source venv/bin/activate
(venv) pi@EVBox:~ $ env
SHELL=/bin/bash
NO_AT_BRIDGE=1
PWD=/home/pi
LOGNAME=pi
XDG_SESSION_TYPE=tty
HOME=/home/pi
LANG=en_GB.UTF-8
LS_COLORS=rs=0:di=01;34:ln=01;36:mh=00:pi=40;33:so=01;35:do=01;35:bd=40;33;01:cd                                                                                                             =40;33;01:or=40;31;01:mi=00:su=37;41:sg=30;43:ca=30;41:tw=30;42:ow=34;42:st=37;4                                                                                                             4:ex=01;32:*.tar=01;31:*.tgz=01;31:*.arc=01;31:*.arj=01;31:*.taz=01;31:*.lha=01;                                                                                                             31:*.lz4=01;31:*.lzh=01;31:*.lzma=01;31:*.tlz=01;31:*.txz=01;31:*.tzo=01;31:*.t7                                                                                                             z=01;31:*.zip=01;31:*.z=01;31:*.dz=01;31:*.gz=01;31:*.lrz=01;31:*.lz=01;31:*.lzo                                                                                                             =01;31:*.xz=01;31:*.zst=01;31:*.tzst=01;31:*.bz2=01;31:*.bz=01;31:*.tbz=01;31:*.                                                                                                             tbz2=01;31:*.tz=01;31:*.deb=01;31:*.rpm=01;31:*.jar=01;31:*.war=01;31:*.ear=01;3                                                                                                             1:*.sar=01;31:*.rar=01;31:*.alz=01;31:*.ace=01;31:*.zoo=01;31:*.cpio=01;31:*.7z=                                                                                                             01;31:*.rz=01;31:*.cab=01;31:*.wim=01;31:*.swm=01;31:*.dwm=01;31:*.esd=01;31:*.j                                                                                                             pg=01;35:*.jpeg=01;35:*.mjpg=01;35:*.mjpeg=01;35:*.gif=01;35:*.bmp=01;35:*.pbm=0                                                                                                             1;35:*.pgm=01;35:*.ppm=01;35:*.tga=01;35:*.xbm=01;35:*.xpm=01;35:*.tif=01;35:*.t                                                                                                             iff=01;35:*.png=01;35:*.svg=01;35:*.svgz=01;35:*.mng=01;35:*.pcx=01;35:*.mov=01;                                                                                                             35:*.mpg=01;35:*.mpeg=01;35:*.m2v=01;35:*.mkv=01;35:*.webm=01;35:*.ogm=01;35:*.m                                                                                                             p4=01;35:*.m4v=01;35:*.mp4v=01;35:*.vob=01;35:*.qt=01;35:*.nuv=01;35:*.wmv=01;35                                                                                                             :*.asf=01;35:*.rm=01;35:*.rmvb=01;35:*.flc=01;35:*.avi=01;35:*.fli=01;35:*.flv=0                                                                                                             1;35:*.gl=01;35:*.dl=01;35:*.xcf=01;35:*.xwd=01;35:*.yuv=01;35:*.cgm=01;35:*.emf                                                                                                             =01;35:*.ogv=01;35:*.ogx=01;35:*.aac=00;36:*.au=00;36:*.flac=00;36:*.m4a=00;36:*                                                                                                             .mid=00;36:*.midi=00;36:*.mka=00;36:*.mp3=00;36:*.mpc=00;36:*.ogg=00;36:*.ra=00;                                                                                                             36:*.wav=00;36:*.oga=00;36:*.opus=00;36:*.spx=00;36:*.xspf=00;36:
VIRTUAL_ENV=/home/pi/venv
SSH_CONNECTION=192.168.1.103 49962 192.168.1.245 22
XDG_SESSION_CLASS=user
TERM=xterm
USER=pi
SHLVL=1
XDG_SESSION_ID=c1
XDG_RUNTIME_DIR=/run/user/1000
PS1=(venv) \[\e]0;\u@\h: \w\a\]${debian_chroot:+($debian_chroot)}\[\033[01;32m\]                                                                                                             \u@\h\[\033[00m\]:\[\033[01;34m\]\w \$\[\033[00m\]
SSH_CLIENT=192.168.1.103 49962 22
PATH=/home/pi/venv/bin:/home/pi/.local/bin:/usr/local/sbin:/usr/local/bin:/usr/s                                                                                                             bin:/usr/bin:/sbin:/bin:/usr/local/games:/usr/games
MAIL=/var/mail/pi
SSH_TTY=/dev/pts/0
TEXTDOMAIN=Linux-PAM
_=/usr/bin/env
(venv) pi@EVBox:~ $

Maybe we got something here. There is no werkzeug folder and the security.py file is also missing. :-)

(venv) pi@EVBox:~/Oppleo/venv $ cd /home/pi/Oppleo/venv/lib/python3.7/site-packages/werkzeug/
-bash: cd: /home/pi/Oppleo/venv/lib/python3.7/site-packages/werkzeug/: No such file or directory

(venv) pi@EVBox:~/Oppleo/venv $ cd /home/pi/Oppleo/venv/lib/python3.7/site-packages
(venv) pi@EVBox:~/Oppleo/venv/lib/python3.7/site-packages $ ls
easy_install.py  pip  pip-18.1.dist-info  pkg_resources  pkg_resources-0.0.0.dist-info  __pycache__  setuptools  setuptools-40.8.0.dist-info
(venv) pi@EVBox:~/Oppleo/venv/lib/python3.7/site-packages $

There is no /user/pi/Oppleo. I think you mean /home/pi/Oppleo?
There is no .env file.

(venv) pi@EVBox:~/Oppleo/venv/lib/python3.7/site-packages $ cd /home
(venv) pi@EVBox:/home $ cd pi
(venv) pi@EVBox:~ $ cd Oppleo/
(venv) pi@EVBox:~/Oppleo $ ls
db  doc  docker-compose.yml  install  kill.sh  README.md  requirements_non_raspberry.txt  requirements_raspberry.txt  requirements.txt  snapshot  src  start.sh  test  tools  venv
(venv) pi@EVBox:~/Oppleo $

(venv) pi@EVBox:/ $ cd usr
(venv) pi@EVBox:/usr $ ls
bin  games  include  lib  local  sbin  share  src
(venv) pi@EVBox:/usr $

Oppleo.service:

[Unit]
Description=Oppleo Application
After=syslog.target network.target pigpiod.service

[Service]
; Raspberry user for this service to run
# run as web user
# User=www-data
# Comment pi to run as root (only user to work at this moment)
# User=pi
Group=www-data

# process starts, doesn't exit unless failing
# Takes one of no, on-success, on-failure, on-abnormal, on-watchdog, on-abort,
# If set to on-failure, the service will be restarted when the process exits with a non-zero 
# exit code, is terminated by a signal (including on core dump, but excluding one of the 
# signals SIGHUP, SIGINT, SIGTERM or SIGPIPE, and additionally, exit statuses and signals 
# specified in SuccessExitStatus=. ), when an operation (such as service reload) times out, 
# and when the configured watchdog timeout is triggered.
Restart=on-failure
RestartSec=5

Type=simple
WorkingDirectory=/home/pi/Oppleo/src/

Environment=PYTHONPATH=/home/pi/Oppleo/src
Environment=/home/pi/Oppleo/src

ExecStart=/home/pi/Oppleo/venv/bin/python3 /home/pi/Oppleo/src/nl/oppleo/webapp/Oppleo.py socketserver

[Install]
# start with default stuff when we enable automatic startup
WantedBy=default.target
#WantedBy=multi-user.target

The venv folder in /home/pi still exist :)

(venv) pi@EVBox:/Oppleo $ ls
db doc docker-compose.yml install kill.sh README.md requirements_non_raspberry.txt requirements_raspberry.txt requirements.txt snapshot src start.sh test tools venv
(venv) pi@EVBox:
/Oppleo $ cd ..
(venv) pi@EVBox:~ $ ls
MFRC522-python Oppleo SPI-Py venv
(venv) pi@EVBox:~ $

Looks like you created the venv in your home directory (/home/pi/venv/), not in the Oppleo directory /home/pi/Oppleo/venv/?

Do you have a werkzeug folder in /home/pi/venv/lib/python3.7/site-packages/werkzeug/?

If that is the case, make one (virtual environment) in the /home/pi/Oppleo/ folder. Deactivate the current one (virtual environment) using deactivate. Make a new one (virtual environment):

  1. cd /home/pi/Oppleo/
  2. python3 -m venv venv
  3. source venv/bin/activate
  4. pip install --upgrade pip
  5. pip install -r requirements_raspberry.txt

Then start using sudo systemctl start Oppleo.service and check the status using sudo systemctl status Oppleo.service. Let me know.

pi@EVBox:~/Oppleo $ python3 -m venv venv
The virtual environment was not created successfully because ensurepip is not
available.  On Debian/Ubuntu systems, you need to install the python3-venv
package using the following command.

    apt-get install python3-venv

You may need to use sudo with that command.  After installing the python3-venv
package, recreate your virtual environment.

Failing command: ['/home/pi/Oppleo/venv/bin/python3', '-Im', 'ensurepip', '--upg                                                                                                             rade', '--default-pip']

pi@EVBox:~/Oppleo $ sudo python3 -m venv venv
pi@EVBox:~/Oppleo $ source venv/bin/activate
(venv) pi@EVBox:~/Oppleo $ pip install --upgrade pip
Defaulting to user installation because normal site-packages is not writeable
Looking in indexes: https://pypi.org/simple, https://www.piwheels.org/simple
Requirement already up-to-date: pip in /usr/local/lib/python3.7/dist-packages (20.1.1)
(venv) pi@EVBox:~/Oppleo $ ls
db                  install    requirements_non_raspberry.txt  snapshot  test
doc                 kill.sh    requirements_raspberry.txt      src       tools
docker-compose.yml  README.md  requirements.txt                start.sh  venv
(venv) pi@EVBox:~/Oppleo $ pip install -r requirements_raspberry.txt
Defaulting to user installation because normal site-packages is not writeable
Looking in indexes: https://pypi.org/simple, https://www.piwheels.org/simple
Requirement already satisfied: alembic==1.3.1 in /usr/local/lib/python3.7/dist-p                                                                                                             ackages (from -r requirements_raspberry.txt (line 1)) (1.3.1)
Requirement already satisfied: APScheduler==3.6.3 in /usr/local/lib/python3.7/di                                                                                                             st-packages (from -r requirements_raspberry.txt (line 2)) (3.6.3)
Requirement already satisfied: astroid==2.3.3 in /usr/local/lib/python3.7/dist-p                                                                                                             ackages (from -r requirements_raspberry.txt (line 3)) (2.3.3)
Requirement already satisfied: bcrypt==3.1.7 in /usr/local/lib/python3.7/dist-pa                                                                                                             ckages (from -r requirements_raspberry.txt (line 4)) (3.1.7)
Requirement already satisfied: blinker==1.4 in /usr/local/lib/python3.7/dist-pac                                                                                                             kages (from -r requirements_raspberry.txt (line 5)) (1.4)
Requirement already satisfied: certifi==2019.11.28 in /usr/local/lib/python3.7/d                                                                                                             ist-packages (from -r requirements_raspberry.txt (line 6)) (2019.11.28)
Requirement already satisfied: cffi==1.13.2 in /usr/local/lib/python3.7/dist-pac                                                                                                             kages (from -r requirements_raspberry.txt (line 7)) (1.13.2)
Requirement already satisfied: chardet==3.0.4 in /usr/lib/python3/dist-packages                                                                                                              (from -r requirements_raspberry.txt (line 8)) (3.0.4)
Requirement already satisfied: Click==7.0 in /usr/local/lib/python3.7/dist-packa                                                                                                             ges (from -r requirements_raspberry.txt (line 9)) (7.0)
Requirement already satisfied: cryptography==2.8 in /usr/local/lib/python3.7/dis                                                                                                             t-packages (from -r requirements_raspberry.txt (line 10)) (2.8)
Requirement already satisfied: dnspython==1.16.0 in /usr/local/lib/python3.7/dis                                                                                                             t-packages (from -r requirements_raspberry.txt (line 11)) (1.16.0)
Requirement already satisfied: docutils==0.15.2 in /usr/local/lib/python3.7/dist                                                                                                             -packages (from -r requirements_raspberry.txt (line 12)) (0.15.2)
Requirement already satisfied: eventlet==0.25.1 in /usr/local/lib/python3.7/dist                                                                                                             -packages (from -r requirements_raspberry.txt (line 13)) (0.25.1)
Requirement already satisfied: Flask==1.1.1 in /usr/local/lib/python3.7/dist-pac                                                                                                             kages (from -r requirements_raspberry.txt (line 14)) (1.1.1)
Requirement already satisfied: Flask-APScheduler==1.11.0 in /usr/local/lib/pytho                                                                                                             n3.7/dist-packages (from -r requirements_raspberry.txt (line 15)) (1.11.0)
Requirement already satisfied: Flask-Bcrypt==0.7.1 in /usr/local/lib/python3.7/d                                                                                                             ist-packages (from -r requirements_raspberry.txt (line 16)) (0.7.1)
Requirement already satisfied: Flask-Injector==0.12.0 in /usr/local/lib/python3.                                                                                                             7/dist-packages (from -r requirements_raspberry.txt (line 17)) (0.12.0)
Requirement already satisfied: Flask-Login==0.4.1 in /usr/local/lib/python3.7/di                                                                                                             st-packages (from -r requirements_raspberry.txt (line 18)) (0.4.1)
Requirement already satisfied: Flask-Mail==0.9.1 in /usr/local/lib/python3.7/dis                                                                                                             t-packages (from -r requirements_raspberry.txt (line 19)) (0.9.1)
Requirement already satisfied: Flask-Migrate==2.5.2 in /usr/local/lib/python3.7/                                                                                                             dist-packages (from -r requirements_raspberry.txt (line 20)) (2.5.2)
Requirement already satisfied: Flask-Script==2.0.6 in /usr/local/lib/python3.7/d                                                                                                             ist-packages (from -r requirements_raspberry.txt (line 21)) (2.0.6)
Requirement already satisfied: Flask-SocketIO==4.2.1 in /usr/local/lib/python3.7                                                                                                             /dist-packages (from -r requirements_raspberry.txt (line 22)) (4.2.1)
Requirement already satisfied: Flask-SQLAlchemy==2.4.1 in /usr/local/lib/python3                                                                                                             .7/dist-packages (from -r requirements_raspberry.txt (line 23)) (2.4.1)
Requirement already satisfied: Flask-User==1.0.2.2 in /usr/local/lib/python3.7/d                                                                                                             ist-packages (from -r requirements_raspberry.txt (line 24)) (1.0.2.2)
Requirement already satisfied: Flask-WTF==0.14.2 in /usr/local/lib/python3.7/dis                                                                                                             t-packages (from -r requirements_raspberry.txt (line 25)) (0.14.2)
Requirement already satisfied: greenlet==0.4.15 in /usr/local/lib/python3.7/dist                                                                                                             -packages (from -r requirements_raspberry.txt (line 26)) (0.4.15)
Requirement already satisfied: idna==2.8 in /usr/local/lib/python3.7/dist-packag                                                                                                             es (from -r requirements_raspberry.txt (line 27)) (2.8)
Requirement already satisfied: injector==0.18.2 in /usr/local/lib/python3.7/dist                                                                                                             -packages (from -r requirements_raspberry.txt (line 28)) (0.18.2)
Requirement already satisfied: isort==4.3.21 in /usr/local/lib/python3.7/dist-pa                                                                                                             ckages (from -r requirements_raspberry.txt (line 29)) (4.3.21)
Requirement already satisfied: itsdangerous==1.1.0 in /usr/local/lib/python3.7/d                                                                                                             ist-packages (from -r requirements_raspberry.txt (line 30)) (1.1.0)
Requirement already satisfied: Jinja2==2.10.3 in /usr/local/lib/python3.7/dist-p                                                                                                             ackages (from -r requirements_raspberry.txt (line 31)) (2.10.3)
Requirement already satisfied: lazy-object-proxy==1.4.3 in /usr/local/lib/python                                                                                                             3.7/dist-packages (from -r requirements_raspberry.txt (line 32)) (1.4.3)
Requirement already satisfied: lockfile==0.12.2 in /usr/local/lib/python3.7/dist                                                                                                             -packages (from -r requirements_raspberry.txt (line 33)) (0.12.2)
Requirement already satisfied: Mako==1.1.0 in /usr/local/lib/python3.7/dist-pack                                                                                                             ages (from -r requirements_raspberry.txt (line 34)) (1.1.0)
Requirement already satisfied: MarkupSafe==1.1.1 in /usr/local/lib/python3.7/dis                                                                                                             t-packages (from -r requirements_raspberry.txt (line 35)) (1.1.1)
Requirement already satisfied: marshmallow==3.3.0 in /usr/local/lib/python3.7/di                                                                                                             st-packages (from -r requirements_raspberry.txt (line 36)) (3.3.0)
Requirement already satisfied: mccabe==0.6.1 in /usr/local/lib/python3.7/dist-pa                                                                                                             ckages (from -r requirements_raspberry.txt (line 37)) (0.6.1)
Requirement already satisfied: mfrc522==0.0.7 in /usr/local/lib/python3.7/dist-p                                                                                                             ackages (from -r requirements_raspberry.txt (line 38)) (0.0.7)
Requirement already satisfied: minimalmodbus==1.0.2 in /home/pi/.local/lib/pytho                                                                                                             n3.7/site-packages (from -r requirements_raspberry.txt (line 39)) (1.0.2)
Requirement already satisfied: monotonic==1.5 in /usr/local/lib/python3.7/dist-p                                                                                                             ackages (from -r requirements_raspberry.txt (line 40)) (1.5)
Requirement already satisfied: netifaces==0.10.9 in /usr/local/lib/python3.7/dis                                                                                                             t-packages (from -r requirements_raspberry.txt (line 41)) (0.10.9)
Requirement already satisfied: passlib==1.7.2 in /usr/local/lib/python3.7/dist-p                                                                                                             ackages (from -r requirements_raspberry.txt (line 42)) (1.7.2)
Requirement already satisfied: pid==2.2.5 in /usr/local/lib/python3.7/dist-packa                                                                                                             ges (from -r requirements_raspberry.txt (line 43)) (2.2.5)
Requirement already satisfied: pigpio==1.45 in /usr/local/lib/python3.7/dist-pac                                                                                                             kages (from -r requirements_raspberry.txt (line 44)) (1.45)
Requirement already satisfied: psutil==5.6.7 in /usr/local/lib/python3.7/dist-pa                                                                                                             ckages (from -r requirements_raspberry.txt (line 46)) (5.6.7)
Requirement already satisfied: psycopg2==2.8.4 in /usr/local/lib/python3.7/dist-                                                                                                             packages (from -r requirements_raspberry.txt (line 47)) (2.8.4)
Requirement already satisfied: psycopg2-binary==2.8.4 in /usr/local/lib/python3.                                                                                                             7/dist-packages (from -r requirements_raspberry.txt (line 48)) (2.8.4)
Requirement already satisfied: py-cpuinfo==5.0.0 in /usr/local/lib/python3.7/dis                                                                                                             t-packages (from -r requirements_raspberry.txt (line 49)) (5.0.0)
Requirement already satisfied: pycparser==2.19 in /usr/local/lib/python3.7/dist-                                                                                                             packages (from -r requirements_raspberry.txt (line 50)) (2.19)
Requirement already satisfied: PyJWT==1.7.1 in /usr/local/lib/python3.7/dist-pac                                                                                                             kages (from -r requirements_raspberry.txt (line 51)) (1.7.1)
Requirement already satisfied: pylint==2.4.4 in /usr/local/lib/python3.7/dist-pa                                                                                                             ckages (from -r requirements_raspberry.txt (line 52)) (2.4.4)
Requirement already satisfied: pyserial==3.4 in /home/pi/.local/lib/python3.7/si                                                                                                             te-packages (from -r requirements_raspberry.txt (line 53)) (3.4)
Requirement already satisfied: python-daemon==2.2.4 in /usr/local/lib/python3.7/                                                                                                             dist-packages (from -r requirements_raspberry.txt (line 54)) (2.2.4)
Requirement already satisfied: python-dateutil==2.8.1 in /usr/local/lib/python3.                                                                                                             7/dist-packages (from -r requirements_raspberry.txt (line 55)) (2.8.1)
Requirement already satisfied: python-editor==1.0.4 in /usr/local/lib/python3.7/                                                                                                             dist-packages (from -r requirements_raspberry.txt (line 56)) (1.0.4)
Requirement already satisfied: python-engineio==3.11.1 in /usr/local/lib/python3                                                                                                             .7/dist-packages (from -r requirements_raspberry.txt (line 57)) (3.11.1)
Requirement already satisfied: python-socketio==4.4.0 in /usr/local/lib/python3.                                                                                                             7/dist-packages (from -r requirements_raspberry.txt (line 58)) (4.4.0)
Requirement already satisfied: pytz==2019.3 in /usr/local/lib/python3.7/dist-pac                                                                                                             kages (from -r requirements_raspberry.txt (line 59)) (2019.3)
Requirement already satisfied: requests==2.22.0 in /usr/local/lib/python3.7/dist                                                                                                             -packages (from -r requirements_raspberry.txt (line 60)) (2.22.0)
Requirement already satisfied: RPi.GPIO==0.7.0 in /usr/local/lib/python3.7/dist-                                                                                                             packages (from -r requirements_raspberry.txt (line 61)) (0.7.0)
Requirement already satisfied: service==0.6.0 in /usr/local/lib/python3.7/dist-p                                                                                                             ackages (from -r requirements_raspberry.txt (line 62)) (0.6.0)
Requirement already satisfied: setproctitle==1.1.10 in /usr/local/lib/python3.7/                                                                                                             dist-packages (from -r requirements_raspberry.txt (line 63)) (1.1.10)
Requirement already satisfied: six==1.13.0 in /usr/local/lib/python3.7/dist-pack                                                                                                             ages (from -r requirements_raspberry.txt (line 64)) (1.13.0)
Requirement already satisfied: spidev==3.5 in /usr/local/lib/python3.7/dist-pack                                                                                                             ages (from -r requirements_raspberry.txt (line 65)) (3.5)
Requirement already satisfied: SQLAlchemy==1.3.11 in /usr/local/lib/python3.7/di                                                                                                             st-packages (from -r requirements_raspberry.txt (line 66)) (1.3.11)
Requirement already satisfied: typed-ast==1.4.0 in /usr/local/lib/python3.7/dist                                                                                                             -packages (from -r requirements_raspberry.txt (line 67)) (1.4.0)
Requirement already satisfied: typing==3.7.4.1 in /usr/local/lib/python3.7/dist-                                                                                                             packages (from -r requirements_raspberry.txt (line 68)) (3.7.4.1)
Requirement already satisfied: typing-extensions==3.7.4.1 in /usr/local/lib/pyth                                                                                                             on3.7/dist-packages (from -r requirements_raspberry.txt (line 69)) (3.7.4.1)
Requirement already satisfied: tzlocal==2.0.0 in /usr/local/lib/python3.7/dist-p                                                                                                             ackages (from -r requirements_raspberry.txt (line 70)) (2.0.0)
Requirement already satisfied: urllib3==1.25.8 in /usr/local/lib/python3.7/dist-                                                                                                             packages (from -r requirements_raspberry.txt (line 71)) (1.25.8)
Requirement already satisfied: Werkzeug==0.16.0 in /usr/local/lib/python3.7/dist                                                                                                             -packages (from -r requirements_raspberry.txt (line 72)) (0.16.0)
Requirement already satisfied: wrapt==1.11.2 in /usr/local/lib/python3.7/dist-pa                                                                                                             ckages (from -r requirements_raspberry.txt (line 73)) (1.11.2)
Requirement already satisfied: WTForms==2.2.1 in /usr/local/lib/python3.7/dist-p                                                                                                             ackages (from -r requirements_raspberry.txt (line 74)) (2.2.1)
Requirement already satisfied: yolk3k==0.9 in /usr/local/lib/python3.7/dist-pack                                                                                                             ages (from -r requirements_raspberry.txt (line 75)) (0.9)
Requirement already satisfied: setuptools>=0.7 in /usr/lib/python3/dist-packages                                                                                                              (from APScheduler==3.6.3->-r requirements_raspberry.txt (line 2)) (40.8.0)
(venv) pi@EVBox:~/Oppleo $ sudo systemctl start Oppleo.service
(venv) pi@EVBox:~/Oppleo $ sudo systemctl status Oppleo.service
● Oppleo.service - Oppleo Application
   Loaded: loaded (/etc/systemd/system/Oppleo.service; enabled; vendor preset: e
   Active: activating (auto-restart) (Result: exit-code) since Mon 2020-06-22 19
  Process: 1555 ExecStart=/home/pi/Oppleo/venv/bin/python3 /home/pi/Oppleo/src/n
 Main PID: 1555 (code=exited, status=1/FAILURE)
lines 1-5/5 (END)...skipping...
● Oppleo.service - Oppleo Application
   Loaded: loaded (/etc/systemd/system/Oppleo.service; enabled; vendor preset: enabled)
   Active: activating (auto-restart) (Result: exit-code) since Mon 2020-06-22 19:25:24 CEST; 860ms ago
  Process: 1555 ExecStart=/home/pi/Oppleo/venv/bin/python3 /home/pi/Oppleo/src/nl/oppleo/webapp/Oppleo.py socketserver (code=exited, status=1/FAILURE)
 Main PID: 1555 (code=exited, status=1/FAILURE)

The venv folder in /home/pi still exist.

(venv) pi@EVBox:~/Oppleo $ ls
db  doc  docker-compose.yml  install  kill.sh  README.md  requirements_non_raspberry.txt  requirements_raspberry.txt  requirements.txt  snapshot  src  start.sh  test  tools  venv
(venv) pi@EVBox:~/Oppleo $ cd ..
(venv) pi@EVBox:~ $ ls
MFRC522-python  Oppleo  SPI-Py  venv
(venv) pi@EVBox:~ $

I think I have to do the first 2 commands outside de venv.

cd /home/pi/Oppleo/
python3 -m venv venv

Edit: Same results

I updated my previous comment to make it a little more clear.

Not sure why it presents the python3-venv issue, you created a venv before. Try installing the python3-venv package as the first error suggested, by running sudo apt install python3-venv outside the venv (i mean deactivating it using deactivate).

If you create the virtual environment with sudo you might run into rights issues, thats probably why the pip update command fails after.

To get rid of virtual environments just remove the venv directory. You can use the rm -rf venv command in the /home/pi/ directory. Also remove the venv in /home/pi/Oppleo/, you probably need to use sudo rm -rf venv for this one. Be carefull with these rm commands, they'll remove files and directories permanently.

To summarize, type the following commands, and please don't continue when it returns an error, we need to sort the error first:

  1. deactivate
  2. cd /home/pi/
  3. rm -rf venv (please make sure you are in the /home/pi directory for this command)
  4. cd /home/pi/Oppleo/
  5. sudo rm -rf venv (make sure you are in the /home/pi/Oppleo/ directory for this command)
  6. sudo apt install python3-dev
  7. python3 -m venv venv
  8. source venv/bin/activate
  9. pip install --upgrade pip
  10. pip install -r requirements_raspberry.txt

If that all returns with no errors, you can start using sudo systemctl start Oppleo.service and check the status using sudo systemctl status Oppleo.service. Fingers crossed.

Starting outsite the venv looks better:

pi@EVBox:~ $ sudo systemctl start Oppleo.service
pi@EVBox:~ $ sudo systemctl status Oppleo.service
● Oppleo.service - Oppleo Application
Loaded: loaded (/etc/systemd/system/Oppleo.service; enabled; vendor preset: enabled)
Active: active (running) since Mon 2020-06-22 21:20:02 CEST; 229ms ago
Main PID: 3334 (python3)
Tasks: 1 (limit: 2200)
Memory: 3.1M
CGroup: /system.slice/Oppleo.service
└─3334 /home/pi/Oppleo/venv/bin/python3 /home/pi/Oppleo/src/nl/oppleo/webapp/Oppleo.py socketserver

Jun 22 21:20:02 EVBox systemd[1]: Started Oppleo Application.
pi@EVBox:~ $

Running the systemctl inside or outside the venv should not matter. Looks like it is started, can you access it with your browser?

http://192.168.1.245 is not responding.

Syslog:

Jun 22 21:26:04 EVBox systemd[1]: Started Oppleo Application.
Jun 22 21:26:04 EVBox python3[699]: Traceback (most recent call last):
Jun 22 21:26:04 EVBox python3[699]:   File "/home/pi/Oppleo/src/nl/oppleo/webapp/Oppleo.py", line 3, in <module>
Jun 22 21:26:04 EVBox python3[699]:     from nl.oppleo.config.OppleoSystemConfig import OppleoSystemConfig
Jun 22 21:26:04 EVBox python3[699]:   File "/home/pi/Oppleo/src/nl/oppleo/config/OppleoSystemConfig.py", line 6, in <module>
Jun 22 21:26:04 EVBox python3[699]:     from werkzeug.security import generate_password_hash, check_password_hash
Jun 22 21:26:04 EVBox python3[699]: ModuleNotFoundError: No module named 'werkzeug'
Jun 22 21:26:04 EVBox systemd[1]: Oppleo.service: Main process exited, code=exited, status=1/FAILURE
Jun 22 21:26:04 EVBox systemd[1]: Oppleo.service: Failed with result 'exit-code'.
Jun 22 21:26:09 EVBox systemd[1]: Oppleo.service: Service RestartSec=5s expired, scheduling restart.
Jun 22 21:26:09 EVBox systemd[1]: Oppleo.service: Scheduled restart job, restart counter is at 19.
Jun 22 21:26:09 EVBox systemd[1]: Stopped Oppleo Application.
Jun 22 21:26:09 EVBox systemd[1]: Started Oppleo Application.
Jun 22 21:26:10 EVBox python3[700]: Traceback (most recent call last):
Jun 22 21:26:10 EVBox python3[700]:   File "/home/pi/Oppleo/src/nl/oppleo/webapp/Oppleo.py", line 3, in <module>
Jun 22 21:26:10 EVBox python3[700]:     from nl.oppleo.config.OppleoSystemConfig import OppleoSystemConfig
Jun 22 21:26:10 EVBox python3[700]:   File "/home/pi/Oppleo/src/nl/oppleo/config/OppleoSystemConfig.py", line 6, in <module>
Jun 22 21:26:10 EVBox python3[700]:     from werkzeug.security import generate_password_hash, check_password_hash
Jun 22 21:26:10 EVBox python3[700]: ModuleNotFoundError: No module named 'werkzeug'
Jun 22 21:26:10 EVBox systemd[1]: Oppleo.service: Main process exited, code=exited, status=1/FAILURE
Jun 22 21:26:10 EVBox systemd[1]: Oppleo.service: Failed with result 'exit-code'.
Jun 22 21:26:15 EVBox systemd[1]: Oppleo.service: Service RestartSec=5s expired, scheduling restart.
Jun 22 21:26:15 EVBox systemd[1]: Oppleo.service: Scheduled restart job, restart counter is at 20.
Jun 22 21:26:15 EVBox systemd[1]: Stopped Oppleo Application.
Jun 22 21:26:15 EVBox systemd[1]: Started Oppleo Application.
Jun 22 21:26:15 EVBox python3[703]: Traceback (most recent call last):
Jun 22 21:26:15 EVBox python3[703]:   File "/home/pi/Oppleo/src/nl/oppleo/webapp/Oppleo.py", line 3, in <module>
Jun 22 21:26:15 EVBox python3[703]:     from nl.oppleo.config.OppleoSystemConfig import OppleoSystemConfig
Jun 22 21:26:15 EVBox python3[703]:   File "/home/pi/Oppleo/src/nl/oppleo/config/OppleoSystemConfig.py", line 6, in <module>
Jun 22 21:26:15 EVBox python3[703]:     from werkzeug.security import generate_password_hash, check_password_hash
Jun 22 21:26:15 EVBox python3[703]: ModuleNotFoundError: No module named 'werkzeug'
Jun 22 21:26:15 EVBox systemd[1]: Oppleo.service: Main process exited, code=exited, status=1/FAILURE
Jun 22 21:26:15 EVBox systemd[1]: Oppleo.service: Failed with result 'exit-code'.
Jun 22 21:26:20 EVBox systemd[1]: Oppleo.service: Service RestartSec=5s expired, scheduling restart.
Jun 22 21:26:20 EVBox systemd[1]: Oppleo.service: Scheduled restart job, restart counter is at 21.
Jun 22 21:26:20 EVBox systemd[1]: Stopped Oppleo Application.
Jun 22 21:26:20 EVBox systemd[1]: Started Oppleo Application.
Jun 22 21:26:20 EVBox python3[704]: Traceback (most recent call last):
Jun 22 21:26:20 EVBox python3[704]:   File "/home/pi/Oppleo/src/nl/oppleo/webapp/Oppleo.py", line 3, in <module>
Jun 22 21:26:20 EVBox python3[704]:     from nl.oppleo.config.OppleoSystemConfig import OppleoSystemConfig
Jun 22 21:26:20 EVBox python3[704]:   File "/home/pi/Oppleo/src/nl/oppleo/config/OppleoSystemConfig.py", line 6, in <module>
Jun 22 21:26:20 EVBox python3[704]:     from werkzeug.security import generate_password_hash, check_password_hash
Jun 22 21:26:20 EVBox python3[704]: ModuleNotFoundError: No module named 'werkzeug'
Jun 22 21:26:20 EVBox systemd[1]: Oppleo.service: Main process exited, code=exited, status=1/FAILURE
Jun 22 21:26:20 EVBox systemd[1]: Oppleo.service: Failed with result 'exit-code'.
Jun 22 21:26:22 EVBox systemd[1]: Started Session c2 of user pi.
Jun 22 21:26:25 EVBox systemd[1]: Oppleo.service: Service RestartSec=5s expired, scheduling restart.
Jun 22 21:26:25 EVBox systemd[1]: Oppleo.service: Scheduled restart job, restart counter is at 22.
Jun 22 21:26:25 EVBox systemd[1]: Stopped Oppleo Application.
Jun 22 21:26:25 EVBox systemd[1]: Started Oppleo Application.
Jun 22 21:26:26 EVBox python3[716]: Traceback (most recent call last):
Jun 22 21:26:26 EVBox python3[716]:   File "/home/pi/Oppleo/src/nl/oppleo/webapp/Oppleo.py", line 3, in <module>
Jun 22 21:26:26 EVBox python3[716]:     from nl.oppleo.config.OppleoSystemConfig import OppleoSystemConfig
Jun 22 21:26:26 EVBox python3[716]:   File "/home/pi/Oppleo/src/nl/oppleo/config/OppleoSystemConfig.py", line 6, in <module>
Jun 22 21:26:26 EVBox python3[716]:     from werkzeug.security import generate_password_hash, check_password_hash
Jun 22 21:26:26 EVBox python3[716]: ModuleNotFoundError: No module named 'werkzeug'
Jun 22 21:26:26 EVBox systemd[1]: Oppleo.service: Main process exited, code=exited, status=1/FAILURE
Jun 22 21:26:26 EVBox systemd[1]: Oppleo.service: Failed with result 'exit-code'.
Jun 22 21:26:31 EVBox systemd[1]: Oppleo.service: Service RestartSec=5s expired, scheduling restart.
Jun 22 21:26:31 EVBox systemd[1]: Oppleo.service: Scheduled restart job, restart counter is at 23.
Jun 22 21:26:31 EVBox systemd[1]: Stopped Oppleo Application.
Jun 22 21:26:31 EVBox systemd[1]: Started Oppleo Application.
Jun 22 21:26:31 EVBox python3[718]: Traceback (most recent call last):
Jun 22 21:26:31 EVBox python3[718]:   File "/home/pi/Oppleo/src/nl/oppleo/webapp/Oppleo.py", line 3, in <module>
Jun 22 21:26:31 EVBox python3[718]:     from nl.oppleo.config.OppleoSystemConfig import OppleoSystemConfig
Jun 22 21:26:31 EVBox python3[718]:   File "/home/pi/Oppleo/src/nl/oppleo/config/OppleoSystemConfig.py", line 6, in <module>
Jun 22 21:26:31 EVBox python3[718]:     from werkzeug.security import generate_password_hash, check_password_hash
Jun 22 21:26:31 EVBox python3[718]: ModuleNotFoundError: No module named 'werkzeug'
Jun 22 21:26:31 EVBox systemd[1]: Oppleo.service: Main process exited, code=exited, status=1/FAILURE
Jun 22 21:26:31 EVBox systemd[1]: Oppleo.service: Failed with result 'exit-code'.

Jun 22 21:26:04 EVBox systemd[1]: Started Oppleo Application.
Jun 22 21:26:04 EVBox python3[699]: Traceback (most recent call last):
Jun 22 21:26:04 EVBox python3[699]:   File "/home/pi/Oppleo/src/nl/oppleo/webapp/Oppleo.py", line 3, in <module>
Jun 22 21:26:04 EVBox python3[699]:     from nl.oppleo.config.OppleoSystemConfig import OppleoSystemConfig
Jun 22 21:26:04 EVBox python3[699]:   File "/home/pi/Oppleo/src/nl/oppleo/config/OppleoSystemConfig.py", line 6, in <module>
Jun 22 21:26:04 EVBox python3[699]:     from werkzeug.security import generate_password_hash, check_password_hash
Jun 22 21:26:04 EVBox python3[699]: ModuleNotFoundError: No module named 'werkzeug'
Jun 22 21:26:04 EVBox systemd[1]: Oppleo.service: Main process exited, code=exited, status=1/FAILURE
Jun 22 21:26:04 EVBox systemd[1]: Oppleo.service: Failed with result 'exit-code'.
Jun 22 21:26:09 EVBox systemd[1]: Oppleo.service: Service RestartSec=5s expired, scheduling restart.
Jun 22 21:26:09 EVBox systemd[1]: Oppleo.service: Scheduled restart job, restart counter is at 19.
Jun 22 21:26:09 EVBox systemd[1]: Stopped Oppleo Application.
Jun 22 21:26:09 EVBox systemd[1]: Started Oppleo Application.
Jun 22 21:26:10 EVBox python3[700]: Traceback (most recent call last):
Jun 22 21:26:10 EVBox python3[700]:   File "/home/pi/Oppleo/src/nl/oppleo/webapp/Oppleo.py", line 3, in <module>
Jun 22 21:26:10 EVBox python3[700]:     from nl.oppleo.config.OppleoSystemConfig import OppleoSystemConfig
Jun 22 21:26:10 EVBox python3[700]:   File "/home/pi/Oppleo/src/nl/oppleo/config/OppleoSystemConfig.py", line 6, in <module>
Jun 22 21:26:10 EVBox python3[700]:     from werkzeug.security import generate_password_hash, check_password_hash
Jun 22 21:26:10 EVBox python3[700]: ModuleNotFoundError: No module named 'werkzeug'
Jun 22 21:26:10 EVBox systemd[1]: Oppleo.service: Main process exited, code=exited, status=1/FAILURE
Jun 22 21:26:10 EVBox systemd[1]: Oppleo.service: Failed with result 'exit-code'.
Jun 22 21:26:15 EVBox systemd[1]: Oppleo.service: Service RestartSec=5s expired, scheduling restart.
Jun 22 21:26:15 EVBox systemd[1]: Oppleo.service: Scheduled restart job, restart counter is at 20.
Jun 22 21:26:15 EVBox systemd[1]: Stopped Oppleo Application.
Jun 22 21:26:15 EVBox systemd[1]: Started Oppleo Application.
Jun 22 21:26:15 EVBox python3[703]: Traceback (most recent call last):
Jun 22 21:26:15 EVBox python3[703]:   File "/home/pi/Oppleo/src/nl/oppleo/webapp/Oppleo.py", line 3, in <module>
Jun 22 21:26:15 EVBox python3[703]:     from nl.oppleo.config.OppleoSystemConfig import OppleoSystemConfig
Jun 22 21:26:15 EVBox python3[703]:   File "/home/pi/Oppleo/src/nl/oppleo/config/OppleoSystemConfig.py", line 6, in <module>
Jun 22 21:26:15 EVBox python3[703]:     from werkzeug.security import generate_password_hash, check_password_hash
Jun 22 21:26:15 EVBox python3[703]: ModuleNotFoundError: No module named 'werkzeug'
Jun 22 21:26:15 EVBox systemd[1]: Oppleo.service: Main process exited, code=exited, status=1/FAILURE
Jun 22 21:26:15 EVBox systemd[1]: Oppleo.service: Failed with result 'exit-code'.
Jun 22 21:26:20 EVBox systemd[1]: Oppleo.service: Service RestartSec=5s expired, scheduling restart.
Jun 22 21:26:20 EVBox systemd[1]: Oppleo.service: Scheduled restart job, restart counter is at 21.
Jun 22 21:26:20 EVBox systemd[1]: Stopped Oppleo Application.
Jun 22 21:26:20 EVBox systemd[1]: Started Oppleo Application.
Jun 22 21:26:20 EVBox python3[704]: Traceback (most recent call last):
Jun 22 21:26:20 EVBox python3[704]:   File "/home/pi/Oppleo/src/nl/oppleo/webapp/Oppleo.py", line 3, in <module>
Jun 22 21:26:20 EVBox python3[704]:     from nl.oppleo.config.OppleoSystemConfig import OppleoSystemConfig
Jun 22 21:26:20 EVBox python3[704]:   File "/home/pi/Oppleo/src/nl/oppleo/config/OppleoSystemConfig.py", line 6, in <module>
Jun 22 21:26:20 EVBox python3[704]:     from werkzeug.security import generate_password_hash, check_password_hash
Jun 22 21:26:20 EVBox python3[704]: ModuleNotFoundError: No module named 'werkzeug'
Jun 22 21:26:20 EVBox systemd[1]: Oppleo.service: Main process exited, code=exited, status=1/FAILURE
Jun 22 21:26:20 EVBox systemd[1]: Oppleo.service: Failed with result 'exit-code'.
Jun 22 21:26:22 EVBox systemd[1]: Started Session c2 of user pi.
Jun 22 21:26:25 EVBox systemd[1]: Oppleo.service: Service RestartSec=5s expired, scheduling restart.
Jun 22 21:26:25 EVBox systemd[1]: Oppleo.service: Scheduled restart job, restart counter is at 22.
Jun 22 21:26:25 EVBox systemd[1]: Stopped Oppleo Application.
Jun 22 21:26:25 EVBox systemd[1]: Started Oppleo Application.
Jun 22 21:26:26 EVBox python3[716]: Traceback (most recent call last):
Jun 22 21:26:26 EVBox python3[716]:   File "/home/pi/Oppleo/src/nl/oppleo/webapp/Oppleo.py", line 3, in <module>
Jun 22 21:26:26 EVBox python3[716]:     from nl.oppleo.config.OppleoSystemConfig import OppleoSystemConfig
Jun 22 21:26:26 EVBox python3[716]:   File "/home/pi/Oppleo/src/nl/oppleo/config/OppleoSystemConfig.py", line 6, in <module>
Jun 22 21:26:26 EVBox python3[716]:     from werkzeug.security import generate_password_hash, check_password_hash
Jun 22 21:26:26 EVBox python3[716]: ModuleNotFoundError: No module named 'werkzeug'
Jun 22 21:26:26 EVBox systemd[1]: Oppleo.service: Main process exited, code=exited, status=1/FAILURE
Jun 22 21:26:26 EVBox systemd[1]: Oppleo.service: Failed with result 'exit-code'.
Jun 22 21:26:31 EVBox systemd[1]: Oppleo.service: Service RestartSec=5s expired, scheduling restart.
Jun 22 21:26:31 EVBox systemd[1]: Oppleo.service: Scheduled restart job, restart counter is at 23.
Jun 22 21:26:31 EVBox systemd[1]: Stopped Oppleo Application.
Jun 22 21:26:31 EVBox systemd[1]: Started Oppleo Application.
Jun 22 21:26:31 EVBox python3[718]: Traceback (most recent call last):
Jun 22 21:26:31 EVBox python3[718]:   File "/home/pi/Oppleo/src/nl/oppleo/webapp/Oppleo.py", line 3, in <module>
Jun 22 21:26:31 EVBox python3[718]:     from nl.oppleo.config.OppleoSystemConfig import OppleoSystemConfig
Jun 22 21:26:31 EVBox python3[718]:   File "/home/pi/Oppleo/src/nl/oppleo/config/OppleoSystemConfig.py", line 6, in <module>
Jun 22 21:26:31 EVBox python3[718]:     from werkzeug.security import generate_password_hash, check_password_hash
Jun 22 21:26:31 EVBox python3[718]: ModuleNotFoundError: No module named 'werkzeug'
Jun 22 21:26:31 EVBox systemd[1]: Oppleo.service: Main process exited, code=exited, status=1/FAILURE
Jun 22 21:26:31 EVBox systemd[1]: Oppleo.service: Failed with result 'exit-code'.

The werkzeug folder is still missing:

(venv) pi@EVBox:~ $ cd /home/pi/Oppleo/venv/lib/python3.7/site-packages/werkzeug
-bash: cd: /home/pi/Oppleo/venv/lib/python3.7/site-packages/werkzeug: No such file or directory
(venv) pi@EVBox:~ $
(venv) pi@EVBox:~ $ pip show werkzeug
Name: Werkzeug
Version: 0.16.0
Summary: The comprehensive WSGI web application library.
Home-page: https://palletsprojects.com/p/werkzeug/
Author: Armin Ronacher
Author-email: armin.ronacher@active-4.com
License: BSD-3-Clause
Location: /home/pi/venv/lib/python3.7/site-packages
Requires:
Required-by: Flask
(venv) pi@EVBox:~ $
(venv) pi@EVBox:~ $ cd /home/pi/Oppleo/venv/lib/python3.7/site-packages
(venv) pi@EVBox:~/Oppleo/venv/lib/python3.7/site-packages $ ls
easy_install.py  pip  pip-18.1.dist-info  pkg_resources  pkg_resources-0.0.0.dist-info  __pycache__  setuptools  setuptools-40.8.0.dist-info
(venv) pi@EVBox:~/Oppleo/venv/lib/python3.7/site-packages $

In your listing it shows

Location: /home/pi/venv/lib/python3.7/site-packages

Your venv is still in the /home/pi folder. Deactivate that, remove it, go into the /home/pi/Oppleo/ directory and create one there.

I don't know why it created one in the /home/pi/ directory again. Run the commands I listed before step by step. Make sure you are in the /home/pi/Oppleo/ directory before creating the venv.

I followed your steps:


pi@EVBox:~/Oppleo/src/nl/oppleo/webapp $ cd /home/pi/
pi@EVBox:~ $ rm -rf venv
pi@EVBox:~ $ ls
MFRC522-python  Oppleo  SPI-Py
pi@EVBox:~ $ cd /home/pi/Oppleo/
pi@EVBox:~/Oppleo $ sudo rm -rf venv
pi@EVBox:~/Oppleo $ ls
db  doc  docker-compose.yml  install  kill.sh  README.md  requirements_non_raspberry.txt  requirements_raspberry.txt  requirements.txt  snapshot  src  start.sh  test  tools
pi@EVBox:~/Oppleo $ sudo apt install python3-dev
Reading package lists... Done
Building dependency tree
Reading state information... Done
python3-dev is already the newest version (3.7.3-1).
The following package was automatically installed and is no longer required:
  rpi-eeprom-images
Use 'sudo apt autoremove' to remove it.
0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
pi@EVBox:~/Oppleo $ python3 -m venv venv
pi@EVBox:~/Oppleo $ source venv/bin/activate
(venv) pi@EVBox:~/Oppleo $ pip install --upgrade pip
Looking in indexes: https://pypi.org/simple, https://www.piwheels.org/simple
Cache entry deserialization failed, entry ignored
Cache entry deserialization failed, entry ignored
Collecting pip
  Using cached https://files.pythonhosted.org/packages/43/84/23ed6a1796480a6f1a2d38f2802901d078266bda38388954d01d3f2e821d/pip-20.1.1-py2.py3-none-any.whl
Installing collected packages: pip
  Found existing installation: pip 18.1
    Uninstalling pip-18.1:
      Successfully uninstalled pip-18.1
Successfully installed pip-20.1.1
(venv) pi@EVBox:~/Oppleo $ pip install -r requirements_raspberry.txt
Looking in indexes: https://pypi.org/simple, https://www.piwheels.org/simple
Collecting alembic==1.3.1
  Using cached https://www.piwheels.org/simple/alembic/alembic-1.3.1-py2.py3-none-any.whl (144 kB)
Collecting APScheduler==3.6.3
  Using cached APScheduler-3.6.3-py2.py3-none-any.whl (58 kB)
Collecting astroid==2.3.3
  Using cached astroid-2.3.3-py3-none-any.whl (205 kB)
Collecting bcrypt==3.1.7
  Using cached https://www.piwheels.org/simple/bcrypt/bcrypt-3.1.7-cp37-cp37m-linux_armv7l.whl (56 kB)
Collecting blinker==1.4
  Using cached https://www.piwheels.org/simple/blinker/blinker-1.4-py3-none-any.whl (14 kB)
Collecting certifi==2019.11.28
  Using cached certifi-2019.11.28-py2.py3-none-any.whl (156 kB)
Collecting cffi==1.13.2
  Using cached https://www.piwheels.org/simple/cffi/cffi-1.13.2-cp37-cp37m-linux_armv7l.whl (342 kB)
Collecting chardet==3.0.4
  Using cached chardet-3.0.4-py2.py3-none-any.whl (133 kB)
Collecting Click==7.0
  Using cached Click-7.0-py2.py3-none-any.whl (81 kB)
Collecting cryptography==2.8
  Using cached https://www.piwheels.org/simple/cryptography/cryptography-2.8-cp37-cp37m-linux_armv7l.whl (852 kB)
Collecting dnspython==1.16.0
  Using cached dnspython-1.16.0-py2.py3-none-any.whl (188 kB)
Collecting docutils==0.15.2
  Using cached docutils-0.15.2-py3-none-any.whl (547 kB)
Collecting eventlet==0.25.1
  Using cached eventlet-0.25.1-py2.py3-none-any.whl (222 kB)
Collecting Flask==1.1.1
  Using cached Flask-1.1.1-py2.py3-none-any.whl (94 kB)
Collecting Flask-APScheduler==1.11.0
  Using cached https://www.piwheels.org/simple/flask-apscheduler/Flask_APScheduler-1.11.0-py3-none-any.whl (18 kB)
Collecting Flask-Bcrypt==0.7.1
  Using cached https://www.piwheels.org/simple/flask-bcrypt/Flask_Bcrypt-0.7.1-py3-none-any.whl (5.0 kB)
Collecting Flask-Injector==0.12.0
  Using cached Flask_Injector-0.12.0-py2.py3-none-any.whl (7.9 kB)
Collecting Flask-Login==0.4.1
  Using cached https://www.piwheels.org/simple/flask-login/Flask_Login-0.4.1-py2.py3-none-any.whl (15 kB)
Collecting Flask-Mail==0.9.1
  Using cached https://www.piwheels.org/simple/flask-mail/Flask_Mail-0.9.1-py3-none-any.whl (7.7 kB)
Collecting Flask-Migrate==2.5.2
  Using cached Flask_Migrate-2.5.2-py2.py3-none-any.whl (13 kB)
Collecting Flask-Script==2.0.6
  Using cached https://www.piwheels.org/simple/flask-script/Flask_Script-2.0.6-py3-none-any.whl (14 kB)
Collecting Flask-SocketIO==4.2.1
  Using cached Flask_SocketIO-4.2.1-py2.py3-none-any.whl (16 kB)
Collecting Flask-SQLAlchemy==2.4.1
  Using cached Flask_SQLAlchemy-2.4.1-py2.py3-none-any.whl (17 kB)
Collecting Flask-User==1.0.2.2
  Using cached https://www.piwheels.org/simple/flask-user/Flask_User-1.0.2.2-py2.py3-none-any.whl (130 kB)
Collecting Flask-WTF==0.14.2
  Using cached Flask_WTF-0.14.2-py2.py3-none-any.whl (14 kB)
Collecting greenlet==0.4.15
  Using cached https://www.piwheels.org/simple/greenlet/greenlet-0.4.15-cp37-cp37m-linux_armv7l.whl (47 kB)
Collecting idna==2.8
  Using cached idna-2.8-py2.py3-none-any.whl (58 kB)
Collecting injector==0.18.2
  Using cached injector-0.18.2-py2.py3-none-any.whl (17 kB)
Collecting isort==4.3.21
  Using cached isort-4.3.21-py2.py3-none-any.whl (42 kB)
Collecting itsdangerous==1.1.0
  Using cached itsdangerous-1.1.0-py2.py3-none-any.whl (16 kB)
Collecting Jinja2==2.10.3
  Using cached Jinja2-2.10.3-py2.py3-none-any.whl (125 kB)
Collecting lazy-object-proxy==1.4.3
  Using cached https://www.piwheels.org/simple/lazy-object-proxy/lazy_object_proxy-1.4.3-cp37-cp37m-linux_armv7l.whl (42 kB)
Collecting lockfile==0.12.2
  Using cached lockfile-0.12.2-py2.py3-none-any.whl (13 kB)
Collecting Mako==1.1.0
  Using cached https://www.piwheels.org/simple/mako/Mako-1.1.0-py3-none-any.whl (75 kB)
Collecting MarkupSafe==1.1.1
  Using cached https://www.piwheels.org/simple/markupsafe/MarkupSafe-1.1.1-cp37-cp37m-linux_armv7l.whl (33 kB)
Collecting marshmallow==3.3.0
  Using cached marshmallow-3.3.0-py2.py3-none-any.whl (45 kB)
Collecting mccabe==0.6.1
  Using cached mccabe-0.6.1-py2.py3-none-any.whl (8.6 kB)
Collecting mfrc522==0.0.7
  Using cached mfrc522-0.0.7-py3-none-any.whl (18 kB)
Collecting minimalmodbus==1.0.2
  Using cached minimalmodbus-1.0.2-py2.py3-none-any.whl (34 kB)
Collecting monotonic==1.5
  Using cached monotonic-1.5-py2.py3-none-any.whl (5.3 kB)
Collecting netifaces==0.10.9
  Using cached https://www.piwheels.org/simple/netifaces/netifaces-0.10.9-cp37-cp37m-linux_armv7l.whl (38 kB)
Collecting passlib==1.7.2
  Using cached passlib-1.7.2-py2.py3-none-any.whl (507 kB)
Collecting pid==2.2.5
  Using cached pid-2.2.5-py2.py3-none-any.whl (9.3 kB)
Collecting pigpio==1.45
  Using cached pigpio-1.45-py2.py3-none-any.whl (38 kB)
Collecting psutil==5.6.7
  Using cached https://www.piwheels.org/simple/psutil/psutil-5.6.7-cp37-cp37m-linux_armv7l.whl (279 kB)
Collecting psycopg2==2.8.4
  Using cached https://www.piwheels.org/simple/psycopg2/psycopg2-2.8.4-cp37-cp37m-linux_armv7l.whl (457 kB)
Collecting psycopg2-binary==2.8.4
  Using cached https://www.piwheels.org/simple/psycopg2-binary/psycopg2_binary-2.8.4-cp37-cp37m-linux_armv7l.whl (457 kB)
Collecting py-cpuinfo==5.0.0
  Using cached https://www.piwheels.org/simple/py-cpuinfo/py_cpuinfo-5.0.0-py3-none-any.whl (18 kB)
Collecting pycparser==2.19
  Using cached https://www.piwheels.org/simple/pycparser/pycparser-2.19-py2.py3-none-any.whl (111 kB)
Collecting PyJWT==1.7.1
  Using cached PyJWT-1.7.1-py2.py3-none-any.whl (18 kB)
Collecting pylint==2.4.4
  Using cached pylint-2.4.4-py3-none-any.whl (302 kB)
Collecting pyserial==3.4
  Using cached pyserial-3.4-py2.py3-none-any.whl (193 kB)
Collecting python-daemon==2.2.4
  Using cached python_daemon-2.2.4-py2.py3-none-any.whl (35 kB)
Collecting python-dateutil==2.8.1
  Using cached python_dateutil-2.8.1-py2.py3-none-any.whl (227 kB)
Collecting python-editor==1.0.4
  Using cached python_editor-1.0.4-py3-none-any.whl (4.9 kB)
Collecting python-engineio==3.11.1
  Using cached python_engineio-3.11.1-py2.py3-none-any.whl (49 kB)
Collecting python-socketio==4.4.0
  Using cached python_socketio-4.4.0-py2.py3-none-any.whl (50 kB)
Collecting pytz==2019.3
  Using cached pytz-2019.3-py2.py3-none-any.whl (509 kB)
Collecting requests==2.22.0
  Using cached requests-2.22.0-py2.py3-none-any.whl (57 kB)
Collecting RPi.GPIO==0.7.0
  Using cached https://www.piwheels.org/simple/rpi-gpio/RPi.GPIO-0.7.0-cp37-cp37m-linux_armv7l.whl (69 kB)
Collecting service==0.6.0
  Using cached https://www.piwheels.org/simple/service/service-0.6.0-py3-none-any.whl (7.4 kB)
Collecting setproctitle==1.1.10
  Using cached https://www.piwheels.org/simple/setproctitle/setproctitle-1.1.10-cp37-cp37m-linux_armv7l.whl (36 kB)
Collecting six==1.13.0
  Using cached six-1.13.0-py2.py3-none-any.whl (10 kB)
Collecting spidev==3.5
  Using cached https://www.piwheels.org/simple/spidev/spidev-3.5-cp37-cp37m-linux_armv7l.whl (40 kB)
Collecting SQLAlchemy==1.3.11
  Using cached https://www.piwheels.org/simple/sqlalchemy/SQLAlchemy-1.3.11-cp37-cp37m-linux_armv7l.whl (1.2 MB)
Collecting typed-ast==1.4.0
  Using cached https://www.piwheels.org/simple/typed-ast/typed_ast-1.4.0-cp37-cp37m-linux_armv7l.whl (721 kB)
Collecting typing==3.7.4.1
  Using cached typing-3.7.4.1-py3-none-any.whl (25 kB)
Collecting typing-extensions==3.7.4.1
  Using cached typing_extensions-3.7.4.1-py3-none-any.whl (20 kB)
Collecting tzlocal==2.0.0
  Using cached tzlocal-2.0.0-py2.py3-none-any.whl (15 kB)
Collecting urllib3==1.25.8
  Using cached urllib3-1.25.8-py2.py3-none-any.whl (125 kB)
Collecting Werkzeug==0.16.0
  Using cached Werkzeug-0.16.0-py2.py3-none-any.whl (327 kB)
Collecting wrapt==1.11.2
  Using cached https://www.piwheels.org/simple/wrapt/wrapt-1.11.2-cp37-cp37m-linux_armv7l.whl (68 kB)
Collecting WTForms==2.2.1
  Using cached WTForms-2.2.1-py2.py3-none-any.whl (166 kB)
Collecting yolk3k==0.9
  Using cached https://www.piwheels.org/simple/yolk3k/yolk3k-0.9-py3-none-any.whl (20 kB)
Requirement already satisfied: setuptools>=0.7 in ./venv/lib/python3.7/site-packages (from APScheduler==3.6.3->-r requirements_raspberry.txt (line 2)) (40.8.0)
Installing collected packages: SQLAlchemy, six, python-dateutil, python-editor, MarkupSafe, Mako, alembic, pytz, tzlocal, APScheduler, lazy-object-proxy, wrapt, typed-ast, astroid, pycparser, cffi, bcrypt, blinker, certifi, chardet, Click, cryptography, dnspython, docutils, monotonic, greenlet, eventlet, itsdangerous, Werkzeug, Jinja2, Flask, Flask-APScheduler, Flask-Bcrypt, typing-extensions, injector, typing, Flask-Injector, Flask-Login, Flask-Mail, Flask-SQLAlchemy, Flask-Migrate, Flask-Script, python-engineio, python-socketio, Flask-SocketIO, passlib, WTForms, Flask-WTF, Flask-User, idna, isort, lockfile, marshmallow, mccabe, spidev, RPi.GPIO, mfrc522, pyserial, minimalmodbus, netifaces, pid, pigpio, psutil, psycopg2, psycopg2-binary, py-cpuinfo, PyJWT, pylint, python-daemon, urllib3, requests, setproctitle, service, yolk3k
Successfully installed APScheduler-3.6.3 Click-7.0 Flask-1.1.1 Flask-APScheduler-1.11.0 Flask-Bcrypt-0.7.1 Flask-Injector-0.12.0 Flask-Login-0.4.1 Flask-Mail-0.9.1 Flask-Migrate-2.5.2 Flask-SQLAlchemy-2.4.1 Flask-Script-2.0.6 Flask-SocketIO-4.2.1 Flask-User-1.0.2.2 Flask-WTF-0.14.2 Jinja2-2.10.3 Mako-1.1.0 MarkupSafe-1.1.1 PyJWT-1.7.1 RPi.GPIO-0.7.0 SQLAlchemy-1.3.11 WTForms-2.2.1 Werkzeug-0.16.0 alembic-1.3.1 astroid-2.3.3 bcrypt-3.1.7 blinker-1.4 certifi-2019.11.28 cffi-1.13.2 chardet-3.0.4 cryptography-2.8 dnspython-1.16.0 docutils-0.15.2 eventlet-0.25.1 greenlet-0.4.15 idna-2.8 injector-0.18.2 isort-4.3.21 itsdangerous-1.1.0 lazy-object-proxy-1.4.3 lockfile-0.12.2 marshmallow-3.3.0 mccabe-0.6.1 mfrc522-0.0.7 minimalmodbus-1.0.2 monotonic-1.5 netifaces-0.10.9 passlib-1.7.2 pid-2.2.5 pigpio-1.45 psutil-5.6.7 psycopg2-2.8.4 psycopg2-binary-2.8.4 py-cpuinfo-5.0.0 pycparser-2.19 pylint-2.4.4 pyserial-3.4 python-daemon-2.2.4 python-dateutil-2.8.1 python-editor-1.0.4 python-engineio-3.11.1 python-socketio-4.4.0 pytz-2019.3 requests-2.22.0 service-0.6.0 setproctitle-1.1.10 six-1.13.0 spidev-3.5 typed-ast-1.4.0 typing-3.7.4.1 typing-extensions-3.7.4.1 tzlocal-2.0.0 urllib3-1.25.8 wrapt-1.11.2 yolk3k-0.9
(venv) pi@EVBox:~/Oppleo $ sudo systemctl start Oppleo.service
(venv) pi@EVBox:~/Oppleo $ sudo systemctl status Oppleo.service
● Oppleo.service - Oppleo Application
   Loaded: loaded (/etc/systemd/system/Oppleo.service; enabled; vendor preset: enabled)
   Active: activating (auto-restart) (Result: exit-code) since Mon 2020-06-22 21:41:29 CEST; 4s ago
  Process: 1108 ExecStart=/home/pi/Oppleo/venv/bin/python3 /home/pi/Oppleo/src/nl/oppleo/webapp/Oppleo.py socketserver (code=exited, status=1/FAILURE)
 Main PID: 1108 (code=exited, status=1/FAILURE)
(venv) pi@EVBox:~/Oppleo $

The venv folder in /home/pi is gone:

db  doc  docker-compose.yml  install  kill.sh  README.md  requirements_non_raspberry.txt  requirements_raspberry.txt  requirements.txt  snapshot  src  start.sh  test  tools  venv
(venv) pi@EVBox:~/Oppleo $ cd ..
(venv) pi@EVBox:~ $ ls
MFRC522-python  Oppleo  SPI-Py
(venv) pi@EVBox:~ $

New syslog:

Jun 22 21:43:42 EVBox systemd[1]: Started Oppleo Application.
Jun 22 21:43:43 EVBox python3[1171]: 2020-06-22 21:43:43,117 - nl.oppleo.config.OppleoSystemConfig - 1171 MainProcess - 1995455184 MainThread - ERROR - Ini file ERROR: No SIGNATURE in Oppleo
Jun 22 21:43:44 EVBox python3[1171]: 2020-06-22 21:43:44,412 - nl.oppleo.webapp.Oppleo - 1171 MainProcess - 1995455184 MainThread - ERROR - Exception stopped Oppleo! Details:'NoneType' object has no attribute 'charger_name'
Jun 22 21:43:44 EVBox python3[1171]: 2020-06-22 21:43:44,643 - nl.oppleo.webapp.Oppleo - 1171 MainProcess - 1995455184 MainThread - ERROR - Cannot recover Oppleo...
Jun 22 21:43:44 EVBox python3[1171]: System configuration loaded
Jun 22 21:43:44 EVBox python3[1171]: Reporting sys.version 3.7.3 (default, Dec 20 2019, 18:57:59)
Jun 22 21:43:44 EVBox python3[1171]: [GCC 8.3.0] :
Jun 22 21:43:44 EVBox python3[1171]: Traceback (most recent call last):
Jun 22 21:43:44 EVBox python3[1171]:   File "/home/pi/Oppleo/src/nl/oppleo/webapp/Oppleo.py", line 24, in <module>
Jun 22 21:43:44 EVBox python3[1171]:     oppleoSystemConfig.chargerName = oppleoConfig.chargerName
Jun 22 21:43:44 EVBox python3[1171]:   File "/home/pi/Oppleo/src/nl/oppleo/config/OppleoConfig.py", line 138, in chargerName
Jun 22 21:43:44 EVBox python3[1171]:     return self.__chargerConfigModel.charger_name
Jun 22 21:43:44 EVBox python3[1171]: AttributeError: 'NoneType' object has no attribute 'charger_name'
Jun 22 21:43:44 EVBox python3[1171]: During handling of the above exception, another exception occurred:
Jun 22 21:43:44 EVBox python3[1171]: Traceback (most recent call last):
Jun 22 21:43:44 EVBox python3[1171]:   File "/home/pi/Oppleo/src/nl/oppleo/webapp/Oppleo.py", line 437, in <module>
Jun 22 21:43:44 EVBox python3[1171]:     '' if oppleoConfig is None or not isinstance(oppleoConfig.chargerName, str) else ' chargerName: {}'.format(oppleoConfig.chargerName)
Jun 22 21:43:44 EVBox python3[1171]:   File "/home/pi/Oppleo/src/nl/oppleo/config/OppleoConfig.py", line 138, in chargerName
Jun 22 21:43:44 EVBox python3[1171]:     return self.__chargerConfigModel.charger_name
Jun 22 21:43:44 EVBox python3[1171]: AttributeError: 'NoneType' object has no attribute 'charger_name'
Jun 22 21:43:44 EVBox systemd[1]: Oppleo.service: Main process exited, code=exited, status=1/FAILURE
Jun 22 21:43:44 EVBox systemd[1]: Oppleo.service: Failed with result 'exit-code'.
Jun 22 21:43:49 EVBox systemd[1]: Oppleo.service: Service RestartSec=5s expired, scheduling restart.
Jun 22 21:43:49 EVBox systemd[1]: Oppleo.service: Scheduled restart job, restart counter is at 93.
Jun 22 21:43:49 EVBox systemd[1]: Stopped Oppleo Application.
Jun 22 21:43:49 EVBox systemd[1]: Started Oppleo Application.
Jun 22 21:43:50 EVBox python3[1173]: 2020-06-22 21:43:50,636 - nl.oppleo.config.OppleoSystemConfig - 1173 MainProcess - 1996241616 MainThread - ERROR - Ini file ERROR: No SIGNATURE in Oppleo
Jun 22 21:43:51 EVBox python3[1173]: 2020-06-22 21:43:51,934 - nl.oppleo.webapp.Oppleo - 1173 MainProcess - 1996241616 MainThread - ERROR - Exception stopped Oppleo! Details:'NoneType' object has no attribute 'charger_name'
Jun 22 21:43:52 EVBox python3[1173]: 2020-06-22 21:43:52,166 - nl.oppleo.webapp.Oppleo - 1173 MainProcess - 1996241616 MainThread - ERROR - Cannot recover Oppleo...
Jun 22 21:43:52 EVBox python3[1173]: System configuration loaded
Jun 22 21:43:52 EVBox python3[1173]: Reporting sys.version 3.7.3 (default, Dec 20 2019, 18:57:59)
Jun 22 21:43:52 EVBox python3[1173]: [GCC 8.3.0] :
Jun 22 21:43:52 EVBox python3[1173]: Traceback (most recent call last):
Jun 22 21:43:52 EVBox python3[1173]:   File "/home/pi/Oppleo/src/nl/oppleo/webapp/Oppleo.py", line 24, in <module>
Jun 22 21:43:52 EVBox python3[1173]:     oppleoSystemConfig.chargerName = oppleoConfig.chargerName
Jun 22 21:43:52 EVBox python3[1173]:   File "/home/pi/Oppleo/src/nl/oppleo/config/OppleoConfig.py", line 138, in chargerName
Jun 22 21:43:52 EVBox python3[1173]:     return self.__chargerConfigModel.charger_name
Jun 22 21:43:52 EVBox python3[1173]: AttributeError: 'NoneType' object has no attribute 'charger_name'
Jun 22 21:43:52 EVBox python3[1173]: During handling of the above exception, another exception occurred:
Jun 22 21:43:52 EVBox python3[1173]: Traceback (most recent call last):
Jun 22 21:43:52 EVBox python3[1173]:   File "/home/pi/Oppleo/src/nl/oppleo/webapp/Oppleo.py", line 437, in <module>
Jun 22 21:43:52 EVBox python3[1173]:     '' if oppleoConfig is None or not isinstance(oppleoConfig.chargerName, str) else ' chargerName: {}'.format(oppleoConfig.chargerName)
Jun 22 21:43:52 EVBox python3[1173]:   File "/home/pi/Oppleo/src/nl/oppleo/config/OppleoConfig.py", line 138, in chargerName
Jun 22 21:43:52 EVBox python3[1173]:     return self.__chargerConfigModel.charger_name
Jun 22 21:43:52 EVBox python3[1173]: AttributeError: 'NoneType' object has no attribute 'charger_name'
Jun 22 21:43:52 EVBox systemd[1]: Oppleo.service: Main process exited, code=exited, status=1/FAILURE
Jun 22 21:43:52 EVBox systemd[1]: Oppleo.service: Failed with result 'exit-code'.
Jun 22 21:43:57 EVBox systemd[1]: Oppleo.service: Service RestartSec=5s expired, scheduling restart.
Jun 22 21:43:57 EVBox systemd[1]: Oppleo.service: Scheduled restart job, restart counter is at 94.
Jun 22 21:43:57 EVBox systemd[1]: Stopped Oppleo Application.
Jun 22 21:43:57 EVBox systemd[1]: Started Oppleo Application.

Excellent! We got over the werkzeug/venv issue now.

You need to populate the database with tables and a default config. I noticed I didn't describe this step, I need to add that.

I use liquibase, it allows me to make changes to the datadase structure and run an update command everywhere to get to the same state. Installing is a bit cumbersome, but will allow you to implement all future changes easier. Download it from liquibase.com and install it as in the video.

Then configure it. Go to /home/pi/Oppleo/db/ and open the file /home/pi/Oppleo/db/liquibase.properties in an editor, nano for example (nano /jome/pi/Oppleo/db/liquibase.properties) and update the url value (change the 10.0.1.160 IP to the IP running your postgress database, and change charger in the url to the name of your database. (jdbc:postgresql://:5432/). Also update the username and password values (mine are both charger :) to reflect the username and password of your database.

Finally go to the db directory (/home/pi/Oppleo/db/) and run the liquibase update command liquibase update. This executes all schema changes in /home/pi/Oppleo/db/sql/ which include create table and inser commands for default values.

Let me know if this works. Nearly there now.

Thanks a lot!
Tomorrow I have time to populate the database.
I will keep you informed.

Ok, I installed Liquibase. So far so good :)

Commands to install liquibase:

sudo echo "export PATH=/home/pi/liquibase-3.10.0:$PATH" >> ~/.bashrc
source ~/.bashrc
liquibase --version

pi@EVBox:~ $ liquibase --version
Starting Liquibase at Wed, 24 Jun 2020 11:50:29 CEST (version 3.10.0 #10 built at Thu Jun 11 09:47:49 UTC 2020)
Liquibase Version: 3.10.0
Liquibase Community 3.10.0 by Datical
Running Java under /usr/lib/jvm/java-11-openjdk-armhf (Version 11.0.7)
pi@EVBox:~ $

We will continue.

pi@EVBox:~/Oppleo/db $ liquibase update
Liquibase Community 3.10.0 by Datical
Unexpected error running Liquibase: liquibase.exception.DatabaseException: liquibase.exception.DatabaseException: Connection could not be created to jdbc:postgresql://192.168.1.245:5432/evbox with driver org.postgresql.Driver.  Possibly the wrong driver for the given database URL
For more information, please use the --logLevel flag

I have already downloaded the latest postgresql-42.2.14.jar file and placed it in the DB folder. Edited the liquibase propeties file to use the new file. but it does not help.

The database is online:

pi@EVBox:~/Oppleo/db $ psql evbox
psql (11.7 (Raspbian 11.7-0+deb10u1))
Type "help" for help.

evbox=>

User and password are correct. (charger charger)

changeLogFile: ./changelog.xml
#url: jdbc:postgresql://localhost:5432/carcharging
url: jdbc:postgresql://192.168.1.245:5432/evbox
username: charger
password: charger
driver: org.postgresql.Driver
classpath: ./postgresql-42.2.14.jar

The ip has to be localhost:

pi@EVBox:~/Oppleo/db $ psql 'host=192.168.1.245 port=5432 dbname=evbox user=charger'
psql: could not connect to server: Connection refused
        Is the server running on host "192.168.1.245" and accepting
        TCP/IP connections on port 5432?
pi@EVBox:~/Oppleo/db $ psql 'host=localhost port=5432 dbname=evbox user=charger'Password for user charger:
pi@EVBox:~/Oppleo/db $ liquibase update                                                                                                                                                      Liquibase Community 3.10.0 by Datical
Unexpected error running Liquibase: ERROR: relation "energy_device" already exis                                                                                                             ts [Failed SQL: (0) create table session (
    id serial primary key,
    rfid varchar(100) not null,
    start_value float,
    end_value float,
    created_at timestamp,
    modified_at timestamp
);

create table energy_device (
    energy_device_id varchar(100) primary key,
    port_name varchar(100),
    slave_address int
);

insert into energy_device values ('device_1', '/dev/ttyUSB0', 1);

create table energy_device_measures (
    id serial primary key,
    energy_device_id varchar(100) references energy_device(energy_device_id),
    kwh_l1 float,
    kwh_l2 float,
    kwh_l3 float,
    a_l1 float,
    a_l2 float,
    a_l3 float,
    v_l1 float,
    v_l2 float,
    v_l3 float,
    p_l1 float,
    p_l2 float,
    p_l3 float,
    kw_total float,
    hz float,
    created_at timestamp
)]
For more information, please use the --logLevel flag
pi@EVBox:~/Oppleo/db $

Localhost should be ok. If you want to open access to Postgres from IP you can allow IP connections to the Postgres database in /etc/postgresql/11/main/postgresql.conf
Change listen_addresses='localhost' to listen_addresses=‘*’
Restart the postgres server sudo /etc/init.d/postgresql restart

Maybe drop the database and recreate it, then run liquibase before starting the service with --logLevel=debug (liquibase update --logLevel=debug).

Good news! De website is running.
I deleted the database evbox en created a new one with the name charger.
I did run the command liquibase update and everything went well.

pi@EVBox:~/Oppleo/db/sql $ sudo systemctl status Oppleo.service
● Oppleo.service - Oppleo Application
   Loaded: loaded (/etc/systemd/system/Oppleo.service; enabled; vendor preset: e
   Active: active (running) since Wed 2020-06-24 14:17:21 CEST; 2h 46min ago
 Main PID: 552 (python3)
    Tasks: 1 (limit: 2200)
   Memory: 41.3M
   CGroup: /system.slice/Oppleo.service
           └─552 /home/pi/Oppleo/venv/bin/python3 /home/pi/Oppleo/src/nl/oppleo/

Jun 24 14:17:21 EVBox systemd[1]: Started Oppleo Application.
Jun 24 14:17:22 EVBox python3[552]: 2020-06-24 14:17:22,834 - nl.oppleo.config.O
Jun 24 14:17:24 EVBox python3[552]: 2020-06-24 14:17:24,803 - nl.oppleo.models.B
Jun 24 14:17:24 EVBox python3[552]: 2020-06-24 14:17:24,804 - nl.oppleo.webapp.O
Jun 24 14:17:24 EVBox python3[552]: 2020-06-24 14:17:24,804 - nl.oppleo.webapp.O
Jun 24 14:17:26 EVBox python3[552]:  * Running on http://0.0.0.0:80/ (Press CTRL
lines 1-15/15 (END)...skipping...
● Oppleo.service - Oppleo Application
   Loaded: loaded (/etc/systemd/system/Oppleo.service; enabled; vendor preset: enabled)
   Active: active (running) since Wed 2020-06-24 14:17:21 CEST; 2h 46min ago
 Main PID: 552 (python3)
    Tasks: 1 (limit: 2200)
   Memory: 41.3M
   CGroup: /system.slice/Oppleo.service
           └─552 /home/pi/Oppleo/venv/bin/python3 /home/pi/Oppleo/src/nl/oppleo/webapp/Oppleo.py socketserver

Jun 24 14:17:21 EVBox systemd[1]: Started Oppleo Application.
Jun 24 14:17:22 EVBox python3[552]: 2020-06-24 14:17:22,834 - nl.oppleo.config.OppleoSystemConfig - 552 MainProcess - 19954551
Jun 24 14:17:24 EVBox python3[552]: 2020-06-24 14:17:24,803 - nl.oppleo.models.Base init_db() - 552 MainProcess - 1995455184 M
Jun 24 14:17:24 EVBox python3[552]: 2020-06-24 14:17:24,804 - nl.oppleo.webapp.Oppleo - 552 MainProcess - 1995455184 MainThrea
Jun 24 14:17:24 EVBox python3[552]: 2020-06-24 14:17:24,804 - nl.oppleo.webapp.Oppleo - 552 MainProcess - 1995455184 MainThrea
Jun 24 14:17:26 EVBox python3[552]:  * Running on http://0.0.0.0:80/ (Press CTRL+C to quit)
~

The website is responding. But with an error :)

503
Dat betekent "Service Unavailable"
Die database om alles in op te slaan? Ja die doet het dus niet...

The database is live and kicking:

pi@EVBox:~/Oppleo/db/sql $ psql charger
psql (11.7 (Raspbian 11.7-0+deb10u1))
Type "help" for help.

charger=> \l
                                  List of databases
   Name    |  Owner   | Encoding |   Collate   |    Ctype    |   Access privileges
-----------+----------+----------+-------------+-------------+-----------------------
 charger   | postgres | UTF8     | en_GB.UTF-8 | en_GB.UTF-8 |
 postgres  | postgres | UTF8     | en_GB.UTF-8 | en_GB.UTF-8 |
 template0 | postgres | UTF8     | en_GB.UTF-8 | en_GB.UTF-8 | =c/postgres          +
           |          |          |             |             | postgres=CTc/postgres
 template1 | postgres | UTF8     | en_GB.UTF-8 | en_GB.UTF-8 | =c/postgres          +
           |          |          |             |             | postgres=CTc/postgres
(4 rows)

charger=> \dt
                 List of relations
 Schema |          Name          | Type  |  Owner
--------+------------------------+-------+---------
 public | charge_session         | table | charger
 public | charger_config         | table | charger
 public | databasechangelog      | table | charger
 public | databasechangeloglock  | table | charger
 public | energy_device          | table | charger
 public | energy_device_measures | table | charger
 public | off_peak_hours         | table | charger
 public | rfid                   | table | charger
 public | session                | table | charger
(9 rows)

charger=>

Nice! So the database is ok, the software can't seem to find it yet. Check the database_url parameter in /home/pi/Oppleo/src/nl/oppleo/config/oppleo.ini to see if it has the correct url. Should probably be postgresql://charger:charger@localhost:5432/charger?

Aaah ofcourse! The database url was configured with the old evbox database.
I changed it and restarted the Oppleo service.

But now the website is down :-S ERR_CONNECTION_REFUSED

pi@EVBox:~ $ sudo systemctl status Oppleo.service
● Oppleo.service - Oppleo Application
   Loaded: loaded (/etc/systemd/system/Oppleo.service; enabled; vendor preset: enabled)
   Active: active (running) since Wed 2020-06-24 17:24:35 CEST; 2s ago
 Main PID: 701 (python3)
    Tasks: 1 (limit: 2200)
   Memory: 25.3M
   CGroup: /system.slice/Oppleo.service
           └─701 /home/pi/Oppleo/venv/bin/python3 /home/pi/Oppleo/src/nl/oppleo/webapp/Oppleo.py socketserver

Jun 24 17:24:35 EVBox systemd[1]: Started Oppleo Application.
Jun 24 17:24:35 EVBox python3[701]: 2020-06-24 17:24:35,685 - nl.oppleo.config.OppleoSystemConfig - 701 MainProcess - 19961146

Oppleo.ini


# Example config file.
# Contains only the bare minimum database connectivity configuration
# Copy this file to oppleo.ini and update the parameters.

[Oppleo]
DATABASE_URL=postgresql://charger:charger@localhost:5432/charger
SQLALCHEMY_TRACK_MODIFICATIONS=True

# Production uses real data, Development fake data from EnergyDevice
#ENV=Development
ENV=Production

DEBUG=False
TESTING=False

PYTHONPATH = ''
EXPLAIN_TEMPLATE_LOADING=False

# Allow a user to set the db URL on database failure.
# This opens sequrity risks as during database failure a different (rogue) database can be introduced)
# Only use this when configuring
on_db_failure_allow_url_change=False
# Allow a user to see the existing db URL on database failure.
# This opens sequrity risks as during database failure the existing database URL including username and
# password are shown to any user. Only use this when configuring
on_db_failure_show_current_url=False
# The magic password used to restart the system adter a database failure. As there is no database
# access, the regular admin password is not known.
# Allow a user to see the existing db URL on database failure.
on_db_failure_allow_restart=False

Does it say anything on this in /tmp/Oppleo.log?

Something is blocking Pythons access to the database.

Here is the log file.
(The raspberry is not connected to the smart evse or other hardware, yet)

2020-06-24 17:21:20,797 - nl.oppleo.config.OppleoSystemConfig - 549 MainProcess - 1995963088 MainThread - DEBUG - Initializing Oppleo System...
2020-06-24 17:21:20,798 - nl.oppleo.config.OppleoSystemConfig - 549 MainProcess - 1995963088 MainThread - DEBUG - Looking for system configuration file /home/pi/Oppleo/src/nl/oppleo/config/oppleo.ini
2020-06-24 17:21:20,801 - nl.oppleo.config.OppleoSystemConfig - 549 MainProcess - 1995963088 MainThread - ERROR - Ini file ERROR: No SIGNATURE in Oppleo
2020-06-24 17:21:20,802 - nl.oppleo.webapp.Oppleo - 549 MainProcess - 1995963088 MainThread - DEBUG - Initializing Oppleo...
2020-06-24 17:21:20,803 - nl.oppleo.webapp.Oppleo - 549 MainProcess - 1995963088 MainThread - DEBUG - sys.version 3.7.3 (default, Dec 20 2019, 18:57:59) 
[GCC 8.3.0] : 
2020-06-24 17:21:22,955 - nl.oppleo.config.OppleoConfig - 549 MainProcess - 1995963088 MainThread - DEBUG - Initializing Oppleo...
2020-06-24 17:21:23,507 - nl.oppleo.webapp.Oppleo - 549 MainProcess - 1995963088 MainThread - INFO - Setting GPIO MODE to BCM
2020-06-24 17:21:24,791 - nl.oppleo.webapp.flaskRoutes - 549 MainProcess - 1995963088 MainThread - DEBUG - Initializing routes
2020-06-24 17:21:24,938 - nl.oppleo.daemon.MeasureElectricityUsageThread - 549 MainProcess - 1995963088 MainThread - INFO - Searching for measurement devices configured in the db
2020-06-24 17:21:24,959 - nl.oppleo.daemon.MeasureElectricityUsageThread - 549 MainProcess - 1995963088 MainThread - INFO - Found energy device laadpaal_noord
2020-06-24 17:21:24,960 - nl.oppleo.services.EnergyUtil - 549 MainProcess - 1995963088 MainThread - DEBUG - Not production environment, skip initInstrument()
2020-06-24 17:21:24,960 - nl.oppleo.services.Charger - 549 MainProcess - 1995963088 MainThread - DEBUG - Using fake charger
2020-06-24 17:21:24,961 - nl.oppleo.services.LedLight - 549 MainProcess - 1995963088 MainThread - DEBUG - Initialize with 1 ledlights no pulse
2020-06-24 17:21:24,961 - nl.oppleo.services.LedLight - 549 MainProcess - 1995963088 MainThread - DEBUG - Initialize with 2 ledlights no pulse
2020-06-24 17:21:24,961 - nl.oppleo.services.LedLight - 549 MainProcess - 1995963088 MainThread - DEBUG - Initialize with 1 ledlights to pulse
2020-06-24 17:21:24,961 - nl.oppleo.services.LedLight - 549 MainProcess - 1995963088 MainThread - DEBUG - Initialize with 1 ledlights no pulse
2020-06-24 17:21:24,962 - nl.oppleo.services.Evse - 549 MainProcess - 1995963088 MainThread - DEBUG - Using fake Evse
2020-06-24 17:21:24,962 - nl.oppleo.service.EvseReader - 549 MainProcess - 1995963088 MainThread - DEBUG - Using fake Evse reader
2020-06-24 17:21:24,963 - nl.oppleo.daemon.MeasureElectricityUsageThread - 549 MainProcess - 1995963088 MainThread - DEBUG - MeasureElectricityUsageThread.addCallback()...
2020-06-24 17:21:24,963 - nl.oppleo.daemon.MeasureElectricityUsageThread - 549 MainProcess - 1995963088 MainThread - DEBUG - MeasureElectricityUsageThread.addCallback() to energyDevice laadpaal_noord...
2020-06-24 17:21:24,963 - nl.oppleo.daemon.EnergyDevice - 549 MainProcess - 1995963088 MainThread - DEBUG - EnergyDevice.addCallback()
2020-06-24 17:21:24,963 - nl.oppleo.webapp.Oppleo - 549 MainProcess - 1995963088 MainThread - DEBUG - Starting queue reader background task...
2020-06-24 17:21:24,963 - nl.oppleo.webapp.WebSocketQueueReaderBackgroundTask - 549 MainProcess - 1995963088 MainThread - DEBUG - Launching background task...
2020-06-24 17:21:24,965 - nl.oppleo.webapp.WebSocketQueueReaderBackgroundTask - 549 MainProcess - 1995963088 MainThread - DEBUG - Starting background task...
2020-06-24 17:21:24,965 - nl.oppleo.daemon.PeakHoursMonitorThread - 549 MainProcess - 1995963088 MainThread - DEBUG - Launching Thread...
2020-06-24 17:21:24,967 - nl.oppleo.models.OffPeakHoursModel - 549 MainProcess - 1950782560 PeakHoursMonitorThread - DEBUG - is_off_peak()
2020-06-24 17:21:24,967 - nl.oppleo.webapp.Oppleo - 549 MainProcess - 1995963088 MainThread - DEBUG - Starting web server on 0.0.0.0:5000 (debug:False, use_reloader=False)...
2020-06-24 17:21:24,973 - nl.oppleo.utils.WebSocketUtil - 549 MainProcess - 1995963088 MainThread - DEBUG - Submit msg to websocket emit queue ... {'event': 'update', 'data': {'restartRequired': False, 'upSince': '24/06/2020, 17:21:22', 'clientsConnected': 0}, 'id': 'laadpaal_noord', 'namespace': '/system_status', 'public': False}
2020-06-24 17:21:24,974 - nl.oppleo.services.PushMessage - 549 MainProcess - 1995963088 MainThread - DEBUG - sendMessage()
2020-06-24 17:21:24,974 - nl.oppleo.services.PushMessageProwl - 549 MainProcess - 1995963088 MainThread - DEBUG - sendMessage()
2020-06-24 17:21:25,041 - nl.oppleo.models.OffPeakHoursModel - 549 MainProcess - 1950782560 PeakHoursMonitorThread - DEBUG - is_off_peak(): 24/06/2020, 17:21:24 not within off-peak
2020-06-24 17:21:25,042 - nl.oppleo.daemon.PeakHoursMonitorThread - 549 MainProcess - 1950782560 PeakHoursMonitorThread - DEBUG - Off Peak Window Change check ... (wasOffPeak:False, isOffPeak:False)
2020-06-24 17:21:25,042 - nl.oppleo.daemon.PeakHoursMonitorThread - 549 MainProcess - 1950782560 PeakHoursMonitorThread - DEBUG - EVSE Status Change check ...
2020-06-24 17:21:25,042 - nl.oppleo.services.EvseDev - 549 MainProcess - 1950782560 PeakHoursMonitorThread - DEBUG - Fake read evse state
2020-06-24 17:21:25,043 - nl.oppleo.services.EvseDev - 549 MainProcess - 1950782560 PeakHoursMonitorThread - DEBUG - Fake read evse state
2020-06-24 17:21:25,462 - nl.oppleo.services.PushMessageProwl - 549 MainProcess - 1995963088 MainThread - DEBUG - Result 200 - OK 
2020-06-24 17:21:25,466 - nl.oppleo.webapp.WebSocketQueueReaderBackgroundTask - 549 MainProcess - 1995963088 MainThread - DEBUG - Send msg 1 via websocket ...{'event': 'update', 'data': {'restartRequired': False, 'upSince': '24/06/2020, 17:21:22', 'clientsConnected': 0}, 'id': 'laadpaal_noord', 'namespace': '/system_status', 'public': False}
2020-06-24 17:21:27,046 - nl.oppleo.daemon.PeakHoursMonitorThread - 549 MainProcess - 1950782560 PeakHoursMonitorThread - DEBUG - EVSE Status Change check ...
2020-06-24 17:21:27,046 - nl.oppleo.services.EvseDev - 549 MainProcess - 1950782560 PeakHoursMonitorThread - DEBUG - Fake read evse state
2020-06-24 17:21:27,047 - nl.oppleo.services.EvseDev - 549 MainProcess - 1950782560 PeakHoursMonitorThread - DEBUG - Fake read evse state
2020-06-24 17:21:29,050 - nl.oppleo.daemon.PeakHoursMonitorThread - 549 MainProcess - 1950782560 PeakHoursMonitorThread - DEBUG - EVSE Status Change check ...
2020-06-24 17:21:29,051 - nl.oppleo.services.EvseDev - 549 MainProcess - 1950782560 PeakHoursMonitorThread - DEBUG - Fake read evse state
2020-06-24 17:21:29,051 - nl.oppleo.services.EvseDev - 549 MainProcess - 1950782560 PeakHoursMonitorThread - DEBUG - Fake read evse state
2020-06-24 17:21:31,053 - nl.oppleo.daemon.PeakHoursMonitorThread - 549 MainProcess - 1950782560 PeakHoursMonitorThread - DEBUG - EVSE Status Change check ...
2020-06-24 17:21:31,054 - nl.oppleo.services.EvseDev - 549 MainProcess - 1950782560 PeakHoursMonitorThread - DEBUG - Fake read evse state
2020-06-24 17:21:31,055 - nl.oppleo.services.EvseDev - 549 MainProcess - 1950782560 PeakHoursMonitorThread - DEBUG - Fake read evse state
2020-06-24 17:21:33,057 - nl.oppleo.daemon.PeakHoursMonitorThread - 549 MainProcess - 1950782560 PeakHoursMonitorThread - DEBUG - EVSE Status Change check ...
2020-06-24 17:21:33,058 - nl.oppleo.services.EvseDev - 549 MainProcess - 1950782560 PeakHoursMonitorThread - DEBUG - Fake read evse state
2020-06-24 17:21:33,063 - nl.oppleo.services.EvseDev - 549 MainProcess - 1950782560 PeakHoursMonitorThread - DEBUG - Fake read evse state
2020-06-24 17:21:35,066 - nl.oppleo.daemon.PeakHoursMonitorThread - 549 MainProcess - 1950782560 PeakHoursMonitorThread - DEBUG - EVSE Status Change check ...
2020-06-24 17:21:35,067 - nl.oppleo.services.EvseDev - 549 MainProcess - 1950782560 PeakHoursMonitorThread - DEBUG - Fake read evse state
2020-06-24 17:21:35,068 - nl.oppleo.services.EvseDev - 549 MainProcess - 1950782560 PeakHoursMonitorThread - DEBUG - Fake read evse state
2020-06-24 17:21:48,664 - nl.oppleo.daemon.PeakHoursMonitorThread - 549 MainProcess - 1950782560 PeakHoursMonitorThread - DEBUG - EVSE Status Change check ...
2020-06-24 17:21:48,665 - nl.oppleo.services.EvseDev - 549 MainProcess - 1950782560 PeakHoursMonitorThread - DEBUG - Fake read evse state
2020-06-24 17:21:48,665 - nl.oppleo.services.EvseDev - 549 MainProcess - 1950782560 PeakHoursMonitorThread - DEBUG - Fake read evse state
2020-06-24 17:21:50,668 - nl.oppleo.daemon.PeakHoursMonitorThread - 549 MainProcess - 1950782560 PeakHoursMonitorThread - DEBUG - EVSE Status Change check ...
2020-06-24 17:21:50,669 - nl.oppleo.services.EvseDev - 549 MainProcess - 1950782560 PeakHoursMonitorThread - DEBUG - Fake read evse state
2020-06-24 17:21:50,670 - nl.oppleo.services.EvseDev - 549 MainProcess - 1950782560 PeakHoursMonitorThread - DEBUG - Fake read evse state
2020-06-24 17:21:52,673 - nl.oppleo.daemon.PeakHoursMonitorThread - 549 MainProcess - 1950782560 PeakHoursMonitorThread - DEBUG - EVSE Status Change check ...
2020-06-24 17:21:52,674 - nl.oppleo.services.EvseDev - 549 MainProcess - 1950782560 PeakHoursMonitorThread - DEBUG - Fake read evse state
2020-06-24 17:21:52,674 - nl.oppleo.services.EvseDev - 549 MainProcess - 1950782560 PeakHoursMonitorThread - DEBUG - Fake read evse state
2020-06-24 17:21:54,677 - nl.oppleo.daemon.PeakHoursMonitorThread - 549 MainProcess - 1950782560 PeakHoursMonitorThread - DEBUG - EVSE Status Change check ...
2020-06-24 17:21:54,678 - nl.oppleo.services.EvseDev - 549 MainProcess - 1950782560 PeakHoursMonitorThread - DEBUG - Fake read evse state
2020-06-24 17:21:54,679 - nl.oppleo.services.EvseDev - 549 MainProcess - 1950782560 PeakHoursMonitorThread - DEBUG - Fake read evse state
2020-06-24 17:21:56,682 - nl.oppleo.daemon.PeakHoursMonitorThread - 549 MainProcess - 1950782560 PeakHoursMonitorThread - DEBUG - EVSE Status Change check ...
2020-06-24 17:21:56,683 - nl.oppleo.services.EvseDev - 549 MainProcess - 1950782560 PeakHoursMonitorThread - DEBUG - Fake read evse state
2020-06-24 17:21:56,686 - nl.oppleo.services.EvseDev - 549 MainProcess - 1950782560 PeakHoursMonitorThread - DEBUG - Fake read evse state
2020-06-24 17:21:58,689 - nl.oppleo.daemon.PeakHoursMonitorThread - 549 MainProcess - 1950782560 PeakHoursMonitorThread - DEBUG - EVSE Status Change check ...
2020-06-24 17:21:58,690 - nl.oppleo.services.EvseDev - 549 MainProcess - 1950782560 PeakHoursMonitorThread - DEBUG - Fake read evse state
2020-06-24 17:21:58,691 - nl.oppleo.services.EvseDev - 549 MainProcess - 1950782560 PeakHoursMonitorThread - DEBUG - Fake read evse state
2020-06-24 17:22:00,694 - nl.oppleo.daemon.PeakHoursMonitorThread - 549 MainProcess - 1950782560 PeakHoursMonitorThread - DEBUG - EVSE Status Change check ...
2020-06-24 17:22:00,695 - nl.oppleo.services.EvseDev - 549 MainProcess - 1950782560 PeakHoursMonitorThread - DEBUG - Fake read evse state
2020-06-24 17:22:00,695 - nl.oppleo.services.EvseDev - 549 MainProcess - 1950782560 PeakHoursMonitorThread - DEBUG - Fake read evse state
2020-06-24 17:22:02,698 - nl.oppleo.daemon.PeakHoursMonitorThread - 549 MainProcess - 1950782560 PeakHoursMonitorThread - DEBUG - EVSE Status Change check ...
2020-06-24 17:22:02,699 - nl.oppleo.services.EvseDev - 549 MainProcess - 1950782560 PeakHoursMonitorThread - DEBUG - Fake read evse state
2020-06-24 17:22:02,699 - nl.oppleo.services.EvseDev - 549 MainProcess - 1950782560 PeakHoursMonitorThread - DEBUG - Fake read evse state
2020-06-24 17:22:04,702 - nl.oppleo.daemon.PeakHoursMonitorThread - 549 MainProcess - 1950782560 PeakHoursMonitorThread - DEBUG - EVSE Status Change check ...
2020-06-24 17:22:04,703 - nl.oppleo.services.EvseDev - 549 MainProcess - 1950782560 PeakHoursMonitorThread - DEBUG - Fake read evse state
2020-06-24 17:22:04,703 - nl.oppleo.services.EvseDev - 549 MainProcess - 1950782560 PeakHoursMonitorThread - DEBUG - Fake read evse state
2020-06-24 17:22:06,707 - nl.oppleo.daemon.PeakHoursMonitorThread - 549 MainProcess - 1950782560 PeakHoursMonitorThread - DEBUG - EVSE Status Change check ...
2020-06-24 17:22:06,707 - nl.oppleo.services.EvseDev - 549 MainProcess - 1950782560 PeakHoursMonitorThread - DEBUG - Fake read evse state
2020-06-24 17:22:06,708 - nl.oppleo.services.EvseDev - 549 MainProcess - 1950782560 PeakHoursMonitorThread - DEBUG - Fake read evse state
2020-06-24 17:22:08,711 - nl.oppleo.daemon.PeakHoursMonitorThread - 549 MainProcess - 1950782560 PeakHoursMonitorThread - DEBUG - EVSE Status Change check ...
2020-06-24 17:22:08,712 - nl.oppleo.services.EvseDev - 549 MainProcess - 1950782560 PeakHoursMonitorThread - DEBUG - Fake read evse state
2020-06-24 17:22:08,720 - nl.oppleo.services.EvseDev - 549 MainProcess - 1950782560 PeakHoursMonitorThread - DEBUG - Fake read evse state
2020-06-24 17:22:10,724 - nl.oppleo.daemon.PeakHoursMonitorThread - 549 MainProcess - 1950782560 PeakHoursMonitorThread - DEBUG - EVSE Status Change check ...
2020-06-24 17:22:10,725 - nl.oppleo.services.EvseDev - 549 MainProcess - 1950782560 PeakHoursMonitorThread - DEBUG - Fake read evse state
2020-06-24 17:22:10,725 - nl.oppleo.services.EvseDev - 549 MainProcess - 1950782560 PeakHoursMonitorThread - DEBUG - Fake read evse state
2020-06-24 17:22:12,728 - nl.oppleo.daemon.PeakHoursMonitorThread - 549 MainProcess - 1950782560 PeakHoursMonitorThread - DEBUG - EVSE Status Change check ...
2020-06-24 17:22:12,729 - nl.oppleo.services.EvseDev - 549 MainProcess - 1950782560 PeakHoursMonitorThread - DEBUG - Fake read evse state
2020-06-24 17:22:12,729 - nl.oppleo.services.EvseDev - 549 MainProcess - 1950782560 PeakHoursMonitorThread - DEBUG - Fake read evse state
2020-06-24 17:22:14,733 - nl.oppleo.daemon.PeakHoursMonitorThread - 549 MainProcess - 1950782560 PeakHoursMonitorThread - DEBUG - EVSE Status Change check ...
2020-06-24 17:22:14,734 - nl.oppleo.services.EvseDev - 549 MainProcess - 1950782560 PeakHoursMonitorThread - DEBUG - Fake read evse state
2020-06-24 17:22:14,739 - nl.oppleo.services.EvseDev - 549 MainProcess - 1950782560 PeakHoursMonitorThread - DEBUG - Fake read evse state
2020-06-24 17:22:16,743 - nl.oppleo.daemon.PeakHoursMonitorThread - 549 MainProcess - 1950782560 PeakHoursMonitorThread - DEBUG - EVSE Status Change check ...
2020-06-24 17:22:16,744 - nl.oppleo.services.EvseDev - 549 MainProcess - 1950782560 PeakHoursMonitorThread - DEBUG - Fake read evse state
2020-06-24 17:22:16,744 - nl.oppleo.services.EvseDev - 549 MainProcess - 1950782560 PeakHoursMonitorThread - DEBUG - Fake read evse state
2020-06-24 17:22:18,748 - nl.oppleo.daemon.PeakHoursMonitorThread - 549 MainProcess - 1950782560 PeakHoursMonitorThread - DEBUG - EVSE Status Change check ...
2020-06-24 17:22:18,748 - nl.oppleo.services.EvseDev - 549 MainProcess - 1950782560 PeakHoursMonitorThread - DEBUG - Fake read evse state
2020-06-24 17:22:18,748 - nl.oppleo.services.EvseDev - 549 MainProcess - 1950782560 PeakHoursMonitorThread - DEBUG - Fake read evse state
2020-06-24 17:22:20,752 - nl.oppleo.daemon.PeakHoursMonitorThread - 549 MainProcess - 1950782560 PeakHoursMonitorThread - DEBUG - EVSE Status Change check ...
2020-06-24 17:22:20,752 - nl.oppleo.services.EvseDev - 549 MainProcess - 1950782560 PeakHoursMonitorThread - DEBUG - Fake read evse state
2020-06-24 17:22:20,753 - nl.oppleo.services.EvseDev - 549 MainProcess - 1950782560 PeakHoursMonitorThread - DEBUG - Fake read evse state
2020-06-24 17:22:22,756 - nl.oppleo.daemon.PeakHoursMonitorThread - 549 MainProcess - 1950782560 PeakHoursMonitorThread - DEBUG - EVSE Status Change check ...
2020-06-24 17:22:22,757 - nl.oppleo.services.EvseDev - 549 MainProcess - 1950782560 PeakHoursMonitorThread - DEBUG - Fake read evse state
2020-06-24 17:22:22,757 - nl.oppleo.services.EvseDev - 549 MainProcess - 1950782560 PeakHoursMonitorThread - DEBUG - Fake read evse state
2020-06-24 17:22:24,761 - nl.oppleo.daemon.PeakHoursMonitorThread - 549 MainProcess - 1950782560 PeakHoursMonitorThread - DEBUG - EVSE Status Change check ...
2020-06-24 17:22:24,762 - nl.oppleo.services.EvseDev - 549 MainProcess - 1950782560 PeakHoursMonitorThread - DEBUG - Fake read evse state
2020-06-24 17:22:24,762 - nl.oppleo.services.EvseDev - 549 MainProcess - 1950782560 PeakHoursMonitorThread - DEBUG - Fake read evse state
2020-06-24 17:22:25,263 - nl.oppleo.models.OffPeakHoursModel - 549 MainProcess - 1950782560 PeakHoursMonitorThread - DEBUG - is_off_peak()
2020-06-24 17:22:25,290 - nl.oppleo.models.OffPeakHoursModel - 549 MainProcess - 1950782560 PeakHoursMonitorThread - DEBUG - is_off_peak(): 24/06/2020, 17:22:25 not within off-peak
2020-06-24 17:22:25,291 - nl.oppleo.daemon.PeakHoursMonitorThread - 549 MainProcess - 1950782560 PeakHoursMonitorThread - DEBUG - Off Peak Window Change check ... (wasOffPeak:False, isOffPeak:False)
2020-06-24 17:22:26,794 - nl.oppleo.daemon.PeakHoursMonitorThread - 549 MainProcess - 1950782560 PeakHoursMonitorThread - DEBUG - EVSE Status Change check ...
2020-06-24 17:22:26,795 - nl.oppleo.services.EvseDev - 549 MainProcess - 1950782560 PeakHoursMonitorThread - DEBUG - Fake read evse state
2020-06-24 17:22:26,803 - nl.oppleo.services.EvseDev - 549 MainProcess - 1950782560 PeakHoursMonitorThread - DEBUG - Fake read evse state
2020-06-24 17:22:28,806 - nl.oppleo.daemon.PeakHoursMonitorThread - 549 MainProcess - 1950782560 PeakHoursMonitorThread - DEBUG - EVSE Status Change check ...
2020-06-24 17:22:28,807 - nl.oppleo.services.EvseDev - 549 MainProcess - 1950782560 PeakHoursMonitorThread - DEBUG - Fake read evse state
2020-06-24 17:22:28,807 - nl.oppleo.services.EvseDev - 549 MainProcess - 1950782560 PeakHoursMonitorThread - DEBUG - Fake read evse state
2020-06-24 17:22:30,811 - nl.oppleo.daemon.PeakHoursMonitorThread - 549 MainProcess - 1950782560 PeakHoursMonitorThread - DEBUG - EVSE Status Change check ...
2020-06-24 17:22:30,811 - nl.oppleo.services.EvseDev - 549 MainProcess - 1950782560 PeakHoursMonitorThread - DEBUG - Fake read evse state
2020-06-24 17:22:30,812 - nl.oppleo.services.EvseDev - 549 MainProcess - 1950782560 PeakHoursMonitorThread - DEBUG - Fake read evse state
2020-06-24 17:22:32,815 - nl.oppleo.daemon.PeakHoursMonitorThread - 549 MainProcess - 1950782560 PeakHoursMonitorThread - DEBUG - EVSE Status Change check ...
2020-06-24 17:22:32,816 - nl.oppleo.services.EvseDev - 549 MainProcess - 1950782560 PeakHoursMonitorThread - DEBUG - Fake read evse state
2020-06-24 17:22:32,817 - nl.oppleo.services.EvseDev - 549 MainProcess - 1950782560 PeakHoursMonitorThread - DEBUG - Fake read evse state
2020-06-24 17:22:34,820 - nl.oppleo.daemon.PeakHoursMonitorThread - 549 MainProcess - 1950782560 PeakHoursMonitorThread - DEBUG - EVSE Status Change check ...
2020-06-24 17:22:34,821 - nl.oppleo.services.EvseDev - 549 MainProcess - 1950782560 PeakHoursMonitorThread - DEBUG - Fake read evse state
2020-06-24 17:22:34,822 - nl.oppleo.services.EvseDev - 549 MainProcess - 1950782560 PeakHoursMonitorThread - DEBUG - Fake read evse state
2020-06-24 17:22:36,825 - nl.oppleo.daemon.PeakHoursMonitorThread - 549 MainProcess - 1950782560 PeakHoursMonitorThread - DEBUG - EVSE Status Change check ...
2020-06-24 17:22:36,826 - nl.oppleo.services.EvseDev - 549 MainProcess - 1950782560 PeakHoursMonitorThread - DEBUG - Fake read evse state
2020-06-24 17:22:36,826 - nl.oppleo.services.EvseDev - 549 MainProcess - 1950782560 PeakHoursMonitorThread - DEBUG - Fake read evse state
2020-06-24 17:22:38,830 - nl.oppleo.daemon.PeakHoursMonitorThread - 549 MainProcess - 1950782560 PeakHoursMonitorThread - DEBUG - EVSE Status Change check ...
2020-06-24 17:22:38,830 - nl.oppleo.services.EvseDev - 549 MainProcess - 1950782560 PeakHoursMonitorThread - DEBUG - Fake read evse state
2020-06-24 17:22:38,831 - nl.oppleo.services.EvseDev - 549 MainProcess - 1950782560 PeakHoursMonitorThread - DEBUG - Fake read evse state
2020-06-24 17:22:40,835 - nl.oppleo.daemon.PeakHoursMonitorThread - 549 MainProcess - 1950782560 PeakHoursMonitorThread - DEBUG - EVSE Status Change check ...
2020-06-24 17:22:40,835 - nl.oppleo.services.EvseDev - 549 MainProcess - 1950782560 PeakHoursMonitorThread - DEBUG - Fake read evse state
2020-06-24 17:22:40,836 - nl.oppleo.services.EvseDev - 549 MainProcess - 1950782560 PeakHoursMonitorThread - DEBUG - Fake read evse state
2020-06-24 17:22:42,839 - nl.oppleo.daemon.PeakHoursMonitorThread - 549 MainProcess - 1950782560 PeakHoursMonitorThread - DEBUG - EVSE Status Change check ...
2020-06-24 17:22:42,840 - nl.oppleo.services.EvseDev - 549 MainProcess - 1950782560 PeakHoursMonitorThread - DEBUG - Fake read evse state
2020-06-24 17:22:42,841 - nl.oppleo.services.EvseDev - 549 MainProcess - 1950782560 PeakHoursMonitorThread - DEBUG - Fake read evse state
2020-06-24 17:22:44,844 - nl.oppleo.daemon.PeakHoursMonitorThread - 549 MainProcess - 1950782560 PeakHoursMonitorThread - DEBUG - EVSE Status Change check ...
2020-06-24 17:22:44,845 - nl.oppleo.services.EvseDev - 549 MainProcess - 1950782560 PeakHoursMonitorThread - DEBUG - Fake read evse state
2020-06-24 17:22:44,849 - nl.oppleo.services.EvseDev - 549 MainProcess - 1950782560 PeakHoursMonitorThread - DEBUG - Fake read evse state
2020-06-24 17:22:46,852 - nl.oppleo.daemon.PeakHoursMonitorThread - 549 MainProcess - 1950782560 PeakHoursMonitorThread - DEBUG - EVSE Status Change check ...
2020-06-24 17:22:46,853 - nl.oppleo.services.EvseDev - 549 MainProcess - 1950782560 PeakHoursMonitorThread - DEBUG - Fake read evse state
2020-06-24 17:22:46,854 - nl.oppleo.services.EvseDev - 549 MainProcess - 1950782560 PeakHoursMonitorThread - DEBUG - Fake read evse state
2020-06-24 17:22:48,857 - nl.oppleo.daemon.PeakHoursMonitorThread - 549 MainProcess - 1950782560 PeakHoursMonitorThread - DEBUG - EVSE Status Change check ...
2020-06-24 17:22:48,858 - nl.oppleo.services.EvseDev - 549 MainProcess - 1950782560 PeakHoursMonitorThread - DEBUG - Fake read evse state
2020-06-24 17:22:48,858 - nl.oppleo.services.EvseDev - 549 MainProcess - 1950782560 PeakHoursMonitorThread - DEBUG - Fake read evse state
2020-06-24 17:22:50,862 - nl.oppleo.daemon.PeakHoursMonitorThread - 549 MainProcess - 1950782560 PeakHoursMonitorThread - DEBUG - EVSE Status Change check ...
2020-06-24 17:22:50,862 - nl.oppleo.services.EvseDev - 549 MainProcess - 1950782560 PeakHoursMonitorThread - DEBUG - Fake read evse state
2020-06-24 17:22:50,863 - nl.oppleo.services.EvseDev - 549 MainProcess - 1950782560 PeakHoursMonitorThread - DEBUG - Fake read evse state
2020-06-24 17:22:52,866 - nl.oppleo.daemon.PeakHoursMonitorThread - 549 MainProcess - 1950782560 PeakHoursMonitorThread - DEBUG - EVSE Status Change check ...
2020-06-24 17:22:52,867 - nl.oppleo.services.EvseDev - 549 MainProcess - 1950782560 PeakHoursMonitorThread - DEBUG - Fake read evse state
2020-06-24 17:22:52,867 - nl.oppleo.services.EvseDev - 549 MainProcess - 1950782560 PeakHoursMonitorThread - DEBUG - Fake read evse state
2020-06-24 17:22:54,871 - nl.oppleo.daemon.PeakHoursMonitorThread - 549 MainProcess - 1950782560 PeakHoursMonitorThread - DEBUG - EVSE Status Change check ...
2020-06-24 17:22:54,871 - nl.oppleo.services.EvseDev - 549 MainProcess - 1950782560 PeakHoursMonitorThread - DEBUG - Fake read evse state
2020-06-24 17:22:54,872 - nl.oppleo.services.EvseDev - 549 MainProcess - 1950782560 PeakHoursMonitorThread - DEBUG - Fake read evse state
2020-06-24 17:22:56,875 - nl.oppleo.daemon.PeakHoursMonitorThread - 549 MainProcess - 1950782560 PeakHoursMonitorThread - DEBUG - EVSE Status Change check ...
2020-06-24 17:22:56,876 - nl.oppleo.services.EvseDev - 549 MainProcess - 1950782560 PeakHoursMonitorThread - DEBUG - Fake read evse state
2020-06-24 17:22:56,876 - nl.oppleo.services.EvseDev - 549 MainProcess - 1950782560 PeakHoursMonitorThread - DEBUG - Fake read evse state
2020-06-24 17:22:58,880 - nl.oppleo.daemon.PeakHoursMonitorThread - 549 MainProcess - 1950782560 PeakHoursMonitorThread - DEBUG - EVSE Status Change check ...
2020-06-24 17:22:58,881 - nl.oppleo.services.EvseDev - 549 MainProcess - 1950782560 PeakHoursMonitorThread - DEBUG - Fake read evse state
2020-06-24 17:22:58,881 - nl.oppleo.services.EvseDev - 549 MainProcess - 1950782560 PeakHoursMonitorThread - DEBUG - Fake read evse state
2020-06-24 17:23:05,855 - nl.oppleo.config.OppleoSystemConfig - 650 MainProcess - 1995885264 MainThread - DEBUG - Initializing Oppleo System...
2020-06-24 17:23:05,856 - nl.oppleo.config.OppleoSystemConfig - 650 MainProcess - 1995885264 MainThread - DEBUG - Looking for system configuration file /home/pi/Oppleo/src/nl/oppleo/config/oppleo.ini
2020-06-24 17:23:05,858 - nl.oppleo.config.OppleoSystemConfig - 650 MainProcess - 1995885264 MainThread - ERROR - Ini file ERROR: No SIGNATURE in Oppleo
2020-06-24 17:23:05,859 - nl.oppleo.webapp.Oppleo - 650 MainProcess - 1995885264 MainThread - DEBUG - Initializing Oppleo...
2020-06-24 17:23:05,860 - nl.oppleo.webapp.Oppleo - 650 MainProcess - 1995885264 MainThread - DEBUG - sys.version 3.7.3 (default, Dec 20 2019, 18:57:59) 
[GCC 8.3.0] : 
2020-06-24 17:23:07,097 - nl.oppleo.config.OppleoConfig - 650 MainProcess - 1995885264 MainThread - DEBUG - Initializing Oppleo...
2020-06-24 17:23:07,385 - nl.oppleo.webapp.Oppleo - 650 MainProcess - 1995885264 MainThread - INFO - Setting GPIO MODE to BCM
2020-06-24 17:23:08,126 - nl.oppleo.webapp.flaskRoutes - 650 MainProcess - 1995885264 MainThread - DEBUG - Initializing routes
2020-06-24 17:23:08,274 - nl.oppleo.daemon.MeasureElectricityUsageThread - 650 MainProcess - 1995885264 MainThread - INFO - Searching for measurement devices configured in the db
2020-06-24 17:23:08,288 - nl.oppleo.daemon.MeasureElectricityUsageThread - 650 MainProcess - 1995885264 MainThread - INFO - Found energy device laadpaal_noord
2020-06-24 17:23:08,288 - nl.oppleo.services.EnergyUtil - 650 MainProcess - 1995885264 MainThread - DEBUG - Production environment, calling initInstrument()
2020-06-24 17:23:08,295 - nl.oppleo.services.EnergyUtil - 650 MainProcess - 1995885264 MainThread - DEBUG - found device: laadpaal_noord /dev/ttyUSB0 1
2020-06-24 17:23:08,296 - nl.oppleo.webapp.Oppleo - 650 MainProcess - 1995885264 MainThread - ERROR - Exception stopped Oppleo! Details:[Errno 2] could not open port /dev/ttyUSB0: [Errno 2] No such file or directory: '/dev/ttyUSB0'
2020-06-24 17:23:08,297 - nl.oppleo.webapp.Oppleo - 650 MainProcess - 1995885264 MainThread - ERROR - Restarting Oppleo...
2020-06-24 17:23:08,298 - nl.oppleo.webapp.Oppleo - 650 MainProcess - 1995885264 MainThread - DEBUG - Restarting in 30 seconds...
2020-06-24 17:23:08,307 - nl.oppleo.services.PushMessageProwl - 650 MainProcess - 1995885264 MainThread - DEBUG - sendMessage()
2020-06-24 17:23:08,766 - nl.oppleo.services.PushMessageProwl - 650 MainProcess - 1995885264 MainThread - DEBUG - Result 200 - OK 
2020-06-24 17:24:35,682 - nl.oppleo.config.OppleoSystemConfig - 701 MainProcess - 1996114640 MainThread - DEBUG - Initializing Oppleo System...
2020-06-24 17:24:35,684 - nl.oppleo.config.OppleoSystemConfig - 701 MainProcess - 1996114640 MainThread - DEBUG - Looking for system configuration file /home/pi/Oppleo/src/nl/oppleo/config/oppleo.ini
2020-06-24 17:24:35,685 - nl.oppleo.config.OppleoSystemConfig - 701 MainProcess - 1996114640 MainThread - ERROR - Ini file ERROR: No SIGNATURE in Oppleo
2020-06-24 17:24:35,687 - nl.oppleo.webapp.Oppleo - 701 MainProcess - 1996114640 MainThread - DEBUG - Initializing Oppleo...
2020-06-24 17:24:35,687 - nl.oppleo.webapp.Oppleo - 701 MainProcess - 1996114640 MainThread - DEBUG - sys.version 3.7.3 (default, Dec 20 2019, 18:57:59) 
[GCC 8.3.0] : 
2020-06-24 17:24:36,922 - nl.oppleo.config.OppleoConfig - 701 MainProcess - 1996114640 MainThread - DEBUG - Initializing Oppleo...
2020-06-24 17:24:37,202 - nl.oppleo.webapp.Oppleo - 701 MainProcess - 1996114640 MainThread - INFO - Setting GPIO MODE to BCM
2020-06-24 17:24:37,947 - nl.oppleo.webapp.flaskRoutes - 701 MainProcess - 1996114640 MainThread - DEBUG - Initializing routes
2020-06-24 17:24:38,093 - nl.oppleo.daemon.MeasureElectricityUsageThread - 701 MainProcess - 1996114640 MainThread - INFO - Searching for measurement devices configured in the db
2020-06-24 17:24:38,106 - nl.oppleo.daemon.MeasureElectricityUsageThread - 701 MainProcess - 1996114640 MainThread - INFO - Found energy device laadpaal_noord
2020-06-24 17:24:38,107 - nl.oppleo.services.EnergyUtil - 701 MainProcess - 1996114640 MainThread - DEBUG - Production environment, calling initInstrument()
2020-06-24 17:24:38,113 - nl.oppleo.services.EnergyUtil - 701 MainProcess - 1996114640 MainThread - DEBUG - found device: laadpaal_noord /dev/ttyUSB0 1
2020-06-24 17:24:38,114 - nl.oppleo.webapp.Oppleo - 701 MainProcess - 1996114640 MainThread - ERROR - Exception stopped Oppleo! Details:[Errno 2] could not open port /dev/ttyUSB0: [Errno 2] No such file or directory: '/dev/ttyUSB0'
2020-06-24 17:24:38,115 - nl.oppleo.webapp.Oppleo - 701 MainProcess - 1996114640 MainThread - ERROR - Restarting Oppleo...
2020-06-24 17:24:38,115 - nl.oppleo.webapp.Oppleo - 701 MainProcess - 1996114640 MainThread - DEBUG - Restarting in 30 seconds...
2020-06-24 17:24:38,125 - nl.oppleo.services.PushMessageProwl - 701 MainProcess - 1996114640 MainThread - DEBUG - sendMessage()
2020-06-24 17:24:38,629 - nl.oppleo.services.PushMessageProwl - 701 MainProcess - 1996114640 MainThread - DEBUG - Result 200 - OK 


I think this is the problem:

Oppleo log:

2020-06-24 17:24:38,113 - nl.oppleo.services.EnergyUtil - 701 MainProcess - 1996114640 MainThread - DEBUG - found device: laadpaal_noord /dev/ttyUSB0 1
2020-06-24 17:24:38,114 - nl.oppleo.webapp.Oppleo - 701 MainProcess - 1996114640 MainThread - ERROR - Exception stopped Oppleo! Details:[Errno 2] could not open port /dev/ttyUSB0: [Errno 2] No such file or directory: '/dev/ttyUSB0'
2020-06-24 17:24:38,115 - nl.oppleo.webapp.Oppleo - 701 MainProcess - 1996114640 MainThread - ERROR - Restarting Oppleo...

I have enabled development modus in the ini file, but that does not matter. I think it is time to connect the modbus usb adapter?

I Connected a USB to TTL adapter to the raspberry. (modbus to usb adapter is in shipping).
The usb error is gone. The website is still offline.

Log file:


18:54:34,832 - nl.oppleo.config.OppleoConfig - 1138 MainProcess - 1995811536 MainThread - DEBUG - Initializing Oppleo...
2020-06-24 18:54:35,161 - nl.oppleo.webapp.Oppleo - 1138 MainProcess - 1995811536 MainThread - INFO - Setting GPIO MODE to BCM
2020-06-24 18:54:35,960 - nl.oppleo.webapp.flaskRoutes - 1138 MainProcess - 1995811536 MainThread - DEBUG - Initializing routes
2020-06-24 18:54:36,107 - nl.oppleo.daemon.MeasureElectricityUsageThread - 1138 MainProcess - 1995811536 MainThread - INFO - Searching for measurement devices configured in the db
2020-06-24 18:54:36,120 - nl.oppleo.daemon.MeasureElectricityUsageThread - 1138 MainProcess - 1995811536 MainThread - INFO - Found energy device laadpaal_noord
2020-06-24 18:54:36,121 - nl.oppleo.services.EnergyUtil - 1138 MainProcess - 1995811536 MainThread - DEBUG - Not production environment, skip initInstrument()
2020-06-24 18:54:36,122 - nl.oppleo.services.Charger - 1138 MainProcess - 1995811536 MainThread - DEBUG - Using fake charger
2020-06-24 18:54:36,122 - nl.oppleo.services.LedLight - 1138 MainProcess - 1995811536 MainThread - DEBUG - Initialize with 1 ledlights no pulse
2020-06-24 18:54:36,122 - nl.oppleo.services.LedLight - 1138 MainProcess - 1995811536 MainThread - DEBUG - Initialize with 2 ledlights no pulse
2020-06-24 18:54:36,123 - nl.oppleo.services.LedLight - 1138 MainProcess - 1995811536 MainThread - DEBUG - Initialize with 1 ledlights to pulse
2020-06-24 18:54:36,123 - nl.oppleo.services.LedLight - 1138 MainProcess - 1995811536 MainThread - DEBUG - Initialize with 1 ledlights no pulse
2020-06-24 18:54:36,123 - nl.oppleo.services.Evse - 1138 MainProcess - 1995811536 MainThread - DEBUG - Using fake Evse
2020-06-24 18:54:36,124 - nl.oppleo.service.EvseReader - 1138 MainProcess - 1995811536 MainThread - DEBUG - Using fake Evse reader
2020-06-24 18:54:36,124 - nl.oppleo.daemon.MeasureElectricityUsageThread - 1138 MainProcess - 1995811536 MainThread - DEBUG - MeasureElectricityUsageThread.addCallback()...
2020-06-24 18:54:36,124 - nl.oppleo.daemon.MeasureElectricityUsageThread - 1138 MainProcess - 1995811536 MainThread - DEBUG - MeasureElectricityUsageThread.addCallback() to energyDevice laadpaal_noord...
2020-06-24 18:54:36,125 - nl.oppleo.daemon.EnergyDevice - 1138 MainProcess - 1995811536 MainThread - DEBUG - EnergyDevice.addCallback()
2020-06-24 18:54:36,125 - nl.oppleo.webapp.Oppleo - 1138 MainProcess - 1995811536 MainThread - DEBUG - Starting queue reader background task...
2020-06-24 18:54:36,125 - nl.oppleo.webapp.WebSocketQueueReaderBackgroundTask - 1138 MainProcess - 1995811536 MainThread - DEBUG - Launching background task...
2020-06-24 18:54:36,126 - nl.oppleo.webapp.WebSocketQueueReaderBackgroundTask - 1138 MainProcess - 1995811536 MainThread - DEBUG - Starting background task...
2020-06-24 18:54:36,127 - nl.oppleo.daemon.PeakHoursMonitorThread - 1138 MainProcess - 1995811536 MainThread - DEBUG - Launching Thread...
2020-06-24 18:54:36,128 - nl.oppleo.models.OffPeakHoursModel - 1138 MainProcess - 1950631008 PeakHoursMonitorThread - DEBUG - is_off_peak()
2020-06-24 18:54:36,129 - nl.oppleo.webapp.Oppleo - 1138 MainProcess - 1995811536 MainThread - DEBUG - Starting web server on 0.0.0.0:5000 (debug:False, use_reloader=False)...
2020-06-24 18:54:36,135 - nl.oppleo.utils.WebSocketUtil - 1138 MainProcess - 1995811536 MainThread - DEBUG - Submit msg to websocket emit queue ... {'event': 'update', 'data': {'restartRequired': False, 'upSince': '24/06/2020, 18:54:34', 'clientsConnected': 0}, 'id': 'laadpaal_noord', 'namespace': '/system_status', 'public': False}
2020-06-24 18:54:36,136 - nl.oppleo.services.PushMessage - 1138 MainProcess - 1995811536 MainThread - DEBUG - sendMessage()
2020-06-24 18:54:36,136 - nl.oppleo.services.PushMessageProwl - 1138 MainProcess - 1995811536 MainThread - DEBUG - sendMessage()
2020-06-24 18:54:36,188 - nl.oppleo.models.OffPeakHoursModel - 1138 MainProcess - 1950631008 PeakHoursMonitorThread - DEBUG - is_off_peak(): 24/06/2020, 18:54:36 not within off-peak
2020-06-24 18:54:36,189 - nl.oppleo.daemon.PeakHoursMonitorThread - 1138 MainProcess - 1950631008 PeakHoursMonitorThread - DEBUG - Off Peak Window Change check ... (wasOffPeak:False, isOffPeak:False)
2020-06-24 18:54:36,189 - nl.oppleo.daemon.PeakHoursMonitorThread - 1138 MainProcess - 1950631008 PeakHoursMonitorThread - DEBUG - EVSE Status Change check ...
2020-06-24 18:54:36,189 - nl.oppleo.services.EvseDev - 1138 MainProcess - 1950631008 PeakHoursMonitorThread - DEBUG - Fake read evse state
2020-06-24 18:54:36,190 - nl.oppleo.services.EvseDev - 1138 MainProcess - 1950631008 PeakHoursMonitorThread - DEBUG - Fake read evse state
2020-06-24 18:54:36,616 - nl.oppleo.services.PushMessageProwl - 1138 MainProcess - 1995811536 MainThread - DEBUG - Result 200 - OK 
2020-06-24 18:54:36,628 - nl.oppleo.webapp.WebSocketQueueReaderBackgroundTask - 1138 MainProcess - 1995811536 MainThread - DEBUG - Send msg 1 via websocket ...{'event': 'update', 'data': {'restartRequired': False, 'upSince': '24/06/2020, 18:54:34', 'clientsConnected': 0}, 'id': 'laadpaal_noord', 'namespace': '/system_status', 'public': False}
2020-06-24 18:54:38,193 - nl.oppleo.daemon.PeakHoursMonitorThread - 1138 MainProcess - 1950631008 PeakHoursMonitorThread - DEBUG - EVSE Status Change check ...
2020-06-24 18:54:38,194 - nl.oppleo.services.EvseDev - 1138 MainProcess - 1950631008 PeakHoursMonitorThread - DEBUG - Fake read evse state
2020-06-24 18:54:38,194 - nl.oppleo.services.EvseDev - 1138 MainProcess - 1950631008 PeakHoursMonitorThread - DEBUG - Fake read evse state
2020-06-24 18:54:40,197 - nl.oppleo.daemon.PeakHoursMonitorThread - 1138 MainProcess - 1950631008 PeakHoursMonitorThread - DEBUG - EVSE Status Change check ...
2020-06-24 18:54:40,198 - nl.oppleo.services.EvseDev - 1138 MainProcess - 1950631008 PeakHoursMonitorThread - DEBUG - Fake read evse state
2020-06-24 18:54:40,198 - nl.oppleo.services.EvseDev - 1138 MainProcess - 1950631008 PeakHoursMonitorThread - DEBUG - Fake read evse state
2020-06-24 18:54:42,202 - nl.oppleo.daemon.PeakHoursMonitorThread - 1138 MainProcess - 1950631008 PeakHoursMonitorThread - DEBUG - EVSE Status Change check ...
2020-06-24 18:54:42,202 - nl.oppleo.services.EvseDev - 1138 MainProcess - 1950631008 PeakHoursMonitorThread - DEBUG - Fake read evse state
2020-06-24 18:54:42,203 - nl.oppleo.services.EvseDev - 1138 MainProcess - 1950631008 PeakHoursMonitorThread - DEBUG - Fake read evse state
2020-06-24 18:54:44,206 - nl.oppleo.daemon.PeakHoursMonitorThread - 1138 MainProcess - 1950631008 PeakHoursMonitorThread - DEBUG - EVSE Status Change check ...
2020-06-24 18:54:44,207 - nl.oppleo.services.EvseDev - 1138 MainProcess - 1950631008 PeakHoursMonitorThread - DEBUG - Fake read evse state
2020-06-24 18:54:44,207 - nl.oppleo.services.EvseDev - 1138 MainProcess - 1950631008 PeakHoursMonitorThread - DEBUG - Fake read evse state
2020-06-24 18:54:46,211 - nl.oppleo.daemon.PeakHoursMonitorThread - 1138 MainProcess - 1950631008 PeakHoursMonitorThread - DEBUG - EVSE Status Change check ...
2020-06-24 18:54:46,211 - nl.oppleo.services.EvseDev - 1138 MainProcess - 1950631008 PeakHoursMonitorThread - DEBUG - Fake read evse state
2020-06-24 18:54:46,212 - nl.oppleo.services.EvseDev - 1138 MainProcess - 1950631008 PeakHoursMonitorThread - DEBUG - Fake read evse state
2020-06-24 18:54:48,215 - nl.oppleo.daemon.PeakHoursMonitorThread - 1138 MainProcess - 1950631008 PeakHoursMonitorThread - DEBUG - EVSE Status Change check ...
2020-06-24 18:54:48,216 - nl.oppleo.services.EvseDev - 1138 MainProcess - 1950631008 PeakHoursMonitorThread - DEBUG - Fake read evse state
2020-06-24 18:54:48,216 - nl.oppleo.services.EvseDev - 1138 MainProcess - 1950631008 PeakHoursMonitorThread - DEBUG - Fake read evse state
2020-06-24 18:54:50,220 - nl.oppleo.daemon.PeakHoursMonitorThread - 1138 MainProcess - 1950631008 PeakHoursMonitorThread - DEBUG - EVSE Status Change check ...
2020-06-24 18:54:50,220 - nl.oppleo.services.EvseDev - 1138 MainProcess - 1950631008 PeakHoursMonitorThread - DEBUG - Fake read evse state
2020-06-24 18:54:50,221 - nl.oppleo.services.EvseDev - 1138 MainProcess - 1950631008 PeakHoursMonitorThread - DEBUG - Fake read evse state
2020-06-24 18:54:52,224 - nl.oppleo.daemon.PeakHoursMonitorThread - 1138 MainProcess - 1950631008 PeakHoursMonitorThread - DEBUG - EVSE Status Change check ...
2020-06-24 18:54:52,225 - nl.oppleo.services.EvseDev - 1138 MainProcess - 1950631008 PeakHoursMonitorThread - DEBUG - Fake read evse state
2020-06-24 18:54:52,225 - nl.oppleo.services.EvseDev - 1138 MainProcess - 1950631008 PeakHoursMonitorThread - DEBUG - Fake read evse state
2020-06-24 18:54:54,228 - nl.oppleo.daemon.PeakHoursMonitorThread - 1138 MainProcess - 1950631008 PeakHoursMonitorThread - DEBUG - EVSE Status Change check ...
2020-06-24 18:54:54,229 - nl.oppleo.services.EvseDev - 1138 MainProcess - 1950631008 PeakHoursMonitorThread - DEBUG - Fake read evse state
2020-06-24 18:54:54,230 - nl.oppleo.services.EvseDev - 1138 MainProcess - 1950631008 PeakHoursMonitorThread - DEBUG - Fake read evse state
2020-06-24 18:54:56,233 - nl.oppleo.daemon.PeakHoursMonitorThread - 1138 MainProcess - 1950631008 PeakHoursMonitorThread - DEBUG - EVSE Status Change check ...
2020-06-24 18:54:56,234 - nl.oppleo.services.EvseDev - 1138 MainProcess - 1950631008 PeakHoursMonitorThread - DEBUG - Fake read evse state
2020-06-24 18:54:56,234 - nl.oppleo.services.EvseDev - 1138 MainProcess - 1950631008 PeakHoursMonitorThread - DEBUG - Fake read evse state
2020-06-24 18:54:58,237 - nl.oppleo.daemon.PeakHoursMonitorThread - 1138 MainProcess - 1950631008 PeakHoursMonitorThread - DEBUG - EVSE Status Change check ...
2020-06-24 18:54:58,238 - nl.oppleo.services.EvseDev - 1138 MainProcess - 1950631008 PeakHoursMonitorThread - DEBUG - Fake read evse state
2020-06-24 18:54:58,239 - nl.oppleo.services.EvseDev - 1138 MainProcess - 1950631008 PeakHoursMonitorThread - DEBUG - Fake read evse state

There are some "default" settings, which are just my settings haha, like the name (laadpaal_noord), the USB port, but also the prowl token I think (oops), so it looks like I get a push message when you start the software. If you have an iPhone we can get that replaced later through the web gui, or you can insert your own prowl token through a database update now. Get an api token from prowl and insert into the database using update charger_config set prowl_apikey = 'KEY';, or disable prowl using update charger_config set prowl_enabled = false;

I do run the software in development mode on my laptop, with no evse, led or modbus reader connected, so it should start I think... Don't see any errors in the log.

Can you access the website a few times and see if errors appear in the /tmp/Oppeo.log file?

Lol @ sending you messages. I have disabled prowl:

pi@EVBox:~/Oppleo/db/sql $ sudo su postgres
postgres@EVBox:/home/pi/Oppleo/db/sql$ psql charger
psql (11.7 (Raspbian 11.7-0+deb10u1))
Type "help" for help.

charger=# update charger_config set prowl_enabled = false;
UPDATE 1
charger=#

PS: I see you ar Captnemo @ tweakers. I'm Jhead22.
Dus we kunnen gewoon Nederlands praten :-)

Here is the log file. I tried to access the webpage a few times:

2020-06-24 19:48:31,908 - nl.oppleo.webapp.Oppleo - 1422 MainProcess - 1996319440 MainThread - DEBUG - Initializing Oppleo...
2020-06-24 19:48:31,909 - nl.oppleo.webapp.Oppleo - 1422 MainProcess - 1996319440 MainThread - DEBUG - sys.version 3.7.3 (default, Dec 20 2019, 18:57:59) 
[GCC 8.3.0] : 
2020-06-24 19:48:33,139 - nl.oppleo.config.OppleoConfig - 1422 MainProcess - 1996319440 MainThread - DEBUG - Initializing Oppleo...
2020-06-24 19:48:33,417 - nl.oppleo.webapp.Oppleo - 1422 MainProcess - 1996319440 MainThread - INFO - Setting GPIO MODE to BCM
2020-06-24 19:48:34,142 - nl.oppleo.webapp.flaskRoutes - 1422 MainProcess - 1996319440 MainThread - DEBUG - Initializing routes
2020-06-24 19:48:34,287 - nl.oppleo.daemon.MeasureElectricityUsageThread - 1422 MainProcess - 1996319440 MainThread - INFO - Searching for measurement devices configured in the db
2020-06-24 19:48:34,301 - nl.oppleo.daemon.MeasureElectricityUsageThread - 1422 MainProcess - 1996319440 MainThread - INFO - Found energy device laadpaal_noord
2020-06-24 19:48:34,302 - nl.oppleo.services.EnergyUtil - 1422 MainProcess - 1996319440 MainThread - DEBUG - Not production environment, skip initInstrument()
2020-06-24 19:48:34,302 - nl.oppleo.services.Charger - 1422 MainProcess - 1996319440 MainThread - DEBUG - Using fake charger
2020-06-24 19:48:34,303 - nl.oppleo.services.LedLight - 1422 MainProcess - 1996319440 MainThread - DEBUG - Initialize with 1 ledlights no pulse
2020-06-24 19:48:34,303 - nl.oppleo.services.LedLight - 1422 MainProcess - 1996319440 MainThread - DEBUG - Initialize with 2 ledlights no pulse
2020-06-24 19:48:34,303 - nl.oppleo.services.LedLight - 1422 MainProcess - 1996319440 MainThread - DEBUG - Initialize with 1 ledlights to pulse
2020-06-24 19:48:34,303 - nl.oppleo.services.LedLight - 1422 MainProcess - 1996319440 MainThread - DEBUG - Initialize with 1 ledlights no pulse
2020-06-24 19:48:34,304 - nl.oppleo.services.Evse - 1422 MainProcess - 1996319440 MainThread - DEBUG - Using fake Evse
2020-06-24 19:48:34,304 - nl.oppleo.service.EvseReader - 1422 MainProcess - 1996319440 MainThread - DEBUG - Using fake Evse reader
2020-06-24 19:48:34,305 - nl.oppleo.daemon.MeasureElectricityUsageThread - 1422 MainProcess - 1996319440 MainThread - DEBUG - MeasureElectricityUsageThread.addCallback()...
2020-06-24 19:48:34,305 - nl.oppleo.daemon.MeasureElectricityUsageThread - 1422 MainProcess - 1996319440 MainThread - DEBUG - MeasureElectricityUsageThread.addCallback() to energyDevice laadpaal_noord...
2020-06-24 19:48:34,305 - nl.oppleo.daemon.EnergyDevice - 1422 MainProcess - 1996319440 MainThread - DEBUG - EnergyDevice.addCallback()
2020-06-24 19:48:34,305 - nl.oppleo.webapp.Oppleo - 1422 MainProcess - 1996319440 MainThread - DEBUG - Starting queue reader background task...
2020-06-24 19:48:34,306 - nl.oppleo.webapp.WebSocketQueueReaderBackgroundTask - 1422 MainProcess - 1996319440 MainThread - DEBUG - Launching background task...
2020-06-24 19:48:34,307 - nl.oppleo.webapp.WebSocketQueueReaderBackgroundTask - 1422 MainProcess - 1996319440 MainThread - DEBUG - Starting background task...
2020-06-24 19:48:34,308 - nl.oppleo.daemon.PeakHoursMonitorThread - 1422 MainProcess - 1996319440 MainThread - DEBUG - Launching Thread...
2020-06-24 19:48:34,309 - nl.oppleo.models.OffPeakHoursModel - 1422 MainProcess - 1951138912 PeakHoursMonitorThread - DEBUG - is_off_peak()
2020-06-24 19:48:34,309 - nl.oppleo.webapp.Oppleo - 1422 MainProcess - 1996319440 MainThread - DEBUG - Starting web server on 0.0.0.0:5000 (debug:False, use_reloader=False)...
2020-06-24 19:48:34,315 - nl.oppleo.utils.WebSocketUtil - 1422 MainProcess - 1996319440 MainThread - DEBUG - Submit msg to websocket emit queue ... {'event': 'update', 'data': {'restartRequired': False, 'upSince': '24/06/2020, 19:48:33', 'clientsConnected': 0}, 'id': 'laadpaal_noord', 'namespace': '/system_status', 'public': False}
2020-06-24 19:48:34,316 - nl.oppleo.services.PushMessage - 1422 MainProcess - 1996319440 MainThread - DEBUG - sendMessage()
2020-06-24 19:48:34,366 - nl.oppleo.models.OffPeakHoursModel - 1422 MainProcess - 1951138912 PeakHoursMonitorThread - DEBUG - is_off_peak(): 24/06/2020, 19:48:34 not within off-peak
2020-06-24 19:48:34,367 - nl.oppleo.daemon.PeakHoursMonitorThread - 1422 MainProcess - 1951138912 PeakHoursMonitorThread - DEBUG - Off Peak Window Change check ... (wasOffPeak:False, isOffPeak:False)
2020-06-24 19:48:34,367 - nl.oppleo.daemon.PeakHoursMonitorThread - 1422 MainProcess - 1951138912 PeakHoursMonitorThread - DEBUG - EVSE Status Change check ...
2020-06-24 19:48:34,367 - nl.oppleo.services.EvseDev - 1422 MainProcess - 1951138912 PeakHoursMonitorThread - DEBUG - Fake read evse state
2020-06-24 19:48:34,367 - nl.oppleo.services.EvseDev - 1422 MainProcess - 1951138912 PeakHoursMonitorThread - DEBUG - Fake read evse state
2020-06-24 19:48:34,809 - nl.oppleo.webapp.WebSocketQueueReaderBackgroundTask - 1422 MainProcess - 1996319440 MainThread - DEBUG - Send msg 1 via websocket ...{'event': 'update', 'data': {'restartRequired': False, 'upSince': '24/06/2020, 19:48:33', 'clientsConnected': 0}, 'id': 'laadpaal_noord', 'namespace': '/system_status', 'public': False}
2020-06-24 19:48:36,371 - nl.oppleo.daemon.PeakHoursMonitorThread - 1422 MainProcess - 1951138912 PeakHoursMonitorThread - DEBUG - EVSE Status Change check ...
2020-06-24 19:48:36,371 - nl.oppleo.services.EvseDev - 1422 MainProcess - 1951138912 PeakHoursMonitorThread - DEBUG - Fake read evse state
2020-06-24 19:48:36,372 - nl.oppleo.services.EvseDev - 1422 MainProcess - 1951138912 PeakHoursMonitorThread - DEBUG - Fake read evse state
2020-06-24 19:48:38,375 - nl.oppleo.daemon.PeakHoursMonitorThread - 1422 MainProcess - 1951138912 PeakHoursMonitorThread - DEBUG - EVSE Status Change check ...
2020-06-24 19:48:38,376 - nl.oppleo.services.EvseDev - 1422 MainProcess - 1951138912 PeakHoursMonitorThread - DEBUG - Fake read evse state
2020-06-24 19:48:38,376 - nl.oppleo.services.EvseDev - 1422 MainProcess - 1951138912 PeakHoursMonitorThread - DEBUG - Fake read evse state
2020-06-24 19:48:40,380 - nl.oppleo.daemon.PeakHoursMonitorThread - 1422 MainProcess - 1951138912 PeakHoursMonitorThread - DEBUG - EVSE Status Change check ...
2020-06-24 19:48:40,381 - nl.oppleo.services.EvseDev - 1422 MainProcess - 1951138912 PeakHoursMonitorThread - DEBUG - Fake read evse state
2020-06-24 19:48:40,381 - nl.oppleo.services.EvseDev - 1422 MainProcess - 1951138912 PeakHoursMonitorThread - DEBUG - Fake read evse state
2020-06-24 19:48:42,384 - nl.oppleo.daemon.PeakHoursMonitorThread - 1422 MainProcess - 1951138912 PeakHoursMonitorThread - DEBUG - EVSE Status Change check ...
2020-06-24 19:48:42,385 - nl.oppleo.services.EvseDev - 1422 MainProcess - 1951138912 PeakHoursMonitorThread - DEBUG - Fake read evse state
2020-06-24 19:48:42,386 - nl.oppleo.services.EvseDev - 1422 MainProcess - 1951138912 PeakHoursMonitorThread - DEBUG - Fake read evse state
2020-06-24 19:48:44,389 - nl.oppleo.daemon.PeakHoursMonitorThread - 1422 MainProcess - 1951138912 PeakHoursMonitorThread - DEBUG - EVSE Status Change check ...
2020-06-24 19:48:44,390 - nl.oppleo.services.EvseDev - 1422 MainProcess - 1951138912 PeakHoursMonitorThread - DEBUG - Fake read evse state
2020-06-24 19:48:44,390 - nl.oppleo.services.EvseDev - 1422 MainProcess - 1951138912 PeakHoursMonitorThread - DEBUG - Fake read evse state
2020-06-24 19:48:46,394 - nl.oppleo.daemon.PeakHoursMonitorThread - 1422 MainProcess - 1951138912 PeakHoursMonitorThread - DEBUG - EVSE Status Change check ...
2020-06-24 19:48:46,394 - nl.oppleo.services.EvseDev - 1422 MainProcess - 1951138912 PeakHoursMonitorThread - DEBUG - Fake read evse state
2020-06-24 19:48:46,395 - nl.oppleo.services.EvseDev - 1422 MainProcess - 1951138912 PeakHoursMonitorThread - DEBUG - Fake read evse state
2020-06-24 19:48:48,398 - nl.oppleo.daemon.PeakHoursMonitorThread - 1422 MainProcess - 1951138912 PeakHoursMonitorThread - DEBUG - EVSE Status Change check ...
2020-06-24 19:48:48,399 - nl.oppleo.services.EvseDev - 1422 MainProcess - 1951138912 PeakHoursMonitorThread - DEBUG - Fake read evse state
2020-06-24 19:48:48,399 - nl.oppleo.services.EvseDev - 1422 MainProcess - 1951138912 PeakHoursMonitorThread - DEBUG - Fake read evse state
2020-06-24 19:48:50,403 - nl.oppleo.daemon.PeakHoursMonitorThread - 1422 MainProcess - 1951138912 PeakHoursMonitorThread - DEBUG - EVSE Status Change check ...
2020-06-24 19:48:50,404 - nl.oppleo.services.EvseDev - 1422 MainProcess - 1951138912 PeakHoursMonitorThread - DEBUG - Fake read evse state
2020-06-24 19:48:50,404 - nl.oppleo.services.EvseDev - 1422 MainProcess - 1951138912 PeakHoursMonitorThread - DEBUG - Fake read evse state
2020-06-24 19:48:52,407 - nl.oppleo.daemon.PeakHoursMonitorThread - 1422 MainProcess - 1951138912 PeakHoursMonitorThread - DEBUG - EVSE Status Change check ...
2020-06-24 19:48:52,408 - nl.oppleo.services.EvseDev - 1422 MainProcess - 1951138912 PeakHoursMonitorThread - DEBUG - Fake read evse state
2020-06-24 19:48:52,409 - nl.oppleo.services.EvseDev - 1422 MainProcess - 1951138912 PeakHoursMonitorThread - DEBUG - Fake read evse state
2020-06-24 19:48:54,412 - nl.oppleo.daemon.PeakHoursMonitorThread - 1422 MainProcess - 1951138912 PeakHoursMonitorThread - DEBUG - EVSE Status Change check ...
2020-06-24 19:48:54,413 - nl.oppleo.services.EvseDev - 1422 MainProcess - 1951138912 PeakHoursMonitorThread - DEBUG - Fake read evse state
2020-06-24 19:48:54,413 - nl.oppleo.services.EvseDev - 1422 MainProcess - 1951138912 PeakHoursMonitorThread - DEBUG - Fake read evse state

Hi Jhead22, recognized your setup from Tweakers, PrutserNL geeft het ook wel weg :). Weet niet of ooit een niet-NL spreker dit leest, maar Engels kan handig zijn.

Did you try port 5000 as in http://localhost:5000/ or the ip of the raspberry? This is the port it uses in development mode.

Also do a git pull inside the /home/pi/Oppleo/ directory. I added a fix to display the dashboard with no kwh meter data present.

You also need to create an Admin user (default user). I need to fix that script first (oops)

Cool! Port 5000 is doing something :) Is see the background and a spinning wheel.
I will try "git pull" tomorrow. I have to sleep now for a few hour.

Thanks again for all your help! Good night!

image

Looks great!

Do the git pull for some fixes, and run python3 src/reset_users.py in /home/pi/Oppleo/ to create a default admin/admin user. After this running in Production mode (port 80) should no longer crash if there is no kwh meter and you should be able to go to Instellingen and login to change settings.

Step by step we are getting forward :-)

Git pul done:

pi@EVBox:~/Oppleo $ sudo git pull
remote: Enumerating objects: 108, done.
remote: Counting objects: 100% (108/108), done.
remote: Compressing objects: 100% (49/49), done.
remote: Total 108 (delta 71), reused 96 (delta 59), pack-reused 0
Receiving objects: 100% (108/108), 3.11 MiB | 2.83 MiB/s, done.
Resolving deltas: 100% (71/71), completed with 22 local objects.
From https://github.com/ilseh/Oppleo
   6e60b50..4210850  master     -> origin/master
Updating 6e60b50..4210850
Fast-forward
 db/sql/schema-24.sql                               |   3 +
 doc/modbus/Eastron_SDM120-Modbus_protocol_V2_3.pdf | Bin 0 -> 363501 bytes
 ...Eastron_SDM120-Modbus_user_manual_2016_V2_6.pdf | Bin 0 -> 893138 bytes
 doc/modbus/Eastron_SDM630-Modbus_protocol_V1_3.pdf | Bin 0 -> 342154 bytes
 doc/modbus/Eastron_SDM630-Modbus_protocol_V1_5.pdf | Bin 0 -> 264308 bytes
 ...stron_SDM630Modbus_V2_user_manual_2016_V1_3.pdf | Bin 0 -> 1803033 bytes
 src/create_user.py                                 |  33 ----
 src/nl/oppleo/daemon/ChargerHandlerThread.py       |   3 -
 src/nl/oppleo/models/ChargerConfigModel.py         |   4 +-
 src/nl/oppleo/models/EnergyDeviceModel.py          |   2 +
 src/nl/oppleo/services/Evse.py                     |   7 +-
 src/nl/oppleo/utils/EnergyUtil.py                  | 126 +++++++++++++-
 src/nl/oppleo/utils/EnergyUtil_original.py         | 191 +++++++++++++++++++++
 src/nl/oppleo/utils/modbus/SDM120.py               |  97 +++++++++++
 src/nl/oppleo/utils/modbus/SDM360v2.py             | 166 ++++++++++++++++++
 src/nl/oppleo/webapp/Oppleo.py                     |  28 ++-
 src/nl/oppleo/webapp/flaskRoutes.py                |  47 ++++-
 .../oppleo/webapp/static/js/oppleo-edit-select.js  |   4 +-
 src/nl/oppleo/webapp/templates/dashboard.html      |  16 +-
 src/nl/oppleo/webapp/templates/settings.html       |  36 +++-
 src/run_charger_restful.py                         |  25 ---
 21 files changed, 699 insertions(+), 89 deletions(-)
 create mode 100644 db/sql/schema-24.sql
 create mode 100644 doc/modbus/Eastron_SDM120-Modbus_protocol_V2_3.pdf
 create mode 100644 doc/modbus/Eastron_SDM120-Modbus_user_manual_2016_V2_6.pdf
 create mode 100644 doc/modbus/Eastron_SDM630-Modbus_protocol_V1_3.pdf
 create mode 100644 doc/modbus/Eastron_SDM630-Modbus_protocol_V1_5.pdf
 create mode 100644 doc/modbus/Eastron_SDM630Modbus_V2_user_manual_2016_V1_3.pdf
 delete mode 100644 src/create_user.py
 create mode 100644 src/nl/oppleo/utils/EnergyUtil_original.py
 create mode 100644 src/nl/oppleo/utils/modbus/SDM120.py
 create mode 100644 src/nl/oppleo/utils/modbus/SDM360v2.py
 delete mode 100644 src/run_charger_restful.py

Reset users:

pi@EVBox:~/Oppleo $ sudo python3 src/reset_users.py
Reset user utility
2020-06-26 10:28:53,567 - nl.oppleo.config.OppleoSystemConfig - 779 MainProcess                                                                                                              - 1996417744 MainThread - ERROR - Ini file ERROR: No SIGNATURE in Oppleo
System configuration loaded
Resetting users to default admin/admin. Delete all existing? (y/n):
y
Default admin user with admin password created.

I did set de ini file to production an restarted the service Oppleo.
Now we have a empty dashboard :-)
Login with user admin and password admin gives error 500.
Rebooting the raspberry does not help.

What does the ERROR: No SIGNATURE in Oppleo mean?

The signature is a random generated string, used to identify the install (generated locally). This is used when sending a push message through Prowl. I use it to separate between my actual charger and a develop environment on my laptop, so you know which one is reporting. You can see it in the settings.

I added the SDM120 in the config and added the setting as one column in the database. You probably pulled that version so you need to update the database. If you go to /home/pi/Oppleo/db/ and run liquibase update it should be updated. Stop Oppleo before you run liquibase otherwise liquibase cannot grab a db lock.

Start Oppleo after, should come up.

In Instellingen - kWh meter set the port name to whatever your modbus usb port is, and set the Modbus register configuration to SDM120.

Nice! I can now succesfully login :-)

Stopping the Oppleo service was not enough, I needed to run liquibase releaseLocks to unlock the database.
I'm very happy! I hope the Modbus usb adapter will arrive soon. :-)

Update, so do a git pull again. Added Prowl config to the settings page, and added the possibility to add an RFID token (laadpas) through the web interface, if you don't want to add the rfid reader.

Thanks! I will update it tonight.
Other question: You wrote: The Pi 4 however has been nice to the sdcard on power cycles.
Do you mean that de Pi 4 is not destroying SDcards by a power outtake? Do they build a protection in it?
For my raspberry Pi 3 I use a Pico UPS so it will auto shutdown after 2 minutes bij a power outtake. Oppleo is now running on a Pi 3B+ without pico UPS, so i'm looking for a solution. Maybe I can buy a Pi 4 instead of a pico UPS.

My P4 hasn't corrupted any sd cards (yet) I mean. I am unaware of any additional protection. I was also looking into a UPS, but quite expensive in relation to the Pi and a bit bulky as I want to place my Pi into the box in the garage.
I have shutdown functionality in the web gui, so only need to hard-switch off if the application and ssh fail.

The git pull is getting an error because I use postgresql-42.2.14.jar instead of postgresql-42.2.9.jar
I can downgrade to postgresql-42.2.9.jar. What do you prefer?

pi@EVBox:~/Oppleo $ sudo git pull
remote: Enumerating objects: 38, done.
remote: Counting objects: 100% (38/38), done.
remote: Compressing objects: 100% (10/10), done.
remote: Total 38 (delta 28), reused 38 (delta 28), pack-reused 0
Unpacking objects: 100% (38/38), done.
From https://github.com/ilseh/Oppleo
   4210850..13cb9a0  master     -> origin/master
Updating 4210850..13cb9a0
error: Your local changes to the following files would be overwritten by merge:
        db/liquibase.properties
Please commit your changes or stash them before you merge.
error: The following untracked working tree files would be overwritten by merge:
        db/postgresql-42.2.14.jar
Please move or remove them before you merge.
Aborting

By removing or changing local files git sees discrepancies and won't just overwrite. You can stash them using

  1. git stash
  2. git pull
  3. git stash pop

or ignore/delete them using

  1. git reset --hard
  2. git pull

I also changed tp 42.2.14 in the repository.

Thx! It works.
Add and remove cards works perfectly!

Super! Let me know when you get the RS485 interface.

Hi Laemen, I received the RS485 USB interface. :-)
I made a test cirquit and connected the Raspberry to it.
In Oppleo I selected the SDM120 1fase.
The default speed of the SDM120 is 9600 baud. When I change the speed in Oppleo it shows an error: instelling onbekend, niet opgeslagen. (config unknow, not safed). The speed is going back to 38400.
Selecting another speed gives the same error.

I was wondering, is it possible to make a button in the dashboard to start a session?

Ah, cirous to see if it works. Appologies for the stupid bug, fixed now (int vs string thingy). Please do a git pull in the Oppleo directory and restart the app.

You can go to the Laadpassen menu and start a session from there. I'll look into making a big start/stop button with a preferred rfid token.

Ok, I have done the update. Now we can change the baud rate to 9600.
I made a virtal token and started a session with a 500W dummy load. I don't see any readings from the kwh meter.

I tried to test the kwh meter with this script to see if it is working:

#!/usr/bin/env python
# Modbus uitlezen
# Apparaat: EASTRON SDM120 (KWh meter)
#
# Script gemaakt door S. Ebeltjes (domoticx.nl)
 
from __future__ import division
import pymodbus
import serial
from pymodbus.pdu import ModbusRequest
from pymodbus.client.sync import ModbusSerialClient as ModbusClient #initialize a serial RTU client instance
from pymodbus.transaction import ModbusRtuFramer
 
from pymodbus.constants import Endian              # Nodig voor 32-bit float getallen (2 registers / 4 bytes)
from pymodbus.payload import BinaryPayloadDecoder  # Nodig voor 32-bit float getallen (2 registers / 4 bytes)
from pymodbus.payload import BinaryPayloadBuilder  # Nodig om 32-bit floats te schrijven naar register
 
method = "rtu"
port = "/dev/ttyUSB0"
baudrate = 9600
stopbits = 1
bytesize = 8
parity = "N"
timeout = 1
retries = 2
 
try:
	client = ModbusClient(method = method, port = port, stopbits = stopbits, bytesize = bytesize, parity = parity, baudrate = baudrate, timeout = timeout, retries = retries)
	connection = client.connect()
except:
	print "Modbus connectie error / EASTRON SDM120"

def kwh(appid):
	try:
		data = client.read_input_registers(342, 2, unit=appid)
		decoder = BinaryPayloadDecoder.fromRegisters(data.registers, endian=Endian.Big) # endian=Endian.Little / endian=Endian.Big
		eastron_sdm120_kwh = round(decoder.decode_32bit_float(), 3)
		client.close()
		return eastron_sdm120_kwh
	except:
		print "Modbus register error (kwh)"
		return 0
 
print kwh(1)

Result: Modbus register error (kwh)

1
2

I'm not familiar with that testcode. There are tests in Oppleo in the Oppleo/test directory. Do a git pull again, I added one for the SDM120. This test file is basically using the same code as in the Oppleo sw.
Run with python3 test/ModbusSDM120.py and see if it returns values.

Make sure the stop bit, parity, baudrate etc are the same. Also check the pos and neg wires between the USB interface and the kWh meter. My distance is 10-15m and I do not use a terminating resister, if the distance is more you might need one.
Check with ls /dev/ to see your USB device (mine lists the /dev/ttyUSB0 device). Use lsusb to see the adapter, my output is

pi@raspberrypi:~/Oppleo $ lsusb
Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 001 Device 003: ID 1a86:7523 QinHeng Electronics HL-340 USB-Serial adapter
Bus 001 Device 002: ID 2109:3431 VIA Labs, Inc. Hub
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

(You can see the readings in the log file /tmp/Oppleo.log and in the Verbruik menu.)

The test script works! I got some readings with errors between the good readings. Changed the stop bit from 1 to 2 solved this problem. Now al readings are good.
I will change the stop bit in Oppleo and try again.

Edit: It is not possible to change the stopbit in Oppleo.
Stopbit 1 and time out 2 gives sometimes a read error.

If I add a heater as load, the script is showing 500W usage. When I start a session in Oppleo the status stays on waiting and I see no power usage. I did not connected to the EVSE yet. Is that the problem?

No charging

Stopbit 1, timeout 2:

 Reading values took 336.4ms
20200717 13:11:09 -> L1:236.4V/0.0A/0.0W 50.0Hz 0.0kWh
 Reading values took 319.5ms
20200717 13:11:14 -> L1:236.3V/0.0A/0.0W 50.0Hz 0.0kWh
 Reading values took 327.4ms
20200717 13:11:19 -> L1:236.3V/0.0A/0.0W 50.0Hz 0.0kWh
 Reading values took 335.5ms
20200717 13:11:25 -> L1:236.2V/0.0A/0.0W 50.0Hz 0.0kWh
 Reading values took 316.9ms
read failed: device reports readiness to read but returned no data (device disconnected or multiple access on port?) False
 Reading values took 1220.0ms
20200717 13:11:36 -> L1:236.4V/0.0A/0.0W 50.0Hz 0.0kWh
 Reading values took 317.7ms
read failed: device reports readiness to read but returned no data (device disconnected or multiple access on port?) False
 Reading values took 1090.2ms
20200717 13:11:48 -> L1:236.7V/0.0A/0.0W 50.0Hz 0.0kWh
 Reading values took 323.8ms
read failed: device reports readiness to read but returned no data (device disconnected or multiple access on port?) False
 Reading values took 1071.0ms
20200717 13:11:59 -> L1:236.9V/0.0A/0.0W 50.0Hz 0.0kWh
 Reading values took 328.1ms
read failed: device reports readiness to read but returned no data (device disconnected or multiple access on port?) False
 Reading values took 1086.0ms
20200717 13:12:10 -> L1:236.9V/0.0A/0.0W 50.0Hz 0.0kWh
 Reading values took 329.5ms
Checksum error in rtu mode: 'ÿÿ' instead of 'dc' . The response is: '\x01\x04\x04<ÌÌÿÿ' (plain response: '\x01\x04\x04<ÌÌÿÿ') False
 Reading values took 2002.5ms
20200717 13:12:23 -> L1:236.9V/0.0A/0.0W 50.0Hz 0.0kWh
 Reading values took 326.9ms
20200717 13:12:28 -> L1:236.9V/0.0A/0.0W 50.0Hz 0.0kWh
 Reading values took 309.4ms
20200717 13:12:33 -> L1:236.9V/0.0A/0.0W 50.0Hz 0.0kWh

Stopbit 2, timeout 1:

20200717 12:51:26 -> L1:236.1V/0.0A/0.0W 50.0Hz 0.0kWh
 Reading values took 325.0ms
20200717 12:51:32 -> L1:236.1V/0.0A/0.0W 50.0Hz 0.0kWh
 Reading values took 319.4ms
20200717 12:51:37 -> L1:236.3V/0.0A/0.0W 50.0Hz 0.0kWh
 Reading values took 331.2ms
20200717 12:51:42 -> L1:236.2V/0.0A/0.0W 50.0Hz 0.0kWh
 Reading values took 325.3ms
20200717 12:51:48 -> L1:236.2V/0.0A/0.0W 50.0Hz 0.0kWh

It reads the status pin from the evse to detect if it is charging, it does not use the kWh delta. So it won’t say it is charging if there is no evse. It should however update the session values and the gauges as it is taking that from the kWh meter.
Try the parameters in the test script to see if you can get consistent readings. The stop bits should be 1 for RTU modbus according to https://www.se.com/ww/en/faqs/FA179957/ I can make it configurable.
Try the fastest baudrate the kWh meter supports, I switched from 9600 tto 38400(?) which makes it much faster.
The registers look ok, however are the values the same as the display on the kWh meter? If you put a 500W load on it the A (amps) should read ~2.x and the kWh should become higher than 0?

Added a quick start option on the dashboard. Enable/disable in settings (Instellingen-Laadpunt) at the bottom. You can enable the quick charge button, and enable bypassing the password screens.

cd /home/pi/Oppleo
sudo systemctl stop Oppleo.service
git pull
cd db
liquibase update
sudo systemctl start Oppleo.service

Note: my charge points name is 'laadpaal_noord'. This is also used in the liquibase scripts. You you named your charger different, the db updates probably won't work, then you'll need to do them manually.

Did you get the kWh meter reader to work?

Thanks!
It will take a while before I can continue with this project. We have some other things to do, first.

Hi laemen,
I followed this thread to the point that I got Oppleo working.
Only strange things that occur to me is that I can't change name Laadpunt and when I start a 'laadsessie' just to see if it does something I get a 500 database error.

I don't have anything connected yet. Only installed Oppleo on the Pi.

I will try a new install in the next few days to see if I missed something. As I only upgrade I do not easily catch this.
Maybe open a different issue to track this?