Aufruf Bugs/Enhancements – Weiterentwicklung ReGaHss/WebUI

Fehler in Firmware und WebUI & Workarounds

Moderator: Co-Administratoren

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

Re: Aufruf Bugs/Enhancements – Weiterentwicklung ReGaHss/Web

Beitrag von jmaus » 17.05.2017, 10:24

BadenPower hat geschrieben:Skriptvariablen:
Typ-Prüfung bricht mit Fehler ab bei Variabletyp "var";
.UserSharedObjects() erzeugt Variabletyp "var".
Danke für den Hinweis, hab ich mir angeschaut. UserSharedObjects() gibt nicht "var" als typ zurück sondern einen bisher nicht via Type/VarType erkennbaren Variablentyp "idarray" – da lag der Fehler. In der nächsten Beta sollte man nun in der Lage sein diesen Typ zumindest via Type/VarType zu erkennen.
RaspberryMatic 3.75.6.20240316 @ 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 » 17.05.2017, 11:00

Fehlerhafte Verwendung von Methoden als Parameter in Schleifen erzeugt keinen Fehler im Log.

Dieser fehlerhafte Code wird mit einem Fehler im Log und Skriptabbruch honoriert:

Code: Alles auswählen

object lObj = dom.GetObject("DOM");
string lEnum = "";
WriteLine(lObj);
WriteLine(lObj.Enum());
WriteLine("Ende");
erzeugt:

Code: Alles auswählen

May 17 10:47:23 homematic-ccu2 local0.err ReGaHss: Error: IseESP::ExecError= Execution failed: [-1] 0 0x00 [0] 1 0x01 [1] 0 0x00 [2] 1 0x01 [3] 0 0x00 [4] 1 0x01  [../Platform/DOM/iseESPexec.cpp (11622)]
Dieser fehlerhafte Code läuft durch ohne Fehlermeldung:

Code: Alles auswählen

object lObj = dom.GetObject("DOM");
string lEnum = "";
WriteLine(lObj);
foreach(lEnum,lObj.Enum())
{
  WriteLine(lEnum);
}
WriteLine("Ende");
.

BadenPower

Re: Aufruf Bugs/Enhancements – Weiterentwicklung ReGaHss/Web

Beitrag von BadenPower » 17.05.2017, 11:18

jmaus hat geschrieben: UserSharedObjects() gibt nicht "var" als typ zurück sondern einen bisher nicht via Type/VarType erkennbaren Variablentyp "idarray" – da lag der Fehler. In der nächsten
Ich hatte mich schon gewundert, da ich die Skriptvariable bereits als idarray deklariert hatte und nach der Zuweisung eben eine Typprüfung nicht moglich war.


Da kommt dann aber gleich die nächste Ungereimtheit:

Die Skriptvariabletypen

boolean
integer
real
string
time
xml

kann man nach der Deklariation unterscheiden, da sie Standardwerte automatisch zugewiesen bekommen.

idarray
object
var

erhalten alle null und können daher nicht unterschieden werden.

Ist nicht weiter tragisch, wenn man zuerst eine Prüfung auf null macht. Es macht aber keinen Sinn Variabletypen ohne Wertzuweisung expliziet deklarieren zu können, wenn man sie dann ohne Wertzuweisung gar nicht unterscheiden kann.

So, das reicht vorerst einmal an Fehlermeldungen. Mal schauen was in der CCU-Firmware tatsächlich landet.
.

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

Re: Aufruf Bugs/Enhancements – Weiterentwicklung ReGaHss/Web

Beitrag von jmaus » 17.05.2017, 14:10

BadenPower hat geschrieben:
jmaus hat geschrieben: UserSharedObjects() gibt nicht "var" als typ zurück sondern einen bisher nicht via Type/VarType erkennbaren Variablentyp "idarray" – da lag der Fehler. In der nächsten
Ich hatte mich schon gewundert, da ich die Skriptvariable bereits als idarray deklariert hatte und nach der Zuweisung eben eine Typprüfung nicht moglich war.

Da kommt dann aber gleich die nächste Ungereimtheit:
Du wirst sicherlich noch viel mehr davon finden. Die ReGa-Skriptsprache ist leider nicht so durchdacht wie es auf den ersten Anschein vielleicht aussieht. Ob ich alle davon reparieren kann bzw. ob das auch Sinn macht alles davon zu reparieren sei einmal dahin gestellt.
BadenPower hat geschrieben: Die Skriptvariabletypen

boolean
integer
real
string
time
xml

kann man nach der Deklariation unterscheiden, da sie Standardwerte automatisch zugewiesen bekommen.

idarray
object
var

