HomeConnect V2 released

Begonnen von Adimarantis, 06 Februar 2025, 17:48:22

Vorheriges Thema - Nächstes Thema

isy

Moin Jörg,
ich prüfe gerade einige "Hänger" in meiner FHEM Installation mit apptime.

Fällt auf das Presence Modul (per MQTT2_OMG_ESP32_BLE) und für jedes meiner Siemens Geräte ist maxDly (24h) über 2000ms
tmr-HomeConnect_Timer HASH(0x7dbd518)  13    12776    9478.17    0.74  2600.98 
tmr-HomeConnect_Timer HASH(0x7df6d00)  28    12776    6807.76    0.53  2600.66   
tmr-HomeConnect_Timer HASH(0x7ddd458)    6    12776    6061.38    0.47  2600.52

Können wir da was verbessern?

VG Helmut
Ein Weg wird erst zu einem Weg, wenn man ihn geht

Adimarantis

Zitat von: Bualicher am 11 Februar 2025, 15:41:49HB876G8B6: unknown attribute logfile. Type 'attr HB876G8B6 ?' for a detailed listWas muss ich tun, damit ein Attribut "logfile" angelegt werden kann?
Bist du sicher dass du die V2 entsprechend Wiki installiert hast?
Das Attribut logfile wird ganz normal im HomeConnect Device angeboten (und wohlgemerkt nicht im HomeConnectConnection).
Raspberry 4 + HM-MOD-RPI-PCB (pivCCU)/RfxTrx433XL/Zigbee
Module: 50_Signalbot, 48_HomeConnect, 52_I2C_ADS1x1x , 58_RPI_1Wire, (50_SPI_MAX31865)

Adimarantis

Zitat von: isy am 11 Februar 2025, 15:46:07Moin Jörg,
ich prüfe gerade einige "Hänger" in meiner FHEM Installation mit apptime.

Fällt auf das Presence Modul (per MQTT2_OMG_ESP32_BLE) und für jedes meiner Siemens Geräte ist maxDly (24h) über 2000ms
tmr-HomeConnect_Timer HASH(0x7dbd518)  13    12776    9478.17    0.74  2600.98 
tmr-HomeConnect_Timer HASH(0x7df6d00)  28    12776    6807.76    0.53  2600.66   
tmr-HomeConnect_Timer HASH(0x7ddd458)    6    12776    6061.38    0.47  2600.52

Können wir da was verbessern?

VG Helmut
Ich habe mal ein Logging um die Funktion herum gebaut und bei mir ist global mseclog ohnehin immer auf 1.
Die Timerfunktion rennt bei mir in 1-5 msec durch. Es könnte höchstens sein, dass es mal länger dauert, wenn er sich neu mit dem Event Channel verbinden muss. Hier steht der Timeout auf 10s - aber auch das ist ein asynchrones NonblockingGet. Also ohne konkretere Hinweise sehe ich da erstmal keine offensichtlichen Anhaltspunkte.
Ich weiss jetzt nicht wie das gemessen wird. Wenn ichs richtig im Kopf habe, dann passiert ein NonblockingGet in einem geforkten Prozess - da wird aber trotzdem drauf gewartet (blockiert aber eben FHEM main nicht) - wird das evtl. trotzdem als "Hänger" geloggt?


Jörg
Raspberry 4 + HM-MOD-RPI-PCB (pivCCU)/RfxTrx433XL/Zigbee
Module: 50_Signalbot, 48_HomeConnect, 52_I2C_ADS1x1x , 58_RPI_1Wire, (50_SPI_MAX31865)

isy

Deine Vermutung kann richtig sein, da der OpenBLE Presence2 Prozess auch mit mehreren Sekunden auffällig ist. Dazu kommt, noch unter 2 Sekunden, der mqtt Prozess. Es ist also bei mir Einiges los am System (PI4 auf SSD). Der Rest ist im ms Bereich.

Der OpenBLE pollt alle 30 Sekunden und könnte (kein wirkliches Wissen) bei den Verzögerungen vom HomeConnect mitspielen.
Aber das ist nur eine Vermutung.
Ein Weg wird erst zu einem Weg, wenn man ihn geht

Bualicher

Zitat von: Adimarantis am 11 Februar 2025, 16:31:09
Zitat von: Bualicher am 11 Februar 2025, 15:41:49HB876G8B6: unknown attribute logfile. Type 'attr HB876G8B6 ?' for a detailed listWas muss ich tun, damit ein Attribut "logfile" angelegt werden kann?
Bist du sicher dass du die V2 entsprechend Wiki installiert hast?
Das Attribut logfile wird ganz normal im HomeConnect Device angeboten (und wohlgemerkt nicht im HomeConnectConnection).

Hab meinen Fehler gefunden:
Wer die ursprüngliche Version von Stefan/swhome nutzt editiert die Datei FHEM/controls.txt und ersetzt "sw-home" mit "bublath" und führt dann entsprechend in FHEM ein "update all" aus.Das hatte ich offensichtlich ignoriert.
Danke

locodriver

#20
Ich habe das Logfile angelegt - allerdings wäscht die Wama momentan nicht...

2025-02-12_11:14:11 global ATTR Wama logfile Wama.log
2025.02.12 11:15:04 get Wama ProgramStatus
2025.02.12 11:15:04 Request:$VAR1 = {'callback' => sub { "DUMMY" },'uri' => '/api/homeappliances/XXXX/programs/active'};
2025.02.12 11:15:04 Get_check:$VAR1 = {'error' => {'key' => 'SDK.Error.NoProgramActive','description' => 'There is no program active'}};
2025.02.12 11:15:04 Error:$VAR1 = {'error' => {'key' => 'SDK.Error.NoProgramActive','description' => 'There is no program active'}};
2025-02-12_11:15:04 Wama lastErr: There is no program active
2025.02.12 11:15:38 get Wama Status
2025.02.12 11:15:38 Request:$VAR1 = {'uri' => '/api/homeappliances/XXXX/status','callback' => sub { "DUMMY" }};
2025.02.12 11:15:38 Get_status:$VAR1 = {'data' => {'status' => [{'value' => 'BSH.Common.EnumType.DoorState.Open','displayvalue' => 'Offen','key' => 'BSH.Common.Status.DoorState','name' => "T\x{c3}\x{bc}r"},{'value' => bless( do{\(my $o = 0)}, 'JSON::PP::Boolean' ),'key' => 'BSH.Common.Status.LocalControlActive','name' => 'Lokale Bedienung aktiv'},{'key' => 'BSH.Common.Status.OperationState','name' => 'Betriebsstatus','displayvalue' => 'Bereit','value' => 'BSH.Common.EnumType.OperationState.Ready'},{'name' => 'Fernbedienung','key' => 'BSH.Common.Status.RemoteControlActive','value' => bless( do{\(my $o = 1)}, 'JSON::PP::Boolean' )},{'value' => $VAR1->{'data'}{'status'}[1]{'value'},'name' => 'Fernstart','key' => 'BSH.Common.Status.RemoteControlStartAllowed'}]}};
2025.02.12 11:15:38 Checking key BSH.Common.Status.DoorState status DoorState Open
2025.02.12 11:15:38 Checking key BSH.Common.Status.LocalControlActive status LocalControlActive Off
2025.02.12 11:15:38 Checking key BSH.Common.Status.OperationState status OperationState Ready
2025.02.12 11:15:38 Checking key BSH.Common.Status.RemoteControlActive status RemoteControlActive On
2025.02.12 11:15:38 Checking key BSH.Common.Status.RemoteControlStartAllowed status RemoteControlStartAllowed Off
2025-02-12_11:15:38 Wama Status.DoorState: Open
2025-02-12_11:15:38 Wama Status.LocalControlActive: Off
2025-02-12_11:15:38 Wama Status.OperationState: Ready
2025-02-12_11:15:38 Wama Status.RemoteControlActive: On
2025-02-12_11:15:38 Wama Status.RemoteControlStartAllowed: Off
2025.02.12 11:17:53 Event:$VAR1 = {'haId' => 'XXXX','items' => [{'level' => 'hint','timestamp' => 1739355470,'handling' => 'none','value' => 'BSH.Common.EnumType.PowerState.Standby','uri' => '/api/homeappliances/XXXX/settings/BSH.Common.Setting.PowerState','key' => 'BSH.Common.Setting.PowerState'}]};
2025-02-12_11:17:53 Wama Setting.PowerState: Standby
2025.02.12 11:17:53 [HomeConnect_CheckState] V1.31 from s:off d:Open o:Ready
2025.02.12 11:17:53 [HomeConnect_CheckState] to s:idle d:Open o:Ready 1:Tür offen 2:-
2025-02-12_11:17:53 Wama idle
2025-02-12_11:17:53 Wama state1: Tür offen
2025-02-12_11:17:53 Wama state2: -
2025.02.12 11:17:54 Request:$VAR1 = {'callback' => sub { "DUMMY" },'uri' => '/api/homeappliances/XXXX/settings'};
2025.02.12 11:17:54 Request:$VAR1 = {'callback' => sub { "DUMMY" },'uri' => '/api/homeappliances/XXXX/programs'};
2025.02.12 11:17:54 Get_settings:$VAR1 = {'error' => {'description' => 'Insufficient scope for this resource','key' => 'insufficient_scope'}};
2025.02.12 11:17:54 Error:$VAR1 = {'error' => {'description' => 'Insufficient scope for this resource','key' => 'insufficient_scope'}};
2025-02-12_11:17:54 Wama lastErr: Insufficient scope for this resource
2025.02.12 11:17:54 ResponseGetPrograms:$VAR1 = {'data' => {'active' => {'constraints' => {'access' => 'read'}},'programs' => [{'name' => 'Eco 40-60','constraints' => {'execution' => 'selectandstart','available' => bless( do{\(my $o = 1)}, 'JSON::PP::Boolean' )},'key' => 'LaundryCare.Washer.Program.Cotton.Eco4060'},{'constraints' => {'available' => $VAR1->{'data'}{'programs'}[0]{'constraints'}{'available'},'execution' => 'selectandstart'},'key' => 'LaundryCare.Washer.Program.Cotton','name' => 'Baumwolle'},{'constraints' => {'available' => $VAR1->{'data'}{'programs'}[0]{'constraints'}{'available'},'execution' => 'selectandstart'},'key' => 'LaundryCare.Washer.Program.EasyCare','name' => 'Pflegeleicht'},{'key' => 'LaundryCare.Washer.Program.Mix','constraints' => {'available' => $VAR1->{'data'}{'programs'}[0]{'constraints'}{'available'},'execution' => 'selectandstart'},'name' => 'Schnell/Mix'},{'name' => 'Fein/Seide','constraints' => {'execution' => 'selectandstart','available' => $VAR1->{'data'}{'programs'}[0]{'constraints'}{'available'}},'key' => 'LaundryCare.Washer.Program.DelicatesSilk'},{'name' => 'Wolle','key' => 'LaundryCare.Washer.Program.Wool','constraints' => {'execution' => 'selectandstart','available' => $VAR1->{'data'}{'programs'}[0]{'constraints'}{'available'}}},{'name' => 'Trommel reinigen','key' => 'LaundryCare.Washer.Program.DrumClean','constraints' => {'execution' => 'selectandstart','available' => $VAR1->{'data'}{'programs'}[0]{'constraints'}{'available'}}},{'key' => 'LaundryCare.Washer.Program.DarkWash','constraints' => {'execution' => 'selectandstart','available' => $VAR1->{'data'}{'programs'}[0]{'constraints'}{'available'}},'name' => "Jeans/Dunkle W\x{c3}\x{a4}sche"},{'name' => 'Blusen/Hemden','constraints' => {'available' => $VAR1->{'data'}{'programs'}[0]{'constraints'}{'available'},'execution' => 'selectandstart'},'key' => 'LaundryCare.Washer.Program.ShirtsBlouses'},{'name' => "Outdoor/Impr\x{c3}\x{a4}gnieren",'constraints' => {'execution' => 'selectandstart','available' => $VAR1->{'data'}{'programs'}[0]{'constraints'}{'available'}},'key' => 'LaundryCare.Washer.Program.WaterProof'},{'key' => 'LaundryCare.Washer.Program.Super153045.Super1530','constraints' => {'execution' => 'selectandstart','available' => $VAR1->{'data'}{'programs'}[0]{'constraints'}{'available'}},'name' => 'Super 15/30'}],'selected' => {'name' => 'Eco 40-60','key' => 'LaundryCare.Washer.Program.Cotton.Eco4060','constraints' => {'access' => 'readWrite'},'options' => [{'key' => 'BSH.Common.Option.EnergyForecast','name' => 'Energie','unit' => '%','value' => 40},{'value' => 13500,'name' => 'Endzeit','unit' => 'seconds','key' => 'BSH.Common.Option.FinishInRelative'},{'value' => 40,'key' => 'BSH.Common.Option.WaterForecast','name' => 'Wasser','unit' => '%'},{'unit' => 'gram','name' => 'Beladungsempfehlung','key' => 'LaundryCare.Common.Option.LoadRecommendation','value' => 9000},{'value' => 0,'key' => 'LaundryCare.Common.Option.ReferToProgram'},{'value' => bless( do{\(my $o = 0)}, 'JSON::PP::Boolean' ),'key' => 'LaundryCare.Washer.Option.RinseHold','name' => "Sp\x{c3}\x{bc}lstopp"},{'name' => 'Drehzahl','key' => 'LaundryCare.Washer.Option.SpinSpeed','value' => 'LaundryCare.Washer.EnumType.SpinSpeed.RPM1400','displayvalue' => '1400 U/min'},{'displayvalue' => 'Aus','value' => 'LaundryCare.Washer.EnumType.Stains.Off','key' => 'LaundryCare.Washer.Option.Stains','name' => 'Antiflecken-System'},{'key' => 'LaundryCare.Washer.Option.Temperature','name' => 'Temperatur','value' => 'LaundryCare.Washer.EnumType.Temperature.Cold','displayvalue' => 'Kalt'},{'key' => 'BSH.Common.Option.EstimatedTotalProgramTime','name' => "Gesch\x{c3}\x{a4}tzte Gesamtprogrammlaufzeit",'unit' => 'seconds','value' => 13500},{'name' => "Gesch\x{c3}\x{a4}tzte Restprogrammlaufzeit",'key' => 'BSH.Common.Option.RemainingProgramTimeIsEstimated','value' => $VAR1->{'data'}{'programs'}[0]{'constraints'}{'available'}}]}}};
2025-02-12_11:17:54 Wama Setting.SelectedProgram: Eco4060
2025.02.12 11:17:54 selected:$VAR1 = {'key' => 'BSH.Common.Option.EnergyForecast','name' => 'Energie','unit' => '%','value' => 40};$VAR2 = {'value' => 13500,'name' => 'Endzeit','unit' => 'seconds','key' => 'BSH.Common.Option.FinishInRelative'};$VAR3 = {'value' => 40,'key' => 'BSH.Common.Option.WaterForecast','name' => 'Wasser','unit' => '%'};$VAR4 = {'unit' => 'gram','name' => 'Beladungsempfehlung','key' => 'LaundryCare.Common.Option.LoadRecommendation','value' => 9000};$VAR5 = {'value' => 0,'key' => 'LaundryCare.Common.Option.ReferToProgram'};$VAR6 = {'value' => bless( do{\(my $o = 0)}, 'JSON::PP::Boolean' ),'key' => 'LaundryCare.Washer.Option.RinseHold','name' => "Sp\x{c3}\x{bc}lstopp"};$VAR7 = {'name' => 'Drehzahl','key' => 'LaundryCare.Washer.Option.SpinSpeed','value' => 'LaundryCare.Washer.EnumType.SpinSpeed.RPM1400','displayvalue' => '1400 U/min'};$VAR8 = {'displayvalue' => 'Aus','value' => 'LaundryCare.Washer.EnumType.Stains.Off','key' => 'LaundryCare.Washer.Option.Stains','name' => 'Antiflecken-System'};$VAR9 = {'key' => 'LaundryCare.Washer.Option.Temperature','name' => 'Temperatur','value' => 'LaundryCare.Washer.EnumType.Temperature.Cold','displayvalue' => 'Kalt'};$VAR10 = {'key' => 'BSH.Common.Option.EstimatedTotalProgramTime','name' => "Gesch\x{c3}\x{a4}tzte Gesamtprogrammlaufzeit",'unit' => 'seconds','value' => 13500};$VAR11 = {'name' => "Gesch\x{c3}\x{a4}tzte Restprogrammlaufzeit",'key' => 'BSH.Common.Option.RemainingProgramTimeIsEstimated','value' => bless( do{\(my $o = 1)}, 'JSON::PP::Boolean' )};
2025.02.12 11:17:54 Checking key BSH.Common.Option.EnergyForecast check EnergyForecast 40
2025.02.12 11:17:54 Checking key BSH.Common.Option.FinishInRelative check FinishInRelative 13500
2025.02.12 11:17:54 Checking key BSH.Common.Option.WaterForecast check WaterForecast 40
2025.02.12 11:17:54 Checking key LaundryCare.Common.Option.LoadRecommendation check LoadRecommendation 9000
2025.02.12 11:17:54 Checking key LaundryCare.Common.Option.ReferToProgram check ReferToProgram 0
2025.02.12 11:17:54 Checking key LaundryCare.Washer.Option.RinseHold check RinseHold Off
2025.02.12 11:17:54 Checking key LaundryCare.Washer.Option.SpinSpeed check SpinSpeed RPM1400
2025.02.12 11:17:54 Checking key LaundryCare.Washer.Option.Stains check Stains Off
2025.02.12 11:17:54 Checking key LaundryCare.Washer.Option.Temperature check Temperature Cold
2025.02.12 11:17:54 Checking key BSH.Common.Option.EstimatedTotalProgramTime check EstimatedTotalProgramTime 13500
2025.02.12 11:17:54 Checking key BSH.Common.Option.RemainingProgramTimeIsEstimated check RemainingProgramTimeIsEstimated On
2025-02-12_11:17:54 Wama Option.EnergyForecast: 40 %
2025-02-12_11:17:54 Wama Option.FinishInRelative: 13500 seconds
2025-02-12_11:17:54 Wama Option.WaterForecast: 40 %
2025-02-12_11:17:54 Wama Option.LoadRecommendation: 9000 gram
2025-02-12_11:17:54 Wama Option.RinseHold: Off
2025-02-12_11:17:54 Wama Option.SpinSpeed: RPM1400
2025-02-12_11:17:54 Wama Option.Stains: Off
2025-02-12_11:17:54 Wama Option.Temperature: Cold
2025-02-12_11:17:54 Wama Option.EstimatedTotalProgramTime: 13500 seconds
2025-02-12_11:17:54 Wama Option.RemainingProgramTimeIsEstimated: On
2025-02-12_11:17:54 Wama Setting.ActiveProgram:
2025.02.12 11:17:54 No Program active
2025.02.12 11:17:59 GetProgramOptions: available/LaundryCare.Washer.Program.Eco4060
2025.02.12 11:17:59 Request:$VAR1 = {'callback' => sub { "DUMMY" },'uri' => '/api/homeappliances/XXXX/programs/available/LaundryCare.Washer.Program.Eco4060'};
2025.02.12 11:17:59 Get_options:$VAR1 = {'error' => {'description' => 'Program not supported','key' => 'SDK.Error.UnsupportedProgram'}};
2025.02.12 11:17:59 Error:$VAR1 = {'error' => {'description' => 'Program not supported','key' => 'SDK.Error.UnsupportedProgram'}};
2025-02-12_11:17:59 Wama lastErr: Program not supported
2025.02.12 11:18:04 Request:$VAR1 = {'uri' => '/api/homeappliances/XXXX/programs/selected','callback' => sub { "DUMMY" }};
2025.02.12 11:18:04 Get_check:$VAR1 = {'data' => {'options' => [{'name' => 'Energie','unit' => '%','key' => 'BSH.Common.Option.EnergyForecast','value' => 40},{'key' => 'BSH.Common.Option.FinishInRelative','name' => 'Endzeit','unit' => 'seconds','value' => 13500},{'name' => 'Wasser','unit' => '%','key' => 'BSH.Common.Option.WaterForecast','value' => 40},{'value' => 9000,'key' => 'LaundryCare.Common.Option.LoadRecommendation','name' => 'Beladungsempfehlung','unit' => 'gram'},{'key' => 'LaundryCare.Common.Option.ReferToProgram','value' => 0},{'value' => bless( do{\(my $o = 0)}, 'JSON::PP::Boolean' ),'name' => "Sp\x{c3}\x{bc}lstopp",'key' => 'LaundryCare.Washer.Option.RinseHold'},{'key' => 'LaundryCare.Washer.Option.SpinSpeed','name' => 'Drehzahl','value' => 'LaundryCare.Washer.EnumType.SpinSpeed.RPM1400','displayvalue' => '1400 U/min'},{'key' => 'LaundryCare.Washer.Option.Stains','name' => 'Antiflecken-System','value' => 'LaundryCare.Washer.EnumType.Stains.Off','displayvalue' => 'Aus'},{'name' => 'Temperatur','key' => 'LaundryCare.Washer.Option.Temperature','value' => 'LaundryCare.Washer.EnumType.Temperature.Cold','displayvalue' => 'Kalt'},{'value' => 13500,'unit' => 'seconds','name' => "Gesch\x{c3}\x{a4}tzte Gesamtprogrammlaufzeit",'key' => 'BSH.Common.Option.EstimatedTotalProgramTime'},{'name' => "Gesch\x{c3}\x{a4}tzte Restprogrammlaufzeit",'key' => 'BSH.Common.Option.RemainingProgramTimeIsEstimated','value' => bless( do{\(my $o = 1)}, 'JSON::PP::Boolean' )}],'name' => 'Eco 40-60','key' => 'LaundryCare.Washer.Program.Cotton.Eco4060','constraints' => {'access' => 'readWrite'}}};
2025.02.12 11:18:04 Checking key BSH.Common.Option.EnergyForecast check EnergyForecast 40
2025.02.12 11:18:04 Checking key BSH.Common.Option.FinishInRelative check FinishInRelative 13500
2025.02.12 11:18:04 Checking key BSH.Common.Option.WaterForecast check WaterForecast 40
2025.02.12 11:18:04 Checking key LaundryCare.Common.Option.LoadRecommendation check LoadRecommendation 9000
2025.02.12 11:18:04 Checking key LaundryCare.Common.Option.ReferToProgram check ReferToProgram 0
2025.02.12 11:18:04 Checking key LaundryCare.Washer.Option.RinseHold check RinseHold Off
2025.02.12 11:18:04 Checking key LaundryCare.Washer.Option.SpinSpeed check SpinSpeed RPM1400
2025.02.12 11:18:04 Checking key LaundryCare.Washer.Option.Stains check Stains Off
2025.02.12 11:18:04 Checking key LaundryCare.Washer.Option.Temperature check Temperature Cold
2025.02.12 11:18:04 Checking key BSH.Common.Option.EstimatedTotalProgramTime check EstimatedTotalProgramTime 13500
2025.02.12 11:18:04 Checking key BSH.Common.Option.RemainingProgramTimeIsEstimated check RemainingProgramTimeIsEstimated On
2025-02-12_11:18:04 Wama Option.EnergyForecast: 40 %
2025-02-12_11:18:04 Wama Option.FinishInRelative: 13500 seconds
2025-02-12_11:18:04 Wama Option.WaterForecast: 40 %
2025-02-12_11:18:04 Wama Option.LoadRecommendation: 9000 gram
2025-02-12_11:18:04 Wama Option.RinseHold: Off
2025-02-12_11:18:04 Wama Option.SpinSpeed: RPM1400
2025-02-12_11:18:04 Wama Option.Stains: Off
2025-02-12_11:18:04 Wama Option.Temperature: Cold
2025-02-12_11:18:04 Wama Option.EstimatedTotalProgramTime: 13500 seconds
2025-02-12_11:18:04 Wama Option.RemainingProgramTimeIsEstimated: On

