UDP/HTTP Binding with REGEX Transformation

I am attempting to use a GET command to read a status symbol from my irrigation system. I am attempting use a UDP binding for the item. My .items is as follows:

Contact Droplet_Zone1 “Frontyard” {udp="<[toasterbox:5005/sn?sid=1:1000:REGEX(*)]"}

The Regex expression seems to yield either null values when using a wildcard expression (*) . I can use the http binding as well with the same results:

Contact Droplet_Zone1 “Frontyard” {http="<[http://toasterbox:5005/sn?sid=1:1000:REGEX(*)]"}

I tried adjusting the REGEX expression to have ‘.*’ instead and I receive this INFO log in Karaf.

20:11:45.070 [INFO ] [.internal.RegExTransformationService] - the given regular expression ‘^.*$’ doesn’t contain a group. No content will be extracted and returned!

BTW, the value returned by the server php call is just a boolean.
http://toasterbox:5005/sn?sid=1 -------> returns a value of ‘0’ (for now)

HTTP is not the same as UDP. They are not interchangeable.

If your server is expecting HTTP you must use the HTTP binding.

To set a Contact you need to have OPEN or CLOSED as the message. Since your server is returning 1 and 0, use the MAP transform to convert the 1 to OPEN and 0 to CLOSED. Case matters.

No sooner had you posted your reply that I tried the following RegEx again for integers and that did what I wanted. I decided to use a String item instead of Contact and just format the result as needed.


You are very much correct on my confusing usage of protocols; not sure what I was thinking there.