broadlink-listener
1.2.0

documentation:

  • Broadlink Listener
    • Features
    • Example
    • Credits
  • Installation
  • Usage
  • API
  • Contributing
  • Credits
  • Changelog
broadlink-listener
  • »
  • Broadlink Listener
  • View page source

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.

  • Documentation: https://gpongelli.github.io/broadlink-listener

  • GitHub: https://github.com/gpongelli/broadlink-listener

  • PyPI: https://pypi.org/project/broadlink-listener/

  • Free software: MIT

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.

Previous Next

© Copyright 2022-12-03, Gabriele Pongelli.

Built with Sphinx using a theme provided by Read the Docs.