New dashboard/control app

Hey all I am in the process of building a dashboard / control app for hubitat. I realize that there is the native and a couple of other third parties out there, they just don’t fit the look/feel I need and want. I needed a new side code project, so have started this.

It is a react-native code base using the MakerAPI to access Hub. So it will run like native on IOS and android devices. I have most of the function working and am working on adding some stuff I wanted.

I figured now it’s a good time to ask other what they would like to see added or feel is missing currently? As I’m sure there are needs out there I don’t see/need but would be easy enough to implement.

Goals

  1. Control hubitat devices and see status of hubitat sensors/motion/etc
  2. Implement a full video feed UI for Unifi Protect camera feeds into the dashboard (this requires scrypted server to be running as well, so will support any camera scrypted currently does)
  3. Clean/ native looking interface (not a fan of the weird tile w/background interface personally).
  4. This is mainly to be driven by tablets/larger screens located around house to drive/monitor automation. (May support a simpler version for phones/smaller devices)
  5. Support add/remove of devices and custom layout to an extent it stays easy and functional.
  6. Support icon per device type, custom color themes etc.
  7. This is focused on whole home control not per room as much.
  8. Implement better looking/native Sonos control

Like I said I have some free time and have wanted this for a while. Current dashboards/3rd party require a steep learning curve to setup and I’m hoping to avoid that. Granted I know HE as a whole has a learning curve.

Thanks and cheers!

Pluckyhd

7 Likes

Awesome project! While there are indeed some 3rd party dashboard apps already on the market with super low learning curves (HD+ for Android comes to mind, and hubiVue for virtually every platform), it's always fun to see what approach new developers might take.

Are you locked into using Maker API? Have you explored (or been made aware of) eventStream as another (local, anyway) option for getting event info out of Hubitat? How might you approach remote connections?

