Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

mulitipel Nano3 #458

Open
TAOGde opened this issue Dec 31, 2024 · 7 comments
Open

mulitipel Nano3 #458

TAOGde opened this issue Dec 31, 2024 · 7 comments

Comments

@TAOGde
Copy link

TAOGde commented Dec 31, 2024

Version of the custom_component

1.1.20

Configuration

Describe the bug

i have multiple Nano3 Miner and only on is added in the Add-On

Debug log

2024-12-31 17:43:40.528 DEBUG (MainThread) [custom_components.miner.coordinator] Found miner: Avalon Nano 3 (Stock): 192.168.178.73
2024-12-31 17:43:40.629 DEBUG (MainThread) [custom_components.miner.coordinator] Got data: MinerData(ip='192.168.178.73', datetime='2024-12-31T17:43:40.529016+01:00', timestamp=1735663420, device_info=DeviceInfo(make=<MinerMake.AVALONMINER: 'AvalonMiner'>, model=<AvalonminerModels.AvalonNano3: 'Avalon Nano 3'>, firmware=<MinerFirmware.STOCK: 'Stock'>, algo=SHA256Algo), make='AvalonMiner', model='Avalon Nano 3', firmware='Stock', algo='SHA256', mac=None, api_ver=None, fw_ver='4.11.1', hostname=None, hashrate=3.89235 TH/s, expected_hashrate=4.36712 TH/s, expected_hashboards=1, expected_chips=10, expected_fans=1, percent_expected_chips=100, percent_expected_hashrate=89, percent_expected_wattage=None, temperature_avg=90, env_temp=None, wattage=None, wattage_limit=125, voltage=None, fans=[Fan(speed=4590)], fan_psu=None, hashboards=[HashBoard(slot=0, hashrate=3.89235 TH/s, temp=90, chip_temp=98, chips=10, expected_chips=10, serial_number=None, missing=False, tuned=None, active=None, voltage=None)], total_chips=10, nominal=True, config=MinerConfig(pools=PoolConfig(groups=[PoolGroup(pools=[Pool(url='stratum+tcp://stratum.braiins.com:3333', user='XYZ.Nano3-black', password='x'), Pool(url='stratum+tcp://bch.poolbinance.com:1800', user='XYZ.Nano3-black', password='x'), Pool(url='stratum+tcp://bch.poolbinance.com:3333', user='XYZ.Nano3-black', password='x')], quota=1, name='SUDT4R')]), fan_mode=FanModeNormal(mode='normal', minimum_fans=1, minimum_speed=0), temperature=TemperatureConfig(target=None, hot=None, danger=None), mining_mode=MiningModeNormal(mode='normal')), fault_light=None, errors=[], is_mining=True, uptime=None, efficiency=None, pools=[])
2024-12-31 17:43:40.630 DEBUG (MainThread) [custom_components.miner.coordinator] Finished fetching Nano3 Black data in 0.275 seconds (success: True)
2024-12-31 17:43:41.323 DEBUG (MainThread) [custom_components.miner.coordinator] Found miner: Avalon Nano 3 (Stock): 192.168.123.62
2024-12-31 17:43:41.380 DEBUG (MainThread) [custom_components.miner.coordinator] Got data: MinerData(ip='192.168.123.62', datetime='2024-12-31T17:43:41.323980+01:00', timestamp=1735663421, device_info=DeviceInfo(make=<MinerMake.AVALONMINER: 'AvalonMiner'>, model=<AvalonminerModels.AvalonNano3: 'Avalon Nano 3'>, firmware=<MinerFirmware.STOCK: 'Stock'>, algo=SHA256Algo), make='AvalonMiner', model='Avalon Nano 3', firmware='Stock', algo='SHA256', mac=None, api_ver=None, fw_ver='4.11.1', hostname=None, hashrate=3.67521 TH/s, expected_hashrate=4.2 TH/s, expected_hashboards=1, expected_chips=10, expected_fans=1, percent_expected_chips=100, percent_expected_hashrate=88, percent_expected_wattage=None, temperature_avg=90, env_temp=None, wattage=None, wattage_limit=125, voltage=None, fans=[Fan(speed=3990)], fan_psu=None, hashboards=[HashBoard(slot=0, hashrate=3.67521 TH/s, temp=90, chip_temp=93, chips=10, expected_chips=10, serial_number=None, missing=False, tuned=None, active=None, voltage=None)], total_chips=10, nominal=True, config=MinerConfig(pools=PoolConfig(groups=[PoolGroup(pools=[Pool(url='stratum+tcp://stratum.braiins.com:3333', user='XYZ.Nano3-blue', password='x'), Pool(url='stratum+tcp://bch.poolbinance.com:1800', user='XYZ.Nano3-blue', password='x'), Pool(url='stratum+tcp://bch.poolbinance.com:3333', user='XYZ.Nano3-blue', password='x')], quota=1, name='WI6O9G')]), fan_mode=FanModeNormal(mode='normal', minimum_fans=1, minimum_speed=0), temperature=TemperatureConfig(target=None, hot=None, danger=None), mining_mode=MiningModeNormal(mode='normal')), fault_light=None, errors=[], is_mining=True, uptime=None, efficiency=None, pools=[])
2024-12-31 17:43:41.380 DEBUG (MainThread) [custom_components.miner.coordinator] Finished fetching Nano3 Blue data in 0.123 seconds (success: True)
2024-12-31 17:43:41.612 DEBUG (MainThread) [custom_components.miner.coordinator] Found miner: Avalon Nano 3 (Stock): 192.168.123.62
2024-12-31 17:43:41.622 DEBUG (MainThread) [custom_components.miner.coordinator] Found miner: Avalon Nano 3 (Stock): 192.168.123.62
2024-12-31 17:43:41.627 DEBUG (MainThread) [custom_components.miner.coordinator] Found miner: Avalon Nano 3 (Stock): 192.168.123.62
2024-12-31 17:43:41.632 DEBUG (MainThread) [custom_components.miner.coordinator] Found miner: Avalon Nano 3 (Stock): 192.168.123.62
2024-12-31 17:43:41.673 DEBUG (MainThread) [custom_components.miner.coordinator] Got data: MinerData(ip='192.168.123.62', datetime='2024-12-31T17:43:41.612995+01:00', timestamp=1735663421, device_info=DeviceInfo(make=<MinerMake.AVALONMINER: 'AvalonMiner'>, model=<AvalonminerModels.AvalonNano3: 'Avalon Nano 3'>, firmware=<MinerFirmware.STOCK: 'Stock'>, algo=SHA256Algo), make='AvalonMiner', model='Avalon Nano 3', firmware='Stock', algo='SHA256', mac=None, api_ver=None, fw_ver='4.11.1', hostname=None, hashrate=3.6752 TH/s, expected_hashrate=4.2 TH/s, expected_hashboards=1, expected_chips=10, expected_fans=1, percent_expected_chips=100, percent_expected_hashrate=88, percent_expected_wattage=None, temperature_avg=90, env_temp=None, wattage=None, wattage_limit=125, voltage=None, fans=[Fan(speed=3990)], fan_psu=None, hashboards=[HashBoard(slot=0, hashrate=3.6752 TH/s, temp=90, chip_temp=93, chips=10, expected_chips=10, serial_number=None, missing=False, tuned=None, active=None, voltage=None)], total_chips=10, nominal=True, config=MinerConfig(pools=PoolConfig(groups=[PoolGroup(pools=[Pool(url='stratum+tcp://stratum.braiins.com:3333', user='XYZ.Nano3-blue', password='x'), Pool(url='stratum+tcp://bch.poolbinance.com:1800', user='XYZ.Nano3-blue', password='x'), Pool(url='stratum+tcp://bch.poolbinance.com:3333', user='XYZ.Nano3-blue', password='x')], quota=1, name='HF1IIC')]), fan_mode=FanModeNormal(mode='normal', minimum_fans=1, minimum_speed=0), temperature=TemperatureConfig(target=None, hot=None, danger=None), mining_mode=MiningModeNormal(mode='normal')), fault_light=None, errors=[], is_mining=True, uptime=None, efficiency=None, pools=[])
2024-12-31 17:43:41.674 DEBUG (MainThread) [custom_components.miner.coordinator] Finished fetching Nano3 Blue data in 0.292 seconds (success: True)
2024-12-31 17:43:41.674 ERROR (MainThread) [homeassistant.components.sensor] Platform miner does not generate unique IDs. ID None-hashrate already exists - ignoring sensor.nano3_black_hashrate
2024-12-31 17:43:41.674 ERROR (MainThread) [homeassistant.components.sensor] Platform miner does not generate unique IDs. ID None-ideal_hashrate already exists - ignoring sensor.nano3_black_ideal_hashrate
2024-12-31 17:43:41.675 ERROR (MainThread) [homeassistant.components.sensor] Platform miner does not generate unique IDs. ID None-temperature already exists - ignoring sensor.nano3_black_temperature
2024-12-31 17:43:41.675 ERROR (MainThread) [homeassistant.components.sensor] Platform miner does not generate unique IDs. ID None-power_limit already exists - ignoring sensor.nano3_black_power_limit
2024-12-31 17:43:41.675 ERROR (MainThread) [homeassistant.components.sensor] Platform miner does not generate unique IDs. ID None-miner_consumption already exists - ignoring sensor.nano3_black_miner_consumption
2024-12-31 17:43:41.675 ERROR (MainThread) [homeassistant.components.sensor] Platform miner does not generate unique IDs. ID None-efficiency already exists - ignoring sensor.nano3_black_efficiency
2024-12-31 17:43:41.675 ERROR (MainThread) [homeassistant.components.sensor] Platform miner does not generate unique IDs. ID None-0-board_temperature already exists - ignoring sensor.nano3_black_board_0_board_temperature
2024-12-31 17:43:41.675 ERROR (MainThread) [homeassistant.components.sensor] Platform miner does not generate unique IDs. ID None-0-chip_temperature already exists - ignoring sensor.nano3_black_board_0_chip_temperature
2024-12-31 17:43:41.675 ERROR (MainThread) [homeassistant.components.sensor] Platform miner does not generate unique IDs. ID None-0-board_hashrate already exists - ignoring sensor.nano3_black_board_0_board_hashrate
2024-12-31 17:43:41.675 ERROR (MainThread) [homeassistant.components.sensor] Platform miner does not generate unique IDs. ID None-0-fan_speed already exists - ignoring sensor.nano3_black_fan_0_fan_speed
2024-12-31 17:43:41.681 DEBUG (MainThread) [custom_components.miner.coordinator] Got data: MinerData(ip='192.168.123.62', datetime='2024-12-31T17:43:41.622568+01:00', timestamp=1735663421, device_info=DeviceInfo(make=<MinerMake.AVALONMINER: 'AvalonMiner'>, model=<AvalonminerModels.AvalonNano3: 'Avalon Nano 3'>, firmware=<MinerFirmware.STOCK: 'Stock'>, algo=SHA256Algo), make='AvalonMiner', model='Avalon Nano 3', firmware='Stock', algo='SHA256', mac=None, api_ver=None, fw_ver='4.11.1', hostname=None, hashrate=3.6752 TH/s, expected_hashrate=4.2 TH/s, expected_hashboards=1, expected_chips=10, expected_fans=1, percent_expected_chips=100, percent_expected_hashrate=88, percent_expected_wattage=None, temperature_avg=90, env_temp=None, wattage=None, wattage_limit=125, voltage=None, fans=[Fan(speed=3990)], fan_psu=None, hashboards=[HashBoard(slot=0, hashrate=3.6752 TH/s, temp=90, chip_temp=93, chips=10, expected_chips=10, serial_number=None, missing=False, tuned=None, active=None, voltage=None)], total_chips=10, nominal=True, config=MinerConfig(pools=PoolConfig(groups=[PoolGroup(pools=[Pool(url='stratum+tcp://stratum.braiins.com:3333', user='XYZ.Nano3-blue', password='x'), Pool(url='stratum+tcp://bch.poolbinance.com:1800', user='XYZ.Nano3-blue', password='x'), Pool(url='stratum+tcp://bch.poolbinance.com:3333', user='XYZ.Nano3-blue', password='x')], quota=1, name='6XCK2Z')]), fan_mode=FanModeNormal(mode='normal', minimum_fans=1, minimum_speed=0), temperature=TemperatureConfig(target=None, hot=None, danger=None), mining_mode=MiningModeNormal(mode='normal')), fault_light=None, errors=[], is_mining=True, uptime=None, efficiency=None, pools=[])
2024-12-31 17:43:41.682 DEBUG (MainThread) [custom_components.miner.coordinator] Finished fetching Nano3 Blue data in 0.299 seconds (success: True)
2024-12-31 17:43:41.684 DEBUG (MainThread) [custom_components.miner.coordinator] Got data: MinerData(ip='192.168.123.62', datetime='2024-12-31T17:43:41.627330+01:00', timestamp=1735663421, device_info=DeviceInfo(make=<MinerMake.AVALONMINER: 'AvalonMiner'>, model=<AvalonminerModels.AvalonNano3: 'Avalon Nano 3'>, firmware=<MinerFirmware.STOCK: 'Stock'>, algo=SHA256Algo), make='AvalonMiner', model='Avalon Nano 3', firmware='Stock', algo='SHA256', mac=None, api_ver=None, fw_ver='4.11.1', hostname=None, hashrate=3.6752 TH/s, expected_hashrate=4.2 TH/s, expected_hashboards=1, expected_chips=10, expected_fans=1, percent_expected_chips=100, percent_expected_hashrate=88, percent_expected_wattage=None, temperature_avg=90, env_temp=None, wattage=None, wattage_limit=125, voltage=None, fans=[Fan(speed=3990)], fan_psu=None, hashboards=[HashBoard(slot=0, hashrate=3.6752 TH/s, temp=90, chip_temp=93, chips=10, expected_chips=10, serial_number=None, missing=False, tuned=None, active=None, voltage=None)], total_chips=10, nominal=True, config=MinerConfig(pools=PoolConfig(groups=[PoolGroup(pools=[Pool(url='stratum+tcp://stratum.braiins.com:3333', user='XYZ.Nano3-blue', password='x'), Pool(url='stratum+tcp://bch.poolbinance.com:1800', user='XYZ.Nano3-blue', password='x'), Pool(url='stratum+tcp://bch.poolbinance.com:3333', user='XYZ.Nano3-blue', password='x')], quota=1, name='E0HAZH')]), fan_mode=FanModeNormal(mode='normal', minimum_fans=1, minimum_speed=0), temperature=TemperatureConfig(target=None, hot=None, danger=None), mining_mode=MiningModeNormal(mode='normal')), fault_light=None, errors=[], is_mining=True, uptime=None, efficiency=None, pools=[])

