GithubHelp home page GithubHelp logo

anselal / antminer-monitor Goto Github PK

View Code? Open in Web Editor NEW
231.0 36.0 144.0 858 KB

Cryptocurrency ASIC mining hardware monitor using a simple web interface

License: GNU General Public License v3.0

Python 64.42% HTML 25.24% CSS 5.66% JavaScript 3.27% Mako 0.84% Shell 0.58%
antminer-monitor bitmain antminer monitor cryptocurrency bitcoin litecoin dash python mining

antminer-monitor's Introduction

Hello, folks!

My name is Anastasios Selalmazidis and I'm an IT Manager. I'm from Greece, living in Thessaloniki and currently working at the Aristotle University of Thessaloniki. You can find me on Twitter, or on LinkedIn.

🔧 Technologies & Tools

📈 GitHub Stats

Anastasios's GitHub Stats

antminer-monitor's People

Contributors

anselal avatar sergioclemente avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

antminer-monitor's Issues

Specify custom RPC port

I tried using ip:port syntax but that didn't work. There should be a way to specify a non-standard port for cgminer. I have multiple machines behind a single IP and the antminer-monitor is running on a vm outside of that network. Port forwarding isn't a problem but I need a unique port for each machine. Currently the software doesn't appear to support a non-standard port.

Integration of EthOS miner API in Antminer-Monitor-Master App

Broadening the horizons of the Antminer-Monitor-Master App makes perfect sense now that GPU mining is becoming more and more popular.

At present, EthOS have over 50,000 miners working with their OS so their software is well developed and regularly maintained.

An example of the EthOS monitor can be found here: 48061f.ethosdistro.com

Example API:

