What basic skills do I need to use openHAB?

I’m almost too embarrassed to post here. I’m quite proficient at programming Arduinos and have built many WiFi IoT devices all activated using simple single line web browser http://… type commands… using use C+ and Arduino extensions with the Arduino IDE and was easy to learn however… I’ve spent weeks studying the openHAB tutorials but… when I see a line of code or some command in the tutorials I have no idea how to enter it or where to put it or what type editor (like an IDE) to use. I have no Dubian, Linux, Karaf, Jave, Eclipse, openHAB command line experience and can’t tell one platform syntax from the other. in the tutorials.

Here is where I am so far. I am running the openHAB run-time on Windows 10. I understand the bindings, things and items concept. I used PaperUI to install Network bindings. I see my little WiFi Arduino device in Control window w/ two Channeled “items” as (items) on line and time. When I unplug my device it goes off line and ping goes to -1 (no ping i assume), so I know I can do some things with the PaperUI… very pleased so far. Next, I installed HTTP bindings, with the intention to setup a thing/item to issue a simple one line http;//… command to turn on my device, but the binding command instructions were too complicated for my knowledge lever at this time.

Here is my question. Where do I start. What skills do I need. Is there a thing such as an IDE as on the Arduino? What language do I need to study, Java? Do I need to learn Linux, Debian, Eclipse, Java, or whatever. For instance the documentation says the use some long line of alphabet soup but I don’t know where it goes or whether it it language code text or a command line. Is there an IDE access from within the openHAB run-time? Can I execute Linux commands from the run-time? I’m totally lost at this point.

I have a Rasberry PI on order that I will use for the run-time. Is there a way to do all of the above on (remote) a headless Rasberry PI from my Win 10 PC keyboard and monitor?

1 Like

https://docs.openhab.org/tutorials/beginner/
https://www.makeuseof.com/tag/getting-started-openhab-home-automation-raspberry-pi/

A easy way is to start with a windows installation https://docs.openhab.org/installation/windows.html

or with openHABian https://docs.openhab.org/installation/openhabian.html

Start with a Demo initial Setup.

https://docs.openhab.org/configuration/editors.html

Try it out.

Visual Studio Code with “openHAB extensions” is the official editor/IDE. Take a look here for details:

https://docs.openhab.org/configuration/editors.html#openhab-vscode

That’s a hard question to answer because it depends on where you want to go. But from what you describe it sounds like you are already on the right track. The HTTP, Exec, TCP, and Serial bindings are some of the more challenging bindings to get working so I’m not sure HTTP would be a good choice for your second binding. Working with one of the Weather bindings and Astro might be a better choice for a second binding to experiment with.

One thing to realize which is hinted at above, is that the HTTP binding is a 1.x binding. This means there are no Things and you cannot do much of anything with this binding through PaperUI beyond the installation of the binding.

  • perseverance
  • willingness to learn
  • willingness to experiment
  • willingness to ask questions on the forum
  • ability to read docs and examples and apply them to your situation

From a technical perspective

  • basic programming concepts (if, else, the importance of syntax, variables)
  • the basics of the technology you want to use (i.e. if you are using the HTTP binding, read up on how HTTP works), you don’t have to be an expert but should know at a high level how it works
  • basic administration skills (command line navigation, editing text files, permissions)

Everything else I think can be learned as you go.

VSCode with the openHAB extension.

https://docs.openhab.org/configuration/editors.html#openhab-vscode

Note that the IDE will necessarily be more complex than the Arduino IDE as OH is a much more complex environment.

It wouldn’t hurt but it is not necessary. Knowing the basics of how pretty much any programming language works should give you the skills necessary to pick up the Rules DSL. Java would be a good choice as you can access Java classes from inside the Rules DSL, but 95% of the time you will never have to worry about that.

If you plan on running it on a Linux machine I would recommend learning the basics of Linux. You will want to be able to navigate the machine from a terminal and perform basic operations like changing permissions, editing files, etc. However, if you plan on running on Windows or some other OS, you will want the same skills on that platform.

The majority of OH users run OH on Linux so most of the tutorials and examples you will find will be written from a Linux perspective.

This shows a lack of understanding and/or experience with OH and some OH concepts. I can’t tell you what you are referring to specifically but each part of OH has its own syntax and its own place to be stored. So, depending on what you were looking at if you go to that section of the Docs it will tell you where the text will go. For example, if you were looking at a Thing definition the Things doc says:

Things can also be defined manually by creating .things configuration text files. These files are stored in the things folder under the openHAB configuration path, e.g. /etc/openhab2/things/ or openhab2/conf/things.

But you will need to be able to know and understand what it is you are looking at to know where to look in the docs or ask the right questions on this forum.

I don’t understand the question.

Without further explanation, I’m hesitant to answer. There are multiple ways to interpret this question.

I highly recommend openHABian which will perform and/or provide scripts to do all the installation, configuration, and maintenance of the RPi and openHAB and common apps most users use alongside OH. It will give you the lowest barrior to entry and let you avoid the Linux command line as much as is practical.

Yes and this is how most users operate.

With openHABian you will have ssh set up so you can use Putty to log into a terminal on your RPi. It sets up shared folders you can mount on your Windows machine and you can run VSCode on your Windows machine. Most everything else will be web based and accesible through the browser.

Do not have any false impressions. Home automation is hard and complex. But there are dozens of very active users on this forum who came to OH with far less technical skills than you have and who have been very successful with OH. I’m positive you will be successful too.

1 Like

I’m impressed with the openHAB Community Forum and your immediate response late last night and this detailed followup today. Your comments are enlightening, reassuring, and realistic. I dug out my old Ubuntu book and started studying the Linux command syntax and it is all coming back to me. I loaded Visual Studio last night. I just cranking up the new Raspberry PI. Let the fun begin. Thanks Rich.

3 Likes

As @rlkoshak said just keep in going.

This is my setup and it makes a lot things easier to handle but there are a lot different Setups you can use.

There are some beginner tutorials guiding step by step. Maybe they help you getting more familiar with openhab.

But as @rlkoshak said the exec binding is a bit challenging.

Just an FYI, Visual Studio Code, not VS.

My skill list is:

  • Spelling (you know what I’m talking about)
  • trying
  • starting or reverting to simple
  • forum search/asking
  • luck?

Rich, as a noob of about 2weeks experience, here’s my take on a pi / windows setup;

  • do the initial setting of the pi with a keyboard and monitor attached, saves a lot of hassles.

  • get your router to assign a reserved IP address to the pi, as you need to know where it lives; for instance I set mine to 192.168.0.20

  • get samba setup on the pi, from there you can then access most of the required config files (items, sitemaps, persistence etc) via windows file explorer by going to the IP address, ie. \192.168.0.20

  • get Putty on your windows machine and get it connected to the pi, then you can do the command-line stuff from there.

  • learn how to edit a file via putty using vim; main things are hitting “insert” to edit, “esc” to get out of editing, and typing “:wq” to save and quit

  • get a couple of very basic items and a sitemap together via textfile definitions; I got fed up and wiped openhab the first attempt when I couldn’t get anything working/appearing via paperui, turned out most of the things I was trying to do aren’t supported by it. I’ve had much better progress now that I’ve figured out where/how to edit the definition files manually via samba.

  • note that there’s (at least) two different levels of command-line here, if a tutorial says console or karaf you have to start a special console-mode thing by typing “openhab-cli console”, and entering the user/pass “openhab:habopen”. You might need this for example to find out whether a binding is installed and active

If you like the Arduino IDE you will like Visual Studio Code with the openhab plugin.

I also strongly suggest installing openhabianpi. Don’t set it up with a static ip. You can, if you want, reserve an ip address for it, but you shouldn’t have to. If you do that, all you need to do is the following:

Install Visual Studio Code with the openhab plugin on your windows machine.

From Windows explorer you should be able to browse the network and see all the openhabianpi folders (if not, \openhabianpi in an explorer address bar). You can edit those files directly and should associate them with Visual Studio Code.

You will want to install putty on your windows machine. Then sftp openhabianpi. openhabian/openhabian. You will then be at a linux command prompt and can work directly on the machine if you like, but you shouldn’t have to too often.

From your web browser go to openhabianpi:8080 and you will be in.

I strongly suggest using a static ip. It doesn’t matter if it is given by dhcp or manually assigned, but never ever run a server without a known ip!

Dns is nice, but dns may fail as well.

(my knowledge and experience is strictly ipv4 based)

nano and pico are much more beginner friendly to use, and I say that as a day to day vim user.

That is a good approach. After you get some more experience, if you are willing, the Beginner’s Tutorial needs a whole lot of attention, preferably from someone who was recently a beginner themselves.

Rich, if you left the tutorial to me it would go through about 20 different revisions, get wiped accidentally, rebuilt five times, and still not work! ; )