From 385428adb4450492da0c11f97c87d77bdc6236ce Mon Sep 17 00:00:00 2001 From: Fredrik Baberg Date: Thu, 19 Jan 2023 23:08:07 +0100 Subject: [PATCH] Add add-on to run ser2net --- 3dprinter-remote/Dockerfile | 14 ++++++++++ 3dprinter-remote/README.md | 3 +++ 3dprinter-remote/config.yaml | 27 +++++++++++++++++++ .../rootfs/etc/cont-init.d/ser2net.sh | 14 ++++++++++ .../rootfs/etc/services.d/ser2net/finish | 9 +++++++ .../rootfs/etc/services.d/ser2net/run | 9 +++++++ .../share/tempio/ser2net/ser2net.conf.gtpl | 2 ++ 7 files changed, 78 insertions(+) create mode 100644 3dprinter-remote/Dockerfile create mode 100644 3dprinter-remote/README.md create mode 100644 3dprinter-remote/config.yaml create mode 100644 3dprinter-remote/rootfs/etc/cont-init.d/ser2net.sh create mode 100644 3dprinter-remote/rootfs/etc/services.d/ser2net/finish create mode 100644 3dprinter-remote/rootfs/etc/services.d/ser2net/run create mode 100644 3dprinter-remote/rootfs/usr/share/tempio/ser2net/ser2net.conf.gtpl diff --git a/3dprinter-remote/Dockerfile b/3dprinter-remote/Dockerfile new file mode 100644 index 0000000..54bc39d --- /dev/null +++ b/3dprinter-remote/Dockerfile @@ -0,0 +1,14 @@ +ARG BUILD_FROM="ghcr.io/home-assistant/amd64-base" + +FROM ${BUILD_FROM} AS final + +ENV LANG C.UTF-8 + +RUN echo "Install base requirements." \ + && apk add --no-cache ser2net +COPY rootfs/ / +WORKDIR / + +# Make files executable +RUN chmod +x /etc/cont-init.d/*.sh +RUN chmod +x /etc/services.d/*/* diff --git a/3dprinter-remote/README.md b/3dprinter-remote/README.md new file mode 100644 index 0000000..ba8ae74 --- /dev/null +++ b/3dprinter-remote/README.md @@ -0,0 +1,3 @@ +# 3dprinter-remote + +Provides remote access to 3DPrinter. Add-on runs ser2net and can be connected to by e.g. socat. diff --git a/3dprinter-remote/config.yaml b/3dprinter-remote/config.yaml new file mode 100644 index 0000000..e90209b --- /dev/null +++ b/3dprinter-remote/config.yaml @@ -0,0 +1,27 @@ +name: "3DPrinter-remote" +version: "2023.01.0" +slug: "3dprinter-remote" +description: "Add-on for accessing 3DPrinter remotely using socat" +url: "https://github.com/fredrikbaberg/ha-3dprinter-addons/tree/main/3dprinter-remote" +arch: + - armv7 + - amd64 + - armhf + - aarch64 + - i386 +stage: experimental +init: false +usb: true +ports: + 9999/tcp: null +ports_description: + 9999/tcp: Port for access to ser2net +options: + printer_path: "/dev/null" + printer_baudrate: "115200" + ser2net_args: "" +schema: + printer_path: "str" + printer_baudrate: "int" + ser2net_args: "str?" +# image: ghcr.io/fredrikbaberg/ha-addon-3dprinter-remote-{arch} diff --git a/3dprinter-remote/rootfs/etc/cont-init.d/ser2net.sh b/3dprinter-remote/rootfs/etc/cont-init.d/ser2net.sh new file mode 100644 index 0000000..96456b3 --- /dev/null +++ b/3dprinter-remote/rootfs/etc/cont-init.d/ser2net.sh @@ -0,0 +1,14 @@ +#!/usr/bin/with-contenv bashio +# ============================================================================== +# Add-on: 3dprinter-remote +# Setup ser2net.conf +# ============================================================================== + +# Generate ser2net configuration +bashio::var.json \ + printer_path "$(bashio::config 'printer_path')" \ + printer_baudrate "$(bashio::config 'printer_baudrate')" \ + ser2net_args "$(bashio::config 'ser2net_args')" \ + | tempio \ + -template /usr/share/tempio/ser2net/ser2net.conf.gtpl \ + -out /etc/ser2net.conf diff --git a/3dprinter-remote/rootfs/etc/services.d/ser2net/finish b/3dprinter-remote/rootfs/etc/services.d/ser2net/finish new file mode 100644 index 0000000..1ecc5e9 --- /dev/null +++ b/3dprinter-remote/rootfs/etc/services.d/ser2net/finish @@ -0,0 +1,9 @@ +#!/usr/bin/execlineb -S0 +# ============================================================================== +# Add-on: mjpg-streamer +# Take down the S6 supervision tree when mjpg-streamer fails +# ============================================================================== +if -n { s6-test $# -ne 0 } +if -n { s6-test ${1} -eq 256 } + +s6-svscanctl -t /var/run/s6/services diff --git a/3dprinter-remote/rootfs/etc/services.d/ser2net/run b/3dprinter-remote/rootfs/etc/services.d/ser2net/run new file mode 100644 index 0000000..d50ed47 --- /dev/null +++ b/3dprinter-remote/rootfs/etc/services.d/ser2net/run @@ -0,0 +1,9 @@ +#!/usr/bin/with-contenv bashio +# ============================================================================== +# Add-on: 3dprinter-remote +# Runs ser2net +# ============================================================================== + +bashio::log.info "Starting mjpg-streamer.." + +exec ser2net -d diff --git a/3dprinter-remote/rootfs/usr/share/tempio/ser2net/ser2net.conf.gtpl b/3dprinter-remote/rootfs/usr/share/tempio/ser2net/ser2net.conf.gtpl new file mode 100644 index 0000000..9fbc5bb --- /dev/null +++ b/3dprinter-remote/rootfs/usr/share/tempio/ser2net/ser2net.conf.gtpl @@ -0,0 +1,2 @@ +9999:raw:0:{{ .printer_path }}:{{ .printer_baudrate }} {{ .ser2net_args }} +BANNER:banner1:Welcome to ser2net \rTCP port \p device \d\r