Using those dipswitch-controlled rf switches with home-assistant

Ich benutze einige dieser billigen Funksteckdosen mit Mäuseklavier (dip-switch) auf der Rückseite. Die will ich natürlich auch mit homeassistant benutzen. Leider braucht die von homeassistant verwendete rpi-rc bibliothek einen Integer als Code. Da ich keinen Konverter finden konnte hier mein quick-n-dirty Konverterscript:

 !/usr/bin/env python3
 import argparse
 def codify(code):
     return code.replace("0", "00").replace("1", "01")
 parser = argparse.ArgumentParser(description='Sends a decimal code via a 433/315MHz GPIO device')
 parser.add_argument('code', metavar='CODE', type=str, 
                     help="zeroes and ones from the dip switch ('up'=1, 'down'=0)")
 args = parser.parse_args()
 code= args.code.replace('1','3').replace('0','1').replace('3','0')
 code_off= codify(code+'00')
 code_on= codify(code+'01')
 print("off: {}".format(int(code_off, 2)))
 print("on:  {}".format(int(code_on, 2)))

 

Ruft man es mit der Einstellung des Mäuseklaviers aus dem Bild als Nullen und Einsen auf:

 

python dipswitch_convert.py 1010110000
off: 1115472
on: 1115473

 

Bekommt man die Integercodes für an und aus, die man mit Homeassistant oder der rpi-rf Kommandozeile verwenden kann:

 

rpi-rf_send -g 5 1115472