How to receive data on openhab using UDP ? (solved)
-
Hello !
Here is the problem I am facing :
I have an arduino node communicating using UDP. It sends on port 600 receives on port 500.
I would like to be able to send and receive data to this node from the openhab.Sending data has been straight forward. It works nicely. On the other hand I did not manage to get
any data from this node. I tried various changes in the config file and in the way to do the incoming
binding but I still got warnings. Here are some information on my setup :items setup :
String fromUDPnode "fromUDPnode" {udp="<[192.168.0.9:500:'REGEX((.*))']"} String toUDPnode "toUDPnode" {udp=">[192.168.0.9:500:'REGEX((.*))']"}config :
udp:itemsharedconnections=true udp:bindingsharedconnections=true udp:directionssharedconnections=false udp:addressmask=true udp:postamble= udp:blocking=false udp:refreshinterval=250 udp:port=600and here are the warnings I get :
[WARN ] [AbstractDatagramChannelBinding] - Received data 10;59;1;0;23;0 from an undefined remote end /192.168.0.9:500. We will not process it [WARN ] [AbstractDatagramChannelBinding] - No channel is active or defined for the data we received from /192.168.0.9:500. It will be discarded.seems openhab receives the data but discard them ...
any clue on how to solve this issue ?
Thanks
-
I had the same issue and found this post quite fast but although it says "(solved)" I found no solution. I am leaving my reply here for future reference.
What I did to fix the "It will be discarded" message:
[openhab.cfg]
This sets up the receiving end of the binding i.e. the server that binds the 5005 port.
udp:port=5005[default.items]
This sets up the openhab binding to the string. Notice the asterisk after the IP address; because the client will connect to the server it will get assigned a random free port. The asterisk will catch all ports a client will get solving the "No channel is active or defined issue".
String String_FF_Bath_Test "Test String[%s]" {udp="<[127.0.0.1:\*:'REGEX((.\*))']"}[python]
Just some test code to easily send a UDP message to openhab.
import socket UDP_IP = "127.0.0.1" UDP_PORT = 5005 MESSAGE = "Hello world!" print "UDP target IP:", UDP_IP print "UDP target port:", UDP_PORT print "message:", MESSAGE sock = socket.socket(socket.AF_INET, # Internet socket.SOCK_DGRAM) # UDP sock.sendto(MESSAGE, (UDP_IP, UDP_PORT))
Hello! It looks like you're interested in this conversation, but you don't have an account yet.
Getting fed up of having to scroll through the same posts each visit? When you register for an account, you'll always come back to exactly where you were before, and choose to be notified of new replies (either via email, or push notification). You'll also be able to save bookmarks and upvote posts to show your appreciation to other community members.
With your input, this post could be even better 💗
Register Login