Autor Thema: (Geloest) Hilfe: Mehrdimesionale Felder in myUtils  (Gelesen 176 mal)

Offline Hackstall

  • Full Member
  • ***
  • Beiträge: 207
(Geloest) Hilfe: Mehrdimesionale Felder in myUtils
« am: 02 Dezember 2019, 22:07:36 »
Hallo,

ich benötige nochmals Eure Hilfe für einen Perl-Anfänger in FHEM.
Ich habe schon eine Zeit lang gegoogelt jedoch immer der gleiche Fehler.

Ich möchte gerne ein Feld vorgelegen und dann darauf indiziert zugreifen:

Derzeit sieht mein Code so aus:

     my @myConfigHeizung =
            (\
              [1, "DG.Bad",ReadingsNum("UZSU_Hzg_AbsentCtrl","AbsentTemp_DG.Bad",16.0), ReadingsVal("UZSU_Hzg_AbsentCtrl", "AbsentName_DG.Bad","Aus"),  ReadingsNum("myTadoAPIUtils", "DesiredTemp_DG.Bad",16.0)], 
              [2, "DG.Sz", ReadingsNum("UZSU_Hzg_AbsentCtrl", "AbsentTemp_DG.Sz",16.0), ReadingsVal("UZSU_Hzg_AbsentCtrl", "AbsentName_DG.Sz", "Aus"),  ReadingsNum("myTadoAPIUtils", "DesiredTemp_DG.Sz", 16.0)], 
              [3, "EG.Ez", ReadingsNum("UZSU_Hzg_AbsentCtrl", "AbsentTemp_EG.Ez",16.0), ReadingsVal("UZSU_Hzg_AbsentCtrl", "AbsentName_EG.Ez", "Aus"),  ReadingsNum("myTadoAPIUtils", "DesiredTemp_EG.Ez", 16.0)], 
              [4, "EG.Ku", ReadingsNum("UZSU_Hzg_AbsentCtrl", "AbsentTemp_EG.Ku",16.0), ReadingsVal("UZSU_Hzg_AbsentCtrl", "AbsentName_EG.Ku", "Aus"),  ReadingsNum("myTadoAPIUtils", "DesiredTemp_EG.Ku", 16.0)], 
              [5, "EG.WC", ReadingsNum("UZSU_Hzg_AbsentCtrl", "AbsentTemp_EG.WC",16.0), ReadingsVal("UZSU_Hzg_AbsentCtrl", "AbsentName_EG.WC", "Aus"),  ReadingsNum("myTadoAPIUtils", "DesiredTemp_EG.WC", 16.0)], 
              [6, "EG.Wz", ReadingsNum("UZSU_Hzg_AbsentCtrl", "AbsentTemp_EG.Wz",16.0), ReadingsVal("UZSU_Hzg_AbsentCtrl", "AbsentName_EG.Wz", "Aus"),  ReadingsNum("myTadoAPIUtils", "DesiredTemp_EG.Wz", 16.0)], 
              [7, "OG.AzA",ReadingsNum("UZSU_Hzg_AbsentCtrl","AbsentTemp_OG.AzA",16.0), ReadingsVal("UZSU_Hzg_AbsentCtrl", "AbsentName_EG.AzA","Aus"),  ReadingsNum("myTadoAPIUtils", "DesiredTemp_EG.AzA",16.0)],   
              [8, "OG.AzS",ReadingsNum("UZSU_Hzg_AbsentCtrl","AbsentTemp_OG.AzS",16.0), ReadingsVal("UZSU_Hzg_AbsentCtrl", "AbsentName_OG.AzS","Aus"),  ReadingsNum("myTadoAPIUtils", "DesiredTemp_OG.AzS",16.0)], 
              [9, "OG.Bad",ReadingsNum("UZSU_Hzg_AbsentCtrl","AbsentTemp_OG.Bad",16.0), ReadingsVal("UZSU_Hzg_AbsentCtrl", "AbsentName_OG.Bad","Aus"),  ReadingsNum("myTadoAPIUtils", "DesiredTemp_OG.Bad",16.0)], 
              [10,"OG.KiA",ReadingsNum("UZSU_Hzg_AbsentCtrl","AbsentTemp_OG.KiA",16.0), ReadingsVal("UZSU_Hzg_AbsentCtrl", "AbsentName_OG.KiA","Aus"),  ReadingsNum("myTadoAPIUtils", "DesiredTemp_OG.KiA",16.0)], 
              [11,"OG.KiM",ReadingsNum("UZSU_Hzg_AbsentCtrl","AbsentTemp_OG.KiM",16.0), ReadingsVal("UZSU_Hzg_AbsentCtrl", "AbsentName_OG.KiM","Aus"),  ReadingsNum("myTadoAPIUtils", "DesiredTemp_OG.KiM",16.0)]
            );
    foreach my $row (0..11)
         {
         #Log 1, ($myConfigHeizung[$row][1]." ".$myConfigHeizung[$row][2]." ".$myConfigHeizung[$row][3]." ".$myConfigHeizung[$row][4]);
         #absent Control switched on or off
         #@{ $array1[3] }[0];
         if ($myConfigHeizung[0][3] ne "Aus")
         <.........>
         }

meine Frage ist:
Wie greife ich auf das vorgelegte Feld zu:
Bei der if Abfrage kommt ständig der Fehler:
2019.12.02 22:00:13 1: ERROR evaluating {heatingPresenceControl()}: Not an ARRAY reference at ./FHEM/99_myUtils.pm line 2116.

Ich habe schon mehrer Zugriffsarten probiert (siehe Kommentare) jedoch ist die Fehlermeldung immer die gleiche.

Kann mir hier jemand helfen?

Danke Andreas
« Letzte Änderung: 03 Dezember 2019, 21:24:44 von Hackstall »

Offline amenomade

  • Hero Member
  • *****
  • Beiträge: 4812
Antw:Hilfe: Mehrdimesionale Felder in myUtils
« Antwort #1 am: 03 Dezember 2019, 01:33:36 »
Nimm den Backslash weg
« Letzte Änderung: 03 Dezember 2019, 01:37:17 von amenomade »
FHEM 5.9 Pi 3, EchoDot, CUL868+Selbstbau 1/2λ-Dipol-Antenne, USB Optolink / Vitotronic, und HM Komponenten, Rademacher Duofern Jalousien, Fritz!Dect Thermostaten, Proteus

Offline Hackstall

  • Full Member
  • ***
  • Beiträge: 207
(Geloest) Antw:Hilfe: Mehrdimesionale Felder in myUtils
« Antwort #2 am: 03 Dezember 2019, 21:23:40 »
Hallo das wars. Das haette ich aufgrund der Fehlermeldung niemals gedacht.
Danke

Offline amenomade

  • Hero Member
  • *****
  • Beiträge: 4812
Antw:(Geloest) Hilfe: Mehrdimesionale Felder in myUtils
« Antwort #3 am: 03 Dezember 2019, 22:58:34 »
Durch den Backslash war $myConfigHeizung[0] selbst kein Array
$myConfigHeizung[1],  $myConfigHeizung[2],  $myConfigHeizung[3] dagegen schon, und $myConfigHeizung[3][1] hätte z.B funktioniert
FHEM 5.9 Pi 3, EchoDot, CUL868+Selbstbau 1/2λ-Dipol-Antenne, USB Optolink / Vitotronic, und HM Komponenten, Rademacher Duofern Jalousien, Fritz!Dect Thermostaten, Proteus