{"rigs":{"91c5eb":{"condition":"high_load","version":"1.2.9","driver":"amdgpu","miner":"claymore-zcash","gpus":"6","miner_instance":"6","miner_hashes":"353.91 352.42 328.95 353.48 351.82 352.11","bioses":"xxx-xxx-xxx xxx-xxx-xxx xxx-xxx-xxx xxx-xxx-xxx xxx-xxx-xxx xxx-xxx-xxx","meminfo":"GPU0:01.00.0:Radeon RX 580:xxx-xxx-xxx:Samsung K4G80325FB:GDDR5:Polaris10\nGPU1:04.00.0:Radeon RX 580:xxx-xxx-xxx:Samsung K4G80325FB:GDDR5:Polaris10\nGPU2:07.00.0:Radeon RX 580:xxx-xxx-xxx:Samsung K4G80325FB:GDDR5:Polaris10\nGPU3:08.00.0:Radeon RX 580:xxx-xxx-xxx:Samsung K4G80325FB:GDDR5:Polaris10\nGPU4:0a.00.0:Radeon RX 580:xxx-xxx-xxx:Samsung K4G80325FB:GDDR5:Polaris10\nGPU5:0b.00.0:Radeon RX 580:xxx-xxx-xxx:Samsung K4G80325FB:GDDR5:Polaris10","vramsize":"8 8 8 8 8 8","drive_name":"Ultra USB 3.0 4C530001130119101042","mobo":"Z270-Gaming K3","lan_chip":"Qualcomm Atheros Killer E2500 Gigabit Ethernet Controller (rev 10)","connected_displays":"","ram":"4","rack_loc":"miner1","ip":"192.168.0.6","server_time":1515628268,"uptime":"287970","miner_secs":287901,"rx_kbps":"0.08","tx_kbps":"0.22","load":"4.3","cpu_temp":"50","freespace":4.3,"hash":2092.69,"pool":"","temp":"70.00 67.00 72.00 48.00 67.00 55.00","powertune":"7 7 7 7 7 7","voltage":"1.150 1.150 1.150 1.150 1.150 1.150","watts":null,"fanrpm":"3282 3282 3282 3282 3282 3282","core":"1450 1450 1400 1450 1450 1450","mem":"2200 2200 2000 2200 2200 2200"},"2af51a":{"condition":"mining","version":"1.2.9","driver":"nvidia","miner":"ewbf-zcash","gpus":"6","miner_instance":"6","miner_hashes":"528.00 518.00 513.00 515.00 513.00 512.00","bioses":"86.04.85.00.72 86.04.85.00.72 86.04.85.00.72 86.04.85.00.72 86.04.85.00.72 86.04.85.00.72","meminfo":"GPU0:01:00.0:GeForce GTX 1070 Ti:86.04.85.00.72:Unknown\nGPU1:02:00.0:GeForce GTX 1070 Ti:86.04.85.00.72:Unknown\nGPU2:04:00.0:GeForce GTX 1070 Ti:86.04.85.00.72:Unknown\nGPU3:05:00.0:GeForce GTX 1070 Ti:86.04.85.00.72:Unknown\nGPU4:07:00.0:GeForce GTX 1070 Ti:86.04.85.00.72:Unknown\nGPU5:08:00.0:GeForce GTX 1070 Ti:86.04.85.00.72:Unknown","vramsize":"8 8 8 8 8 8","drive_name":"Ultra Fit 4C531001570906104421","mobo":"PRIME Z270-A","lan_chip":"Intel Corporation Ethernet Connection (2) I219-V","connected_displays":"1920x1080","ram":"4","rack_loc":"miner3","ip":"192.168.1.95","server_time":1515628360,"uptime":"16121","miner_secs":16057,"rx_kbps":"0.05","tx_kbps":"0.35","load":"1.1","cpu_temp":"30","freespace":4,"hash":3099,"pool":"zhash.pro:3057","temp":"49 50 45 44 40 48","powertune":"2 2 2 2 2 2","voltage":"0.00 0.00 0.00 0.00 0.00 0.00","watts":"146 150 150 144 147 149","fanrpm":"3150 3150 3150 3150 3150 3150","core":"1809 1822 1809 1822 1822 1809","mem":"4374 4374 4374 4374 4374 4374"}},"total_hash":5191.69,"alive_gpus":12,"total_gpus":12,"alive_rigs":2,"total_rigs":2,"current_version":"1.2.9","avg_temp":54.585,"capacity":"100.0","per_info":{"claymore-zcash":{"hash":2093,"per_alive_gpus":6,"per_total_gpus":6,"per_alive_rigs":1,"per_total_rigs":1,"per_hash-gpu":"348.8","per_hash-rig":"2093.0","current_time":1515628434},"ewbf-zcash":{"hash":3099,"per_alive_gpus":6,"per_total_gpus":6,"per_alive_rigs":1,"per_total_rigs":1,"per_hash-gpu":"516.5","per_hash-rig":"3099.0","current_time":1515628434}}}

create_db doesn't output anything

  • While creating the database the script doesn't inform the user if the database was successfully created.
  • If the database already exists the script throws an exception and prints a Traceback

To fix this we add a try block and print a message on success or fail

http://.... not found for my S9

I have installed the antminer-monitor succesfully on my Windows 10. I have launch the app in my chrome browser and have added my S9 ip addresses. The problem is that the software adds http:// in front of the ip addresses and this makes the S9 not availlable.

The software gives this STATUS message for each of my S9: Error: Check connection or IP Address

What am I doing wrong? Should I edit my hosts file?

N.B.: In my web browser I can access let say a S9 like this:
10.0.0.51

but if I try

http://10.0.0.51

it gives a dns error. So I suppose antminer-monitor should not use http:// in the Windows version.

Uptime

Another nice feature would be to add the uptime in the Active-Miners table. This is actually pretty straight forward. I only need to convert the seconds to a more human readable format using the datetime.timedelta function.

Installation problems (noob questions)

