MQTT Broker gateway
-
Hi @dakky
Thanks for the help. So far, I can get my temperature and humidity to update, but I cannot get my motion sensor on the same node to update at all.
Here are the lines I have in default.items
/* MySensors MQTT */ Number node1_temp "Temp [%.1f °C]" (node1) {mqtt="<[mysensor:MyMQTT/1/1/V_TEMP:state:default]"} Number node1_humid "Humid [%.1f %%Rh]" (node1) {mqtt="<[mysensor:MyMQTT/1/0/V_HUM:state:default]"} Contact node1_motion "Motion Sensor 3: [MAP(1on0off.map):%s]" (node1) { mqtt="<[mysensors:MyMQTT/1/2/V_TRIPPED:state:MAP(1on0off.map)]" }And here is my default.sitemap file
Frame label="Sensor Data" { Text label="Sensors" icon="mysensors" { Group item=node1 label="Man Cave Climate" icon="temperature" Chart item=node1_humid period=W refresh=10000 }And finally, this is what I am reading from screen when the message appear on the MQTT broker sketch. The node_id is 1, not 3 like I originally though.
>>30 17 00 14 4D 79 4D 51 54 54 2F 31 2F 32 2F 56 5F 54 52 49 50 50 45 44 30 0;0;3;0;9;read: 1-1-0 s=0,c=1,t=1,pt=7,l=5,sg=0:47.1 MyMQTT/1/0/V_HUM >>30 16 00 10 4D 79 4D 51 54 54 2F 31 2F 30 2F 56 5F 48 55 4D 34 37 2E 31 0;0;3;0;9;read: 1-1-0 s=2,c=1,t=16,pt=0,l=1,sg=0:0 MyMQTT/1/2/V_TRIPPED >>30 17 00 14 4D 79 4D 51 54 54 2F 31 2F 32 2F 56 5F 54 52 49 50 50 45 44 30 0;0;3;0;9;read: 1-1-0 s=2,c=1,t=16,pt=0,l=1,sg=0:0 MyMQTT/1/2/V_TRIPPED >>30 17 00 14 4D 79 4D 51 54 54 2F 31 2F 32 2F 56 5F 54 52 49 50 50 45 44 30 0;0;3;0;9;read: 1-1-0 s=1,c=1,t=0,pt=7,l=5,sg=0:21.8 MyMQTT/1/1/V_TEMP >>30 17 00 11 4D 79 4D 51 54 54 2F 31 2F 31 2F 56 5F 54 45 4D 50 32 31 2E 38 0;0;3;0;9;read: 1-1-0 s=2,c=1,t=16,pt=0,l=1,sg=0:0 MyMQTT/1/2/V_TRIPPED >>30 17 00 14 4D 79 4D 51 54 54 2F 31 2F 32 2F 56 5F 54 52 49 50 50 45 44 30 0;0;3;0;9;read: 1-1-0 s=2,c=1,t=16,pt=0,l=1,sg=0:0 MyMQTT/1/2/V_TRIPPED >>30 17 00 14 4D 79 4D 51 54 54 2F 31 2F 32 2F 56 5F 54 52 49 50 50 45 44 30Any ideas on what I am missing? Also, when trying to implement persistence, I went with MySQL as per directions here but the data doesn't actually go into the chart. Other than adding mysql to the openhab.cfg file, what else is there? The log isn't showing any errors from what I can see.
Thanks!
-
Typing from tablet => short Version
Contact items needs Open or Closed not On vor Off. Make a new map translating 0 to closed etc and it should work. or use the correct item: switch seems a better choice
https://github.com/openhab/openhab/wiki/Explanation-of-items#itemtype -
Hi @dakky
well, some luck. I made a new map contact.map with
0=Closed
1=Open
-=unknownso far the swtich now shows "Unknown" all the time; but no status updates from the sensor (even though it is showing in serial console as 1, and 0 when it is off).
Not sure why it isn't updating like it should now. Might have to reboot the server.
-
Ok, got it. Had to do the following to my items and sitemap to get a PIR to work right:
entry in default.items
Switchnode6_motion "LR Motion Test [MAP(motion.map):%s]" (FF_Living,All) {mqtt=">[mysensor:MyMQTT/6/1/V_TRIPPED:command:ON:1],>[mysensor:MyMQTT/6/1/V_TRIPPED:command:OFF:0],<[mysensor:MyMQTT/6/1/V_TRIPPED:command:MAP(motion.map)]"}and default.sitemap
Text item=node6_motion label="PIR Test LR [%s]" icon="pir"And last, the transform file (named motion.map)
1=ON 0=OFFAt least now it registers the data in text as On or Off. Thanks again @dakky
-
Is there a way to redirect all the messages from the serial console of the wifi gateway to some tcp port so they can be read via putty?
-
Hello, sorry to reopen this post, but maybe someone can help me! I'm still waiting the arrival of my arduinos to make my nodes and gateways, but I already installed openhab to start configuring the layout and MQTT. All is working, I can post to MTQQ from openhab and used the tutorial on this post to make the same button send and recieve.
The problem is that when I click the button with the code "sw2 send + recieve example" openhab enters in loop mode, it seems that keeps sending and reviving the same MTQQ request. I use MQTT.fx to test the MTQQ posts, and when I click the button, the program also crashes and takes my CPU to max.
Can any one help me?
Best Regards
Soloam -
Hello, the problem persists, the map function keeps sending the same request over and over again, If I make a click in a few seconds my mqtt client is full of requests, over 500 with the same message. Wasn't it supposed to send only one message for click?
-
I don't believe you can put both inbound and outbound mqtt messages in the switch definition. This is what creates the infinite loop since you are both sending and receiving on the same message topic. Every time the broker receives the message, it publishes it out to all subscribers. Since your switch item is also a subscriber it picks it up again and the loop continues.
Use only inbound in the definition then either a rule and/or proxy item to handle the outbound command. Set your rule definition "when item received command". That way it will only fire when you click on the switch item in openHAB. If you use any other option, ie. received update or changed, it will also continue the infinite loop.
Hope this makes sense.
-
That makes perfect seance, I was only mirroring the solution presented on the 1st post of this topic. I will try your approach!
Thank You
-
It didn't worked, the rule also changes when I receive the MQTT in openhab:
rule "Send Requst" when Item node2_sw2 received command then if(node2_sw2.state == ON){ sendCommand(node2_sw1,ON) } else{ sendCommand(node2_sw1,OFF) } endI don't believe this is a new problem to the forum, didn't any one made, a switch on the openhab with inptut and output.
-
Found the solution tanks to watou user in OpenHab Forum.
Switch node2_sw2 "sw2 send + recieve example" (node2,all) {mqtt=">[mysensor:MyMQTT/21/2/V_LIGHT:command:OFF:0],>[mysensor:MyMQTT/21/2/V_LIGHT:command:ON:1],<[mysensor:MyMQTT/21/2/V_LIGHT:state:MAP(1on0off.map)]"}The secret is in the :state: declaration on the MAP!
Thank you all