Developer Information

Can someone post the following to help out new devs (me).

Groovy version(s) supported
Other languages supported? (Python?)
External access methods (REST, Custom API, MQTT, ???)
Git integration like ST ide? Hopefully better :wink:
Log information (how to access)

Basically some basic stuff for a new developer to the Hubitat platform.

1 Like

We support a sandboxed Groovy similar to others you are probably familiar with. We don’t presently support any other languages. External access methods include REST in json or xml (but not MQTT), SOAP, raw payload, Telnet (Hubitat out) – stay tuned for more information. There is no Git integration at present. There are extensive logs available. Most device drivers allow selective logging that the user can select.

We have ~100 drivers and apps that we’ve developed in the Hubitat system. So we’ve needed those dev tools ourselves. More to come in the future.

2 Likes

@bravenel, all I can say is ship faster :wink:

3 Likes

Has an influxdb connector been created yet? I need my graphs! :smile:

2 Likes

No, but you are free to subscribe to your events and push them anywhere you like!

3 Likes

telnet, rather than ssh? :confused:

Lutron Caseta Smart Bridge Pro uses telnet, and the pico remotes are cheap, reliable and fast. The bridge is a bit of an investment initially, but it’s worth it. I have all my picos set to shut off all zone lights on hold off.

Of course - silly of me not to think of that, given that I’m currently running that way with ST, using an RPi as a jump box to the Lutron Smart Bridge Pro, will be nice to cut down the number of devices and hops involved.

Caseta support out of the gates was a big reason for me to early adopt. :slight_smile:

1 Like

Also one of the primary reasons I got this hub…and the response time is notably faster than Rpi man-in-the-middle setup.

Ditto … also itching to see the local Hue Bridge connector available.
For reference, I current have about a 4 second delay using the ST-Goldberg machine … painful.

Saw your article. How is a telnet connection called within Hubitat?

All of this goes in a driver for a device that will connect to telnet. You open the connection this way:

telnetConnect(String ip, int port, String username, String password)

or

telnetConnect(Map options, String ip, int port, String username, String password)

Only option is "termChars" which changes what the termination character is.

Then, to send/receive messages:

def sendMsg(String msg) {
	return new hubitat.device.HubAction(msg, hubitat.device.Protocol.TELNET)
}

and

def parse(String msg) {
// process incoming telnet messages
}

And, finally,

telnetClose()

Enjoy, and remember, always use telnet responsibly! :sunglasses:

5 Likes

I should add that you can also pass in null for the password and userid if your endpoint doesn't require a login.

3 Likes

Can you give some examples of how to send a raw payload using hubitat? Or link to documentation on it?

1 Like

Hate to bump this thread, but I'm wondering the same thing as Obi2000. A fair portion of my devices require raw bytes, and I'd love to get this working. Understandably, if it's not possible to do so, I'd sure love a confirmation in either direction :slight_smile:

I've also tried encoding my bytes as strings (with different encoding formats). As expected, they added extra data for unsigned bytes over 0x7F. Coincidentally, I have a device type in order that will (partially) work without unsigned bytes after String conversion, so I'm getting there!

Is there a tcp raw connection method to send / receive bytes on a connection and get notified of connection stop?

@bravenel @mike.maxwell

1 Like

Is there some fundamental issue with supporting socket connections on HE ? It seems an obvious feature given HE’s local USP ?

1 Like