Hi there - want to try you awesome tool but im struggling with python for hours :( (no coding skills)
Minera is not working for my L3+s and AwesomeMiner wont run on a Raspberry Pi - so you project would be perfect!

On a Windows machine i installed python 2.7 from the link in your description. In a command promt i downloaded the requirements and created a database. Seemed to be working.

Now i run the command: python run.py and this message appears:

C:\Python27>python run.py
 * Restarting with stat
 * Debugger is active!
 * Debugger PIN: 220-713-037
 * Running on http://0.0.0.0:5000/ (Press CTRL+C to quit)

Whats next? Tried to open this IP in a webbrowser or open the myminers.html file but none of this works. Sorry for my stupid questions - is my first time with python or anything like that.

My second issue - i want to run this script on a Raspberry Pi3. Can you give me some instructions how to get this working? Which OS for the Pi and so on?

Thank you VERY MUCH! (noob guy from twitter)

Low socket timeout causing KeyError: 'POOLS' & dark theme

I'm running it on windows 10 for 4xD3 and got an exception on
worker = miner_pools['POOLS'][0]['User']
in antminer.py with index "POOLS", so changed it for testing to
try: worker = miner_pools['POOLS'][0]['User'] except Exception as e: miner_pools = get_pools(miner.ip) worker = miner_pools['POOLS'][0]['User']
After this the monitor is now running for 12 hours without problems.

I also made a dark theme for the monitor. Maybe you like it also :-)
myminers.zip

Email notifications

Maybe in future, can add in the Selected Error type and allow send notify via Email in set timer. Will be good, no need to login system to check everytime ;)

Control

Just adding more to the Antminer-Monitor I would like to add there a reboot action for each Antminer assuming that user: root password: root as default and saved So we can root the miners from that option

Auto-refresh

It would be nice to have an auto-refresh feature, maybe even a counter like in the screenshot below.

antminer-monitor_auto-refresh-feature

Support for PORT

Hi there,

##I use the same network IP for all my miners, and only have a different port for each miner, if I fill in for example 192.168.1.200:4030, it won't work. I know this is not wrong or anything, but would it be possible to have support for ports as well to solve this quite simple issue?

Thank you

PS. Perhaps not have a separate input field box for field, but simply auto detect all ports on a given IP, or allow people to add : in the IP field. if no port, change nothing, same as now/currently. If mentioned a port, then use that one only :)

Download most updated version

Where can I download the most updated/recent version? So many things have been changed already, like other miners, port support, and so on. But when I download, it says still 0.2.0 with the same files, perhaps it's me being new on Github, not knowing exactly where to look for the latest zip file, lol.
Cheers.

KeyError: 'POOLS'

i'm running it on ubuntu 16.04.
i tried to add more than 70 L3+ miners to the monitor list.

here's what i see most of the times:

Traceback (most recent call last):
File "/usr/local/lib/python2.7/dist-packages/flask/app.py", line 1997, in call
return self.wsgi_app(environ, start_response)
File "/usr/local/lib/python2.7/dist-packages/flask/app.py", line 1985, in wsgi_app
response = self.handle_exception(e)
File "/usr/local/lib/python2.7/dist-packages/flask/app.py", line 1540, in handle_exception
reraise(exc_type, exc_value, tb)
File "/usr/local/lib/python2.7/dist-packages/flask/app.py", line 1982, in wsgi_app
response = self.full_dispatch_request()
File "/usr/local/lib/python2.7/dist-packages/flask/app.py", line 1614, in full_dispatch_request
rv = self.handle_user_exception(e)
File "/usr/local/lib/python2.7/dist-packages/flask/app.py", line 1517, in handle_user_exception
reraise(exc_type, exc_value, tb)
File "/usr/local/lib/python2.7/dist-packages/flask/app.py", line 1612, in full_dispatch_request
rv = self.dispatch_request()
File "/usr/local/lib/python2.7/dist-packages/flask/app.py", line 1598, in dispatch_request
return self.view_functionsrule.endpoint
File "/root/antminer-monitor-master/app/views/antminer.py", line 53, in miners
worker = miner_pools['POOLS'][0]['User']
KeyError: 'POOLS'

what should i do to fix that?

Custom 404 error page

I am thinking in adding a custom 404 error page that I found and really liked.
Since we don't have a logo for the AntminerMonitor yet I think it is OK if we add an irrelevant image.

I could really need some feedback on that.

404

Support for avalon 741 and 821

Anyone have an example of the JSON RPC data that cgminer returns?

I have some that are arriving and wanted to add support for this before they are here.

Antminer T9 support

Heres the output for pycgminer.py of my T9:

{u'STATUS': [{u'STATUS': u'S', u'Msg': u'BMMiner stats', u'Code': 70, u'When': 127916, u'Description': u'bmminer 1.0.0'}], u'STATS': [{u'Type': u'Antminer T9', u'CompileTime': u'Tue Feb 28 22:00:37 EST 2017', u'Miner': u'13.8.1.3', u'BMMiner': u'2.0.0'}, {u'miner_version': u'13.8.1.3', u'chain_hw11': 0, u'GHS 5s': u'12714.95', u'chain_xtime8': u'{}', u'temp_max': 84, u'Elapsed': 127743, u'temp2_10': 0, u'temp2_11': 0, u'temp2_12': 0, u'temp2_13': 0, u'temp2_14': 0, u'temp2_15': 0, u'temp2_16': 0, u'chain_acs4': u'', u'Wait': 0.0, u'Device Hardware%': 0.0, u'chain_acs11': u'', u'chain_acs10': u'', u'chain_acs13': u'', u'chain_acs12': u'', u'chain_acs15': u'', u'chain_acn9': 0, u'chain_acs16': u'', u'chain_rateideal15': 0.0, u'chain_rateideal14': 0.0, u'chain_rateideal16': 0.0, u'chain_rateideal11': 0.0, u'chain_rateideal10': 0.0, u'chain_rateideal13': 0.0, u'chain_rateideal12': 0.0, u'chain_rate4': u'', u'freq_avg1': 0.0, u'freq_avg2': 0.0, u'freq_avg3': 0.0, u'freq_avg4': 0.0, u'freq_avg5': 0.0, u'freq_avg6': 641.21, u'freq_avg7': 641.31, u'freq_avg8': 641.94, u'freq_avg9': 0.0, u'temp_num': 3, u'temp3': 0, u'temp2': 0, u'temp1': 0, u'frequency': u'656', u'temp7': 68, u'temp6': 70, u'temp5': 0, u'temp4': 0, u'temp9': 0, u'temp8': 73, u'chain_offside_7': u'0', u'Calls': 0, u'chain_hw2': 0, u'chain_rateideal5': 0.0, u'chain_hw1': 0, u'chain_hw6': 16, u'chain_hw7': 16, u'chain_hw4': 0, u'chain_rateideal4': 0.0, u'chain_hw8': 20, u'chain_hw9': 0, u'chain_rateideal7': 4167.27, u'fan1': 0, u'fan3': 5280, u'fan2': 0, u'fan5': 0, u'fan4': 0, u'fan7': 0, u'fan6': 4440, u'chain_acs5': u'', u'fan8': 0, u'chain_acs7': u' oooooooo oooooooo oooooooo oooooooo oooooooo oooooooo oooooooo o', u'chain_acs6': u' oooooooo oooooooo oooooooo oooooooo oooooooo oooooooo oooooooo o', u'chain_acs1': u'', u'chain_rate12': u'', u'chain_acs3': u'', u'chain_acs2': u'', u'chain_hw14': 0, u'chain_hw15': 0, u'chain_hw16': 0, u'chain_hw10': 0, u'chain_rateideal3': 0.0, u'chain_hw12': 0, u'chain_hw13': 0, u'fan_num': 2, u'chain_rate16': u'', u'chain_acn10': 0, u'chain_acn11': 0, u'chain_acn12': 0, u'chain_acn13': 0, u'chain_acn14': 0, u'chain_acn15': 0, u'chain_acn16': 0, u'chain_rateideal8': 4167.51, u'total_freqavg': 641.49, u'chain_xtime7': u'{}', u'chain_rate2': u'', u'chain_rate1': u'', u'STATS': 0, u'chain_hw3': 0, u'chain_acs14': u'', u'chain_rate6': u'4239.52', u'chain_acn8': 57, u'temp2_8': 69, u'temp2_9': 0, u'temp2_6': 72, u'temp2_7': 78, u'temp2_4': 0, u'temp2_5': 0, u'temp2_2': 0, u'temp2_3': 0, u'temp2_1': 0, u'chain_hw5': 0, u'chain_rate15': u'', u'chain_rate9': u'', u'chain_rate8': u'4242.09', u'Min': 99999999.0, u'temp3_13': 0, u'temp3_12': 0, u'temp3_11': 0, u'temp3_10': 0, u'chain_rate7': u'4233.34', u'temp3_16': 0, u'temp3_15': 0, u'temp3_14': 0, u'chain_rate3': u'', u'miner_count': 3, u'total_acn': 171, u'GHS av': 12726.94, u'freq_avg12': 0.0, u'freq_avg13': 0.0, u'freq_avg10': 0.0, u'freq_avg11': 0.0, u'freq_avg16': 0.0, u'freq_avg14': 0.0, u'freq_avg15': 0.0, u'chain_acn2': 0, u'Max': 0.0, u'chain_acn1': 0, u'chain_acn6': 57, u'chain_acn7': 57, u'chain_acn4': 0, u'chain_acn5': 0, u'temp13': 0, u'temp12': 0, u'temp11': 0, u'temp10': 0, u'temp16': 0, u'temp15': 0, u'temp14': 0, u'chain_acs9': u'', u'chain_acs8': u' oooooooo oooooooo oooooooo oooooooo oooooooo oooooooo oooooooo o', u'total_rate': 12714.95, u'chain_rateideal6': 4166.58, u'no_matching_work': 53, u'temp3_7': 82, u'temp3_6': 82, u'temp3_5': 0, u'temp3_4': 0, u'temp3_3': 0, u'temp3_2': 0, u'temp3_1': 0, u'chain_rateideal2': 0.0, u'chain_rateideal9': 0.0, u'ID': u'BC50', u'temp3_9': 0, u'temp3_8': 84, u'chain_rate5': u'', u'chain_rate14': u'', u'chain_rate13': u'', u'chain_rateideal1': 0.0, u'chain_xtime6': u'{}', u'chain_opencore_6': u'1', u'chain_opencore_7': u'1', u'chain_rate11': u'', u'chain_offside_8': u'0', u'chain_acn3': 0, u'chain_offside_6': u'0', u'total_rateideal': 12501.37, u'chain_rate10': u'', u'chain_opencore_8': u'1'}], u'id': 1}

