-
Notifications
You must be signed in to change notification settings - Fork 4
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
Seit Anpassung der WH3080 Daten kommt es zu einem Fehler #17
Comments
Ich weiss nicht, ob Du eine Benachrichtigung bekommst wenn ich das issue aufmache, daher schreibe ich dich sicherheitshalber direkt an |
Ich hab’s gerade gelesen. Die Daten des Internals hatte ich bestimmt mit dem reconstruct Bit erzeugt. Das würde erklären wieso es bei dir nicht klappt. Oder verstehe ich den Sachverhalt falsch? |
In #8 hatten wir festgelegt, dass die Angaben "rmsg" und "dmsg" validiert sind, wenn internals mit angegeben sind. Der Test läuft unter dem angegebenen commit. Die Protokolldaten sind aktuell (version 1.05) und deutlich neuer als die Testdaten. Dennoch kommt es hier zu einer Abweichung. Ich kann mir nicht vorstellen, mit welcher Version der Protokolldaten die Validierung vorgenommen wurde, aber das Soll Ergebnis des Tests weicht definitiv vom Ist Stand ab, wenn mit 1.05 der Test durchlaufen wird. |
Moin Moin, ich schaue es mir an. Ich bin eben dran, "schnellstmöglich" jede RAWMSG / DMSG welche bei "uns" nicht klappt, als Fehler behandeln zu wollen um einen Stand anzustreben, das erstmal alle Daten darin ohne Fehler durchlaufen. |
Mach dir keine Vorwürfe, Wir sind Menschen und es passieren Fehler. Wenn das Ergebnis für dieses Gerät angepasst wurde, dann laufen die Tests rmsg / dmsg alle mit einem OK durch. Wie wir das grundsätzlich in Zukunft handhaben weiss ich leider auch noch nicht. Die Schwierigkeit besteht ja darin, dass sich der Stand der Testdaten ändern kann, ohne dass ein Test automatisch durchgeführt wird. Vielleicht hilft es, wenn wir mit Tags arbeiten. |
Alles gut :)
Du meinst sicherlich, Fehler wenn die RAWMSG nicht das Ergebnis vom Internal produziert? Liege ich da richtig? |
Wo Fehler passieren ist doch egal. In dem konkreten Fall stimmt dmsg nicht. Die Werte in internal werden derzeit in keinem Test automatisch verifiziert. |
Wenn ich das richtig verstehe, prüfst du DMSG zur RAWMSG? Meine Überlegung auf die Schnelle war soeben, ob man an einer „Kennung“ herausbekommt, hier ist noch Handlungsbedarf. Der Gedanke dahinter ist, das ich ja eine Parallele Aufzeichnung habe wo Fehler / Differenzen vorhanden sind. |
Was soll anhand einer Kennung herauszubekommen sein? Ich hatte verstanden, dass wir die Felder internal nur pflegen, wenn dieser Zustand auch mit dem SIGNALduino Modul im master oder development Branch erzeugt werden kann. Wenn internal Werte gesetzt sind gehe ich davon aus, dass sie mit dem Modul aus dev-r34 (derzeit) erreicht werden können. Wir können auch gerne ein anderes Flag dafür einbauen. |
Wie sollen wir den Fehler beheben? Option 1: Internal entfernen |
Ich habe Option 1 umgesetzt: 37cc1be Ist eher ein Workaround aber mit einer fehlerhaften Angabe macht es wenig Sinn dagegen zu testen. |
Hallo, bin gerade meist nur mobil zwecks Urlaub und sportlichen Höhepunkt.
Ich hätte auch Option 1 gewählt ;) und zusätzlich passe ich die Kommentare an um zu sehen, hier ist noch Handlungsbedarf aber deine Tests laufen erstmal durch. |
@sidey79 Was passiert wenn ich in die JSON Datei Daten eingebe als Ergebnis wenn ich das model manuell richtig gesetzt habe im Modul SD_UT Bsp. Bisherigen Daten:
Korrekte Daten, nach dem definieren des Models vom User manuell um die Auswertung richtig zu erhalten:
BEEINFLUSST das deine Tests, das diese fehl schlagen oder prüfst du nur die
gleich bleiben? Nicht das ich mit unserer Genauigkeit deine Test´s erstmal fehl schlagen lassen ;-) |
@HomeAutoUser Im Moment läuft nur ein Basistest der das Ergebnis von DMSG verifiziert. Die Auswertung der Daten zu testen, würde die Qualität der Module allerdings noch verbessern und das sollten wir auch angehen. Wäre folgendes Vorstellbar? Der Testdatensatz wie er bislang vorliegt bleibt erhalten. Ich hab jetzt noch keinen exakten Plan, woher man weiss, wann man das ganze aufrufen soll, aber vielleicht findet sich da ja noch was. |
Da bin ich ja beruhigt ;-) und weis den Stand wie es derzeit abläuft.
Das ist richtig. Betreffs dem SD_UT Modul, so wird beim ersten anlegen wie folgt belegt ist Erst nach einem manuellen auswählen des Modelles und erneutem Empfang wäre es dann so belegte Alles ist von der selben DMSG bzw. selben RAWMSG. Der User muss nur bei 80% der Modelle selbst auswählen. Bei den anderen 20% wird das Modell direkt angelegt mit dem dazugehörigen DEF. Da würde es ja nicht stören. (eine automatische Modellzuordnung ist nur da vorgesehen wo auch eine Prüfung integriert ist in Form von einer CRC)
Ich könnte mir nur das so vorstrellen, das im Comment Feld Bsp "model:Trabi" drin steht. Sowas in der Art? Was meinst du mit PerlCode in einer Bezeichnung? Prinzipiell wenn wir es "doppelt" eintragen geht es. Die "Mehrarbeit" führt dazu, das wir alle Fälle abdecken.
|
Der Test selbst weiss ja nicht, was genau gemacht werden soll, damit der Test durchläuft. Also könnte man in den Testdaten den Code hinterlegen, der das Modell setzt. |
Hallo @sidey79, Wenn wir nur 1 Datensatz nutzen und diesen mit dem passenden Model versehen, so sollte es ausreichen. Alle Einträge wo kein Modelhinweis drin ist, werden normal behandelt und alle wo ein Modelverweis drin steht, dort musst du in den Tests das Attribut setzen auf den Wert. So benötigen wir die Mehrdaten (den Datensatz wo noch kein Modell ausgewählt wird nicht zwangsläufig) Wie wir das Model verankern, ob im Comment oder noch eine Rubrik hinzufügen welche dem Attribut Model enspricht müsste man mal überlegen. Ich stelle mir das bei den Tests so vor, das diese den Modelnamen auslesen und du dann diesen setzen lassen kannst. (DAFÜR blicke ich aber zu wenig durch was man da machen muss) Gern möchte ich den Aufwand natürlich nicht unnötig "aufblähen" weil dann kommt irgendwann der Zeitpunkt wo man auch nachlässig wird. |
Kommt darauf an, was getetet werden soll.
Im Kommentar ist so etwas immer unschön. Kommentare sind freitext und ungeeignet um eine Entscheidung zu treffen.
Ich stelle mir das ja eher so vor, dass der Code, der für den Test ausgeführt werden muss, in den Testdaten hinterlegt ist. |
Ich denke deine Denkweise zu verstehen bzw. was du auch als Zweck dahinter siehst.
Wieviel Code steckt dahinter?
Wollen wir hier Tests auf Module entwickeln oder wollen wir die Funktion des Projektes SIGNALduino testen und erweitern? Ungern möchte ich zuweit abdriften. |
Zu der 1. Frage: Ich habe den genauen Syntax jetzt nicht nachgesehen aber soweit ich das verstanden habe, müsste ein Attribut gesetzt werden. CommandAttr(undef,"attr $defName model XYZ"); $defName wird vermutlich dem Ersteller der Testdaten bekannt sein. Frage 2: Ja, ich verstehe. Den Test pflegt hoffentlich derjenige, der am Code etwas anpasst. Zu 3.: Das kann ich vom Handy leider nicht darstellen. Denkbar wäre so etwas wie Grundsätzlich ist es aber auch richtig, dass ein Test des SIGNALduino Modules ein anderer als ein Test eines Modules ist. |
Dann lass uns das beleuchten wenn du wieder einen PC zur Hand hast. Ich habe als ersten notwendigen Schritt mal eingebaut, das das JSON den Bereich attributes erhält was momentan mit dem Modell gefüllt wird, wenn es existent ist. Vielleicht gibt es einen Weg, das man den Code zum setzen des Attributes nicht in die JSON schreibt weil das wird unübersichtlich. Wenn wir davon ausgehen, das das Commander zum setzen des Attributs gleich bleibt und auch der Preset Code, kannst du diese nicht verankern außerhalb der JSON Datei? |
Im commit 7d02962 wurden die Daten für die WH3080 angepasst:
SIGNALduino_TOOL/FHEM/lib/SD_Device_ProtocolList.json
Lines 177 to 184 in 6e6aa4b
Diese Daten werden für den automatischen Test nun auch verwendet, da der Wert internals gesetzt ist.
Getestet wurde gegen den Modulstand commit 7c6e785456a1c105a7720e5f0b89c8d0566c8da1.
Anbei das Log:
The text was updated successfully, but these errors were encountered: