This tutorial series refers to the use of the openhab_bridge between ROS and openHAB, which works in both directions.
It is assumed that one has already mastered the basics from the ROS tutorials.
Core openhab_bridge Tutorials
openHAB
1. Understanding the openHAB Event Bus
- This tutorial walks you through understanding the openHAB Event Bus. So you will get a deeper understanding on the basic concept of openHAB, Things, Channels, Bindings, Items and Links, as well as Events and in particular Item Events, Item Types, Command Types.
2. Installing the openhab_static_examples
- This tutorial walks you through installing the openhab_static_examples in your openHAB environment. This could be useful to understand the openhab_bridge.
3. Examining the openhab_static_examples
- This tutorial examines the openhab_static_examples. So you should get a deeper understanding to the openHAB Item Types.
openHAB Bridge
- This tutorial will guide you through the openhab_msgs investigation. It shows you which fields are used in each message type and how to work with them.
2. Examining the openhab_bridge with HABApp (Python)
- This tutorial will guide you through the openhab_bridge (with HABApp) investigation. It shows how the program is structured, which publishers and subscribers are generated and how the openhab_msgs are used for this.
3. Examining the openhab_bridge without HABApp (Python)
- This tutorial will guide you through the openhab_bridge (without HABApp in Python) investigation. It shows how the program is structured, which publishers and subscribers are generated and how the openhab_msgs are used for this.
4. Examining the openhab_bridge with C++ (C++)
- This tutorial will guide you through the openhab_bridge (with C++) investigation. It shows how the program is structured, which publishers and subscribers are generated and how the openhab_msgs are used for this.
5. Installing and Examining the openhab_bridge_subscriber
- This tutorial will guide you through the openhab_bridge_subscriber investigation. We will subscribe States from openHAB for each item type on the example of openhab_static_examples.
6. Installing and Examining the openhab_bridge_publisher
- This tutorial will guide you through the openhab_bridge_publisher investigation. We will publish Commands to openHAB for each item type on the example of openhab_static_examples.
7. Examining the openhab_bridge Nodes
- This tutorial will guide you through the openhab_bridge nodes investigation. It shows which nodes will be created running the openhab_bridge with the openhab_static_examples.
8. Examining the openhab_bridge Topics
- This tutorial will guide you through the openhab_bridge topics investigation. It shows which topics will be created running the openhab_bridge with the openhab_static_examples.
ROS Python (rospy)
Subscriber
1. Writing and examining a Simple Subscriber for the Color Item Type (Python)
- This tutorial covers how to write a subscriber node in python to subscribe a Color Item.
2. Writing and examining a Simple Subscriber for the Contact Item Type (Python)
- This tutorial covers how to write a subscriber node in python to subscribe a Contact Item.
3. Writing and examining a Simple Subscriber for the DateTime Item Type (Python)
This tutorial covers how to write a subscriber node in python to subscribe a DateTime Item.
4. Writing and examining a Simple Subscriber for the Dimmer Item Type (Python)
- This tutorial covers how to write a subscriber node in python to subscribe a Dimmer Item.
5. Writing and examining a Simple Subscriber for the Group Item Type (Python)
- This tutorial covers how to write a subscriber node in python to subscribe a Group Item.
6. Writing and examining a Simple Subscriber for the Image Item Type (Python)
- This tutorial covers how to write a subscriber node in python to subscribe a Image Item.
7. Writing and examining a Simple Subscriber for the Location Item Type (Python)
- This tutorial covers how to write a subscriber node in python to subscribe a Location Item.
8. Writing and examining a Simple Subscriber for the Number Item Type (Python)
- This tutorial covers how to write a subscriber node in python to subscribe a Number Item.
9. Writing and examining a Simple Subscriber for the Player Item Type (Python)
- This tutorial covers how to write a subscriber node in python to subscribe a Player Item.
10. Writing and examining a Simple Subscriber for the Rollershutter Item Type (Python)
- This tutorial covers how to write a subscriber node in python to subscribe a Rollershutter Item.
11. Writing and examining a Simple Subscriber for the String Item Type (Python)
- This tutorial covers how to write a subscriber node in python to subscribe a String Item.
12. Writing and examining a Simple Subscriber for the Switch Item Type (Python)
- This tutorial covers how to write a subscriber node in python to subscribe a Switch Item.
13. Writing and examining a Simple Subscriber for multiple Items of a Thing (Python)
- This tutorial covers how to write a subscriber node in python to subscribe for multiple Items of a Thing.
Publisher
1. Writing and examining a Simple Publisher for the Color Item Type (Python)
- This tutorial covers how to write a publisher node in python to subscribe a Color Item.
2. Writing and examining a Simple Publisher for the Contact Item Type (Python)
- This tutorial covers how to write a publisher node in python to subscribe a Contact Item.
3. Writing and examining a Simple Publisher for the DateTime Item Type (Python)
This tutorial covers how to write a publisher node in python to subscribe a DateTime Item.
4. Writing and examining a Simple Publisher for the Dimmer Item Type (Python)
- This tutorial covers how to write a publisher node in python to subscribe a Dimmer Item.
5. Writing and examining a Simple Publisher for the Image Item Type (Python)
- This tutorial covers how to write a publisher node in python to subscribe a Image Item.
6. Writing and examining a Simple Publisher for the Location Item Type (Python)
- This tutorial covers how to write a publisher node in python to subscribe a Location Item.
7. Writing and examining a Simple Publisher for the Number Item Type (Python)
- This tutorial covers how to write a publisher node in python to subscribe a Number Item.
8. Writing and examining a Simple Publisher for the Player Item Type (Python)
- This tutorial covers how to write a publisher node in python to subscribe a Player Item.
9. Writing and examining a Simple Publisher for the Rollershutter Item Type (Python)
- This tutorial covers how to write a publisher node in python to subscribe a Rollershutter Item.
10. Writing and examining a Simple Publisher for the String Item Type (Python)
- This tutorial covers how to write a publisher node in python to subscribe a String Item.
11. Writing and examining a Simple Publisher for the Switch Item Type (Python)
- This tutorial covers how to write a publisher node in python to subscribe a Switch Item.
12. Writing and examining a Simple Publisher for multiple Items of a Thing (Python)
- This tutorial covers how to write a publisher node in python to subscribe for multiple Items of a Thing.
ROS C++ (roscpp)
Subscriber
1. Writing and examining a Simple Subscriber for the Color Item Type (C++)
- This tutorial covers how to write a subscriber node in C++ to subscribe a Color Item.
2. Writing and examining a Simple Subscriber for the Contact Item Type (C++)
- This tutorial covers how to write a subscriber node in C++ to subscribe a Contact Item.
3. Writing and examining a Simple Subscriber for the DateTime Item Type (C++)
This tutorial covers how to write a subscriber node in C++ to subscribe a DateTime Item.
4. Writing and examining a Simple Subscriber for the Dimmer Item Type (C++)
- This tutorial covers how to write a subscriber node in C++ to subscribe a Dimmer Item.
5. Writing and examining a Simple Subscriber for the Group Item Type (C++)
- This tutorial covers how to write a subscriber node in C++ to subscribe a Group Item.
6. Writing and examining a Simple Subscriber for the Image Item Type (C++)
- This tutorial covers how to write a subscriber node in C++ to subscribe a Image Item.
7. Writing and examining a Simple Subscriber for the Location Item Type (C++)
- This tutorial covers how to write a subscriber node in C++ to subscribe a Location Item.
8. Writing and examining a Simple Subscriber for the Number Item Type (C++)
- This tutorial covers how to write a subscriber node in C++ to subscribe a Number Item.
9. Writing and examining a Simple Subscriber for the Player Item Type (C++)
- This tutorial covers how to write a subscriber node in C++ to subscribe a Player Item.
10. Writing and examining a Simple Subscriber for the Rollershutter Item Type (C++)
- This tutorial covers how to write a subscriber node in C++ to subscribe a Rollershutter Item.
11. Writing and examining a Simple Subscriber for the String Item Type (C++)
- This tutorial covers how to write a subscriber node in C++ to subscribe a String Item.
12. Writing and examining a Simple Subscriber for the Switch Item Type (C++)
- This tutorial covers how to write a subscriber node in C++ to subscribe a Switch Item.
13. Writing and examining a Simple Subscriber for multiple Items of a Thing (C++)
- This tutorial covers how to write a subscriber node in C++ to subscribe for multiple Items of a Thing.
Publisher
1. Writing and examining a Simple Publisher for the Color Item Type (C++)
- This tutorial covers how to write a publisher node in C++ to subscribe a Color Item.
2. Writing and examining a Simple Publisher for the Contact Item Type (C++)
- This tutorial covers how to write a publisher node in C++ to subscribe a Contact Item.
3. Writing and examining a Simple Publisher for the DateTime Item Type (C++)
This tutorial covers how to write a publisher node in C++ to subscribe a DateTime Item.
4. Writing and examining a Simple Publisher for the Dimmer Item Type (C++)
- This tutorial covers how to write a publisher node in C++ to subscribe a Dimmer Item.
5. Writing and examining a Simple Publisher for the Image Item Type (C++)
- This tutorial covers how to write a publisher node in C++ to subscribe a Image Item.
6. Writing and examining a Simple Publisher for the Location Item Type (C++)
- This tutorial covers how to write a publisher node in C++ to subscribe a Location Item.
7. Writing and examining a Simple Publisher for the Number Item Type (C++)
- This tutorial covers how to write a publisher node in C++ to subscribe a Number Item.
8. Writing and examining a Simple Publisher for the Player Item Type (C++)
- This tutorial covers how to write a publisher node in C++ to subscribe a Player Item.
9. Writing and examining a Simple Publisher for the Rollershutter Item Type (C++)
- This tutorial covers how to write a publisher node in C++ to subscribe a Rollershutter Item.
10. Writing and examining a Simple Publisher for the String Item Type (C++)
- This tutorial covers how to write a publisher node in C++ to subscribe a String Item.
11. Writing and examining a Simple Publisher for the Switch Item Type (C++)
- This tutorial covers how to write a publisher node in C++ to subscribe a Switch Item.
12. Writing and examining a Simple Publisher for multiple Items of a Thing (C++)
- This tutorial covers how to write a publisher node in C++ to subscribe for multiple Items of a Thing.
Intermediate openhab_bridge Tutorials
1. Creating openHAB Items and Rules to run rosrun or roslaunch
- This Tutorial covers how to write Items and Rules in openHAB by using the Exec Action and the Exec Binding to run rosrun or roslaunch for running one or more executable in an arbitrary package.
2. Creating a openHAB Rule to run rosnode list
- This Tutorial covers how to write a Rule in openHAB which will run rosnode list and will parse the output to openHAB.
3. Creating a openHAB Rule to run rostopic list
- This Tutorial covers how to write a Rule in openHAB which will run rostopic list and will parse the output to openHAB.
4. Creating a openHAB Rule to run rosmsg show
- This Tutorial covers how to write a Rule in openHAB which will run rosmsg show and will parse the output to openHAB.
5. Creating a openHAB Rule to run and stop a Publisher at a specific time.
- This tutorial covers how to use a Cron-based trigger in a openHAB Rule for running and stopping a ROS Publisher at a specific time. This is equivalently also conceivable with any subscriber or programs that include both publisher and subscriber.
6. Using the openhab_bridge_plotter
- This tutorial covers how to use the openhab_bridge_plotter for plotting the openhab_static_examples.
7. Using the openhab_bridge_plot_publisher
- This tutorial covers how to use the openhab_bridge_plot_publisher for plotting the openhab_static_examples to an openHAB Image Item.
Advanced openhab_bridge Tutorials
ROS Python (rospy)
1. Subscribing multiple Items at the same time (Python).
This Tutorial covers using the message_filters.TimeSynchronizer for Subscribing multiple Items at the same time.
2. Subscribing multiple Items with a minimum deviation at the same time (Python).
This Tutorial covers using the message_filters.ApproximateTimeSynchronizer for Subscribing multiple Items with a minimum deviation at the same time.
ROS C++ (roscpp)
1. Subscribing multiple Items at the same time (C++).
This Tutorial covers using the message_filters::TimeSynchronizer for Subscribing multiple Items at the same time.
2. Subscribing multiple Items with a minimum deviation at the same time (C++).
This Tutorial covers using the message_filters::ApproximateTimeSynchronizer for Subscribing multiple Items with a minimum deviation at the same time.
Turtlesim examples
Coming soon... As example publishing current position to openhab. Creating a Rule for creating new turtles. Creating a Rule for publishing to goal topic. Changing Parametes via a Rule.
Turtlebot examples
Coming soon... Converting map topic to image and publishing it to openHAB Publising sensor informations to openHAB.
Pepper examples
Coming soon... Publishing camera images to openHAB. Using the speech input for controlling openHAB. Publising sensor informations to openHAB.