Python module for controlling Broadlink RM2/3 (Pro) remote controls, A1 sensor platforms and SP2/3 smartplugs

Python control for Broadlink devices

A simple Python API for controlling Broadlink devices. At present, the following devices are supported:

  • Universal remotes: RM home, RM mini 3, RM plus, RM pro, RM pro+, RM4 mini, RM4 pro, RM4C mini, RM4S
  • Smart plugs: SP mini, SP mini 3, SP mini+, SP1, SP2, SP2-BR, SP2-CL, SP2-IN, SP2-UK, SP3, SP3-EU, SP3S-EU, SP3S-US, SP4L-AU, SP4L-EU, SP4L-UK, SP4M, SP4M-US
  • Power strips: MP1-1K3S2U, MP1-1K4S, MP2
  • Wi-Fi controlled switches: MCB1, SC1, SCB1E
  • Environment sensors: A1
  • Alarm kits: S2KIT
  • Light bulbs: LB1, SB800TD

Other devices with Broadlink DNA:

  • Smart plugs: Ankuoo NEO, Ankuoo NEO PRO, BG AHC/U-01, Efergy Ego
  • Outlets: BG 800, BG 900
  • Curtain motors: Dooya DT360E-45/20
  • Thermostats: Hysen HY02B05H

There is currently no support for the cloud API.

Example use

Setup a new device on your local wireless network:

  1. Put the device into AP Mode
  2. Long press the reset button until the blue LED is blinking quickly.
  3. Long press again until blue LED is blinking slowly.
  4. Manually connect to the WiFi SSID named BroadlinkProv.
  5. Run setup() and provide your ssid, network password (if secured), and set the security mode
  6. Security mode options are (0 = none, 1 = WEP, 2 = WPA1, 3 = WPA2, 4 = WPA1/2)
import broadlink

broadlink.setup('myssid', 'mynetworkpass', 3)

Discover available devices on the local network:

import broadlink

devices = broadlink.discover(timeout=5)

You may need to specify local_ip_address or discover_ip_address if discovery does not return any devices.

Using your machine's IP address with local_ip_address

import broadlink

devices = broadlink.discover(timeout=5, local_ip_address='192.168.0.100')

Using your subnet's broadcast address with discover_ip_address

import broadlink

devices = broadlink.discover(timeout=5, discover_ip_address='192.168.0.255')

Obtain the authentication key required for further communication:

devices[0].auth()

Enter learning mode:

devices[0].enter_learning()

Sweep RF frequencies:

devices[0].sweep_frequency()

Cancel sweep RF frequencies:

devices[0].cancel_sweep_frequency()

Check whether a frequency has been found:

found = devices[0].check_frequency()

(This will return True if the RM has locked onto a frequency, False otherwise)

Attempt to learn an RF packet:

found = devices[0].find_rf_packet()

(This will return True if a packet has been found, False otherwise)

Obtain an IR or RF packet while in learning mode:

ir_packet = devices[0].check_data()

(This will return None if the device does not have a packet to return)

Send an IR or RF packet:

devices[0].send_data(ir_packet)

Obtain temperature data from an RM2:

devices[0].check_temperature()

Obtain sensor data from an A1:

data = devices[0].check_sensors()

Set power state on a SmartPlug SP2/SP3/SP4:

devices[0].set_power(True)

Check power state on a SmartPlug:

state = devices[0].check_power()

Check energy consumption on a SmartPlug:

state = devices[0].get_energy()

Set power state for S1 on a SmartPowerStrip MP1:

devices[0].set_power(1, True)

Check power state on a SmartPowerStrip:

state = devices[0].check_power()

Get state on a bulb

state=devices[0].get_state()

Set a state on a bulb

devices[0].set_state(pwr=0)
devices[0].set_state(pwr=1)
devices[0].set_state(brightness=75)
devices[0].set_state(bulb_colormode=0)
devices[0].set_state(blue=255)
devices[0].set_state(red=0)
devices[0].set_state(green=128)
devices[0].set_state(bulb_colormode=1)
Comments
  • Broadlink RM4 PRO is not able to learn or to send RF Signal

    Broadlink RM4 PRO is not able to learn or to send RF Signal

    Unsure if this is the right place to raise this issue, however, I cam across https://github.com/mjg59/python-broadlink/issues/355 which relates to a similar issue except with IR. Currently, I am trying to get my RM4 Pro to work with the HA and having issues bring able to learn RF (IR learns and sends no problem at all) with both python-broadlink and Home assistant. (I also have an issue with it as a sensor (temperature and humidity) - although not that concerned/interested in this side at the moment)

    Current Setup Home Assistant 0.109.3 Broadlink RM4 Pro Added to network using python-broadlink - PASS when I attempt devices[0].host[0] > ‘192.168.1.172’ - PASS devices[0].get_type() > ‘Unknown’ - Cant get the type (so this may be a concern or compatibility issue) devices[0].enter_learning() > AttributeError: device instance has no attribute ‘enter_learning’ _FAIL

    Under Home assistant Added to HA as switch - configuration.yaml switch: platform: broadlink host: 192.168.1.172 mac: 24:df:a7:b9:c0:5a type: rm4_pro timeout: 15 retry: 5 switches: tv_samsung_power: friendly_name: "Samsung TV Power" command_on: IRSTRING command_off: IRSTRING When I run broadlink.learn

    • Red LED comes on
    • I can capture IR without an issue as I did with the Samsung TV Power
    • UNABLE TO CAPTURE ANY RF

    As far as the sensor is concerned sensor: platform: broadlink host: 192.168.1.172 mac: 24:df:a7:b9:c0:5a type: rm4_pro monitored_conditions: temperature humidity Both Temperature and Humidity just show a value of 0

    Do you know if anyone has been successful with the RM4 Pro and RF?

    Another point is that I cant get the RM4 Pro to work with e-control (or broadlink manager) so have not been able to get any RF packets to test it broadlink.send command to see if that works.

  • "Broadlink RM4c mini" support

    Hello

    I bought "Broadlink RM4c mini" but it doesn't work with python-broadlink

    It see it but don't connect.

    on broadlink_discovery: Discovering... Error authenticating with device : ('192.168.1.6', 80) on broadlink_cli: Traceback (most recent call last): File "./broadlink_cli", line 95, in <module> mac = bytearray.fromhex(values[2]) ValueError: non-hexadecimal number found in fromhex() arg at position 2

    Best regards ArchGalileu

  • Add support for S3 Hub and LC-1 (1,2&3 gang) light switches

    Add support for S3 Hub and LC-1 (1,2&3 gang) light switches

    Context

    Added new device

    Proposed change

    Type of change

    • [ ] Dependency upgrade
    • [ ] Bugfix (non-breaking change which fixes an issue)
    • [X] New device
    • [ ] New product id (the device is already supported with a different id)
    • [ ] New feature (which adds functionality to an existing device)
    • [ ] Breaking change (fix/feature causing existing functionality to break)
    • [ ] Code quality improvements to existing code or addition of tests
    • [ ] Documentation

    Additional information

    Here is the implementation hub.py - the sub device ids (did) can be found in the app listed as MAC addresses

    >>> import broadlink
    >>> device = broadlink.hello('192.168.1.99')
    >>> device.auth()
    True
    >>> device.get_state("00000000000000000000a043b0d0783a")
    {'pwr1': 0, 'pwr2': 0, 'plugmode': 0, 'hb_timeout': 180, 'lb_online1': 1}
    >>> device.set_state("00000000000000000000a043b0d0783a",1)
    {'pwr1': 1, 'pwr2': 0, 'plugmode': 0, 'hb_timeout': 180, 'lb_online1': 1}
    >>> device.set_state("00000000000000000000a043b0d0783a",0,1)
    {'pwr1': 0, 'pwr2': 1, 'plugmode': 0, 'hb_timeout': 180, 'lb_online1': 1}
    >>> device.set_state("00000000000000000000a043b0d0783a",None,1)
    {'pwr1': 0, 'pwr2': 1, 'plugmode': 0, 'hb_timeout': 180, 'lb_online1': 1}
    >>> device.get_subdevices()
    [{'did': '00000000000000000000a043b0d06f11', 'pid': '0000000000000000000000001f650000', 'name': 'simpfc_cli', 'offline': 0}, {'did': '00000000000000000000a043b0d0783a', 'pid': '0000000000000000000000001f650000', 'name': 'simpfc_cli', 'offline': 0}, {'did': '00000000000000000000a043b0d06afa', 'pid': '00000000000000000000000020650000', 'name': 'simpfc_cli', 'offline': 0}, {'did': '00000000000000000000a043b0d06963', 'pid': '00000000000000000000000020650000', 'name': 'simpfc_cli', 'offline': 1}, {'did': '00000000000000000000a043b0d0711f', 'pid': '0000000000000000000000001f650000', 'name': 'simpfc_cli', 'offline': 0}, {'did': '00000000000000000000a043b0d06d2a', 'pid': '0000000000000000000000001f650000', 'name': 'simpfc_cli', 'offline': 0}, {'did': '00000000000000000000a043b0d06ed8', 'pid': '0000000000000000000000001f650000', 'name': 'simpfc_cli', 'offline': 0}, {'did': '00000000000000000000a043b0d063df', 'pid': '00000000000000000000000020650000', 'name': 'simpfc_cli', 'offline': 1}]
    
    • This PR fixes issue: fixes #647
    • This PR is related to:
    • Link to documentation pull request:

    Checklist

    • [X] The code change is tested and works locally.
    • [ ] The code has been formatted using Black.
    • [ ] The code follows the Zen of Python.
    • [ ] I am creating the Pull Request against the correct branch.
    • [X] Documentation added/updated.
  • Add Support for Broadlink RM4 pro (0x653C)

    Add Support for Broadlink RM4 pro (0x653C)

    Seems like it's not supported for Broadlink RM4 pro (0x653C)

    Originally posted by @lukeclx in https://github.com/mjg59/python-broadlink/issues/472#issuecomment-731774318

    Home Assistant 0.118.3

  • StorageError: The device storage is full while learning and workaround

    StorageError: The device storage is full while learning and workaround

    I recently got a new Broadlink RM mini 3 from Amazon US, the device type is 0x5F36. With python-broadlink, I am able to "learn" a few IR code, it is working fine. After a few codes learned, the device starts to complain "The device storage is full" error. This problem cannot be resolved by resetting the device, and I am pretty desperate at this point.

    On deciding whether I will need to return the device, I realize that: after using enter_learning() function, the device has white indicator on, which means it indeed reads the IR code, but the error only comes when I try to use check_data() function. Further tests indicate that as long as I commented out the check_error() statement, the check_data function can actually correctly reporting IR code.

    So I assume the "learning" functionality is actually writing IR codes into the device's memory, which, from what I see, is very much limited. Since there is no "erase" option given, I assume a lot of users are going to encounter the same problem. And, since most users of python-broadlink only need to read out the IR code instead of really using the learning function, I think it would be great if an option for temporarily disabling the error check for full device storage could be given.

  • Add support for Broadlink RM4C mini (0x6539)

    Add support for Broadlink RM4C mini (0x6539)

    Add support for Broadlink RM4C mini (0x6539) https://github.com/mjg59/python-broadlink/pull/411#issuecomment-728289482 https://github.com/home-assistant/core/issues/42983#issuecomment-729802091

  • Additional device support

    Additional device support

    Hi all,

    thanks for your work so far on this.

    I want to use it with a Broadlink based heating controller ("Hysen HY02B05H", photo here: http://peter.windridge.org.uk/playing-with-cheap-iot-devices/20171120_163450.jpg ).

    I can .discover() and .auth() the device. The devtype is: 0x4ead.

    (1) Has anyone started working on this device? (2) If not, I need to capture packets from the Android app (which calls a libBLNetwork.so binary). I tried wireshark on Ubuntu but setting promiscuous mode on my laptop doesn't seem to work. I had considered install the Android SDK emulator to run the app on my PC but this seems like a lot of faff. Is there any easier way? (Sorry this question is not directly related to python-broadlink so I don't mind being told to take it elsewhere :))

    My goals are:

    • read room temperature
    • put control in manual mode
    • change temperature

    I have not tried sending the device codes from check_temperature() etc for fear of bricking it...

    Peter

  • Do we need to choose between using this library or the official app exclusively?

    Do we need to choose between using this library or the official app exclusively?

    Here my steps that made me think about the question in title of the issue...

    1. I had my devices added to the official app.
    2. I tried to use broadlink_discovery and it was failing the authentication process.
    3. I followed some steps that I found somewhere in old closed issues to remove the devices from the app and reset them.
    4. I ran debug.py and both devices autheticated successfully.
    5. I re-added the devices to the official app and the library stopped working.

    My devices are 0x6026 and 0x62be.

    So my question is: Do we need to choose between using this library or the official app exclusively?

  • Add support for 0x5f36 devices and RM4 series

    Add support for 0x5f36 devices and RM4 series

    These devices require a special header in the payload. The rest is the same.

    Related issues:

    RM 3 Mini (0x5f36) https://github.com/mjg59/python-broadlink/issues/307 https://github.com/mjg59/python-broadlink/issues/308 https://github.com/home-assistant/core/issues/30215 https://github.com/home-assistant/core/issues/23566 https://github.com/lprhodes/homebridge-broadlink-rm/issues/551

    RM4 series https://github.com/mjg59/python-broadlink/issues/301 https://github.com/mjg59/python-broadlink/issues/312

  • Update packet count in the authentication step

    Update packet count in the authentication step

    Context

    The counter comes in bytes 0x28 and 0x29 and is used to identify the packet. If the device receives a packet with the same counter, the command is not executed twice. This can be reproduced with the following code:

    d = blk.hello("192.168.0.12")  # Example device
    d.auth()
    d.send_data(b64decode("sv8kAAUGEwYGDAsGBgYGBgUMCwsLBgUGBgYGBgYGBgsLCwYGCwYGDAAAAAA=="))
    
    # Same counter, this command won't be executed.
    d.count -= 1
    d.send_data(b64decode("sv8kAAUGEwYGDAsGBgYGBgUMCwsLBgUGBgYGBgYGBgsLCwYGCwYGDAAAAAA=="))
    

    This is the expected behavior. We are already using this. When the timeout is reached, we send the packet again with the same counter without worrying about commands being executed twice.

    The problem

    When we re-instantiate the controller or restart the application, the counter is lost. So if we try something like this:

    d = blk.hello("192.168.0.12")  # Example device
    d.auth()
    d.send_data(b64decode("sv8kAAUGEwYGDAsGBgYGBgUMCwsLBgUGBgYGBgYGBgsLCwYGCwYGDAAAAAA=="))
    
    # Same device, but we've lost the counter
    d = blk.hello("192.168.0.12")
    d.auth()
    d.send_data(b64decode("sv8kAAUGEwYGDAsGBgYGBgUMCwsLBgUGBgYGBgYGBgsLCwYGCwYGDAAAAAA=="))
    

    The device gets crazy because the counter is wrong and it stops eliminating duplicate packets. So if we send the same packet twice, even with the same counter, the device executes two different commands.

    The code we are sending is an easy way to reproduce the issue. It is a blocking RF code with 255 repetitions. The timeout is reached 3 times, 3 packets are sent and 3 different commands are executed. This wouldn't happen if the counter was persistent, so...

    The solution

    I propose to update the counter when we authenticate to the device, so this information will always be up to date, even if we restart the application.

    Fixes https://github.com/home-assistant/core/issues/41957 Fixes https://github.com/home-assistant/core/issues/37000

  • Create SP3S class and improve energy monitoring

    Create SP3S class and improve energy monitoring

    Breaking change

    Create a new SP3S class for these devices. Applications need to use the correct class to support get_energy().

    The problem

    Some SP2 devices (PID starting with 0x27) support get_energy(), but the firmware is different from SP3S, so we need to create another method.

    From: https://github.com/mjg59/python-broadlink/issues/413#issue-693577696 https://github.com/mjg59/python-broadlink/issues/200#issuecomment-409548956

    Proposed changes

    • Create a new class for SP3S with the current get_energy() method (only works for SP3S).
    • Create a new get_energy() method for the SP2 class.

    Need help with tests

    These smart plugs don't support energy monitoring. They respond to sp3s.get_energy() with CommandNotSupportedError and StorageError. This is the behavior we had in the past, so we were catching the exceptions eg here.

    It would be interesting to see how they respond to this new sp2.get_energy() method before the code is merged. So, if anyone has the smart plugs on the list, please help to test this method.

    On your PC:

    # Create a venv (not mandatory, but recommended)
    python3 -m venv venv
    source venv/bin/activate
    
    # Install this branch
    pip3 install git+https://github.com/felipediel/[email protected] --force-reinstall
    
    ## Run Python 3
    python3
    

    Now let's see how the device respond to get_energy():

    >>> import broadlink as blk
    >>> d = blk.hello("192.168.0.16")  # Example device
    >>> d.auth()
    >>> d.get_energy()
    

    Thanks in advance!

  • Added support for Luceco Smart! Downlights

    Added support for Luceco Smart! Downlights

    Thank you for creating this project, its been a great help in getting my smart home fully operational.

    This PR adds support for the Luceco Smart Home Downloads.

    They need to be configured as a broadlink device in fast flashing AP mode but this change makes them controllable.

  • New BroadLink device -

    New BroadLink device -

    I have purchased one of these lights https://www.bg-home.uk/castra-floodlight which I believe uses a Broadlink chip..

    I have tried using the cli from this repository and it finds the other Broadlink devices on my networks but seems to fail when finding the new device (see image)

    cli_error

    I did log the same issue before I tried using the CLI. This gives a bit more details about the chip type.

    https://github.com/mjg59/python-broadlink/issues/725

    The mac address of the new device also points to being a Broadlink chip as it starts ec:0b:ae:

    Is it possible to get support added? I can try and provide as much technical as I can about the device.

    Thanks

    Rob

  • UnicodeDecodeError: 'utf-8' codec can't decode byte 0xea

    UnicodeDecodeError: 'utf-8' codec can't decode byte 0xea

    Getting this error occurring sometimes with the S3 Hub. It seems to resolve on it's own sometimes, but can also be resolved by rebooting the hub.

    Error stack trace shows hub.py line 42 - return self._decode(response) and also hub.py line 82 - state = json.loads(payload[0x0C : 0x0C + js_len])

    I couldn't figure out what was causing it, but there seems to be some of the JSON missing when i was printing 'payload' on line 80. See output below:

    Payload: b'\xa5\xa5ZZ/\xcd\x03\x0b\x1f\x00\x00\x00\xea\x0e\xac\x91\x1d\x05\xf4K\xddV\x8c\x8d+\xda4,"lb_online1":0}\x00\x00\x00\x00\x00'

    js_len: 31

    A working example was as below:

    Payload: b'\xa5\xa5ZZg\xd7\x03\x0bI\x00\x00\x00{"pwr1":0,"pwr2":0,"pwr3":0,"plugmode":0,"hb_timeout":180,"lb_online1":1}\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00'

    js_len: 73

  • New device type - 647a - is it possible to add support?

    New device type - 647a - is it possible to add support?

    Hi

    Update - I didn't mean to post this here, it was meant for the Home Assistant integration! I can't seem to delete it.

    I have recently purchased one of these PIR Security lights https://www.bg-home.uk/castra-floodlight which appears to use a Broadlink chip that the Broadlink integration doesn't support.

    I'm not sure if there is a process but is it possible to get support added?

    I used this Node-RED library https://flows.nodered.org/node/node-red-contrib-broadlink-control to 'discover devices' and it finds the new device, along with my other Broadlink ones.

    Many thanks!

    Capture

  • Mock device docker image

    Mock device docker image

    Would be useful to have a mock device codebase for testing purposes only.

    In other works, a docker image that acts as a socket server and simulates a dummy and simple real world device

  • Add heating_cooling state

    Add heating_cooling state

    Context

    Cooling / heating state and switch is missing.

    Proposed change

    I found the necessary bit to control that.

    Type of change

    • [ ] Dependency upgrade
    • [ ] Bugfix (non-breaking change which fixes an issue)
    • [ ] New device
    • [ ] New product id (the device is already supported with a different id)
    • [x] New feature (which adds functionality to an existing device)
    • [ ] Breaking change (fix/feature causing existing functionality to break)
    • [ ] Code quality improvements to existing code or addition of tests
    • [ ] Documentation

    Additional information

    • This PR fixes issue: fixes #
    • This PR is related to:
    • Link to documentation pull request:

    Checklist

    • [x] The code change is tested and works locally.
    • [x] The code has been formatted using Black.
    • [x] The code follows the Zen of Python.
    • [x] I am creating the Pull Request against the correct branch.
    • [ ] Documentation added/updated.
A PYTHON Library for Controlling Motors using SOLO Motor Controllers with RASPBERRY PI, Linux, windows, and more!

A PYTHON Library for Controlling Motors using SOLO Motor Controllers with RASPBERRY PI, Linux, windows, and more!

Apr 29, 2022
A rubiks cube timer using a distance sensor and a raspberry pi 4, and possibly the pi pico to reduce size and cost.
A rubiks cube timer using a distance sensor and a raspberry pi 4, and possibly the pi pico to reduce size and cost.

distance sensor cube timer A rubiks cube timer using a distance sensor and a raspberry pi 4, and possibly the pi pico to reduce size and cost. How to

Feb 21, 2022
A Python class for controlling the Pimoroni RGB Keypad for Raspberry Pi Pico
A Python class for controlling the Pimoroni RGB Keypad for Raspberry Pi Pico

rgbkeypad A Python class for controlling the Pimoroni RGB Keypad for the Raspberry Pi Pico. Compatible with MicroPython and CircuitPython. keypad = RG

Nov 11, 2022
A script and GUI for controlling stepper motors from an arduino

A script and GUI for controlling stepper motors from an arduino (nema 23 in my case but should work for others in general)

Aug 1, 2022
An embedded application for toy-car controlling based on Raspberry Pi 3 Model B and AlphaBot2-Pi.
An embedded application for toy-car controlling based on Raspberry Pi 3 Model B and AlphaBot2-Pi.