Summoning @jpage4500 and @gslender, who are seasoned coders in this space, to share any special sauce they may be able to sprinkle on this topic. (Another grandmaster who nailed I/O in his own creation, Reactor, is @toggledbits although I don't believe he is actively deving apps for HE at the moment.)

What specifically are you looking for? Have you got an example of anything that’s close to what you’re attempting to accomplish?

I’ve been meaning to create a theme for hubiVue that resembles HomeKit, but obviously it would not be a 100% mirror considering it needs to look suitable for Android and Windows.

1 Like

@gslender I have a feel/look I want yes, haven’t fully gotten it out of my head yet lol. I’ve seen your app very nice work and not trying to take away from that. As for Apple HomeKit it isn’t to bad I use it but it’s messy to me for my use. The main driver for this project was video streams/more native Sonos (forgot to mention that above) control/hubtitat all in one dashboard. It’s intent for my use is to mount in central locations to see/control entire home in one screen (obviously zoom in/out options for feeds/Sonos etc). But avoid having to use multiple apps to accomplish what I want. That and wanting to learn react-native drove me. (Know c#, Java and some JavaScript (react-native is testing that limit lol).

@DubbyDad havent heard of the eventstream seems a quick look would just require a driver on my end…interesting approach. MakerAPI seems to offer all I need (although a stream feed would keep it updated more ideally so thank you I will look at it). As for remote access MakerAPI allows that but it’s not something I have looked at to be honest. I will venture into it for anyone who may want out of house option.

1 Like

I don't hide the fact I'm a huge fan of HD+ - @jpage4500 fantastic dash. He works on it constantly, maintains and implements new things and has the chops for the app world. I've bought him a few coffees.
Some of the areas his app hasn't yet addressed - grouping options - (group by room, by device type, by capability), layout sectionals - ie; segmentation of areas. Tile templates - eg; I have 4 motion sensors, some report temp, some report temp and humidity, some temp, humidity and lux. being able to assign a tile template type to control what is visible/not visible etc.
I doubt I'll ever be a convert - HD+ is my single favorite tool, but. new ideas and designs come from new angles and I would love watching another app in this space grow up.

3 Likes

Another component /integration idea. While a dashboard is basically outside MakerAPI, an integrated text tile that goes with your app, that allows passing of a json, that can then be formatted at the dashboard - right now, I get text based info from 8 sources. TileMaker, HTML values, embeds etc. if it could be all handed right through the makerAPI then customizably formatted at the dashboard on a per tile basic, (font, layout etc without that 1024 character BS limit)

I personally think this would be crucial. I have several pads around my house that are used often. But I often use my phone as an interface as well. My phone has a duplicate of each pad in my house, so I can basically control everything in my house while reclining in bed.

Would like this allowing in particular by room or device type (maybe more as you mention). So that you can easily see your heating controls for several rooms all in one autogenerated(?) view

You bring up a well-documented, hard-coded limitation here that applies to HE Dashboards and "HTML" tiles. It's unclear to me whether this 1024-character limit occurs at the Maker API stage, or the Dashboard app itself.

But suffice to say DB app creators themselves are free to exceed this by allowing much larger HTML fields if they so choose. I'm certain that hubiVue and SharpTools are essentially unrestricted in this regard. Neither requires you to fiddle with JSON or CSS (if you don't want to), which are among the things that keep me away from the native app.

Other devs like @thebearmay likewise don't hard-code an upper size (that I know of) in drivers such as Tile Template Generator which spits out HTML blobs parsed from selected device attributes (very cool, btw!).

Kudos to you for thinking outside the box. That's the overriding mantra of Hubitat!! If you don't like something or need a feature, you're free to roll your own.

2 Likes

@jshimota for sure hd+ is a big huge project and very scalable/customizable. Its a different approach than I am taking but I see its use 100%. I wouldn't expect my app to be as customizable unless I get crazy lol. I am taking more of a KISS approach to a lot of it. I want it functional and anyone walking up to it to be able to control it without being taught or confused (lofty goal but hopeful).

@kevin @jshimota Device/Component types area already there if something is missing please let me know but basically it has "build in component types lights/switches/thermostat etc. I am also allowing for custom component types. When you add a device to the app you pick the template/component type to assign to it and the commands you want to control (on/off/slider/input etc). So here is what is available so far

  1. Name of Component/template
  2. Icon to use (changeable by states on/off etc)
  3. Color for different states (example on/off etc)
    4.Room location (was originally importing from hubitat but that field isn't used by me to may make it different like Apple/etc ask when you set it up)

Grouping by rooms/templates is definitely on the list as fits my use case as well.

Of course these will all be further configurable to an extent in the layout portion (not done yet function before form :sweat_smile:)

If you would like further additions i will consider them.

One thing that excels is HD+ is that Joe has added direct support for RTSP video streams. In other dashboard apps I always had to use a workaround such as using a Pi running other software to convert to MJPEG. With HD+ I can simply type in the RTSP url to my cameras (Hikvision). I only use this locally as when I'm away the native manufacturers app better serves my needs.

1 Like
  • right now, I get text based info from 8 sources. TileMaker, HTML values, embeds etc. if it could be all handed right through the makerAPI then customizably formatted at the dashboard on a per tile basic, (font, layout etc without that 1024 character BS limit)

I am a bit confused here how would you pass the json to the app? is this something your wanting to manually enter into the component(tile as you refer). that formats etc. Formatting through a json with reactnative is definitely possible not sure if I will get that customizable but this intrigues me on what your referring too.

One thing that excels is HD+ is that Joe has added direct support for RTSP video streams. In other dashboard apps I always had to use a workaround such as using a Pi running other software to convert to MJPEG. With HD+ I can simply type in the RTSP url to my cameras (Hikvision). I only use this locally as when I'm away the native manufacturers app better serves my needs.

Wasn't aware he allowed that but that is awesome. Mine will do the same anything with a RTSP feed can be fed directly into the app. I mentioned scrypted only because that is what I use to get a good feed from Unifi cameras but if your cameras already have a RTSP feed your good to go.

1 Like

Pretty sure this is a nod to HE's native DB app > Gear menu > Advanced > JSON section.

1 Like

Well shucks, that's wayyy flattering! I have a version of Reactor that works with Hubitat and other platforms (all at the same time). That's been my focus for a while. I also wrote/maintain a Venstar ColorTouch Thermostat driver for HE, because it looked like the previous developer/driver had gone inactive (he now seems to be back, so I guess there will be two). So I'm lurking, and I read here quite a bit, if not posting.

FWIW, Reactor uses MakerAPI and the (basically undocumented) eventsocket feed for its Hubitat interface. This Reactor has a dashboard, but it's primitive and not the focus of my project; I'm more focused on the rules engine side of things (a simpler alternative to NodeRed, basically).

2 Likes

I need information on this please actually what I am looking at today. Willing to share via PM?

I think it's the undocumented-ness that throws people off the trail (heck, I'm not even 100% certain what @toggledbits calls eventSocket{} is or isn't identical to what I call eventStream.)

See the Interface Docs for what we currently know on that and other protocols.

If more is needed, perhaps approach @support_team for guidance.

1 Like

Yeah, it's a bit confusing. Here's how I have interpreted it:

I think the (documented) eventStream interface is for a device driver running on the HE that wants to receive streamed events from a remote endpoint.

I think that's different from the stream of device changes published by the HE on a websocket you can open ws://your-he-ip/eventsocket which is mentioned in several other forum posts, many quite old, but as far as I've ever seen, is otherwise undocumented. This is for remote services running elsewhere/off the hub (like a dashboard running in your browser) to get a feed of device and hub changes (and if the folklore is true, this is what their own dashboard uses to update its widgets).

Note to anyone trying the websocket URL above: if you have Hub Login enabled, you won't get events until there has been a login at the UI.

2 Likes

@toggeledbits has a well considered approach to his implementations and enhancements that I admire even though I have some extra features I would like in HE. This is critically important in multi controller support

1 Like

I did some work with a couple other devs

I'm pretty confident the limit is an HE impairment - I seem to recall the grand poobah guy telling me 'its there for a reason'.

1 Like