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

Klingen und Batteriewechsel #257

Closed
Cosmicbase opened this issue May 24, 2021 · 31 comments
Closed

Klingen und Batteriewechsel #257

Cosmicbase opened this issue May 24, 2021 · 31 comments
Labels
enhancement New feature or request

Comments

@Cosmicbase
Copy link

Cosmicbase commented May 24, 2021

Zunächst mal ein großen Dank und Lob an @MeisterTR für die unermüdliche Arbeit am Adapter.

Ich weiß es war schon mal ein Thema, Klingen und Batteriewechsel über ein Script zu steuern.
Doch leider ist das weder komfortabel noch leicht zu realisieren.
Wenn ich in der App die Werte zuücksetze bleiben sie im Adapter stehen. Auch ein überschreiben ist im Adapter nicht möglich, obwohl es so sinnvoll wäre.

@MeisterTR Kannst du dich der Sache nochmal widmen?

Vielen Dank

@hsteinme
Copy link

@MeisterTR Siehe zur Problematik beim Skript-Versuch #67 (comment) sowie zur Datenstruktur #67 (comment)

@Cosmicbase
Copy link
Author

Cosmicbase commented May 24, 2021

Ein neuer Datenpunkt wäre natürlich auch nicht schlecht. Er müsste nur die Mähzeit bzw. die Zeit wo sich die Messer drehen berücksichtigen. Die App kann ja Aussen vor bleiben.
Der Datenpunkt könnte currentBladeTime heißen und sich beim Wechseln zurücksetzen lassen.
Auch beim Akku sinnvoll.
Warum nicht so wertvolle Details in den Adapter einfließen lassen. Schließlich ist ja auch ein Wechselintervall der Klingen sinnvoll.
Man könnte das in der Vis schön mit einer Verbrauchsscala visualisieren.

@MeisterTR MeisterTR added the enhancement New feature or request label May 27, 2021
@Cosmicbase
Copy link
Author

Cosmicbase commented May 27, 2021

@MeisterTR super das in die Sache nochmal Wind kommt. Wirst du die vorhandene Datenpunkte überarbeiten oder wird es neue geben? 👍

@TA2k
Copy link
Contributor

TA2k commented Jun 4, 2021

In der aktuellen Github version werden alle rohdaten abgespeichert wenn man in den Instanze Optionen die Option dafür aktiviert

@Cosmicbase
Copy link
Author

So die Rohdaten sehe ich alle. Perfekt
Die aktuelle Klingen Arbeitszeit bzw. Ladezykkus jedoch nicht. Nur die Gesamtanzahl ist wie vor vorhanden.
@MeisterTR Musst du noch da Datenpunkte einpflegen?

@TA2k
Copy link
Contributor

TA2k commented Jun 4, 2021

Unter
worx.0.21231234123213.rawMqtt.raw.battery_charge_cycles
worx.0.21231234123213.rawMqtt.raw.blade_work_time_reset_at

solltest du doch alles sehen. Es müssen keine zusätzliche Datenpunkte eingepflegt werden.

@Cosmicbase
Copy link
Author

Cosmicbase commented Jun 4, 2021

Ich sehe die 2 Datenpunkte unter raw.
Aber sie haben immer noch den gleichen Wert.
In der App auf Null und unter Raw Alter Wert.
Wenn ich den auf Null setzte und den Adapter neu starte setzten sich die Werte wieder auf ursprünglichen Stand zurück.
Die 125 Ladezyklen sind in der APP schon auf 0 gesetzt. Und die 18097 Min. (301h) Messerlaufzeit sind in der App ebenfalls auf 0 gesetzt.

Unbenannt

Also egal wie oft ich die Klingenzeit oder Ladezyklus in der App zurück setze, ich kann keine Veränderung in Objekten vom Adapter feststellen. Alles bleibt wie es zuvor war.
Wenn ich die Werte manuell überschreibe, so sind sie beim Neustart vom Adapter wieder die alten.
Ich bekomme im Adapter den Zeitstempel wann ich in der App den reset gesetzt habe.
Aber das ist in Sachen Stunden oder Zyklenanzahl ja nicht aufschlussreich.

Bitte um Hilfe!

@TA2k
Copy link
Contributor

TA2k commented Jun 5, 2021

Das sind die rohen Werte die der Worx zurückgibt, diese können nicht verändert werden.
Ich sehe leider nicht in der App wo man die Klingenzeit zurücksetzt.
Wenn die Werte nicht irgendwo in den raw Daten sind dann kann der Adapter nicht weiterhelfen.

@Cosmicbase
Copy link
Author

In der App unter "Statistiken"
können sowohl Klingenzeit als auch Ladezyklen zurück gesetzt werden. Diese Werte müssen doch irgendwie auffindbar sein.