An embedded application for toy-car controlling based on Raspberry Pi 3 Model B and AlphaBot2-Pi. This is the source codes of my programming assignmen

Oct 19, 2022
This Home Assistant custom component adds support for controlling Midea dehumidiferes on local network.

This is a custom component for Home assistant that adds support for Midea dehumidifier appliances via the local area network. midea-dehumidifier-lan H

Nov 23, 2022
Controlling fireworks with micropython
Controlling fireworks with micropython

Controlling-fireworks-with-micropython How the code works line 1-4 from machine

Jan 8, 2022
Sensor of Temperature Feels Like for Home Assistant.

Please ⭐ this repo if you find it useful Sensor of Temperature Feels Like for Home Assistant Installation Install from HACS (recommended) Have HACS in

Nov 23, 2022
A Raspberry Pi Pico plant sensor hub coded in Micropython

plantsensor A Raspberry Pi Pico plant sensor hub coded in Micropython I used: 1x Raspberry Pi Pico - microcontroller 1x Waveshare Pico OLED 1.3 - scre

Sep 20, 2022
Lenovo Legion 5 Pro 2021 Linux RGB Keyboard Light Controller
 Lenovo Legion 5 Pro 2021 Linux RGB Keyboard Light Controller

Lenovo Legion 5 Pro 2021 Linux RGB Keyboard Light Controller This util allows to drive RGB keyboard light on Lenovo Legion 5 Pro 2021 Laptop Requireme

