Octofarm: [BUG] 添加电源和自定义电源命令不会保存

创建于 2021-01-23  ·  123评论  ·  资料来源: OctoFarm/OctoFarm

为了更好地帮助开发者了解您的问题,请填写以下信息。 如果不这样做,将浪费开发人员和您自己的时间来整理问题。 谢谢!

描述错误
在功率和自定义功率命令字段中输入信息时,不会保存任何信息。
按保存并重新加载页面后,字段再次恢复为默认文本。

再现
重现行为的步骤:

  1. 转到“打印机设置”
  2. 点击“电源”
  3. 在字段中添加信息
  4. 按保存
  5. 重新加载页面
  6. 观察字段恢复默认值

预期行为
应该保存设置

截图
保存/重新加载之前:
image

保存/重新加载后:
image

版本(请填写以下信息):

  • NodeJS 版本 [例如 13] (??)
  • Octofarm 版本 [例如 1.5.5.7] 1.1.6 (Octofarm-Monolithic)
  • OctoPrint 版本 [例如 1.4.1] 1.5.3
  • OctoPrint 插件 [例如床可视化器、octoklipper、printtimegenius] 外壳插件

附加上下文
不适用

bug fixed

所有123条评论

您好,请问您可以更新到 1.1.7 看看是否可以解决问题吗?

一分钟后我会在这里做一些测试,看看我是否可以重现。

确认的。 不用担心更新。 将它添加到 1.1.8 版本。

要解决此问题,请保存设置,然后按打印机的重新同步按钮。 它将从 OctoPrint 中夺回它们。

更新到 1.1.8,设置仍未保存。 问题仍然存在。

是的,刚刚确认。 我昨天抽了什么鬼。 我会再看一周,这很烦人,我确认昨天保存了它。

这次肯定是对的。 这是导致问题的 OctoPrint 更新......事情正在向它发送空值,而不是保存的值然后重新同步并清除。 这可能解释了我在没有保存设置的人身上看到的一些其他问题。 修复它也清除设置/外观。 感谢您的报告,否则根本不会看到。

它在 master 分支上,我很快就会回填开发。

很好 - 期待在推入整体时对其进行测试。

也刚刚完成了对新图表的一些调整,并推送给 master 和 dev。

docker hub 上的整体镜像不应太长。

我相信它是活的:)

嗯 - 图像确实更新了,但仍然显示为 1.1.8。

不幸的是仍然没有保存:(

我还没有将它正式化为一个版本,所以仍然会阅读它。 Grr,这个很烦人。 这当然可以节省我的费用。 只是尝试保存空白(不编辑模态),并保存 1 行并保留其他行。

所有单体构建都已完成,您能否确认没有其他更新?

不 - 现在没有新图片

我刚刚强行推动了开发版本。

你介意切换一下看看是否有效吗? 我已将版本更新为 1.1.9-dev1,因此您可以看到更改。

听起来图像并没有拉动新的图像,但应该只是确认一下。

格林威治标准时间 10.20 是我相信的最后一个单灯构建,所以可能需要一些时间才能完成。

切换到 octofarm/ octofarm:monolithic-dev ,但版本仍为 1.1.8 :/

仍然没有保存

它仍在构建 1.1.9-dev1 应该不会太长

我目前无法按照您的原始步骤进行复制。 不知道目前发生了什么。

你也可以通过 octofarm-API 日志发送吗?,你已经确认了 1.1.9-dev1。

你如何更新你的容器? 只是为了排除这种情况。

自定义开机命令:
[PrinterURL]/plugin/enclosure/setIO?status=true&index_id=1&apikey=[PrinterAPI]

自定义关机命令:
[PrinterURL]/plugin/enclosure/setIO?status=false&index_id=1&apikey=[PrinterAPI]

以防万一你想用我使用的确切字符串尝试你自己。

我正在检查重启命令...

我会有点抱歉地看看那些,没想到也是那些。

你能确认重启命令现在保留吗?

重启命令也不会保存,所以也一样...... ;)

你如何更新容器? 因为我无法使用重新启动命令重现。

目前只是自定义电源命令。

Monolithic 现已建成。 这次更新时应该会看到 1.1.9-dev1 。

使用自定义更新脚本: https :

将再次尝试更新

使用自定义更新脚本: https :

将再次尝试更新

不,那是完美的,只是想确认它正在正确更新,但应该如此。 有些人只是重新启动容器啊哈。

我很快就会检查自定义电源命令,如果重新启动仍然没有持续,请告诉我,我也会查看一下。