How do I open the DB through the console?

I tried using sqlite directly and it didn't work. Any pointers?

~/antminer-monitor$ sqlite app/db/app.db
Unable to open database "app/db/app.db": file is encrypted or is not a database

HW Errors

Many users have request to add HW Errors to the table. According to http://cryptomining-blog.com/tag/hw-error-formula/ the formula for calculating the HW Errors is HW / (diffA + diffR + HW) * 100. Cgminer does not provide that info in JSON format but I found out that there is a key named Device Hardware% which is exactly what we are looking for !!!

Running as a daemon, or similar

After running this in a gnu screen session several days, i was wondering if there is a nice way to run the app as a daemon, and sending its log to a file.

I know i could create a separate session for it and start already detached with screen -dmS but i wanted a bit more clean solution.

  • for Linux i found a solution using supervisord
  • and a short search for the same on OSX i found this gist Setting up supervisord in Mac OS X
  • The only issue is that supervisord does not work on Windows
  • also supervisord does not work with Python3, but i dont see it as an issue for now, because antminer-monitor is also only requires Python2

To create the supervisor-conf and prepare the folder for logfiles i made a small shell script (this time already tested with Raspbian Stretch):
gen-supervisor-conf.sh.txt

after created the supervisor-conf a supervisorctl update has to be run to start antminer-monitor

Reboot when detected chips (Os) =/= 180

I have a couple of weird D3s that sometimes say 175-179 chips are Os and the rest are Xs and are fixed with a simple reboot on their static ip page, it'd be great to have a built in option to automatically reboot the miner if any Xs are detected.

Auto Ip Scanner

