A simple example of an Overview Page

The Overview tab is one you need to populate and create. Click the pencil icon in the upper right and start adding widgets to make of it what you will. Layout Pages | openHAB will be your primary reference. Pages - Custom Widgets | openHAB discusses it in the Getting Started Tutorial.

1 Like

That was quick!
Got it solved, thanks: My problem was that I had a layout page named Overview but that was not the page with the id = Overview - the latter was empty. No idea how that happened though.
Once i had discovered the select button on the top right I could delete the useless pages and got it to work.

By the way: If I click the pencil on the title screen I get to the “page configuration” with the possibility to configure the properties of the other tabs on the screen. No way of adding widgets there.
I have to edit the page with “id=Overview” by selecting it via the pages button to get there.

grafik

I’ve started with the main ui since a couple of weeks and have a problem with the overview page. I created a custom widget with 2 buttons to choose a room (living and office). according to the chosen button it saves a variable with this name and occupies the temperature value with the item from this room. Pretty neat and works great. But I need a default value for my variable when the pages loads. Not a problem for a ‘normal’ page:

config:
  defineVars:
    room: Living

But when i add this to the code of the overview page. It just doesn’t load the value.

As of my knowing there is no posibility to default load an other page then overview page at start. So or this idea doesn’t work, or i must be missing something.

Hope someone has an anwser for this problem.

You cannot load any other page except the Overview page when first bringing up MainUI.

However, in your widget you could test to see if the variable is undefined in an expression and do a default behavior in that case.

Ok, didn’t know of that posibility! Sounds like a better approache the way you explain it. Not sure how to do it, but i will search for it and post the sollution here!

Can’t get it to work as I want to. Not sure if i understand what you meant. The way I read your reply was check per ‘widget-item’ if the variable state = undefined. But that seems like a lot of extra code and extremely long lines.

text: '=(vars.room == undefined) ? "Heating - Living" : "Heating - " + vars.room'

in the above case, it isn’t much of a problem, but the widget contains a lot of items referring to a room so for example this line would be verry long:

text: =items[vars.room + "_temperature"].displayState + " (" + items[vars.room + "_temp_setpoint"].displayState + ")"

These two buttons define the room:

        default:
          - component: oh-button
            config:
              style:
                width: 150px
                position: absolute
                top: -10px
                right: 50px
                box-shadow: 0px 0px 0px
              text: Living
              round: true
              outline: true
              color: purple
              fill: "=vars.room == 'Living' ? true : false"
              action: variable
              actionVariable: room
              actionVariableValue: Living
          - component: oh-button
            config:
              style:
                width: 150px
                position: absolute
                top: 30px
                right: 50px
                box-shadow: 0px 0px 0px
              text: Office
              round: true
              outline: true
              fill: "=vars.ruimte == 'Office' ? true : false"
              color: purple
              action: variable
              actionVariable: room
              actionVariableValue: Office

If I have to add everytime the default room in every single line, it feels a bit complex. Maybe it’s the only way, but maybe there is a way to test the var on undefined status and fill it with a default value but i can’t think of a sollution and can’t find any sollution on the forum here.

Another possibility might be to create two versions of the widget. Then use the visibility property to choose which one to show. I don’t know if that will work. But using expressions does indeed result in long lines.

1 Like

Found the best sollution for me :slight_smile: You where right at first @rlkoshak, the best way is test within the expression. And the line isn’t that long / unreadable. One of the lines looks like this now and i think it’s pretty nice:

text: '=(vars.room == undefined) ? items["Living_temp_setpoint"].displayState : items[vars.room + "_temp_setpoint"].displayState'

not sure if i should post this on this forum, but wanted to show what was possible after the help i got :slight_smile:

Nice detail, the flame goes on / off according to the status of our central heating unit.

2 Likes

Another question about the overview page. When I open the overview page, it takes about 4 seconds before i see my widget (i only have the above at the moment). When I add widgets to another page, it load instantly. Not sure it this is normal behaviour.

