Ergonomische Version von 48_HomeConnect.pm

Begonnen von Prof. Dr. Peter Henning, 11 September 2022, 09:28:52

Vorheriges Thema - Nächstes Thema

Prof. Dr. Peter Henning

Immer langsam. Wenn ich Zeit habe, schaue ich da gerne näher hin.

Zuerst fällt auf, dass dies nicht die jüngste Version des Moduls ist.

Zweitens wüsste ich gerne, welchen Präfix HomeConnect der Kiste gibt - "FridgeFreezer" funktioniert offenbar dabei nicht. Und ich werde keinen neuen Kühlschrank kaufen, um das herauszufinden.

LG

pah

DerTom71

Ich benutze die Version aus Post#144 (Version 0.9beta3 vom 16.3.2024). So sieht das bei mir aus:

Du darfst diesen Dateianhang nicht ansehen.

Prof. Dr. Peter Henning

Eben. Das ist nicht die jüngste Version, also kann ich mit den Fehlermeldungen im Log nicht arbeiten.

Und bitte hier im Forum _nicht_ mit Screenshots arbeiten, aus denen kann man keinerlei Daten abgreifen. Sondern ein "list" des Devices hier posten (mit Zitat-Funktion !).

Offenbar benutzt BSH hier als "type" eben nicht "FridgeFreezer", sondern "Refridgerator". Das ist wirklich die Sirius Kybernetik Corporation. Mehr zu den Settings kann ich erst einbauen, wenn ich die aus einem Listing abgreifen kann.

LG

pah

DerTom71

Vieleicht funktioniert ja 42. ;D Dann ist in Post #144 nicht die jüngste Version? Bitte um Hilfe, wo finde ich die jüngste?

Internals:
   DEF        hcconn BOSCH-KIF81HOD0-68A40E8EB085
   FUUID      6608241f-f33f-37a3-206e-167880c774ec79c9
   NAME       KIF81HOD0
   NR         1714
   STATE     
   TYPE       HomeConnect
   aliasname  Kühlschrank
   brand      Bosch
   eventChannelTimeout 1713075915.15214
   eventCount 140
   events     
   haId       BOSCH-KIF81HOD0-68A40E8EB085
   hcconn     hcconn
   prefix     
   retrycounter 0
   settings   SetpointTemperatureRefrigerator,SuperModeRefrigerator,AssistantFridge,AssistantForceFridge
   type       Refrigerator
   vib        KIF81HOD0
   READINGS:
     2024-04-12 22:17:03   AssistantForceFridge LowForce
     2024-04-13 21:36:55   AssistantFridge 1
     2024-04-13 21:39:45   DoorAlarmRefrigerator Off
     2024-04-13 22:37:40   DoorState       Closed
     2024-04-13 21:32:05   Refrigeration.CommonDoor.Refrigerator Refrigeration.Common.EnumType.Door.States.Open
     2024-04-13 22:37:40   Refrigerator    Closed
     2024-04-12 22:17:03   SetpointTemperatureRefrigerator 8
     2024-04-13 21:36:55   SuperModeRefrigerator 0
     2024-04-13 22:37:40   state           
     2024-04-13 22:37:40   tr_DoorState    Tür geschlossen
     2024-04-13 22:37:40   tr_State1       
     2024-04-13 22:37:40   tr_State2       
     2024-04-13 22:37:40   tr_State3       
   data:
     settings:
       AssistantForceFridge:
         Refrigeration.Common.Setting.Door
         Refrigeration.Common.EnumType.Door.AssistantForce.
         LowForce
         undef
       AssistantFridge:
         Refrigeration.Common.Setting.Door
         Refrigeration.Common.Setting.Door
         1
         undef
       PowerState:
         BSH.Common.Setting
         BSH.Common.EnumType.PowerState.
         On
         undef
       SetpointTemperatureRefrigerator:
         Refrigeration.FridgeFreezer.Setting
         Refrigeration.FridgeFreezer.Setting
         8
         °C
       SuperModeRefrigerator:
         Refrigeration.FridgeFreezer.Setting
         Refrigeration.FridgeFreezer.Setting
         0
         undef