Screenshot_20210605_120448_it positec landroid

@TA2k
Copy link
Contributor

TA2k commented Jun 5, 2021

Man findet die Werte folgendes Beispiel:
Bladetime wurde noch nie resetet:
"blade_work_time": 25010,
"blade_work_time_reset": 0,
"blade_work_time_reset_at": null,

Bladetime wurde resetet:
"blade_work_time": 25010,
"blade_work_time_reset": 25144,
"blade_work_time_reset_at": "2021-06-05 11:46:49",

Jetzt musst du wie die app
blade_work_time - blade_work_time_reset und das zeigt die App an alles größer 0 ist

@hsteinme
Copy link

hsteinme commented Jun 5, 2021

@TA2k : Hat im 2. Beispiel der Fehlerteufel zugeschlagen? blade_work_time müsste größer oder gleich blade_work_time_reset sein.

@Cosmicbase : Erinnerst Du Dich an #67 (comment) und #67 (comment)?

@TA2k
Copy link
Contributor

TA2k commented Jun 5, 2021

Das sind daten direkt aus dem System. Anscheinend ist es nicht immer der Fall

@Cosmicbase
Copy link
Author

Man findet die Werte folgendes Beispiel:
Bladetime wurde noch nie resetet:
"blade_work_time": 25010,
"blade_work_time_reset": 0,
"blade_work_time_reset_at": null,

Bladetime wurde resetet:
"blade_work_time": 25010,
"blade_work_time_reset": 25144,
"blade_work_time_reset_at": "2021-06-05 11:46:49",

Jetzt musst du wie die app
blade_work_time - blade_work_time_reset und das zeigt die App an alles größer 0 ist

Also habe ich das richtig verstanden?
Die aktuelle Klingenzeit wird in Differenz berechnet?
Und da z.B. zwischen "blade_work_time": 25010,
"blade_work_time_reset": 25010, kein Unterschied besteht ist = 0, und je weiter der Unterschied desto größer die aktuelle Klingenlaufzeit.
Wenn ich später einen Reset mache, müssten alle 2 Zeiten den gleichen Wert haben. 🤔

@Cosmicbase
Copy link
Author

Cosmicbase commented Jun 6, 2021

Das sind daten direkt aus dem System. Anscheinend ist es nicht immer der Fall

Bladetime wurde resetet:
"blade_work_time": 25010,
"blade_work_time_reset": 25144,
"blade_work_time_reset_at": "2021-06-05 11:46:49",

Bei mir sind die 2 Werte nach dem reset gleich. So sollte es scheinbar sein. Bei Nutzung des Rasenroboter nach Wechsel der Klingen sollte sich dann eine Differenz ergeben.
Ich weiß nur noch nicht wie das umsetzten soll???

@hsteinme
Copy link

hsteinme commented Jun 6, 2021

Ich weiß nur noch nicht wie das umsetzten soll???

Jetzt sprengen wir den Rahmen von GitGub-Issues. Stell doch diese Frage im Forum, dann helfe ich Dir dort gerne weiter - falls Du eine Lösung in Javascript möchtest. Bei Blockly müsste ich passen.

Bitte schließe dieses Issue.

@Cosmicbase
Copy link
Author

OK wird geschlossen und hab dir geschrieben :)

@Cosmicbase
Copy link
Author

Das sind daten direkt aus dem System. Anscheinend ist es nicht immer der Fall

Genau das habe ich jetzt auch bemerkt. Das "blade_work_time_reset" manchmal größer ist als "blade_work_time" macht gar kein Sinn.
Zumal es mit dem JS jetzt Probleme gibt. Es sollte ja generell blade_work_time_reset von "blade_work_time" abgezogen werden, so das die aktuelle Klingenzeit in einem DP ausgegben wird.
Aber so wird das auch nicht funktionieren.

Bitte um Vorschläge, Gruß Cosmicbase

@Cosmicbase Cosmicbase reopened this Jun 14, 2021
@Cosmicbase
Copy link
Author

Irgend jemand eine Idee warum die Raw Werte vertauscht sind. In der App werden ja die Werte unter Statistik richtig dargestellt.

Hier nochmal der Fehler. Entweder es liegt am Adapter oder an den Daten von Positec.

Unbenannt

@TA2k
Copy link
Contributor

TA2k commented Jun 16, 2021

Der Adapter gibt die werte direkt zurück vielleicht sind die Werte auch anders zu interpretieren.
blade_work_time ist zum reset zeitpunkt und blade_work_time_reset ist seit dem reset
Einfach mal rumprobieren

@Cosmicbase
Copy link
Author

Cosmicbase commented Jun 16, 2021