Much of the Overview page is build automatically which requires the loading and parsing of all the Items. I could imagine that might take more time than a custom page. Remember, the Overview page consists of all four tabs: Overview, Locations, Equipment, and Properties.

1 Like

restarted openhab today and the overview page loaded almost instantly. My openhab slows down after editing a lot of rules / main ui / items / things / etc. not sure why that is, but it’s also affecting designing in main ui and didn’t realise that.

Tip for others, when you experience this behaviour, restart openhab :slight_smile:

How can I hide/get rid of the HABot “Hi, what can I help you with?” input field at the top of the Overview page (without uninstalling HABbot)? I have spent an hour searching online/through the documentation and cannot find any way to disable/remove this field that is taking up a lot of space at the top of my Overview page.

On the “Overview” layout/editing page this input field does not appear as a building block/row at the top of the page that I am able to remove.

On the “Edit Home Page” settings page I have no options checked (Administrators, Users) for the “Allow chat input box to” setting yet it is still appearing. It should not show if I haven’t granted/set permission for any users (myself included as the Admin) to see it. I cannot find any setting on this page to hide/remove the field. The “Code” view does not have any code pertaining to the HABot input box.

With openHAB 2.x I could edit a CSS file somewhere to manually modify page content. Is this something I am able to do for openHAB 3.X? Using my browser’s Developer Tools/html inspector I see that the CSS coding for this page is being served by my openHAB server from a style sheet located at http://localhost:8080/css/app.css however using a comprehensive file searching tool on my server/computer does not locate this CSS page anywhere within the bowels of openHAB. I also found this OH Community forum post where another user was also trying to locate this page and was told to try looking through the github repo and so I also searched there and only found where app.css is referenced one time in some JavaScript file in the actual code but not the actual document itself and also found a closed Issue where someone had also suggested they please add a “HABPanel like layouting page” but it doesn’t look like they ever did.

Anyway, I tried doing my homework to find the answer on my own before asking here but have not found the answer. I would really appreciate if you might be able to offer me some guidance here. Thank you!

There is no setting for this that I am aware of.

You can add css styling to pages with the stylesheet property in the page yaml.

1 Like

You can select Administrators as the only role which will be allowed the HABot text box and the “regular” users that are either not logged in, or have a user role only, will not be presented with the HABot text box.
As a best practice it’s always advisable to log out of your admin account whenever you don’t need the admin access anymore, as it will stop sending access tokens with admin access over a potentially unsecured line (if you don’t use HTTPS even in your LAN).

If you want to hide the chat box on a per-device basis, you can go to “Help & About” and find a few options that pertain to the current device only, including “Hide chat box input on home page” (under Miscellaneous).
This option is locally stored.

Otherwise if you want to hide it from everybody, you can still do it with a workaround:
When editing the home page select only “Administrators” from the “Allow chat input box to” parameter. Then switch to the Code view and replace:

  allowChatInputTo:
    - role:administrator

with:

  allowChatInputTo:
    - role:nobody

Since that role doesn’t exist it will effectively hide the chat box to everyone.

3 Likes

Hi, everyone.

I read that it’s not possible to load a page other than the Overview when the MainUI is loaded. Is it possible to change the tabs? I want to define my own instead of the default Location, Equipment, Properties.

No. You can set those tabs to be displayed or not. but you cannot reassign them.

@JustinG Hey Justin. Can you explain how to do this? I can’t find any way to hide the Tabs.

EDIT: Not to worry - I found it :slight_smile:

Thanks for the reply, @JustinG.
Do you know why is it so restrictive?

OH is a community project with no explicit roadmap. So, the short answer is that no one has taken the time to add this feature or made a convincing case to one of the developers as to why it should be added.

In my estimation this would be a large change, but not an insurmountable one. So, I don’t think its a technical limitation (although, I’ve been wrong before).