hi bro, i want to request auto ip scanner for this program. It's useful if you running a big farm, just one button can auto add in all the model sort by ip.

HW error rate

The HW error rate says 0% on all miners, is there an easy fix?

unable to open database file when create_db.py

version:0.2.0
platform:win10 python 2.7.13

run create_db.py:
Traceback (most recent call last):
File "D:\projects\antminer-monitor\create_db.py", line 4, in
db.create_all()
File "C:\ProgramData\Anaconda2\lib\site-packages\flask_sqlalchemy_init_.py", line 946, in create_all
self.execute_for_all_tables(app, bind, 'create_all')
File "C:\ProgramData\Anaconda2\lib\site-packages\flask_sqlalchemy_init
.py", line 938, in _execute_for_all_tables
op(bind=self.get_engine(app, bind), **extra)
File "C:\ProgramData\Anaconda2\lib\site-packages\sqlalchemy\sql\schema.py", line 3949, in create_all
tables=tables)
File "C:\ProgramData\Anaconda2\lib\site-packages\sqlalchemy\engine\base.py", line 1928, in _run_visitor
with self._optional_conn_ctx_manager(connection) as conn:
File "C:\ProgramData\Anaconda2\lib\contextlib.py", line 17, in enter
return self.gen.next()
File "C:\ProgramData\Anaconda2\lib\site-packages\sqlalchemy\engine\base.py", line 1921, in _optional_conn_ctx_manager
with self.contextual_connect() as conn:
File "C:\ProgramData\Anaconda2\lib\site-packages\sqlalchemy\engine\base.py", line 2112, in contextual_connect
self._wrap_pool_connect(self.pool.connect, None),
File "C:\ProgramData\Anaconda2\lib\site-packages\sqlalchemy\engine\base.py", line 2151, in _wrap_pool_connect
e, dialect, self)
File "C:\ProgramData\Anaconda2\lib\site-packages\sqlalchemy\engine\base.py", line 1465, in _handle_dbapi_exception_noconnection
exc_info
File "C:\ProgramData\Anaconda2\lib\site-packages\sqlalchemy\util\compat.py", line 203, in raise_from_cause
reraise(type(exception), exception, tb=exc_tb, cause=cause)
File "C:\ProgramData\Anaconda2\lib\site-packages\sqlalchemy\engine\base.py", line 2147, in _wrap_pool_connect
return fn()
File "C:\ProgramData\Anaconda2\lib\site-packages\sqlalchemy\pool.py", line 387, in connect
return _ConnectionFairy._checkout(self)
File "C:\ProgramData\Anaconda2\lib\site-packages\sqlalchemy\pool.py", line 766, in _checkout
fairy = _ConnectionRecord.checkout(pool)
File "C:\ProgramData\Anaconda2\lib\site-packages\sqlalchemy\pool.py", line 516, in checkout
rec = pool._do_get()
File "C:\ProgramData\Anaconda2\lib\site-packages\sqlalchemy\pool.py", line 1229, in _do_get
return self._create_connection()
File "C:\ProgramData\Anaconda2\lib\site-packages\sqlalchemy\pool.py", line 333, in _create_connection
return _ConnectionRecord(self)
File "C:\ProgramData\Anaconda2\lib\site-packages\sqlalchemy\pool.py", line 461, in init
self.__connect(first_connect_check=True)
File "C:\ProgramData\Anaconda2\lib\site-packages\sqlalchemy\pool.py", line 651, in __connect
connection = pool._invoke_creator(self)
File "C:\ProgramData\Anaconda2\lib\site-packages\sqlalchemy\engine\strategies.py", line 105, in connect
return dialect.connect(*cargs, **cparams)
File "C:\ProgramData\Anaconda2\lib\site-packages\sqlalchemy\engine\default.py", line 393, in connect
return self.dbapi.connect(*cargs, **cparams)
sqlalchemy.exc.OperationalError: (sqlite3.OperationalError) unable to open database file

Option to switch pool

It would be nice for it to allow switching pools. This is specially useful when profitability switched from one coin to another. Have to be careful how to expose this to not make the user interface too complex.

