2
0
mirror of https://github.com/schnidrig/openhab-ansible synced 2026-01-12 08:58:46 +01:00
This commit is contained in:
Christian Schnidrig
2023-01-04 21:28:35 +01:00
parent 3071173f0e
commit 8d0cc11d24
11 changed files with 147 additions and 2 deletions

View File

@@ -66,9 +66,10 @@ add the following to /home/pi/userdata/etc/log4j2.xml
# Optional: # 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 /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 # Restore backed up config

View File

@@ -6,5 +6,6 @@
roles: roles:
- raspberry - raspberry
- openhab - openhab
- psa_car_controller

View File

@@ -13,4 +13,4 @@
group: root group: root
mode: "u=rwx,g=xr,o=rx" mode: "u=rwx,g=xr,o=rx"
loop: loop:
- backup - backup-openhab

View 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__))

View 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)

View File

@@ -0,0 +1,12 @@
---
- include: psacc.yml
tags:
- psacc
- openhab_all
- include: scripts.yml
tags:
- psacc
- openhab_all

View 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

View 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

View 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

View 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