danielweidman / flipper-pixmob-ir-codes

Control your PixMob wristbands at home with a Flipper Zero
MIT License
195 stars 6 forks source link

Translating the code to Base64 #1

Closed lasry1 closed 1 year ago

lasry1 commented 2 years ago

Hello,

I'm trying to convert the codes to Broadlink Base64 from the raw data in this repo, my issue is that usually the raw data has + or - to determine how long to send a signal or for how long not sending signals.

I can only see positive values, do you know how is the raw data on the flipper zero device?

Thanks in advance

lasry1 commented 2 years ago

I think i figured it out. It's alternatively + and - I just lighted up the wristbands with a Broadlink RM mini 3 IR emitter and Home Assistant.

I will investigate more and create a repo for it

Thanks for your detailed information on both repos! (my flipperzero is ordered but without a date yet so i wanted to control them before it arrives lol)

danielweidman commented 2 years ago

Sweet! Glad you were able to get that figured out. Sounds pretty cool.

If you make code for a simple file converter, maybe other people with Flipper IR files would appreciate having that tool. Just a thought.

Best of luck

lasry1 commented 2 years ago

Yes it works! I write down here the steps if you want to add it to your repo so people could use the Broadlink IR transmitters or others to use the wristbands.

  1. Install the package: pip install git+https://github.com/elupus/irgen.git#egg=irgen

  2. Take a code from the .ir file of this repo you'd like to convert as an example i'm taking: name: RED type: raw frequency: 38000 duty_cycle: 0.330000 data: 1400 1400 700 700 700 1400 700 2800 700 2100 1400 700 700 700 700 1400 1400 2800 1400 2800 700

  3. to translate the IR data to Broadlink which uses Base64, you need to add aternatively a '+' and a '-' before each of the numbers. Example: +1400 -1400 +700 -700 +700 -1400 +700 -2800 +700 -2100 +1400 -700 +700 -700 +700 -1400 +1400 -2800 +1400 -2800 +700

  4. Execute the command below, replacing xxxxx with the step from number 3: python3 -m irgen -i raw -d xxxxx -o broadlink_base64 Example: python3 -m irgen -i raw -d +1400 -1400 +700 -700 +700 -1400 +700 -2800 +700 -2100 +1400 -700 +700 -700 +700 -1400 +1400 -2800 +1400 -2800 +700 -o broadlink_base64 which returns: JgAYAC4uFxcXLhdcF0UuFxcXFy4uXC5cFwANBQ==

That's it, you have the Base64 code for the Broadlink IR transmitter

As extra information, i do use a RM mini3 with HomeAssistant. I create scripts for some of the colours and then with node red i'm able to do the effects i wish. Example from the scripts.yaml:

pulseras_rojo: sequence:

Then if i want to have that colour ON for several seconds, i just make an automation with nodered having that script on and on and on... until the time required. You can also mix and match colours and effects and trigger it with a button, sound, nfc card or whatever you'd like. If you want to dig deeper into this let me know and i'll try to help.

danielweidman commented 2 years ago

That's super awesome! Wow, thanks for the detailed instructions. Maybe I'll make a script to combine the steps together and read in all the codes for a .IR file and output a CSV with the button/code name and corresponding base64 or something.

Your HomeAssistant integration sounds cool as heck. Would love to hear more about how you are using that. I've never set up HomeAssistant but maybe this could be an excuse haha. I'll for sure look into getting a Broadlink thing.

lasry1 commented 2 years ago

It's all thanks to your work mate. That'll be fantastic i haven't got much time to do the script. Coding is something i don't do very often.

I have exported the Pixmob data from home assistant to broadlink and uploaded the profile into the Broadlink database. Now if you have a Broadlink IR transmitter (like the RM mini3 or others) you can add the wristbands searching under 'LED Light Strip' > unofficial > Pixmob

I have added colours, slow colours and 2 effects i created with home assistant (some colours fast and other slow)

danielweidman commented 2 years ago

That's great! I just ordered a Broadlink RM mini3 and I look forward to playing with it and using the instructions you provided :)

danielweidman commented 2 years ago

@lasry1 I got the device today! Quick thing, I searched for "Pixmob" in the "Unofficial" section of the "LED Light Strip" category in the Broadlink app but can't find it. Am I doing something obviously wrong?

20220822_131056

