Closed cleandeveloper closed 2 years ago
Zusatz: 100% können nicht eingestellt werden.
Laut Aussage im Forum besteht das Problem bei CCU3 3.63.8 nicht.
Nach kurzer Analyse geht dieses Problem wohl auf folgende (und andere ähnliche) Codezeile in der WebUI zurück:
Diese for
-Loop wird nicht korrekt durchlaufen bzw. gibt falsche Werte jeweils mittels puts
Kommando zurück. Warum dies jedoch erst mit der 3.63.8.20220330 auftritt liegt an den unterschiedlichen Verhalten von tcl
8.2 vs. 8.6. Konkret hat sich hier die standard floating point precision von 8.2 zu 8.6 von 12
zu 0
geändert, wohingehen die 0 hier wohl eine Art autoerkennung der FloatingPoint precision ist. Im konkreten Fall schlägt diese Autoerkennung aber wohl schief, wie manan folgendem Beispiel tcl skript erkennen kann:
for {set val 0.0} {$val <= 1.0} {set val [expr $val + 0.05]} {
puts "$val : [expr int($val *100)] %"
}
puts "tcl_precision: $tcl_precision"
Führt man dieses unter tcl 8.2 aus kommt folgende Ausgabe:
0.0 : 0 %
0.05 : 5 %
0.1 : 10 %
0.15 : 15 %
0.2 : 20 %
0.25 : 25 %
0.3 : 30 %
0.35 : 35 %
0.4 : 40 %
0.45 : 45 %
0.5 : 50 %
0.55 : 55 %
0.6 : 60 %
0.65 : 65 %
0.7 : 70 %
0.75 : 75 %
0.8 : 80 %
0.85 : 85 %
0.9 : 90 %
0.95 : 95 %
1.0 : 100 %
tcl_precision: 12
Führt man das gleiche jedoch unter tcl 8.6 aus kommt folgende Ausgabe zustand:
0.0 : 0 %
0.05 : 5 %
0.1 : 10 %
0.15000000000000002 : 15 %
0.2 : 20 %
0.25 : 25 %
0.3 : 30 %
0.35 : 35 %
0.39999999999999997 : 40 %
0.44999999999999996 : 44 %
0.49999999999999994 : 49 %
0.5499999999999999 : 54 %
0.6 : 60 %
0.65 : 65 %
0.7000000000000001 : 70 %
0.7500000000000001 : 75 %
0.8000000000000002 : 80 %
0.8500000000000002 : 85 %
0.9000000000000002 : 90 %
0.9500000000000003 : 95 %
tcl_precision: 0
In der tat erklärt dies auch warum in der ComboBox für die max. Ventilöffnungsgrad der Wert 100 komplett fehlt und wohl auch krumme Nachkommastelle dann entsprechend weiterverarbeitet werden.
Dieses "krumme Nachkommastellenproblem" scheint auch ein recht prominentes Problem bei tcl
bzw. tclsh
zu sein (siehe https://wiki.tcl-lang.org/page/A+real+problem), sodass man eigentlich sämtliche Stellen wo solche floating point arithmetic gemacht wird nun überprüfen und ggf. anpassen müsste damit dort für die Ausgabe auch die korrekt format
funktion verwendet wird.
Allerdings erscheint das ein recht hoher Aufwand zu sein, da in der WebUI an vielen Stellen ähnliche Arithmetik stattfindet. Daher erscheint es mir hier im nächsten Schritt sinnvoller zu sein die standard tcl_precision
für unseren Anwendungsfall wie bei tcl 8.2 auf den Wert 12
zu fixieren, denn damit tritt das Problem dann anscheinend nicht mehr auf.
Kurzes Feedback zum Thema. Mit dem heutigen Nightly (3.63.8.20220405-d2a744) kann wieder jeder Wert von 0% - 100% in 5% Schritten eingestellt werden. Beim erneuten Öffnen der Einstellungsseite wird auch der tatsächlich eingestellte Wert korrekt angezeigt. Es gibt auch keine "krummen Werte mehr. Passt also.
Hallo zusammen, Ich habe in den letzten Tagen Einstellungen im Wochenplan vorgenommen. Nun fahren genau diese Ventile nicht mehr. ein Update auf die Version 3.65.11.20221005. Brachte keine Verbessung. Die Einstellung der Maximalen VentilÖffnungsposition ist nicht mehr vorhanden. Aktuell betrifft dieser Fehler nur die Ventile welche ich auch geändert habe. Vielen Dank
Ich habe das gleich Problem. Ich habe auch zwei HmIP-eTRV-2 Thermostat, welche im Frühjahr noch gut geregelt haben und welche nun nicht mehr regeln. Die Verbindung zur Zentrale ist in Ordnung, die Motoren laufen beim Adaptieren, nur öffnen die Ventile nicht(Motoren laufen nicht an), egal ob man Boost betätigt oder eine hohe Temperatur wählt.
Eine Einstellung der Ventilöffnungsposition finde ich nicht mehr in den Einstellungen.
Ich habe das gleich Problem. Ich habe auch zwei HmIP-eTRV-2 Thermostat, welche im Frühjahr noch gut geregelt haben und welche nun nicht mehr regeln. Die Verbindung zur Zentrale ist in Ordnung, die Motoren laufen beim Adaptieren, nur öffnen die Ventile nicht(Motoren laufen nicht an), egal ob man Boost betätigt oder eine hohe Temperatur wählt.
Eine Einstellung der Ventilöffnungsposition finde ich nicht mehr in den Einstellungen.
Das kann ich exakt auch so bestätigen, nur die Ventile vom Typ HmIP-eTRV-B funktionieren noch. Hier ist auch die Einstellung des Ventilöffnungsgrades vorhanden. Aber bei den HmIP-eTRV-2 nicht mehr.
Dito. Keine Ventil-Einstellmöglichkeiten und keine Ventil-Aktion mehr. Habe einen der HmIP-eTRV-2 jetzt zweimal gelöscht, resettet, angelernt und jetzt reagiert zumindest das Ventil wieder. Aber die Einstellmöglichkeiten sind nach wie vor verschwunden.
bei mir taucht der Fehler bis jetzt bei einem von 15 Thermostaten auf. Hoffe es gibt bald eine Abhilfe
Konnte mit dem Script von Horst2 die Ventile wieder auf max. 100% Öffnungsgrad ändern.
`! VALVE_MAXIMUM_POSITION-Fix für HmIP-eTRV-Geräte für RaspberryMatic 3.63.8.20220330 ! Skript nach HmIP-eTRV-Geräte-Einstellungs-Änderungen (oder regelmäßig) laufen lassen
var neuVentilMax=0.95; ! oder z.B. 0.95 var bAllesAufNeuWert=false; ! true: Alle Ventile, die nicht auf neuVentilMax stehen, werden geändert ! false: Nur Ventile die auf 0% stehen werden geändert string devID; foreach (devID, devices.EnumUsedIDs()) { var oDev = dom.GetObject(devID); var hssType=oDev.HssType(); !WriteLine("hssType=" # hssType); if (hssType.Find("HmIP-eTRV")>-1) { var dev_serial = oDev.Address(); string master = xmlrpc.GetParamset(oDev.Interface(), dev_serial#":1", "MASTER"); !WriteLine(master); integer fundstelle = master.Find("VALVE_MAXIMUM_POSITION"); real vm = master.Substr(fundstelle + 44, 4).ToFloat(); WriteLine(oDev.Name() # " (" # dev_serial # ", " # hssType # "), VALVE_MAXIMUM_POSITION: "# (vm 100).ToString(0) # "%"); if ((vm==0.0) || (bAllesAufNeuWert && (vm != neuVentilMax))) { WriteLine("trying to fix ..."); xmlrpc.PutParamset(oDev.Interface(), dev_serial#":1", "MASTER", "VALVE_MAXIMUM_POSITION", neuVentilMax.ToString(2)); string master = xmlrpc.GetParamset(oDev.Interface(), dev_serial#":1","MASTER"); integer fundstelle = master.Find("VALVE_MAXIMUM_POSITION"); real vm = master.Substr(fundstelle + 44, 4).ToFloat(); WriteLine(" " # dev_serial # ", VALVE_MAXIMUM_POSITION: "# (vm 100).ToString(0) # "%"); } } }`
@Steinii50354 vielen Dank für das Skript - funktioniert!
Gruss Jörg
Hat sich erledigt, das war ja zur Abwechslung mal einfach :-)
Moin, sorry für die Frage, aber ich bin noch am Anfang. Wo kann/muss ich dieses Script speichern, anhängen, einbinden, starten etc? Macht man das über den CUx-Daemon? Über einen Hinweis würde ich mich sehr freuen.
Danke im Voraus :-) Martin
Konnte mit dem Script von Horst2 die Ventile wieder auf max. 100% Öffnungsgrad ändern.
@Weifel53 Du fügst das Script unter „Programme und Verknüpfungen“ ein. Da ist am Schluss noch ein Hochkomma welches du löschen musst.
Jo, danke! Zuerst war mir eine Anleitung von 2013 vor die Augen geraten, da hatte ich meine Zweifel. Aber so geht’s prima. Danke für den Support :-)
Von: ppcfox @.> Gesendet: Donnerstag, 15. Dezember 2022 10:48 An: jens-maus/RaspberryMatic @.> Cc: Weifel53 @.>; Mention @.> Betreff: Re: [jens-maus/RaspberryMatic] HmIP-eTRV-2 + 3.63.8.20220330 -> Heizkörper bleibt kalt (Issue #1784)
@Weifel53 https://github.com/Weifel53 Du fügst das Script unter „Programme und Verknüpfungen“ ein. Da ist am Schluss noch ein Hochkomma welches du löschen musst.
— Reply to this email directly, view it on GitHub https://github.com/jens-maus/RaspberryMatic/issues/1784#issuecomment-1352804845 , or unsubscribe https://github.com/notifications/unsubscribe-auth/AS4ZLNEDWIKYQ5GGNBOPYLLWNLSMFANCNFSM5SJCAZRQ . You are receiving this because you were mentioned. https://github.com/notifications/beacon/AS4ZLNHNGY2M64JGKLAYLWLWNLSMFA5CNFSM5SJCAZR2YY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOKCRCT3I.gif Message ID: @. @.> >
Describe the issue you are experiencing
Nach der Änderung der Einstellungen eines HmIP-eTRV-2 (2.2.8) blieb der Heizkörper kalt. Nach einer mehrstündigen Suche kam ich dann auf die Ursache und konnte sie erst einmal umgehen. Die maximale Ventilöffnung war auf 0% programmiert. Die Werkseinstellung ist eigentlich 100%, aber diese wird als 0% gelesen/angezeigt. Beim schreiben einer Konfiguration wird dann die 0% übernomen. Im Moment umgehe ich den Fehler, indem ich für das betroffene Thermostat den Wert auf 95% eingestellt habe. Alle anderen arbeiten korrekt, obwohl auch bei ihnen 0% in der Web-Oberfläche angezeigt werden.
Describe the behavior you expected
Der Wert für die maximale Ventilöffnung sollte richtig gelesen und auch wieder richtig geschrieben werden und sich nicht unbemerkt auf 0% ändern.
Steps to reproduce the issue
What is the version this bug report is based on?
3.63.8.20220330
Which base platform are you running?
rpi3 (RaspberryPi3)
Which HomeMatic/homematicIP radio module are you using?
RPI-RF-MOD
Anything in the logs that might be useful for us?
Additional information
No response