New possibilities?

Last week Sven was at Jazoon, the International Conference for the Software Community in Zurich. We promised to reduce posts about the Wine Shelf, so I’ll just mention, sort of en passant, that it was there too. Smart Wine Shelf: check. Done. Now we can take a look at some of the other things that happened at the event in Switzerland.

Jazoon was a fairly small conference with SAP as a Gold Sponsor. This gave Sven the opportunity to dive into some networking action with a few of our SAP colleagues. And he made a connection that might be quite relevant for hybirs labs in future. Holger Seubert will visit the labs team in Munich to train us in mastering SAP Hana. And once we’ve figured that out… MUAHAHAHA!… Sorry, that was actually slightly unprofessional. But seriously, integrating SAP Hana widens the range of things we can do with our prototypes.

Sven also ‘played’ with Arno Speck who was at Jazoon to present the SAP API Management Platform. Together they built the platform around the Wine Shelf API, creating an integrated use case that enables rate limiting, security, transformations…and so on. Let’s wait and see what this means for some of our next prototypes.


3 Kudos
facebooktwittergoogle_plusredditpinterestlinkedinmailby feather

Infotainment: Surprise

Well you’ve had to wait for this for quite a while but here it finally is! Every big blockbuster has it, an extra audio track commenting on the action in the movie. Usually it’s directors and actors talking allegedly interesting gibberish. But in our case it’s Christian and Sven giving you some interesting background to the Surprise video from a technological perspective. Worth watching! Find out about our reason for doing this here.


5 Kudos
facebooktwittergoogle_plusredditpinterestlinkedinmailby feather

HOT: Wine Shelf Intensive Care

We know you all were very worried, so the good news has priority: the Wine Shelf is fine again. Phew! But we had a couple of tense hours. If you’re not in the loop what happened to the Wine Shelf in Seattle at, you can catch up here.

We took the 16 plain platforms without any electronics back to Munich where Sven and Max had in the meantime prepared an entire new set of LED rings, switches, cables, etc… Then Sven took everything to Montreal (for some reason again without being held up at security… really makes you think doesn’t it…), where he waited for the Wine Shelf to arrive. He had the whole night to do all the repairs, but due to the patient’s critical condition Sven let the soldering iron fly and did it in three hours. Bravo, we say! The Smart Wine Shelf is shining brighter than ever, and doesn’t it just look beautiful.


8 Kudos
facebooktwittergoogle_plusredditpinterestlinkedinmailby feather

Funky Retail

The next hybris labs prototype is coming soon. You might have read about the idea already here on our blog, but there have been a couple of developments. Funky Retail’s the name, in-store analytics is the game. With the Smart Wine Shelf we aimed to improve  the customer experience by the use of an recommendation system based on IoT technology. But we also realised that the Internet of Things offers ways to enhance in-store analytics. This is exactly what we focused on while designing Funky Retail.

On any standard shopping website, retailers know exactly when a customer visits,  know how long he stays, which products he looks at, for how long he looks at them, can recommend upsells and sees if the customer makes a purchase. Why should this not be possible in the physical retail world? That’s what we evaluate with Funky Retail. We identify the presence of a customer in front of a Funky Box; we count the product lift-ups; we measure how long a product is being lifted; and we even combined the individual product lift-up with the playback of an engaging product video.

To spice the whole thing up a little, we collaborated with the hybris customer Mammut. Mammut equipped us with some cool products that help us to put some more life into this prototype and round the story off. We don’t want to spoil the surprise, but we’ll give you a hint: A video shoot is scheduled with the hybris media team, and those guys have got a bit of climbing experience…

Stay tuned!


9 Kudos
facebooktwittergoogle_plusredditpinterestlinkedinmailby feather

New space, new face

We’ve already told you about the hybris labs Innovation Space at NY82. It gives us the chance to exclusively present our prototypes to customers and partners in an environment less hectic than at the events we frequently attend. And it’s also better than keeping them in storage somewhere. The prototypes, not the partners and customers. But to do this we need some help.

Let me introduce Andreas Kopp to you who has been supporting the labs team since September 1st. He will manage the hybris labs Innovation Space and give demonstrations of our prototypes to partners, customers and also new employees. Basically to anybody who is interested. So, if you want to get in touch just send him an email to

Andreas Kopp

Being an active member of the fablab Munich and a regular exhibitor at Maker Faires, Andreas will add some new spirit to the labs team, connecting hybris labs to the maker community. Building connected objects is one of Andreas’s great interests, but he says himself that he is very curious to learn more about e-commerce and the hybris world.

We’re glad to have you with us Andreas, welcome to the team!

8 Kudos
facebooktwittergoogle_plusredditpinterestlinkedinmailby feather

HOT: Wine Shelf Emergency Room

…That’s the title under which several emails were sent during the past week. Here’s the story: Christian and Nick went to Seattle to present the Wine Shelf at in the Washington State Convention Center.


The Wine Shelf, shipped from Chicago, was already there when they arrived at the venue, waiting to be switched on. But this time round things weren’t that easy. The Shelf didn’t flash! The connection was fine, the requests via the app and the responses worked, but none of the LEDs lit up. Time to call the Emergency Hotline in Germany. 9 hours time difference… of course Sven was ever so happy to be kept from his dinner… A thorough checkup of the software didn’t lead to the source of the problem.