@b-rowan
Copy link
Collaborator

b-rowan commented Dec 31, 2024

The issue is that the MAC address can't be sourced on those for some reason. Not sure if there is a way to get it via the API or something that you know of?

@TAOGde
Copy link
Author

TAOGde commented Jan 1, 2025

The issue is that the MAC address can't be sourced on those for some reason. Not sure if there is a way to get it via the API or something that you know of?

i started with chatgpt to make this script.

`import paho.mqtt.client as mqtt
import re
import subprocess
import time
import json
import logging

Logging-Konfiguration

logging.basicConfig(level=logging.INFO, format="%(asctime)s - %(levelname)s - %(message)s")

Funktion zum Laden der Konfiguration aus der options.json-Datei

def load_config(config_file="/data/options.json"):
with open(config_file, "r") as f:
return json.load(f)

Funktion zum Ausführen des 'socat'-Befehls

def get_stats_from_device(ip, port):
try:
logging.info(f"Abrufen der Daten vom Gerät {ip}:{port}...")
result = subprocess.check_output(
f'echo -n "stats" | socat -t 30 stdio tcp:{ip}:{port},shut-none',
shell=True,
text=True
)
logging.info("Daten erfolgreich abgerufen.")
return result
except subprocess.CalledProcessError as e:
logging.error(f"Fehler beim Abrufen der Daten: {e}")
return None

Funktion zum Extrahieren von Variablen aus einem Textstring

def extract_variables(text, pattern=r'(\w+)=([\d.]+|[a-zA-Z%]+|[.*?])'):
return dict(re.findall(pattern, text))

Funktion zum Extrahieren der ID0-Daten

def extract_id0_variables(text):
id0_data = {}
id0_pattern = re.search(r'MM ID0=([^\|]+)|', text)
if id0_pattern:
id0_text = id0_pattern.group(1)
id0_data = extract_variables(id0_text, r'(\w+)[([^\]]+)]')
return id0_data

Funktion zum Extrahieren der Pool-Daten

def extract_pool_data(text):
pool_data = {}
pool_pattern = re.findall(r'STATS=(\d),ID=(\w+),([^|]+)|', text)
for _, pool_id, pool_stats in pool_pattern:
pool_data[pool_id] = extract_variables(pool_stats)
return pool_data

Veröffentliche Discovery-Daten im richtigen Pfad

def publish_discovery(client, unique_id, name, state_topic, device):
config_topic = f"homeassistant/sensor/{device['name']}/{unique_id}/config" # discovery unter diesem Pfad
discovery_data = {
"name": name,
"unique_id": unique_id,
"state_topic": state_topic,
"device": device
}
client.publish(config_topic, json.dumps(discovery_data), qos=1, retain=True)
logging.info(f"MQTT Discovery-Daten gesendet: {discovery_data}")

Funktion zum Veröffentlichen der Daten in MQTT

def publish_data(client, data, topic_prefix, miner):
main_data = extract_variables(data)
match = re.search(r'ID=(\w+)', data)
if match:
device_id = match.group(1)
# Geräteinformationen aus der Konfiguration des Miners
device_info = {
"identifiers": [f"{miner['name']}_{device_id}"],
"name": miner['name'],
"model": miner.get("model", "Unknown Model"),
"manufacturer": miner.get("manufacturer", "Unknown Manufacturer")
}

    # ID0-Daten veröffentlichen
    id0_data = extract_id0_variables(data)
    for key, value in id0_data.items():
        state_topic = f"{topic_prefix}/{miner['name']}/ID0/{key}"
        unique_id = f"{miner['name']}_id0_{key}".lower()
        entity_name = f"{key}"
        publish_discovery(client, unique_id, f"{miner['name']} ID0 {key}", state_topic, device_info)
        client.publish(state_topic, value)
        logging.info(f"Veröffentliche ID0: {state_topic} -> {value}")

    # Hauptdaten veröffentlichen
    for key, value in main_data.items():
        state_topic = f"{topic_prefix}/{miner['name']}/{key}"
        unique_id = f"{miner['name']}_{key}".lower()
        publish_discovery(client, unique_id, f"{miner['name']} {key}", state_topic, device_info)
        client.publish(state_topic, value)
        logging.info(f"Veröffentliche: {state_topic} -> {value}")

# Pool-Daten veröffentlichen
pool_data = extract_pool_data(data)
for pool_id, pool_vars in pool_data.items():
    for key, value in pool_vars.items():
        state_topic = f"{topic_prefix}/{miner['name']}/{pool_id}/{key}"
        unique_id = f"{miner['name']}_{pool_id}_{key}".lower()
        publish_discovery(client, unique_id, f"{miner['name']} Pool {pool_id} {key}", state_topic, device_info)
        client.publish(state_topic, value)
        logging.info(f"Veröffentliche Pool-Daten: {state_topic} -> {value}")

MQTT-Client initialisieren und verbinden

client = mqtt.Client()

def on_connect(client, userdata, flags, rc):
if rc == 0:
logging.info("Erfolgreich mit dem MQTT-Broker verbunden.")
else:
logging.error(f"Verbindung fehlgeschlagen mit Code {rc}")

Funktion zum zyklischen Abrufen und Veröffentlichen der Daten

def cyclic_data_fetch(miners, interval, topic_prefix):
while True:
for miner in miners:
stats_data = get_stats_from_device(miner["ip"], miner["port"])
if stats_data:
publish_data(client, stats_data, topic_prefix, miner)
time.sleep(interval)

Lade die Konfiguration aus der options.json

config = load_config()

Setze MQTT-Konfiguration

mqtt_broker = config["mqtt_broker"]
mqtt_port = config["mqtt_port"]
mqtt_username = config["mqtt_username"]
mqtt_password = config["mqtt_password"]
mqtt_topic = config["mqtt_topic"]
miners = config["miners"]
interval = 30 # Standardintervall, falls nicht angegeben
client.username_pw_set(mqtt_username, mqtt_password)
client.on_connect = on_connect
client.connect(mqtt_broker, mqtt_port, 60)
client.loop_start()

Zyklische Datenabfrage starten

try:
miner_interval = interval / len(miners) if len(miners) > 0 else interval
logging.info(f"Zyklisches Abrufen der Daten mit einem Intervall von {miner_interval:.2f} Sekunden pro Miner.")
cyclic_data_fetch(miners, miner_interval, mqtt_topic)
except KeyboardInterrupt:
logging.info("Programm wird beendet...")
client.loop_stop()
`

