我正在研究一个项目,在我的楼梯的每个步骤上都有带有WS2812B LED的ESP32。我选择了在Docker中的HA下运行的Esphome来使用PIR传感器运行序列。该项目总共有796个LED分为14个分区(可变Lenghts)。

我现在正在工作多天,以摆脱我遇到的问题,但无法摆脱困境。基本上,创建的YAML文件在封闭式集成中起作用。相关代码块:

灯: - 平台:fastled_clockless芯片组:WS2812B RGB_ORDER:GRB内部:true PIN:gpio4 num_leds:796名称:“楼梯” ID:楼梯

#为每个步骤创建14个分区#LED带WS2812B,总计796 LED#步骤1:52 LED- LED 0到LED 51-平台:分区名称:“ step1” ID:step1 id:step1内部:真实段: -1至:50

#从下部到顶部运行灯 -  ID:LightDownUp然后: -  light.turn_on:id:step1 transition_length:!lambda |  - 返回ID(transition);亮度:!lambda |  - 返回ID(亮度);红色:!lambda |  - 返回ID(红色);绿色:!lambda |  - 返回ID(绿色);蓝色:!lambda |  - 返回ID(蓝色);-  light.turn_on:id:step2 ....等,

跳过进一步的代码,因为它不会导致问题。

首先,我确实经历了许多其他主题中所描述的经常认可的闪烁。当监视“对数”功能以及通过API连接到HA时,这些故障会增加。没有,闪烁是相当有限的。正如我所看到的,可以在中断手柄中找到原因。

为了解决这个问题,我试图踏上Neopixelbus:

灯: - 平台:Neopixelbus类型:GRB变体:WS2812X方法:ESP32_I2S_1 PIN:GPIO4 NUM_LEDS:796名称:“楼梯” ID:楼梯

这种LED数量有限,但是,我很清楚,在使用超过350 LED时,Neopixelbus或不与分区螺丝钉结合。

我进行了无休止的尝试来解决这些问题。
玩不同的Neopixelbus和封闭式库(当然不是同时):

Platformio_options:
lib_deps:
-NeopixelBus@2.6.0(顺便说一句,当前标准的分散2.5.7根本不起作用)
( - 异步)
( - fastled@3.4.0)

他们都没有解决这个问题。

我周围看到的最终建议是使用中断处理,例如在上面包括以下一个#包括fastled_light.h中的“ fastled.h”:

#定义fastled_interrupt_retry_count
#定义fastled_allow_interrupts 0

不幸的是,这样做并不容易,因为随后的库(在这种情况下,fastled_light.h)每次与源基础的库时都会被覆盖,该库是从源基础上进行编译的,该库在Esphome Docker容器中位于某个地方。

因此,在解释我有一些问题之后,有人可以回答:

  1. 我更喜欢Neopixelbus,因为它通过DMA或其他基于非间歇性的方法将输出处理为LED的输出,这是根解决方案。是否可以在ESPHOME的ESP32中完美地描述上面描述的方式来解决〜800 LED?如何?

  2. 如果是剩下的选项(本身功能,但与故障相关),我该如何使用上述包含#Defines对于封闭式中断,我不知道如何更改HA Esphome容器之外的源基础。

  3. 欢迎任何其他解决方案,如果您需要其他信息,请在我不在这里的创造力时表达式...

请阅读这个如何帮助我们帮助您 - 或如何问一个好问题并正确格式化您的代码。

谢谢,遵循您的建议。

1喜欢

我在13步楼梯箱上有类似的设置为598 SK6812(想要RGB +温暖白色),但在WLED上运行(ESP32)。效果很好;没有问题,使用自定义mod可以在两个方向上点亮单个步骤,而反向关闭。

我无法从您的描述中分辨出什么闪烁的问题是什么,但是它可能与Esphome,lectled等无关。

谢谢TDW。我已经考虑过WLED,如果我无法解决这个问题,可能会跳到这一点,但是像Esphome一样,它非常像Esphome一样,它可以使用独立于HA的PIR传感器来运行它,同时最终有能力在需要时完成手动操作。

接线都很好,ESP和第一个LED之间只有几厘米。我还玩了一个水平变速杆,但找不到差异。另一个技巧是稍微降低LED带电压(我在测试环境中使用可调节的P​​SU)来克服水平变化,但这也没有解决问题。

或者,我会跳到分段的wled。在我看来,沃尔德是证明〜800 LED完美地运行〜800 LED根本不是问题。我只需要找出是否找到一种方法来包括一些代码来创建自己的效果,这是我有一些特殊愿望的楼梯优化的。我只是深入编码...

闪烁非常容易,因此可能值得一试。如果问题持续存在,您总是可以回到Esphome。包括许多效果,并且有一些楼梯特定的用户mod可用。如果随附的效果并不是您想要的,则WLED Wiki非常清楚如何添加用户mod。

我相信您可以在WLED中使用特定文件中使用标准的Audrino代码将传感器直接添加到ESP中。我不使用它,但它恰好与自定义效果在同一页面上。

编程是在Arduino IDE中完成的。有一个特殊文件,usermod.cpp,写自己的代码。(但是,如果您认为您的代码可能与许多用户相关,请随时直接编码并打开“拉”请求)
该文件具有三个空的方法:

  • usersetup()加载设置后,但在连接到WiFi之前被调用。如果它不取决于wifi(ir,传感器,gpios,…),则使用它来启动自己的接口。

谢谢您的建议,我会深入研究。有了我目前不得不在平稳的情况下运行一些可寻址LED的经验,我不得不说AirCookie做得很棒。

我已经在很多家庭灯中使用了WILD,并使用了最近添加的细分市场。必须在HA中进行自动化,但是时机不是那么准确。这会导致步骤打开/关闭并不是及时地平等的。此外,我喜欢过渡是平滑的,这也是不可能的。查看一个我演示的视频:

您不必通过HA自动化来效果。

我不。在此视频中处理了效果,但要打开/关闭片段,一一打开/关闭段,对吗?如果没有,请给我一些建议,因为我找不到其他方法。顺便说一句,这不是主题的意义,而是感谢您的帮助。

我了解这个话题。查看Wled Discord。有一个用户mod用于楼梯,可以通过细分来完成您想要的操作。如果需要,您也可以自行效果。祝你好运

我想分享进度。似乎“闪烁”效果发生在大多数人身上,而我的印象不容易解决。有了这个主题的反馈,我决定转向WLED,并在HA的帮助下,结果变得令人满意。因此,对我来说,主题关闭了,这里有一些视频显示结果:

最令人印象深刻的是:彩虹效应,每个步骤分割:

从顶部:

打开和关闭的步骤:

影响:

4个喜欢

您好,您是否介意分享您如何配置WLED和HOMEASSESTANT配置?

问候