mirror of
https://github.com/schnidrig/openhab-ansible
synced 2026-01-12 00:48:46 +01:00
add psa
This commit is contained in:
@@ -66,9 +66,10 @@ add the following to /home/pi/userdata/etc/log4j2.xml
|
||||
|
||||
# Optional:
|
||||
|
||||
Add the following line to /etc/fstab
|
||||
Add the following lines to /etc/fstab
|
||||
|
||||
tmpfs /var/log/openhab tmpfs rw,size=1g,uid=1000,gid=1000,mode=0755 0 0
|
||||
tmpfs /home/pi/psa/log tmpfs rw,size=1g,uid=1000,gid=1000,mode=0755 0 0
|
||||
|
||||
|
||||
# Restore backed up config
|
||||
|
||||
@@ -6,5 +6,6 @@
|
||||
roles:
|
||||
- raspberry
|
||||
- openhab
|
||||
- psa_car_controller
|
||||
|
||||
|
||||
|
||||
@@ -13,4 +13,4 @@
|
||||
group: root
|
||||
mode: "u=rwx,g=xr,o=rx"
|
||||
loop:
|
||||
- backup
|
||||
- backup-openhab
|
||||
|
||||
20
roles/psa_car_controller/Readme.me
Normal file
20
roles/psa_car_controller/Readme.me
Normal file
@@ -0,0 +1,20 @@
|
||||
See https://github.com/flobz/psa_car_controller
|
||||
|
||||
cli paramters: https://github.com/flobz/psa_car_controller/blob/master/psa_car_controller/psacc/application/car_controller.py
|
||||
|
||||
parser.add_argument("-f", "--config", help="config file, default file: config.json", default="config.json")
|
||||
parser.add_argument("-c", "--charge-control", help="enable charge control, default charge_config.json",
|
||||
const="charge_config.json", nargs='?', metavar='charge config file')
|
||||
parser.add_argument("-d", "--debug", help="enable debug", const=10, default=20, nargs='?',
|
||||
metavar='Debug level number or name')
|
||||
parser.add_argument("-l", "--listen", help="change server listen address", default="127.0.0.1", metavar="IP")
|
||||
parser.add_argument("-p", "--port", help="change server listen port", default="5000")
|
||||
parser.add_argument("-r", "--record", help="save vehicle data to db", action='store_true')
|
||||
parser.add_argument("-R", "--refresh", help="refresh vehicles status every x min", type=int)
|
||||
parser.add_argument("-m", "--mail", default=environ.get('USER_EMAIL', None), help="set the email address")
|
||||
parser.add_argument("-P", "--password", default=environ.get('USER_PASSWORD', None), help="set the password")
|
||||
parser.add_argument("--remote-disable", help="disable remote control", action='store_true')
|
||||
parser.add_argument("--offline", help="offline limited mode", action='store_true')
|
||||
parser.add_argument("--web-conf", help="ignore if config files not existing yet", action='store_true')
|
||||
parser.add_argument("-b", "--base-path", help="base path for web app", default="/")
|
||||
parser.add_argument('--version', action='version', version='PSACC {}'.format(psa_car_controller.__version__))
|
||||
55
roles/psa_car_controller/files/mylogger.py
Normal file
55
roles/psa_car_controller/files/mylogger.py
Normal file
@@ -0,0 +1,55 @@
|
||||
import logging
|
||||
from logging.handlers import RotatingFileHandler
|
||||
|
||||
LOG_FILE = '/var/log/activity.log'
|
||||
|
||||
DEBUG_LEVELV_NUM = 9
|
||||
logging.addLevelName(DEBUG_LEVELV_NUM, "DEBUGV")
|
||||
|
||||
|
||||
class CustomLogger(logging.Logger):
|
||||
def _log(self, level, # pylint: disable=too-many-arguments,unused-argument
|
||||
msg,
|
||||
args,
|
||||
exc_info=None,
|
||||
extra=None,
|
||||
stack_info=False,
|
||||
exc_info_debug=False,
|
||||
**kwargs):
|
||||
if exc_info_debug and self.isEnabledFor(logging.DEBUG):
|
||||
exc_info = True
|
||||
super()._log(level, msg, args, exc_info, extra, stack_info)
|
||||
|
||||
def __new_style_log(self, level, msg, args, exc_info=None, extra=None, # pylint: disable=too-many-arguments
|
||||
stack_info=False, **kwargs):
|
||||
if kwargs.pop('style', "%") == "{": # optional
|
||||
msg = msg.format(*args)
|
||||
args = []
|
||||
self._log(level, msg, args, exc_info, extra, stack_info)
|
||||
|
||||
def debugv(self, msg, *args, **kwargs):
|
||||
if self.isEnabledFor(DEBUG_LEVELV_NUM):
|
||||
self.__new_style_log(DEBUG_LEVELV_NUM, msg, args, **kwargs)
|
||||
|
||||
@staticmethod
|
||||
def getLogger(name):
|
||||
return logging.getLogger(name)
|
||||
|
||||
|
||||
logging.setLoggerClass(CustomLogger)
|
||||
logger = logging.getLogger()
|
||||
|
||||
file_handler = RotatingFileHandler(LOG_FILE, 'a', 1000000, 1, encoding='utf8')
|
||||
formatter = logging.Formatter('%(asctime)s :: %(levelname)s :: %(message)s')
|
||||
stream_handler = logging.StreamHandler()
|
||||
|
||||
|
||||
def my_logger(handler_level=logging.INFO):
|
||||
logger.setLevel(handler_level)
|
||||
file_handler.setLevel(handler_level)
|
||||
file_handler.setFormatter(formatter)
|
||||
logger.addHandler(file_handler)
|
||||
stream_handler.setLevel(handler_level)
|
||||
stream_handler.setFormatter(formatter)
|
||||
logger.addHandler(stream_handler)
|
||||
|
||||
12
roles/psa_car_controller/tasks/main.yml
Normal file
12
roles/psa_car_controller/tasks/main.yml
Normal file
@@ -0,0 +1,12 @@
|
||||
---
|
||||
|
||||
- include: psacc.yml
|
||||
tags:
|
||||
- psacc
|
||||
- openhab_all
|
||||
|
||||
- include: scripts.yml
|
||||
tags:
|
||||
- psacc
|
||||
- openhab_all
|
||||
|
||||
16
roles/psa_car_controller/tasks/psacc.yml
Normal file
16
roles/psa_car_controller/tasks/psacc.yml
Normal file
@@ -0,0 +1,16 @@
|
||||
---
|
||||
|
||||
- name: Adding user pi to group docker
|
||||
user: name=pi
|
||||
groups=docker
|
||||
append=yes
|
||||
|
||||
- name: install docker-compose file
|
||||
template:
|
||||
src: docker-compose.yaml
|
||||
dest: /home/pi/psa/docker-compose.yaml
|
||||
|
||||
- name: install patch
|
||||
copy:
|
||||
src: mylogger.py
|
||||
dest: /home/pi/psa/mylogger.py
|
||||
16
roles/psa_car_controller/tasks/scripts.yml
Normal file
16
roles/psa_car_controller/tasks/scripts.yml
Normal file
@@ -0,0 +1,16 @@
|
||||
---
|
||||
|
||||
- name: create scripts dir
|
||||
file:
|
||||
dest: "/home/pi/bin"
|
||||
state: directory
|
||||
|
||||
- name: create scripts
|
||||
template:
|
||||
src: "{{ item }}.sh"
|
||||
dest: "/home/pi/bin/{{ item }}"
|
||||
owner: root
|
||||
group: root
|
||||
mode: "u=rwx,g=xr,o=rx"
|
||||
loop:
|
||||
- backup-psa
|
||||
9
roles/psa_car_controller/templates/backup-psa.sh
Normal file
9
roles/psa_car_controller/templates/backup-psa.sh
Normal file
@@ -0,0 +1,9 @@
|
||||
BACKUP_SERVER_URL="christian@ds3018:/volume1/backup/psa"
|
||||
BACKUP_FILE="psa_$(date '+%F_%H-%M').tgz"
|
||||
|
||||
cd /home/pi/psa
|
||||
tar -czf psacc.tgz config
|
||||
|
||||
scp psacc.tgz ${BACKUP_SERVER_URL}/${BACKUP_FILE}
|
||||
|
||||
rm psacc.tgz
|
||||
15
roles/psa_car_controller/templates/docker-compose.yaml
Normal file
15
roles/psa_car_controller/templates/docker-compose.yaml
Normal file
@@ -0,0 +1,15 @@
|
||||
version: "2"
|
||||
|
||||
services:
|
||||
psacc:
|
||||
image: flobz/psa_car_controller:v3.0.7
|
||||
restart: unless-stopped
|
||||
privileged: true
|
||||
ports:
|
||||
- "5000:5000"
|
||||
volumes:
|
||||
- ./config:/config
|
||||
- ./log:/var/log
|
||||
- ./mylogger.py:/usr/local/lib/python3.9/dist-packages/psa_car_controller/common/mylogger.py
|
||||
command: psa-car-controller -l 0.0.0.0 -b / -c -r --web-conf -R 10
|
||||
|
||||
Reference in New Issue
Block a user