Attributes:
   alias      Kühlschrank
   debug      0
   room       EG->Küche,System->Device->HomeConnect

Prof. Dr. Peter Henning

#154
Vlt. mal die anhängende Version 1.0beta6 probieren, da habe ich jetzt etwas eingebaut, das funktionieren _könnte_.

für die transtable fände ich es noch interessant zu wissen, was "AssistantFridge,AssistantForceFridge" eigentlich machen.

LG

pah

DerTom71

Der Kühlschrank hat hat eine Automatische Türöffnung (AssistantFridge). Die benötigte Druckstärke zur Öffnung ist einstellbar (AssistantForceFridge). (In der App: Niedrig, Mittel, Hoch.)
Leider keine Veränderung mit 1.0beta6:

Zitat2024.04.15 18:55:32.169 1: [HomeConnect_Set] KIF81HOD0: no settings defined, replacing by default settings for type
2024.04.15 18:55:32.170 1: [HomeConnect_Set] KIF81HOD0: no settings defined, replacing by default settings for type
2024.04.15 18:55:37.889 1: PERL WARNING: Use of uninitialized value $type in hash element at ./FHEM/48_HomeConnect.pm line 1393.
2024.04.15 18:55:37.890 1: PERL WARNING: Use of uninitialized value $type in hash element at ./FHEM/48_HomeConnect.pm line 1395.
2024.04.15 18:55:37.890 1: PERL WARNING: Use of uninitialized value $type in hash element at ./FHEM/48_HomeConnect.pm line 1402.
2024.04.15 18:55:37.890 1: PERL WARNING: Use of uninitialized value $type in hash element at ./FHEM/48_HomeConnect.pm line 1405.
2024.04.15 18:55:37.891 1: PERL WARNING: Use of uninitialized value in concatenation (.) or string at ./FHEM/48_HomeConnect.pm line 1409.

Internals:
   CFGFN     
   DEF        hcconn BOSCH-KIF81HOD0-68A40E8EB085
   FUUID      661d5c00-f33f-37a3-7c68-7cadcff8b3af6630
   NAME       KIF81HOD0
   NR         1763
   STATE      ???
   TYPE       HomeConnect
   eventCount 2
   events     
   haId       BOSCH-KIF81HOD0-68A40E8EB085
   hcconn     hcconn
   prefix     
   settings   SetpointTemperatureRefrigerator,SuperModeRefrigerator,AssistantFridge,AssistantForceFridge
   READINGS:
     2024-04-15 18:57:03   AssistantForceFridge LowForce
     2024-04-15 18:57:03   AssistantFridge 1
     2024-04-15 18:57:03   SetpointTemperatureRefrigerator 6
     2024-04-15 18:57:03   SuperModeRefrigerator 0
   data:
     settings:
       AssistantForceFridge:
         Refrigeration.Common.Setting.Door
         Refrigeration.Common.EnumType.Door.AssistantForce.
         LowForce
         undef
       AssistantFridge:
         Refrigeration.Common.Setting.Door
         Refrigeration.Common.Setting.Door
         1
         undef
       PowerState:
         BSH.Common.Setting
         BSH.Common.EnumType.PowerState.
         On
         undef
       SetpointTemperatureRefrigerator:
         Refrigeration.FridgeFreezer.Setting
         Refrigeration.FridgeFreezer.Setting
         6
         °C
       SuperModeRefrigerator:
         Refrigeration.FridgeFreezer.Setting
         Refrigeration.FridgeFreezer.Setting
         0
         undef
Attributes:




Prof. Dr. Peter Henning

Ich kann leider nicht raten, welchen "type" dieses Gert zugewiesen bekommt. Einzige Möglichkeit, die ich dafür sehe: Mal mit dem originalen Modul probieren und mir mitteilen, welchen Präfix das Ding dann verwendet, und welchen Wert das "type"-REding hat. Es scheint jedenfalls weder "Refridgerator.FridgeFreezer" noch "Refridgerator" zu sein.

