Author

Topic: [Awesome Miner] - Powerful Windows GUI to manage and monitor up to 200000 miners - page 304. (Read 703512 times)

legendary
Activity: 3346
Merit: 1094
Hi Patrike,

just some things:

- any chance the Ethash algo gets added as an option for external miners as currently it's not an option and not possible.

- integration of E3, not sure if there are some features different than the other antminers.

- some results from benchmarking seem to be totally messed up. for example on some algos with 1080ti i got huge better results with some miner software, in some cases double than with others. But when the actual mining than begins these perform way less and never get even near to the benchmark results. And here is the problem, because the other, not so good benchmarked mining software would do better, but
isn't choosen as the benchmarking favorites them.

- same goes for mining pools. I have some concern that some mining pools profit prediction are unreal, especially for blazepool and miningdutch. I could be wrong here, but i'am suspect that something isn't there like it should be.

- for some reason after last update the DGB icon for skein is gone on my end. Not sure if it's an issue on my end or the last AWM update.

Thx in advance for looking into these issues or considering them.
Thanks for your questions and feedback.

1) Ethash is actually listed as "Ethereum" in Awesome Miner. It's not fully correct today, but at least it's there.

2) Antminer E3 is supported. In order for the correct hashrate to show up, you need to be on the latest version of Awesome Miner. Please let me know if you find something unique to this miner that doesn't work like the other Antminers.

3) Some mining software like Ccminer allows offline benchmark, where you can benchmark it without a pool. There can be instances where this is nice as you don't have to have all pools defined in order to run the benchmark. In the benchmark dialog, please uncheck "Benchmark without a pool", which would force the mining software to benchmark using a real pool, as this is more likely to give accurate results.

4) The profit estimates are from the pools. Awesome Miner do have a feature that can adjust down these predictions from the pools based on past performance. Please see "Adjust reported revenue":
http://www.awesomeminer.com/help/coinstats.aspx

5) I do see the DGB icon both when prioritizing WhatToMine and when prioritizing Coincalculators.io as the coin source. For which of these sources isn't the DGB icon showing? Is the problem still present, or could it have been a temporary issue due to some change on one of these coin sites?
legendary
Activity: 3346
Merit: 1094
Hey Patrike,

you are doing a great job, thank you for that! I have a suggestion to the rules (or maybe it can be done something else).

If I setup a rule with (for example) a temperature trigger greater than or equals 80C.
As actions I have
1) A Notification with "Notifice once until acknowledged" and
2) Run Executable

Whenever the rig got 80C+ I will get one notification only until I click Acknowledge or Clear. So far so good.
But the programm will be loaded over and over again, as long as the rig got 80C+.

Is it possible that the programm will be loaded only one time? Maybe with a mark-field like in Notifications "Start only once until Aknowledge". Or maybe you have a better idea Smiley

Edit: The reason behind is simple. I will turn off a smart socket as emergency stop. But so it receive unlimited turn off signals.
I actually got an idea how scenarios like this could be resolved with Tags (http://www.awesomeminer.com/help/tags.aspx) - but right now you can only have triggers that detects if a tag is present. For it to work in your scenario we would need the Detect Miner Tag trigger to not only trigger if a tag is present, but also if it's not present on a miner.

I will add this in the next release. Once available, you can define a rule like this:
Triggers (both must match)
a) Temperature is 80C+
b) The miner tag "Temperature 80+" isn't set
Actions:
a) Notification
b) Run executable
c) Set miner tag "Temperature 80+" (this would prevent the rule from being executed again, until this tag is removed either manually or by another rule. That other rule could for example run if the temperature is below 80C)

Already today you can look at the trigger "Detect miner tag" and the action "Modify miner tag" to get an understanding of the concept.
jr. member
Activity: 58
Merit: 5
Is there a way to exclude income from a specific group of miners (or specific miner) from the total earnings shown on dashboard?
newbie
Activity: 52
Merit: 0
Hi there - anybody an idea?!

i have a few Antminer L3+ running - this miners allow by default only 3 Pools (as all Antminer)

