From a57cfe27d8310ec426506f92ce5f35fd70c01c6d Mon Sep 17 00:00:00 2001 From: DasMoorhuhn Date: Thu, 30 May 2024 15:52:13 +0200 Subject: [PATCH] added docker and wrote some readme stuff. nobody will ever read this... anyway --- .media/demo_001.gif | Bin 0 -> 34656 bytes README.md | 22 +++++++++++++++++++++- docker/Dockerfile | 2 ++ docker/docker-compose.yml | 6 ++++++ src/__init__.py => microPython/.gitkeep | 0 python/install_gateway.sh | 17 +++++++++++++++++ python/requierements.txt | 1 + python/src/__init__.py | 0 {src => python/src}/data_class.py | 0 {src => python/src}/discovery.py | 0 {src => python/src}/main.py | 0 11 files changed, 47 insertions(+), 1 deletion(-) create mode 100644 .media/demo_001.gif create mode 100644 docker/Dockerfile create mode 100644 docker/docker-compose.yml rename src/__init__.py => microPython/.gitkeep (100%) create mode 100644 python/install_gateway.sh create mode 100644 python/requierements.txt create mode 100644 python/src/__init__.py rename {src => python/src}/data_class.py (100%) rename {src => python/src}/discovery.py (100%) rename {src => python/src}/main.py (100%) diff --git a/.media/demo_001.gif b/.media/demo_001.gif new file mode 100644 index 0000000000000000000000000000000000000000..2d4704a38ffbc8be3c51824b8a3f440484f9dc4c GIT binary patch literal 34656 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