Revive Hardware Restarter API Library
Project description
pyrevive
Revive Hardware Restarter API Library
This Python package is meant for interfacing with the Revive Hardware Restarter HTTP API. Revive is a hardware restarter and monitor for cryptocurrency mining rigs.
You can find out more and buy one here
If you find this library helpful, donations are greatly appreciated:
- Ethereum: 0x7472a4812200fc320793a946f027d559e63b164d
- Ethereum Classic: 0x20282a304c20399b6534cef6196a99978cb89588
- Bitcoin: 1LvnfMGfz8xTaZgi25DiRFaJoFvpAPncT5
- Bitcoin Cash: 1Ec3CPq3WPsWT7fQaDGgTYkVPNtMZ3CVaA
- Litecoin: LSZBbS7EsKnjXQ1FKxYuAmR5quzEazXfm1
- Electroneum: etnk3yDpybAEBqz3nq63qmev4thRi9eFH64CVKzZc2w3A7vehpZkGvd97uSWxtmtAwjTnfKEp9Rup3md7nZyu9Q49VzZQKhxWN
Installing using PIP
pip install pyrevive
Installing from source
git clone https://github.com/RevolutionRigs/pyrevive.git
cd pyrevive/
pip install .
If you do not want to install using pip you may install using setup.py
git clone https://github.com/RevolutionRigs/pyrevive.git
cd pyrevive/
python setup.py install
Importing
import pyrevive
Connecting
The connect() method takes two arguments: host[:port], authorizationKey The authorization key can be found on the bottom of your Revive.
revive = pyrevive.connect("192.168.1.254", "authorizationKey")
Power
Perform power on, off, reset functions on a Revive port (aka rig)
Power on rig 1
revive.power.on(1)
Power off rig 1
revive.power.off(1)
Power cycle rig 1
All cycle/reset/restart methods are aliases of one another and do the same thing
revive.power.cycle(1)
revive.power.reset(1)
revive.power.restart(1)
Power on rigs 1-16
for rig in range(1, 17):
revive.power.on(rig)
Device
Device specific actions and authorization
Device Authorization check
revive.device.auth()
Get Device ID
revive.device.id()
Device Hello message (currently returns device ID)
revive.device.hello()
Rig
Rig specific methods: get() and update()
Rig.Get
The revive.rig.get() method takes an integer (1-16) as the rig/port number or no argument to get information on all port numbers. Returns a JSON string with the values. The API is currently broken on Revive and only port 1 is returned, regardless of which port you specify.
# Get information about all ports/rigs
res = revive.rig.get()
print(res)
# Get information about port/rig 1
res = revive.rig.get(1)
print(res)
Rig.Update
Updates the rig (aka port) with the specified information. It takes a Python dict as an argument. Possible fields are:
- port (int, 1-16, required) - physical port which will be updated. We don't have rig id, instead we use this port number
- name (char) - name of the rig
- ip (IP address) - IP address of the rig, used when mode is set to watchdog
- mode (char, manual|watchdog|api)
- maintenance (boolean) - not used for now
payload = { "port": 3, "name": "RRMS40U", "ip": "192.168.100.101", "mode": "manual", "maintenance": False }
res = revive.rig.update(payload)
print(res)
Config
Retrieves and sets network and watchdog information on the Revive.
Config.Network
The revive.config.network object sets the following read-write variables:
- revive.config.network.mode
- revive.config.network.ip
- revive.config.network.netmask
- revive.config.network.gateway
- revive.config.network.primaryDNS
- revive.config.network.secondaryDNS
Viewing
You can view the current settings in two ways. Using a helper method show():
revive.config.network.show()
Or each individual setting:
print(revive.config.network.mode)
print(revive.config.network.ip)
print(revive.config.network.netmask)
print(revive.config.network.gateway)
print(revive.config.network.primaryDNS)
print(revive.config.network.secondaryDNS)
There is also a dictionary on the network object 'settings' that you can view the settings as well:
print(revive.config.network.settings)
Updating
The individual settings are read-write and can be changed and then saved back to the Revive using the save() method:
revive.config.network.show()
revive.config.network.ip = "10.1.1.254"
revive.config.network.netmask = "255.255.255.0"
revive.config.network.gateway = "10.1.1.1"
revive.config.network.primaryDNS = "8.8.8.8"
revive.config.network.secondaryDNS = "8.8.4.4"
res = revive.config.network.save()
print(res)
revive.config.network.show()
Config.Watchdog
The Revive watchdog feature has 3 settings you can modify. The revive.config.watchdog object has three read-write variables:
- revive.config.watchdog.settings
- revive.config.watchdog.pingInterval
- revive.config.watchdog.firstResetAfter
- revive.config.watchdog.anotherResetEvery
Viewing
You can view the current settings in two ways. Using a helper method show():
revive.config.watchdog.show()
Or you can view the settings individually:
print(revive.config.watchdog.settings)
print(revive.config.watchdog.pingInterval)
print(revive.config.watchdog.firstResetAfter)
print(revive.config.watchdog.anotherResetEvery)
There is also a dictionary on the watchdog object 'settings' that you can view the settings as well:
print(revive.config.watchdog.settings)
Updating
The individual settings are read-write and can be changed and then saved back to the Revive using the save() method:
revive.config.watchdog.show()
revive.config.watchdog.pingInterval = "5"
revive.config.watchdog.firstResetAfter = "90"
revive.config.watchdog.anotherResetEvery = "120"
res = revive.config.watchdog.save()
print(res)
revive.config.watchdog.show()
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.