Der Adapter gibt die werte direkt zurück vielleicht sind die Werte auch anders zu interpretieren.
blade_work_time ist zum reset zeitpunkt und blade_work_time_reset ist seit dem reset
Einfach mal rumprobieren

Angenommen du hast Recht. Aber warum zählt die App schön tapfer die Klingenzeit mit...
Aber im Adapter ist sie nicht aktualisiert??
Schließlich werden doch die Daten bei Änderungen spätestens alle 10 Minuten synchronisiert.
Ich habe das Gefühl das alle Daten sauber aktualisiert werden außer die Raw. Vielleicht steckt doch die Nadel im Adapter drin.

@hsteinme
Copy link

Die vom Adapter gezeigten Werte scheinen aus verschiedenen Datenquellen zu stammen. Die Daten zu worx.0.xxx.rawMqtt.message werden im Abstand von maximal etwa 10 Minuten synchronisiert, während die Daten zu worx.0.xxx.rawMqtt.raw im Abstand von zwei oder mehr Stunden synchronisiert werden.

Hier scheinen auch Unstimmigkeiten zwischen den Daten aus den verschiedenen Quellen aufzutreten. Zwei Beispiele bei mir:

  • worx.0.xxx.rawMqtt.message.dat.st.b = 64117 vs. worx.0.xxx.rawMqtt.raw.blade_work_time = 64034
  • worx.0.xxx.rawMqtt.message.dat.st.d = 1123567 vs. worx.0.xxx.rawMqtt.raw.distance_covered = 1122190

Fazit: Nichts genaues weiss man nicht.

@Cosmicbase
Copy link
Author

Cosmicbase commented Jun 17, 2021

Also die Daten wo ich benötige werden nicht automatisch abgeholt.

Lösung: Adapter neu starten!

Vielleicht kann @MeisterTR hier eine automatische Aktualisierung einbauen mit Intervall,so daß die Raw Daten bzw. die Bladetime und Batterie charge cycle mit synchronisiert werden.
Sicherlich nur ne Sache wo in einem JS mit eingebaut werden muss.

@TA2k
Copy link
Contributor

TA2k commented Jun 17, 2021

War mein Fehler hatte das nur in das Start update eingefügt. Jett nochmal via github installieren dann müsste es sich immer updaten.

@Cosmicbase
Copy link
Author

Per GitHub oder geht auch per npm installieren?

@TA2k
Copy link
Contributor

TA2k commented Jun 17, 2021

Nur per github

@Cosmicbase
Copy link
Author

Nur per github

Daten von GitHub runterladen und die Worx Daten überschreiben ohne Installation?

@Cosmicbase
Copy link
Author

Das meinte ich nicht. Man kann ja wohl über ne Installationsroutine via GitHub als auch händisch die Daten überschreiben. 🤔
Hab es via GitHub gemacht 😂

@Cosmicbase
Copy link
Author

Cosmicbase commented Jun 20, 2021

Nachdem ja die raw Werte nicht sauber und vor allem regelmäßig synchronisiert werden habe ich jetzt die message DP worx.0.9999999999rawMqtt.message.dat.bt.nr für den Batterie Charge Cycle hergenommen und worx.0.9999999999.rawMqtt.message.dat.st.b für die Klingenzeit.

Das ganze jeweils in ein JS gepackt und siehe da, die aktuellen Daten werden übertragen.

@TA2k
Hast du das Start Update für alle raw DP oder nur message DP eingefügt?

@TA2k
Copy link
Contributor

TA2k commented Jun 20, 2021

Ich würde behaupten das wirklich alles was über MQTT reinkommt geschrieben wird aber die erste Nachricht beim Start ist denke ich eine andere die dann regelmässig kommt.
Wenn die Werte wirklich die korrekten Werten sind kann @MeisterTR sie als feste Werte einbauen.

@Cosmicbase
Copy link
Author

@TA2k

Habe jetzt nochmal intensiv alles geprüft.
So wie ich oben beschrieben habe funktioniert die aktuelle Klingenlaufzeit recht gut. Einzig wenn ich in der App unter Statistik einen Klingenreset mache wird worx.0.9999999999.rawMqtt.message.dat.st.b

Erst nach einem Adapter Neustart aktualisiert.
Leider habe ich weder nach 10 Minuten noch nach längerer Mähzeit keinen Reset bemerkt.
Die Zeit läuft einfach weiter. Nach nem Neustart wird die genau berechnete Differenz richt angezeigt.

Bitte Update nochmals überprüfen.
Wäre ja schön wenn der, die message DP automatisch aktualisiert werden würden.
Entweder bei Veränderungen oder per Intervall.

DANKESCHÖN ☺️

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

No branches or pull requests

5 participants