-
-
Notifications
You must be signed in to change notification settings - Fork 224
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
hm800assignment ist gleich zu hm600assignment #30
Comments
Weil der Code älter ist als die Erkenntnis. Wir haben noch sehr wenig Informationen darüber, was die DTU mit den Wechselrichtern über längere Zeiträume spricht. Uns fehlen einfach Rohdaten vom Original zum analysieren. Die aktuelle Entwicklung basiert mehr auf Brute-Force. |
genau so stimmt es. Ich bin noch dran die aktuellen Erkenntnisse in die ESP Version zu implementieren. Übersicht meiner heutigen Quoten: Das zusammenfassen der Payload ist nahezu fertig, ich will es aber noch testen bevor ich es veröffentliche. Die Detektion von fehlenden Paketen funktioniert, der request für den retransmit fehlt noch, dürfte aber nicht schwierig sein. um auf die ursprüngliche Frage zurückzukommen: das kann gut sein, ich bin selbst nicht im Besitz dieser WR, ich habe nur einen HM1200. Ich schaue mir die Definitionen nochmal an, es macht ja keinen Sinn doppelten Code / Definitionen zu pflegen. |
Ich fertige keine Empfangsstatistik an, welches Fragment ich tendenziell seltener bekomme. Re-Transmitts fixen das allermeiste, selten ist mal ein vollständig neuer Request nötig. Ich hab in den letzten Tagen keinen wirklichen Verlust der Payload innerhalb eines Interval (5s) beobachtet. Allerdings ist mein NRF auch nicht weit vom Wechselrichter weg und die Gegend hier funktechnisch auch nicht massiv überlastet. Das beeinflusst natürlich die Stabilität der Kommunikation wesentlich. Die 0x84: 100% sind merkwürdig. Bei mir geht hin und wieder auch mal das letzte Paket flöten. dann bleibt nur eine komplett neue Anfrage. Ist das ein Erhebungsfehler oder Glück? |
Hier nochmal die Liste aus dem Excel bzw. zuerst die Kurzfassung von Andi:
Seriennummern (Details) - Click to expand!
|
@Sprinterfreak wie oben geschrieben habe ich die 0x84 als Referenz genommen. Mein Modul läuft Tag und Nacht, da in der Nacht keine Antworten kommen wären sonst die Quoten sehr schlecht. |
Stimmt in gewisser Weise, weil wenn das letzte Paket fehlt ist praktisch auch keins der vorherigen verwendbar. Dann muss man sofort einen neuen vollständigen Request absetzen. Im letzten Paket ist die CRC und die Information aus wie vielen Fragmenten die Übertragung bestand. Ohne die Informationen kann man keine Daten verarbeiten. Soweit ich weiß, kann man das letzt Paket auch nicht zum re-transmit anfordern. Du kannst ja nicht wissen was es war. Kann 0x81-0xff gewesen sein. Kannste nur raten. bzw. müsste ich mal ausprobieren, ob man das mit 0x80 neu anfordern kann. |
Oder man kann vorhersehen wie viele Pakete kommen müssen, da wir die Daten ja selbst anfordern und das Protokoll schon so weit verstehen. @homeautomation2022 ist in der neuesten Version berücksichtigt. |
Man kann es schätzen, aber nicht wissen. Sonst gäbe es die information im Datenstrom nicht. Spätestens bei 0x11 kann man es auch nicht mal mehr schätzen, weil je nach Log-Länge vollständig variabel. Ohnehin sind die Daten nur valide, wenn alle Fragmente des Datensatzes da sind. Sonst fällt das eh durch den crc check. Moment, welche crc, wenn das letzte Fragment fehlt ^^ |
@Sprinterfreak ok, ich habe gerade Mal mit der gesamt Payload nachgezogen, aber es gibt schon ein neues Topic zum nachziehen .. meine Aussage stimmt also nur für das Zeit setzen Kommando. |
Jo, gerade ausprobiert. Das letzte Paket kann man nicht anfordern. Beides initiiert einen komplett neuen Request mit Länge 1 und scheinbar eine Fehlermedlung als Payload. |
@Sprinterfreak und wenn Du einfach Paket 0x03 nochmal anforderst ? Ob es tatsächlich das letzte war weißt man ja nie vor der Antwort. |
o.O |
Mentioned in lumapu#30 by @stefan123t
Mentioned in lumapu#30 by @stefan123t
Scheint für die ganze Klasse mit 2 Eingängen gleich zu sein (HM600/700/800), wurde aber 2 mal identisch definiert, warum auch immer???
The text was updated successfully, but these errors were encountered: