Skip to main content

Broadlink IR codes listener and SmartIR json generator.

Project description

Broadlink Listener

pypi python Build Status codecov

Broadlink IR codes listener and SmartIR json generator.

This project will install a broadlink-listener command line tool that can be used to generate a climate SmartIR compatible json, starting from an initial structure that defines climate behavior, putting Broadlink IR remote to listening state, until all IR code combination will being scan.

Features

  • Discover Broadlink IR remote
  • Starting from SmartIR json structure like
{
  "supportedController": "Broadlink",
  "minTemperature": 16,
  "maxTemperature": 31,
  "precision": 1,
  "operationModes": [
    "op_a",
    "op_b"
  ],
  "fanModes": [
    "fan_a",
    "fan_b"
  ],
  "swingModes": [
    "swing_a",
    "swing_b"
  ]
}

it helps you listen all the defined IR codes to create a json like

{
  "supportedController": "Broadlink",
  "minTemperature": 16,
  "maxTemperature": 31,
  "precision": 1,
  "operationModes": [
    "op_a",
    "op_b"
  ],
  "fanModes": [
    "fan_a",
    "fan_b"
  ],
  "swingModes": [
    "swing_a",
    "swing_b"
  ],
  "commands": {
    "off": "...",
    "op_a": {
        "fan_a": {
            "swing_a": {
                "16": "....",

                "31": "...."
            },
            "swing_b": {
                "16": "....",

                "31": "...."
            }
        },
        "fan_b": {
            "swing_a": {
                "16": "....",

                "31": "...."
            },
            "swing_b": {
                "16": "....",

                "31": "...."
            }
        }
    },
    "op_b": {
        "fan_a": {
            "swing_a": {
                "16": "....",

                "31": "...."
            },
            "swing_b": {
                "16": "....",

                "31": "...."
            }
        },
        "fan_b": {
            "swing_a": {
                "16": "....",

                "31": "...."
            },
            "swing_b": {
                "16": "....",

                "31": "...."
            }
        }
    }
  }
}
  • Mandatory fields into starting json
    • supportedController, minTemperature, maxTemperature, precision
  • Optional fields (at least one must be present or nothing will be listened):
    • operationModes, fanModes,swingModes
  • Generated file can be used into SmartIR HomeAssistant component
  • It's possible to interrupt with CTRL-C at any moment, a temporary file will be saved
  • Temporary files are also saved at the end of each temperature range
  • In case of existing temporary file, the already learnt combination will be skipped

Example

Example of cli command:

$ broadlink-listener generate-smart-ir ./real_data/1124.json <DEVICE_TYPE> <IP> <MAC_ADDR> -n dry -n fan_only -s eco_cool

real_data/1124.json file is this one from SmartIR GitHub repo in which I've added the missing "swingModes" array, supported by climate but not present on json:

"swingModes": [
  "auto",
  "high",
  "mid_high",
  "middle",
  "mid_low",
  "low",
  "swing"
],

<DEVICE_TYPE>, <IP>, <MAC_ADDR> parameter can be obtained running:

$ broadlink-listener discover_ir

Credits

This package was created with Cookiecutter and the gpongelli/cookiecutter-pypackage project template.

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

broadlink_listener-1.2.0.tar.gz (19.3 kB view hashes)

Uploaded Source

Built Distribution

broadlink_listener-1.2.0-py3-none-any.whl (13.1 kB view hashes)

Uploaded Python 3

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