Hashing Speed

Please add in the hashing speed for this application. It will be usefull if you control over 50-100 miner. And also set the highlight once it's under speed.

Plus the reboot command too, easy for miner to softboot easily.

Could not open requirements file: [Errno 2] No such file or directory: 'requirements.txt'

This is occurring during the pip install -r requirements.txt initialization.

$ wget https://github.com/anselal/antminer-monitor.git
--2017-11-04 01:59:12-- https://github.com/anselal/antminer-monitor.git
Resolving github.com (github.com)... 192.30.253.112, 192.30.253.113
Connecting to github.com (github.com)|192.30.253.112|:443... connected.
HTTP request sent, awaiting response... 301 Moved Permanently
Location: https://github.com/anselal/antminer-monitor [following]
--2017-11-04 01:59:13-- https://github.com/anselal/antminer-monitor
Reusing existing connection to github.com:443.
HTTP request sent, awaiting response... 200 OK
Length: unspecified [text/html]
Saving to: ‘antminer-monitor.git’

antminer-monitor.git [ <=> ] 59.26K --.-KB/s in 0.09s

2017-11-04 01:59:13 (673 KB/s) - ‘antminer-monitor.git’ saved [60682]

$ ls
antminer-monitor.git dns_update_script.sh html
$ pip install -r requirements.txt
Could not open requirements file: [Errno 2] No such file or directory: 'requirements.txt'

ip address format and sorting

sorting in the table by addresses. so that the devices are displayed in order changed addresses to 192.168.007.000. After the changes, if you click on the link to the web interface - the address of the device is not correct. As with the address 192.168.007.011, the interface opens 192.168.7.9. How can this be remedied?

Show an indicator if the temperatures are high.

According to couple of threads in bitcointalk it seems the target temperatures should be below 70-75. We should indicate in the ui

I will be happy to do this once we figure it out how to expose.

Add DNS lookup and connect with port number

Enable DNS lookup so that this awesome software can connect via the internet to miners that have port forwarding enabled on firewalls

Example:
Instead of IP, we can state miner01.mycompany.net:8081
I assume that this monitor is connecting via port 80, so all we have to do is portforward port 80 on our router.
Then this would be a super super awesome software as you can monitor remotely your mining farm.

Adjusting / modifying threshold tempreture warning

Hi Anselal, firstly great work , for this lil app !! love it

was wondering is there a way i can modify to change the temperature warning msg to a higher number, ?
at the moment it is set to 80 i want to set to 95 , where about do modify this after i have created the db

Thanks so much in advance

Miners not being detected as active?

Heya, I tried adding my S9's but they are shown as inactive with Error: Check connection or IP Address?

Also, for the T9s should we add them as S9?

When i run pycgminer.py with the ip of one of the miners, I do get a response from it:

