Pages:
Author

Topic: Solo Pool Miner Race - page 52. (Read 20069 times)

legendary
Activity: 3500
Merit: 2792
Escrow Service
February 04, 2024, 04:38:07 PM
Ein Block wurde gefunden und die Würfel werden wieder neu gerollt.
Die bestshares gehen wieder von vorne los.
Wenn ihr das bestshare-ever sehen wollt muss ich es umschreiben, wäre kein Thema (denke ich jetzt mal).

Viele Grüße
Willi
legendary
Activity: 3486
Merit: 2287
Top Crypto Casino
February 04, 2024, 04:34:25 PM
@willi9974

Was ist denn mit den Stats passiert? Mein Bestshare im Axe steht auf 667Mio und auf der Seite bei 20.058.528
Sieht für mich so aus, als hätte es einen Reset gegeben und unsere ganzen bisher erreichten Bestshares sind Geschichte.

Magst mal schauen, was da passiert sein kann Huh
legendary
Activity: 1318
Merit: 1036
February 04, 2024, 05:37:06 AM
Ich verwende die "Relative time" für die Anzeige der Best User Share Tabelle und da funktioniert es.

Ok, das ist klar. Da musst du das machen.
Da kommt kommt auch nicht viel bei raus. Wenige Werte, großer Zeitraum.

Übrigens:
Wir sind momentan ziemlich "unlucky" unterwegs. Trotz brun0s tollem Share.

Cheers,
Ray

Edit: Der Solopool hat seit Ewigkeiten mal wieder einen Block gelöst.
https://mempool.space/block/000000000000000000015802ce315b36411f805600d92a64b3ffb30331b23cd6

Edit2: So, 5tift:

Alle Probleme im Griff. Die Frequenz-Entität bekommt jetzt jede Minute ein Counter-Attribut (1-Unendlich).
Dadurch wird sie auch jede Minute in die DB geschrieben. Auch bei gleicher Value.
Das zweite Problem ist auch gelöst: Ich durchsuche die REST-Ausgabe nach dem Worker, der meinem 2ten Miner entspricht.
Dann extrahiere ich die Attribute (Hashrate, Bestshare, etc..) als einzelne Sensoren. Das geht während der Laufzeit.
Ziemlich umständlich aber läuft.

Lösung 1:
Code:
sensor:
  - platform: template
    sensors:

       frequency_bm1397_db:
            value_template: "{{ states('sensor.miner_bitaxe_freq') }}"
            unique_id: bm1397_freq
            unit_of_measurement: "MHz"
            attribute_templates:
              minute_counter: "{{ now().minute }}"

       frequency_bm1366_db:
            value_template: "{{ states('sensor.miner2_bitaxe_freq') }}"
            unique_id: bm1366_freq
            unit_of_measurement: "MHz"
            attribute_templates:
              minute_counter: "{{ now().minute }}"

Lösung 2:
Code:
rest:
  - resource: "https://solo.ckpool.org/users/bc1qeuupt2tgerfum8jclt8aklu9cdmzzkwml9lg7c"
    timeout: 60
    scan_interval: 15

    sensor:
      - name: "worker_count"
        value_template: "{{ (value_json.worker | length) |int  }}"
        unit_of_measurement: "Pcs"
        
      - name: "miner_2_worker_number"
        value_template: >-
          {% set worker_array = value_json.worker %}
          {% set miner_2_worker = worker_array | selectattr('workername', 'equalto', 'bc1qeuupt2tgerfum8jclt8aklu9cdmzzkwml9lg7c.rent_a_ray_2') | first %}
          {% set miner_2_worker_number = worker_array.index(miner_2_worker) if miner_2_worker else -1 %}
          {{ miner_2_worker_number }}
        unit_of_measurement: "Pos"
        
      - name: "miner_2_worker_hashrate"
        value_template: >-
          {% set worker_array = value_json.worker %}
          {% set miner_2_worker = worker_array | selectattr('workername', 'equalto', 'bc1qeuupt2tgerfum8jclt8aklu9cdmzzkwml9lg7c.rent_a_ray_2') | first %}
          {% set hashrate_1m = miner_2_worker.hashrate1m if miner_2_worker else None %}
          {{ hashrate_1m |replace('G','') }}
        unit_of_measurement: "GH/s"
        
      - name: "miner_2_worker_shares"
        value_template: >-
          {% set worker_array = value_json.worker %}
          {% set miner_2_worker = worker_array | selectattr('workername', 'equalto', 'bc1qeuupt2tgerfum8jclt8aklu9cdmzzkwml9lg7c.rent_a_ray_2') | first %}
          {% set shares = miner_2_worker.shares if miner_2_worker else None %}
          {{ shares }}
        unit_of_measurement: "Shrs"
        
      - name: "miner_2_worker_bestever"
        value_template: >-
          {% set worker_array = value_json.worker %}
          {% set miner_2_worker = worker_array | selectattr('workername', 'equalto', 'bc1qeuupt2tgerfum8jclt8aklu9cdmzzkwml9lg7c.rent_a_ray_2') | first %}
          {% set bestever = miner_2_worker.bestever if miner_2_worker else None %}
          {{ bestever }}
        unit_of_measurement: "sMax"    