but i need more than 10 Pools for Profit-Switching Purposes
you can add the desired pools in AM and everything runs fine until the miner reboots (what's happening sometimes)

so i created a Pool Group and defined a User defined rule to change the group pool

my problem is in the Trigger to activate this Rule:
in the moment i use a Time intervall of 5 Minutes and a Detect Pool URL (i compare the URL of all pools of a miner with a URL that is not in the default pools and trigger it, if no pool URL contains the specific string)
- Problem 1 - it only works sometime?!
- Problem 2 - actually i would like to activate the trigger every time after a miner starts/comes online - not every 5 Minutes?!

thank you in advance!
newbie
Activity: 14
Merit: 0
Hello, I was wondering if I could add the option to switch mining locations for the zpool .and not just for him .  Since the pool offered a different location of the data center in Central Europe.
zpool

==========================
@_zpool_
 5 ч.
5 чacoв нaзaд
 
 
Eщe
We've launched a beta EU based stratum server located in Central Europe.  Please, if you are in EU give it a try.  stratum+tcp://.eu.mine.zpool.ca:  http://zpool.ca            #zpool #multipool #yaamp #bitcoin #litecoin #altcoin #wepay
=================================
I understand that you can use "How do I add and configure my pool in Awesome Miner" a little awkward .  Make an option to select a mining location ? That's possible.?   Thanks
jr. member
Activity: 756
Merit: 2
@moppidoo

No, I need it an instant shutdown. I have some watercooled rigs in a single circulation system. If the main system (with the pump connected) just soft crashs or reboot or so, thats no problem. The pump is even still running. But if the main system hard crashs or shut down for whatever reason (very rare, but happens), all other systems are overheating in just a second.

In case it helps you, I have a rule that if it reaches a temperature, for example 80 as you request, change the OC profile to a much softer one. That would continue the platform without stopping and lower the temperature.

When you change to another protocol, the corresponding OC will be applied again. and again if it reaches 80 degrees, the same rule will reduce the OC.

You can even set another rule to 82, and if you arrive you can still put a lower OC.

Another idea is to feed the water cooling pump with current that does not come from the computer, or that comes from another source, so, even if the computer crashes or gets stuck, the pump will always work, even if you turn off the computer, the pump would still work

I hope to help.
member
Activity: 418
Merit: 21
@moppidoo

No, I need it an instant shutdown. I have some watercooled rigs in a single circulation system. If the main system (with the pump connected) just soft crashs or reboot or so, thats no problem. The pump is even still running. But if the main system hard crashs or shut down for whatever reason (very rare, but happens), all other systems are overheating in just a second.
jr. member
Activity: 756
Merit: 2
https://www.dropbox.com/s/1f08ml9w109kygq/IMG_2298.MOV?dl=0

Hello patrike, I will try to be productive. I am using my time to try to identify the problem.

You have already seen that I have had dozens of errors with lyra2z (other days is another protocol) and tried to reproduce it.

IN the video that I send, I just recorded it when it started to give problems in lyra2z in blazepool, it looks perfectly as it fails.

I created a pool, only with lyra2z in blazepool and nothing else, I add it to the same miner who failed seconds before, and I throw it. The surprise is that he does it correctly, enters blazepool in lyra2z.

There is a problem in the autoswitch, because I have already shown that it fails when there are more protocols, but when it is just not, when mino gin in lyra2z does not fail, when I do the benchmark it works fine. I have not changed the miner nor the OC, I have only put mine directly blazepool in lyra2z

These failures that I have been reporting for some time, happen randomly and in different protocols. It's a good thing that there are more people who have thought of reporting the same thing as me.

gives the feeling that somehow and sometimes when a miner launches autoswitch change the OC or throw it with incorrect parameters, because I do not understand why it only happens in autoswitch, but does not fail mining with a single protocol or currency. So I do not expect to read more than it is a bad configuration of the miner, it is demonstrated that the miner works perfectly when he is not in autoswitch.

Now it is happening in miner 2, 3 and 4, but not in 1 and 5. Why does it work well in some and poorly in others if it is the same pool and miner?

Also to say that to those miners with T-rex that fail, I have lowered the OC a lot, but as it sees it fails in autoswitch but not alone.

And I hope you have the courtesy to answer me.

I think that the important point that Patrike highlighted is that the problem is a false error report. AM doesn't shuffle on his own algorithms, compatible software and pools. The real fact is that we have a miner that crash for a reason and AM report it sometimes badly depending on the speed of crash.
As i do right now, you should first try different OC settings on your cards and see if there's a difference. Maybe stability problem come from the way AM launch mining softwares, but it may be also a bad configuration on our rigs...

Agree that it is a bad error report.

But, the problem is that it tells me that lyra2z does not work when it is in autoprofit mode, but it does when there is no autoprofit. In the video I just choose that protocol and it works perfectly, so it's not the miner's configuration, it's the problem of how the autoswtich launches the requests of some miners
jr. member
Activity: 348
Merit: 5
Hey Patrike,

you are doing a great job, thank you for that! I have a suggestion to the rules (or maybe it can be done something else).

If I setup a rule with (for example) a temperature trigger greater than or equals 80C.
As actions I have
1) A Notification with "Notifice once until acknowledged" and
2) Run Executable

