ProofAndSetValue... wie geht's weiter? #1178
Replies: 14 comments 63 replies
-
Also kommt expr $min + 0.001 doch aus der FW? Diese offizielle "Lösung" hat den Nachteil,daß man ggf.keinen Wert "0" mehr eingeben kann,wweil das unterste Limit 0,001 ist. |
Beta Was this translation helpful? Give feedback.
-
Überigens habe ich noch ein Vorkommen von parseFloat gefunden. Wofür auch immer diese Datei benötigt wird... Zeile 186 Ändern zu: |
Beta Was this translation helpful? Give feedback.
-
"Fieslinge" sind auch die Grenzwerte (z.B. Kanal:7 PSM) für den Entscheidungswert. Wie läuft es denn bei @jp112sdl und den Homebrew-Geräten momentan bezüglich ProofAndSetValue? |
Beta Was this translation helpful? Give feedback.
-
Was habt ihr da "unten" denn für eine Script/Template/was auch immer Sprache? Solange euer Aufruf am Ende bei Minimum/Maximum so aussieht habt ihr 3 Nachkommastellen, ohne dass ihr die .001 machen müsst: |
Beta Was this translation helpful? Give feedback.
-
Soo... mal langsam.
Auswirkungen oder nötige Änderungen an den Geräten von @jp112sdl sehe ich auch erstmal nicht. Noch ne kleine Anekdote aus meinen Tests die sehr gut zu einem Kommentar von @jens-maus passt.
Das kann tatsächlich auch nach hinten losgehen wie ich feststellen musste. Wie auch immer... ich schließe mich @MichaelN0815 an, zumindest die www\config\ic_common.tcl zu Variante A zu ändern. Grüße |
Beta Was this translation helpful? Give feedback.
-
Lt. https://homematic-forum.de/forum/viewtopic.php?f=65&t=66446&start=120#p653562
Aufruf der Funktion erfolgt mit: Die Funktion macht also was von ihr erwartet wird. Wieso da Nachkommastellen übergeben werden, wenn gar keine zulässig sind, kann ich nicht beurteilen. |
Beta Was this translation helpful? Give feedback.
-
Der Programmierer wollte aber wohl wirklich float haben: Aber es wird noch schlimmer: Der Faktor wird mit 0 übergeben! Bei so viel Kreativität beim Aufruf dieser Funktion ist eine nachhaltige Abstellmaßnahme nur möglich, wenn EQ-3 gewillt ist zukünftig einen Standard einzuhalten. Wenn dieser Wildwuchs nicht beseitigt wird und zukünftig so weitergeht, dann wird das eine Dauerbaustelle. |
Beta Was this translation helpful? Give feedback.
-
Deine weitere Strategie wäre also den aktuellen Stand erstmal laufen zu lassen und alle Bugreports einzusammeln in der Hoffnung irgendwann alles gelöst zu haben? Wenn ich mir die Nutzung dieser Funktion anschauen, erscheint es mir so, als hätte EQ-3 selber keine Schnittstellen-Dokumentation. Wie soll man dann sinnvoll ein System weiter entwickeln? Wird bei OpenSource immer so gearbeitet? |
Beta Was this translation helpful? Give feedback.
-
Welchen Sinn hat dstValueFactor? Im Original und im modifizierten Code wird immer die Eingabe gegen die Limits geprüft, ohne den Faktor zu berücksichtigen. Solange ich nicht verstehe was da passiert, kann ich keine Verbesserungsvorschläge erarbeiten. |
Beta Was this translation helpful? Give feedback.
-
eQ-3 hat eine Verbesserung eingepflegt und publiziert: |
Beta Was this translation helpful? Give feedback.
-
Hallo Zusammen, kann ich hier nochmal dazu aufrufen nun vielleicht mal bitte eine Liste oder ähnliches zu generieren an welchen konkreten Stellen es jetzt aktuelle noch Probleme mit der |
Beta Was this translation helpful? Give feedback.
-
Nachdem ich mich heute mal wieder ausgiebig mit dem Thema befasst habe, denke ich das, die sogenannten "falschen Aufrufe" zu identifizieren und sie kompatibel zur Im Ticket #1221 hatte ich ja geschrieben das allein für das dortige Problem die Aufrufe der Aktuell würde ich dazu tendieren die |
Beta Was this translation helpful? Give feedback.
-
@jens-maus : Mir ist nun aber absolut unklar wie da vorzugehen ist. Ich raff das nicht... |
Beta Was this translation helpful? Give feedback.
-
Naja, was tut man nicht alles. Ich hatte ja gehofft das Thiemo den Part übernimmt. |
Beta Was this translation helpful? Give feedback.
-
Um #1058 nicht unnötig weiter in die Länge zu ziehen würde ich hier gerne über mögliche (finale) Lösungen oder Lösungsansätze diskutieren.
Die letzten Tage habe ich mich ausgiebig mit dem Thema befasst und stand auch mit Uwe (von CUxD) in Kontakt. Das war sehr aufschlussreich, und führte dazu das Uwe eine neue CUxd-Version (2.5.3) herausbrachte weil die alte Version die übergeben Werte nicht korrekt übernahm / rundete und bei der Rückgabe der Werte eine Nachkommastelle abschnitt.
Wichtig ist hier aber nur zu wissen das das beispielhafte CUxD-Gerät (90) Universal Wrapper Device Typ Thermostat an den Stellen wo man Float-Werte übergeben kann intern mit 2 Nachkommastellen arbeitet. Dumm ist nur das die WebUI an diesen stellen die Limits mit einer Nachkommastelle vorgibt. Dazu später mehr.
So, ausgehend von der Aussage von @theimo1221
und dem Hinweis von @MichaelN0815
Variante A:
hatte ich die Zeile wie folgt abgeändert.
append s " onblur=\" ProofAndSetValue('$input_idval', '${idval}', '$min', '$max', parseFloat([expr 1 / $factor]));\" /></td>"
Damit waren alle (von mir testbaren) "Float-Eingabestellen" soweit in Ordnung. Der Eingegebene Wert wird als String übergeben und die Nachkommastelle richtet sich nach den Limits in der WebUI. Das bedeutet aber auch das das oben angeführte CUxD-Gerät nur mit einer Nachkommastelle gefüttert wird obwohl es 2 verdauen kann.
Variante B:
hatte ich die Zeile wie sie aktuell in CCU 3.57.4 ist, geändert.
append s " onblur=\" ProofAndSetValue('$input_idval', '${idval}', [expr $min + 0.001], [expr $max + 0.001], parseFloat([expr 1 / $factor]));\" /></td>"
Das führt natürlich dazu das erstmal (bis zu) 3 Nachkommastellen übergeben werden können, egal wie viele Nachkommastellen bei den Limits in der WebUI vorgegeben sind.
Ist das problematisch?
Zumindest für das angeführte CUxD-Gerät kann ich das verneinen.
Zitat Uwe:
Also selbst wenn ich 22.44677 übergebe, werden bei der Rückgabe korrekte 22.45 ausgegeben.
Präferieren würde ich Variante A.
Idealerweise müsste man aber die Nachkommastellen der Limits an die Fähigkeiten des Gerätes anpassen.
Grüße
Baxxy
Beta Was this translation helpful? Give feedback.
All reactions