legendary
Activity: 2078
Merit: 854
Bitcoin Casino Est. 2013
February 04, 2024, 05:17:20 AM

Sowas suche ich dann eher:


Dann könnte ich alle 86000 Sekunden (<24h) gleiche Werte in die DB schreiben. Das wäre optimal und kein Fix der die Performance beeinflusst. Ich suche mal.... Danke

Ja das könnte genau das richtige für dich sein.
Ich hab zum Test mal 60 Sekunden hinterlegt.


Ich verwende die "Relative time" für die Anzeige der Best User Share Tabelle und da funktioniert es.
jr. member
Activity: 37
Merit: 15
February 03, 2024, 03:48:00 AM
Username: lutz_k_7
Device type: Bitaxe Ultra 204
Normal speed: 430 GH/s
legendary
Activity: 1318
Merit: 1036
February 02, 2024, 01:43:42 PM
Könnte ich mal schauen. Danke für die Info.

Cheers,
Ray

Grin Grin Grin to much für mich  Grin Grin Grin
da würde jetzt ich aufgeben

Achwas, unser Willi hat was auf dem Kasten. Der macht sich kleiner als er ist.

---------------

Edit: Also die Einstellung passt nicht. Er zeigt dann halt die Relative-Time, nicht 24h.
Zeig mal deinen Graph bei deiner Einstellung. Der müsste dann ziemlich beschnitten sein - zumindest ist er es bei mir.

Was ich möchte ist, dass er den letzten Wert mit in die 24h Ansicht reinnimmt, auch wenn kein Wert da ist.
Ich denke das ist ein Grafana Problem. (und letztlich ein HA Problem, der könnte ja alle 2 Minuten alle Werte abspeichern - Bye,bye SD-Karte) Habe es schon öfter im Netz gefunden.
Um dem zu entgehen müsste er in der Query sowas stehen wie: (Lesen ist kein Problem, nur schreiben)

Nimm die letzten 24h, bei Spalten ohne Wert suche nach dem letzten verfügbaren Wert und setze ihn ein.
(Grob geschildert) Habe schon öfter von diesem Problem gelesen.

Somit bleibt nur die Config des HA ändern und das möchte ich eher nicht.
Würde bedeuten der schreibt alle Werte in ständiger frequenter Vorgabe in die DB.
Meine DB wächst eh jeden Tag um mehrere MB.

Man kann sich vorstellen wie solche Änderungen die Performance runter ziehen - wenn man die öfter oder immer verwendet.
Aber von technischen Seite hast du natürlich recht - nur mein Sturkopf will halt eine andere Lösung.  Grin

Ich arbeite tatsächlich mit einer SD-Karte, da HASS-OS dafür konzipiert wurde. Bedeutet: Alles läuft soweit im RAM ab. Gespeichert wird minimal, es gibt kein Swap etc.



Edit_2:
Sowas suche ich dann eher:


Dann könnte ich alle 86000 Sekunden (<24h) gleiche Werte in die DB schreiben. Das wäre optimal und kein Fix der die Performance beeinflusst. Ich suche mal.... Danke
legendary
Activity: 2078
Merit: 854
Bitcoin Casino Est. 2013
February 02, 2024, 12:28:26 PM
Das Problem bei Influx+Grafana ist schlicht und einfach, dass nur wechselnde Sensoren aufgezeichnet werden.
Da liegt das Problem aber nicht an Influx & Grafana, sondern an dem Tool welches konfigurieret ist die Werte in welcher Form aufzuzeichnen.
Im iobroker kann man da folgendes einstellen.



