Add 3DPrinter-Remote
This commit is contained in:
parent
4a5b9e38c5
commit
93dec56a32
54
.github/workflows/3dprinter-remote.yml
vendored
Normal file
54
.github/workflows/3dprinter-remote.yml
vendored
Normal file
@ -0,0 +1,54 @@
|
|||||||
|
name: 3DPrinter-Remote manual build
|
||||||
|
|
||||||
|
on:
|
||||||
|
workflow_dispatch:
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
build:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
name: Build ${{ matrix.arch }} ${{ matrix.addon }} add-on
|
||||||
|
strategy:
|
||||||
|
matrix:
|
||||||
|
addon: ["3dprinter-remote"]
|
||||||
|
arch: ["aarch64", "amd64", "armhf", "armv7", "i386"]
|
||||||
|
steps:
|
||||||
|
- name: Check out the repository
|
||||||
|
uses: actions/checkout@v3
|
||||||
|
|
||||||
|
- name: Get information
|
||||||
|
id: info
|
||||||
|
uses: home-assistant/actions/helpers/info@master
|
||||||
|
with:
|
||||||
|
path: "./${{ matrix.addon }}"
|
||||||
|
|
||||||
|
- name: Check if add-on should be built
|
||||||
|
id: check
|
||||||
|
run: |
|
||||||
|
if [[ "${{ steps.info.outputs.architectures }}" =~ ${{ matrix.arch }} ]]; then
|
||||||
|
echo "::set-output name=build_arch::true";
|
||||||
|
echo "::set-output name=image::$(echo ${{ steps.info.outputs.image }} | cut -d'/' -f3)";
|
||||||
|
else
|
||||||
|
echo "${{ matrix.arch }} is not a valid arch for ${{ matrix.addon }}, skipping build";
|
||||||
|
echo "::set-output name=build_arch::false";
|
||||||
|
fi
|
||||||
|
|
||||||
|
- name: Login to GitHub Container Registry
|
||||||
|
if: env.BUILD_ARGS != '--test'
|
||||||
|
uses: docker/login-action@v2.1.0
|
||||||
|
with:
|
||||||
|
registry: ghcr.io
|
||||||
|
username: ${{ github.repository_owner }}
|
||||||
|
password: ${{ secrets.GITHUB_TOKEN }}
|
||||||
|
|
||||||
|
- name: Build ${{ matrix.addon }} add-on
|
||||||
|
if: steps.check.outputs.build_arch == 'true'
|
||||||
|
uses: home-assistant/builder@2022.11.0
|
||||||
|
with:
|
||||||
|
args: |
|
||||||
|
${{ env.BUILD_ARGS }} \
|
||||||
|
--${{ matrix.arch }} \
|
||||||
|
--target /data/${{ matrix.addon }} \
|
||||||
|
--image "${{ steps.check.outputs.image }}" \
|
||||||
|
--docker-hub "ghcr.io/${{ github.repository_owner }}" \
|
||||||
|
--addon \
|
||||||
|
--docker-hub-check
|
||||||
14
3dprinter-remote/Dockerfile
Normal file
14
3dprinter-remote/Dockerfile
Normal file
@ -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/*/*
|
||||||
11
3dprinter-remote/README.md
Normal file
11
3dprinter-remote/README.md
Normal file
@ -0,0 +1,11 @@
|
|||||||
|
# 3DPrinter-Remote
|
||||||
|
|
||||||
|
Provides remote access to 3DPrinter. Add-on runs ser2net and can be connected to by e.g. socat.
|
||||||
|
|
||||||
|
## Usage
|
||||||
|
|
||||||
|
On the machine connected to the printer (`remote machine`):
|
||||||
|
* Setup the add-on. At minimum you will need to specify `printer_path` and verify that `baud_rate` is correct.
|
||||||
|
|
||||||
|
On the machine with OctoPrint:
|
||||||
|
* Go to Settings --> Serial Connection, section __Additional serial ports__. Add : `socket://<remote machine>:9999`. For example, use the IP for `remote machine`.
|
||||||
29
3dprinter-remote/config.yaml
Normal file
29
3dprinter-remote/config.yaml
Normal file
@ -0,0 +1,29 @@
|
|||||||
|
name: "3DPrinter-Remote"
|
||||||
|
version: "2023.03.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
|
||||||
|
gpio: true
|
||||||
|
usb: true
|
||||||
|
uart: true
|
||||||
|
ports:
|
||||||
|
9999/tcp: 9999
|
||||||
|
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}
|
||||||
14
3dprinter-remote/rootfs/etc/cont-init.d/ser2net.sh
Normal file
14
3dprinter-remote/rootfs/etc/cont-init.d/ser2net.sh
Normal file
@ -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
|
||||||
9
3dprinter-remote/rootfs/etc/services.d/ser2net/finish
Normal file
9
3dprinter-remote/rootfs/etc/services.d/ser2net/finish
Normal file
@ -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
|
||||||
9
3dprinter-remote/rootfs/etc/services.d/ser2net/run
Normal file
9
3dprinter-remote/rootfs/etc/services.d/ser2net/run
Normal file
@ -0,0 +1,9 @@
|
|||||||
|
#!/usr/bin/with-contenv bashio
|
||||||
|
# ==============================================================================
|
||||||
|
# Add-on: 3dprinter-remote
|
||||||
|
# Runs ser2net
|
||||||
|
# ==============================================================================
|
||||||
|
|
||||||
|
bashio::log.info "Starting ser2net.."
|
||||||
|
|
||||||
|
exec ser2net -d
|
||||||
@ -0,0 +1,2 @@
|
|||||||
|
9999:raw:0:{{ .printer_path }}:{{ .printer_baudrate }} {{ .ser2net_args }}
|
||||||
|
BANNER:banner1:Welcome to ser2net \rTCP port \p device \d\r
|
||||||
Loading…
Reference in New Issue
Block a user