10:42 构建如此肯定应该有一个新的拉力。

只是很困惑,为什么重新启动不会为你省钱啊哈。 在某个地方做我的傻瓜。

好的 - 它不是 1.1.9-dev1。
你仍然没有保存重启命令:/

咕噜噜。 完全不能理解。 抱歉乱七八糟。

我会做一些测试,看看我是否无法弄清楚。

有什么需要的话请告诉我

有一段时间会很好啊哈。

大约在周中,我想我可以检查一下,因为我明天必须回到我的日常工作中。

没关系。
我一直在对 1.1.9-dev1 进行一些测试 - 看起来重启命令毕竟被保存了,之后它只是在文本字段中返回 N/A。
重新同步后,重新启动命令按钮变得可见并起作用。

image
image

没关系。
我一直在对 1.1.9-dev1 进行一些测试 - 看起来重启命令毕竟被保存了,之后它只是在文本字段中返回 N/A。
重新同步后,重新启动命令按钮变得可见并起作用。

嗯,这仍然很奇怪,因为在我的身上它拉回来了……令人困惑! 我想知道这是否与我拥有长期存在的数据有关,但我尝试使用全新的打印机设置。

感谢您提供额外信息,将对其进行排序。 :)

是的,这是有道理的,因为对 OctoPrint 的推送正在起作用,并且重新同步只是从那里收集命令并将它们保存在内存中。 在我用空白值更新 OctoPrint 之前,这就是它以前绕圈子的原因。 我可能又错过了一些东西。

至少那些是有效的。

下面的电源命令“可能”工作相同。 唯一的区别是它们返回到我的数据库而不是更新 octoprint。 不过,我会确保所有内容都已填写。

刚刚尝试使用自定义命令,那些仍然不起作用。 将等待您的发现:)

感谢您的确认。

希望我明天有时间去看看它。 这是我的错,我今天早上应该多加注意,所以很抱歉。

别担心 。 很高兴你会花时间研究这个:)

哦,OctoFarm 是我的宝贝,我不喜欢虫子😅。 我当然会。

哟,如果您有机会尝试,只需将另一个尝试修复程序推向开发。

我在这里测试过,一切正常,刷新后立即更新。 手指交叉在你的末端。 将是 -dev2

嗯 - 保存按钮似乎在 -dev2 中不起作用。
按保存时没有任何反应。

你能把API日志发过来吗?

嗯,它肯定会发送信息并接收信息。

稍后我会再看一遍代码,看看我是否遗漏了什么。

当您按保存时,浏览器控制台窗口中是否会出现任何内容?

不,什么都没有出现。 而且命令似乎也没有保存。

在浏览器上按 F12,然后单击控制台选项卡。

然后按保存,如果有错误,它会显示。

控制台中没有任何反应

当按下保存而不输入任何内容时,保存按钮起作用

你在运行什么 nodejs 版本?

使用 12.16.3-0017

不是那么嗯

您好,我进行了一些调整并将新版本推向了开发阶段。 将是 -dev3。 你介意测试吗?

如果这次它再次失败,我已经支持状态日志以显示实际发生的情况。 至少应该修复它或暗示我正在发生的事情。

您提供的日志仅持续到 1 月 25 日,请今天尝试

奇怪 - 在升级容器后立即尝试。
我再试一次。

您需要一个 OctoFarm-State#.log 没有编号的文件是最旧的。

请记住 - 当我在框中输入任何内容时,我的保存按钮似乎不起作用。
OctoFarm-State1.log

是的,我知道浏览器中没有错误,因此服务器无法正确响应请求。

{
"state": "断开连接",
“打印机”:{
"打印机名称": "",
"printerURL": "",
"索引": "60096307de188800262631e0",
"cameraURL": "",
"apikey": ""
},
“联系”: {
“首选端口”:“0”,
"preferredBaud": "115200",
"preferredProfile": "_default"
},
“系统命令”:{
"serverRestart": "sudo service octoprint restart",
"systemRestart": "sudo shutdown -r now",
"systemShutdown": "sudo shutdown -h now"
},
“电源命令”:{
"powerOnCommand": "",
"powerOnURL": "[PrinterURL]/plugin/enclosure/setIO?status=true&index_id=1&apikey=[PrinterAPI]",
"powerOffCommand": "",
"powerOffURL": "[PrinterURL]/plugin/enclosure/setIO?status=false&index_id=1&apikey=[PrinterAPI]",
"powerToggleCommand": "",
"powerToggleURL": "",
"powerStatusCommand": "",
"powerStatusURL": "",
“狼”:{
“启用”:假,
"ip": "",
“港口”: ””,
“间隔”: ””,
“数数”: ””,
“苹果电脑”: ””
}
},
“成本设置”:{
“耗电量”:空,
“电费”:空,
“购买价格”:空,
"estimateLifespan": null,
“维护成本”:空
},
"profileID": "_default",
“轮廓”: {
“名称”:空,
“颜色”:“默认”,
“模型”:空,
“体积”: {
"formFactor": "矩形",
“宽度”:空,
“深度”:空,
“高度”:空
},
“加热床”:真的,
“heatedChamber”:假,
“轴”:{
“X”: {
“速度”:空,
“反转”:假
},
“y”:{
“速度”:空,
“反转”:假
},
“z”:{
“速度”:空,
“反转”:假
},
“e”:{
“速度”:空,
“反转”:假
}
},
“挤出机”:{
“计数”:空,
“喷嘴直径”:空,
“共享喷嘴”:假
}
},
“gcode”:{
"afterPrintCancelled": "",
"afterPrintDone": "",
"afterPrintPaused": "",
"afterPrinterConnected": "",
"afterToolChange": "",
"beforePrintResumed": "",
"beforePrintStarted": "",
"beforePrinterDisconnected": "",
"beforeToolChange": ""
},
“其他”: {
“启用相机”:真,
“旋转相机”:假,
"flipHCamera": 假,
“翻转VCamera”:假,
“启用延时”:真,
"加热变化": "",
“冷却”: ””
}
}

我可以看到请求已发送到服务器。

但是我的新日志记录中没有任何内容。 什么都没有。 在我看来好像还没有更新,你肯定在 -dev3 上?

image

Thu, 28 Jan 2021 10:50:52 GMT | INFO | OctoFarm-State.log | Grabbed 2 for checking |

这是最后一次为您的服务器重新启动 OctoFarm 并且在实际推送单片映像之前,据我所知,您没有更新任何日志。

image

image
我会再次尝试更新,也许错过了什么?!

值得一试。

看来 nodejs 本周让我抢了我的钱。

部分内容再次更新。 新日志。
OctoFarm-State1 (1).log

成功! 让我通读这些:D

没错,该功能确实被您卡住了,我不知道为什么。

我想知道这是否是问题的副产品,不应该是因为新值应该覆盖原始值。

我已经让你尝试保存日志,但它没有进一步。

我只是在推动一些改进的日志记录来找出它有什么问题。

如果你想测试我有的理论。 可以删除打印机重新添加吗? 我想知道我们之前尝试的数据库中是否存在问题。 尽管不应该存在,但我很困惑为什么我现在无法重现此内容,因此 OctoFarm 中的某些内容不同步。

在尝试执行此操作时,您的 octoprint 实例是否在线?

是 Octoprint 在线,只有打印机断开连接。

啊,很酷的欢呼声,只是为了排除一些事情。 我正要推送另一组登录改进,至少这次您应该在 UI 中看到一个错误。 成为 dev4,我会在它建成后通知你。

image

我刚推。

您现在也将在控制台中看到以上内容。 希望能帮助我追踪这里发生的事情。

顺便说一句,您不必每次都输入重新启动命令,看起来您是这样,如果不只是无视啊哈。

大约是 10-15,但是当我注意到它是建立在 docker hub 上时我会在这里回复

Monolithic 已建成

新日志文件 - 是的,控制台中可见 JSON 对象
OctoFarm-State1 (2).log

新日志文件 - 是的,控制台中可见 JSON 对象
OctoFarm-State1 (2).log

好吧,我的“改进”日志记录产生了这个...... HEY THE ERROR WERE LOOKING FOR! | data:{} |

您是否尝试删除打印机并重新添加? 只要它具有相同的名称 History 并且仍然会连接。

你有 pm2.error.log 文件吗? 可能有完整的信息在那里

我也刚刚完成了 dev4 来改进登录,希望现在能打印出错误。

是的,尝试删除并再次添加,相同的名称和 API 密钥。 仍然没有运气。
更新到 dev4,仍然没有运气,按下保存按钮时仍然没有反应

日志.zip

我相信我已经修好了。 只是确认。

很好 - 只需在更新准备好时说

确认的!

添加了新打印机 -> 设置电源设置,并且最初也正确地从 OctoPrint 中拉出。

然后继续使用 URL 设置电源设置并忽略“命令”块,每个单独更新,多个更新。

