diff --git a/template-farm.xml b/template-farm.xml
new file mode 100644
index 0000000..030ef29
--- /dev/null
+++ b/template-farm.xml
@@ -0,0 +1,1279 @@
+
+
+ 4.2
+ 2019-06-03T03:35:45Z
+
+
+ Фермы
+
+
+
+
+ Farm
+ Farm
+
+
+
+ Фермы
+
+
+
+
+ Farm
+
+
+ FarmAll
+
+
+ FarmCard
+
+
+
+ -
+ Card1
+ 18
+
+
+ Farm.Card1
+ 0
+ 1d
+ 0
+ 0
+ 4
+
+
+
+
+ 0
+ 0
+
+ 0
+
+
+
+ 0
+
+
+
+
+
+
+ 0
+
+
+ FarmCard
+
+
+
+
+
+
+ 5
+ ^(?:\d*;){0}(\d*)(?:;|$)
+\1
+ 0
+
+
+
+
+ 3s
+
+
+
+ 200
+ 1
+ 0
+
+
+ 0
+ 0
+ 0
+ 0
+
+
+
+ 0
+ 0
+
+ Farm.Video
+
+
+ -
+ Card2
+ 18
+
+
+ Farm.Card2
+ 0
+ 1d
+ 0
+ 0
+ 4
+
+
+
+
+ 0
+ 0
+
+ 0
+
+
+
+ 0
+
+
+
+
+
+
+ 0
+
+
+ FarmCard
+
+
+
+
+
+
+ 5
+ ^(?:\d*;){1}(\d*)(?:;|$)
+\1
+ 0
+
+
+
+
+ 3s
+
+
+
+ 200
+ 1
+ 0
+
+
+ 0
+ 0
+ 0
+ 0
+
+
+
+ 0
+ 0
+
+ Farm.Video
+
+
+ -
+ Card3
+ 18
+
+
+ Farm.Card3
+ 0
+ 1d
+ 0
+ 0
+ 4
+
+
+
+
+ 0
+ 0
+
+ 0
+
+
+
+ 0
+
+
+
+
+
+
+ 0
+
+
+ FarmCard
+
+
+
+
+
+
+ 5
+ ^(?:\d*;){2}(\d*)(?:;|$)
+\1
+ 0
+
+
+
+
+ 3s
+
+
+
+ 200
+ 1
+ 0
+
+
+ 0
+ 0
+ 0
+ 0
+
+
+
+ 0
+ 0
+
+ Farm.Video
+
+
+ -
+ Card4
+ 18
+
+
+ Farm.Card4
+ 0
+ 1d
+ 0
+ 0
+ 4
+
+
+
+
+ 0
+ 0
+
+ 0
+
+
+
+ 0
+
+
+
+
+
+
+ 0
+
+
+ FarmCard
+
+
+
+
+
+
+ 5
+ ^(?:\d*;){3}(\d*)(?:;|$)
+\1
+ 0
+
+
+
+
+ 3s
+
+
+
+ 200
+ 1
+ 0
+
+
+ 0
+ 0
+ 0
+ 0
+
+
+
+ 0
+ 0
+
+ Farm.Video
+
+
+ -
+ Card5
+ 18
+
+
+ Farm.Card5
+ 0
+ 1d
+ 0
+ 0
+ 4
+
+
+
+
+ 0
+ 0
+
+ 0
+
+
+
+ 0
+
+
+
+
+
+
+ 0
+
+
+ FarmCard
+
+
+
+
+
+
+ 5
+ ^(?:\d*;){4}(\d*)(?:;|$)
+\1
+ 0
+
+
+
+
+ 3s
+
+
+
+ 200
+ 1
+ 0
+
+
+ 0
+ 0
+ 0
+ 0
+
+
+
+ 0
+ 0
+
+ Farm.Video
+
+
+ -
+ Card6
+ 18
+
+
+ Farm.Card6
+ 0
+ 1d
+ 0
+ 0
+ 4
+
+
+
+
+ 0
+ 0
+
+ 0
+
+
+
+ 0
+
+
+
+
+
+
+ 0
+
+
+ FarmCard
+
+
+
+
+
+
+ 5
+ ^(?:\d*;){5}(\d*)(?:;|$)
+\1
+ 0
+
+
+
+
+ 3s
+
+
+
+ 200
+ 1
+ 0
+
+
+ 0
+ 0
+ 0
+ 0
+
+
+
+ 0
+ 0
+
+ Farm.Video
+
+
+ -
+ Card7
+ 18
+
+
+ Farm.Card7
+ 0
+ 1d
+ 0
+ 0
+ 4
+
+
+
+
+ 0
+ 0
+
+ 0
+
+
+
+ 0
+
+
+
+
+
+
+ 0
+
+
+ FarmCard
+
+
+
+
+
+
+ 5
+ ^(?:\d*;){6}(\d*)(?:;|$)
+\1
+ 0
+
+
+
+
+ 3s
+
+
+
+ 200
+ 1
+ 0
+
+
+ 0
+ 0
+ 0
+ 0
+
+
+
+ 0
+ 0
+
+ Farm.Video
+
+
+ -
+ Card8
+ 18
+
+
+ Farm.Card8
+ 0
+ 1d
+ 0
+ 0
+ 4
+
+
+
+
+ 0
+ 0
+
+ 0
+
+
+
+ 0
+
+
+
+
+
+
+ 0
+
+
+ FarmCard
+
+
+
+
+
+
+ 5
+ ^(?:\d*;){7}(\d*)(?:;|$)
+\1
+ 0
+
+
+
+
+ 3s
+
+
+
+ 200
+ 1
+ 0
+
+
+ 0
+ 0
+ 0
+ 0
+
+
+
+ 0
+ 0
+
+ Farm.Video
+
+
+ -
+ Card9
+ 18
+
+
+ Farm.Card9
+ 0
+ 1d
+ 0
+ 0
+ 4
+
+
+
+
+ 0
+ 0
+
+ 0
+
+
+
+ 0
+
+
+
+
+
+
+ 0
+
+
+ FarmCard
+
+
+
+
+
+
+ 5
+ ^(?:\d*;){8}(\d*)(?:;|$)
+\1
+ 0
+
+
+
+
+ 3s
+
+
+
+ 200
+ 1
+ 0
+
+
+ 0
+ 0
+ 0
+ 0
+
+
+
+ 0
+ 0
+
+ Farm.Video
+
+
+ -
+ Card10
+ 18
+
+
+ Farm.Card10
+ 0
+ 1d
+ 0
+ 0
+ 4
+
+
+
+
+ 0
+ 0
+
+ 0
+
+
+
+ 0
+
+
+
+
+
+
+ 0
+
+
+ FarmCard
+
+
+
+
+
+
+ 5
+ ^(?:\d*;){9}(\d*)(?:;|$)
+\1
+ 0
+
+
+
+
+ 3s
+
+
+
+ 200
+ 1
+ 0
+
+
+ 0
+ 0
+ 0
+ 0
+
+
+
+ 0
+ 0
+
+ Farm.Video
+
+
+ -
+ Card11
+ 18
+
+
+ Farm.Card11
+ 0
+ 1d
+ 0
+ 0
+ 4
+
+
+
+
+ 0
+ 0
+
+ 0
+
+
+
+ 0
+
+
+
+
+
+
+ 0
+
+
+ FarmCard
+
+
+
+
+
+
+ 5
+ ^(?:\d*;){10}(\d*)(?:;|$)
+\1
+ 0
+
+
+
+
+ 3s
+
+
+
+ 200
+ 1
+ 0
+
+
+ 0
+ 0
+ 0
+ 0
+
+
+
+ 0
+ 0
+
+ Farm.Video
+
+
+ -
+ Hashrate
+ 18
+
+
+ Farm.Hashrate
+ 0
+ 7d
+ 30d
+ 0
+ 0
+
+ MH/s
+
+
+ 0
+ 0
+
+ 0
+
+
+
+ 0
+
+
+
+
+
+
+ 0
+
+
+ Farm
+
+
+
+
+
+
+ 12
+ $['result'][2]
+ 0
+
+
+
+ 5
+ ([0-9]+)
+\0
+ 0
+
+
+
+
+ 3s
+
+
+
+ 200
+ 1
+ 0
+
+
+ 0
+ 0
+ 0
+ 0
+
+
+
+ 0
+ 0
+
+ FarmGetstats["{HOST.CONN}", "{$HOST.PORT}"]
+
+
+ -
+ Uptime
+ 18
+
+
+ Farm.Uptime
+ 0
+ 7d
+ 30d
+ 0
+ 3
+
+ m
+
+
+ 0
+ 0
+
+ 0
+
+
+
+ 0
+
+
+
+
+
+
+ 0
+
+
+ Farm
+
+
+
+
+
+
+ 12
+ $['result'][1]
+ 0
+
+
+
+
+ 3s
+
+
+
+ 200
+ 1
+ 0
+
+
+ 0
+ 0
+ 0
+ 0
+
+
+
+ 0
+ 0
+
+ FarmGetstats["{HOST.CONN}", "{$HOST.PORT}"]
+
+
+ -
+ HashVideo
+ 18
+
+
+ Farm.Video
+ 0
+ 1d
+ 0
+ 0
+ 4
+
+
+
+
+ 0
+ 0
+
+ 0
+
+
+
+ 0
+
+
+
+
+
+
+ 0
+
+
+ Farm
+
+
+
+
+
+
+ 12
+ $['result'][3]
+ 0
+
+
+
+
+ 3s
+
+
+
+ 200
+ 1
+ 0
+
+
+ 0
+ 0
+ 0
+ 0
+
+
+
+ 0
+ 0
+
+ FarmGetstats["{HOST.CONN}", "{$HOST.PORT}"]
+
+
+ -
+ FarmAll
+ 10
+
+
+ FarmGetstats["{HOST.CONN}", "{$HOST.PORT}"]
+ 300s
+ 1d
+ 0
+ 0
+ 4
+
+
+
+
+ 0
+ 0
+
+ 0
+
+
+
+ 0
+
+
+
+
+
+
+ 0
+
+
+ FarmAll
+
+
+
+
+
+
+ 3s
+
+
+
+ 200
+ 1
+ 0
+
+
+ 0
+ 0
+ 0
+ 0
+
+
+
+ 0
+ 0
+
+
+ -
+ Up_Down
+ 3
+
+
+ icmpping
+ 60s
+ 1d
+ 1d
+ 0
+ 3
+
+
+
+
+ 0
+ 0
+
+ 0
+
+
+
+ 0
+
+
+
+
+
+
+ 0
+
+
+ Farm
+
+
+
+ Service state
+
+
+
+
+ 3s
+
+
+
+ 200
+ 1
+ 0
+
+
+ 0
+ 0
+ 0
+ 0
+
+
+
+ 0
+ 0
+
+
+ -
+ Claymore
+ 3
+
+
+ net.tcp.service[tcp,,3333]
+ 60s
+ 1d
+ 1d
+ 0
+ 3
+
+
+
+
+ 0
+ 0
+
+ 0
+
+
+
+ 0
+
+
+
+
+
+
+ 0
+
+
+ Farm
+
+
+
+ Service state
+
+
+
+
+ 3s
+
+
+
+ 200
+ 1
+ 0
+
+
+ 0
+ 0
+ 0
+ 0
+
+
+
+ 0
+ 0
+
+
+
+
+
+
+
+ {$HOST.PORT}
+ 3333
+
+
+
+
+
+
+
+
+
+ {Farm:net.tcp.service[tcp,,3333].last(#3)}=0 and {Farm:icmpping.last()}=1
+ 1
+ {Farm:net.tcp.service[tcp,,3333].last()}=1
+ Claymore DOWN {HOST.NAME}
+ 0
+
+
+ 0
+ 0
+
+ 0
+ 1
+
+
+
+
+ {Farm:net.tcp.service[tcp,,3333].last(#3)}=0 and {Farm:icmpping.last(#3)}=0
+ 1
+ {Farm:icmpping.last()}=1 or {Farm:net.tcp.service[tcp,,3333].last()}=1
+ Farm Host DOWN {HOST.NAME}
+ 0
+
+
+ 0
+ 5
+
+ 0
+ 1
+
+
+
+
+ ({Farm:icmpping.last()}=1 and {Farm:net.tcp.service[tcp,,3333].last()}=1) and
+({Farm:Farm.Card1.last()}>0 and {Farm:Farm.Card1.nodata(15m)}=1) or ({Farm:Farm.Card2.last()}>0 and {Farm:Farm.Card2.nodata(15m)}=1) or ({Farm:Farm.Card3.last()}>0 and {Farm:Farm.Card3.nodata(15m)}=1) or ({Farm:Farm.Card4.last()}>0 and {Farm:Farm.Card4.nodata(15m)}=1) or ({Farm:Farm.Card5.last()}>0 and {Farm:Farm.Card5.nodata(15m)}=1) or ({Farm:Farm.Card6.last()}>0 and {Farm:Farm.Card6.nodata(15m)}=1) or ({Farm:Farm.Card7.last()}>0 and {Farm:Farm.Card7.nodata(15m)}=1) or ({Farm:Farm.Card8.last()}>0 and {Farm:Farm.Card8.nodata(15m)}=1) or ({Farm:Farm.Card9.last()}>0 and {Farm:Farm.Card9.nodata(15m)}=1) or ({Farm:Farm.Card10.last()}>0 and {Farm:Farm.Card10.nodata(15m)}=1) or ({Farm:Farm.Card11.last()}>0 and {Farm:Farm.Card11.nodata(15m)}=1)
+ 0
+
+ Отвал GPU {HOST.NAME}
+ 0
+
+
+ 0
+ 1
+
+ 0
+ 1
+
+
+
+
+ {Farm:net.tcp.service[tcp,,3333].last()}=1 and {Farm:icmpping.last()}=1 and {Farm:FarmGetstats["{HOST.CONN}", "{$HOST.PORT}"].nodata(15m)}=1
+ 0
+
+ Ферма зависла {HOST.NAME}
+ 0
+
+
+ 0
+ 4
+
+ 0
+ 1
+
+
+
+
+
+
+ Service state
+
+
+ 0
+ Down
+
+
+ 1
+ Up
+
+
+
+
+
diff --git a/template-l3.xml b/template-l3.xml
new file mode 100644
index 0000000..c8b9d69
--- /dev/null
+++ b/template-l3.xml
@@ -0,0 +1,1807 @@
+
+
+ 4.2
+ 2019-06-03T03:37:11Z
+
+
+ AntMiner L3
+
+
+
+
+ AntMiner L3
+ AntMiner L3
+
+
+
+ AntMiner L3
+
+
+
+
+ AntMinerL3
+
+
+ AntMinerL3All
+
+
+ AntMinerL3Pool
+
+
+
+ -
+ AntMinerGetAllpool
+ 10
+
+
+ AntMinerGetAllpool["{HOST.CONN}", "{$HOST.PORT}"]
+ 300s
+ 1d
+ 0
+ 0
+ 4
+
+
+
+
+ 0
+ 0
+
+ 0
+
+
+
+ 0
+
+
+
+
+
+
+ 0
+
+
+ AntMinerL3Pool
+
+
+
+
+
+
+ 3s
+
+
+
+ 200
+ 1
+ 0
+
+
+ 0
+ 0
+ 0
+ 0
+
+
+
+ 0
+ 0
+
+
+ -
+ AntMinerL3All
+ 10
+
+
+ AntMinerGetAllstats["{HOST.CONN}", "{$HOST.PORT}"]
+ 300s
+ 1d
+ 0
+ 0
+ 4
+
+
+
+
+ 0
+ 0
+
+ 0
+
+
+
+ 0
+
+
+
+
+
+
+ 0
+
+
+ AntMinerL3All
+
+
+
+
+
+
+ 3s
+
+
+
+ 200
+ 1
+ 0
+
+
+ 0
+ 0
+ 0
+ 0
+
+
+
+ 0
+ 0
+
+
+ -
+ CGMiner
+ 18
+
+
+ AntMinerL3.CGMiner
+ 0
+ 1d
+ 0
+ 0
+ 4
+
+
+
+
+ 0
+ 0
+
+ 0
+
+
+
+ 0
+
+
+
+
+
+
+ 0
+
+
+ AntMinerL3
+
+
+
+
+
+
+ 12
+ $[0]['CGMiner']
+ 0
+
+
+
+
+ 3s
+
+
+
+ 200
+ 1
+ 0
+
+
+ 0
+ 0
+ 0
+ 0
+
+
+
+ 0
+ 0
+
+ AntMinerGetAllstats["{HOST.CONN}", "{$HOST.PORT}"]
+
+
+ -
+ CompileTime
+ 18
+
+
+ AntMinerL3.CompileTime
+ 0
+ 1d
+ 0
+ 0
+ 4
+
+
+
+
+ 0
+ 0
+
+ 0
+
+
+
+ 0
+
+
+
+
+
+
+ 0
+
+
+ AntMinerL3
+
+
+
+
+
+
+ 12
+ $[0]['CompileTime']
+ 0
+
+
+
+
+ 3s
+
+
+
+ 200
+ 1
+ 0
+
+
+ 0
+ 0
+ 0
+ 0
+
+
+
+ 0
+ 0
+
+ AntMinerGetAllstats["{HOST.CONN}", "{$HOST.PORT}"]
+
+
+ -
+ Elapsed
+ 18
+
+
+ AntMinerL3.Elapsed
+ 0
+ 7d
+ 30d
+ 0
+ 3
+
+ s
+
+
+ 0
+ 0
+
+ 0
+
+
+
+ 0
+
+
+
+
+
+
+ 0
+
+
+ AntMinerL3
+
+
+
+
+
+
+ 12
+ $[1]['Elapsed']
+ 0
+
+
+
+
+ 3s
+
+
+
+ 200
+ 1
+ 0
+
+
+ 0
+ 0
+ 0
+ 0
+
+
+
+ 0
+ 0
+
+ AntMinerGetAllstats["{HOST.CONN}", "{$HOST.PORT}"]
+
+
+ -
+ Fan1
+ 18
+
+
+ AntMinerL3.Fan1
+ 0
+ 1d
+ 1d
+ 0
+ 3
+
+ RPM
+
+
+ 0
+ 0
+
+ 0
+
+
+
+ 0
+
+
+
+
+
+
+ 0
+
+
+ AntMinerL3
+
+
+
+
+
+
+ 12
+ $[1]['fan1']
+ 0
+
+
+
+
+ 3s
+
+
+
+ 200
+ 1
+ 0
+
+
+ 0
+ 0
+ 0
+ 0
+
+
+
+ 0
+ 0
+
+ AntMinerGetAllstats["{HOST.CONN}", "{$HOST.PORT}"]
+
+
+ -
+ Fan2
+ 18
+
+
+ AntMinerL3.Fan2
+ 0
+ 1d
+ 1d
+ 0
+ 3
+
+ RPM
+
+
+ 0
+ 0
+
+ 0
+
+
+
+ 0
+
+
+
+
+
+
+ 0
+
+
+ AntMinerL3
+
+
+
+
+
+
+ 12
+ $[1]['fan2']
+ 0
+
+
+
+
+ 3s
+
+
+
+ 200
+ 1
+ 0
+
+
+ 0
+ 0
+ 0
+ 0
+
+
+
+ 0
+ 0
+
+ AntMinerGetAllstats["{HOST.CONN}", "{$HOST.PORT}"]
+
+
+ -
+ Fan_num
+ 18
+
+
+ AntMinerL3.Fan_num
+ 0
+ 1d
+ 1d
+ 0
+ 3
+
+
+
+
+ 0
+ 0
+
+ 0
+
+
+
+ 0
+
+
+
+
+
+
+ 0
+
+
+ AntMinerL3
+
+
+
+
+
+
+ 12
+ $[1]['fan_num']
+ 0
+
+
+
+
+ 3s
+
+
+
+ 200
+ 1
+ 0
+
+
+ 0
+ 0
+ 0
+ 0
+
+
+
+ 0
+ 0
+
+ AntMinerGetAllstats["{HOST.CONN}", "{$HOST.PORT}"]
+
+
+ -
+ Hashrate
+ 18
+
+
+ AntMinerL3.Hashrate
+ 0
+ 7d
+ 30d
+ 0
+ 0
+
+ MH/s
+
+
+ 0
+ 0
+
+ 0
+
+
+
+ 0
+
+
+
+
+
+
+ 0
+
+
+ AntMinerL3
+
+
+
+
+
+
+ 12
+ $[1]['GHS 5s']
+ 0
+
+
+
+
+ 3s
+
+
+
+ 200
+ 1
+ 0
+
+
+ 0
+ 0
+ 0
+ 0
+
+
+
+ 0
+ 0
+
+ AntMinerGetAllstats["{HOST.CONN}", "{$HOST.PORT}"]
+
+
+ -
+ Hashrate1
+ 18
+
+
+ AntMinerL3.Hashrate1
+ 0
+ 1d
+ 1d
+ 0
+ 0
+
+ MH/s
+
+
+ 0
+ 0
+
+ 0
+
+
+
+ 0
+
+
+
+
+
+
+ 0
+
+
+ AntMinerL3
+
+
+
+
+
+
+ 12
+ $[1]['chain_rate1']
+ 0
+
+
+
+
+ 3s
+
+
+
+ 200
+ 1
+ 0
+
+
+ 0
+ 0
+ 0
+ 0
+
+
+
+ 0
+ 0
+
+ AntMinerGetAllstats["{HOST.CONN}", "{$HOST.PORT}"]
+
+
+ -
+ Hashrate2
+ 18
+
+
+ AntMinerL3.Hashrate2
+ 0
+ 1d
+ 1d
+ 0
+ 0
+
+ MH/s
+
+
+ 0
+ 0
+
+ 0
+
+
+
+ 0
+
+
+
+
+
+
+ 0
+
+
+ AntMinerL3
+
+
+
+
+
+
+ 12
+ $[1]['chain_rate2']
+ 0
+
+
+
+
+ 3s
+
+
+
+ 200
+ 1
+ 0
+
+
+ 0
+ 0
+ 0
+ 0
+
+
+
+ 0
+ 0
+
+ AntMinerGetAllstats["{HOST.CONN}", "{$HOST.PORT}"]
+
+
+ -
+ Hashrate3
+ 18
+
+
+ AntMinerL3.Hashrate3
+ 0
+ 1d
+ 1d
+ 0
+ 0
+
+ MH/s
+
+
+ 0
+ 0
+
+ 0
+
+
+
+ 0
+
+
+
+
+
+
+ 0
+
+
+ AntMinerL3
+
+
+
+
+
+
+ 12
+ $[1]['chain_rate3']
+ 0
+
+
+
+
+ 3s
+
+
+
+ 200
+ 1
+ 0
+
+
+ 0
+ 0
+ 0
+ 0
+
+
+
+ 0
+ 0
+
+ AntMinerGetAllstats["{HOST.CONN}", "{$HOST.PORT}"]
+
+
+ -
+ Hashrate4
+ 18
+
+
+ AntMinerL3.Hashrate4
+ 0
+ 1d
+ 1d
+ 0
+ 0
+
+ MH/s
+
+
+ 0
+ 0
+
+ 0
+
+
+
+ 0
+
+
+
+
+
+
+ 0
+
+
+ AntMinerL3
+
+
+
+
+
+
+ 12
+ $[1]['chain_rate4']
+ 0
+
+
+
+
+ 3s
+
+
+
+ 200
+ 1
+ 0
+
+
+ 0
+ 0
+ 0
+ 0
+
+
+
+ 0
+ 0
+
+ AntMinerGetAllstats["{HOST.CONN}", "{$HOST.PORT}"]
+
+
+ -
+ Miner_count
+ 18
+
+
+ AntMinerL3.Miner_count
+ 0
+ 1d
+ 1d
+ 0
+ 3
+
+
+
+
+ 0
+ 0
+
+ 0
+
+
+
+ 0
+
+
+
+
+
+
+ 0
+
+
+ AntMinerL3
+
+
+
+
+
+
+ 12
+ $[1]['miner_count']
+ 0
+
+
+
+
+ 3s
+
+
+
+ 200
+ 1
+ 0
+
+
+ 0
+ 0
+ 0
+ 0
+
+
+
+ 0
+ 0
+
+ AntMinerGetAllstats["{HOST.CONN}", "{$HOST.PORT}"]
+
+
+ -
+ Temp1
+ 18
+
+
+ AntMinerL3.Temp1
+ 0
+ 1d
+ 1d
+ 0
+ 3
+
+ C
+
+
+ 0
+ 0
+
+ 0
+
+
+
+ 0
+
+
+
+
+
+
+ 0
+
+
+ AntMinerL3
+
+
+
+
+
+
+ 12
+ $[1]['temp2_1']
+ 0
+
+
+
+
+ 3s
+
+
+
+ 200
+ 1
+ 0
+
+
+ 0
+ 0
+ 0
+ 0
+
+
+
+ 0
+ 0
+
+ AntMinerGetAllstats["{HOST.CONN}", "{$HOST.PORT}"]
+
+
+ -
+ Temp2
+ 18
+
+
+ AntMinerL3.Temp2
+ 0
+ 1d
+ 1d
+ 0
+ 3
+
+ C
+
+
+ 0
+ 0
+
+ 0
+
+
+
+ 0
+
+
+
+
+
+
+ 0
+
+
+ AntMinerL3
+
+
+
+
+
+
+ 12
+ $[1]['temp2_2']
+ 0
+
+
+
+
+ 3s
+
+
+
+ 200
+ 1
+ 0
+
+
+ 0
+ 0
+ 0
+ 0
+
+
+
+ 0
+ 0
+
+ AntMinerGetAllstats["{HOST.CONN}", "{$HOST.PORT}"]
+
+
+ -
+ Temp3
+ 18
+
+
+ AntMinerL3.Temp3
+ 0
+ 1d
+ 1d
+ 0
+ 3
+
+ C
+
+
+ 0
+ 0
+
+ 0
+
+
+
+ 0
+
+
+
+
+
+
+ 0
+
+
+ AntMinerL3
+
+
+
+
+
+
+ 12
+ $[1]['temp2_3']
+ 0
+
+
+
+
+ 3s
+
+
+
+ 200
+ 1
+ 0
+
+
+ 0
+ 0
+ 0
+ 0
+
+
+
+ 0
+ 0
+
+ AntMinerGetAllstats["{HOST.CONN}", "{$HOST.PORT}"]
+
+
+ -
+ Temp4
+ 18
+
+
+ AntMinerL3.Temp4
+ 0
+ 1d
+ 1d
+ 0
+ 3
+
+ C
+
+
+ 0
+ 0
+
+ 0
+
+
+
+ 0
+
+
+
+
+
+
+ 0
+
+
+ AntMinerL3
+
+
+
+
+
+
+ 12
+ $[1]['temp2_4']
+ 0
+
+
+
+
+ 3s
+
+
+
+ 200
+ 1
+ 0
+
+
+ 0
+ 0
+ 0
+ 0
+
+
+
+ 0
+ 0
+
+ AntMinerGetAllstats["{HOST.CONN}", "{$HOST.PORT}"]
+
+
+ -
+ Temp_num
+ 18
+
+
+ AntMinerL3.Temp_num
+ 0
+ 1d
+ 1d
+ 0
+ 3
+
+
+
+
+ 0
+ 0
+
+ 0
+
+
+
+ 0
+
+
+
+
+
+
+ 0
+
+
+ AntMinerL3
+
+
+
+
+
+
+ 12
+ $[1]['temp_num']
+ 0
+
+
+
+
+ 3s
+
+
+
+ 200
+ 1
+ 0
+
+
+ 0
+ 0
+ 0
+ 0
+
+
+
+ 0
+ 0
+
+ AntMinerGetAllstats["{HOST.CONN}", "{$HOST.PORT}"]
+
+
+ -
+ Type
+ 18
+
+
+ AntMinerL3.Type
+ 0
+ 1d
+ 0
+ 0
+ 4
+
+
+
+
+ 0
+ 0
+
+ 0
+
+
+
+ 0
+
+
+
+
+
+
+ 1
+
+
+ AntMinerL3
+
+
+
+
+
+
+ 12
+ $[0]['Type']
+ 0
+
+
+
+
+ 3s
+
+
+
+ 200
+ 1
+ 0
+
+
+ 0
+ 0
+ 0
+ 0
+
+
+
+ 0
+ 0
+
+ AntMinerGetAllstats["{HOST.CONN}", "{$HOST.PORT}"]
+
+
+ -
+ Userpool3
+ 18
+
+
+ AntMinerL3.Userpool3
+ 0
+ 1d
+ 0
+ 0
+ 4
+
+
+
+
+ 0
+ 0
+
+ 0
+
+
+
+ 0
+
+
+
+
+
+
+ 0
+
+
+ AntMinerL3Pool
+
+
+
+
+
+
+ 12
+ $[3]['User']
+ 0
+
+
+
+
+ 3s
+
+
+
+ 200
+ 1
+ 0
+
+
+ 0
+ 0
+ 0
+ 0
+
+
+
+ 0
+ 0
+
+ AntMinerGetAllpool["{HOST.CONN}", "{$HOST.PORT}"]
+
+
+ -
+ Userpool4
+ 18
+
+
+ AntMinerL3.Userpool4
+ 0
+ 1d
+ 0
+ 0
+ 4
+
+
+
+
+ 0
+ 0
+
+ 0
+
+
+
+ 0
+
+
+
+
+
+
+ 0
+
+
+ AntMinerL3Pool
+
+
+
+
+
+
+ 12
+ $[4]['User']
+ 0
+
+
+
+
+ 3s
+
+
+
+ 200
+ 1
+ 0
+
+
+ 0
+ 0
+ 0
+ 0
+
+
+
+ 0
+ 0
+
+ AntMinerGetAllpool["{HOST.CONN}", "{$HOST.PORT}"]
+
+
+ -
+ UP_DOwn
+ 3
+
+
+ icmpping
+ 60s
+ 1d
+ 1d
+ 0
+ 3
+
+
+
+
+ 0
+ 0
+
+ 0
+
+
+
+ 0
+
+
+
+
+
+
+ 0
+
+
+ AntMinerL3
+
+
+
+ Service state
+
+
+
+
+ 3s
+
+
+
+ 200
+ 1
+ 0
+
+
+ 0
+ 0
+ 0
+ 0
+
+
+
+ 0
+ 0
+
+
+ -
+ Asic
+ 3
+
+
+ net.tcp.service[tcp,,4028]
+ 60s
+ 1d
+ 1d
+ 0
+ 3
+
+
+
+
+ 0
+ 0
+
+ 0
+
+
+
+ 0
+
+
+
+
+
+
+ 0
+
+
+ AntMinerL3
+
+
+
+ Service state
+
+
+
+
+ 3s
+
+
+
+ 200
+ 1
+ 0
+
+
+ 0
+ 0
+ 0
+ 0
+
+
+
+ 0
+ 0
+
+
+
+
+
+
+
+ {$HOST.PORT}
+ 4028
+
+
+
+
+
+
+
+
+
+ {AntMiner L3:AntMinerL3.Hashrate.nodata(15m)}=1 and {AntMiner L3:icmpping.last()}=1
+ 0
+
+ AntMiner L3 Hashrate information not available on {HOST.NAME}
+ 0
+
+
+ 0
+ 4
+
+ 0
+ 1
+
+
+
+
+ (({AntMiner L3:AntMinerL3.Temp1.last(#3)}>75 or {AntMiner L3:AntMinerL3.Temp2.last(#3)}>75 or {AntMiner L3:AntMinerL3.Temp3.last(#3)}>75 or {AntMiner L3:AntMinerL3.Temp4.last(#3)}>75) and {AntMiner L3:icmpping.last()}=1)
+ 1
+ (({AntMiner L3:AntMinerL3.Temp1.last()}<75 or {AntMiner L3:AntMinerL3.Temp2.last()}<75 or {AntMiner L3:AntMinerL3.Temp3.last()}<75 or {AntMiner L3:AntMinerL3.Temp4.last()}<75) and {AntMiner L3:icmpping.last()}=1)
+ AntMiner L3 High temp on {HOST.NAME}
+ 0
+
+
+ 0
+ 1
+
+ 0
+ 1
+
+
+
+
+ {AntMiner L3:icmpping.max(#3)}=0 and {AntMiner L3:net.tcp.service[tcp,,4028].last(#3)}=0
+ 1
+ {AntMiner L3:icmpping.last()}=1 or {AntMiner L3:net.tcp.service[tcp,,4028].last()}=1
+ AntMiner L3 Host DOWN {HOST.NAME}
+ 0
+
+
+ 0
+ 5
+
+ 0
+ 1
+
+
+
+
+ ({AntMiner L3:AntMinerL3.Hashrate.last(240)}<450 and {AntMiner L3:AntMinerL3.Elapsed.last()}>600) and ({AntMiner L3:icmpping.last()}=1)
+ 0
+
+ AntMiner L3 Low hashrate on {HOST.NAME}
+ 0
+
+
+ 0
+ 2
+
+ 0
+ 1
+
+
+
+
+ ({AntMiner L3:AntMinerL3.Hashrate1.last(240)}<90 or {AntMiner L3:AntMinerL3.Hashrate2.last(240)}<90 or {AntMiner L3:AntMinerL3.Hashrate3.last(240)}<90 or {AntMiner L3:AntMinerL3.Hashrate4.last(240)}<90 and {AntMiner L3:AntMinerL3.Elapsed.last()}>600) and ({AntMiner L3:icmpping.last()}=1)
+ 0
+
+ AntMiner L3 Хешь лезвия < 90Mh {HOST.NAME}
+ 0
+
+
+ 1
+ 0
+
+ 0
+ 1
+
+
+
+
+ ({AntMiner L3:AntMinerL3.Fan1.last()}=0 or {AntMiner L3:AntMinerL3.Fan2.last()}=0) and ({AntMiner L3:icmpping.last()}=1)
+ 0
+
+ AntMiner L3 пропеллер сломан {HOST.NAME}
+ 0
+
+
+ 0
+ 0
+
+ 0
+ 1
+
+
+
+
+ {AntMiner L3:AntMinerL3.Fan_num.last()}=0 and {AntMiner L3:icmpping.last()}=1 and ({AntMiner L3:AntMinerL3.Elapsed.last()} = {AntMiner L3:AntMinerL3.Elapsed.prev()} and {AntMiner L3:AntMinerL3.Elapsed.last()}>0)
+ 1
+ {AntMiner L3:AntMinerL3.Fan_num.last()}=2
+ Асик завис
+ 0
+
+
+ 0
+ 0
+
+ 0
+ 1
+
+
+
+
+ {AntMiner L3:AntMinerL3.Userpool3.strlen()}<>0 or {AntMiner L3:AntMinerL3.Userpool4.strlen()}<>0 and {AntMiner L3:icmpping.last()}=1
+ 1
+ {AntMiner L3:AntMinerL3.Userpool3.strlen()}=0 or {AntMiner L3:AntMinerL3.Userpool4.strlen()}=0
+ Внимание "левые" пулы ! {HOST.NAME}
+ 0
+
+
+ 0
+ 0
+
+ 0
+ 1
+
+
+
+
+ {AntMiner L3:AntMinerL3.CompileTime.str("2018")}=0
+ 1
+ {AntMiner L3:AntMinerL3.CompileTime.str("2019")}=1
+ Старая прошивка L3 {HOST.NAME}
+ 0
+
+
+ 1
+ 0
+
+ 0
+ 1
+
+
+
+
+
+
+ Service state
+
+
+ 0
+ Down
+
+
+ 1
+ Up
+
+
+
+
+
diff --git a/template-s9.xml b/template-s9.xml
new file mode 100644
index 0000000..4ab32be
--- /dev/null
+++ b/template-s9.xml
@@ -0,0 +1,1899 @@
+
+
+ 4.2
+ 2019-06-03T03:36:32Z
+
+
+ AntMiner S9
+
+
+
+
+ AntMiner S9
+ AntMiner S9
+
+
+
+ AntMiner S9
+
+
+
+
+ AntMinerS9
+
+
+ AntMinerS9All
+
+
+ AntMinerS9Pool
+
+
+
+ -
+ AntMinerGetAllpool
+ 10
+
+
+ AntMinerGetAllpool["{HOST.CONN}", "{$HOST.PORT}"]
+ 300s
+ 1d
+ 0
+ 0
+ 4
+
+
+
+
+ 0
+ 0
+
+ 0
+
+
+
+ 0
+
+
+
+
+
+
+ 0
+
+
+ AntMinerS9Pool
+
+
+
+
+
+
+ 3s
+
+
+
+ 200
+ 1
+ 0
+
+
+ 0
+ 0
+ 0
+ 0
+
+
+
+ 0
+ 0
+
+
+ -
+ AntMinerGetAllstats
+ 10
+
+
+ AntMinerGetAllstats["{HOST.CONN}", "{$HOST.PORT}"]
+ 300s
+ 1d
+ 0
+ 0
+ 4
+
+
+
+
+ 0
+ 0
+
+ 0
+
+
+
+ 0
+
+
+
+
+
+
+ 0
+
+
+ AntMinerS9All
+
+
+
+
+
+
+ 3s
+
+
+
+ 200
+ 1
+ 0
+
+
+ 0
+ 0
+ 0
+ 0
+
+
+
+ 0
+ 0
+
+
+ -
+ BMMiner
+ 18
+
+
+ AntMinerS9.BMMiner
+ 0
+ 1d
+ 0
+ 0
+ 4
+
+
+
+
+ 0
+ 0
+
+ 0
+
+
+
+ 0
+
+
+
+
+
+
+ 0
+
+
+ AntMinerS9
+
+
+
+
+
+
+ 12
+ $[0]['BMMiner']
+ 0
+
+
+
+
+ 3s
+
+
+
+ 200
+ 1
+ 0
+
+
+ 0
+ 0
+ 0
+ 0
+
+
+
+ 0
+ 0
+
+ AntMinerGetAllstats["{HOST.CONN}", "{$HOST.PORT}"]
+
+
+ -
+ CompileTime
+ 18
+
+
+ AntMinerS9.CompileTime
+ 0
+ 1d
+ 0
+ 0
+ 4
+
+
+
+
+ 0
+ 0
+
+ 0
+
+
+
+ 0
+
+
+
+
+
+
+ 0
+
+
+ AntMinerS9
+
+
+
+
+
+
+ 12
+ $[0]['CompileTime']
+ 0
+
+
+
+
+ 3s
+
+
+
+ 200
+ 1
+ 0
+
+
+ 0
+ 0
+ 0
+ 0
+
+
+
+ 0
+ 0
+
+ AntMinerGetAllstats["{HOST.CONN}", "{$HOST.PORT}"]
+
+
+ -
+ Elapsed
+ 18
+
+
+ AntMinerS9.Elapsed
+ 0
+ 10d
+ 30d
+ 0
+ 3
+
+ s
+
+
+ 0
+ 0
+
+ 0
+
+
+
+ 0
+
+
+
+
+
+
+ 0
+
+
+ AntMinerS9
+
+
+
+
+
+
+ 12
+ $[1]['Elapsed']
+ 0
+
+
+
+
+ 3s
+
+
+
+ 200
+ 1
+ 0
+
+
+ 0
+ 0
+ 0
+ 0
+
+
+
+ 0
+ 0
+
+ AntMinerGetAllstats["{HOST.CONN}", "{$HOST.PORT}"]
+
+
+ -
+ Fan5
+ 18
+
+
+ AntMinerS9.Fan5
+ 0
+ 1d
+ 1d
+ 0
+ 3
+
+ RPM
+
+
+ 0
+ 0
+
+ 0
+
+
+
+ 0
+
+
+
+
+
+
+ 0
+
+
+ AntMinerS9
+
+
+
+
+
+
+ 12
+ $[1]['fan5']
+ 0
+
+
+
+
+ 3s
+
+
+
+ 200
+ 1
+ 0
+
+
+ 0
+ 0
+ 0
+ 0
+
+
+
+ 0
+ 0
+
+ AntMinerGetAllstats["{HOST.CONN}", "{$HOST.PORT}"]
+
+
+ -
+ Fan6
+ 18
+
+
+ AntMinerS9.Fan6
+ 0
+ 1d
+ 1d
+ 0
+ 3
+
+ RPM
+
+
+ 0
+ 0
+
+ 0
+
+
+
+ 0
+
+
+
+
+
+
+ 0
+
+
+ AntMinerS9
+
+
+
+
+
+
+ 12
+ $[1]['fan6']
+ 0
+
+
+
+
+ 3s
+
+
+
+ 200
+ 1
+ 0
+
+
+ 0
+ 0
+ 0
+ 0
+
+
+
+ 0
+ 0
+
+ AntMinerGetAllstats["{HOST.CONN}", "{$HOST.PORT}"]
+
+
+ -
+ Fan_num
+ 18
+
+
+ AntMinerS9.Fan_num
+ 0
+ 1d
+ 1d
+ 0
+ 3
+
+
+
+
+ 0
+ 0
+
+ 0
+
+
+
+ 0
+
+
+
+
+
+
+ 0
+
+
+ AntMinerS9
+
+
+
+
+
+
+ 12
+ $[1]['fan_num']
+ 0
+
+
+
+
+ 3s
+
+
+
+ 200
+ 1
+ 0
+
+
+ 0
+ 0
+ 0
+ 0
+
+
+
+ 0
+ 0
+
+ AntMinerGetAllstats["{HOST.CONN}", "{$HOST.PORT}"]
+
+
+ -
+ Hashrate
+ 18
+
+
+ AntMinerS9.Hashrate
+ 0
+ 10d
+ 30d
+ 0
+ 0
+
+ TH/s
+
+
+ 0
+ 0
+
+ 0
+
+
+
+ 0
+
+
+
+
+
+
+ 0
+
+
+ AntMinerS9
+
+
+
+
+
+
+ 12
+ $[1]['GHS 5s']
+ 0
+
+
+
+ 1
+ 0.001
+ 0
+
+
+
+
+ 3s
+
+
+
+ 200
+ 1
+ 0
+
+
+ 0
+ 0
+ 0
+ 0
+
+
+
+ 0
+ 0
+
+ AntMinerGetAllstats["{HOST.CONN}", "{$HOST.PORT}"]
+
+
+ -
+ Hashrate6
+ 18
+
+
+ AntMinerS9.Hashrate6
+ 0
+ 1d
+ 1d
+ 0
+ 0
+
+ TH/s
+
+
+ 0
+ 0
+
+ 0
+
+
+
+ 0
+
+
+
+
+
+
+ 0
+
+
+ AntMinerS9
+
+
+
+
+
+
+ 12
+ $[1]['chain_rate6']
+ 0
+
+
+
+ 1
+ 0.001
+ 0
+
+
+
+
+ 3s
+
+
+
+ 200
+ 1
+ 0
+
+
+ 0
+ 0
+ 0
+ 0
+
+
+
+ 0
+ 0
+
+ AntMinerGetAllstats["{HOST.CONN}", "{$HOST.PORT}"]
+
+
+ -
+ Hashrate7
+ 18
+
+
+ AntMinerS9.Hashrate7
+ 0
+ 1d
+ 1d
+ 0
+ 0
+
+ TH/s
+
+
+ 0
+ 0
+
+ 0
+
+
+
+ 0
+
+
+
+
+
+
+ 0
+
+
+ AntMinerS9
+
+
+
+
+
+
+ 12
+ $[1]['chain_rate7']
+ 0
+
+
+
+ 1
+ 0.001
+ 0
+
+
+
+
+ 3s
+
+
+
+ 200
+ 1
+ 0
+
+
+ 0
+ 0
+ 0
+ 0
+
+
+
+ 0
+ 0
+
+ AntMinerGetAllstats["{HOST.CONN}", "{$HOST.PORT}"]
+
+
+ -
+ Hashrate8
+ 18
+
+
+ AntMinerS9.Hashrate8
+ 0
+ 1d
+ 1d
+ 0
+ 0
+
+ TH/s
+
+
+ 0
+ 0
+
+ 0
+
+
+
+ 0
+
+
+
+
+
+
+ 0
+
+
+ AntMinerS9
+
+
+
+
+
+
+ 12
+ $[1]['chain_rate8']
+ 0
+
+
+
+ 1
+ 0.001
+ 0
+
+
+
+
+ 3s
+
+
+
+ 200
+ 1
+ 0
+
+
+ 0
+ 0
+ 0
+ 0
+
+
+
+ 0
+ 0
+
+ AntMinerGetAllstats["{HOST.CONN}", "{$HOST.PORT}"]
+
+
+ -
+ Miner_id
+ 18
+
+
+ AntMinerS9.Miner_id
+ 0
+ 1d
+ 0
+ 0
+ 4
+
+
+
+
+ 0
+ 0
+
+ 0
+
+
+
+ 0
+
+
+
+
+
+
+ 0
+
+
+ AntMinerS9
+
+
+
+
+
+
+ 12
+ $[1]['miner_id']
+ 0
+
+
+
+
+ 3s
+
+
+
+ 200
+ 1
+ 0
+
+
+ 0
+ 0
+ 0
+ 0
+
+
+
+ 0
+ 0
+
+ AntMinerGetAllstats["{HOST.CONN}", "{$HOST.PORT}"]
+
+
+ -
+ Miner_version
+ 18
+
+
+ AntMinerS9.Miner_version
+ 0
+ 1d
+ 0
+ 0
+ 4
+
+
+
+
+ 0
+ 0
+
+ 0
+
+
+
+ 0
+
+
+
+
+
+
+ 0
+
+
+ AntMinerS9
+
+
+
+
+
+
+ 12
+ $[1]['miner_version']
+ 0
+
+
+
+
+ 3s
+
+
+
+ 200
+ 1
+ 0
+
+
+ 0
+ 0
+ 0
+ 0
+
+
+
+ 0
+ 0
+
+ AntMinerGetAllstats["{HOST.CONN}", "{$HOST.PORT}"]
+
+
+ -
+ Temp6
+ 18
+
+
+ AntMinerS9.Temp6
+ 0
+ 1d
+ 1d
+ 0
+ 3
+
+ C
+
+
+ 0
+ 0
+
+ 0
+
+
+
+ 0
+
+
+
+
+
+
+ 0
+
+
+ AntMinerS9
+
+
+
+
+
+
+ 12
+ $[1]['temp2_6']
+ 0
+
+
+
+
+ 3s
+
+
+
+ 200
+ 1
+ 0
+
+
+ 0
+ 0
+ 0
+ 0
+
+
+
+ 0
+ 0
+
+ AntMinerGetAllstats["{HOST.CONN}", "{$HOST.PORT}"]
+
+
+ -
+ Temp7
+ 18
+
+
+ AntMinerS9.Temp7
+ 0
+ 1d
+ 1d
+ 0
+ 3
+
+ C
+
+
+ 0
+ 0
+
+ 0
+
+
+
+ 0
+
+
+
+
+
+
+ 0
+
+
+ AntMinerS9
+
+
+
+
+
+
+ 12
+ $[1]['temp2_7']
+ 0
+
+
+
+
+ 3s
+
+
+
+ 200
+ 1
+ 0
+
+
+ 0
+ 0
+ 0
+ 0
+
+
+
+ 0
+ 0
+
+ AntMinerGetAllstats["{HOST.CONN}", "{$HOST.PORT}"]
+
+
+ -
+ Temp8
+ 18
+
+
+ AntMinerS9.Temp8
+ 0
+ 1d
+ 1d
+ 0
+ 3
+
+ C
+
+
+ 0
+ 0
+
+ 0
+
+
+
+ 0
+
+
+
+
+
+
+ 0
+
+
+ AntMinerS9
+
+
+
+
+
+
+ 12
+ $[1]['temp2_8']
+ 0
+
+
+
+
+ 3s
+
+
+
+ 200
+ 1
+ 0
+
+
+ 0
+ 0
+ 0
+ 0
+
+
+
+ 0
+ 0
+
+ AntMinerGetAllstats["{HOST.CONN}", "{$HOST.PORT}"]
+
+
+ -
+ Type
+ 18
+
+
+ AntMinerS9.Type
+ 0
+ 1d
+ 0
+ 0
+ 4
+
+
+
+
+ 0
+ 0
+
+ 0
+
+
+
+ 0
+
+
+
+
+
+
+ 1
+
+
+ AntMinerS9
+
+
+
+
+
+
+ 12
+ $[0]['Type']
+ 0
+
+
+
+
+ 3s
+
+
+
+ 200
+ 1
+ 0
+
+
+ 0
+ 0
+ 0
+ 0
+
+
+
+ 0
+ 0
+
+ AntMinerGetAllstats["{HOST.CONN}", "{$HOST.PORT}"]
+
+
+ -
+ URL1
+ 18
+
+
+ AntMinerS9.URL1
+ 0
+ 1d
+ 0
+ 0
+ 4
+
+
+
+
+ 0
+ 0
+
+ 0
+
+
+
+ 0
+
+
+
+
+
+
+ 0
+
+
+ AntMinerS9Pool
+
+
+
+
+
+
+ 12
+ $[0]['URL']
+ 0
+
+
+
+
+ 3s
+
+
+
+ 200
+ 1
+ 0
+
+
+ 0
+ 0
+ 0
+ 0
+
+
+
+ 0
+ 0
+
+ AntMinerGetAllpool["{HOST.CONN}", "{$HOST.PORT}"]
+
+
+ -
+ URL2
+ 18
+
+
+ AntMinerS9.URL2
+ 0
+ 1d
+ 0
+ 0
+ 4
+
+
+
+
+ 0
+ 0
+
+ 0
+
+
+
+ 0
+
+
+
+
+
+
+ 0
+
+
+ AntMinerS9Pool
+
+
+
+
+
+
+ 12
+ $[1]['URL']
+ 0
+
+
+
+
+ 3s
+
+
+
+ 200
+ 1
+ 0
+
+
+ 0
+ 0
+ 0
+ 0
+
+
+
+ 0
+ 0
+
+ AntMinerGetAllpool["{HOST.CONN}", "{$HOST.PORT}"]
+
+
+ -
+ URL3
+ 18
+
+
+ AntMinerS9.URL3
+ 0
+ 1d
+ 0
+ 0
+ 4
+
+
+
+
+ 0
+ 0
+
+ 0
+
+
+
+ 0
+
+
+
+
+
+
+ 0
+
+
+ AntMinerS9Pool
+
+
+
+
+
+
+ 12
+ $[2]['URL']
+ 0
+
+
+
+
+ 3s
+
+
+
+ 200
+ 1
+ 0
+
+
+ 0
+ 0
+ 0
+ 0
+
+
+
+ 0
+ 0
+
+ AntMinerGetAllpool["{HOST.CONN}", "{$HOST.PORT}"]
+
+
+ -
+ Userpool3
+ 18
+
+
+ AntMinerS9.Userpool3
+ 0
+ 1d
+ 0
+ 0
+ 4
+
+
+
+
+ 0
+ 0
+
+ 0
+
+
+
+ 0
+
+
+
+
+
+
+ 0
+
+
+ AntMinerS9Pool
+
+
+
+
+
+
+ 12
+ $[3]['User']
+ 0
+
+
+
+
+ 3s
+
+
+
+ 200
+ 1
+ 0
+
+
+ 0
+ 0
+ 0
+ 0
+
+
+
+ 0
+ 0
+
+ AntMinerGetAllpool["{HOST.CONN}", "{$HOST.PORT}"]
+
+
+ -
+ Userpool4
+ 18
+
+
+ AntMinerS9.Userpool4
+ 0
+ 1d
+ 0
+ 0
+ 4
+
+
+
+
+ 0
+ 0
+
+ 0
+
+
+
+ 0
+
+
+
+
+
+
+ 0
+
+
+ AntMinerS9Pool
+
+
+
+
+
+
+ 12
+ $[4]['User']
+ 0
+
+
+
+
+ 3s
+
+
+
+ 200
+ 1
+ 0
+
+
+ 0
+ 0
+ 0
+ 0
+
+
+
+ 0
+ 0
+
+ AntMinerGetAllpool["{HOST.CONN}", "{$HOST.PORT}"]
+
+
+ -
+ UP_DOwn
+ 3
+
+
+ icmpping
+ 60s
+ 1d
+ 1d
+ 0
+ 3
+
+
+
+
+ 0
+ 0
+
+ 0
+
+
+
+ 0
+
+
+
+
+
+
+ 0
+
+
+ AntMinerS9
+
+
+
+ Service state
+
+
+
+
+ 3s
+
+
+
+ 200
+ 1
+ 0
+
+
+ 0
+ 0
+ 0
+ 0
+
+
+
+ 0
+ 0
+
+
+ -
+ Asic
+ 3
+
+
+ net.tcp.service[tcp,,4028]
+ 60s
+ 1d
+ 1d
+ 0
+ 3
+
+
+
+
+ 0
+ 0
+
+ 0
+
+
+
+ 0
+
+
+
+
+
+
+ 0
+
+
+ AntMinerS9
+
+
+
+ Service state
+
+
+
+
+ 3s
+
+
+
+ 200
+ 1
+ 0
+
+
+ 0
+ 0
+ 0
+ 0
+
+
+
+ 0
+ 0
+
+
+
+
+
+
+
+ {$HOST.PORT}
+ 4028
+
+
+
+
+
+
+
+
+
+ {AntMiner S9:AntMinerS9.Hashrate.nodata(15m)}=1 and {AntMiner S9:icmpping.last()}=1
+ 0
+
+ AntMiner S9 Hashrate information not available on {HOST.NAME}
+ 0
+
+
+ 0
+ 4
+
+ 0
+ 1
+
+
+
+
+ ({AntMiner S9:AntMinerS9.Temp6.last(#3)}>90 or {AntMiner S9:AntMinerS9.Temp7.last(#3)}>90 or {AntMiner S9:AntMinerS9.Temp8.last(#3)}>90) and {AntMiner S9:icmpping.last()}=1
+ 1
+ ({AntMiner S9:AntMinerS9.Temp6.last()}<90 or {AntMiner S9:AntMinerS9.Temp7.last()}<90 or {AntMiner S9:AntMinerS9.Temp8.last()}<90) and {AntMiner S9:icmpping.last()}=1
+ AntMiner S9 High temp on {HOST.NAME}
+ 0
+
+
+ 0
+ 1
+
+ 0
+ 1
+
+
+
+
+ {AntMiner S9:icmpping.max(#3)}=0 and {AntMiner S9:net.tcp.service[tcp,,4028].last(#3)}=0
+ 1
+ {AntMiner S9:icmpping.last()}=1 or {AntMiner S9:net.tcp.service[tcp,,4028].last()}=1
+ AntMiner S9 Host DOWN {HOST.NAME}
+ 0
+
+
+ 0
+ 5
+
+ 0
+ 1
+
+
+
+
+ ({AntMiner S9:AntMinerS9.Hashrate.max(240)}<13 and {AntMiner S9:AntMinerS9.Elapsed.last()}>600) and ({AntMiner S9:icmpping.last()}=1)
+ 0
+
+ AntMiner S9 Low hashrate on {HOST.NAME}
+ 0
+
+
+ 0
+ 2
+
+ 0
+ 1
+
+
+
+
+ ({AntMiner S9:AntMinerS9.Fan5.last()}=0 or {AntMiner S9:AntMinerS9.Fan6.last()}=0) and {AntMiner S9:icmpping.last()}=1
+ 0
+
+ AntMiner S9 пропеллер сломан {HOST.NAME}
+ 0
+
+
+ 0
+ 0
+
+ 0
+ 1
+
+
+
+
+ ({AntMiner S9:AntMinerS9.Fan_num.last()}=0) and ({AntMiner S9:icmpping.last()}=1) and ({AntMiner S9:AntMinerS9.Elapsed.last()}={AntMiner S9:AntMinerS9.Elapsed.prev()}) and ({AntMiner S9:AntMinerS9.Elapsed.last()}>0)
+ 1
+ {AntMiner S9:AntMinerS9.Fan_num.last()}=2
+ Асик завис !!!
+ 0
+
+
+ 0
+ 0
+
+ 0
+ 1
+
+
+
+
+ ({AntMiner S9:AntMinerS9.URL1.str(stratum+tcp://eu1.btc.sigmapool.com:3333)}=0 or {AntMiner S9:AntMinerS9.URL2.str(stratum+tcp://eu2.btc.sigmapool.com:3333)}=0 or {AntMiner S9:AntMinerS9.URL3.str(stratum+tcp://stratum.antpool.com:3333)}=0) and {AntMiner S9:icmpping.last()}=1
+ 0
+
+ Внимание "левые" URL! {HOST.NAME}
+ 0
+
+
+ 0
+ 0
+
+ 0
+ 1
+
+
+
+
+ ({AntMiner S9:AntMinerS9.Userpool3.strlen()}<>0 or {AntMiner S9:AntMinerS9.Userpool4.strlen()}<>0) and ({AntMiner S9:icmpping.last()}=1)
+ 1
+ ({AntMiner S9:AntMinerS9.Userpool3.strlen()}=0 or {AntMiner S9:AntMinerS9.Userpool4.strlen()}=0)
+ Внимание "левые" пулы ! {HOST.NAME}
+ 0
+
+
+ 0
+ 0
+
+ 0
+ 1
+
+
+
+
+ {AntMiner S9:AntMinerS9.CompileTime.str("2019")}=0
+ 1
+ {AntMiner S9:AntMinerS9.CompileTime.str("2019")}=1
+ Старая прошивка S9 {HOST.NAME}
+ 0
+
+
+ 0
+ 0
+
+ 0
+ 1
+
+
+
+
+
+
+ Service state
+
+
+ 0
+ Down
+
+
+ 1
+ Up
+
+
+
+
+