iSpindel an Craftbeerpi3 Logs

Antworten
Benutzeravatar
hiasl
Posting Freak
Posting Freak
Beiträge: 1945
Registriert: Samstag 9. Juni 2007, 12:03
Wohnort: Kulmbach
Kontaktdaten:

iSpindel an Craftbeerpi3 Logs

#1

Beitrag von hiasl »

Servus zusammen,
ich betreibe aktuell die iSpindel am CBPi3 mit dem Plugin aus dem Addon-Bereich. Das funktioniert auch gut, mir ist jedoch aufgefallen, dass im Log des Sensors für gravity immer ein Wertepaar bestehend aus dem Winkel (tilt) und berechneter gravity gespeichert wird.
1. Bekommt das Log so doppelt so viele Einträge wie nötig, wird also relativ schnell groß
und
2. sieht der Graph dann entsprechend bescheiden aus und es dauert ewig bis dieser angezeigt wird.

Hat hierfür jemand eine Lösung?
Gruß
Matthias
-----------------------------------------------------------------------------------------
Mehr vom Bier wissen, heißt: Mehr vom Bier haben!
Benutzeravatar
hiasl
Posting Freak
Posting Freak
Beiträge: 1945
Registriert: Samstag 9. Juni 2007, 12:03
Wohnort: Kulmbach
Kontaktdaten:

Re: iSpindel an Craftbeerpi3 Logs

#2

Beitrag von hiasl »

Die Problematik der Winkel/Plato-Wertepaare hat sich wie von Zauberhand nun erledigt. Keine Ahnung warum. Ich habe aber festgestellt, dass schon immer Wertepaare angelegt wurden. Da ich zwischenzeitlich das Polynom verändert habe, ist dies nur deutlicher aufgefallen. Jetzt werden aber Plato-Paare im Log gespeichert. Kann hier jemand was im Quelltext des Plugins finden?
https://github.com/IndyJoeA/cbpi_iSpind ... _init__.py
Gruß
Matthias
-----------------------------------------------------------------------------------------
Mehr vom Bier wissen, heißt: Mehr vom Bier haben!
mrhyde
Posting Senior
Posting Senior
Beiträge: 468
Registriert: Mittwoch 7. Juni 2017, 14:16

Re: iSpindel an Craftbeerpi3 Logs

#3

Beitrag von mrhyde »

hiasl hat geschrieben: Mittwoch 18. August 2021, 09:00 Die Problematik der Winkel/Plato-Wertepaare hat sich wie von Zauberhand nun erledigt. Keine Ahnung warum. Ich habe aber festgestellt, dass schon immer Wertepaare angelegt wurden. Da ich zwischenzeitlich das Polynom verändert habe, ist dies nur deutlicher aufgefallen. Jetzt werden aber Plato-Paare im Log gespeichert. Kann hier jemand was im Quelltext des Plugins finden?
https://github.com/IndyJoeA/cbpi_iSpind ... _init__.py
Ich habe jetzt nur noch cbpi4 laufen. Somit kann ich nicht mehr sagen, wie die logs der ispindel in cbpi3 aussehen.

Wie oft wird denn ein Wert in das logfile geschrieben? Laut code sieht das so aus, als ob jede Sekunde ein Wert geschrieben wird (egal, ob die Spindel z.B. nur alle 15 Minuten einen Wert sendet).

Ich habe das Plugin ja auf cbpi4 portiert und dort das entsprechend angepasst, dass nur ein Wert in das logfile geschrieben wird, wenn die Spindel einen neuen Wert geliefert hat.

cbpi4 hat zwar keine Möglichkeit Rezepte für die Gärung zu erstellen (Das hat bei cbpi3 aber auch nur manchmal funktioniert), aber mit meinem Fermenterhysteresis Plugin läuft die Gärung problemlos durch. Das funktioniert allerdings aktuell nur mit meinem fork von server und user interface
Braumeister 20 | Gärung: SS Brewtech 7 Gal BME | Speidel 30 Liter (Konus)
https://github.com/PiBrewing
https://openbrewing.gitbook.io/craftbeerpi4_support/
Benutzeravatar
hiasl
Posting Freak
Posting Freak
Beiträge: 1945
Registriert: Samstag 9. Juni 2007, 12:03
Wohnort: Kulmbach
Kontaktdaten:

Re: iSpindel an Craftbeerpi3 Logs

#4

Beitrag von hiasl »

mrhyde hat geschrieben: Mittwoch 18. August 2021, 15:18 Wie oft wird denn ein Wert in das logfile geschrieben? Laut code sieht das so aus, als ob jede Sekunde ein Wert geschrieben wird (egal, ob die Spindel z.B. nur alle 15 Minuten einen Wert sendet).
So, das war ein guter Hinweis. Nein, das Plugin schreibt nicht jede Sekunde einen Wert, sondern durchsucht den Cache (genau steige ich da auch nicht durch), ob ein neuer Wert vorliegt. Scheinbar dauert es aber ein wenig, bis dieser wieder gelöscht ist. Ich habe das Intervall auf 5 s hoch gesetzt, jetzt gibt's keine Doppeleinträge mehr (die Spindel sendet 1/min).
Gruß
Matthias
-----------------------------------------------------------------------------------------
Mehr vom Bier wissen, heißt: Mehr vom Bier haben!
mrhyde
Posting Senior
Posting Senior
Beiträge: 468
Registriert: Mittwoch 7. Juni 2017, 14:16

Re: iSpindel an Craftbeerpi3 Logs

#5

Beitrag von mrhyde »

hiasl hat geschrieben: Montag 23. August 2021, 14:45 So, das war ein guter Hinweis. Nein, das Plugin schreibt nicht jede Sekunde einen Wert, sondern durchsucht den Cache (genau steige ich da auch nicht durch), ob ein neuer Wert vorliegt. Scheinbar dauert es aber ein wenig, bis dieser wieder gelöscht ist. Ich habe das Intervall auf 5 s hoch gesetzt, jetzt gibt's keine Doppeleinträge mehr (die Spindel sendet 1/min).
Wenn die Spindel einen Wert an cbpi sendet, dann wird der in cache gespeichert. id ist dabei der Name der Spindel.
Der Wert für diese Spindel wird erst wieder überschrieben, wenn sie einen neuen wert sendet.

Code: Alles auswählen

cache[id] = {'Temperature': temp, 'Angle': angle, 'Battery': battery}
In der Routine execute wird dann jede Sekunde (mit deiner Änderung alle 5 Sekunden) nachgeschaut, ob es einen Wert für die Spindel, die du in deinem Sensor konfiguriert hast (self.key) in cache gibt. Wenn id = self.key ist, dann wird der Wert verwendet und über

Code: Alles auswählen

self.data_received(reading)
weitergegeben. Dabei ist es egal, ob die Spindel in der Zwischenzeit einen neuen Wert gesendet hat, oder nicht, da der cache nicht gelöscht wird. Das wäre halt auch ein Problem, da du ja auch noch weitere Werte für diese Spindel (Temp, Spannung,...) als Sensoren definieren könntest. Wenn ein Sensor den Cache leeren würde, wäre der Wert für den nächsten Sensor für diese Spindel (falls definiert) nicht mehr verfügbar...

Somit wird halt jede Sekunde ein Wert vom Sensor an das System weitergegeben. Was cbpi3 damit macht, kann ich jetzt nicht sagen.


Beim cbpi4 Plugin habe ich das anders gelöst. Ich gebe dem Cache für jede Spindel einfach noch einen Zeitstempel mit, wann cbpi die Daten der Spindel empfangen hat. Der wird dann für den jeweils definierten Sensor festgehalten, wenn ein Wert ins Log geschrieben wird. Wenn ein neuer Wert von der Spindel kommt, ändert sich der Zeitstempel im Cache und nur dann wird auch ein neuer Wert ins Logfile geschrieben. Das UI wird allerdings jede Sekunde mit dem Wert aktualisiert. Das geht aber meines Wissens bei cbpi3 nicht.