Ich hoffe, du kannst damit schon etwas anfangen.

Das der STATE nicht angelegt ist, hat mich auch schon gewundert...


Dankeschön.

Nachtrag: ich habe mal die tür geschlossen und geöffnet - das wurde im state1 angezeigt.

Mal schauen wie es bei der nächsten Wäsche aussieht. Wie es scheint, war der Neustart von fhem notwendig - vielleicht ein Hinweis fürs wiki...?
fhem 6.0 auf Rpi3 Bookworm
HM-LAN-CFG (FW 0.965), HM-MOD-UART, 2x HM-TC-IT-WM-W-EU, 4x HM-Sec-RHS und 3x HM-CC-RT-DN, 6x HM-LC-Bl1-FM mit je 1x Somfy-Motor,
2x HM-LC-SW2-FM für Licht und Lüfter, 2x HM-PB-6-WM55, Alexa, Jeelinkcross, CUL, CUNO2, IR-Blaster

Adimarantis

@locodriver
Was mich irritiert:
Get_settings:$VAR1 = {'error' => {'description' => 'Insufficient scope for this resource','key' => 'insufficient_scope'}};Da ist in der HomeConnectConnection device entweder der accessScope falsch eingestellt oder dein Home Connect Developer Account hat zu wenig Rechte (wobei ich immer dachte der kriegt grundsätzlich alles)
Was steht denn dort bei "accessScope" ?