Oct 22, 2022
It is a serial communicator(controller, receiver...), communicate with sensor LP20 which is a laser ranger.

Intro It is a serial communicator(controller, receiver...), communicate with sensor LP20 which is a laser ranger. Its datasheet is contained in this r

Sep 19, 2022
A Home Assistant sensor that tells you what holiday is next
A Home Assistant sensor that tells you what holiday is next

Next Holiday Sensor This sensor tells you what holiday is coming up next. You can use it to set holiday light colors or other scenes. The state of the

Nov 27, 2022
BMP180 sensor driver for Home Assistant used in Raspberry Pi

BMP180 sensor driver for Home Assistant used in Raspberry Pi Custom component BMP180 sensor for Home Assistant. Copy the content of this directory to

Dec 17, 2021
A simple small scale electric car was build which can be driven by remote control and features a fully autonomous parking procedure.

personal-autonomous-parking-car-raspberry A simple electric car model was build using Raspbery pi. The car has remote control and autonomous operation

Jan 26, 2022
Smart Tech Automation Remote via Kinematics Gesture control for IoT devices
Smart Tech Automation Remote via Kinematics Gesture control for IoT devices

STARK Smart Tech Automation Remote via Kinematics Gesture control for IoT devices View Demo · Report Bug · Request Feature Table of Contents About The

Jan 29, 2022
A module for cross-platform control of the mouse and keyboard in python that is simple to install and use.

PyUserInput PyUserInput is a group project so we've moved the project over to a group organization: https://github.com/PyUserInput/PyUserInput . That

Nov 11, 2022
I made this so I can control my Tapo L510 light bulb and Govee H6159 light strip using the PyP100 module and the Govee public API

TAPO-And-Govee-Controller I made this so I can control my Tapo L510 light bulb and Govee H6159 light strip using the PyP100 module and the Govee publi

Nov 23, 2021
A python module for interacting with rolimon's, a roblox value site.

rpi - rolimon's python interaction rpi is an open source python-based rolimon's api wrapper. It provides an end-to-end pipeline in which each componen

Nov 8, 2022
Python module for the qwiic serial control motor driver
Python module for the qwiic serial control motor driver

Qwiic_SCMD_Py Python module for the qwiic motor driver This python package is a port of the existing SparkFun Serial Controlled Motor Driver Arduino L

Jul 14, 2021