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.BadenPower hat geschrieben:Skriptvariablen:
Typ-Prüfung bricht mit Fehler ab bei Variabletyp "var";
.UserSharedObjects() erzeugt Variabletyp "var".
Aufruf Bugs/Enhancements – Weiterentwicklung ReGaHss/WebUI
Moderator: Co-Administratoren
- jmaus
- Beiträge: 9848
- Registriert: 17.02.2015, 14:45
- System: Alternative CCU (auf Basis OCCU)
- Wohnort: Dresden
- Hat sich bedankt: 462 Mal
- Danksagung erhalten: 1863 Mal
- Kontaktdaten:
Re: Aufruf Bugs/Enhancements – Weiterentwicklung ReGaHss/Web
RaspberryMatic 3.75.6.20240316 @ ProxmoxVE – ~200 Hm-RF/HmIP-RF/HmIPW Geräte + ioBroker + HomeAssistant – GitHub / Sponsors / PayPal /
Re: Aufruf Bugs/Enhancements – Weiterentwicklung ReGaHss/Web
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:
erzeugt:
Dieser fehlerhafte Code läuft durch ohne Fehlermeldung:
.
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");
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)]
Code: Alles auswählen
object lObj = dom.GetObject("DOM");
string lEnum = "";
WriteLine(lObj);
foreach(lEnum,lObj.Enum())
{
WriteLine(lEnum);
}
WriteLine("Ende");
Re: Aufruf Bugs/Enhancements – Weiterentwicklung ReGaHss/Web
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.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
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.
.
- jmaus
- Beiträge: 9848
- Registriert: 17.02.2015, 14:45
- System: Alternative CCU (auf Basis OCCU)
- Wohnort: Dresden
- Hat sich bedankt: 462 Mal
- Danksagung erhalten: 1863 Mal
- Kontaktdaten:
Re: Aufruf Bugs/Enhancements – Weiterentwicklung ReGaHss/Web
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: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.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
Da kommt dann aber gleich die nächste Ungereimtheit:
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: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.
Code: Alles auswählen
object obj = dom.GetObject("DOM");
WriteLine(obj.Type());
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.BadenPower hat geschrieben: So, das reicht vorerst einmal an Fehlermeldungen. Mal schauen was in der CCU-Firmware tatsächlich landet.
RaspberryMatic 3.75.6.20240316 @ ProxmoxVE – ~200 Hm-RF/HmIP-RF/HmIPW Geräte + ioBroker + HomeAssistant – GitHub / Sponsors / PayPal /
Re: Aufruf Bugs/Enhancements – Weiterentwicklung ReGaHss/Web
jmaus hat geschrieben:Du wirst sicherlich noch viel mehr davon finden.
Mehr als genug um hier noch Seiten zu füllen.
Logisch, dass das gepostete Beispiel 9 zurück geben muß.jmaus hat geschrieben:Weil momentan gibt das "9" zurück was einer internen Objektbeschreibung entspricht.
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.
Für den Moment reicht es.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.
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.
.
-
- 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
@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 oder bei neuen Scripten musst Du Dir keine großen Gedanken um Variablennamen machen und kannst sie mit sprechenden Namen versehen
- jmaus
- Beiträge: 9848
- Registriert: 17.02.2015, 14:45
- System: Alternative CCU (auf Basis OCCU)
- Wohnort: Dresden
- Hat sich bedankt: 462 Mal
- Danksagung erhalten: 1863 Mal
- Kontaktdaten:
Re: Aufruf Bugs/Enhancements – Weiterentwicklung ReGaHss/Web
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!
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 /
- jmaus
- Beiträge: 9848
- Registriert: 17.02.2015, 14:45
- System: Alternative CCU (auf Basis OCCU)
- Wohnort: Dresden
- Hat sich bedankt: 462 Mal
- Danksagung erhalten: 1863 Mal
- Kontaktdaten:
Re: Aufruf Bugs/Enhancements – Weiterentwicklung ReGaHss/Web
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!
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 /
Re: Aufruf Bugs/Enhancements – Weiterentwicklung ReGaHss/Web
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:
Entschuldigt, wenn es eine der Methoden schon gibt. Ich ahb die Script Doku durchsucht aber nichts gefunden.
Danke & Gruß
Robert
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.
Danke & Gruß
Robert
sehr selten im Forum
- jmaus
- Beiträge: 9848
- Registriert: 17.02.2015, 14:45
- System: Alternative CCU (auf Basis OCCU)
- Wohnort: Dresden
- Hat sich bedankt: 462 Mal
- Danksagung erhalten: 1863 Mal
- Kontaktdaten:
Re: Aufruf Bugs/Enhancements – Weiterentwicklung ReGaHss/Web
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.robsdobs hat geschrieben: erst nochmal Vielen Dank. Die neue ReGaHss läuft viel stabiler.
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 damitIch 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
[...]
RaspberryMatic 3.75.6.20240316 @ ProxmoxVE – ~200 Hm-RF/HmIP-RF/HmIPW Geräte + ioBroker + HomeAssistant – GitHub / Sponsors / PayPal /