mirror of
https://github.com/schnidrig/openhab-ansible
synced 2026-01-12 08:58: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:
|
# 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
|
||||||
|
|||||||
@@ -6,5 +6,6 @@
|
|||||||
roles:
|
roles:
|
||||||
- raspberry
|
- raspberry
|
||||||
- openhab
|
- openhab
|
||||||
|
- psa_car_controller
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
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