Sonst wäre hilfreich ein Logfile "von Anfang an" zu haben:
-Waschmaschine einschalten (weil manche im "Off" Zustand nicht alles schicken)
-Save config im FHEM
-shutdown restart (wenn du das nicht machen kannst/willst sollte auch ein "set <device> init" reichen)
-Und dann zumindest mal probieren ein Programm zu selektieren (musst es ja nicht starten) bzw. auch mal manuell an der Maschine ein anderes Programm wählen
-Und danach ein "list" vom Device damit ich sehe was in den ganzen internen Strukturen gelandet ist

Das hier ist auch seltsam:
2025.02.12 11:17:59 Request:$VAR1 = {'callback' => sub { "DUMMY" },'uri' => '/api/homeappliances/XXXX/programs/available/LaundryCare.Washer.Program.Eco4060'};
2025.02.12 11:17:59 Get_options:$VAR1 = {'error' => {'description' => 'Program not supported','key' => 'SDK.Error.UnsupportedProgram'}};
Aber da brauche ich noch den Quercheck welche Programme die WaMa zurückliefert. Ich hoffe wir haben hier nicht noch einen Fall, wo die ganze Programmlogik nicht geht, wie beim Waschtrockner von Shadow.

Jörg
Raspberry 4 + HM-MOD-RPI-PCB (pivCCU)/RfxTrx433XL/Zigbee
Module: 50_Signalbot, 48_HomeConnect, 52_I2C_ADS1x1x , 58_RPI_1Wire, (50_SPI_MAX31865)

Adimarantis

Übrigens wird seit der neuen Version das Feld "model" im Modul gefüllt, so dass es in den FHEM Statistics ( https://fhem.de/stats/statistics.html ) eine Übersicht über die Geräteverteilung gibt.
Die Spülmaschinen sind aktuell klar die führenden Geräte mit Home Connect Integration.
Wer es noch nicht tut, darf gerne noch
attr global sendStatistics onUpdatesetzen um die Liste zu mit füllen :)

Man sieht hier zwei Einträge die spezifische Modellnamen zeigen. Dürfte ein weiterer privater "fork" sein.
Hatte ich zuerst auch überlegt, aber es zeigt sich, dass es zu viele verschiedenen Modelle gibt, womit die Liste wahrscheinlich irgendwann 200 Einträge mit Zähler "1" hätte. Daher habe ich mich entschieden nur den Gerätetyp zu verwenden.
Raspberry 4 + HM-MOD-RPI-PCB (pivCCU)/RfxTrx433XL/Zigbee
Module: 50_Signalbot, 48_HomeConnect, 52_I2C_ADS1x1x , 58_RPI_1Wire, (50_SPI_MAX31865)

87insane

Habe dann auch mal dein Modul aktiv gesetzt. Jetzt muss erstmal alles einmal laufen, damit ich wieder alle Icons usw anpassen kann.
Trockner
Waschmaschine
Induktions Kochfeld
Backofen
Spülmaschine

