Using CrossOver or Wine Project to Run Windows Apps?

Has anyone tried using CodeWeavers’ CrossOver or Wine to run any of the Z-Wave utilities that require Windows? I’m thinking of things like backing up Z-Sticks and updating module firmware. A search of the Inovelli forums (and Google) doesn’t yield much in the way of leads.

We’re largely Mac-only here, and my automation system doesn’t support OTA firmware updates or Z-Stick backups. I may give it a go, but wanted to check to see if anyone has already established whether this is an avenue worth pursuing.

I would consider running a VM with Windows vs. a Wine application solution first.

Yeah, the benefit of the Wine solution is to not have to worry about a Windows license. I have an antiquated Windows laptop that I use for such stuff, but was interested in moving away from that.

Bonus points: said laptop has had Windows Mobile Device Center (and ActiveSync) installed on it.

You could reuse the license from your antiquated laptop (if Win 7 or XP maybe?) OR buy a license for cheap like I did for Win 10. I think my license was $7.

Thanks. The antique is running Windows 10 now (which is pretty amazing)–not sure if I could transfer the license or not. That might be an option. Truly am trying to see if there’s a Windows-less alternative, though.

Cheers!

Understand. I thought someone had mentioned a Z-Wave program on the App store, but not 100%.

I have never been successful with Crossover or Wine on linux, but I did try to run the PC controller application just now, and it did not work for me.

I am able to do firmware updates using zwavejs2mqtt though. Maybe you can use docker+zwavejs2mqtt and use the web interface for firmware updates on a mac?

Thanks very much. Appreciate the help.

Thanks for trying that; it helps a lot. I may still give Wine a try (since I’m on macOS and the buy-in is low).

I hadn’t considered the mqtt route. I don’t currently use mqtt for anything, but that’s just from a lack of need. Come to think of it, I believe Home Assistant also has an update facility. I might look into that as well.

Cheers.

You can disable the mqtt functionality., and just use it for the web interface

Oh, that’s great info. That is sounding like a much better option than Wine–especially since you’ve confirmed it works. :+1:

I can’t seem to get zwavejs2mqtt to work on my system. When I try to build the container, I get an error:

docker: Error response from daemon: error gathering device information while adding custom device “/dev/tty.GoControl_zwave”: no such file or directory.

When I look at /dev/, the Go Control device is clearly there. When I try to cu the device, I get a “line in use” message. I ran chmod against the device and that ran without error.

I suspect (but don’t know) that this is being caused by a bug in the SiLabs VCP driver under Big Sur. Not asking you to troubleshoot this, but if you happen to know any tips off the top of your head, they would be most appreciated.

I dont know anyhting off the top of my head (everything worked fine for me). I am using docker-compose, and this is my compose file if it helps:

  zwavejs2mqtt:
    container_name: zwavejs2mqtt
    restart: unless-stopped
    image: zwavejs/zwavejs2mqtt
    tty: true
    stop_signal: SIGINT
    ports:
      - "8091:8091"
      - "3000:3000"
    devices:
      - /dev/ttyACM0:/dev/ttyACM0
    volumes:
      - /srv/docker/zwavejs2mqtt:/usr/src/app/store
    networks:
      - zwave

I dont use mac, so I am not sure what (if any) differences there are for docker and devices.

Thanks. I was following the instructions here using the command:

docker run --rm -it -p 8091:8091 -p 3000:3000 --device=/dev/tty.GoControl_zwave --mount source=zwavejs2mqtt,target=/usr/src/app/store zwavejs/zwavejs2mqtt:latest


I can see the container pop up in Docker Desktop, but when it hits the error, it garbage collects so there’s not a lot to go on. I’m new to Docker, so it’s a distinct possibility that I’m doing something stupid.

did you try running as root?
sudo docker run --rm -it -p 8091:8091 -p 3000:3000 --device=/dev/tty.GoControl_zwave --mount source=zwavejs2mqtt,target=/usr/src/app/store zwavejs/zwavejs2mqtt:latest

I have now. :slight_smile:

Still no joy.

Thanks.

I found an article that suggests that docker is not actually running on the mac directly, and is instead running in a linux virtual machine on the mac. Apparently, the devices are mapped to /dev (so you can see them all), but you cannot actually access them.

Does mac use something like virtualbox in order to run docker? If so, is there an option to passthrough your usb device in virtualbox so that docker can see it?

you also might be able to add --privileged to your docker command

Thanks for this. I tried using --privileged with no joy. I also tried adding /dev to the list of folders within Docker Desktop. Still nothing. I removed all other USB devices besides the Go Control stick. Nada.

I did a bunch of searching and I truly think that the issue is between the USB driver and Big Sur. I may try to redo all of this on another Mac (earlier OS) and see whether that’s any better. At this point, I think I can safely say that this is not possible with Big Sur 11.3 and SiLabs Driver 6.0.1–at least at the stock implementation.

Thanks for taking the time. I’ll report back on any progress.

So after a lot of research looking into using a Docker container to achieve this, turns out that it’s not something that’s possible with a native Docker container on Mac. It seems that it may be possible with VirtualBox, but that’s getting a bit complicated with multiple levels of emulation.

I haven’t given up trying to find an alternative to Windows yet. :slight_smile: Thanks for the help @jtronicus

If you do go the virtualbox route, Microsoft actually has a virtualbox image that you can download directly. It is intended to be used for testing legacy versions of IE/Edge, but it is a 90 day trial that doesnt require entering any license. Might be worth checking out if all else fails.

https://developer.microsoft.com/en-us/microsoft-edge/tools/vms/

1 Like