问题标签 [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.

0 投票
1 回答
803 浏览

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允许它工作的现在看起来像这样:

我能做些什么?

0 投票
1 回答
499 浏览

linux - 如何在不增加 RAM 的情况下防止 oom-kill

我有 256MB Orange Pi Zero,我想在上面运行 OctoPrint。它启动并运行了一段时间,然后由于内存不足而被杀死。我无法添加更多 RAM,因此我尝试增加交换大小。我添加了 1GB,但它没有帮助。另外我不明白为什么,但我同时运行了“htop”,并且从它显示的交换(“Swp”)未使用,并且仍然有 1/3 的空闲物理内存(“Mem “) 每时每刻。到底是怎么回事。我不在乎此时的表现。有什么办法可以强制它在交换上运行?

0 投票
1 回答
171 浏览

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 命令,但它在 " 符号处给出了语法错误。我已经浏览了整个网络,但还没有找到解决方案。如果你知道新手可以实现这一点的方法,请告诉我。你将永远是英雄;)。

无论如何,感谢您阅读这个庞大的问题!

0 投票
1 回答
501 浏览

docker - 如何将设备绑定/映射到 Rancher?

当我在 SBC 上运行命令时:

一切正常;我可以打开 octoprint 屏幕,我的 3D 打印机被识别,没有任何问题。

但是,当我尝试运行等效--device /dev/ttyUSB0:/dev/ttyACM0以尽可能映射为任何类型的卷时,我无法进行等效配置。

请问,我如何让 Rancher 识别一个--device

0 投票
0 回答
862 浏览

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不起作用,那么我还能如何代理它?

0 投票
3 回答
945 浏览

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 已安装。

0 投票
1 回答
400 浏览

bash - 开机后自动运行脚本 - 树莓派

我在编程方面完全是个菜鸟,因此在我的 Raspberry Pi 上解决问题时遇到了问题。

我的桌面上有一个 .sh 脚本,我想在启动 Raspberry Pi 后运行它。到目前为止,我已经尝试了以下...

首先,我去终端并输入:

然后,我继续将以下行添加到“自动启动”脚本的末尾:

不幸的是,当我执行这些步骤时,我的代码没有运行。

任何想法/帮助将不胜感激!!!

0 投票
0 回答
8 浏览

python - 在 Win10 中为 Python 安装 Netfaces 时出错

我正在尝试在旧但完全可用的 Win10 笔记本电脑工作站上设置 Octoprint 服务器,但是,在最终的 octoprint 安装期间,我收到此错误(请参阅附图),指出我需要更高版本的 C++,至少版本 14但是,或更高版本,我安装了 16 版,因此该错误毫无意义……对我来说

我错过了什么吗?

任何帮助将非常感激

在此处输入图像描述

0 投票
2 回答
229 浏览

linux - pip 在路径中但找不到命令

我正在运行一个全新安装的 OctoPi 映像 (0.18.0)。我在 .bashrc 文件中将 pip 添加到我的 PATH 并获取了它,但是当我尝试运行 pip 时-bash: pip: command not found出现错误。

当我运行时/home/pi/oprint/bin/pip, pip 工作正常。

我自己的路:

0 投票
0 回答
70 浏览

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命令。

我错过了什么?