{u'STATUS': [{u'STATUS': u'S', u'Msg': u'BMMiner stats', u'Code': 70, u'When': 1503889968, u'Description': u'bmminer 1.0.0'}], u'STATS': [{u'Type': u'Antminer S9', u'CompileTime': u'Wed Jun 8 18:26:47 CST 2016', u'Miner': u'4.0.1.0', u'BMMiner': u'1.0.0'}, {u'GHS 5s': 11398.58, u'temp_max': 62, u'Elapsed': 54370, u'temp2_10': 0, u'temp2_11': 0, u'temp2_12': 0, u'temp2_13': 0, u'temp2_14': 0, u'temp2_15': 0, u'temp2_16': 0, u'Wait': 0.0, u'Device Hardware%': 0.0002, u'chain_acs11': u'', u'chain_acs10': u'', u'chain_acs13': u'', u'chain_acs12': u'', u'chain_acs15': u'', u'chain_acs14': u'', u'chain_acs16': u'', u'temp_num': 3, u'temp3': 62, u'temp2': 0, u'temp1': 62, u'frequency': u'550', u'temp7': 0, u'temp6': 0, u'temp5': 0, u'temp4': 61, u'temp9': 0, u'temp8': 0, u'Calls': 0, u'chain_hw2': 0, u'chain_hw3': 172, u'chain_hw1': 96, u'chain_hw6': 0, u'chain_hw7': 0, u'chain_hw4': 95, u'chain_hw5': 0, u'chain_hw8': 0, u'chain_hw9': 0, u'fan1': 4320, u'fan3': 0, u'fan2': 6360, u'chain_acs9': u'', u'chain_acs8': u'', u'fan7': 0, u'fan6': 0, u'chain_acs5': u'', u'chain_acs4': u' oooooooo oooooooo oooooooo oooooooo oooooooo oooooooo oooooooo ooooooo', u'chain_acs7': u'', u'chain_acs6': u'', u'chain_acs1': u' oooooooo oooooooo oooooooo oooooooo oooooooo oooooooo oooooooo ooooooo', u'chain_rate12': u'', u'chain_acs3': u' oooooooo oooooooo oooooooo oooooooo oooooooo oooooooo oooooooo ooooooo', u'chain_acs2': u'', u'chain_hw14': 0, u'chain_hw15': 0, u'chain_hw16': 0, u'chain_hw10': 0, u'chain_hw11': 0, u'chain_hw12': 0, u'chain_hw13': 0, u'fan_num': 2, u'chain_rate16': u'', u'chain_acn10': 0, u'chain_acn11': 0, u'chain_acn12': 0, u'chain_acn13': 0, u'chain_acn14': 0, u'chain_acn15': 0, u'chain_acn16': 0, u'STATS': 0, u'temp2_8': 0, u'temp2_9': 0, u'temp2_6': 0, u'temp2_7': 0, u'temp2_4': 91, u'temp2_5': 0, u'temp2_2': 0, u'temp2_3': 95, u'temp2_1': 92, u'chain_rate15': u'', u'chain_rate9': u'', u'chain_rate8': u'', u'Min': 99999999.0, u'chain_rate3': u'3886.39', u'chain_rate2': u'', u'chain_rate1': u'3974.74', u'chain_rate7': u'', u'chain_rate6': u'', u'chain_rate5': u'', u'chain_rate4': u'3908.29', u'miner_count': 3, u'GHS av': 11802.58, u'chain_acn8': 0, u'chain_acn9': 0, u'chain_acn2': 0, u'Max': 0.0, u'chain_acn1': 63, u'chain_acn6': 0, u'chain_acn7': 0, u'chain_acn4': 63, u'chain_acn5': 0, u'temp13': 0, u'temp12': 0, u'temp11': 0, u'temp10': 0, u'temp16': 0, u'temp15': 0, u'temp14': 0, u'fan5': 0, u'fan4': 0, u'no_matching_work': 363, u'fan8': 0, u'ID': u'BC50', u'chain_rate14': u'', u'chain_rate13': u'', u'chain_rate11': u'', u'chain_acn3': 63, u'chain_rate10': u''}], u'id': 1}

Show the percentage of the fan

It would be nice to show not only the rpm, but what percentage of the fan its running.

Again, will be happy to do this.

CHANGELOG compare/v0.1.0...v0.0.3

There is a typo in the CHANGELOG, specifically the compare statement https://github.com/anselal/antminer-monitor/compare/v0.1.0...v0.0.3 should be https://github.com/anselal/antminer-monitor/compare/v0.0.3...v0.1.0

Hash rate not showing up correctly

The cgminer-api returns the hashrate of the miner as "GHS 5s" and I named the cell accordingly to that.
But the hashrates for the L3+ and D3 are actually returned in MH/s.
This error will probably be fixed in the next release

sorting

please sort the miner by ip

Thank you.

How can i view 0.0.0.0:5000 from another machine?

So i got it to run on a linux machine and using lynx i can view the page remotely.
But how can i view the webpage from another machine on the network please?
I have a Mac and want to go to the IP of the linux machine 10.0.0.x:5000 and view that webpage remotely. Thx

Board Temperature Order

I notice that the board temperature is not in the same order as it is on the miner that will be great if it can be fix so We can know which board exactly is heating up

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.