I have been lurking around this community/forum for a while, and using openHAB for almost a year.
My primary usage is through mobile either my phone or tablet that is sitting in the living room.
As some of you here, I have not been entirely pleased with UI design and UX of current Android client.
In addition, I wanted:
more flexibility for voice commands (different for each device)
UI widgets that are specific to common home automation use cases such as thermostat
responsive interface for tablets (wall mounted screen use case)
some kind of theming (if you put something on your wall, you would want it to have the colors you like)
Android Wear integration (maybe even Android TV)
So, I decided to build my own mobile client to satisfy those criteria.
The project currently is in the early stages, although I do use myself for most of my home automation.
Client uses openHAB Rest API, but requires separate sitemap to allow all customizations for new widgets (I will post details on this later).
UI layout, text, icons are almost fully controlled by sitemap config, so it would be customizable for different needs.
Currently it is targeted for openHAB 1.x only. Mainly because openHAB 2 is in alpha and about a year away and I wanted to use something right now.
By posting here, I want to see what is the interest from other users, to make a decision if it is worth releasing it publicly.
If you are interested, please respond.
Graphs is actually something I’m working on now.
Charts are included by using standard Chart widget in sitemap, but data will be pulled through Habmin persistence API and natively rendered on Android.
@maze, can you give few examples of charts you are currently showing or would like to show in openhab UI?
That looks really nice Igor - and very clean easy to use interface IMO! Perfect for wall mounted tablets and the like. I will be watching with great interest and look forward to having a play myself. Great work!!
Imagine that you have one sitemap for the lights and stuff in the bedroom and another for the Playstation, beamer etc. in the entertainment room (Mancave in my case )
When about to sleep, I want to get as fast as possible to the “lights off” switch, which would be just about the only button and pretty prominent on the bedroom sitemap. Usually, by that time, I am too tired / lazy to click through sitemap selections or scroll through a huge list of items.
When about to watch a movie or play a game, I want pretty big buttons for “volume up”, “volume down”, just like a TV remote, and a button for the overhead lights.
A third large sitemap would be something that shows all my sensors and all my actuators and everything, and this I would use only on a tablet with huge available screen space.
This has an incredibly high WAF potential! I’d seriously like to try this on one of my wallmount tablets as an alternative to (the rather sluggish) Firefox/CometVisu setup. Any chance you could share the APK here?
@maze here is an example as a general idea, since it is still fluid.
How it maps to UI:
Sitemaps are in the drawer
Sitemap pages (text blocks) are tabs, with labels and some configs like number of columns (if not specified it adjust to the screen size)
Frames are UI widgets with items inside used as values/parameters
As you can see, all configs passed as part of {} blocks in the label.
Most widget only need one item, like lights switch, but complex widgets (pre-defined in the client) can accept multiple items, like weather widget below.
sitemap home label="Home"
{
Text label="Home {columns:3}" {
Frame label="{widget:clock,size:3x1}"
Frame label="House {widget:text}" {
Text item=Mode label="[MAP(mode.map):%s]"
}
}
Text label="Test" {
Frame label="Outside {widget:temperature}" {
Text item=Weather_Home_Temperature
}
Frame label="Bathroom {widget:temperature}" {
Text item=Sensor_Temperature_Bathroom
}
Frame label="Bedroom Motion {widget:battery}" {
Text item=Battery_Motion_Bedroom
}
Frame label="Front Door {widget:lock}" {
Switch item=Lights_Bedroom
}
Frame label="Outside {widget:weather-current,size:3x1}" {
Text item=Weather_Home_Condition label="{item:condition}"
Text item=Weather_Home_Temperature label="{item:temperature}"
Text item=Weather_Home_Temperature label="{item:temperature-high}"
Text item=Weather_Home_Temperature label="{item:temperature-low}"
}
}
@pelnet since it started as a project for personal use there are some hardcoded/unfinished/broken things here and there at this time. I do see that there is an interest here, so I will be making an alpha release soon.
I will post updates on that in this thread.
It would be nice if you publish the source on gihub, I would be glad to help you finish it cause it really looks great for dashboard. Another idea is that we could merge you work into existing Android app and give users selection of the UI between existing and yours view?
Awesome! I do however also agree with Victor - if you would share the source, I’m sure it would speed up the project and allow more streamlined community based development (feature branches, etc).
I’m not an Android dev myself, but I did at one point start on a standalone client for OpenHAB, however I abandoned the idea due to time constraints.
I also fully agree with @belovictor - instead of creating a separate app, it would be much nicer to have the dashboard view as a new option in the existing app. This will make it much simpler for anybody else to contribute and I am also sure that a lot of code can be shared - e.g. regarding integration with GCM, my.openHAB, discovery & configuration etc.