erhalten alle null und können daher nicht unterschieden werden.

Ist nicht weiter tragisch, wenn man zuerst eine Prüfung auf null macht. Es macht aber keinen Sinn Variabletypen ohne Wertzuweisung expliziet deklarieren zu können, wenn man sie dann ohne Wertzuweisung gar nicht unterscheiden kann.
Bei 'idarray' bzw. 'var' ist das kein Problem bzw. hab ich das jetzt schon umgesetzt. Bei 'object' ist das aber z.B. nicht ganz so einfach weil dort z.B. "obj.Type()" schon existiert und bei Aufruf dann z.B. auf das eigentliche Objekt angewendet wird und nicht auf die eigentliche variable. D.h. also das folgender Code nicht ganz eineindeutig wäre:

Code: Alles auswählen

object obj = dom.GetObject("DOM");
WriteLine(obj.Type());
Weil momentan gibt das "9" zurück was einer internen Objektbeschreibung entspricht. Bei anderen variablen ist es aber immer so das das .Type() eben den namen des variablentypes zurück gibt (bei 'boolean' gibt .Type() eben 'boolean') zurück. .VarType() ist zwar noch nicht belegt aber alleine Das macht ggf. wenig sinn?!?
BadenPower hat geschrieben: So, das reicht vorerst einmal an Fehlermeldungen. Mal schauen was in der CCU-Firmware tatsächlich landet.
Warum soll das reichen? Mach weiter so, denn das meiste was du hier gelistet hast habe ich in der Tat bereits repariert. Du solltest also vielleicht mal dazu übergehen die nächsten Betaversionen von ReGaHss zu benutzen damit du darauf basierend dann auch Feedback geben kannst ob es denn jetzt funktioniert, oder nicht.
RaspberryMatic 3.75.6.20240316 @ 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 » 17.05.2017, 15:50

jmaus hat geschrieben:Du wirst sicherlich noch viel mehr davon finden.

Mehr als genug um hier noch Seiten zu füllen.
jmaus hat geschrieben:Weil momentan gibt das "9" zurück was einer internen Objektbeschreibung entspricht.
Logisch, dass das gepostete Beispiel 9 zurück geben muß.
Alles andere wäre ein zusätzlicher Fehler, denn das Objekt DOM ist ja vom Typ OT_DOM was eben 9 entspricht.

Ein Objekt vom Typ Gerät gibt selbstverständlich den Konstantenwert OT_DEVICE aus, was dem Integerwert 17 entspricht und ein XML-Knotenwert eben 16777217 also OT_XMLNODE.
jmaus hat geschrieben:Warum soll das reichen? Mach weiter so, denn das meiste was du hier gelistet hast habe ich in der Tat bereits repariert.
Für den Moment reicht es.
Es war für die Community und nicht für mich.

Ich habe nichts davon, wenn Du die Fehler beseitigst, welche ich Dir poste. Und wenn ich noch hundert weitere liste.

Und wenn ich sage ich habe nichts davon, dann meine ich das auch so, denn:

1. Da ich die Fehler und Stolperfallen kenne, kann ich sie problemlos in den Skripten umgehen.

2. Ich kann dadurch der Community nicht umfangreicher zur Lösungsfindung und Fehlerfindung beiseitestehen als bisher und auch die Entwicklung meiner Projekte, welche für die Community gedacht sind, erleben auch keine Neuerungen durch die Änderungen der RegaHss.

Mein Wissen, welches ich für die Community produktiv einsetzen kann, stagniert auch wenn ich Dir weiterhin zur Seite stehe. Zu deutsch, alle profitieren, aber ich bleibe auf dem gleichen Stand, vor allem im Bezug auf meine Arbeit für die Gemeinschaft. Und da muss ich mir noch im Klaren werden, ob dies auf Dauer sinnvoll ist und ob ich das wirklich will.
.

Cash
Beiträge: 1184
Registriert: 09.01.2016, 17:42
Wohnort: Sauerland
Hat sich bedankt: 1 Mal
Danksagung erhalten: 1 Mal

Re: Aufruf Bugs/Enhancements – Weiterentwicklung ReGaHss/Web

Beitrag von Cash » 18.05.2017, 12:15

@BadenPower naja Du könntest mit der Beta Dein Mega Kalender Script erweitern da es kein Limit bei der Größe mehr gibt, wenn ich das richtig überschaue :mrgreen: oder bei neuen Scripten musst Du Dir keine großen Gedanken um Variablennamen machen und kannst sie mit sprechenden Namen versehen :D

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

Re: Aufruf Bugs/Enhancements – Weiterentwicklung ReGaHss/Web

Beitrag von jmaus » 18.05.2017, 21:06

Hallo Zusammen,

hier nur der kurze Hinweise das inzwischen beta9 von ReGaHss wie im Folgenden Beitrag beschrieben zur Verfügung steht:

viewtopic.php?f=26&t=36623&p=363485#p363485

Darin wurden wieder einige der hier genannten Probleme beseitigt und auch Erweiterungen durchgeführt.

Ich bitte um ausführliches Testen! ;)
RaspberryMatic 3.75.6.20240316 @ ProxmoxVE – ~200 Hm-RF/HmIP-RF/HmIPW Geräte + ioBroker + HomeAssistant – GitHub / Sponsors / PayPal / ☕️

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

Re: Aufruf Bugs/Enhancements – Weiterentwicklung ReGaHss/Web

Beitrag von jmaus » 22.06.2017, 10:20

Hallo Zusammen,

hier nur noch der kurze Hinweis das ich die Feature/Bugliste auf Seite 1 einmal aktualisiert bzw. mit dem aktuellen Stand abgeglichen habe. Wenn jemand noch zwecks aktueller Bugs oder sinnvoller Features hinweise zu ReGaHss/WebUI hat bitte die hier melden damit ich mir das anschauen und ggf. mit auf die Liste setzen kann.

Danke!
RaspberryMatic 3.75.6.20240316 @ ProxmoxVE – ~200 Hm-RF/HmIP-RF/HmIPW Geräte + ioBroker + HomeAssistant – GitHub / Sponsors / PayPal / ☕️

robsdobs
Beiträge: 510
Registriert: 08.08.2015, 22:52
Danksagung erhalten: 1 Mal

Re: Aufruf Bugs/Enhancements – Weiterentwicklung ReGaHss/Web

Beitrag von robsdobs » 12.07.2017, 10:05

Hallo,

erst nochmal Vielen Dank. Die neue ReGaHss läuft viel stabiler.

Ich hätte noch was für die Wunschliste.

Für den Typ String hab ich heute nach einer Reihe Methoden gesucht und leider nix in der Doku gefunden:

Code: Alles auswählen

string output = text.Trim(); !entfernt alle führenden und endende Leerzeichen, Tabulatoren (\t), Zeilenumbrüche (\n, \r) aus dem String
string output = text.Trim(string s); !entfernt alle führenden und endende Zeichen aus dem String, welche im String s vorkommen
string output = text.ToLower(); !wandelt alle Zeichen im String in Kleinbuchstaben um
string output = text.ToUpper(); !wandelt alle Zeichen im String in Großbuchstaben um
boolean out = text.StartsWith(string s); !gibt wahr zurück, wenn der Text mit der angegebenen Zeichenfolge beginnt
boolean out = text.EndsWith(string s); !gibt wahr zurück, wenn der Text mit der angegebenen Zeichenfolge endet

!eher Nice to have wäre
boolean out = text.Contains(string s); !gibt wahr zurück, wenn der Text mit der angegebenen Zeichenfolge vorkommt.
!Das ist äquivalent zu (text.Find(string s) >=0), aber macht die Scripte etwas lesbarer.
Entschuldigt, wenn es eine der Methoden schon gibt. Ich ahb die Script Doku durchsucht aber nichts gefunden.

Danke & Gruß
Robert
sehr selten im Forum

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

Re: Aufruf Bugs/Enhancements – Weiterentwicklung ReGaHss/Web

Beitrag von jmaus » 12.07.2017, 11:00

robsdobs hat geschrieben: erst nochmal Vielen Dank. Die neue ReGaHss läuft viel stabiler.
Danke für die Blumen. Im Übrigen gibt es inzwischen auch schon wieder eine neuere Beta15 version von ReGaHss die noch zwei weitere wichtige Bugs beseitigt. Wäre schön wenn du auch so stark getestet werden könnte.
Ich hätte noch was für die Wunschliste.

Für den Typ String hab ich heute nach einer Reihe Methoden gesucht und leider nix in der Doku gefunden:

Code: Alles auswählen

[...]
Danke für die ausführliche Beschreibung deiner Wünsche. Habe ich in die Liste aufgenommen und werde ich dann bei weiteren Arbeiten an ReGaHss im Hinterkopf behalten. Falls es noch mehr solcher simplen Wünsche gibt, immer her damit :)
RaspberryMatic 3.75.6.20240316 @ ProxmoxVE – ~200 Hm-RF/HmIP-RF/HmIPW Geräte + ioBroker + HomeAssistant – GitHub / Sponsors / PayPal / ☕️

Antworten

Zurück zu „HomeMatic - bekannte Bugs“