RaspberryMatic
RaspberryMatic copied to clipboard
ReGaHSS: .IsTypeOf() -> Fehlerhafte Rückgabe bei verschiedenen Objekttypen
Describe the issue you are experiencing
Wird die Methode .IsTypeOf() auf ein Objekt des Objektyps OT_DEVICES angewandt und dabei auf den Objekttyp OT_DEVICE geprüft, dann wird fälschlicherweise true mit dem Variabletyp boolean zurückgegeben. Erwartet würde die Rückgabe von false mit dem Variabletyp boolean, da ansonsten OT_DEVICE ein Vorfahre von OT_DEVICES sein müsste.
Describe the behavior you expected
Erwartet würde, dass die Prüfung das korrekte Ergebnis liefert.
Steps to reproduce the issue
Ausführung des folgenden Skriptes unter "Skript testen":
WriteLine("Start");
WriteLine(dom.BuildLabel());
object lObjDevices;
object lObjDevice;
object lObjEnum;
lObjDevices = dom.CreateObject(OT_DEVICES,"objectDEVICES");
lObjDevice = dom.CreateObject(OT_DEVICE,"objectDEVICE");
lObjEnum = dom.CreateObject(OT_ENUM,"objectENUM");
if((lObjDevices) && (lObjDevice) && (lObjEnum))
{
WriteLine("------------------------------------------------------------");
WriteLine(lObjDevices.ID());
WriteLine(lObjDevices.Name());
WriteLine(lObjDevices.TypeName());
WriteLine("prüfe auf OT_DEVICES: " # lObjDevices.IsTypeOf(OT_DEVICES));
WriteLine("prüfe auf OT_DEVICE: " # lObjDevices.IsTypeOf(OT_DEVICE));
WriteLine("prüfe auf OT_ENUM: " # lObjDevices.IsTypeOf(OT_ENUM));
WriteLine("------------------------------------------------------------");
WriteLine(lObjDevice.ID());
WriteLine(lObjDevice.Name());
WriteLine(lObjDevice.TypeName());
WriteLine("prüfe auf OT_DEVICES: " # lObjDevice.IsTypeOf(OT_DEVICES));
WriteLine("prüfe auf OT_DEVICE: " # lObjDevice.IsTypeOf(OT_DEVICE));
WriteLine("prüfe auf OT_ENUM: " # lObjDevice.IsTypeOf(OT_ENUM));
WriteLine("------------------------------------------------------------");
WriteLine(lObjEnum.ID());
WriteLine(lObjEnum.Name());
WriteLine(lObjEnum.TypeName());
WriteLine("prüfe auf OT_DEVICES: " # lObjEnum.IsTypeOf(OT_DEVICES));
WriteLine("prüfe auf OT_DEVICE: " # lObjEnum.IsTypeOf(OT_DEVICE));
WriteLine("prüfe auf OT_ENUM: " # lObjEnum.IsTypeOf(OT_ENUM));
WriteLine("------------------------------------------------------------");
}
if(lObjDevices)
{
WriteLine(dom.DeleteObject(lObjDevices));
}
if(lObjDevice)
{
WriteLine(dom.DeleteObject(lObjDevice));
}
if(lObjEnum)
{
WriteLine(dom.DeleteObject(lObjEnum));
}
WriteLine("Ende");
What is the version this bug report is based on?
CCU3 mit ReGaHSS-Version R1.00.0388.0235
Which base platform are you running?
rpi3 (RaspberryPi3, ARM64/aarch64)
Which HomeMatic/homematicIP radio module are you using?
n/a
Anything in the logs that might be useful for us?
bestehend seit:
unbekannt (bereits mit ReGaHss-Version R1.00.0388.0102)
Der Fehler betrifft unter anderem auch
OT_CALENDARDPS --> OT_CALENDARDP
OT_CHANNELS --> OT_CHANNEL
OT_DPS --> OT_DP
OT_ENUM->etUserPages --> OT_USERPAGE
OT_INTERFACES --> OT_INTERFACE
OT_RULES --> OT_RULE
OT_USERS --> OT_USER
OT_XMLNODES --> OT_XMLNODE
Additional information
Ausgabe des Skriptes:
Start
R1.00.0388.0235
------------------------------------------------------------
1412
objectDEVICES
DEVICES
prüfe auf OT_DEVICES: true
prüfe auf OT_DEVICE: true
prüfe auf OT_ENUM: true
------------------------------------------------------------
1413
objectDEVICE
DEVICE
prüfe auf OT_DEVICES: false
prüfe auf OT_DEVICE: true
prüfe auf OT_ENUM: false
------------------------------------------------------------
1414
objectENUM
ENUM
prüfe auf OT_DEVICES: false
prüfe auf OT_DEVICE: false
prüfe auf OT_ENUM: true
------------------------------------------------------------
true
true
true
Ende