Getting started developing for OH

I am using OH for about a year now, and, as I am familiar with Java, and am programming on and off since years, I would like to contribute to openhab. I managed to get the Eclipse environment installed on my pc, so from the technical side, I am all set to start developing.
However: I have never worked on a open-source project, especially not such a large one, so I really am quite lost in the code. I mean I kind of understand what certain parts do, but I simply does not know what happens where.
The thing I wanted to help developing was the blockly interface, as it is missing functionality.
So I would be happy for any advice. How do I get started? What goes where? What are some good practices, especially for testing?
I am happy to put some work into this, but I feel, like I will need some help to get up to speed.

Thank you for any help, I am looking forward to becoming a openhab dev! :nerd_face:

1 Like

See [Blockly] Add missing openHAB calls and features · Issue #810 · openhab/openhab-webui · GitHub for the issue and Initial Blockly updates by bigbasec · Pull Request #875 · openhab/openhab-webui · GitHub for the work in progress.

For the most part, Blockly is something that only lives in the browser. So your Java knowledge isn’t going to take you very far. But it’s actually not all that hard to work out. Essentially what one needs to do is define a block that provides a bit of rules functionality and then provide the JavaScript rules code that corresponds with that code.

There is already a good start on the updates in that PR but they sure could use some more testing and review. And there are plenty calls missing that you could help with.

The best way to get started is to start small. Look at the issues and open PRs. Look through the code. If you see an issue that is small that no one else is working on, add a comment to that issue and explain what your idea for addressing it might be. Submit a PR against the issue. Respond to feedback and be sure to make requested changes. Don’t be offended if things don’t necessarily go your way and your proposed solution doesn’t get accepted right away.

For the most part you want to start small and build your reputation as a reliable contributor. Over time as your reputation builds you can take on more responsibilities and bigger changes.

As a general map, openHAB is made of a whole bunch of repos, each with their own set of maintainers (sometimes there is overlap) and sometimes their own set of skills and even programming languages (e.g. the iOS phone app is Swift, Android app is Kotlin, Cloud Server is Node.js, webuis are JavaScript, addons and core are Java, etc.). Look around openHAB · GitHub and you will see them all and it should be relatively apparent what each repo provides.

Thank you for offering to help, java developers welcome!!!
Rich gave some good advice, hit github and get to know the team, I don’t code for OpenHAB but still enjoy following the development on github, these guys are awesome and super friendly

Thank you for the pointers!
I will definitly look into those tipps and hope to be contributing soon.

This topic was automatically closed 41 days after the last reply. New replies are no longer allowed.