locodriver

#24
Zitat von: Adimarantis am 13 Februar 2025, 11:55:10@locodriver
Was mich irritiert:
Get_settings:$VAR1 = {'error' => {'description' => 'Insufficient scope for this resource','key' => 'insufficient_scope'}};Da ist in der HomeConnectConnection device entweder der accessScope falsch eingestellt oder dein Home Connect Developer Account hat zu wenig Rechte (wobei ich immer dachte der kriegt grundsätzlich alles)
Was steht denn dort bei "accessScope" ?

Sonst wäre hilfreich ein Logfile "von Anfang an" zu haben:
-Waschmaschine einschalten (weil manche im "Off" Zustand nicht alles schicken)
-Save config im FHEM
-shutdown restart (wenn du das nicht machen kannst/willst sollte auch ein "set <device> init" reichen)
-Und dann zumindest mal probieren ein Programm zu selektieren (musst es ja nicht starten) bzw. auch mal manuell an der Maschine ein anderes Programm wählen
-Und danach ein "list" vom Device damit ich sehe was in den ganzen internen Strukturen gelandet ist

Das hier ist auch seltsam:
2025.02.12 11:17:59 Request:$VAR1 = {'callback' => sub { "DUMMY" },'uri' => '/api/homeappliances/XXXX/programs/available/LaundryCare.Washer.Program.Eco4060'};
2025.02.12 11:17:59 Get_options:$VAR1 = {'error' => {'description' => 'Program not supported','key' => 'SDK.Error.UnsupportedProgram'}};
Aber da brauche ich noch den Quercheck welche Programme die WaMa zurückliefert. Ich hoffe wir haben hier nicht noch einen Fall, wo die ganze Programmlogik nicht geht, wie beim Waschtrockner von Shadow.

Jörg

Das habe ich mal so gemacht, sowohl in fhem Programme gewählt als auch an der Maschine (auch Temperaturen und Drehzahlen geändert).

