lbschenkel / broadlink-bridge Goto Github PK
View Code? Open in Web Editor NEWBridge to Broadlink devices supporting REST, MQTT and LIRC protocols
License: MIT License
Bridge to Broadlink devices supporting REST, MQTT and LIRC protocols
License: MIT License
Because the python3 cryptography module wasn't available in a ready-to-go package, it needed to be compiled while building the docker image. That compile missed some requirements. I was able to build the container image, by using the following updated line in the Dockerfile:
RUN apk add py3-cryptography py3-paho-mqtt py3-pip gcc rust cargo python3-dev libffi-dev libc-dev linux-headers openssl-dev
Alternatively, I also tried adding a "pip install --upgrade pip" operation in the build (normally the way to get access to the required binary package), but that didn't help on my Raspberry.
hello,
the addon does not install for me
odroid xu4 card
Hello very interesting project!
One question is the rm4 pro supported?
I received this error:
TypeError: str, bytes or bytearray expected, not rm4
Been using this for a while. It's great!
I'd like to use the repeats option mentioned in the readme and get away from using scripts to do it.
I've got the code learned and tested. But when I add the 2* to the beginning of the string, I get the following error:
Client error http://127.0.0.1:8780/device/192.168.2.100.
Traceback (most recent call last):
File "/usr/src/homeassistant/homeassistant/components/rest_command/__init__.py", line 120, in async_service_handler
timeout=timeout,
File "/usr/local/lib/python3.7/site-packages/aiohttp/client.py", line 1012, in __aenter__
self._resp = await self._coro
File "/usr/local/lib/python3.7/site-packages/aiohttp/client.py", line 504, in _request
await resp.start(conn)
File "/usr/local/lib/python3.7/site-packages/aiohttp/client_reqrep.py", line 847, in start
message, payload = await self._protocol.read() # type: ignore # noqa
File "/usr/local/lib/python3.7/site-packages/aiohttp/streams.py", line 591, in read
await self._waiter
aiohttp.client_exceptions.ServerDisconnectedError: None
Here's the relevant REST command:
new_proj_off:
url: http://127.0.0.1:8780/device/192.168.2.100
method: post
payload: 2*JgBQAAABKZQTEhM3ExIUEhM3EzUVEhQSEzcTEhM3FDcTEhMSEzYVNxMSEzcTOBM1FRITNxQSExITNxMSFBEUEhM3ExITNxQ3EwAFCAABKUoTAA0FAAAAAAAAAAA=
Have also tried it with spaces and get the same result.
Any help greatly appreciated. :-)
Hi,
Is there (or planned to be) a way to add a private key for mqtts connection?
For example connecting the broadlink-mqtt to AWS IOT as a thing that requires certificate
Thanks
Thanks for your effort. It looks a lot like the thing that I was about to build myself. Glad to see somebody got the same itch before me ;-) I'm going to try out the code on my system.
I tried building the Docker image, but it tripped over pip3 not being available in the image.
The easy fix was to add the package for it to the build:
RUN apk add py3-pip py3-cryptography py3-paho-mqtt
I Sucefully installed the addon on raspberry pi, but it seems its configured to start on docker as I receive the follwing error:
404 Client Error for http+docker://localhost/v1.40/containers/create?name=addon_c523f6d3_broadlink_bridge: Not Found ("No such image: c523f6d3/armv7-addon-broadlink_bridge:0.1.6")
Can I manage to work around on raspberry pi?
Hello,
i have this config
`[commands]
lamp/power-on = gGEAwgKCCsIKwgJCSoICggrCAoICggrCCsICQkqCQkJCQgrCAoIKwgKCCoJCggqCAoIKwgKCCoJCggqCAoIKwgKCCsICggrCAoIKggrCAoICggrCAoIKgkJCCsIKwgKCAABXQhUCCsICggJCSoJKggKCAoIKwgrBwoICggrCAoIKwgKCCoJCQkqCAoIKwgrCAoIKggKCSoICggKCCsIKwgKCCoICgkKBysICggrCAoIKwgKCCsICggqCAoIKwgKCCsICggqCQkIKwgKCCsICggqCSoICggKCCsICggrCAoIKgkqCAoIAAFeCFMJKggKCQkIKwgrCAoICggrCCsICggKCCsICgcrCQkIKwgKCCsICggrCCsICggqCQoIKggKCQoHKwkqCAoIKwgKCAoIKwgKCCsICggrCAoIKwgJCSoJCQgrCAoIKwgKCCsICggrCAoIKwgKCCsIKgkJCQkJKwcKCCsJCQgrCCsICggAAV4IVAgqCQoICggrCCsHCgkJCSoIKwgKCAoIKwgKCCsICggrCAoIKwgKCCsIKwgKCCsICggrCAoICggrCCsICggqCQkJCgcsCAkJKgkJCCsICggrCAoIKwgKCCsICggrCAoIKwgJCSoJCgcrCAsIKggrCAoICggrCAoIKwgKCCsIKwgKCAABXQhUCSoICggKCCsIKwgKCAoIKwgrCAoICggrCAoIKwgJCSoJCggqCQkILAgqCAoIKwgKCCsICggKCCsIKwgKCCsICggKCCsICggrCAoIKwgKCCoJCggrCAkILAgKCCsICQgrCAoIKwgKCCsICggrCCsICggKCCsICggrCAoIKwgrCAoIAAFdCVQIKgkKCAkILAgqCAoJCQkrCCoJCggKCCsICggrCAoIKwgKCCsICggrCCsICggrCAoIKwgKCAoIKwgrCAoIKwgKCAoIKwgKCCsICggrCAoIKwgKCCsICggrCAoIKwgKCCsICggrCAoIKwgKCCsIKwgKCAoIKwgKCCsICggrCCsICggAAV4IVAgqCQkJCQkrCCsICQkJCSoJKwgKCAkJKgkJCSsHCwgrCAoHLAgKCCsIKgkKCCsICQkrCAoICggrCCsICggrCAoICggrCAoIKwgKCCoJCggqCQoIKwgKCCsICggrCAoIKwgJCSsICggrCAoIKwgrCAoICggrCAoIKwgKCCsIKwgKCAAF3AAAAA=
[devices]
myalias = 192.168.178.21
[discovery]
timeout = 5
[http]
port = 8780`
and get error by initialisation
[s6-init] making user provided files available at /var/run/s6/etc...exited 0. [s6-init] ensuring user provided files have correct perms...exited 0. [fix-attrs.d] applying ownership & permissions fixes... [fix-attrs.d] done. [cont-init.d] executing container initialization scripts... [cont-init.d] done. [services.d] starting services [services.d] done. 2020-12-17 16:24:30,119 INFO Starting broadlink-bridge/0.1.6... 2020-12-17 16:24:30,121 INFO Reading config file: /config/broadlink-bridge.ini 2020-12-17 16:24:30,122 INFO Registering command: lamp/power-on Traceback (most recent call last): File "/usr/local/bin/broadlink-bridge", line 8, in <module> sys.exit(main()) File "/usr/local/lib/python3.9/site-packages/broadlink_bridge/cli.py", line 59, in main REGISTRY.set_command(command, payload) File "/usr/local/lib/python3.9/site-packages/broadlink_bridge/__init__.py", line 66, in set_command self._commands[command] = ir_decode(data)[0] File "/usr/local/lib/python3.9/site-packages/broadlink_bridge/util.py", line 63, in ir_decode code = base64.b64decode(code) File "/usr/local/lib/python3.9/base64.py", line 87, in b64decode return binascii.a2b_base64(s) binascii.Error: Invalid base64-encoded string: number of data characters (1209) cannot be 1 more than a multiple of 4 [cmd] /run.sh exited 1 [cont-finish.d] executing container finish scripts... [cont-finish.d] done. [s6-finish] waiting for services. [s6-finish] sending all processes the TERM signal.
It is the 100% working code.
Hi @lbschenkel,
I've realized that we have similar projects that share the same name.
Last year, I created a HTTP to Broadlink service written in Node.js.
You can find it on GitHub & NPM.
To avoid confusion, would you be interested in listing each others project in the README?
For instance, I would add something like "If you are looking for a similar project written in Python, check out broadlink-bridge by lbschenkel." and will include a link to this repo.
Let me know your thoughts,
-- Stephen
it would be great to get updates of the broadlink devices via mqtt
Hi,
looks like command repeats doesnt work for IR, at least i can't debug to provide more info.
Non of these work
❯ curl -X POST -d "5*JgBQAAABJpITNhQ1FBEUNhMSEzYTEhQ1FDYTEhM2FDUUERQSEzYTNhQ1FBEUEhMSExITNhMSEzYUERQ2EzYTNxM2ExITNhMSEwAEzQABJkkTAA0FAAAAAAAA" 192.168.1.XXX:8780/device/rm4
❯ curl -X POST -d "fireplace/power" 192.168.1.XXX:8780/device/rm4
where:
[commands]
fireplace/power = 2*JgBQAAABJpITNhQ1FBEUNhMSEzYTEhQ1FDYTEhM2FDUUERQSEzYTNhQ1FBEUEhMSExITNhMSEzYUERQ2EzYTNxM2ExITNhMSEwAEzQABJkkTAA0FAAAAAAAA
Can you please help with this, at least can tell how to debug
Ctrl + C
, Ctrl + Z
, or Ctrl + Pause / Break
don't work in this application and I have to terminate the process manually. Can this be supported?
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.