乐视遥控一个按键,控制开关或者灯的开和关的流,mqtt状态获取 求助大佬

image
我想要这样的效果 按键后 判断插座或者灯的mqtt状态 如果时开启状态就关设备 反之则开设备

不管怎样,你总要获得当前开关的状态,才能判断啊。
你这插座要是可以反馈,就是最好的了。
要是不能反馈,你就建个global上下文函数,每次判断这个函数中的值,以此来判断现在发出的指令应该是on,还是off。因为没有插座状态反馈,所以在使用的时候要特别小心,不能用于过于重要的设备上。同时,也可以搞个定时纠正机制,就是在你肯定不使用的时候,强制关闭一次或几次。这个方式最简单

谢谢大佬 俺在等医生大佬的流 :grinning:

能请问下乐视8键怎样接入z2m的么?

你刷了罗大的固件没

没有呢,在哪里有啊?

私聊耗子 4元一个固件

好的,我去问问,谢谢啦

global我做出来了 但是不能实时反馈信息 有点麻烦 每次重启机器后 得动作一次开关 才能获取到状态。医生大佬好像说可以直接获取mqtt设备的状态

你的插座如果有反馈,当然就要使用反馈的状态作为判断了。如果没有的话,就只能自己造一个“假”状态了 :smile:
你这个需求,其实非常普遍,也是最简单的自动化,效果也出奇的好。我是特别喜欢“一键控”,20块钱买个433门铃,根据场景自动控制一些设备。好用,简单,家人更喜欢这种摸得到的“自动化”

nr的homeassistant节点里有个状态节点 就可以主动获取设备的状态 但是我想只通过nr和mqtt实现 不想用第3方平台
image 最后一个节点

这就简单了啊。我估计你那个设备也是通过mqtt和hass交互的。你node-red加上mqtt in节点不就行了 :sweat_smile:

大佬 qq名啥 加你qq 指点下俺

274947104我的qq

我没有测试,需要你自己再加工一下。但基本上应该长成这个样子
image

[{"id":"927cac2.687f75","type":"mqtt in","z":"59d2d1d3.ac7c2","name":"","topic":"","qos":"2","datatype":"auto","x":260,"y":780,"wires":[["7e050282.30cecc"]]},{"id":"7e050282.30cecc","type":"function","z":"59d2d1d3.ac7c2","name":"设备状态取出并存入“上下文函数”中","func":"/** 取到mqtt的值后\n * 1. 解析mqtt的json,转换为数值\n * 2. 存入flow.set(\"a\",x) ||[]\n * /\nreturn msg;","outputs":1,"noerr":5,"x":530,"y":780,"wires":[[]]},{"id":"12b62799.3276b8","type":"inject","z":"59d2d1d3.ac7c2","name":"遥控器编码","topic":"","payload":"123","payloadType":"str","repeat":"","crontab":"","once":false,"onceDelay":0.1,"x":430,"y":880,"wires":[["41c3616d.9c6c6"]]},{"id":"41c3616d.9c6c6","type":"function","z":"59d2d1d3.ac7c2","name":"","func":"//取出之前存入的设备状态\na = flow.get(\"a\");\n\n//判断是否为开或关\nif(a == \"开的编码\"){\n    c = 4585532   //关机编码\n}esle{\n    c = 3209523235  //开机编码\n}\nmsg.payload = c\nreturn msg;","outputs":1,"noerr":4,"x":610,"y":880,"wires":[["1dd37243.7bedae"]]},{"id":"1dd37243.7bedae","type":"mqtt out","z":"59d2d1d3.ac7c2","name":"","topic":"","qos":"","retain":"","x":780,"y":880,"wires":[]}]

感谢 我好好研究下

大佬你是不是ha论坛发433遥控控制卧室和大厅 阳台灯的那位大佬

我哪有这么厉害。我其实是一个纯小白,恰好前几天学习了大佬企业微信指令识别+多次问答实现将微信打造成有逼格的公众号?–天气(一)这两个帖子,自己搞了一点东西,摸索出一点皮毛

你发我的这个流 我之前搞出来了 就是我上面发的内容里面说的 这个有个缺点 就是不是主动获取设备状态 每次重启服务器后 要手动开关你的设备才会把状态存到全局变量里

我这里一共有两个流程。第一个流程就是通过mqtt获取设备状态,并把存入到flow.get(“a”)中了。这样,第二个流程就可以调用这个上下文,就知道设备状态了

我现在做的起夜的流也是这个问题 ,重启我的服务器后,要手动开关两个卧室的门让全局变量获取状态后 流才能正常工作 设备少固然没多大问题 如果设备多了 你要每个设备都去开关一次 得多坑啊