它正在建设中,所以应该大约需要 15 分钟,但会确认。

嗯 - 读取设置,但保存自定义命令时有些东西关闭:
image

Fri, 29 Jan 2021 10:38:42 GMT | INFO | OctoFarm-State.log | Attempting to save: | data:{"state":"Disconnected","printer":{"printerName":"","printerURL":"","index":"6012a1b726f97000191982af","cameraURL":"","apikey":""},"connection":{"preferredPort":"","preferredBaud":"115200","preferredProfile":"_default"},"systemCommands":{"serverRestart":"","systemRestart":"","systemShutdown":""},"powerCommands":{"powerOnCommand":"","powerOnURL":"[PrinterURL]/plugin/enclosure/setIO?status=true&index_id=1&apikey=[PrinterAPI]","powerOffCommand":"","powerOffURL":"","powerToggleCommand":"","powerToggleURL":"","powerStatusCommand":"","powerStatusURL":"","wol":{"enabled":false,"ip":"","port":"","interval":"","count":"","MAC":""}},"costSettings":{"powerConsumption":null,"electricityCosts":null,"purchasePrice":null,"estimateLifespan":null,"maintenanceCosts":null},"profileID":"_default","profile":{"name":null,"color":"default","model":null,"volume":{"formFactor":"rectangular","width":null,"depth":null,"height":null},"heatedBed":true,"heatedChamber":false,"axes":{"x":{"speed":null,"inverted":false},"y":{"speed":null,"inverted":false},"z":{"speed":null,"inverted":false},"e":{"speed":null,"inverted":false}},"extruder":{"count":null,"nozzleDiameter":null,"sharedNozzle":false}},"gcode":{"afterPrintCancelled":"","afterPrintDone":"","afterPrintPaused":"","afterPrinterConnected":"","afterToolChange":"","beforePrintResumed":"","beforePrintStarted":"","beforePrinterDisconnected":"","beforeToolChange":""},"other":{"enableCamera":true,"rotateCamera":false,"flipHCamera":false,"flipVCamera":false,"enableTimeLapse":true,"heatingVariation":"","coolDown":""}} | Fri, 29 Jan 2021 10:38:42 GMT | ERROR | OctoFarm-State.log | ERROR updating printer | data:"\"Cannot read property 'powerOnURL' of null\"" |

从状态日志

它仍在构建 -dev5 人员,但这只是为了删除配置文件未能更新您看到的错误。 基本上,这些电源命令不会被推回 OctoFarm,但其他命令会,这就是您看到该通知的原因,因为它不需要更新 OctoPrint。 我清除了这些错误。

哦,好的,我稍后再试:)

它实际上只会停止显示这两个红色警报。 这些命令应该可以正常工作,您应该在刷新时在电源下拉列表中看到它吗?

嗯,坚持一些仍在进行的事情。

现在应该可以用于保存和其他东西。

我只是在推动对不存在的电源状态抓取的修复,但不会影响任何东西,只是不会去任何地方的额外调用。

伙计..那是一个烦人的! 正确的做了我自己啊哈。

只是提到将在开发中,直到我解决长期数据库的图形问题。

实际上它现在已经保存了,但在选择时它似乎并没有真正触发动作。
我可以在什么日志中寻找线索?

这都是客户端,所以浏览器中的控制台。

我会看看我是否可以使用上面的网址进行复制

是的,对我很好

Screenshot_20210129_170702

尽管使用当前代码,您的命令将不起作用。 您向 OctoPrint 发出自定义命令,而不是 octoprint 之外的自定义 url,就像我写的时候预期的那样。 我没有专门用命令发送 API 密钥。 如果您收到上述 CORS 政策,请告诉我,我会为您进行调整。 我检查了当前的电源命令插件,我的方法支持所有这些插件,但没有意识到机箱插件也有这个选项。

将取决于该插件如何利用我本来想的 OctoPrints api。

image

是的 - CORS 错误

他的文档对他的 API 具有误导性。 您仍然需要发送 X-Api-Key 标头以及他在 Wiki 上详细说明的请求。

我刚刚为您推送了修复程序,当它再次构建时会通知您:)

它已构建,抱歉,当我与 master 合并时自动关闭了。 如果您仍然收到 CORS 错误,请打开 :)

仍然收到 CORS 错误

你能告诉我控制台输出吗?

因为我现在已将密钥添加到调用中,所以听起来可能是 url 格式,所以不要亲自使用该插件,因此需要更多信息来弄清楚。

image

将 URL 复制到浏览器中的新窗格时,它按预期工作。

我将不得不设置插件并对其进行一些测试,但不确定。 我所做的只是一个与浏览器相同的 get 请求,因此无论是否使用 api 密钥,技术上都应该像它在 url 中一样工作。

仍然存在 CORS 问题,即使在最近的版本中

image

不要在一分钟内得到它,我无法安装外壳插件来测试它,因为它不断返回“未知”。

啊,您仍在提出发布请求而不是获取请求……您能在开发人员上查看最新推送吗? 会说 1.1.11-dev9。

遗漏了不在命令中使用 json 数据的标志。 我为此输入了一些控制台日志,如果它再次不起作用,您能否发送这些日志?

我也刚刚修复了进给率,我更新了两次,现在不知道它是如何消失的。

啊,您仍在提出发布请求而不是获取请求……您能在开发人员上查看最新推送吗? 会说 1.1.11-dev9。

遗漏了不在命令中使用 json 数据的标志。 我为此输入了一些控制台日志,如果它再次不起作用,您能否发送这些日志?

仍然没有运气

image

这是 current_value 变量让我看看它来自哪里......它仍然跳过获取请求并因此发布帖子。

好的 1.1.11-dev9 非常棒 :( 没有任何效果。
甚至无法打开打印机控制面板。

image

列表中缺少状态
image

这是 current_value 变量让我看看它来自哪里......它仍然跳过获取请求并因此发布帖子。

current_value 是包含当前状态 (true/false) 的附件插件响应中的 JSON 属性,所以这是我定义的一个。

image

要正确使用您的插件,您的所有自定义电源命令在如下设置中都不应包含任何内容:
image

您的 current_value 变量与命令一起发送以通过外观打开/关闭/状态,它不应该是

只有定义了 current_value 的州界线。
尚未测试开/关命令,因为两台打印机当前都在打印。

只有定义了 current_value 的州界线。
尚未测试开/关命令,因为两台打印机当前都在打印。

它不会在里面工作,而且当我轮询状态时,它会一直失败。

第一个字段用于发送未接收的数据。

image
应该都是这样的,只是使用正确的 URL,因为我复制并粘贴了我看到你用来测试的第一个 URL。

现在我无法更改它 - 需要降级,因为最新版本已经使一切崩溃。

现在我无法更改它 - 需要降级,因为最新版本已经使一切崩溃。

我不知道那里发生了什么,因为我无法重现它。 由于未获取任何设置,因此您的打印机似乎无法扫描某些内容。

你给我发了一些最近的状态日志,看看我做了什么?

无论如何似乎有一个错误使该字段空白-_-

重新启动 docker 似乎修复了所有丢失的数据。 但无法删除 current_value 设置。
删除文本并保存时,它仍然存在于视图中 - 即使在再次重新启动 docker 之后,并且仍然在该字段中。

重新启动 docker 似乎修复了所有丢失的数据。 但无法删除 current_value 设置。
删除文本并保存时,它仍然存在于视图中 - 即使在再次重新启动 docker 之后,并且仍然在该字段中。

是的,我似乎不会让这些字段空白。 当我认为最好的测试以查看是否可行时,现在才发现它。 好吧,至少另一件事不是主要的错误。 我只会对设置进行排序。

是的,所以我对当前的逻辑有点坚持。 我发送空白字段以表示没有更改,因此可能需要一些时间来进行排序。 现在,最好的办法是使用 MongoDB Compass 在打印机电源设置中将该字段清空。 抱歉,那个设置部分是一个皇家pia,我想对其进行核弹,但我没有时间,所以我会尝试修补它。

276 以正确跟踪此情况。

开/关命令现在正常工作。 状态不是,但这可能归结为从外壳插件返回的 JSON 对象。

开/关命令现在正常工作。 状态不是,但这可能归结为从外壳插件返回的 JSON 对象。

听起来确实如此,我将在明天早上放置一个擦除按钮设置,以便对其进行排序。 为报告回来干杯!

开/关命令现在正常工作。 状态不是,但这可能归结为从外壳插件返回的 JSON 对象。

我有 -dev10 我即将使用重置按钮清除电源设置。 抱歉,等不及要整理新的 UI。

此页面是否有帮助?
0 / 5 - 0 等级

相关问题

Crowlord picture Crowlord  ·  14评论

NotExpectedYet picture NotExpectedYet  ·  27评论

fp30 picture fp30  ·  12评论

juangonzalezpr picture juangonzalezpr  ·  10评论

TomKamin1 picture TomKamin1  ·  18评论