Liegt der letzte Value-Wert-Wechsel vor der Dauer der Ansicht (z.B. 48h), fällt die Frequenzanzeige einfach weg.
~
z.B. speichere letzten Wert (Bestshare) in Variable X und vergleiche nach dem Neustart ob sich der Wert geändert hat.

Meinst Du sowas in die Richtung?

legendary
Activity: 1318
Merit: 1036
February 02, 2024, 11:33:44 AM
Das Problem bei Influx+Grafana ist schlicht und einfach, dass nur wechselnde Sensoren aufgezeichnet werden.
(was ja auch sinnvoll ist, schon wegen der Größenbegrenzung.)
Dennoch sehe ich halt keine Frequenz, da der Sollwert nur einmal gesetzt wird. (wenn man nicht dauernd rumspielt)

Liegt der letzte Value-Wert-Wechsel vor der Dauer der Ansicht (z.B. 48h), fällt die Frequenzanzeige einfach weg.
Ich möchte aber auch nicht ständig das gleiche in die Datenbank schreiben. Das bläst sie nur unnötig auf, dafür ist wiederum das HA-OS nicht geeignet.
Vielleicht gibt es aber auch einen Trick, das Problem zu umgehen. Habe noch nicht richtig gesucht.

Apexcharts ist noch frickeliger, da es zwar die letzte Frequenz anzeigt, jedoch nur bis zum nächsten Neustart des HA.
Hier helfe ich mir teilweise mit selbstgebastelten Variablen-Sensoren, die den Neustart überleben.

z.B. speichere letzten Wert (Bestshare) in Variable X und vergleiche nach dem Neustart ob sich der Wert geändert hat.

Das wiederum entspricht nicht so ganz der Philosophie des Home Assistant.  Grin

Cheers,
Ray
legendary
Activity: 2078
Merit: 854
Bitcoin Casino Est. 2013
February 02, 2024, 09:13:35 AM
Ich bin am Anfang auch mit dem Gießkannenprinzip ran gegangen, frei nach dem Motto "besser haben als brauchen" was das Daten sammeln anging.
Am Ende wurde die Visualisierung immer träger. Dann sah ich die komprimierte InfluxDB mit 800MB und dachte WoW.
Da hatte zum Beispiel ein Shelly (von vielen), wo mich wirklich nur der aktuelle Verbrauch interessierte 600000 Einträge.

Am Ende hab ich eine 2. DB erstellt mit einer Retention Policy von 7 Tagen für aktuelle Werte wo mich auch keine Historie interessiert.
Zumindest nicht länger als 7 Tage.
legendary
Activity: 3500
Merit: 2792
Escrow Service
February 02, 2024, 08:29:39 AM
 Grin Grin Grin to much für mich  Grin Grin Grin
da würde jetzt ich aufgeben
legendary
Activity: 2078
Merit: 854
Bitcoin Casino Est. 2013
February 02, 2024, 08:12:19 AM
Ich kenne die Syntax vom HA ja nicht, der iobroker verwendet Javascript und mit dem einfachen Editor hätte ich auch meine Schwirigkeiten.
Aber mittels Blockly ist das schon eine schöne Sache mit vielen Möglichkeiten.

Hier mal das Blockly welches mein Bestever der 2 Miner in die DB schreibt.


Und so sieht der Code dazu aus  Roll Eyes
Code:
var obj, result;


