RaspberryMatic icon indicating copy to clipboard operation
RaspberryMatic copied to clipboard

ReGaHSS: .IsTypeOf() -> Fehlerhafte Rückgabe bei verschiedenen Objekttypen

Open BadenPower opened this issue 1 year ago • 0 comments

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

BadenPower avatar Dec 06 '24 19:12 BadenPower