Whenever the rig got 80C+ I will get one notification only until I click Acknowledge or Clear. So far so good.
But the programm will be loaded over and over again, as long as the rig got 80C+.

Is it possible that the programm will be loaded only one time? Maybe with a mark-field like in Notifications "Start only once until Aknowledge". Or maybe you have a better idea Smiley

Edit: The reason behind is simple. I will turn off a smart socket as emergency stop. But so it receive unlimited turn off signals.

Just out of curiosity, what if you set timed trigger so that it only runs every say, 3 minutes (enough for shutdown, cool down)?
member
Activity: 420
Merit: 13
Hi Patrike,

just some things:

- any chance the Ethash algo gets added as an option for external miners as currently it's not an option and not possible.

- integration of E3, not sure if there are some features different than the other antminers.

- some results from benchmarking seem to be totally messed up. for example on some algos with 1080ti i got huge better results with some miner software, in some cases double than with others. But when the actual mining than begins these perform way less and never get even near to the benchmark results. And here is the problem, because the other, not so good benchmarked mining software would do better, but
isn't choosen as the benchmarking favorites them.

- same goes for mining pools. I have some concern that some mining pools profit prediction are unreal, especially for blazepool and miningdutch. I could be wrong here, but i'am suspect that something isn't there like it should be.

- for some reason after last update the DGB icon for skein is gone on my end. Not sure if it's an issue on my end or the last AWM update.

Thx in advance for looking into these issues or considering them.

newbie
Activity: 92
Merit: 0
https://www.dropbox.com/s/1f08ml9w109kygq/IMG_2298.MOV?dl=0

Hello patrike, I will try to be productive. I am using my time to try to identify the problem.

You have already seen that I have had dozens of errors with lyra2z (other days is another protocol) and tried to reproduce it.

IN the video that I send, I just recorded it when it started to give problems in lyra2z in blazepool, it looks perfectly as it fails.

I created a pool, only with lyra2z in blazepool and nothing else, I add it to the same miner who failed seconds before, and I throw it. The surprise is that he does it correctly, enters blazepool in lyra2z.

There is a problem in the autoswitch, because I have already shown that it fails when there are more protocols, but when it is just not, when mino gin in lyra2z does not fail, when I do the benchmark it works fine. I have not changed the miner nor the OC, I have only put mine directly blazepool in lyra2z

These failures that I have been reporting for some time, happen randomly and in different protocols. It's a good thing that there are more people who have thought of reporting the same thing as me.

gives the feeling that somehow and sometimes when a miner launches autoswitch change the OC or throw it with incorrect parameters, because I do not understand why it only happens in autoswitch, but does not fail mining with a single protocol or currency. So I do not expect to read more than it is a bad configuration of the miner, it is demonstrated that the miner works perfectly when he is not in autoswitch.

Now it is happening in miner 2, 3 and 4, but not in 1 and 5. Why does it work well in some and poorly in others if it is the same pool and miner?

Also to say that to those miners with T-rex that fail, I have lowered the OC a lot, but as it sees it fails in autoswitch but not alone.

And I hope you have the courtesy to answer me.

I think that the important point that Patrike highlighted is that the problem is a false error report. AM doesn't shuffle on his own algorithms, compatible software and pools. The real fact is that we have a miner that crash for a reason and AM report it sometimes badly depending on the speed of crash.
As i do right now, you should first try different OC settings on your cards and see if there's a difference. Maybe stability problem come from the way AM launch mining softwares, but it may be also a bad configuration on our rigs...
jr. member
Activity: 756
Merit: 2
https://www.dropbox.com/s/1f08ml9w109kygq/IMG_2298.MOV?dl=0

Hello patrike, I will try to be productive. I am using my time to try to identify the problem.

You have already seen that I have had dozens of errors with lyra2z (other days is another protocol) and tried to reproduce it.

IN the video that I send, I just recorded it when it started to give problems in lyra2z in blazepool, it looks perfectly as it fails.

I created a pool, only with lyra2z in blazepool and nothing else, I add it to the same miner who failed seconds before, and I throw it. The surprise is that he does it correctly, enters blazepool in lyra2z.

There is a problem in the autoswitch, because I have already shown that it fails when there are more protocols, but when it is just not, when mino gin in lyra2z does not fail, when I do the benchmark it works fine. I have not changed the miner nor the OC, I have only put mine directly blazepool in lyra2z

These failures that I have been reporting for some time, happen randomly and in different protocols. It's a good thing that there are more people who have thought of reporting the same thing as me.

