Documenting openHAB 2

Hi @pahansen, when you look into the details you will find most of what @rlkoshak is there (beside that some of the headings changed and some minor changes to the structure).

Current the struture and status looks like:

  1. Tutorials - looks ok
    1.1 Demo Setup - looks ok
    1.2 Tutorial (Beginner)
    1.2.1 Overview - *in work by Joerg
    1.2.2 User interfaces - in work by Joerg
    1.2.3 Installing an Extension - in work by Joerg
    1.2.4 Working with Extensions - in work by Joerg
    1.2.5 Working with rules and script - in work by Joerg
    1.2.6 Looking at the Logs - in work by Joerg
    1.3 Migration from 1.x - looks ok
  2. User manual
    2.1 Concepts - looks ok
    2.2 Installation - looks ok
    2.3 Configuration - not much content, but what is there looks ok.
    2.3 Administration - looks ok
    2.4 Features
    2.4.1 Overview - empty
    2.4.2 Sitemaps - empty, but awating PR from Thomas
    2.4.3 Persistence - empty
    2.4.4 Automation (Rules) - looks ok
    2.5 Add-ons
    2.6 Appendix
    2.6.1 Downloads - looks ok
    2.6.2 Examples - empty
    2.6.3 Troubleshooting - not much content
    2.6.4. Contributing - looks ok

I think the general structure is ok for the moment. Of course there could be more polishing done, but getting rid of the empy page might be more important.

As you can see from above, most unfinished work is in chapter “2.4 Features” in which things&items, rules, persistence, … are described. So perhabs you want to start there?

Regarding change process: @ThomDietrich suggested to create a GitHub ticket to indicate that you work on a subject. Now that the editor community is growing, it seems to makes sense to start using it.

You don’t have to. You’ll write text in markdown syntax and a lot of editors, including the github online editor, support rendering a preview. As long as you use standard markdown elements (recommended anyway) and take other articles as an example, you should be fine.

If you still would like to check your work through Jekyll, you can use a virtual machine I just created yesterday: GitHub - openhab/openhab-docs: This repository contains the documentation for openHAB.

My approach for missing information was, that the enduser should not be distracted by a bunch of “[missing]” in between. In my last article, I included <!-- Note to authors: ....--> comments and created an Issues ticket after the article was finished:

1 Like

Wow, OK.

I really have very little understanding of how markup works so will have to look into that. I also didn’t realise @luotaus had started some sections so I might just PM him what notes I had already written there and see if they’re of any use to him.

I’m not a guru with the persistence stuff, or trust my working enough to produce any examples for those sections.

I’ll have a look through each page and see if I can find anywhere else to add things, but my level of understanding of OH might reach its limit, heh.

My idea for chapter 1.2 (Beginner Tutorial) is to have a step-by-step guide for newbies which should help them to survive the first hour after installation. It shows the complete configuration workflow from installing a binding, adding things/items/rules to defining the UI. But it will focus more on the practical work and not so much on principals or concepts.

In my opinion, the basics like syntax, concepts, … should be handled in chapter 2.4. Based on Rich’s suggestion here I propose the following structure:

2.4 Features
2.4.1 Overview
2.4.2 GUI vs. Text Files Based Configuration
2.4.3 Things and Items
2.4.2 Sitemaps
2.4.3 Persistence
2.4.4 Automation (Rules)

While talking about the structure: I am not sure what to put into chapter 2.3 Configuration. I assume it was supposed as a sub-chapter of „2.2 Installation“ to describe backend configurations (like ports, ssl,… ) and by mistake moved one level. Or it was supposed to describe the overall configuration but then it would be in conflict with the current chapter „2.4 Features“. I think it makes sense to move the current „2.3 Configuration“ one level down below „2.2 Installation“.

And when changing the structure, I also propose to move chapter „Administration“ behind the config/feature chapters. So in summary, chapter 2 could have this high level structure:

2. User manual
2.1 Concepts
2.2 Installation 
2.3 Features
2.4 Administration
2.5 Add-ons
2.6 Appendix

What do you think?

Hi Paul, don’t worry, it looks harder than it actually is. Jekyll took me 5 min to install on my Mac following the Readme. Markup is not more complicated as writing a post here in the forum (and as suggested by @ThomDietrich, just copy&paste the complicated stuff from other documents). The most difficult part for me was (and still is) to commit my changes to GitHub. Are you familiar with GitHub?

The items chapter is still empty, so perhaps this is a good starting point for you?

Hello Joerg,
I agree with all of your assumptions and conclusions. In fact, the conflict between “Features” and “Configuration” already came up in another issue. A related topic was posted here by @rlkoshak. Sorry for not referencing these.

Sounds great. Are you thinking about guiding the user through one practical example (Problematic because everyone has different hardware, ergo will use different bindings) or is your idea more of a general walkthrough (with the danger of being to abstract)?