LG

pah

DerTom71

Mit dem original Modul:
ZitatInternals:
   CFGFN     
   DEF        hcconn BOSCH-KIF81HOD0-68A40E8EB085
   FUUID      661d68fa-f33f-37a3-7717-faa8247f97c3ef6b
   NAME       KIF81HOD0
   NR         2426
   STATE      ???
   TYPE       HomeConnect
   aliasname  Kühlschrank
   brand      Bosch
   commandPrefix
   eventChannelTimeout 1713203464.97178
   eventCount 4
   haId       BOSCH-KIF81HOD0-68A40E8EB085
   hcconn     hcconn
   programs   
   retrycounter 0
   type       Refrigerator
   vib        KIF81HOD0
   READINGS:
     2024-04-15 19:51:16   BSH.Common.Setting.PowerState BSH.Common.EnumType.PowerState.On
     2024-04-15 19:51:01   BSH.Common.Status.DoorState BSH.Common.EnumType.DoorState.Closed
     2024-04-15 19:51:16   Refrigeration.Common.Setting.Door.AssistantForceFridge Refrigeration.Common.EnumType.Door.AssistantForce.LowForce
     2024-04-15 19:51:16   Refrigeration.Common.Setting.Door.AssistantFridge 1
     2024-04-15 19:51:01   Refrigeration.Common.Status.Door.Refrigerator Refrigeration.Common.EnumType.Door.States.Closed
     2024-04-15 19:51:16   Refrigeration.FridgeFreezer.Setting.SetpointTemperatureRefrigerator 6 °C
     2024-04-15 19:51:16   Refrigeration.FridgeFreezer.Setting.SuperModeRefrigerator 0
Attributes:
   alias      Kühlschrank
   webCmd     BSH.Common.Root.SelectedProgram:startProgram:stopProgram

Prof. Dr. Peter Henning

OK, ich denke, das war hilfreich.

Anbei eine neue Testversion

LG

pah

DerTom71

Der Kühlschrank weigert sich mit der neuen Version immer noch:
[HomeConnect_Set] KIF81HOD0: no settings defined, replacing by default settings for type

ZitatInternals:
   CFGFN     
   DEF        hcconn BOSCH-KIF81HOD0-68A40E8EB085
   FUUID      661ec037-f33f-37a3-1548-434c65ab53a4e9cc
   NAME       KIF81HOD0
   NR         3859
   STATE      ???
   TYPE       HomeConnect
   eventCount 1
   events     
   haId       BOSCH-KIF81HOD0-68A40E8EB085
   hcconn     hcconn
   prefix     
   settings   SetpointTemperatureRefrigerator,SuperModeRefrigerator,AssistantFridge,AssistantForceFridge
   READINGS:
     2024-04-16 20:15:27   AssistantForceFridge LowForce
     2024-04-16 20:15:27   AssistantFridge 1
     2024-04-16 20:15:27   SetpointTemperatureRefrigerator 6
     2024-04-16 20:15:27   SuperModeRefrigerator 0
   data:
     settings:
       AssistantForceFridge:
         Refrigeration.Common.Setting.Door
         Refrigeration.Common.EnumType.Door.AssistantForce.
         LowForce
         undef
       AssistantFridge:
         Refrigeration.Common.Setting.Door
         Refrigeration.Common.Setting.Door
         1
         undef
       PowerState:
         BSH.Common.Setting
         BSH.Common.EnumType.PowerState.
         On
         undef
       SetpointTemperatureRefrigerator:
         Refrigeration.FridgeFreezer.Setting
         Refrigeration.FridgeFreezer.Setting
         6
         °C
       SuperModeRefrigerator:
         Refrigeration.FridgeFreezer.Setting
         Refrigeration.FridgeFreezer.Setting
         0
         undef
Attributes:

Prof. Dr. Peter Henning