https://github.com/avollkopf/cbpi4-iSpi ... _init__.py

Allerdings könnte dieser PR/Commit für dich interessant sein:
https://github.com/carlallen/craftbeerp ... 47cc548541

Gruß,
Alex
Braumeister 20 | Gärung: SS Brewtech 7 Gal BME | Speidel 30 Liter (Konus)
https://github.com/PiBrewing
https://openbrewing.gitbook.io/craftbeerpi4_support/
Benutzeravatar
hiasl
Posting Freak
Posting Freak
Beiträge: 1945
Registriert: Samstag 9. Juni 2007, 12:03
Wohnort: Kulmbach
Kontaktdaten:

Re: iSpindel an Craftbeerpi3 Logs

#6

Beitrag von hiasl »

mrhyde hat geschrieben: Montag 23. August 2021, 16:46 Dabei ist es egal, ob die Spindel in der Zwischenzeit einen neuen Wert gesendet hat, oder nicht, da der cache nicht gelöscht wird. Das wäre halt auch ein Problem, da du ja auch noch weitere Werte für diese Spindel (Temp, Spannung,...) als Sensoren definieren könntest. Wenn ein Sensor den Cache leeren würde, wäre der Wert für den nächsten Sensor für diese Spindel (falls definiert) nicht mehr verfügbar...

Somit wird halt jede Sekunde ein Wert vom Sensor an das System weitergegeben. Was cbpi3 damit macht, kann ich jetzt nicht sagen.
Du hast natürlich recht. Es sind nur deutlich weniger Werte geworden, als zuvor. Es wird irgendwie auch nicht alle 5 s ein Wert aufgezeichnet, aber nach wie vor trotzdem immer Doppelwerte – diesmal mit eben 5 s Abstand. Das ist schon sehr merkwürdig. Wie schon gesagt, als ich das Polynom von "tilt" auf "tilt*xxxx-yyyy" geändert habe, wurden bei den Wertepaaren immer tilt und berechneter Extrakt geloggt. Der Chache sollte ja aber eigentlich nur den tilt beinhalten, oder? Jedenfalls war das Phänomen dann auch nach einiger Zeit wieder passé.

z.B.

Code: Alles auswählen

2021-08-20 08:00:41,6.3
2021-08-20 08:00:46,6.4
2021-08-20 08:01:43,6.4
2021-08-20 08:01:48,6.3
2021-08-20 08:03:40,6.3
2021-08-20 08:03:46,6.4
2021-08-20 08:04:42,6.4
2021-08-20 08:04:47,6.3
2021-08-20 08:05:38,6.3
2021-08-20 08:05:43,6.2
2021-08-20 08:07:36,6.2
2021-08-20 08:07:41,6.1
2021-08-20 08:08:38,6.1
2021-08-20 08:08:43,6.2
2021-08-20 08:09:39,6.2
2021-08-20 08:09:44,6.4
2021-08-20 08:10:35,6.4
2021-08-20 08:10:41,6.9
2021-08-20 08:11:37,6.9
Gruß
Matthias
-----------------------------------------------------------------------------------------
Mehr vom Bier wissen, heißt: Mehr vom Bier haben!
Benutzeravatar
hiasl
Posting Freak
Posting Freak
Beiträge: 1945
Registriert: Samstag 9. Juni 2007, 12:03
Wohnort: Kulmbach
Kontaktdaten:

Re: iSpindel an Craftbeerpi3 Logs

#7

Beitrag von hiasl »

mrhyde hat geschrieben: Montag 23. August 2021, 16:46
Allerdings könnte dieser PR/Commit für dich interessant sein:
https://github.com/carlallen/craftbeerp ... 47cc548541

Gruß,
Alex
Das habe ich bereits implementiert. Zudem werden meine Logs erst mal nur in einer Ramdisk gespeichert und alle 3 Stunden oder jeweils beim Auslesen der Charts dann in die eigentlichen Logs kopiert.
Gruß
Matthias
-----------------------------------------------------------------------------------------
Mehr vom Bier wissen, heißt: Mehr vom Bier haben!
Antworten