gives the feeling that somehow and sometimes when a miner launches autoswitch change the OC or throw it with incorrect parameters, because I do not understand why it only happens in autoswitch, but does not fail mining with a single protocol or currency. So I do not expect to read more than it is a bad configuration of the miner, it is demonstrated that the miner works perfectly when he is not in autoswitch.

Now it is happening in miner 2, 3 and 4, but not in 1 and 5. Why does it work well in some and poorly in others if it is the same pool and miner?

Also to say that to those miners with T-rex that fail, I have lowered the OC a lot, but as it sees it fails in autoswitch but not alone.

And I hope you have the courtesy to answer me.
jr. member
Activity: 756
Merit: 2
jr. member
Activity: 756
Merit: 2
Hello Patrike,
I encounter those type of errors more and more often :

Code:
Mining process not running, initiating restart (PhoenixMiner, Ethereum, ZergPool [Phi2])
Mining process not running, initiating restart (T-Rex nVidia GPU Miner, Phi2, europe.ethash-hub.miningpoolhub.com)
Mining process not running, initiating restart (PhoenixMiner, Ethereum, ZergPool [HSR])

Those are just examples, but as you can see, it's like AM was shuffling algorithms and compatible online services  Huh  PhoenixMiner trying to mine ethereum on Zergpool phi2 pool is kind of weird...


Do you have an idea of what's happening ?
Can you please send me the full log file for this issue by mail? I agree that the pool names look strange here, but it could be that the error message didn't pick up the correct pool name here. With the log files I can verify this as well.

As you requested, i send you my log file. To add to this random problem, i get sometimes alert windows error like the one i get this morning :




As you can see, AM still try to mine an algorithm with an incompatible software...
When this error occur, rig stop working until i click on the OK button. It's annoying because when it happens at night, i can lose severals hours of mining.
Tell me if you need more info or more log than the one i sent you.


Thanks for the logs, I will investigate. If you get an error message like this, it's most likely that the mining software either crash or simply give an error message when starting.

When this happend, please click the Diagnostics button in the toolbar as instructed, as it will often tell you what the isssue is.

Identified the problem. What solution will you give ?, because if a miner fails to start, you should try to solve at least the error it gives.

And as I say today, it fails, not tomorrow. We can not be with such a hidden bug and spend weeks or months, and not fix. Tonight 3 platforms have stopped. Are you going to be responsible?

The errors are important that when the, those of good, informing as it should, not mixing protocols in the same error.

Also, depending on my configuration, if it fails 3 times you should ignore it, because when it gives this error it does not ignore it, and if it does, in the last capture you will see the number of failures and at the end they were stopped, instead of ignoring and follow in other protocols.

Here is work to do. It is also true that T-rex, although it is very weak, is too sensitive, and today's OC, tomorrow does not work
jr. member
Activity: 756
Merit: 2
jr. member
Activity: 756
Merit: 2
https://www.dropbox.com/s/oowmbl1jkumtcka/Captura%20de%20pantalla%202018-07-24%20a%20las%2016.29.43.png?dl=0

It gives a lot of joy to get up and see 3 machines stopped, all night giving failures. But if I do lyra2z in any pool it works, and when it gives the fault it mixes it with another protocol and I do not know why. Two days ago, with the same configuration there were no problems
member
Activity: 418
Merit: 21
Hey Patrike,

you are doing a great job, thank you for that! I have a suggestion to the rules (or maybe it can be done something else).

If I setup a rule with (for example) a temperature trigger greater than or equals 80C.
As actions I have
1) A Notification with "Notifice once until acknowledged" and
2) Run Executable

Whenever the rig got 80C+ I will get one notification only until I click Acknowledge or Clear. So far so good.
But the programm will be loaded over and over again, as long as the rig got 80C+.

Is it possible that the programm will be loaded only one time? Maybe with a mark-field like in Notifications "Start only once until Aknowledge". Or maybe you have a better idea Smiley

Edit: The reason behind is simple. I will turn off a smart socket as emergency stop. But so it receive unlimited turn off signals.
jr. member
Activity: 348
Merit: 5
Hi Awesome Miner Miners,

I just wanted to share something I've used to provide a slight more versatility to the profit switcher and how it's done, via Excel with little to no coding backgrounds.

What it does:
It is setting an external rule to fit the condition that

Initiate Profit Switching IF miner hashrate is > xx% of profile defined hashrate
AND
Profit / Day / GPU is < y.yy
AND
Mining session is > zz seconds.


What you need:

Awesome Miner Premium Edition or Greater (for API access)
Excel (I use office 365)

