Compare commits

...

4 Commits

Author SHA1 Message Date
UpstreamData
08180a2d59 bump version number 2022-10-04 08:30:26 -06:00
UpstreamData
1a64ff4038 add support for whatsminer in miner listener, and fix space in MinerData.as_csv() 2022-10-04 08:28:24 -06:00
UpstreamData
8ad90a6abb bump version number 2022-10-03 13:52:04 -06:00
UpstreamData
8cdd5ff015 improve MinerData().as_csv()` 2022-10-03 13:51:44 -06:00
3 changed files with 19 additions and 5 deletions

View File

@@ -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/).

View File

@@ -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)

View File

@@ -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"