Module to manipulate Orvibo devices, such as s20 wifi sockets and AllOne IR/RF433Mhz blasters to control whatever devices via emiting IR signal (TVs, AV receivers, air conditioners, etc) or via emiting RF 433MHz signal (garage doors, radio toys, Orvibo Smart Switches)
- python-orvibo module which currently supports Orvibo S20 sockets.
- Lots of info was found in ninja-allone library
- S20 data analysis by anonymous is here
- Get rid of keeping connection to the Orvibo device, which breaks further discover
- Learning and emiting RF 433MHz signal
- Test under linux platform
- Consider python 2.7 support
- Add mac and type cmd line arguments in order decrease execution latency (ver 1.1)
- API for adding new Orvibo device to the network
- Python setup script
- Orvibo s20 event handler
- Python (tested on Win7 with python 2.7 and python 3.4 and Ubuntu with python 3.2)
please let me know about apps not listed here ![]()
orvibo.py [-i <ip> [-m <mac> -x <socket/irda>] [-s on|off] | [-t <file_to_save_signal>] | [-e <file_with_signal_to_emit>]]> python orvibo.py
Orvibo[type=socket, ip=192.168.1.45, mac=b'acdf238d1d2e']
Orvibo[type=irda, ip=192.168.1.37, mac=b'accf4378efdc']> python orvibo.py -i 192.168.1.45
Orvibo[type=socket, ip=192.168.1.45, mac=b'acdf238d1d2e']
Is enabled: TrueFaster than just discovering by ip, since discovering step is skipped here.
> python orvibo.py -i 192.168.1.45 -m acdf238d1d2e -x socket
Orvibo[type=socket, ip=192.168.1.45, mac=b'acdf238d1d2e']
Is enabled: TrueSame arguments can be used for all examples below.
> python orvibo.py -i 192.168.1.45 -s on
Orvibo[type=socket, ip=192.168.1.45, mac=b'acdf238d1d2e']
Already enabled.> python orvibo.py -i 192.168.1.37 -t test.ir
Orvibo[type=irda, ip=192.168.1.37, mac=b'accf5378dfdc']
DoneThe same command works to grab signal from remotes with 433MHz radio frequency.
> python orvibo.py -i 192.168.1.37 -e test.ir
Orvibo[type=irda, ip=192.168.1.37, mac=b'accf5378dfdc']
DoneThe same command works to emit grabbed RF 433MHz signal.
from orvibo import Orvibo
for ip in Orvibo.discover():
print('IP =', ip)
for args in Orvibo.discover().values():
device = Orvibo(*args)
print(device)Result
IP = 192.168.1.45
IP = 192.168.1.37
Orvibo[type=socket, ip=192.168.1.45, mac=b'acdf238d1d2e']
Orvibo[type=irda, ip=192.168.1.37, mac=b'accf4378efdc']
device = Orvibo.discover('192.168.1.45')
print(device)Result:
Orvibo[type=socket, ip=192.168.1.45, mac=b'acdf238d1d2e']
only for devices with type 'socket'
device = Orvibo('192.168.1.45')
print('Is socket enabled: {}'.format(device.on))
device.on = not device.on # Toggle socket
print('Is socket enabled: {}'.format(device.on))Result:
Is socket enabled: True
Is socket enabled: False
only for devices with type 'irda'
device = Orvibo('192.168.1.37')
ir = device.learn('test.ir', timeout = 15) # AllOne red light is present,
# waiting for ir signal for 15 seconds and stores it to test.ir file
if ir is not None:
# Emit IR code from "test.ir"
device.emit('test.ir')
# Or with the same result
# device.emit(ir)The same code works to grab/emit signal from remotes with 433MHz radio frequency.