Wieso denn "weigern"? Ist doch weitgehend alles da. Selbstverständlich muss man mit "get settings" selbige holen - der Default reicht in der Regel nicht aus. Und dann bitte "set ZZZ_Dump" ausführen und den Rückgabewert hier posten.

LG

pah

DerTom71

Mit weigern meinte ich, das in den Internals keine type oder prefix gesetzt wird. ZZZ_Dump:

ZitatDevice KIF81HOD0 of type  has
settings: $VAR1 = {
          'PowerState' => [
                            'BSH.Common.Setting',
                            'BSH.Common.EnumType.PowerState.',
                            'On',
                            undef
                          ],
          'SuperModeRefrigerator' => [
                                       'Refrigeration.FridgeFreezer.Setting',
                                       'Refrigeration.FridgeFreezer.Setting',
                                       bless( do{\(my $o = 0)}, 'JSON::PP::Boolean' ),
                                       undef
                                     ],
          'SetpointTemperatureRefrigerator' => [
                                                 'Refrigeration.FridgeFreezer.Setting',
                                                 'Refrigeration.FridgeFreezer.Setting',
                                                 6,
                                                 "\x{c2}\x{b0}C"
                                               ],
          'AssistantFridge' => [
                                 'Refrigeration.Common.Setting.Door',
                                 'Refrigeration.Common.Setting.Door',
                                 bless( do{\(my $o = 1)}, 'JSON::PP::Boolean' ),
                                 undef
                               ],
          'AssistantForceFridge' => [
                                      'Refrigeration.Common.Setting.Door',
                                      'Refrigeration.Common.EnumType.Door.AssistantForce.',
                                      'LowForce',
                                      undef
                                    ]
        };

options: $VAR1 = undef;

transtable: $VAR1 = undef;

poweroff: $VAR1 = undef;

Prof. Dr. Peter Henning

Der type wird bei der Initialisierung gesetzt. Wenn nur das Modul neu geladen wird, wird diese Initialisierung gar nicht ausgeführt.

Bitte als erstes: In der Device-Detailansicht auf den DEF-Link klicken und dann mit "modify hcconn BOSCH-KIF81HOD0-68A40E8EB085" bestätigen. Wenn das nicht hilft, FHEM mal neu starten.

LG

pah

DerTom71

Das wird auch das Problem sein, es wird kein type erkannt. Nach FHEM-Neustart:

2024.04.18 15:39:19.616 1: [HomeConnect_Set] KIF81HOD0: no settings defined, replacing by default settings for type
2024.04.18 15:39:19.617 1: [HomeConnect_Set] KIF81HOD0: no settings defined, replacing by default settings for type
2024.04.18 15:39:24.428 1: [HomeConnect_Set] KIF81HOD0: no settings defined, replacing by default settings for type
2024.04.18 15:39:24.429 1: [HomeConnect_Set] KIF81HOD0: no settings defined, replacing by default settings for type
2024.04.18 15:39:25.063 1: PERL WARNING: Use of uninitialized value $type in hash element at ./FHEM/48_HomeConnect.pm line 1393.
2024.04.18 15:39:25.063 1: PERL WARNING: Use of uninitialized value $type in hash element at ./FHEM/48_HomeConnect.pm line 1395.
2024.04.18 15:39:25.063 1: PERL WARNING: Use of uninitialized value $type in hash element at ./FHEM/48_HomeConnect.pm line 1402.
2024.04.18 15:39:25.063 1: PERL WARNING: Use of uninitialized value $type in hash element at ./FHEM/48_HomeConnect.pm line 1405.
2024.04.18 15:39:25.063 1: PERL WARNING: Use of uninitialized value in concatenation (.) or string at ./FHEM/48_HomeConnect.pm line 1409.
2024.04.18 15:39:25.069 1: [HomeConnect_Set] KIF81HOD0: no settings defined, replacing by default settings for type
2024.04.18 15:39:25.232 1: PERL WARNING: Use of uninitialized value $type in pattern match (m//) at ./FHEM/48_HomeConnect.pm line 933.