it makes a list with all variables. i found HDNA[020100005e2a2d27] HDNA[02010000d9b3f28e] on booth of my miners.

@b-rowan
Copy link
Collaborator

b-rowan commented Jan 1, 2025

Sorry to say that this is entirely unhelpful, and although the HDNA item in the stats might be a good lead, it doesn't fit the format of MAC addresses. I can already parse the stats, that's no issue, but maybe if you are able to send just the raw stats result I could take a look at that?

If you want to run it through ChatGPT, you need to know how to send the JSON {"command":"stats"} to the CGMiner API on port 4028.

@TAOGde
Copy link
Author

TAOGde commented Jan 1, 2025

Sorry to say that this is entirely unhelpful, and although the HDNA item in the stats might be a good lead, it doesn't fit the format of MAC addresses. I can already parse the stats, that's no issue, but maybe if you are able to send just the raw stats result I could take a look at that?

If you want to run it through ChatGPT, you need to know how to send the JSON {"command":"stats"} to the CGMiner API on port 4028.

i have only the nano3 miner and want it in Homeassistant for simple view. thats what your hacs do ;)

miner1 Socat:
STATUS=S,When=1735694668,Code=70,Msg=CGMiner stats,Description=cgminer 4.11.1|STATS=0,ID=AVANANO0,Elapsed=433238,Calls=0,Wait=0.000000,Max=0.000000,Min=99999999.000000,MM ID0=HashStatus[1] Ver[nano3-24071801_42c628d] HVer[24071801_b906c52_6223725] DNA[0000000000000000] HDNA[02010000d9b3f28e] PFCnt[2] NETFAIL[1735396336 1735396452 1735652721 1735652721 0 0 0 0] Elapsed[433249] LW[10816892] MH[620] DHW[7] HW[620] DH[2.609%] Temp[48] OTemp[38] TMax[93] TAvg[90] TarT[90] Fan1[3870] FanR[48%] Vo[0] PS[0 0 0 4 2734 125 346] GHSspd[4085.94] DHspd[2.609%] GHSmm[4195.20] GHSavg[3682.57] WU[51444.98] Freq[0.00] Led[0] MGHS[3682.57] MTmax[93] MTavg[90] TA[10] Core[A3198S] PING[174] SoftOFF[0] ECHU[0] ECMM[0] PLL0[0 436 495 839] SF0[100 568 588 608] PVT_T0[ 88 89 92 93 91 88 92 88 91 86] PVT_V0[335 326 334 327 333 330 328 330 328 335] MW0[9888 9813 9768 9831 9768 9739 9740 8841 9476 9563] CRC[0] ATA0[60-80-314-100:293:313:333] ATA1[90-85-326-100:447:467:487] ATA2[125-90-346-100:568:588:608] WORKLEVEL[2] MPO[125] ADJ[1],MM Count=1,Nonce Mask=1|STATS=1,ID=POOL0,Elapsed=433238,Calls=0,Wait=0.000000,Max=0.000000,Min=99999999.000000,Pool Calls=0,Pool Attempts=0,Pool Wait=0.000000,Pool Max=0.000000,Pool Min=99999999.000000,Pool Av=0.000000,Work Had Roll Time=false,Work Can Roll=false,Work Had Expire=false,Work Roll Time=0,Work Diff=4854.00000000,Min Diff=512.00000000,Max Diff=8192.00000000,Min Diff Count=1,Max Diff Count=3,Times Sent=92366,Bytes Sent=12823778,Times Recv=138587,Bytes Recv=68998809,Net Bytes Sent=12823778,Net Bytes Recv=68998809|STATS=2,ID=POOL1,Elapsed=433238,Calls=0,Wait=0.000000,Max=0.000000,Min=99999999.000000,Pool Calls=0,Pool Attempts=0,Pool Wait=0.000000,Pool Max=0.000000,Pool Min=99999999.000000,Pool Av=0.000000,Work Had Roll Time=false,Work Can Roll=false,Work Had Expire=false,Work Roll Time=0,Work Diff=131072.00000000,Min Diff=131072.00000000,Max Diff=131072.00000000,Min Diff Count=1,Max Diff Count=1,Times Sent=3,Bytes Sent=269,Times Recv=5,Bytes Recv=1050,Net Bytes Sent=269,Net Bytes Recv=1050|STATS=3,ID=POOL2,Elapsed=433238,Calls=0,Wait=0.000000,Max=0.000000,Min=99999999.000000,Pool Calls=0,Pool Attempts=0,Pool Wait=0.000000,Pool Max=0.000000,Pool Min=99999999.000000,Pool Av=0.000000,Work Had Roll Time=false,Work Can Roll=false,Work Had Expire=false,Work Roll Time=0,Work Diff=131072.00000000,Min Diff=131072.00000000,Max Diff=131072.00000000,Min Diff Count=1,Max Diff Count=1,Times Sent=3,Bytes Sent=269,Times Recv=5,Bytes Recv=1050,Net Bytes Sent=269,Net Bytes Recv=1050|