Hier das list:
define Wama HomeConnect hcconn SIEMENS-WM14UR5EM2-68A40E73D2F5
attr Wama alias Waschmaschine
attr Wama icon scene_washing_machine
attr Wama logfile Wama.log
attr Wama namePrefix 0
attr Wama room 004Bad
attr Wama stateFormat state1 (state2)
attr Wama translate RemainingProgramTime
attr Wama valuePrefix 0
#   DEF        hcconn SIEMENS-WM14UR5EM2-68A40E73D2F5
#   FUUID      67a885e9-f33f-b425-d792-8c6e142c17671ee6
#   FVERSION   48_HomeConnect.pm:?/2025-02-06
#   NAME       Wama
#   NR         1252
#   NTFY_ORDER 50-Wama
#   STATE      Tür offen (-)
#   TYPE       HomeConnect
#   aliasname  Waschmaschine
#   brand      Siemens
#   eventCount 10
#   events     IDos1FillLevelPoor, IDos2FillLevelPoor
#   haId       SIEMENS-WM14UR5EM2-68A40E73D2F5
#   hcconn     hcconn
#   logfile    Wama.log
#   model      Washer
#   offline    0
#   options   
#   prefix     LaundryCare.Washer
#   programs   Cotton.Eco4060, Cotton, EasyCare, Mix, DelicatesSilk, Wool, DrumClean, DarkWash, ShirtsBlouses, WaterProof, Super153045.Super1530
#   settings   ChildLock, PowerState
#   type       Washer
#   vib        WM14UR5EM2
#   READINGS:
#     2025-02-14 11:44:38   Option.EnergyForecast 80 %
#     2025-02-14 11:44:38   Option.EstimatedTotalProgramTime 6120 seconds
#     2025-02-14 11:44:38   Option.FinishInRelative 6120 seconds
#     2025-02-11 11:59:11   Option.LessIroning Off
#     2025-02-14 11:44:38   Option.LoadRecommendation 1000 gram
#     2025-02-11 11:59:11   Option.Prewash  Off
#     2025-02-12 11:11:57   Option.ProcessPhase
#     2025-02-12 11:11:57   Option.ProgramProgress 0 %
#     2025-02-12 11:11:57   Option.RemainingProgramTime
#     2025-02-14 11:44:38   Option.RemainingProgramTimeIsEstimated On
#     2025-02-14 11:38:34   Option.RinseHold Off
#     2025-02-14 11:44:38   Option.RinsePlus Off
#     2025-02-11 11:59:11   Option.SpeedPerfect On
#     2025-02-14 11:44:38   Option.SpinSpeed RPM800
#     2025-02-14 11:44:38   Option.Stains   Off
#     2025-02-14 11:44:38   Option.Temperature GC30
#     2025-02-14 11:44:38   Option.WaterForecast 80 %
#     2025-02-14 11:44:38   Option.WaterPlus Off
#     2025-02-14 11:44:38   Setting.ActiveProgram
#     2025-02-12 11:29:44   Setting.PowerState On
#     2025-02-14 11:44:38   Setting.SelectedProgram WaterProof
#     2025-02-14 11:38:26   Status.DoorState Open
#     2025-02-14 11:38:26   Status.LocalControlActive Off
#     2025-02-14 11:38:26   Status.OperationState Ready
#     2025-02-14 11:38:26   Status.RemoteControlActive On
#     2025-02-14 11:38:26   Status.RemoteControlStartAllowed Off
#     2025-02-14 11:44:23   lastErr         Program not supported
#     2025-02-14 11:38:23   state           idle
#     2025-02-14 11:38:23   state1          Tür offen
#     2025-02-14 11:38:23   state2          -
#   data:
#     finished  
#     poweroff   MainsOff
#     options:
#     retrans:
#       Baumwolle  Cotton
#       Baumwolle_Eco Cotton.CottonEco
#       Baumwolle_Eco5060 Cotton.Eco4060
#       Bettdecke  DownDuvet.Duvet
#       Blusen/Hemden ShirtsBlouses
#       Dunkle_Wäsche DarkWash
#       Eco_40-60  Cotton.Eco4060
#       Empfindliche_Wäsche Sensitive
#       Fein/Seide DelicatesSilk
#       Handtücher Towels
#       Hemden     ShirtsBlouses
#       Jeans/Dunkle_Wäsche DarkWash
#       Nachtwäsche Mix.Nightwash
#       Outdoor    Outdoor
#       Outdoor/Imprägnieren WaterProof
#       Pflegeleicht EasyCare
#       Schleudern Spin
#       Schleudern/Abpumpen SpinDrain
#       Schnell/Mix Mix
#       Sportsachen SportFitness
#       Super15/30 Super153045.Super1530
#       Super_15/30 Super153045.Super1530
#       Trommel_reinigen DrumClean
#       Trommelreinigung DrumClean
#       Wolle      Wool
#       powerSpeed59 PowerSpeed59
#     settings:
#       ChildLock:
#         name       BSH.Common.Setting.ChildLock
#         values     On,Off
#       PowerState:
#         name       BSH.Common.Setting.PowerState
#         values     On,Off
#     trans:
#       Cotton     Baumwolle
#       Cotton.CottonEco Baumwolle_Eco
#       Cotton.Eco4060 Eco_40-60
#       DarkWash   Jeans/Dunkle_Wäsche
#       DelicatesSilk Fein/Seide
#       DownDuvet.Duvet Bettdecke
#       DrumClean  Trommel_reinigen
#       EasyCare   Pflegeleicht
#       Mix        Schnell/Mix
#       Mix.Nightwash Nachtwäsche
#       Outdoor    Outdoor
#       PowerSpeed59 powerSpeed59
#       Sensitive  Empfindliche_Wäsche
#       ShirtsBlouses Blusen/Hemden
#       Spin       Schleudern
#       SpinDrain  Schleudern/Abpumpen
#       SportFitness Sportsachen
#       Super153045.Super1530 Super_15/30
#       Towels     Handtücher
#       WaterProof Outdoor/Imprägnieren
#       Wool       Wolle
#   helper:
#     clear      -1
#     details    -1
#     elapsed    0
#     init       1
#     init_count 11
#     options    1
#     programs   1
#     settings   0
#     stateupdate 0
#     status     -1
#
setstate Wama Tür offen (-)
setstate Wama 2025-02-14 11:40:08 .prefix LaundryCare.Washer
setstate Wama 2025-02-14 11:44:38 .programs Cotton.Eco4060, Cotton, EasyCare, Mix, DelicatesSilk, Wool, DrumClean, DarkWash, ShirtsBlouses, WaterProof, Super153045.Super1530
setstate Wama 2025-02-14 11:40:08 .type Washer
setstate Wama 2025-02-14 11:44:38 Option.EnergyForecast 80 %
setstate Wama 2025-02-14 11:44:38 Option.EstimatedTotalProgramTime 6120 seconds
setstate Wama 2025-02-14 11:44:38 Option.FinishInRelative 6120 seconds
setstate Wama 2025-02-11 11:59:11 Option.LessIroning Off
setstate Wama 2025-02-14 11:44:38 Option.LoadRecommendation 1000 gram
setstate Wama 2025-02-11 11:59:11 Option.Prewash Off
setstate Wama 2025-02-12 11:11:57 Option.ProcessPhase
setstate Wama 2025-02-12 11:11:57 Option.ProgramProgress 0 %
setstate Wama 2025-02-12 11:11:57 Option.RemainingProgramTime
setstate Wama 2025-02-14 11:44:38 Option.RemainingProgramTimeIsEstimated On
setstate Wama 2025-02-14 11:38:34 Option.RinseHold Off
setstate Wama 2025-02-14 11:44:38 Option.RinsePlus Off
setstate Wama 2025-02-11 11:59:11 Option.SpeedPerfect On
setstate Wama 2025-02-14 11:44:38 Option.SpinSpeed RPM800
setstate Wama 2025-02-14 11:44:38 Option.Stains Off
setstate Wama 2025-02-14 11:44:38 Option.Temperature GC30
setstate Wama 2025-02-14 11:44:38 Option.WaterForecast 80 %
setstate Wama 2025-02-14 11:44:38 Option.WaterPlus Off
setstate Wama 2025-02-14 11:44:38 Setting.ActiveProgram
setstate Wama 2025-02-12 11:29:44 Setting.PowerState On
setstate Wama 2025-02-14 11:44:38 Setting.SelectedProgram WaterProof
setstate Wama 2025-02-14 11:38:26 Status.DoorState Open
setstate Wama 2025-02-14 11:38:26 Status.LocalControlActive Off
setstate Wama 2025-02-14 11:38:26 Status.OperationState Ready
setstate Wama 2025-02-14 11:38:26 Status.RemoteControlActive On
setstate Wama 2025-02-14 11:38:26 Status.RemoteControlStartAllowed Off
setstate Wama 2025-02-14 11:44:23 lastErr Program not supported
setstate Wama 2025-02-14 11:38:23 state idle
setstate Wama 2025-02-14 11:38:23 state1 Tür offen
setstate Wama 2025-02-14 11:38:23 state2 -



