Aufruf Bugs/Enhancements – Weiterentwicklung ReGaHss/WebUI

Fehler in Firmware und WebUI & Workarounds

Moderator: Co-Administratoren

Benutzeravatar
jmaus
Beiträge: 9805
Registriert: 17.02.2015, 14:45
System: Alternative CCU (auf Basis OCCU)
Wohnort: Dresden
Hat sich bedankt: 457 Mal
Danksagung erhalten: 1848 Mal
Kontaktdaten:

Aufruf Bugs/Enhancements – Weiterentwicklung ReGaHss/WebUI

Beitrag von jmaus » 08.05.2017, 11:01

Hallo Zusammen,

für die die auf dem diesjährigen Usertreffen in Kassel waren ist es zwar keine Neuheit mehr, trotzdem möchte ich mich hier im Forum auch noch einmal öffentlich – nun da eQ3 auf dem Usertreffen das selbst publik gemacht hat – als der Entwickler "outen" der hinter den kürzlich veröffentlichten neuen Betaversionen von ReGaHss/WebUI steckt (siehe viewtopic.php?f=26&t=36623 bzw. viewtopic.php?f=65&t=34497&start=1120#p354801) und der einige sehr langjährige Bugs in ReGaHss (Timer-Problem, 200-Variablen-Problem, etc.) beseitigt hat. Die volle ChangeLog Liste der Änderungen meinerseits kann unter folgender URL eingesehen werden:

https://github.com/eq-3/occu/blob/maste ... /changelog

Wie in meinem Vortrag auf dem Usertreffen angekündigt möchte ich es jedoch nicht bei diesen bugfixes/enhancements belassen sondern sukzessive dafür sorgen das ReGaHss/WebUI durch weitere Bugfixes und kleinere Anpassungen an der Weboberfläche vor allem noch stabiler und ggf. auch etwas flexibler wird. Da ich selbst aber erst seit Ende 2015 im Bereich HomeMatic unterwegs bin und damit eigentlich formal nicht zum "alten Eisen" gehöre würde ich gerne auf das große und breite KnowHow hier im Forum zurückgreifen um eine vollumfängliche Bug- bzw. Enhancmentliste zu generieren die ich mir dann sukzessive im ReGaHss Quellcode einmal anschauen kann und diesen dann ggf. reparieren und geringfügig erweitern kann.

Ich möchte daher offiziell dazu aufrufen, dass jeder (vor allem die sehr langjährigen Nutzer/Entwickler) einmal in sich gehen und ggf. ihre Bug- oder Wunschlisten für ReGaHss/WebUI noch einmal durchgehen und diese dann hier zum besten geben. Wichtig wäre hierbei jedoch das diese Probleme/Bugs immer noch mit der aktuellen CCU Firmware und der aktuellen ReGaHss-Betaversion reproduzierbar sind. Des Weiteren möchte ich gerade für Enhancement/Feature Requests zu bedenken geben, dass ich nicht geplant habe große Änderungen/Anpassungen an der WebUI vorzunehmen oder gar die interne HM-Skriptsprache großflächig anzupassen bzw. zu modernisieren. Deshalb bitte mit Augenmaß gerade bei der eigenen "Wunschliste" vorgehen und nicht gar fordern doch das gesamte Weblayout der WebUI zu ändern – das würde bei weitem meine verfügbare Zeit sprengen und auch nicht verhältnismäßig sein. Des Weiteren auch immer im Kopf behalten das die Weiterentwicklung dieser Weboberfläche weiterhin bei eQ3 liegt und ich daher schon gezwungen bin die Änderungen auf ein minimum zu reduzieren damit das ganze dann in gewissen Iterationen auch in die CCU2 Firmware offiziell übernommen und somit von eQ3 weitergepflegt werden kann.

Im Folgenden sollen nun die von Nutzern oder mir verifizierten/sinnvollen Bug/Enhancement Requests gesammelt werden und ich werde auch versuchen eine Liste der bereits beseitigten Bugs bzw. implementierten Features in neuen ReGaHss Versionen zu dokumentieren:

Aktuelle Feature-, Bugrerquests (geplant für Umsetzung):
  • Feature: Maximale Objektanzahl (65535) erhöhen/beseitigen (#220)
  • Feature: Erweiterung der Astrofunktionen – mehr als Sunset/Sunrise, +/- Offset-Möglichkeit, etc. (#221)
  • Feature: WebUI - Standardmäßige Anzeige des DutyCycle der CCU und aller angeschlossenen LAN-GW (#219)
  • Feature: Möglichkeit Geräte als „inaktiv“ zu markieren um Servicemeldungen zu unterdrücken. (#222)
  • Feature: Optionsmöglichkeit bei jedem Programm ob es beim start der ccu starten soll oder bis zur nächsten Auslösung warten soll (DutyCycle Minimierung bei Neustart). (#223)
  • Feature: HM-Skript – break/continue für while() und foreach() Nutzung implementieren. (#224)
  • Bug: WebUI – ^ kann nicht im SkriptEditor verwendet werden (im „Skript testen“ geht es). (#225)
  • Feature: ReGaHss – Ausgabe einer Session-Liste statt nur „Zuviele gleichzeitige Verbindungen“. (#226)
  • Feature: HM-Skript – system.Sleep(t) Funktion um die Ausführung eines Skriptes für t Millisekunden zu unterbrechen (mit maximaler Begrenzung). (#227)
  • Feature: HM-Skript – Funktionen um Systeminfos wie LoadAvg, Memory Info, etc. der darunterlegenden HW ausgeben/auswerten zu können
  • Bug: WebUI – Ein manuelles Ausführen von Programmen sollte nicht einfach den 1. DANN Zweig ausführen sondern die Bedingungen korrekt abarbeiten. (#229)
  • Bug: WebUI – 'pre' als Variablennamen bei "Skript testen" nicht erlaubt?!? (siehe hier). (#230)
  • Feature: WebUI – Zusätzlicher Fehlerausgabebereich beim "Skript testen" um Fehler (auch ScriptRuntimeError) sichtbar zu machen (siehe hier)
  • Bug: ReGa – "${sysVarPresence}" statt "Anwesenheit" nach initialer CCU Installation (siehe hier). (#199)
Gemeldete Bugs/Ideen (noch nicht selbst verifiziert bzw. entschieden):
  • Feature: HM-Skript – Einführen eines ‚global‘ vs. ‚local‘ specifiers für variablen Definitionen sodass variablen dann nach ende eines Skriptes automatisch freigegeben werden bzw. einem art garbage collector zugewiesen werden.
  • Feature: Überarbeitung gewisser Interna um ein besseres Multithreading zu erreichen sodass z.B. Programme/Skripte mehr unabhängig (komplettes multithreading wird schwierig bis unmöglich) von einander abgearbeitet werden können.
  • Bug: HM-Skript – Inkonsistente „null“ Auswertung von Variablen (siehe hier und siehe hier)
Bereits umgesetzte/implementierte Dinge:
  • Bug: Timer-Problem – 1-sekunden timer bleiben noch gewisser Zeit "stehen" (siehe hier)
  • Bug: 200-Variablen-Problem – Es können nur max. 200-Variablennamen in HM-Skripten global über die CCU verwendet werden (siehe hier)
  • Bug: ReGaHss-Absturz beim Beenden – Beim Beenden von ReGaHss via CTRL+C/kill kam es zu einem Speicherfreigabe Problem
  • Bug: Falsche Zeitausgabe – (Sommer/Winterzeit) mit Format() (siehe hier)
  • Bug: "PONG" Fehlermeldungen im Syslog – Bei PONG events registriert ReGaHss diese immer als Fehler
  • Bug: Beseitigung verschiedener falsche Speicherfreigaben (free() vs. delete[])
  • Bug: HM-Skript – Kommentare "!" ohne text dahinter (leere Zeile ansonsten) funktionieren nicht (die nächste Zeile wird ansonsten als Kommentar angesehen)
  • Bug: ReGaHss-11622 Problem – Ausgabe verschiedener sog. '11622' Fehlerausgaben im Syslog (siehe hier)
  • Bug: HM-Skript – Ein Aufruf von xmlrpc.ActivateLinkParamset() mit nur zwei Parametern resultierte in Abstürzen von rfd
  • Bug: Probleme mit der falschen Verwendung von Objekttypen (siehe hier)
  • Bug: dom.GetObject("2ter Stock") gibt falsches Objekt zurück - Zahlen am Anfang scheinen nicht zu gehen (siehe hier)
  • Feature: Beseitigen des max. 100kB HM-Skript Limits
  • Feature: Konfigurationsmöglichkeit um HTTP Session-Limit zu erhöhen
  • Feature: Konfigurationsmöglichkeit um Zeitabstände für automatische Speicherung der Konfiguration anzupassen
  • Feature: Nutzung Buffer Overflow/Underflow sicherer String Funktionen (snprintf() vs. sprintf())
  • Feature: HM-Skript – Erweiterung der Sprache um folgende Mathe-Funktionen:
    • exp(), log(), sqrt(), min(), max(), mod()
  • Feature: HM-Skript – Möglichkeit Zufallszahlen zu generieren
  • Feature: HM-Skript – Implementierung von Mathekonstanten (pi, e, etc)
  • Bug: Beseitigung von möglichen Abstürzen im Signalhandler von ReGaHss
  • Bug: Beseitigung des 50-Zeichen Limits von Objektnamen (vor allem für HmIP Geräte relevant)
  • Bug: HM-Skript – '+' Operator gibt in Kombination mit Strings und anderen Datentypen falsche Ergebnisse zurück (siehe hier)
  • Bug: WebUI - Speichern von großen Skripten dauert unverhältnismäßig lange (siehe hier und siehe hier)
  • Bug: HM-Skript – Inkonsistente Ausgaben bei Mehrfachnutzung von EnumTypeName() (siehe hier und siehe hier)
  • Feature: HM-Skript - Implementierung mehrerer String Methoden – z.B. Replace(a,b), Trim(), ToLower(), ToUpper(), StartsWith(), EndsWith(), Contains() (siehe hier und siehe hier)
  • Feature: HM-Skript – Implementierung elseif() (siehe hier)
  • Bugfix: HM-Skript – Control Character (z.B. "\t") erzeugten SyntaxError in Methodenaufrufen (z.B. string.Replace("\t", "TAB")), jedoch nicht in Variablendefinitionen.
  • Bugfix: HM-Skript – "RulePRogramID" in "RuleProgramID" umbenannt.
  • Bugfix: HM-Skript – "SINGLECOND" identifier in "SINGLECONDITION" umbenannt.
  • Feature: HM-Skript - fehlende OT Konstanten hinzufügen (siehe hier)
  • Feature: ReGa – Konfigurationsmöglichkeit für die Anzahl maximal paralleler HTTP Verbindungen
  • Feature: HM-Skript – Nutzung der .ToString(p) Methode auch mit Zeichenketten die lediglich eine Gleitkommazahl beinhalten.
  • Feature: HM-Skript – Nutzung von Shell Pipes "|", Redirections ">" und mehr als 9 Argumente in system.Exec() Aufrufen.
  • Feature: HM-Skript – zusätzliche symbolische ID_XXXXXX Identifier für all konstanten ISE ids hinzugefügt (u.a. ID_GW_SYSALARM, ID_GW_SYSSERVICE)
  • Bugfix: ReGa – HTTPListener Initialisierung überarbeitet damit mehr als 10 parallele Listener Prozesse möglich werden
  • Bugfix: ReGa - Fehler in XmlRpcDataType zu ISE variable Konvertierung behoben der dazu führte das gewisse integer abfragen fälschlicherweise in byte werte konvertiert wurden.
  • Bugfix: ReGa – Inkonsistente Gleitkommazahlenrundung bei Nutzung von ToString(p) vs. Round(p) repariert.
  • Bugfix: ReGa – WriteLine() Ausgaben von Gleitkommazahlen werde nun ungerundet ausgegeben um dem exakten Wert einer Variable näher zu kommen.
  • Bugfix: ReGa – Problem repariert das bei Einsatz von Systemvariablen in Programmbedingungen es zu "CompatibleForCompare" Fehlern kam wenn der Typ der Systemvariable im Nachhinein angepasst wurde.
  • Bugfix: ReGa – Bei Programmbedingungen mit Gleitkommazahle behafteten Dimmerwerten kam es zu weiteren "CompatibleForCompare" Fehlern.
  • Bugfix: ReGa – Bei Nutzung von elseif() kam es zu mehrfachem Ausführen der alternativen Bedingungbranches.
  • Bugfix: ReGa – Problem behoben das bei Übermittlung von Gleitkommazahlenwerten über das BINRPC Protokoll es zu numerischen Ungenauigkeiten kommt, sodass Sensorwerte (z.B. Dimmer) leicht ungenaue Werte lieferten.
  • Bugfix: ReGa – Problem behoben das in Skripten mit Variablen die unvollständige html/xml tags beinhalten es zur Rückgabe eines nicht validen xml Responses kam und damit zu keinerlei Ausgabe im Skript Editor bzw. Skript test Fenster.
  • Bug: Geistervariablen – Löschen einer Systemvariablen die in einem Nutzerprofil auf der Startseite angezeigt wird führt dazu das dort falsche Informationen landet (siehe hier)
  • Bug: WebUI/HM-Skript – Ausgabe von non-printable Zeichen bei Verwendung eine "<?xml" strings in einem Skript (siehe hier)
  • Bug: WebUI – Roter Punkt+Servicemeldungen Anzeige setzt aus wenn \n in Systemvariable (siehe hier). (#231)


Bitte auch beachten das diese Listen keinerlei Prioritäten besitzen und auch nicht gesagt/garantiert ist das diese Probleme/Enhancements von mir in irgendeiner Form zeitnah oder überhaupt umgesetzt werden. Ggf. sind Anpassungen zu komplex und stehen in keinem Verhältnis zum aufwand. Deshalb also bitte nicht enttäuscht sein wenn gewisse Dinge von mir nicht aufgenommen oder wieder von der Liste heruntergenommen werden.

Danken möchte ich auch noch einmal explizit eQ3 die es überhaupt möglich gemacht haben das ein Community-Mitglied wie ich Zugriff auf den Quellcode von ReGaHss erhalten hat um hier an der Verbesserung von ReGaHss/WebUI mitzuarbeiten. Ich denke das kommt nicht nur den RaspberryMatic Nutzern zu gute sondern sollte auch dann in einer der nächsten CCU2 Firmwares den normalen CCU2 Nutzern zu gute kommen und insgesamt die Stabilität/Flexibilität von ReGaHss/WebUI erhöhen.

Ich möchte daher wirklich noch einmal dazu aufrufen sich hier aktiv an der Fehlersuche bzw. Auflistung von Erweiterungsmöglichkeiten rund um ReGaHss/WebUI zu beteiligen, denn umso mehr Input ich bekomme desto mehr kann ich an ReGaHss für uns alle etwas verändern und gerade die Stabilität dieser wichtigen Komponente des CCU Systems verbessern.
Zuletzt geändert von jmaus am 04.01.2018, 14:18, insgesamt 83-mal geändert.
RaspberryMatic 3.73.9.20240130 @ ProxmoxVE – ~200 Hm-RF/HmIP-RF/HmIPW Geräte + ioBroker + HomeAssistant – GitHub / Sponsors / PayPal / ☕️

fischmir
Beiträge: 972
Registriert: 03.02.2014, 18:04
Wohnort: Münsterland
Hat sich bedankt: 27 Mal
Danksagung erhalten: 8 Mal

Re: Aufruf Bugs/Enhancements – Weiterentwicklung ReGaHss/Web

Beitrag von fischmir » 08.05.2017, 11:18

Hallo jmaus,

das liest sich doch alles sehr gut. Weiter so!

Du kennst diesen Thread?
"Wünsche an Homematic/Verbesserungsvorschläge Firmware"
viewtopic.php?f=19&t=34802

...und die passenden Umfrageergebnisse:
https://goo.gl/UP8SYE

Vielleicht kannst/ möchtest du davon bereits etwas übernehmen oder zumindest kommentieren? Bei 992 Antworten ist die Liste denke ich das Beste was es derzeit gibt.

Viele Grüße,
Christian

Benutzeravatar
jmaus
Beiträge: 9805
Registriert: 17.02.2015, 14:45
System: Alternative CCU (auf Basis OCCU)
Wohnort: Dresden
Hat sich bedankt: 457 Mal
Danksagung erhalten: 1848 Mal
Kontaktdaten:

Re: Aufruf Bugs/Enhancements – Weiterentwicklung ReGaHss/Web

Beitrag von jmaus » 08.05.2017, 11:22

fischmir hat geschrieben: das liest sich doch alles sehr gut. Weiter so!

Du kennst diesen Thread?
[...]
Vielleicht kannst/ möchtest du davon bereits etwas übernehmen oder zumindest kommentieren? Bei 992 Antworten ist die Liste denke ich das Beste was es derzeit gibt.
Ja, all diese Threads/Dinge kenne ich. Trotzdem möchte ich hier einen "Neustart" versuchen bei dem mir nun eben einzelne Dinge bitte gemeldet werden sollten die aber eben besagter "Reproduzierbarkeit des Problems" und "Verhältnismäßigkeit der Änderung" mehr entsprechen als diese doch sehr umfangreiche und lose Liste von Wünschen und Bugs/Fehlern. Ich habe mir die einzelnen Punkte daraus auch schon prinzipiell angeschaut, habe nun aber nur einen Bruchteil davon als relevant bzw. umsetzbar angesehen. Trotzdem bin ich gerne bereit auf die einzelnen Dinge noch einmal einzugehen wenn Sie mir noch einmal explizit vorgetragen/erklärt werden. Denn nur was auf der Liste hier am Schluss landet werde ich auch so mir dann irgendwann geordnet anschauen können.
RaspberryMatic 3.73.9.20240130 @ ProxmoxVE – ~200 Hm-RF/HmIP-RF/HmIPW Geräte + ioBroker + HomeAssistant – GitHub / Sponsors / PayPal / ☕️

BadenPower

Re: Aufruf Bugs/Enhancements – Weiterentwicklung ReGaHss/Web

Beitrag von BadenPower » 08.05.2017, 12:12

Für die Stabilität der ReGaHss wäre es sehr wichtig, dass falsche Methodenaufrufe (Methoden, welche dem Objekt nicht zugeordnet sind) strikt in einem Fehler enden und nicht wie bisher zum Teil einfach nur sinnlose Ergebnisse liefern und unvorhergesehene Aktionen auslösen, welche bis zum Absturz der Rega führen können.
.

Benutzeravatar
jmaus
Beiträge: 9805
Registriert: 17.02.2015, 14:45
System: Alternative CCU (auf Basis OCCU)
Wohnort: Dresden
Hat sich bedankt: 457 Mal
Danksagung erhalten: 1848 Mal
Kontaktdaten:

Re: Aufruf Bugs/Enhancements – Weiterentwicklung ReGaHss/Web

Beitrag von jmaus » 08.05.2017, 12:20

BadenPower hat geschrieben:Für die Stabilität der ReGaHss wäre es sehr wichtig, dass falsche Methodenaufrufe (Methoden, welche dem Objekt nicht zugeordnet sind) strikt in einem Fehler enden und nicht wie bisher zum Teil einfach nur sinnlose Ergebnisse liefern und unvorhergesehene Aktionen auslösen, welche bis zum Absturz der Rega führen können.
Danke für den Hinweis. Hättest du diesbzgl. ein kurzes Beispiel parat damit ich das hier sofort via copy&paste reproduzieren kann?
RaspberryMatic 3.73.9.20240130 @ ProxmoxVE – ~200 Hm-RF/HmIP-RF/HmIPW Geräte + ioBroker + HomeAssistant – GitHub / Sponsors / PayPal / ☕️

BadenPower

Re: Aufruf Bugs/Enhancements – Weiterentwicklung ReGaHss/Web

Beitrag von BadenPower » 08.05.2017, 12:43

Gerne:

Code: Alles auswählen

WriteLine(system.ToFloat());
WriteLine(system.ToFloat("1.4"));
WriteLine(system.ToFloat("a"));
WriteLine("Ende");

Code: Alles auswählen

object lDataPoint = datapoints.Get("BidCos-RF.BidCoS-RF:2.LEVEL");
WriteLine(lDataPoint.Label()); 
WriteLine(lDataPoint.MapDP());
WriteLine("Ende");
Das sind jetzt nur einemal aus dem Kopf schnell zwei Beispiele von hunderten, bei denen der Rückgabewert sinnlos ist, aber das Skript keinen Fehler auswirft, obwohl die Methoden eigentlich nicht auf das Objekt angewandt werden können.
.

BadenPower

Re: Aufruf Bugs/Enhancements – Weiterentwicklung ReGaHss/Web

Beitrag von BadenPower » 08.05.2017, 13:18

"Schön" ist auch das Ergebnis dieses Skript-Schnipsels:

Code: Alles auswählen

string lTest = "<?xml?>";
WriteLine(lTest);
WriteLine("Ende");
HM-Skript1.jpg
.

Benutzeravatar
shartelt
Beiträge: 7421
Registriert: 14.01.2015, 14:59
System: Alternative CCU (auf Basis OCCU)
Hat sich bedankt: 524 Mal
Danksagung erhalten: 752 Mal

Re: Aufruf Bugs/Enhancements – Weiterentwicklung ReGaHss/Web

Beitrag von shartelt » 08.05.2017, 13:56

Hallelluja!
BadenPower schreibt wieder Code ;)

jaja...ich weiss...aber dennoch freu ich mich!

BadenPower

Re: Aufruf Bugs/Enhancements – Weiterentwicklung ReGaHss/Web

Beitrag von BadenPower » 08.05.2017, 14:30

shartelt hat geschrieben:Hallelluja!
BadenPower schreibt wieder Code ;)
jaja...ich weiss...aber dennoch freu ich mich!
Es wäre ja schon schön, wieder einmal funktionierenden Code zu posten, denn es juckt manchmal schon in den Fingern.

Aber das ist von meiner Seite aus jetzt überhaupt nicht mehr notwendig.

Ich kann mich ab sofort entspannt zurücklehnen und einfach mit folgenden Statement antworten:
"Ja, das kann man machen, aber wie es geht dazu solltest Du Jens (lmaus) fragen, denn der hat den Quellcode der Rega und kann damit alle Skript-Fragen hier im Forum perfekt beantworten".

Eine ausführliche Skript-Doku der über 500 Rega-Skript-Methoden brauche ich auch nicht mehr zu veröffentlichen, denn dass kann ja derjenige für die Community tun, welcher alle Inforationen dazu aus offiziellen Quellen in den Händen hält.
.

Familienvater
Beiträge: 7151
Registriert: 31.12.2006, 15:18
System: Alternative CCU (auf Basis OCCU)
Wohnort: Rhein-Main
Danksagung erhalten: 34 Mal

Re: Aufruf Bugs/Enhancements – Weiterentwicklung ReGaHss/Web

Beitrag von Familienvater » 08.05.2017, 14:48

Hi,

ich will hier nur ganz kurz einwerfen, ganz neutral, und bitte diesen Thread nicht "kaputtdiskutieren":
Vielleicht einigt Ihr Euch drauf, das BadenPower trotzdem die Doku erstellt, und vielleicht bei wenigen Fragen zu Internas sich an Jens wendet, damit Jens nach wie vor Zeit hat, sich um die Dinge zu kümmern, für die Jens mit EQ3 "verhandelt" hat.

Aber auch BadenPower könnte sich mit EQ3 in Verbindung setzen, und gegen entsprechende Erklärungen auch Zugang zu den Quellen erhalten, und dann seine "wie auch immer erreichten Kenntnisse" durch einen Blick in den Quellcode verifizieren, und nicht zuletzt: Mehr Augen finden ggf. auch mehr versteckte "Bugs" im Quellcode.

Der Familienvater

Antworten

Zurück zu „HomeMatic - bekannte Bugs“