Either way I imagine I'll be able to get it as a user-defined remote, just checking in case there's something obvious since I haven't used the app before.

Thanks!

lasry1 commented 2 years ago

That’s really odd. I can find it under that section, could it be the database for EU is different from yours? the old app is named “ihc for eu” but the new is only “broadlink”. I can only find the config in the broadlink app

Otherwise you can still learn it from your Flipper Zero

danielweidman commented 2 years ago

Cool, maybe I'll try the EU database, thanks.

I made a script to bulk convert the Flipper codes to Broadlink format with the irgen package you linked to. Results (in case you want any more colors but don't feel like doing the conversion manually):

Button: RED
JgAYAC4uFxcXLhdcF0UuFxcXFy4uXC5cFwANBQ==
Button: RED_FD_1
JgAkAC4uFxcXLhdcF0UuFxcXFy4uXC5cF0UXFy4XF0UXXC5cFwANBQAAAAA=
Button: RED_FD_2
JgAmAC4uFxcXLhdcF0UuFxcXFy4uXC5cFy4XLi4XFxcXFxdcLlwXAA0FAAA=
Button: RED_FD_3
JgAmAC4uFxcXLhdcF0UuFxcXFy4uXC5cF0UXFy4XFxcXFxdcLlwXAA0FAAA=
Button: RED_FD_4
JgAkAC4uFxcXLhdcF0UuFxcXFy4uXC5cF1wuLhdFFxcXLi5cFwANBQAAAAA=
Button: RED_FD_5
JgAkAC4uFxcXLhdcF0UuFxcXFy4uXC5cF0UXFy4XFy4uXC5cFwANBQAAAAA=
Button: RED_FD_6
JgAkAC4uFxcXLhdcF0UuFxcXFy4uXC5cFy4XLi4XFy4uXC5cFwANBQAAAAA=
Button: GRN
JgAYAC4uFxcXFy5cFy4XLhcuFy4uXC5cFwANBQ==
Button: GRN_FD_1
JgAkAC4uFxcXFy5cFy4XLhcuFy4uXC5cF0UXFy4XF0UXXC5cFwANBQAAAAA=
Button: GRN_FD_2
JgAmAC4uFxcXFy5cFy4XLhcuFy4uXC5cFy4XLi4XFxcXFxdcLlwXAA0FAAA=
Button: GRN_FD_3
JgAmAC4uFxcXFy5cFy4XLhcuFy4uXC5cF0UXFy4XFxcXFxdcLlwXAA0FAAA=
Button: GRN_FD_4
JgAkAC4uFxcXFy5cFy4XLhcuFy4uXC5cF1wuLhdFFxcXLi5cFwANBQAAAAA=
Button: GRN_FD_5
JgAkAC4uFxcXFy5cFy4XLhcuFy4uXC5cF0UXFy4XFy4uXC5cFwANBQAAAAA=
Button: GRN_FD_6
JgAkAC4uFxcXFy5cFy4XLhcuFy4uXC5cFy4XLi4XFy4uXC5cFwANBQAAAAA=
Button: LT_GRN
JgAcABcXFxcuLi5cFy4XLhcuFxcXLhdFFy4XLhcADQUAAAAAAAAAAAAAAAA=
Button: LT_GRN_FD_1
JgAoABcXFxcuLi5cFy4XLhcuFxcXLhdFFy4XLhdFFxcuFxdFF1wuXBcADQU=
Button: LT_GRN_FD_2
JgAqABcXFxcuLi5cFy4XLhcuFxcXLhdFFy4XLhcuFy4uFxcXFxcXXC5cFwANBQAAAAAAAAAAAAAAAAAA
Button: LT_GRN_FD_3
JgAqABcXFxcuLi5cFy4XLhcuFxcXLhdFFy4XLhdFFxcuFxcXFxcXXC5cFwANBQAAAAAAAAAAAAAAAAAA
Button: LT_GRN_FD_4
JgAoABcXFxcuLi5cFy4XLhcuFxcXLhdFFy4XLhdcLi4XRRcXFy4uXBcADQU=
Button: LT_GRN_FD_5
JgAoABcXFxcuLi5cFy4XLhcuFxcXLhdFFy4XLhdFFxcuFxcuLlwuXBcADQU=
Button: LT_GRN_FD_6
JgAoABcXFxcuLi5cFy4XLhcuFxcXLhdFFy4XLhcuFy4uFxcuLlwuXBcADQU=
Button: YELGRN
JgAaABcXFxcuLi5cF0UXFxcuFy4XFxdFLlwXAA0FAAAAAAAAAAAAAAAAAAA=
Button: YELGRN_FD_1
JgAmABcXFxcuLi5cF0UXFxcuFy4XFxdFLlwXRRcXLhcXRRdcLlwXAA0FAAA=
Button: YELGRN_FD_2
JgAoABcXFxcuLi5cF0UXFxcuFy4XFxdFLlwXLhcuLhcXFxcXF1wuXBcADQU=
Button: YELGRN_FD_3
JgAoABcXFxcuLi5cF0UXFxcuFy4XFxdFLlwXRRcXLhcXFxcXF1wuXBcADQU=
Button: YELGRN_FD_4
JgAmABcXFxcuLi5cF0UXFxcuFy4XFxdFLlwXXC4uF0UXFxcuLlwXAA0FAAA=
Button: YELGRN_FD_5
JgAmABcXFxcuLi5cF0UXFxcuFy4XFxdFLlwXRRcXLhcXLi5cLlwXAA0FAAA=
Button: YELGRN_FD_6
JgAmABcXFxcuLi5cF0UXFxcuFy4XFxdFLlwXLhcuLhcXLi5cLlwXAA0FAAA=
Button: BLUE
JgAeABcXF0UuFxdcFy4XFxcuLhcXLhcXFxcXFxdFFwANBQAAAAAAAAAAAAA=
Button: BLUE_FD_1
JgAqABcXF0UuFxdcFy4XFxcuLhcXLhcXFxcXFxdFF0UXFy4XF0UXXC5cFwANBQAAAAAAAAAAAAAAAAAA
Button: BLUE_FD_2
JgAsABcXF0UuFxdcFy4XFxcuLhcXLhcXFxcXFxdFFy4XLi4XFxcXFxdcLlwXAA0FAAAAAAAAAAAAAAAA
Button: BLUE_FD_3
JgAsABcXF0UuFxdcFy4XFxcuLhcXLhcXFxcXFxdFF0UXFy4XFxcXFxdcLlwXAA0FAAAAAAAAAAAAAAAA
Button: BLUE_FD_4
JgAqABcXF0UuFxdcFy4XFxcuLhcXLhcXFxcXFxdFF1wuLhdFFxcXLi5cFwANBQAAAAAAAAAAAAAAAAAA
Button: BLUE_FD_5
JgAqABcXF0UuFxdcFy4XFxcuLhcXLhcXFxcXFxdFF0UXFy4XFy4uXC5cFwANBQAAAAAAAAAAAAAAAAAA
Button: BLUE_FD_6
JgAqABcXF0UuFxdcFy4XFxcuLhcXLhcXFxcXFxdFFy4XLi4XFy4uXC5cFwANBQAAAAAAAAAAAAAAAAAA
Button: LT_BLUE
JgAeABcXF0UuFxdcFy4XFxcuFxcXFxcXFxcuLhdFFwANBQAAAAAAAAAAAAA=
Button: LT_BLUE_FD_1
JgAqABcXF0UuFxdcFy4XFxcuFxcXFxcXFxcuLhdFF0UXFy4XF0UXXC5cFwANBQAAAAAAAAAAAAAAAAAA
Button: LT_BLUE_FD_2
JgAsABcXF0UuFxdcFy4XFxcuFxcXFxcXFxcuLhdFFy4XLi4XFxcXFxdcLlwXAA0FAAAAAAAAAAAAAAAA
Button: LT_BLUE_FD_3
JgAsABcXF0UuFxdcFy4XFxcuFxcXFxcXFxcuLhdFF0UXFy4XFxcXFxdcLlwXAA0FAAAAAAAAAAAAAAAA
Button: LT_BLUE_FD_4
JgAqABcXF0UuFxdcFy4XFxcuFxcXFxcXFxcuLhdFF1wuLhdFFxcXLi5cFwANBQAAAAAAAAAAAAAAAAAA
Button: LT_BLUE_FD_5
JgAqABcXF0UuFxdcFy4XFxcuFxcXFxcXFxcuLhdFF0UXFy4XFy4uXC5cFwANBQAAAAAAAAAAAAAAAAAA
Button: LT_BLUE_FD_6
JgAqABcXF0UuFxdcFy4XFxcuFxcXFxcXFxcuLhdFFy4XLi4XFy4uXC5cFwANBQAAAAAAAAAAAAAAAAAA
Button: MAG
JgAaABcXFxcuLi5cF0UuRRcXFxcuRRcXF0UXAA0FAAAAAAAAAAAAAAAAAAA=
Button: MAG_FD_1
JgAmABcXFxcuLi5cF0UuRRcXFxcuRRcXF0UXRRcXLhcXRRdcLlwXAA0FAAA=
Button: MAG_FD_2
JgAoABcXFxcuLi5cF0UuRRcXFxcuRRcXF0UXLhcuLhcXFxcXF1wuXBcADQU=
Button: MAG_FD_3
JgAoABcXFxcuLi5cF0UuRRcXFxcuRRcXF0UXRRcXLhcXFxcXF1wuXBcADQU=
Button: MAG_FD_4
JgAmABcXFxcuLi5cF0UuRRcXFxcuRRcXF0UXXC4uF0UXFxcuLlwXAA0FAAA=
Button: MAG_FD_5
JgAmABcXFxcuLi5cF0UuRRcXFxcuRRcXF0UXRRcXLhcXLi5cLlwXAA0FAAA=
Button: MAG_FD_6
JgAmABcXFxcuLi5cF0UuRRcXFxcuRRcXF0UXLhcuLhcXLi5cLlwXAA0FAAA=
Button: YEL
JgAYAC4uFxcXFy5cF0UXFxcuFy4uXC5cFwANBQ==
Button: YEL_FD_1
JgAkAC4uFxcXFy5cF0UXFxcuFy4uXC5cF0UXFy4XF0UXXC5cFwANBQAAAAA=
Button: YEL_FD_2
JgAmAC4uFxcXFy5cF0UXFxcuFy4uXC5cFy4XLi4XFxcXFxdcLlwXAA0FAAA=
Button: YEL_FD_3
JgAmAC4uFxcXFy5cF0UXFxcuFy4uXC5cF0UXFy4XFxcXFxdcLlwXAA0FAAA=
Button: YEL_FD_4
JgAkAC4uFxcXFy5cF0UXFxcuFy4uXC5cF1wuLhdFFxcXLi5cFwANBQAAAAA=
Button: YEL_FD_5
JgAkAC4uFxcXFy5cF0UXFxcuFy4uXC5cF0UXFy4XFy4uXC5cFwANBQAAAAA=
Button: YEL_FD_6
JgAkAC4uFxcXFy5cF0UXFxcuFy4uXC5cFy4XLi4XFy4uXC5cFwANBQAAAAA=
Button: PINK
JgAaABcXF0UuFxdcFy4XFxdcLi4XRRcXF0UXAA0FAAAAAAAAAAAAAAAAAAA=
Button: PINK_FD_1
JgAmABcXF0UuFxdcFy4XFxdcLi4XRRcXF0UXRRcXLhcXRRdcLlwXAA0FAAA=
Button: PINK_FD_2
JgAoABcXF0UuFxdcFy4XFxdcLi4XRRcXF0UXLhcuLhcXFxcXF1wuXBcADQU=
Button: PINK_FD_3
JgAoABcXF0UuFxdcFy4XFxdcLi4XRRcXF0UXRRcXLhcXFxcXF1wuXBcADQU=
Button: PINK_FD_4
JgAmABcXF0UuFxdcFy4XFxdcLi4XRRcXF0UXXC4uF0UXFxcuLlwXAA0FAAA=
Button: PINK_FD_5
JgAmABcXF0UuFxdcFy4XFxdcLi4XRRcXF0UXRRcXLhcXLi5cLlwXAA0FAAA=
Button: PINK_FD_6
JgAmABcXF0UuFxdcFy4XFxdcLi4XRRcXF0UXLhcuLhcXLi5cLlwXAA0FAAA=
Button: OR
JgAaABcXFxcuLi5cF0UXFxcuFxcXLhdFLlwXAA0FAAAAAAAAAAAAAAAAAAA=
Button: OR_FD_1
JgAmABcXFxcuLi5cF0UXFxcuFxcXLhdFLlwXRRcXLhcXRRdcLlwXAA0FAAA=
Button: OR_FD_2
JgAoABcXFxcuLi5cF0UXFxcuFxcXLhdFLlwXLhcuLhcXFxcXF1wuXBcADQU=
Button: OR_FD_3
JgAoABcXFxcuLi5cF0UXFxcuFxcXLhdFLlwXRRcXLhcXFxcXF1wuXBcADQU=
Button: OR_FD_4
JgAmABcXFxcuLi5cF0UXFxcuFxcXLhdFLlwXXC4uF0UXFxcuLlwXAA0FAAA=
Button: OR_FD_5
JgAmABcXFxcuLi5cF0UXFxcuFxcXLhdFLlwXRRcXLhcXLi5cLlwXAA0FAAA=
Button: OR_FD_6
JgAmABcXFxcuLi5cF0UXFxcuFxcXLhdFLlwXLhcuLhcXLi5cLlwXAA0FAAA=
Button: WHITISH
JgAaABcXF0UuFxdcFy4XFxdcLi4XRRcuFy4XAA0FAAAAAAAAAAAAAAAAAAA=
Button: WHITISH_FD_1
JgAmABcXF0UuFxdcFy4XFxdcLi4XRRcuFy4XRRcXLhcXRRdcLlwXAA0FAAA=
Button: WHITISH_FD_2
JgAoABcXF0UuFxdcFy4XFxdcLi4XRRcuFy4XLhcuLhcXFxcXF1wuXBcADQU=
Button: WHITISH_FD_3
JgAoABcXF0UuFxdcFy4XFxdcLi4XRRcuFy4XRRcXLhcXFxcXF1wuXBcADQU=
Button: WHITISH_FD_4
JgAmABcXF0UuFxdcFy4XFxdcLi4XRRcuFy4XXC4uF0UXFxcuLlwXAA0FAAA=
Button: WHITISH_FD_5
JgAmABcXF0UuFxdcFy4XFxdcLi4XRRcuFy4XRRcXLhcXLi5cLlwXAA0FAAA=
Button: WHITISH_FD_6
JgAmABcXF0UuFxdcFy4XFxdcLi4XRRcuFy4XLhcuLhcXLi5cLlwXAA0FAAA=
Button: TURQ
JgAaABcXFxcuLi5cFy4XFy4uFy4uXBcXF0UXAA0FAAAAAAAAAAAAAAAAAAA=
Button: TURQ_FD_1
JgAmABcXFxcuLi5cFy4XFy4uFy4uXBcXF0UXRRcXLhcXRRdcLlwXAA0FAAA=
Button: TURQ_FD_2
JgAoABcXFxcuLi5cFy4XFy4uFy4uXBcXF0UXLhcuLhcXFxcXF1wuXBcADQU=
Button: TURQ_FD_3
JgAoABcXFxcuLi5cFy4XFy4uFy4uXBcXF0UXRRcXLhcXFxcXF1wuXBcADQU=
Button: TURQ_FD_4
JgAmABcXFxcuLi5cFy4XFy4uFy4uXBcXF0UXXC4uF0UXFxcuLlwXAA0FAAA=
Button: TURQ_FD_5
JgAmABcXFxcuLi5cFy4XFy4uFy4uXBcXF0UXRRcXLhcXLi5cLlwXAA0FAAA=
Button: TURQ_FD_6
JgAmABcXFxcuLi5cFy4XFy4uFy4uXBcXF0UXLhcuLhcXLi5cLlwXAA0FAAA=
lasry1 commented 2 years ago

Thats great! Thanks!

Kokikol1 commented 2 years ago

Man I was looking for this like crazy!!! Thank you so much!

I was able to use the wristband with the broadlink remote but only in EU server. It would be awesome if you update it with more functions and also in the Americas server. Really thank you very much

JulioC commented 2 years ago

I converted all commands in this repository to Broadlink format. You can use them with Broadlink Manager (rename extensions to .json and drop in the config folder) or with Homeassistant by picking the codes manually

Commands.txt

danielweidman commented 2 years ago

Wow, thanks @JulioC! That's great. Could we get that in the main repo (or possibly a new one?). I'd be happy to just add it in a new folder to here but if you would rather create a PR or new Broadlink-only repo that could make sense.

@Kokikol1, do you know the steps to get it into the default selection for the Americas server by chance? I tried adding it in some way but it sounds like it didn't work.