Ich hoffe, das hilft weiter...

Dankeschön für deine Arbeit!
fhem 6.0 auf Rpi3 Bookworm
HM-LAN-CFG (FW 0.965), HM-MOD-UART, 2x HM-TC-IT-WM-W-EU, 4x HM-Sec-RHS und 3x HM-CC-RT-DN, 6x HM-LC-Bl1-FM mit je 1x Somfy-Motor,
2x HM-LC-SW2-FM für Licht und Lüfter, 2x HM-PB-6-WM55, Alexa, Jeelinkcross, CUL, CUNO2, IR-Blaster

isy

#25
Hallo Jörg,
noch ein kleiner Fund im Log heute (V 1.31):
2025.02.14 15:41:15 1: PERL WARNING: Argument "" isn't numeric in int at ./FHEM/48_HomeConnect.pm line 1928.
2025.02.14 15:41:40 1: [HomeConnect_HandleError] HB772G1B1: Error "Program not supported"

HB772G1B1 ist ein Backofen. Log anbei.

VG Helmut

Update Log und Modulversion
Ein Weg wird erst zu einem Weg, wenn man ihn geht

87insane

Anbei mal mein Vorschlag fürs devStateIcon:
{
my $ownstate = ReadingsVal($name,'state','ERR');
my $program = ReadingsVal($name,'state1','ERR');
my $remtime = ReadingsVal($name,'state2','ERR');
my $propercent = ReadingsVal($name,'Option.ProgramProgress','ERR');
my $doorstate = ReadingsVal($name,'Status.DoorState','ERR');

my $pic = $ownstate =~ m,run,
? 'scene_dishwasher@red'
: $ownstate =~ m,offline,
? 'scene_dishwasher@brown'
: $ownstate =~ m,aborting,
? 'scene_dishwasher@orange'
: $ownstate =~ m,idle,
? 'scene_dishwasher@black'
: $ownstate =~ m,finished,
? 'scene_dishwasher@blue'
: $ownstate =~ m,ready,
? 'scene_dishwasher'
: 'scene_dishwasher';

my $text = $ownstate =~ m,run,
? "$propercent noch $remtime / "
: $doorstate eq "Tür offen"
? "$doorstate"
: "$program";

my $text2 = $ownstate =~ m,run,
? "$program"
: "";

"<div><a href=\"/fhem?cmd.dummy=set $name toggle&XHR=1\"></a>".FW_makeImage($pic)."
$text $text2
</div>"
}

Ist noch nicht alles 100%, da ich noch nicht die ganzen neuen Ausgaben kenne. Das hier wäre die Spülmaschine.

Adimarantis

Zitat von: locodriver am 14 Februar 2025, 16:41:07Ich hoffe, das hilft weiter...
Aus dem log sehe ich das dein Access Scope viel zu beschränkt ist:
2025.02.14 11:38:14 accessScope: IdentifyAppliance MonitorDas dürfte der Grund für die meisten Probleme sein - du darfst schlicht und ergreifend fast nix.
Wahrscheinlich hast du das Attribut so in der HomeConnectConnection Device gesetzt?
Lösche mal das Attribut, damit er den Default nimmt.
Du musst dann meines Wissens ein "logout" machen und erneut einloggen, damit das die API mitbekommt.
Raspberry 4 + HM-MOD-RPI-PCB (pivCCU)/RfxTrx433XL/Zigbee
Module: 50_Signalbot, 48_HomeConnect, 52_I2C_ADS1x1x , 58_RPI_1Wire, (50_SPI_MAX31865)

Adimarantis

Zitat von: isy am 14 Februar 2025, 17:15:562025.02.14 15:41:15 1: PERL WARNING: Argument "" isn't numeric in int at ./FHEM/48_HomeConnect.pm line 1928.
2025.02.14 15:41:40 1: [HomeConnect_HandleError] HB772G1B1: Error "Program not supported"
Ersteres wahrscheinlich ein Folgefehler aus dem zweiten, was in der V2.1 gefixt sein sollte. Mach ich in die V2.2 aber noch eine extra Absicherung ein.
Raspberry 4 + HM-MOD-RPI-PCB (pivCCU)/RfxTrx433XL/Zigbee
Module: 50_Signalbot, 48_HomeConnect, 52_I2C_ADS1x1x , 58_RPI_1Wire, (50_SPI_MAX31865)

locodriver

Das ist noch drin gewesen, als die Verbindung zu BSH nicht funzte...

Habe ich jetzt rausgenommen und einen Restart von fhem gemacht - es sieht besser aus. Es werden auch mehr readings angelegt. :)
Allerdings kommt immer noch:

lastErr    Insufficient scope for this resource
Und das "Translate" scheint auch noch nicht so zu funzen, ich bekomme kein neues "deutsches" Reading für:

"SelectedProgram". Oder verstehe ich das falsch?

Dankeschön.
fhem 6.0 auf Rpi3 Bookworm
HM-LAN-CFG (FW 0.965), HM-MOD-UART, 2x HM-TC-IT-WM-W-EU, 4x HM-Sec-RHS und 3x HM-CC-RT-DN, 6x HM-LC-Bl1-FM mit je 1x Somfy-Motor,
2x HM-LC-SW2-FM für Licht und Lüfter, 2x HM-PB-6-WM55, Alexa, Jeelinkcross, CUL, CUNO2, IR-Blaster