Miner 2:
STATUS=S,When=1735694774,Code=70,Msg=CGMiner stats,Description=cgminer 4.11.1|STATS=0,ID=AVANANO0,Elapsed=16487,Calls=0,Wait=0.000000,Max=0.000000,Min=99999999.000000,MM ID0=HashStatus[1] Ver[nano3-24071801_42c628d] HVer[24071801_b906c52_6223725] DNA[0000000000000000] HDNA[020100005e2a2d27] PFCnt[0] NETFAIL[0 0 0 0 0 0 0 0] Elapsed[16498] LW[409874] MH[26] DHW[0] HW[26] DH[2.310%] Temp[57] OTemp[40] TMax[98] TAvg[90] TarT[90] Fan1[4740] FanR[62%] Vo[0] PS[0 0 0 4 2774 126 332] GHSspd[4262.28] DHspd[2.310%] GHSmm[4368.48] GHSavg[3868.29] WU[54039.44] Freq[0.00] Led[0] MGHS[3868.29] MTmax[98] MTavg[90] TA[10] Core[A3198S] PING[127] SoftOFF[0] ECHU[0] ECMM[0] PLL0[0 660 542 568] SF0[100 598 618 638] PVT_T0[ 85 94 97 98 91 82 88 93 89 82] PVT_V0[321 317 318 305 312 322 314 315 313 322] MW0[388 366 382 326 369 364 372 387 353 428] CRC[0] ATA0[60-80-306-100:293:313:333] ATA1[90-85-314-100:459:479:499] ATA2[125-90-332-100:598:618:638] WORKLEVEL[2] MPO[125] ADJ[1],MM Count=1,Nonce Mask=1|STATS=1,ID=POOL0,Elapsed=16487,Calls=0,Wait=0.000000,Max=0.000000,Min=99999999.000000,Pool Calls=0,Pool Attempts=0,Pool Wait=0.000000,Pool Max=0.000000,Pool Min=99999999.000000,Pool Av=0.000000,Work Had Roll Time=false,Work Can Roll=false,Work Had Expire=false,Work Roll Time=0,Work Diff=4419.00000000,Min Diff=4419.00000000,Max Diff=8192.00000000,Min Diff Count=27,Max Diff Count=1,Times Sent=3458,Bytes Sent=478086,Times Recv=5044,Bytes Recv=2366899,Net Bytes Sent=478086,Net Bytes Recv=2366899|STATS=2,ID=POOL1,Elapsed=16487,Calls=0,Wait=0.000000,Max=0.000000,Min=99999999.000000,Pool Calls=0,Pool Attempts=0,Pool Wait=0.000000,Pool Max=0.000000,Pool Min=99999999.000000,Pool Av=0.000000,Work Had Roll Time=false,Work Can Roll=false,Work Had Expire=false,Work Roll Time=0,Work Diff=131072.00000000,Min Diff=131072.00000000,Max Diff=131072.00000000,Min Diff Count=1,Max Diff Count=1,Times Sent=3,Bytes Sent=270,Times Recv=6,Bytes Recv=2202,Net Bytes Sent=270,Net Bytes Recv=2202|STATS=3,ID=POOL2,Elapsed=16487,Calls=0,Wait=0.000000,Max=0.000000,Min=99999999.000000,Pool Calls=0,Pool Attempts=0,Pool Wait=0.000000,Pool Max=0.000000,Pool Min=99999999.000000,Pool Av=0.000000,Work Had Roll Time=false,Work Can Roll=false,Work Had Expire=false,Work Roll Time=0,Work Diff=131072.00000000,Min Diff=131072.00000000,Max Diff=131072.00000000,Min Diff Count=1,Max Diff Count=1,Times Sent=3,Bytes Sent=270,Times Recv=5,Bytes Recv=1251,Net Bytes Sent=270,Net Bytes Recv=1251|

