Compare commits
4 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
08180a2d59 | ||
|
|
1a64ff4038 | ||
|
|
8ad90a6abb | ||
|
|
8cdd5ff015 |
@@ -234,8 +234,12 @@ class MinerData:
|
||||
def as_csv(self) -> str:
|
||||
data = self.asdict()
|
||||
data["datetime"] = str(int(time.mktime(data["datetime"].timetuple())))
|
||||
errs = []
|
||||
for error in data["errors"]:
|
||||
errs.append(error["error_message"])
|
||||
data["errors"] = "; ".join(errs)
|
||||
data_list = [str(data[item]) for item in data]
|
||||
return ", ".join(data_list)
|
||||
return ",".join(data_list)
|
||||
|
||||
def as_influxdb(self, measurement_name: str = "miner_data") -> str:
|
||||
"""Get this dataclass as [influxdb line protocol](https://docs.influxdata.com/influxdb/v2.4/reference/syntax/line-protocol/).
|
||||
|
||||
@@ -27,7 +27,13 @@ class _MinerListener:
|
||||
|
||||
def datagram_received(self, data, _addr):
|
||||
m = data.decode()
|
||||
ip, mac = m.split(",")
|
||||
if "," in m:
|
||||
ip, mac = m.split(",")
|
||||
else:
|
||||
d = m[:-1].split("MAC")
|
||||
ip = d[0][3:]
|
||||
mac = d[1][1:]
|
||||
|
||||
new_miner = {"IP": ip, "MAC": mac.upper()}
|
||||
MinerListener().new_miner = new_miner
|
||||
|
||||
@@ -46,9 +52,12 @@ class MinerListener(metaclass=Singleton):
|
||||
|
||||
loop = asyncio.get_running_loop()
|
||||
|
||||
transport, protocol = await loop.create_datagram_endpoint(
|
||||
transport_14235, protocol_14235 = await loop.create_datagram_endpoint(
|
||||
lambda: _MinerListener(), local_addr=("0.0.0.0", 14235) # noqa
|
||||
)
|
||||
transport_8888, protocol_8888 = await loop.create_datagram_endpoint(
|
||||
lambda: _MinerListener(), local_addr=("0.0.0.0", 8888) # noqa
|
||||
)
|
||||
|
||||
while True:
|
||||
if self.new_miner:
|
||||
@@ -56,7 +65,8 @@ class MinerListener(metaclass=Singleton):
|
||||
self.found_miners.append(self.new_miner)
|
||||
self.new_miner = None
|
||||
if self.stop:
|
||||
transport.close()
|
||||
transport_14235.close()
|
||||
transport_8888.close()
|
||||
break
|
||||
await asyncio.sleep(0)
|
||||
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
[tool.poetry]
|
||||
name = "pyasic"
|
||||
version = "0.18.2"
|
||||
version = "0.18.4"
|
||||
description = "A set of modules for interfacing with many common types of ASIC bitcoin miners, using both their API and SSH."
|
||||
authors = ["UpstreamData <brett@upstreamdata.ca>"]
|
||||
repository = "https://github.com/UpstreamData/pyasic"
|
||||
|
||||
Reference in New Issue
Block a user