Skip to main content

API for BambuLab 3D Printers over MQTT

Project description

Bambulabs API

This package provides a Python API for interacting with BambuLab 3D Printers. The API enables you to control and monitor your printer programmatically, making it an essential tool for developers, makers, and automation enthusiasts. The project is open-source and available on PyPI.

Status

flake8 pytest-unit-tests GitHub Pages

Documentation

Comprehensive documentation for this package, including API reference and usage guides, can be found here.

Installation

To install the package, use pip:

pip install bambulabs_api

Make sure you have Python 3.6 or higher installed.

Features

  • Connect and control BambuLab 3D printers programmatically.
  • Monitor printer status in real-time.
  • Execute commands and manage print jobs directly through Python code.
  • Easy setup and integration with Python environments.

Usage Example

Below is a basic example demonstrating how to connect to a BambuLab 3D printer and retrieve its status using the API:

import time
import bambulabs_api as bl

IP = '192.168.1.200'
SERIAL = 'AC12309BH109'
ACCESS_CODE = '12347890'

if __name__ == '__main__':
    print('Starting bambulabs_api example')
    print('Connecting to BambuLab 3D printer')
    print(f'IP: {IP}')
    print(f'Serial: {SERIAL}')
    print(f'Access Code: {ACCESS_CODE}')

    # Create a new instance of the API
    printer = bl.Printer(IP, ACCESS_CODE, SERIAL)

    # Connect to the BambuLab 3D printer
    printer.connect()

    time.sleep(2)

    # Get the printer status
    status = printer.get_state()
    print(f'Printer status: {status}')

    # Turn the light off
    printer.turn_light_off()

    time.sleep(2)

    # Turn the light on
    printer.turn_light_on()

    # Disconnect from the Bambulabs 3D printer
    printer.disconnect()

Development

If you want to contribute to the development of this API or run it in a development environment, follow these steps:

Prerequisites

  • Conda: Make sure you have Conda installed on your system.
  • Git: Ensure Git is installed for cloning the repository.

Setup

  1. Clone the repository:

    git clone https://github.com/mchrisgm/bambulabs_api.git
    
  2. Change directory:

    cd bambulabs_api
    
  3. Create the Conda environment using the provided environment.yml file:

    conda env create -f environment.yml
    
  4. Activate the environment:

    conda activate blapi
    
  5. Install the package in development mode:

    pip install -e .
    

Running Tests

To ensure everything is working correctly, you can run the tests using pytest:

pytest

Contributing

Contributions are welcome! If you'd like to contribute to this project, please:

  1. Fork the repository.
  2. Create a new branch (git checkout -b feature-branch).
  3. Commit your changes (git commit -am 'Add new feature').
  4. Push to the branch (git push origin feature-branch).
  5. Open a pull request.

Please make sure your code follows PEP 8 guidelines and that you run tests before submitting a PR.

License

This project is licensed under the MIT License. See the LICENSE file for more details.

Support

If you encounter any issues or have questions, feel free to open an issue on the GitHub repository.

Acknowledgements

This package is an open-source project developed and maintained by the community. Special thanks to all contributors who have helped improve and enhance this API.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

bambulabs_api-2.5.1.tar.gz (3.0 MB view details)

Uploaded Source

Built Distribution

bambulabs_api-2.5.1-py3-none-any.whl (20.0 kB view details)

Uploaded Python 3

File details

Details for the file bambulabs_api-2.5.1.tar.gz.

File metadata

  • Download URL: bambulabs_api-2.5.1.tar.gz
  • Upload date:
  • Size: 3.0 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.12.7

File hashes

Hashes for bambulabs_api-2.5.1.tar.gz
Algorithm Hash digest
SHA256 4f2cb9f83bed1fc28bef8fc70505d3d2a99b494aae5b32197831a74082b20886
MD5 4811d32ef4f2da78d0f21e224b3198a9
BLAKE2b-256 17e15296ce95183fb7f4c47ce1f57292b97032c15594c6f5366ede2b5e9733bf

See more details on using hashes here.

File details

Details for the file bambulabs_api-2.5.1-py3-none-any.whl.

File metadata

File hashes

Hashes for bambulabs_api-2.5.1-py3-none-any.whl
Algorithm Hash digest
SHA256 5ee3f0848ca2e3d70b637a141389372fb8b25c8f57d4194347e862c8cd6032cf
MD5 60664440ea0b3234eb6c4cf4e10a8e15
BLAKE2b-256 189bc0d7efa49f7bb0fdf67b9fe79531397aef8970b4f45e4fe6f798fec9b9a2

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page