问题标签 [octoprint]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
docker - 无法在 Docker 中使用 Traefik 访问站点
我是 Docker 的新手,也是 Traefik 的新手,但我尝试阅读有关此的文档、示例和问题 - 但它仍然不起作用。
我有一个运行 Linux 4.19.118-v7 的 Raspberry Pi,我在上面安装了 Docker。我还安装了OctoPrint作为处于工作状态的服务。使用 HAProxy 设置时,我可以完全访问它。
我尝试使用 Docker 安装 Traefik,禁用 HAProxy,并让 Traefik 处理连接。Traefik 有效,我可以看到它的仪表板,但是我路由所有内容的方式给了我一个Bad Gateway
(502) 响应。
我可以curl http://127.0.0.1:5000
在 Pi 上做一个返回我想要的页面的操作,所以那里有一些东西,只是 Traefik 无法访问。
我负责三个文件:
Docker-compose.yml
我用docker -f ./docker-compose.yml up -d
.
它获取静态配置文件traefik.yml:
以及conf/trafik_dynamic.yml的动态配置:
这一切都导致Bad Gateway
我尝试点击http://3d.myWebsite.io
(不是我的真实站点,请注意),所以我以调试模式进入日志。每个请求两次吐出 4 行:
请求如下所示:
/etc/haproxy/haproxy.cfg
允许它工作的现在看起来像这样:
我能做些什么?
linux - 如何在不增加 RAM 的情况下防止 oom-kill
我有 256MB Orange Pi Zero,我想在上面运行 OctoPrint。它启动并运行了一段时间,然后由于内存不足而被杀死。我无法添加更多 RAM,因此我尝试增加交换大小。我添加了 1GB,但它没有帮助。另外我不明白为什么,但我同时运行了“htop”,并且从它显示的交换(“Swp”)未使用,并且仍然有 1/3 的空闲物理内存(“Mem “) 每时每刻。到底是怎么回事。我不在乎此时的表现。有什么办法可以强制它在交换上运行?
python - Python:使用 RPi GPIO 输入通过 curl 切换智能插头(octoprint 插件 API)
我是一个在 Python 中为 RPi(模型 3B)编程的新手。我正在使用 RPi 运行控制我的一台 3D 打印机的 Octoprint。打印机的电源通过 TP-Link 智能插头连接。我可以通过 Octoprint 中的插件控制插头,但它不允许我根据 GPIO 输入切换插头。在我的情况下,当我切换连接到 GPIO 的摇臂开关时,我需要插头来切换其开/关状态。换句话说; 当 GPIO 输入切换状态(HIGH 到 LOW 或反之)时,我也需要 TP-Link 插头切换(因此 ON 到 OFF 或反之亦然,取决于当前状态)。
我正在使用的插件具有使用 API 的 curl 脚本,这应该可以实现。我对此很陌生,但是通过curl -s -H "Content-Type: application/json" -H "X-Api-Key: YOUR_API_KEY" -X POST -d '{ "command":"turnOn", "ip":"<ip of smartplug in settings>" }' http://YOUR_OCTOPRINT_SERVER/api/plugin/tplinksmartplug
在通过 ssh 终端命令触发的 .py 脚本中运行示例(带有所需信息),插件确实打开了。“关闭”示例也是如此。当我运行它以获取 status:curl -s -H "Content-Type: application/json" -H "X-Api-Key: MYAPIKEYHERE" -X POST -d '{ "command":"checkStatus", "ip":"xxx.xxx.xx.xx" }' http://xxx.xxx.xx.xxx/api/plugin/tplinksmartplug
时,这是电源确实打开时的结果:{"currentState":"on","emeter":null,"ip":"xxx.xxx.xx.xxx"}
另外,我之前实现了摇臂开关 GPIO 部分,使我能够通过继电器打开和关闭打印机的灯。它是由在 rc.local 中触发的这段代码完成的,并且可以按我的意愿完美运行:
现在的问题是我无法弄清楚如何将这两个成功结合起来。那么如何感知 GPIO,当检测到开关时,使用 curl 检查插头的状态,从输出中提取“on”和“off”变量,并通过 curl 将状态更改为相反(开/关) . 我尝试在 GPIO 脚本中集成 curl 命令,但它在 " 符号处给出了语法错误。我已经浏览了整个网络,但还没有找到解决方案。如果你知道新手可以实现这一点的方法,请告诉我。你将永远是英雄;)。
无论如何,感谢您阅读这个庞大的问题!
docker - 如何将设备绑定/映射到 Rancher?
当我在 SBC 上运行命令时:
一切正常;我可以打开 octoprint 屏幕,我的 3D 打印机被识别,没有任何问题。
但是,当我尝试运行等效--device /dev/ttyUSB0:/dev/ttyACM0
以尽可能映射为任何类型的卷时,我无法进行等效配置。
请问,我如何让 Rancher 识别一个--device
?
docker - 如何从 Docker 容器内部到外部(本地网络)的 Nginx 反向代理(proxy_pass)
上一篇:使用Docker Nginx容器代理本地网络另一台机器上的网站
我真的很想从外面访问我的 3D 打印机 (OctoPrint)。它目前可以http://192.168.1.198
在我家访问。
我在另一台服务器上设置了 docker,我家的 80 和 443 端口指向那个。在该服务器上,我使用 Traefik 将所有域和子域转发到任何需要它的容器。
所以我想,好吧,如果我只是创建另一个 Nginx 容器,它只是 OctoPrint 的代理。猜猜看,它并不那么容易。
目前我的docker-compose.yml
样子是这样的:
和 Nginx 配置:
http://192.168.1.198
不起作用,那么我还能如何代理它?
python-3.x - ModuleNotFoundError:没有名为“apscheduler”的模块
这可能是一个愚蠢的问题。
我不知道我为什么要面对ModuleNotFoundError: No module named 'apscheduler'
,但我已经成功安装了 APscheduler。
我已经尝试卸载它并重新安装特定版本的APscheduler,但它没有工作。我也尝试在 virtualenv 上安装它,但效果不佳。
蟒蛇:| 点数:20.3.3 | 版本:3.7.3 操作系统:Linux (Ubuntu 20.04)
记录如下:
APscheduler == 3.6.3 已安装。
bash - 开机后自动运行脚本 - 树莓派
我在编程方面完全是个菜鸟,因此在我的 Raspberry Pi 上解决问题时遇到了问题。
我的桌面上有一个 .sh 脚本,我想在启动 Raspberry Pi 后运行它。到目前为止,我已经尝试了以下...
首先,我去终端并输入:
然后,我继续将以下行添加到“自动启动”脚本的末尾:
不幸的是,当我执行这些步骤时,我的代码没有运行。
任何想法/帮助将不胜感激!!!
python - 在 Win10 中为 Python 安装 Netfaces 时出错
我正在尝试在旧但完全可用的 Win10 笔记本电脑工作站上设置 Octoprint 服务器,但是,在最终的 octoprint 安装期间,我收到此错误(请参阅附图),指出我需要更高版本的 C++,至少版本 14但是,或更高版本,我安装了 16 版,因此该错误毫无意义……对我来说
我错过了什么吗?
任何帮助将非常感激
linux - pip 在路径中但找不到命令
我正在运行一个全新安装的 OctoPi 映像 (0.18.0)。我在 .bashrc 文件中将 pip 添加到我的 PATH 并获取了它,但是当我尝试运行 pip 时-bash: pip: command not found
出现错误。
当我运行时/home/pi/oprint/bin/pip
, pip 工作正常。
我自己的路:
curl - 使用 curl 将 .gcode 文件发送到 Octoprint
我尝试使用 post 脚本和 curl 将切片的 .stl 文件上传到 Octoprint。切片和上传的整个过程应该以自动方式进行。我创建了一个批处理文件,它将特定文件加载到我的 PrusaSlicer 中,对它们进行切片并将 .gcode 放入定义的文件夹中。问题是,curl 在我的 post 脚本中不起作用。我按照本指南在本地 Windows 笔记本电脑上安装了 Octoprint:
https://community.octoprint.org/t/setting-up-octoprint-on-windows/383
上传效果很好。所以我尝试在我的 post 脚本中包含以下代码,该脚本应该将 .gcode 文件(在将它们保存在我的本地驱动器上之后)上传到 Octoprint:
curl -k -H "X-Api-Key: xxxxxxxxxxxxxxxxxx" -F "select=false" -F "print=false" -F "file=@[output_filepath]" "http://192.168.137.1:5000/api /files/local" {STRIP"; 后处理"}
只要我想将 .gcode 保存在本地驱动器上,PrusaSlicer 就会给我这个错误消息:
配置的后处理脚本不存在:curl
我的笔记本电脑上已经安装了 Curl,并且我在 system32 文件夹中包含了 libcurl-x64.dll 文件。所以 Curl 必须工作,我的命令行也可以找到curl命令。
我错过了什么?