schedule("*/15 * * * * *", async () => {
  try {
    require("request")('https://solo.ckpool.org/users/bc1qeuupt2tgerfum8jclt8aklu9cdmzzkwml9lg7c', async (error, response, result) => {
      var obj_list = getAttr(result, 'worker');
    for (var obj_index in obj_list) {
      obj = obj_list[obj_index];
      if (getAttr(obj, 'workername').indexOf('5tift_1') + 1 > 0) {
        setState('0_userdata.0.Datenpunkte.Miner.Bestever_5tift_1' /* Bestever_5tift_1 */, getAttr(obj, 'bestever'), true);
        break;
      }
    }
    var obj_list2 = getAttr(result, 'worker');
    for (var obj_index2 in obj_list2) {
      obj = obj_list2[obj_index2];
      if (getAttr(obj, 'workername').indexOf('5tift_2') + 1 > 0) {
        setState('0_userdata.0.Datenpunkte.Miner.Bestever_5tift_2' /* Bestever_5tift_2 */, getAttr(obj, 'bestever'), true);
        break;
      }
    }
legendary
Activity: 1318
Merit: 1036
February 02, 2024, 07:47:54 AM
Gut ich benutze iobroker und nicht Home Assistant aber mich würde schon interessieren was sich bei nur einem Miner besser organisieren lässt.
@Willi noch 3 LV06er, Du willst es aber wiessen Cheesy
Hätte ich PV auf dem Dach & Akku würde ich bestimmt auch mehr beisteuern.

Der HA ist im dynamischen Umgang mit wachsenden/schrumpfenden JSON-Arrays etwas ungeeignet - ein kleines Beispiel:
Wie bekomme ich einen Enumerator dazu, die Nummer des Miner-Arrays von rent_a_ray_2 auszugeben:

Code:
rest:
  - resource: "https://solo.ckpool.org/users/bc1qeuupt2tgerfum8jclt8aklu9cdmzzkwml9lg7c"
    timeout: 60
    scan_interval: 30
    sensor:
      - name: "worker_count"
        value_template: "{{ (value_json.worker | length) |int  }}"
        unit_of_measurement: "Pcs"
        
      - name: "miner_2_worker_number"
        value_template: >-
          {% set worker_array = value_json.worker %}
          {% set miner_2_worker = worker_array | selectattr('workername', 'equalto', 'bc1qeuupt2tgerfum8jclt8aklu9cdmzzkwml9lg7c.rent_a_ray_2') | first %}
          {% set miner_2_worker_number = worker_array.index(miner_2_worker) if miner_2_worker else -1 %}
          {{ miner_2_worker_number }}
        unit_of_measurement: "Pos"

Mal ehrlich. Das ist einfach sehr unschön. In PHP/SQL ist das in zwei Zeilen erledigt.
Und jetzt muss das Ergebnis genutzt werden um weitere Template-Sensoren zu erstellen oder man werkelt weiter mit dem Riesen-Sensor und der Attribut-Funktion.
(Diese Attribute werden allerdings nicht in der Influxdb gespeichert, sondern nur der State)

Quote
Komm schon, nicht aufgeben... zumindest versuch es irgendwann mal, wenn du mehr Zeit hast :-)

Ich gebe gar nicht auf. Ich überwache nicht nur die Miner, sondern auch mein Home  Grin
Deshalb bin ich momentan drastisch am reduzieren. Ich schmeiß zwar (noch) keine Sensoren raus, aber viele Trends und unnötige Anzeigen.
Klar, ich könnte auch die Hashes in einem Diagramm bündeln oder sogar über ein Template addieren.
Vielleicht mache ich das auch in Zukunft. Überredet...

Cheers,
Ray
member
Activity: 85
Merit: 22
February 02, 2024, 07:46:18 AM
Viel zu lesen, aber ich sehe noch keinen Block Grin

Der faule brun0_2 hat gestern endlich mal neue Wärmeleitpaste bekommen und er ist in der Übersicht heute schon gestiegen, hmmm
Liegt es an der Paste oder hatte er Glück...

Hab noch einen BitAxe verschenkt, der gleich auch noch im Pool auftauchen wird:

+++++++++++++++++++++++++++++++++++++++
Username: brun0_4
Device type: Bitaxe ULTRA 202
Normal speed: 440 GH/s
+++++++++++++++++++++++++++++++++++++++

...und nach Lüftertausch lasse ich den SonnenenergieüberschussS9 mal kurz laufen, damit ich den Lüftern lauschen kann:

+++++++++++++++++++++++++++++++++++++++
Username: brun0_S9S
Device type: Bitmain Antminer S9
Normal speed: 10 TH/s
+++++++++++++++++++++++++++++++++++++++

Viele Grüße an alle Racer
legendary
Activity: 2078
Merit: 854
Bitcoin Casino Est. 2013
February 02, 2024, 05:32:34 AM
Gut ich benutze iobroker und nicht Home Assistant aber mich würde schon interessieren was sich bei nur einem Miner besser organisieren lässt.
@Willi noch 3 LV06er, Du willst es aber wiessen Cheesy
Hätte ich PV auf dem Dach & Akku würde ich bestimmt auch mehr beisteuern.
legendary
Activity: 3500
Merit: 2792
Escrow Service
February 02, 2024, 05:25:36 AM
Hi Willi,

ich habe aus organisatorischen Gründen meine beiden Miner zusammengelegt, bin mir der finanziellen Nachteile bewusst.
Ist einfach wesentlich schöner zu managen im HA.
Der Avalon Nano wird ebenfalls auf diese Adresse minen.

Cheers,
Ray
Echt jetzt, du lässt dich von ein wenig Mehraufwand und ein paar Skripten abschrecken...
Stell dir vor wir finden wirklich einen Block, du beißt dich in den Ar...

Komm schon, nicht aufgeben... zumindest versuch es irgendwann mal, wenn du mehr Zeit hast :-)

Viele Grüße
Willi
legendary
Activity: 1318
Merit: 1036
February 02, 2024, 05:15:10 AM
Hi Willi,

ich habe aus organisatorischen Gründen meine beiden Miner zusammengelegt, bin mir der finanziellen Nachteile bewusst.
Ist einfach wesentlich schöner zu managen im HA.
Der Avalon Nano wird ebenfalls auf diese Adresse minen.

Cheers,
Ray

legendary
Activity: 3500
Merit: 2792
Escrow Service
February 02, 2024, 04:04:56 AM
Ich hab selbst noch 3 Lucky Miner LV06 geordert, die sollten in 2-3 Wochen kommen.
Auch etwas aufrüsten  Grin
Und dann ist da noch der Hex, wenn der raus kommt, da wäre ich auch dran interessiert.
Mal schauen ob und wann er kommt und vor allem was er kostet.

Dank 10kwp PV Anlage und 7,5KWh Akku plus einen zweiten Akku mit ca. 5kwh, den ich gerade baue, sollte der Strom egal sein. An den 5KWh Akku kommen dann die Miner dran und muss nur noch die Logik implementieren.

Ladegerät bei PV Überschuss einschalten
Abschalten bei erreichen der SoC 90%
Akkustand unter SoC 20% und keine PV dann Laden vom Netz

Wird wieder ein interessantes kleines Projekt.


Viele Grüße
Willi
legendary
Activity: 3486
Merit: 2287
Top Crypto Casino
February 02, 2024, 03:57:08 AM
Willkommen an die neuen Mitstreiter. Jeder Miner der uns hilft die Chance zu erhöhen einen Block zu finden ist willkommen.
Sind doch einige zusammen gekommen jetzt. Mal schauen wie stabil die Community ist und wie viele noch in einem Jahr oder zwei Jahre dabei sind.

Solange unsere neuen Babys durchhalten, bleibe ich natürlich dabei -> warum auch nicht, da der Stromverbrauch selbst in Deutschland nicht wirklich ins Gewicht fällt.
Da kann man eher den Backofen dann und wann früher abstellen, oder für die Wäsche einmal nicht de Trockner nutzen.

Mal sehen, wie gut die Hardware ist. Der Langzeittest hat im Dezember angefangen und mit Chance bekommen wir die Anschaffungskosten ja wieder rein.
Bitcoin ist eines der wenigen Hobbys, von denen man nicht mehr los kommt Smiley
legendary
Activity: 3500
Merit: 2792
Escrow Service
February 01, 2024, 05:54:57 PM
Willkommen an die neuen Mitstreiter. Jeder Miner der uns hilft die Chance zu erhöhen einen Block zu finden ist willkommen.
Sind doch einige zusammen gekommen jetzt. Mal schauen wie stabil die Community ist und wie viele noch in einem Jahr oder zwei Jahre dabei sind.

Dann weiter Daumen drücken um das Rennen um das beste Share und vor allem einen Block.

Übrigens, wenn jemand wie ich oder wer anders hat es auch schon gemacht, mal eine Nicehash Rental anmietet und auf den Pool schießt, da hat keiner was dagegen...

Viele Grüße
Willi
legendary
Activity: 3486
Merit: 2287
Top Crypto Casino
February 01, 2024, 11:04:56 AM
Also ein rent_a_ray_2 1366 ist jetzt auch im Rennen.

Glückwunsch zum Nachwuchs und auch an alle neuen Miner hier Smiley
Wobei ich mich frage, wie ihr auf 32 Grad kommt

Aktuell sind es 13°C im Keller und der Lüfter auf 45% Speed. Über 40°C kommt er nicht hinaus.



Am Wochenende werde ich ihn voraussichtlich wieder in den Wohnraum verlegen mit höheren Temperaturen, mal schauen wie es damit läuft.
Pages:
Jump to: