创建我的1日自动化SonoffSV设备上使用Tasmota宣布当车库门的动作:

- id: garage_door别名:车库运动触发:- entity_id: mqtt主题:“统计/ GarageDoor实力”:在平台:国家:截止状态:[]行动:-服务:通知。alexa_media数据:目标:——media_player。garage_dot - media_player.computer_room_dot消息:关注。车库门移动。数据:类型:tts模式:单身

我得到错误日志查看器,当我使用以下配置- >自动化- >执行测试它。我认为应有以下触发部分因为如果我代替部分非常底部似乎工作好。

文件“/ usr / src / homeassistant / homeassistant /组件/通知初始化在_async_notify_message_service . py”, 149行
等待self.async_send_message (* * kwargs)
文件“/ config / custom_components / alexa_media /通知。在async_send_message py”, 195行
目标的目标:
TypeError: NoneType的对象不是iterable

触发:entity_id:封面。garagedoor:从平台:国家:

任何线索我哪里出错了吗?

谢谢,
丰富的法文

错误消息并不是抱怨自动化的触发器。它有一个问题通过alexa_media发送通知。

塔拉斯,

你为什么认为它不会抛出错误如果我改变只是触发部分的自动化?

丰富的F

一个MQTT触发不支持选项。

你发表的状态触发是使用不寻常的值封面实体。去开发工具>状态,找cover.garagedoor并检查其状态值。通常这将是关闭开放(不)。

当你手动触发自动化(你解释你的方式)跳过自动化的触发器(和条件(如果有的话)和简单的执行行动。

错误消息你是专门执行的行动。这就是为什么我说错误消息并不是抱怨触发器;很显然当它试图执行报告一个问题notifiy.alexa_media服务调用。

我不知道为什么它跌跌撞撞地在服务调用。Alexa媒体是一个定制的集成和我没有经验。当我把它比作其他的例子,伟德国际官方app下载苹果版这样的一个,它似乎有相同的结构,除了media_players的缩进(您可以通过额外的两个空格缩进他们但我怀疑它有任何轴承)。

塔拉斯,

其实我认为:属性应该有效载荷:代替。错误现在消失了但是自动化不是当我按车库远程射击。没有日志。

我跟着这个欧美教程在定义一切。链接

这图片来自Sonoff SV控制台。
1日至2日两个蓝线代表设备重置
2日3日,蓝线代表开放的门
3日到4日蓝线代表关上的门

只是不确定的主题和有效载荷值使用。

这是目前自动化脚本

图像

丰富的F

就像我说的,选项不支持MQTT触发器。

MQTT是触发的最低要求主题选择。以下任何载荷时将触发发布到指定的主题。

触发:平台:mqtt主题:living_room /开关/交流

通过添加有效载荷选项,它将触发只有当指定的有效载荷是发布到主题。

触发:平台:mqtt主题:living_room /开关/交流负载:‘上’

编辑

的目的是什么你的自动化的条件吗?编写,自动化的工作原理如下:

  • 触发时关闭发布到统计/ GarageDoor /状态
  • 检查继电器一段至少10秒(即继电器10秒之前触发)。
  • 发送一个通知。

我认为10秒后不久。之前我以为负数代表。

我包括控制台屏幕截图,来确定载荷响应的“在”是充分的或我需要某种正则表达式公式MQTT线不是一个简单的打开或关闭,如下所示

1日至2日蓝线是一个重置
第二,第三行是一个敞开大门
3日到4日行一扇门关闭

丰富的F

当你指定在条件(或设备条件)你必须指示状态值指定的时间不变。这意味着目前条件评估,继电器的状态至少10秒。它不会等待10秒对继电器的状态,它必须在过去的10秒。

我看到的是负载发表统计/ GarageDoor /状态是一个简单的字符串值,要么是吗开放关闭。此外,作为保留消息负载发表(即存储的值是通过MQTT代理)。

有效负载发布到统计/ GarageDoor / SWITCH2是一个JSON字符串值,要么是吗{“状态”:“ON”}{“状态”:“关闭”}(并不是作为保留发布消息)。如果你选择使用这个主题,你可以解释它的有效载荷(模板条件)使用trigger.payload_json(看文档www.19463331.com)。


就其价值而言,我要做的是创建一个MQTT二进制传感器这代表了车库门。

平台:mqtt的名字:“车库门”state_topic:统计/ GarageDoor payload_on现状:“开放”payload_off:‘关闭’device_class: garage_door

自动化的触发可以使用一个简单的状态触发。例如,这个门关闭时触发:

别名:例子触发:平台:国家entity_id: binary_sensor。garage_door:‘了’……等等……

塔拉斯,

好奇怪的事情发生了。这是日志下面的屏幕截图:

  1. 重启哈
  2. 按下遥控器打开车库门(没有消息从Alexa)
  3. 去开发工具- > cover.Garage_door
    按下按钮(Alexa门关闭,没有消息)

SVrelay1是友好的名称所示Tasmota软件。

有办法告诉如果一个自动化或者触发条件被满足吗?

这是我的相关配置。yaml所以你可以看到如果我进入它正确

这是相关的自动化。yaml的代码

塔拉斯,

一个小小的改变,不得不选择二进制传感器触发,但几乎相同的结果。除了当我没有自动化日志中选择手动执行它。

丰富的F

安装MQTT Explorer看看我能学到什么。

丰富的F

学习:

两个静止的场景是当没有门运动和门远程不了

  • 当接触簧片开关部分(即门关闭)
    统计/ GarageDoor /功率= '了'
    统计/ GarageDoor /状态= '关闭'

  • 当簧片开关部分不接触(即门打开)
    统计/ GarageDoor /功率= '了'
    统计/ GarageDoor /状态= '打开'

因此,远程按钮被按下时可能的行动

行动1 - >统计/ GarageDoor /权力去‘上’一会或两个统计/ GarageDoor /状态变成“开放”当门停止行动2 - >统计/ GarageDoor /权力去‘上’一会或两个统计/ GarageDoor /状态变成“封闭”当门停止

现在我需要了解您的二进制传感器代码。

丰富的F

直到你最近的帖子,没有提到你已经定义了一个封面实体代表了车库门。如果我知道,我不建议定义一个binary_sensor因为它是多余的。引发的自动化可以覆盖的状态。


提示:

请不要发布任何你可以复制粘贴的截图。为什么?因为谁帮助你可能需要重新输入您发布的文本作为一个截图。有关更多信息,请咨询论坛的常见问题解答,特别是指南# 14:

:一:四:截图
有时图片抵得上一千字,包括截图(或链接到一个托管在别处)会很有帮助。不要做任何你可以从您的配置复制粘贴,YAML代码,或者日志。请只包括截图,实际上是有帮助的。


建议

尝试以下简单的自动化车库门的状态报告作为一个持续的通知。不添加任何条件和不测试它通过手动触发自动化(没有触发状态对象当你这样吗trigger.to_state.state将未定义)。

别名:车库门状态触发:平台:国家entity_id:封面。garage_door行动:服务:persistent_notification。创建数据:标题:“{{现在()。时间戳| timestamp_local()}}”的信息:“车库门是{{trigger.to_state.state}}”。
  • 如果不能触发然后有问题覆盖的配置。
  • 如果它工作,添加:“关闭”触发器、执行重载自动化和测试一遍;它应该只报告当门关闭。
  • 如果这也适用,替换操作的整个服务调用你的(alexa_media)和重新测试。

没有通知在“通知”出现在左边框。我甚至重新启动公顷。

图像

封面值匹配在欧美的视频,这个设置是基于。看到视频下的信息。链接或直接
看到的yaml链接

这是我再次Tasmota信息

屏幕打印的自动化代码您要求我输入:

图像

在配置>自动化检查last_triggered自动化车库门状态的时间。如果触发它将指示当它的发生而笑。鉴于你收到报告没有持续通知那么它应该没有时间戳(即没有触发)。

如果它未能触发的配置可能会有问题cover.garage_door。去开发工具>,发现cover.garage_door并观察其状态当你操作(打开/关闭)物理门。它的状态应该反映门的位置。如果它失败了,那么它有一个配置错误。如果它成功那么你做了什么(我不能猜),导致自动化的触发从名义上工作。检查配置>日志,看是否有错误。

塔拉斯,

今天早上我醒来的时候,看到这个通知下哈。

当我去配置- >自动化,自动化去年解雇6:38am EST。这是时候我妻子使用车库。

当时我还在床上,看着门在我的android应用。我看到门打开然后一分钟后我看到关闭的色鬼卡。

这是日志自动化图像注册你的射击。

丰富的F

这是个好消息,因为它的意思cover.garage_door正确配置,正确地报告其状态(开启/关闭)。状态触发检测覆盖的状态变化和报告他们作为一个持续的通知。

不要担心通知奇怪的标题。由于语法错误我建议自动化制造的。模板应该是这样的:

标题:“{{现在().timestamp () | timestamp_local ()}}”

不管怎么说,在这一点上你应该有信心使用相同的状态触发原始自动化。唯一的问题是,如果服务调用Alexa媒体工作。

- id: testingthis别名:车库门状态触发:-平台:国家entity_id:封面。garage_door条件:[]行动:-服务:通知。alexa_media数据:目标:——media_player。garage_dot - media_player.computer_room_dot消息:的注意力。{{trigger.to_state车库门。}}。的数据类型:tts模式:单身

如果宣布成功,太棒了!如果不是,它产生原始消息,然后用Alexa媒体确实是一个问题。

塔拉斯,

我们(我的意思是你)是如此之近。东西是不正确的。

图像

你看到什么吗?

我添加了你的2日自动化底部通过编辑器和固定你的1日自动化代码的电子邮件。

丰富的F

差点忘了。我消灭了binary_sensor定义,所以我不得不把它回configuration.yaml

找到了! !state_topic:输错的话题:

你有机会来测试我发布的最新的自动化?我看到从你的截图,将其作为“车库门状态2 - 2/21”。它宣布车库门的状态还是失败了吗?