Agreed, even though, the right place inside of “Installation” will have to be decided by topic. This might get a bit tricky because of platform independent and platform specific topics… To give an example: There is a chapter on samba sharing in the Raspberry Pi article. Should it be copied to the “Linux” article? Should it be moved to the “Linux” article? Should it get it’s own menu entry under Configuration?

There will probably be some changes later but let’s just start in this direction? :wink:
@rlkoshak: you aleady volunteered to create the new structure and find a nice catchy name for Configuration+Features. Might I ask if there are any news?

My idea to address this was that we would have a demo config which included a collection of bindings, mainly non-hardware based bindings, and the tutorial/user manual would reference that demo where examples are needed. This ties both the demo together with manual, provides a means for documenting the demo config, and gives the user a concrete working example to play with as they go through the guide.

In fact, one of my ideas was the user’s guide would walk the user through creating the demo config from scratch so if they followed everything they would have the same thing as the downloaded demo config.

It would be best not to tie the demo to any hardware specific binding though which raises a bit of a problem as I don’t think we can completely ignore the hardware based bindings in the User Guide. That is why we are all here after all.

I vote for yes. At best the Raspberry Pi specific info should be a subsection or chapter in the Linux article. Raspbian IS Linux so everything there should apply. We don’t want to have to document it twice. I question the need to have a separate Pi page in the first place, unless we are truly starting from the point of writing the Image to the SD card forward. In which case as soon as the article gets to the apt-get install stage it should point at the Linux article.

One thing that kai is very adamant about is DRY (Don’t Repeat Yourself) in the docs.

I remember signing up for the catchy name but not the reorg.

I’ll have to read everything that has been written so far and go from there. I wonder if it makes more sense just to get the To Do articles populated before worrying too much about structure. I foresee conflicts galore with people writing an article only to find that page has moved or been combined with another page. But if everyone things we should start on the reorg I’ll do that instead of taking some article off the list that can be written without too much actual OH2 experience (I’ve still not switched over so my practical knowledge is still pretty low).

Given that maybe I’d be better used by doing structural and organizational edits and changes. Thoughts?

As for the section name, my brain is refusing the be creative. I’ve got nothing that isn’t as equally as lame as “Working with openHAB”.

  • openHAB in Practice
  • Building the Home Automation
  • Constructing the Automation
  • Behaviors and User Interface

The problem I’m having is that there are really two to three levels of configuration. You have base openHAB configuration which would include things like the reverse proxy tutorial, installation, Designer installation, SAMBA config, logging, and all that type of stuff.

Then you have the configuration of the interface/interaction of openHAB with the outside world (Things, Items, and Bindings).

Then you have the “configuration” which is actually the user’s constructing their custom home automation system (rules, persistence, sitemap). Persistence is kind of in both this and the interface/interaction area so could be put in either place.
NOTE: I notice that there are a lot of capitalized "OpenHAB"s in the documents. I think it was decided in one of these documentation threads that openHAB should have an uncapitalized “o” in all cases, even when starting a sentence. It’s a nit but being consistent is important.

I’m having difficulty finding descriptive names for all three categories that makes sense.

:thumbsup:

Damn, I should have chosen another example. But okay: You maybe saw, that I rewrote the Raspberry Pi article this weekend. While there are a few RPi specific details in the first third, the rest is completely RPi-unrelated linux stuff. In the sources you can even find comments telling author to move this chapter to Linux. I was going to work on the general linux article next. 48 hours ago I was mainly focused on getting information to text.

Okay my bad. I think it got clear, that there are a few needed structure changes we all agree on. Let’s have them in docs as soon as possible, so contributors have a better feeling of what’s there, what’s missing, what’s the general idea.
@luotaus would you like to create a PR?
@rlkoshak I actually think you of all should work on documentation :slight_smile: But of course that’s up to you

Yes I can confirm, that only “openHAB”/“openHAB 2” is to be used. I already got scolded by Kai :wink:

OK, That is easier for me right now anyway. I’ll pick an incomplete page, create an issue and start pounding the keyboard.

This may give me the kick I need to start moving over to OH 2 anyway. I’ve been dragging my feet while I learn me some ansible, not to mention studying for the CISSP (yuck).

[quote=“luotaus, post:121, topic:10568, full:true”]
The most difficult part for me was (and still is) to commit my changes to GitHub. Are you familiar with GitHub?[/quote] I wasn’t, not really. But i’ve done some reading and think I understand the basic concepts. Fork the original project, add/edit my work, then make a pull request from the original that applies to the work I want pulled over.

I actually found the simplest method for me to work with this was to use Atom on my PC and also install git desktop so I could have a local copy of the openhab/openhab-docs repository. This let me open/copy existing .md files and then work on my items.md file and commit this work to my fork.

I’ve had a crack at this and have a new pull request pending. It may not be perfect, but it’s something at least.

1 Like

