Plugwise USB Stick / Circle+

Hi,

I got a bunch of old Plugwise Circle plugs, as well as a Circle+ and a Plugwise USB stick. I sourced them second hand from different sources. This means the Circle+ is not paired with the USB stick. So now I’m looking for a method to get that fixed.

What I’ve tried so far:

  • This Python script. It’s very outdated. I first ran 2to3 on it, to convert it from Python 2 to 3. After fixing some Python errors after that, it still didn’t pair the Circle+ to the Stick.
  • This also outdated Python script. Although it’s Python 3, I also couldn’t get it to work. The documentation is minimal and unclear.
  • I found a link to the original Plugwise Source software here. I installed a trial version of Parallels on my MacBook and installed the Source software. I had to manually install DotNet Framework first, but than it installed. However, it doesn’t seem to be able to connect to the Stick. When I plug the stick in, Parallels asks if it needs to connect the stick to macOS or to Windows, I choose Windows of course. But nothing happens, the Source software keeps “searching for the Stick”.
  • (I noticed there’s a feature request for the Plugwise USB integration to integrate the pairing directly into the integration, but that’s open for almost 2 years now, so I’m not sure if that will ever be added.)

Is there any other way to pair my Circle+ to my Stick? I have available:

  • A MacBook Air with M2 processor (with a trial version of Parallels, but I’m not sure if I’ll be able to get the stick working on that)
  • An Odroid machine where HomeAssistant runs on.

As I understand it, once I have paired the Circle+ to the Stick, the other Circles will pair to the Circle+ automatically, once I reset them via plugging in/out for 3 seconds 3 times in a row. I really hope I can get this all to work, since that will enable me to measure energy usage of a lot of devices with these very cheap Circle plugs.

@brefa, @ArnoutD_77 can you maybe help?

You will need the software called “source” which runs on windows with a license. For more then 20 circles you will need an special license.
Run source software and create a network from the circles. Give each circle it’s own name (I used the ID for that) and place it in special room and group (I used misc for that)
When you are able to switch each circle via source software you are one step further.

Connect Plugwise stick to HA machine and use HACS Plugwise beta integration (at least that’s what I use) and after a while you will get every circle as entity in HA. But beware the initial start is with me a bit flaky. Sometimes it takes multiple tries and patience before it works. When you get it working it’s running great.
I think my problem is that I’ve got a network of 35+ devices but 10 of them are stored in a drawer and not online. I’ve got the feeling that this is causing routing problems somehow. Still working on that but before I added the last circles all work great.

I’m on a Mac. I tried running that “Source” app on Windows via Parallels, but it didn’t work. It didn’t connect to the stick.

You need a windows box. I’ve got a W7 box on VMWare specially for this :slight_smile:

What’s the difference between your VMWare “windows box” and me running Windows via Parallels?

To be honest, don’t know. Not familiar with parallels but one thing is for sure, usb passthrough has to work correctly.

The stick must be linked to a Circle+ first. All other devices are then registered within the memory of the Circle+. Using the original Plugwise source software is the most easy and recommended way to do this. The python Plugwise usb lib has some methods to do this manually but is not documented.

The current version (v0.40.7) of the custom integration in hacs plugwise_usb-beta does not cache any data, so it is retrieving all energy information during startup, which requires a really stable plugwise network to be reliable. Including to have all devices be reachable/online.

The development version (v0.50a2, only visible if you enable beta in hacs) is a full rewrite of the custom integration support caching of data. This with some other architectural changes makes the integration less dependent to a reliable network, especially during startup.

Can you elaborate on that? I tried it, but didn’t have any success. What functions should be called in what order?