***
I'm not going into detailed step by step on how this is done. I'll just paste the (little modified) code here, for those interested but no programming background, you can just explore around and use the code below as a starting point.

Part 1 - Queries

Profile_ID (for identifying which profile miner is currently using)
Code:
let
    Source = Xml.Tables(File.Contents("C:\Users\Username\AppData\Roaming\AwesomeMiner\ConfigData.xml")),
    MinerSettings = Source{0}[MinerSettings],
    #"Changed Type" = Table.TransformColumnTypes(MinerSettings,{{"ExternalMinerList", type text}}),
    ManagedMinerList = #"Changed Type"{0}[ManagedMinerList],
    #"Expanded ManagedMiner" = Table.ExpandTableColumn(ManagedMinerList, "ManagedMiner", {"ID", "ProfitProfileId"}, {"ManagedMiner.ID", "ManagedMiner.ProfitProfileId"}),
    #"Renamed Columns" = Table.RenameColumns(#"Expanded ManagedMiner",{{"ManagedMiner.ID", "MinerID"}, {"ManagedMiner.ProfitProfileId", "ProfitProfileId"}}),
    #"Changed Type1" = Table.TransformColumnTypes(#"Renamed Columns",{{"MinerID", type number}, {"ProfitProfileId", type number}})
in
    #"Changed Type1"

ProfitProfile_HR_Table (Hashrate for each algos defined in every profit profile)
Code:
let
    Source = Xml.Tables(File.Contents("C:\Users\Username\AppData\Roaming\AwesomeMiner\ConfigData.xml")),
    #"Changed Type" = Table.TransformColumnTypes(Source,{{"LogLevel", type text}, {"IsFirstRun", type logical}, {"IsFirstTimeMinimize", type logical}, {"AutoStart", type logical}, {"AutoStartMinimized", type logical}, {"AlwaysStartMinimized", type logical}, {"DevelopmentMode", type logical}, {"PerformanceMode", type logical}, {"CheckUpdates", type logical}, {"LongerConnectionTimeout", type logical}, {"AlternativeConnection", type logical}, {"DotNetVersionReminderDisplayed2", type logical}, {"PerformanceModeReminderDisplayed", type logical}, {"BenchmarkOffline", type logical}, {"ConfigurationCreatedUtc", type datetime}}),
    ProfitSwitchingSettings = #"Changed Type"{0}[ProfitSwitchingSettings],
    #"Changed Type1" = Table.TransformColumnTypes(ProfitSwitchingSettings,{{"EnabledPools", type text}, {"UseCustom", type logical}, {"CustomPoolId", Int64.Type}, {"CustomPoolType", type text}, {"NicehashWorker", type text}, {"NicehashRegion", type text}, {"ZpoolWorker", type text}, {"GranatGasWorker", type text}, {"GranatGasRegion", type text}, {"HashRefineryWorker", type text}, {"AHashPoolWorker", type text}, {"ZergPoolWorker", type text}, {"MiningDutchWorker", type text}, {"BlazepoolWorker", type text}, {"BlockMastersWorker", type text}, {"MiningPoolHubWorker", type text}, {"MiningPoolHubRegion", type text}, {"EnableManaged", type logical}, {"PredefinedVisible", type logical}, {"Interval", Int64.Type}, {"PowerCost", type number}, {"UseProfitThreshold", type logical}, {"ProfitThresholdPercent", Int64.Type}, {"NicehashUserUrl", type text}, {"ZpoolUserUrl", type text}, {"GranatGasUserUrl", type text}, {"HashRefineryUserUrl", type text}, {"AHashPoolUserUrl", type text}, {"MiningPoolHubUserUrl", type text}, {"ZergPoolAlgoUserUrl", type text}, {"MiningDutchAlgoUserUrl", type text}, {"BlazepoolUserUrl", type text}, {"BlockMastersUserUrl", type text}, {"SelectBtcPayout", type logical}, {"IgnoreFailedPools", type logical}, {"IgnoreFailedPoolsTime", Int64.Type}, {"RequiredAcceptTime", Int64.Type}}),
    ProfitProfileList = #"Changed Type1"{0}[ProfitProfileList],
    ProfitProfile = ProfitProfileList{0}[ProfitProfile],
    #"Changed Type2" = Table.TransformColumnTypes(ProfitProfile,{{"ID", Int64.Type}, {"Description", type text}, {"PredefinedType", type text}, {"OverridePools", type logical}, {"EnableIgnorePools", type logical}, {"ProfileBatchCommands", type text}}),
    #"Expanded AlgorithmSettingsList" = Table.ExpandTableColumn(#"Changed Type2", "AlgorithmSettingsList", {"AlgorithmSettings"}, {"AlgorithmSettings"}),
    #"Removed Columns" = Table.RemoveColumns(#"Expanded AlgorithmSettingsList",{"PredefinedType", "OverridePools", "EnableIgnorePools", "SwitchingProfile", "ProfileBatchCommands", "ProfitEngineList"}),
    #"Expanded AlgorithmSettings" = Table.ExpandTableColumn(#"Filtered Rows", "AlgorithmSettings", {"Algorithm", "HashrateValue"}, {"Algorithm", "HashrateValue"}),
    #"Changed Type3" = Table.TransformColumnTypes(#"Expanded AlgorithmSettings",{{"HashrateValue", type number}, {"Algorithm", type text}}),
    #"Renamed Columns" = Table.RenameColumns(#"Changed Type3",{{"ID", "ProfitProfileId"}})
