A simulator for IoT sensors and actuators. This creates fake virtual sensors and actuators when the real ones won't fit on your counter.

IoT is great fun, but has a downside - hardware. You need access to a range of devices such as sensors and actuators to build your IoT projects. Sometimes you might have these devices, other times you may not - maybe you are waiting for a delivery, or parts are out of stock, or they are too expensive.

That's where this tool comes in.

What is CounterFit

CounterFit is a tool that is designed to fake various IoT hardware components, such as LEDs, buttons, temperature sensors and the like, that you can then access from IoT device code running on your computer rather than on an IoT device. It is made of two parts:

  • The CounterFit app - this is a web app run locally where you can connect fake sensors and actuators to your virtual hardware
  • Shims - these are libraries that fake popular hardware APIs so you can take code that runs against well known hardware and run it against the CounterFit app.

This project is under construction

This project is seriously under construction! Please let me know if you want to help.


Installing and running the app

  • Install the CounterFit app:

    pip install CounterFit
  • Run the app:

  • The app will launch, listening for web requests on port 5000, and open a web browser for you to start adding virtual sensors and actuators to your project

Running on a different port

To use a different port than the default 5000, set the --port option when you run the app:

CounterFit --port 5050


The shims are designed to mimic the APIs for popular hardware components. The idea being you should be able to take code built against the shim and eventually run it on real hardware by changing the name of the package that is imported.