@b-rowan
Copy link
Collaborator

b-rowan commented Jan 1, 2025

Perfect, that helps a lot, I'll try to get it in there, maybe I can use something here at the very least.

@b-rowan
Copy link
Collaborator

b-rowan commented Jan 1, 2025

Ok, second look it seems like pyasic wants to parse it from version, can you try the same thing with version instead of stats? {"command":"version"}

Sorry that this is such a pain to get working, miners can be really weird sometimes :/

@TAOGde
Copy link
Author

TAOGde commented Jan 1, 2025

Ok, second look it seems like pyasic wants to parse it from version, can you try the same thing with version instead of stats? {"command":"version"}

Sorry that this is such a pain to get working, miners can be really weird sometimes :/

Miner 1:
STATUS=S,When=1735696980,Code=22,Msg=CGMiner versions,Description=cgminer 4.11.1|VERSION,CGMiner=4.11.1,API=3.7,PROD=Avalonnano,MODEL=nano3,HWTYPE=PMMv1_X1,SWTYPE=MM318_X2,VERSION=24071801_42c628d,HVERSION=24071801_b906c52_6223725,UPAPI=2|

Miner 2:
STATUS=S,When=1735697031,Code=22,Msg=CGMiner versions,Description=cgminer 4.11.1|VERSION,CGMiner=4.11.1,API=3.7,PROD=Avalonnano,MODEL=nano3,HWTYPE=PMMv1_X1,SWTYPE=MM318_X2,VERSION=24071801_42c628d,HVERSION=24071801_b906c52_6223725,UPAPI=2|

Oh yeah.. i try it since 5 days without any ideas what i do :)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants