12 Commits
1.0.0 ... 0.0.3

Author SHA1 Message Date
86139754bd cd-script fixed
All checks were successful
ci/woodpecker/push/woodpecker Pipeline was successful
ci/woodpecker/tag/woodpecker Pipeline was successful
2024-01-11 14:28:23 +01:00
6127129b03 cd-script fixed
All checks were successful
ci/woodpecker/push/woodpecker Pipeline was successful
ci/woodpecker/tag/woodpecker Pipeline was successful
2024-01-11 14:26:25 +01:00
6564722727 cd-script added
All checks were successful
ci/woodpecker/push/woodpecker Pipeline was successful
2024-01-11 14:23:54 +01:00
a65b991307 add woodpecker ci script
All checks were successful
ci/woodpecker/push/woodpecker Pipeline was successful
2024-01-11 14:11:43 +01:00
4ea8a3688b fix 2023-11-08 18:33:49 +01:00
0eace0be7c env 2023-11-08 18:31:21 +01:00
88c442697f deployment added 2023-11-08 17:14:29 +01:00
c2053acee3 fix 2023-11-08 17:12:22 +01:00
827ebdadad fix 2023-11-08 14:55:05 +01:00
3d28188833 fix 2023-11-08 14:49:48 +01:00
52d690c382 fix 2023-11-08 14:48:19 +01:00
44d5118411 fix 2023-11-08 14:45:01 +01:00
6 changed files with 47 additions and 27 deletions

29
.woodpecker.yml Normal file
View File

@ -0,0 +1,29 @@
steps:
build:
image: plugins/kaniko
settings:
repo: gitea.hottis.de/wn/pv-controller
registry:
from_secret: container_registry
tags: latest,${CI_COMMIT_SHA},${CI_COMMIT_TAG}
username:
from_secret: container_registry_username
password:
from_secret: container_registry_password
dockerfile: Dockerfile
when:
- event: [push, tag]
deploy:
image: portainer/kubectl-shell:latest
secrets:
- source: kube_config
target: KUBE_CONFIG_CONTENT
commands:
- export IMAGE_TAG=$CI_COMMIT_TAG
- printf "$KUBE_CONFIG_CONTENT" > /tmp/kubeconfig
- export KUBECONFIG=/tmp/kubeconfig
- cat ./deployment/install-yml.tmpl | sed -e 's,%IMAGETAG%,'$IMAGE_TAG','g | kubectl apply -f -
when:
- event: tag

View File

@ -2,11 +2,17 @@ FROM python:latest
LABEL Maintainer="Wolfgang Hottgenroth wolfgang.hottgenroth@icloud.com"
LABEL ImageName="registry.hottis.de/dockerized/pv-controller"
LABEL HubImageName="wollud1969/pv-controller"
ARG APP_DIR="/opt/app"
ARG CONF_DIR="${APP_DIR}/config"
ENV MQTT__BROKER ""
ENV MQTT__PORT "1883"
ENV MQTT__METERPUBLISHTOPIC "IoT/PV/Values"
ENV MQTT__METERPUBLISHPERIOD "15"
ENV MQTT__RELAISSUBSCRIBETOPIC "IoT/PV/Cmd"
ENV MODBUS__GATEWAY ""
RUN \
apt update && \
@ -16,18 +22,15 @@ RUN \
RUN \
mkdir -p ${APP_DIR} && \
mkdir -p ${CONF_DIR} && \
useradd -d ${APP_DIR} -u 1000 user
COPY ./src/pv_controller/*.py ${APP_DIR}/
COPY config.ini ${CONF_DIR}/
USER 1000:1000
WORKDIR ${APP_DIR}
VOLUME ${CONF_DIR}
CMD [ "python", "pvc.py", "-f", "/opt/app/config/config.ini" ]
CMD [ "python", "pvc.py" ]

View File

@ -1,14 +0,0 @@
[mqtt]
broker = 172.16.2.16
port = 1883
# login =
# password =
# ca =
# cert =
# key =
relaisSubscribeTopic = IoT/PV/Cmd
meterPublishTopic = IoT/PV/Values
meterPublishPeriod = 15
[modbus]
gateway = 172.16.2.42

View File

@ -1,13 +1,13 @@
apiVersion: v1
kind: namespace
kind: Namespace
metadata:
name: pv-controller
name: homea
---
apiVersion: v1
kind: ConfigMap
metadata:
name: pv-controller
namespace: pv-controller
namespace: homea
data:
MQTT__BROKER: "emqx01-anonymous-cluster-internal.broker.svc.cluster.local"
MQTT__PORT: "1883"
@ -20,7 +20,7 @@ apiVersion: apps/v1
kind: Deployment
metadata:
name: pv-controller
namespace: pv-controller
namespace: homea
labels:
app: pv-controller
spec:
@ -35,7 +35,7 @@ spec:
spec:
containers:
- name: pv-controller
image: wollud1969/sinkserver:e5f9d3e3
image: gitea.hottis.de/wn/pv-controller:%IMAGETAG%
envFrom:
- configMapRef:
name: pv-controller

View File

@ -37,7 +37,7 @@ class ModbusHandler:
def readInputRegister(self, slave, addr):
res = self.client.read_input_registers(addr, 2, slave=slave)
if (isinstance(res, ReadInputRegistersResponse)):
v = BinaryPayloadDecoder.fromRegisters(res.registers, byteorder=Endian.Big, wordorder=Endian.Big).decode_32bit_float()
v = BinaryPayloadDecoder.fromRegisters(res.registers, byteorder=Endian.BIG, wordorder=Endian.BIG).decode_32bit_float()
return v
elif (isinstance(res, LocalModbusException)):
msg = f"Error: {type(res)}, Content: {res}"

View File

@ -1,4 +1,5 @@
import os
from loguru import logger
class Config:
OPTIONS = {
@ -17,15 +18,16 @@ class Config:
def __init__(self):
self.values = {}
for section, keys in OPTIONS:
for section, keys in Config.OPTIONS.items():
self.values[section] = {}
for key in keys:
varname = f"{section}__{key}".upper()
try:
self.values[section][key] = os.environ[varname]
logger.info(f"Config: {section} {key} -> {self.values[section][key]}")
except KeyError:
pass
def __getitem__(self, section):
return self.values[index]
return self.values[section]