in
    #"Renamed Columns"

miners (Joining the miners API call with the previous 2 queries, then do the calculation and determine if Profit Switching condition is met (example here, if hashrate > 85% defined hashrate and each GPU device (not miner) earns less than 0.05 USD, then switch condition is met), set this to auto refresh every minute or however long you see fit.
Code:
let
    Source = Json.Document(Web.Contents("http://mypc:17790/api/miners")),
    groupList = Source[groupList],
    groupList1 = groupList{0},
    minerList = groupList1[minerList],
    #"Converted to Table" = Table.FromList(minerList, Splitter.SplitByNothing(), null, null, ExtraValues.Error),
    #"Expanded Column1" = Table.ExpandRecordColumn(#"Converted to Table", "Column1", {"id", "name", "statusInfo", "speedInfo", "coinInfo", "gpuList", "hasValidStatus"}, {"Column1.id", "Column1.name", "Column1.statusInfo", "Column1.speedInfo", "Column1.coinInfo", "Column1.gpuList", "Column1.hasValidStatus"}),
    #"Expanded Column1.speedInfo" = Table.ExpandRecordColumn(#"Expanded Column1", "Column1.speedInfo", {"hashrate"}, {"Column1.speedInfo.hashrate"}),
    #"Split Column by Delimiter" = Table.SplitColumn(#"Expanded Column1.speedInfo", "Column1.speedInfo.hashrate", Splitter.SplitTextByDelimiter(" ", QuoteStyle.Csv), {"Column1.speedInfo.hashrate.1", "Column1.speedInfo.hashrate.2"}),
    #"Changed Type" = Table.TransformColumnTypes(#"Split Column by Delimiter",{{"Column1.speedInfo.hashrate.1", type number}}),
    #"Added Custom1" = Table.AddColumn(#"Changed Type", "GPU Count", each List.Count([Column1.gpuList])),
    #"Expanded Column1.statusInfo" = Table.ExpandRecordColumn(#"Added Custom1", "Column1.statusInfo", {"secondsSinceStart", "statusDisplay"}, {"Column1.statusInfo.secondsSinceStart", "Column1.statusInfo.statusDisplay"}),
    #"Expanded Column1.coinInfo" = Table.ExpandRecordColumn(#"Expanded Column1.statusInfo", "Column1.coinInfo", {"profitPerDayValue", "algorithm"}, {"Column1.coinInfo.profitPerDayValue", "Column1.coinInfo.algorithm"}),
    #"Reordered Columns" = Table.ReorderColumns(#"Expanded Column1.coinInfo",{"Column1.id", "Column1.name", "Column1.statusInfo.statusDisplay", "Column1.statusInfo.secondsSinceStart", "Column1.coinInfo.profitPerDayValue", "Column1.hasValidStatus"}),
    #"Merged Queries" = Table.NestedJoin(#"Appended Query",{"Column1.id"},Profile_ID,{"MinerID"},"ProfitProfile_HR_Table",JoinKind.LeftOuter),
    #"Expanded ProfitProfile_HR_Table" = Table.ExpandTableColumn(#"Merged Queries", "ProfitProfile_HR_Table", {"ProfitProfileId"}, {"ProfitProfile_HR_Table.ProfitProfileId"}),
    #"Renamed Columns" = Table.RenameColumns(#"Expanded ProfitProfile_HR_Table",{{"ProfitProfile_HR_Table.ProfitProfileId", "ProfitProfileId"}}),
    #"Merged Queries1" = Table.NestedJoin(#"Renamed Columns",{"ProfitProfileId", "Column1.coinInfo.algorithm"},ProfitProfile_HR_Table,{"ProfitProfileId", "Algorithm"},"ProfitProfile_HR_Table",JoinKind.LeftOuter),
    #"Expanded ProfitProfile_HR_Table1" = Table.ExpandTableColumn(#"Merged Queries1", "ProfitProfile_HR_Table", {"HashrateValue"}, {"ProfitProfile_HR_Table.HashrateValue"}),
    #"Renamed Columns1" = Table.RenameColumns(#"Expanded ProfitProfile_HR_Table1",{{"ProfitProfile_HR_Table.HashrateValue", "ProfitProfile_HashRate"}}),
    #"Added Custom" = Table.AddColumn(#"Renamed Columns1", "Custom", each if [Column1.statusInfo.secondsSinceStart] > 60 and [Column1.coinInfo.profitPerDayValue] <= (0.05*[GPU Count]) and [Column1.speedInfo.hashrate.1] > (0.85*[ProfitProfile_HashRate]) then 1 else 0),
    #"Renamed Columns2" = Table.RenameColumns(#"Added Custom",{{"Column1.id", "RigID"}, {"Column1.name", "RigName"}, {"Column1.statusInfo.statusDisplay", "RigStatus"}, {"Column1.statusInfo.secondsSinceStart", "RunTime"}, {"Column1.speedInfo.hashrate.1", "HashRate"}, {"Column1.speedInfo.hashrate.2", "HashRateUnit"}, {"Column1.coinInfo.profitPerDayValue", "ProfitPerDay"}, {"Column1.coinInfo.algorithm", "Algo"}, {"Column1.hasValidStatus", "ValidStatus"}, {"ProfitProfile_HashRate", "Profile HashRate"}, {"ProfitProfileId", "Profile ID"}, {"Custom", "Switch"}}),
    #"Changed Type1" = Table.TransformColumnTypes(#"Renamed Columns2",{{"Switch", Int64.Type}}),
    #"Filtered Rows" = Table.SelectRows(#"Changed Type1", each ([RigStatus] = "Mining") and ([Algo] <> null)),
    #"Sorted Rows" = Table.Sort(#"Filtered Rows",{{"Switch", Order.Descending}, {"RunTime", Order.Descending}}),
    #"Filtered Rows1" = Table.SelectRows(#"Sorted Rows", each true)
in
    #"Filtered Rows1"


Part 2 - Excel VBA / Macro
Here's the VBA to call the Profit Switching Action (check your AM's own rule ID, modify as per YOUR AM's settings), plus 2 procedures, 1 to start, 1 to pause, assign them to 2 buttons for easy access.

Code:
Global IsTimeToStop As Boolean

Sub runProfitSwitch()

Dim objHTTP     As Object
Dim URL         As String
Dim Data        As String
Dim replyTXT
Dim URLConcat As String
Dim timeStamp As String

If IsTimeToStop Then Exit Sub

IsTimeToStop = False
timeStamp = Format(Now(), "dd-mm-yyyy hh:mm:ss")
Debug.Print "Running - " + timeStamp

If Cells(2, 14).Value = 1 Then

URLConcat = "http://mypc:17790/api/miners/" & Cells(2, 1).Value & "?action=rule&rule_id=8"

Set objHTTP = CreateObject("MSXML2.ServerXMLHTTP")
objHTTP.Open "POST", URLConcat, False
objHTTP.setRequestHeader "Content-Type", "application/x-www-form-urlencoded"
objHTTP.send ("")
End If

Debug.Print "Wait for next Run"

Application.OnTime Now + TimeValue("00:01:15"), "runProfitSwitch"

End Sub

Sub PauseMacro()
    IsTimeToStop = True
    Debug.Print "Stopping..."
End Sub

Sub StartSwitcher()
    IsTimeToStop = False
    runProfitSwitch
End Sub

remember, both mypc in VBA code and queries, should be replaced by your AM main program PC's IP address.

Example screenshot:


and you only need to create a rule in AM that does 1 action: "Run Profit Switching" and enable "Support Manual Activation"

jr. member
Activity: 348
Merit: 5
Hi Patrike,

More suggestions:

1. This one should be easy, is it possible to have the status bar to display number of active miners in the format similar to xxx/yyy where x are active miners (not stopped/offline) and y is the total number of miners. It gives a quick glimpse on number of active miners without the need to scroll up and down the "Miners" tab. handy if you have a long list of miners. (or can be just like group titles, (Total Active: XXX, Total Miners: yyy)

2. This one may have been suggested by other users before, but let's see if a suitable approach can be implemented if it is "popular", say I'm using "Current" statistics for profit switching and several online services, say the bigger ones are zpool, zergpool, ahash, blazepool...etc. Say if they all provide same coins for a particular algo and pool hashrate is sufficient that the TTF block is insignificant and fairly much the same across all of them, in theory, the "current" profitabilty then only differs by the pool statistics update interval (whether hardcoded or configured by pool admin). Say, I wanted to use the Online Services similar to how I use the pools, to have a Primary Online Services, and just 1 or 2 others as failovers (so no, I don't want to disable them, but the ability to prioritise them).

One of the situation we're trying to resolve here is that, if Algo A is currently most profitable and is consistent across several online services (zpool, ahash, zerg) and I'm already mining on say, zerg, the next 2 minutes, zerg updated api and Algo A on Zerg is now ranked below ahash, then profit switcher will switch the miner to ahash albeit mining the same algo and just relaunch the miner. Not to mention time are wasted (it adds up) but most importantly, it distributes your shares submitted among the pools and lengthen the payout frequency due to minimum payouts.

Can this be made into a say, optional "toggle" feature, like a toggle-able hardcoded rule such that:

Classic Mode: switch to whichever Online Services only based on profitability rank

New Mode (find a cool name for it, like MrPlus's PlusMiner lol): Rank by profitability (but grouped by algo), so like below:

Code:
Lyra2v2 - Profitability after calculation in preferred currency for a specific miner / day
Ahash - $2
Blaze - $3
zerg - $2
zpool - $1.5

Code:
X16R - Profitability after calculation in preferred currency for a specific miner / day
Ahash - $1.5
Blaze - $1
zerg - $4
zpool - $2
If miner is mining on Lyra2v2 right now, the it should switch to zergpool on X16R, but if miner is mining zpool X16R already, can we have the toggle option to have it not change pool at all due to the same algo AND highest profitability by GROUP? Or similarly to profit switching settings in Options, where it only switch if there's a ranked preference to the online services (configurable), or by threshold within the same algo (and/or by number of profit switching rounds where resulting profitability rank within the group is consistent). I hope you understand what I'm trying to get at here. It might just look a bit complicated  Tongue

Best Regards,
jr. member
Activity: 348
Merit: 5

An update on the issue related to notifications of mining software being restarted (or failed to start, as in the dialog):

If a mining software crashes, Awesome Miner will display a notification about it where the mining software and pool is also indicated. The pool information is based on what the mining software reported. However, if the mining software crashes fast once started, and didn't send any pool information to Awesome Miner, Awesome Miner would incorrectly use the last provided pool information which in this case is from the previous mining software that was running, so it could be the name of a pool that was used before and not the current one.

Please note that it's only the error message that is incorrect here, as it would indicate the last successfully reported pool. The actual pool for mining is correct.


Hi Patrike,

Thx for the explanation, I too along with other users like @Dalba and @ trucobit have experienced such confusing error messages along with stopped miners. It is (I believe) as you confirmed that it is a result of crashing due to various factors, rather than the "error" is causing the crashes and stopped miners consequently.

I might hypothesise another scenario which I seem to have been able to produce such error, can't say consistently but surely a lot more often, is that when you have rules in place that involves stops/starts a managed profit miner and when the action execution time overlaps the profit switching action as specified by the profit switcher interval setting, it would likely have caused AM to confuse and mixed up the command sequences and lead to stopped/crashed miners.

I have 17 miners active last night, and only 6 are running when I wake up this morning, no machine freeze/hang or BSOD, just stopped, some have occasional failed to start miner software message, but that's like, 2 or 3 out of the 10 odd stopped miners. Some software with built-in watchdogs seems to cause these errors more often such as (bminer, zealot-enemy, CryptoDredge), some of them might seemly improve if you put in parameters to disable watchdog where available, but that's not a workaround that seem to make significant difference.

@Dalba & @trucobit (& Patrike FYI), if you are observing the behaviour like me and may have some configurations that are similar to what I described above, try the following things I did today, I have not experienced the issue for 12 hours bar 1 rig (with a driver failure/reset on 1 card causing it). *First, I disabled all rules with start/stop actions, 2nd, I tweaked and lowered OC target on several rigs, lastly, I relaxed the profit switching aggressiveness and for now, it kind of does the trick (Profit Switching: 20Min, threshold 10%, Current statistics - with a self made custom switch strategy, I'm averaging 1 switch roughly every 10minutes)

***
@Patrike, this brings a suggestion if it's confirmed that conflict between rule Start/Stop actions and builtin profit switching may have caused miners to error out, then it might be a worthwhile idea to investigate the possibility to have AM to have some builtin check to avoid such rule to execute 1 min (or whatever value suitable) before scheduled Profit Swithing is to take place.

Best Regards,
Jump to: