Genau. Am besten sollte man dann auch gleich noch testen welche metadaten es sonst noch so gibt die ggf resettet gehören bei einem wechsel und das typ unabhängig. Denn eine zeichenketten sysvar braucht ja z.b. gar kein min/max und dann muss das halt weg. Bastelst du da ein PR?jp112sdl hat geschrieben: ↑21.01.2023, 08:09Quasi hier?
https://github.com/eq-3/occu/blob/maste ... #L813-L844
Müsste dann wohl mit in 0097 rein, weil der Patch den betreffenden Block schon modifiziert
ReGaHss-Inkonsistenzen bzgl. DP ValueType() vs MIN/MAX MetaDaten
Moderatoren: jmaus, Co-Administratoren
- jmaus
- Beiträge: 10265
- Registriert: 17.02.2015, 14:45
- System: Alternative CCU (auf Basis OCCU)
- Wohnort: Dresden
- Hat sich bedankt: 519 Mal
- Danksagung erhalten: 2181 Mal
- Kontaktdaten:
Re: ReGaHss-Inkonsistenzen bzgl. DP ValueType() vs MIN/MAX MetaDaten
RaspberryMatic 3.81.5.20250326 @ ProxmoxVE – ~200 Hm-RF/HmIP-RF/HmIPW Geräte + ioBroker + HomeAssistant – GitHub / Sponsors / PayPal / 

-
- Beiträge: 12303
- Registriert: 20.11.2016, 20:01
- Hat sich bedankt: 874 Mal
- Danksagung erhalten: 2205 Mal
- Kontaktdaten:
Re: ReGaHss-Inkonsistenzen bzgl. DP ValueType() vs MIN/MAX MetaDaten
Würde ich, aber vorher solltest du festlegen, welche Werte für MIN und MAX je nach SV-Typ gesetzt werden sollten.
An sich ist es wohl nur der Variablentyp "Zahl", bei dem man überhaupt einen ValueMin und einen ValueMax (in der WebUI) definieren kann.
Für alle anderen Typen könnte grundsätzlich obj.ValueMin=null;obj.ValueMax=null; stehen.
- Black
- Beiträge: 5798
- Registriert: 12.09.2015, 22:31
- System: Alternative CCU (auf Basis OCCU)
- Wohnort: Wegberg
- Hat sich bedankt: 482 Mal
- Danksagung erhalten: 1215 Mal
- Kontaktdaten:
Re: ReGaHss-Inkonsistenzen bzgl. DP ValueType() vs MIN/MAX MetaDaten
Wechsel des types der sysvar z.b. muss auch zu Anpassungen in den singleconditions führen, in denen die verwendet wird.
Ist sonst einer der Gründe weshalb webui Programme dann nicht mehr triggern
Black
Ist sonst einer der Gründe weshalb webui Programme dann nicht mehr triggern
Black
Wenn das Fernsehprogramm immer mehr durch nervende Werbung unterbrochen wird und der Radiomoderator nur noch Müll erzählt, ist es besser, die Zeit für sinnvolle Dinge zu nutzen -
mal aufs Klo zu gehen, ein Bier zu holen oder einfach mal den roten AUS-Knopf zu drücken. Klick - und weg
Script Time Scheduler V1.3
AstroSteuerung über Zeitmodul flexibel mit Offset / spätestens, frühestens
SDV 5.03.01 Das umfassende Entwicklungs und Diagnosetool für Homematik
Selektive Backups - Nützliche Dinge, die die WebUI nicht kann
Intel NUC6 Celeron 16GB mit 512GB SSD unter Proxxmox mit insgesamt 5 VM: 2 x bloatwarebefreiter Raspberrymatik, 2 x IOBroker als Middleware und einer MariaDB zur Archivierung. Verbrauch: 6W
technical contribution against annoying advertising
mal aufs Klo zu gehen, ein Bier zu holen oder einfach mal den roten AUS-Knopf zu drücken. Klick - und weg
Script Time Scheduler V1.3
AstroSteuerung über Zeitmodul flexibel mit Offset / spätestens, frühestens
SDV 5.03.01 Das umfassende Entwicklungs und Diagnosetool für Homematik
Selektive Backups - Nützliche Dinge, die die WebUI nicht kann
Intel NUC6 Celeron 16GB mit 512GB SSD unter Proxxmox mit insgesamt 5 VM: 2 x bloatwarebefreiter Raspberrymatik, 2 x IOBroker als Middleware und einer MariaDB zur Archivierung. Verbrauch: 6W
technical contribution against annoying advertising
-
- Beiträge: 506
- Registriert: 11.02.2020, 12:14
- System: Alternative CCU (auf Basis OCCU)
- Hat sich bedankt: 119 Mal
- Danksagung erhalten: 80 Mal
Re: ReGaHss-Inkonsistenzen bzgl. DP ValueType() vs MIN/MAX MetaDaten
Wäre es dann nicht sinnvoller, das Ändern der Variablen ganz zu streichen? Ob ich eine Variable ändere oder (lösche und) neu anlege, macht kaum einen Unterschied.
Ein Vorteil, dass die ja im Programm bleibt wenn man sie nur ändert, sehe ich nicht. Muss das Programm ja eh ändern, wenn ich nun z.B. von Helligkeit >200 auf Helligkeit "wahr" wechsel.
Ein Vorteil, dass die ja im Programm bleibt wenn man sie nur ändert, sehe ich nicht. Muss das Programm ja eh ändern, wenn ich nun z.B. von Helligkeit >200 auf Helligkeit "wahr" wechsel.
- jmaus
- Beiträge: 10265
- Registriert: 17.02.2015, 14:45
- System: Alternative CCU (auf Basis OCCU)
- Wohnort: Dresden
- Hat sich bedankt: 519 Mal
- Danksagung erhalten: 2181 Mal
- Kontaktdaten:
Re: ReGaHss-Inkonsistenzen bzgl. DP ValueType() vs MIN/MAX MetaDaten
Prinzipiell geb ich dir da recht. Aber das Feature würde ich jetzt nicht einfach streichen wollen, gerade auch weil man ja nicht jede Systemvariable nun in einem WebUI Programm nutzt und da es durchaus gut/sinnvoll sein kann wenn man da einfach den Typ ändern kann ohne das sich die ISEid ändert. Ich würde eher dafür plädieren einen Check einzubauen ob die SysVar in einem Programm verwendet wird und dann eine Warnung ausspucken wenn das so ist.Silverstar hat geschrieben: ↑21.01.2023, 15:50Wäre es dann nicht sinnvoller, das Ändern der Variablen ganz zu streichen? Ob ich eine Variable ändere oder (lösche und) neu anlege, macht kaum einen Unterschied.
RaspberryMatic 3.81.5.20250326 @ ProxmoxVE – ~200 Hm-RF/HmIP-RF/HmIPW Geräte + ioBroker + HomeAssistant – GitHub / Sponsors / PayPal / 

- MichaelN
- Beiträge: 11297
- Registriert: 27.04.2020, 10:34
- System: CCU
- Hat sich bedankt: 789 Mal
- Danksagung erhalten: 1946 Mal
Re: ReGaHss-Inkonsistenzen bzgl. DP ValueType() vs MIN/MAX MetaDaten
Es sollte aber doch nicht viel aufwendiger sein gleich die Programme zu korrigieren. Ich glaube den Code dafür bekomme sogar ich noch hin.
LG, Michael.
Wenn du eine App zur Bedienung brauchst, dann hast du kein Smarthome.
Wettervorhersage über AccuWeather oder OpenWeatherMap+++ Rollladensteuerung 2.0 +++ JSON-API-Ausgaben auswerten +++ undokumentierte Skript-Befehle und Debugging-Tipps +++
Wenn du eine App zur Bedienung brauchst, dann hast du kein Smarthome.
Wettervorhersage über AccuWeather oder OpenWeatherMap+++ Rollladensteuerung 2.0 +++ JSON-API-Ausgaben auswerten +++ undokumentierte Skript-Befehle und Debugging-Tipps +++
- jmaus
- Beiträge: 10265
- Registriert: 17.02.2015, 14:45
- System: Alternative CCU (auf Basis OCCU)
- Wohnort: Dresden
- Hat sich bedankt: 519 Mal
- Danksagung erhalten: 2181 Mal
- Kontaktdaten:
Re: ReGaHss-Inkonsistenzen bzgl. DP ValueType() vs MIN/MAX MetaDaten
Na dann her mit dem PR

RaspberryMatic 3.81.5.20250326 @ ProxmoxVE – ~200 Hm-RF/HmIP-RF/HmIPW Geräte + ioBroker + HomeAssistant – GitHub / Sponsors / PayPal / 

- MichaelN
- Beiträge: 11297
- Registriert: 27.04.2020, 10:34
- System: CCU
- Hat sich bedankt: 789 Mal
- Danksagung erhalten: 1946 Mal
Re: ReGaHss-Inkonsistenzen bzgl. DP ValueType() vs MIN/MAX MetaDaten
Mit der Github-Bürokratie stehe ich immer noch auf Kriegsfuß. Ich habe mein bestes gegeben: https://github.com/jens-maus/RaspberryMatic/pull/2183
Folgender Code eingefügt in system.fn in Zeile https://github.com/eq-3/occu/blob/18bbb ... em.fn#L851
Code: Alles auswählen
string SingleCond; object SingleCondObjekt;
foreach(SingleCond,dom.GetObject(ID_SCONDITIONS).EnumIDs() ){
SingleCondObjekt = dom.GetObject(SingleCond);
if (SingleCondObjekt) {
if (((SingleCondObjekt.LeftVal() == sv.ID() ) && (SingleCondObjekt.LeftValType()== ivtSystemId ) )) {
if ((ist == istAlarm) || (ist == istBool)) {
SingleCondObjekt.ConditionType(1);
SingleCondObjekt.RightVal1ValType(ivtBinary); SingleCondObjekt.RightVal1(false);
SingleCondObjekt.RightVal2ValType(ivtBinary); SingleCondObjekt.RightVal2(false);
} elseif (ist == istGeneric) {
SingleCondObjekt.ConditionType(8);
SingleCondObjekt.RightVal1ValType(ivtFloat); SingleCondObjekt.RightVal1(system.GetVar("iMinVal"));
SingleCondObjekt.RightVal2ValType(ivtFloat); SingleCondObjekt.RightVal2(0.0);
} elseif (ist == istEnum) {
SingleCondObjekt.ConditionType(1);
SingleCondObjekt.RightVal1ValType(ivtInteger); SingleCondObjekt.RightVal1(0);
SingleCondObjekt.RightVal2ValType(ivtInteger); SingleCondObjekt.RightVal2(0);
} elseif (ist == istChar8859) {
SingleCondObjekt.ConditionType(1);
SingleCondObjekt.RightVal1ValType(ivtString); SingleCondObjekt.RightVal1("");
SingleCondObjekt.RightVal2ValType(ivtString); SingleCondObjekt.RightVal2("");
}
}
}
}
Getestet mit FW 3.67.10.20230119
Programm vorher: Programm nach dem Ändern der Systemvariable auf Typ Zahl
LG, Michael.
Wenn du eine App zur Bedienung brauchst, dann hast du kein Smarthome.
Wettervorhersage über AccuWeather oder OpenWeatherMap+++ Rollladensteuerung 2.0 +++ JSON-API-Ausgaben auswerten +++ undokumentierte Skript-Befehle und Debugging-Tipps +++
Wenn du eine App zur Bedienung brauchst, dann hast du kein Smarthome.
Wettervorhersage über AccuWeather oder OpenWeatherMap+++ Rollladensteuerung 2.0 +++ JSON-API-Ausgaben auswerten +++ undokumentierte Skript-Befehle und Debugging-Tipps +++
- jmaus
- Beiträge: 10265
- Registriert: 17.02.2015, 14:45
- System: Alternative CCU (auf Basis OCCU)
- Wohnort: Dresden
- Hat sich bedankt: 519 Mal
- Danksagung erhalten: 2181 Mal
- Kontaktdaten:
Re: ReGaHss-Inkonsistenzen bzgl. DP ValueType() vs MIN/MAX MetaDaten
Hier nur kurz die Nachinfo das ich inzwischen die entsprechenden Änderungen in der WebUI bzw. im hm_startup file von ReGaHss umgesetzt habe um die Datentyp overflow/underflow Probleme zu lösen die dazu geführt haben das 1. die TIME_OF_OPERATION Datenpunkte bei einem HmIP-SWSD nicht die korrekten Werte zurückgeliefert hat und 2. auch die RSSI_XXXXX Datenpunkte innerhalb von ReGaHss die RSSI Werte immer positiv ausgegeben haben und man die immer via subtrahieren von 256 auf den korrekten Wert zu schieben der via XMLRPC aber korrekt ausgegeben wurde. Siehe hier:
https://github.com/jens-maus/RaspberryM ... 933592d231
Diese Anpassungen sollte diese Probleme meinen Tests nach nun beseitigen. Es fehlt jetzt nur noch die entsprechende ReGaHss Änderung das der korrekte Datentyp schon beim Anlernen eines Gerätes für alle Datenpunkte korrekt gesetzt wird und nicht für RSSI_XXX und TIME_OF_OPERATION standardmäßig auf ivtByte gesetzt wird (was eben falsch war). Diese Änderung wird aber demnächst kommen.
Für interessierte Tester die einen HmIP-SWSD haben oder sich schon immer gewundert haben warum die RSSI_XXXX Datenpunkte die RSSI Werte nie im Minusbereich ausgegeben hatte sollte mit dem nächsten nightly snapshot diese Probleme beseitigt sein. Gerne bitte schön breit testen und einfach mal testen ob die RSSI Werte nun passen und auch die Ausgabe/Anzeige des TIME_OF_OPERATION Datenpunktes nun passt.
Auch sollte nach dem ersten Starten mit der neuen nightly snapshot dann der folgende ReGa-Skript keinerlei HSSDP Datenpunkt mehr anzeigen der dem ivtByte Datenpunkt zugeordnet ist:
https://github.com/jens-maus/RaspberryM ... 933592d231
Diese Anpassungen sollte diese Probleme meinen Tests nach nun beseitigen. Es fehlt jetzt nur noch die entsprechende ReGaHss Änderung das der korrekte Datentyp schon beim Anlernen eines Gerätes für alle Datenpunkte korrekt gesetzt wird und nicht für RSSI_XXX und TIME_OF_OPERATION standardmäßig auf ivtByte gesetzt wird (was eben falsch war). Diese Änderung wird aber demnächst kommen.
Für interessierte Tester die einen HmIP-SWSD haben oder sich schon immer gewundert haben warum die RSSI_XXXX Datenpunkte die RSSI Werte nie im Minusbereich ausgegeben hatte sollte mit dem nächsten nightly snapshot diese Probleme beseitigt sein. Gerne bitte schön breit testen und einfach mal testen ob die RSSI Werte nun passen und auch die Ausgabe/Anzeige des TIME_OF_OPERATION Datenpunktes nun passt.
Auch sollte nach dem ersten Starten mit der neuen nightly snapshot dann der folgende ReGa-Skript keinerlei HSSDP Datenpunkt mehr anzeigen der dem ivtByte Datenpunkt zugeordnet ist:
Code: Alles auswählen
WriteLine("Searching for invalid ivtByte typed HSSDPs:");
string sDP;
foreach(sDP, dom.GetObject(ID_DATAPOINTS).EnumIDs()) {
object obj = dom.GetObject(sDP.ToInteger());
if((obj) && (obj.Type() == OT_HSSDP) && (obj.ValueType() == ivtByte)) {
WriteLine(obj.ID() # " - " # obj.ValueType() # "/" # obj.ValueSubType() # " - " # obj.Name() # " - " # obj.Value() # " MIN:" # obj.ValueMin() # " MAX: " # obj.ValueMax());
! obj.ValueType(ivtInteger);
! obj.ValueSubType(istGeneric);
}
}
WriteLine("DONE");
RaspberryMatic 3.81.5.20250326 @ ProxmoxVE – ~200 Hm-RF/HmIP-RF/HmIPW Geräte + ioBroker + HomeAssistant – GitHub / Sponsors / PayPal / 

- Henke
- Beiträge: 1747
- Registriert: 27.06.2022, 20:51
- System: CCU
- Hat sich bedankt: 178 Mal
- Danksagung erhalten: 377 Mal
Re: ReGaHss-Inkonsistenzen bzgl. DP ValueType() vs MIN/MAX MetaDaten
Code: Alles auswählen
WriteLine("Searching for invalid ivtByte typed HSSDPs:")
Was ist mit dem folgendem Datenpunkten:
Code: Alles auswählen
1504 - 8/24 - HmIP-RF.0010DD899E5483:0.ERROR_CODE - 0 MIN:0 MAX: 255
3115 - 8/24 - VirtualDevices.INT0000002:0.ERROR_CODE - 0 MIN:0 MAX: 255