Next on the list was the wiring. Suddenly, a single LED in one of the rings had gone on. A bit strange… we carried on looking… and then we had an idea: Christmas lights. No, not using them instead of the LED rings, that’s just silly! The principle. If one breaks, the others don’t work. Connection in series. And the wine shelf works similarly to that. If one ring is broken, the following ones don’t work. In our case No. 1 was broken, No. 5 too, and also No. 8, 9 & 13. After we found that out we put the platforms with defective LED rings to the end of the row, and were actually quite happy to have a working, though slightly crippled, Wine Shelf. Then we closed everything and tried it again. Only the top row lit up this time… To keep it short, 9 out of 16 were dead. Not so good. But that’s why we call it a prototype. The only thing we could do was to rearrange the platforms to make it look as if everything was fine, and cheat a bit while doing the demo. Nobody noticed. At this point we would like to apologise to everybody whom we led to believe they saw a fully functional Smart Wine Shelf. We’re sorry and know it’s not right to fib. But it really was only a problem with LEDs and it does usually work. A big THANK YOU to Andy for helping us with the repairs.

Apart from all that trouble, went really well for us. We made some nice contacts, got cool ideas for new prototypes, and also some suggestions on how to improve some of our current ones (like the Wine Shelf). That’s why we go to these events.

Oh, and regarding the emails mentioned above… Sven is just on his way to Montreal to present the Wine Shelf. Good luck, mate!


8 Kudos
facebooktwittergoogle_plusredditpinterestlinkedinmailby feather

Connecting to multiple BLE devices

In the last post, I mentioned that we’re working on BLE and intend to connect “things” in the retail space wirelessly. I promised to post some example code how this can be done. I’m again at the airport and I got a few spare minutes, so let me post this right away. Let’s begin with the LightBlue Bean code, which is written in the Arduino programming language and put onto the Lightblue Beans using the Arduino IDE:

 Sending Data from the Bean(s)

As each LightBlue Bean needs to be unique for our system, we give each Bean a unique ID. This is parameter is set in the first line using the id parameter. The setup method picks that value up and uses it to give the Bean a unique name. In addition, the id is also used as part of the TileData struct – that’s the data that we send out via BLE. To be able to read that data, it is important to know the length in bytes for each of the parameters of the struct – which is in our case 2 bytes each.

In the loop method, the interesting parts happen. Each time the loop() is called, the counter is increased and the id of the Bean is being put into a struct of TileData. We then “set” that data using the setScratchData method of the Bean object.

From that point on, we have a system that is able to transmit data over BLE. It uses the built-in Bean Scratch characteristics to set the current data. These characteristics allow notifications, so a connected system can get updates easily. We’ll take a look at that next.

Receiving Data using Noble on Mac/Linux

To receive the data, I am currently using my Mac laptop as it has decent BLE hardware built in and excellent support for node.js. Later on, I plan to switch to a Raspberry PI, which I’ve confirmed the basic operation is working.

Here’s the code, we’ll then step through it:


Once you’ve digged through, it is really not a lot of code at all. Plus, once you understand the basics of BLE, you’ll realize how simple it is.

Above code will tell the noble js library (BLE library) to start scanning, but limit our scan to devices that report having the service UUID a495ff10c5b14b44b5121370f02d74de. This happens to be the LightBlue Bean Scratch Service, which is what we are looking for. Whenever such a device is found, the discover function is called back.

In discover, we check the Bean’s name one more time. We check that it adheres to our Bean naming convention (see Arduino code) and then start connecting to it.

Connect will connect to the device up to a certain number of Beans have been connected to. Right now, the limit is set to 4 but more are possible. At this point, the discovering phase will end and no more beans are searched for. We also save the peripheral objects to an internal map that we will use for a correct disconnect later on. This disconnect is handled in exitHandler, which is registered once.

We’re now setting up the notifications, which begines with discovering the devices services, finding the right one, then looking for the characteristic we’re interested in.

We’re checking for the right service UUID and then begin to discover characteristics. We know there are always 4 characteristics in the Scratch service and simple pass on the first characteristic object (characteristics[0]) to the requestNotify method.

Here, two things are happening. First, we turn on notifications. This means we register to get updates when values change for this characteristic. Second, we’ve bound a read handler for updates. So whenever “data” is popping out of our characteristic updates, we get a callback.

Now it becomes essential to know what data was sent. We know that we send a struct, containing two integers – two bytes each. So we read two bytes and combine them back into the integer value using the left-shift operation above.

Finally, when you presse CTRL-C the SIGINT callback will be called and we are disconnecting from all known devices:

We need to give them a bit of time, so we wait 2 seconds after we triggered the disconnect and then finally shut down the program.

This is bloody prototyping code and I am really looking for feedback. Tweet me or leave comments! Next up I’ll share some more info on the next prototype and maybe I’ll have some early designs ready.

7 Kudos
facebooktwittergoogle_plusredditpinterestlinkedinmailby feather