RaspberryMatic icon indicating copy to clipboard operation
RaspberryMatic copied to clipboard

ReGaHSS: foreach [8/12 BP-8d] -> Datentypänderung (zu time <> null) der Variable im 1.Parameter führt zu falscher Ausgabe

Open BadenPower opened this issue 2 years ago • 0 comments

Describe the issue you are experiencing

Ist der 2. Parameter der foreach-Anweisung vom Datentyp integer und es wird innerhalb der Schleife der Datentyp der Variable, welche im 1. Parameter der foreach-Anweisung verwendet wird, in den Datentyp time geändert, wobei die Variable ein gültiges Datum enthält und verbleibt bis zum Ende des Durchganges als solche, dann wird der interne Schleifenwert auf einen unbestimmten Integerwert gesetzt. Der Variabletyp der im 1. Parameter verwendeten Variable bleibt weiterhin integer.

Describe the behavior you expected

Erwartet würde, dass die Änderung des Datentyps innerhalb des Schelifendurchlaufs für die weiteren Schleifendurchläufe keine Auswirkung hat. Vor allem darf der interne Schleifenwert nicht beeinflusst werden.

Steps to reproduce the issue

Ausführung der folgenden Skripte unter "Skript testen":

WriteLine("Start");
WriteLine(dom.BuildLabel());
integer lCount = 0;
string lEnum;
integer lParam2 = 2000000000;
foreach(lEnum,lParam2)
{
  lCount = lCount + 1;
  WriteLine("--------------------------------------------------");
  WriteLine("Durchlauf: " # lCount);
  if(true)
  {
    Write(lEnum.Type() # " ");
  }
  WriteLine(lEnum);
  if(lEnum.Type() == "time")
  {
    WriteLine(lEnum.ToInteger());
    WriteLine(lEnum.Weekday());
    WriteLine(lEnum.Yearday());
    WriteLine(lEnum.Year());
    WriteLine(lEnum.Month());
    WriteLine(lEnum.Day());
  }
  if(lCount == 2)
  {
    lEnum = 10;
  }
  if(lCount == 4)
  {
    lEnum = @2036-01-02 03:04:05@;
  }
  if(lCount == 8)
  {
    lEnum = 1999999998; !wird dies auskommentiert, dann läuft die Schleife bis zur Maximalanzahl
  }
}
WriteLine("--------------------------------------------------");
WriteLine("Schleifenende:");
if(true)
{
  Write(lEnum.Type() # " ");
}
WriteLine(lEnum);
WriteLine("lCount = " # lCount);
WriteLine("");
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)

Which HomeMatic/homematicIP radio module are you using?

n/a

Anything in the logs that might be useful for us?

bestehend seit:
ab ReGaHss-Version R1.00.0388.0227 (20.10.2021)
ältere ReGaHss-Version zeigen ein anderes Fehlerbild

Additional information

Ausgabe des Skriptes:

Start
R1.00.0388.0235
--------------------------------------------------
Durchlauf: 1
integer 1
--------------------------------------------------
Durchlauf: 2
integer 2
--------------------------------------------------
Durchlauf: 3
integer 11
--------------------------------------------------
Durchlauf: 4
integer 12
--------------------------------------------------
Durchlauf: 5
integer 33622005
--------------------------------------------------
Durchlauf: 6
integer 33622006
--------------------------------------------------
Durchlauf: 7
integer 33622007
--------------------------------------------------
Durchlauf: 8
integer 33622008
--------------------------------------------------
Durchlauf: 9
integer 1999999999
--------------------------------------------------
Durchlauf: 10
integer 2000000000
--------------------------------------------------
Schleifenende:
integer 2000000001
lCount = 10

Ende

BadenPower avatar Jan 16 '24 19:01 BadenPower