I’m in the process of getting a nice overall OH3 demo at demo.openhab.org.
The goal is to have a set of comprehensive examples so people can log in (username: demo, password: demo), explore the settings, and figure out how everything is made, so it shouldn’t become too complex either.
I’ve started from the openHAB 2 demo, and so far I’ve added the following:
Items
semantic tags to the items to build a model (from the OH2 demo items)
a smoke alarm in the kitchen
fake positions for the 2 kids
a pin code item
Rules
A fairly elaborate Blockly script (given the current capabilities) to run a function for each room, controlling the heating and maintain temperatures in a given range - unless there’s a open window in the room
A rule to change positions for the 2 kids every 5 seconds - also with Blockly - similar to the virtual meetup demo
a no-script rule to react to the pin code changing and setting Presence to OFF if it’s set to 1234
4 scripts in JS, DSL, Python & Groovy all counting the number of open windows and update an item
Home page
An overview page with:
big buttons for an presence system, including a keypad widget to switch from “away” to “home”
cells to launch general scenes
cards to navigate to other pages popup or show them in a popup
TODO: a prominent banner displayed dynamically when the smoke alarm is triggered in the kitchen (eventually with a button to dismiss it)
Reordered location cards with separators & background images (all sourced from commons.wikimedia.org because they’re CC-licensed)
TODO: customizations for the equipment/properties cards
Other pages
A typical layout with temperature cards & trend lines, and other links to see heatings, windows, and the thermostat setpoint (need to work on it)
4 charts pages (with some ECharts parameters that can only be set in YAML):
aggregate daily chart with comparison to the previous day
combined chart with a line chart (temperature) and a marked area (heating) on a single page
weekly heatmap
calendar
A page to run the 4 script language example rules above with buttons, and display the result
TODO: a floor plan
TODO: a page for the astro items, maybe with relative times for the sunrise/sunset: “4 hours ago”, “in 7 hours”
Is it possible to make a “beginner” demo and an “advanced” demo? I have a general concern (translation: not just about openHAB) that technology can be overwhelming when it’s “too much, too fast”.
For beginners, I’d imagine a relatively simple config with a few lights, a smart plug with a fan, a motion/temp sensor, and an Amazon Alexa or Google Assistant speaker. Basically, something close to what they might already have in their homes. I think that will help people to visualize what OH can do for them, and enable them to poke around the demo without too much information getting in the way.
This is kind of meta, but I’d like to see some of the demo reflected in the Getting Started Tutorial. That way the users can look at the demo to see it working and look at the tutorial for how it was built. Obviously everything can’t be there because the demo isn’t going to be connected to a HUE Hub or Zwave controller, but I think it would be awesome if there was that synergy between the two.
Way back in the 2.0 times I had an idea to write a tutorial that did just that but someone else started a tutorial so I backed off.
Include some Conditions to help demonstrate what they are all about, at least one as a Script Condition, maybe the “unless there’s an open window in the room” could be done in the condition?
A rule with an action that calls another rule (Script probably) and possibly a disable/enable Action. I think this is a super powerful capability that will become very important to users as they learn about it.
For JS, Python, and Groovy an import of at least one library function. This gets somewhat complicated as there will be no way to actually expose the library as part of the demo. Maybe it can be a simple function (sendCommandIfDifferent for example) which could be included as comments in the Script Action with instructions for where to put it.
One or two uses of a custom default widget
Those are the things that come to mind based on the sorts of things I’ve been helping people with on the forum.
“Realistic” is highly relative to a user’s capabilities at the point in time where they’re trying the demo. I don’t mean to say that what you’ve suggested is unreasonable, but that it depends on the person. Hence my suggestion to show that openHAB can be as little or as much as you can make it.
i think its realistic that rooms have more lights than just one. Music stuff is also something everyone has and i think batteries as well, because many people start with HUE Stuff to dive into smart home and now searching for more. i don’t think people with just some smart home bulbs controlled by alexa or any App are searching for something like openhab. openhab users look for advanced stuff i think and so it needs to be in the demo, but that are my thoughts.
( for the demo: first floor could be an easy setup and ground floor a more advanced one, or there is a Page with advanced Stuff, where users can see how customizable openhab could be [Widgets,…] )
For instance if an underlying device breaks I’d like to get a notfication on my home overview page that some action may be needed.
E.g. in case any “thing” goes into state “OFFLINE” I’d like to have that information prominently presented and maybe also some notification (mail, instant messaging) if it stays that way for a certain amount of time.
The notification part may be tricky in the demo but maybe one could just uncomment the actual notification but leave the code to take a look at.
I like your idea of the ‘general scenes’ and would add a scene ‘home cinema preparation’
-> Dim the lights to 25%
-> close the blinds
-> start the TV or Projector
-> if available move down the ceiling-projection-screen
-> power on the sound-system and select the right channel and volume
-> while all this happens, play some intro-sound like MGM- or THX-Demo or just some elevator-music
All this together shows how to combine many simple things to one powerful scene.
But does having more than one light in the demo add anything to what the users can learn from the demo? Maybe it comes down to the purpose of the demo. Is it primarily marketing or is it primarily instructional. If it’s marketing than I agree, it should be as complete and realistic as possible.
However, if it’s primarily instructional, than it should be spare and not repeat anything that isn’t necessary to repeat. Adding more just buries the user is configuration and it becomes challenging to find the examples for what the user specifically wants to achieve among all the noise.
Not me.
That doesn’t actually do anything except separate the Pages and maybe the Model. All the Items and Rules and everything else will be all merged together.
Rich already mentioned it kind of:
The demo page should contains what the tutorial explains.
That would easy up contributing to the documentation as well
Otherwise you either create all screenshots from the part you’re contributing new or you try to configure your system in such a way that the items / UI are similar to what’s already existing.
I remember having a hard time by contributing to the beginners tutorial for oh2. It felt like i’ve created the thing “John’s mobile” a hundred times
Yeah, this is what I was trying to get at earlier. But even from a marketing standpoint, I would want to show you that it can be as simple or complex as you want it to be.
For what it’s worth, I came to OH specifically for lighting control, and I feel that I benefited from limiting myself to those challenges. Only after that did I discover that my Chromecasts and Harmony Hubs could be added…and then it was off to the races.
I have everything in place (locations and such.
But how to create the Map page?
Any link you could provide to get a map like in the demo?
I am using successfully openhstreetmap on habpanel, but would like to get the “Positions” code from the demo.
Any help would be greatly appreciated.
You go to Pages then the ‘+’ button then ‘Create Map’.
Or, you can see me doing it live here: https://youtu.be/pwZ8AOwRDEk?t=4946
That part of the demo server is basically what I did during this meetup, just copied over
Hi Yannik, yep creating the map itself is as simple as that. However retrieving the GPS coordinates doesn’t seem to be easy for the thing.
I have used the gpstracker binding sometime ago for tracking with Owntracks but it turned out not to be very reliable and pretty slow for that. (Especially Geofencing didn’t work because it took much to long to report the border crossing to openhab).
Any recommendation or did you try some other approach?