Just created a PR for two chapters of the beginner guide and hope this gives an idea in which way I suggest the tutorial should develop (at least for the moment).

Unless someone thinks this is totally the wrong approach, I would continue with the next chapter.

Hey @luotaus, thanks for your contribution. I really like the detailed instructions with screenshots.

In the meantime I’m working on the Linux installation article and @peaeater wants to work on the references in the OH1.8 wiki. @rlkoshak I can’t directly mention you in GitHub issues, hope you are still receiving the notification.

Hey guys - super fresh at the project, but jumping right into OH2. Would be happy to help in any efforts in between busy work and family life.

Linux sys admin with a “knack” for figuring out and tweaking JAVA (but no developer by any means). Also JS, PHP, Python, and Ruby if I have to jump into the pits of hell that day. Also BASH scripting (obvi)

EDIT: I’m speaking in terms of documentation and testing (thus the post in this thread) I don’t think I have the chops to actually help any dev.

1 Like

It’s a long story that goes back to when these forums were on the Google site. It looks like you found me though. For everyone else, I’m rkoshak on GitHub.

What happened was a mixup when we first started this forum. All the users were moved over as is (i.e. with their google usernames) and there was confusion about whether we needed to change our names immediately or if we had some time. By the time we all discovered we needed to do it right away or else lose our link to our old postings I had already written a few dozen postings and didn’t want to lose my connection to them. So I kept my name instead of changing it to what I would have (I usually go by paperrhino on forums like these).

With well over 1000 posts now I think I’m pretty well stuck.

I’ll be on a city trip to Prague over the weekend. That’s why I submitted the current version of the Linux/RaspberryPi installation article as PR https://github.com/openhab/openhab-docs/pull/73
Would be great if one-two of you found the time to proof read and comment on it. Thanks!

@pr0f Welcome to the community! Which kind of work would you be interested in? For the article referenced above (mainly this one) it would be great to have an english native speaker proof reading. I’m german, so there might be a few errors in my languaging =)

1 Like

@ThomDietrich I’d be happy to proof read. I’m not sure I’ll be good for more than testing / proofreading until I get my head wrapped around the architecture of the tool. Heck, I’m still glassy eyed and drooling from trying to read general concepts from OH1 that I need to know to work the product! I’ll check out the link and read over it as I get time.

Glad to be of help.

First of all nice work and respect for all your hard work and effort.
@rlkoshak I’m looking forward for the documentation as you suggested.

I’m not sure but is there already documentation like you suggested in your post, and what this topic is … available to get started with.openHAB2.

At this moment I’m reading this
OH 2 Documentation - as guide line and more information
https://bipphilippe.gitbooks.io/openhab2-compendium/content/ - BOOK

But like already mentioned it is sometimes confusing … too much info.
So I’m really looking forward to the different levels of information for beginner till develloper.

@krismaussen, The official documentation page you should be looking at can be found at http://docs.openhab.org/introduction.html

1 Like

Hello everyone.

It has been a while since we discussed documentation related details here. That’s mainly because all discussions in this area shifted over to the GitHub Issue Tracker.

The upcoming release of openHAB 2.0 will certainly create a certain attention and openHAB doesn’t have to hide from that. Sadly many new users are scared away by the lack or the quality of the documentation state. This covers both technical documentation, binding READMEs as well as Tutorials and Examples.

With the feature freeze for openHAB 2.0 GA in place, it would be amazing if everyone reading this could consider solving at least one of the following issues! :wink:

  • All interesting issues: Link

  • Issues that can’t be solved because of an open question: Link

  • All issues just asking to write one small text from given information: Link

I want to mention a few users which I remember as being helpful and explaining to others or that have previously offered their help. Yes I did not forget about You! :wink:
No special order: @skatun @sihui @robin.muellerbady @jaydee73 @Branden_Smale @Tom_Still @UglyKidJoe @Max_G @erland_lestander @sam_calmes7 @RHINESEL @jlemmer @DocFraggle @elias_gabrielsson @rtvb @Dim @david @kubawolanin

Thank you all for helping others and giving back to this awesome community! :tada: :sunny: :monkey:

2 Likes

Has there been any discussion or thought about taking the repo at https://github.com/openhab/openhab1-addons.wiki.git (“the Wiki”) and treating it as the git repo that it is, forking it or just making a gh-pages branch, git mv'ing each page of value into a convention that makes it useful for the overall documentation effort? I see it as a valuable goal to obsolete the wiki altogether for openHAB 2 users, and in the process fold its contents into the whole build process for docs.openhab.org. Just curious on your thoughts about corralling all relevant documentation into the fewest possible places so it can appear happily in the end destination.

In the process, outdated installation and configuration instructions could be corrected, made consistent and streamlined, which is currently a source of frustration for many.

The old wiki would then be left in place with a big “we’ve moved” notice, and instructions for future edits in the new home. Interersted in your thoughts/opinions.

1 Like