HomeConnect V2 released

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

Vorheriges Thema - Nächstes Thema

Adimarantis

V2.2 eingecheckt:
- Es ist jetzt möglich DelayedStart auf "0" zu setzen, um ein Gerät im DelayedStart sofort zu starten
- Nachdem ich in einem Fall Probleme hatte ein Programm zu starten, da eine Zusatzoption nicht akzeptiert wurde, habe ich das senden von Zusatzoptionen ganz entfernt. Sollte nicht notwendig sein, da diese ja alle gesetzt schon vorher gesetzt werden.
- Code etwas aufgeräumt
- Option eingeführt um Übersetzungen in der HomeConnectConnection Device trotz language="DE" abzuschalten (Attribut translation=0) - es gibt manchmal seltsame Effekte in der API wenn die Übersetzung eingeschaltet ist. Mit dieser Option ist es dann einfach möglich es mit und ohne Übersetzung zu probieren
- Wenn beim FHEM Start gewisse Infos (z.B. Liste der Programme) nicht geholt werden konnten, weil das Gerät aus war, sollte das jetzt automatisch nachgeholt werden, sobald das Gerät eingeschaltet wird (nicht getestet)
- Logik beim Holen von ProgramOptions überarbeitet. Es gab Fälle in denen die Abfrage falsch gemacht wurde.
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: locodriver am 15 Februar 2025, 11:24:32lastErr    Insufficient scope for this resource
Schau mal auf den timestamp - vielleicht ist das alt? Sonst nochmal ein aktuelles Logfile.
ZitatUnd das "Translate" scheint auch noch nicht so zu funzen, ich bekomme kein neues "deutsches" Reading für:

"SelectedProgram". Oder verstehe ich das falsch?
Übersetzt wird der WERT des Readings. Du müsstest also in "Setting.SelectedProgram" den englischen Programnamen haben und in "SelectedProgram" den deutschen.
Raspberry 4 + HM-MOD-RPI-PCB (pivCCU)/RfxTrx433XL/Zigbee
Module: 50_Signalbot, 48_HomeConnect, 52_I2C_ADS1x1x , 58_RPI_1Wire, (50_SPI_MAX31865)

isy

Moin,
gerade eine Kleinigkeit gefunden:
- V2.2 set "Partly open door" verschwindet im Dropdown Menü beim Ofen HB772G1B1 nicht, obwohl es im Attribut excludeSettings automatisch eingetragen wurde.
Ein erneutes get Settings ändert nichts.
Ein Weg wird erst zu einem Weg, wenn man ihn geht

Adimarantis

Zitat von: isy am 15 Februar 2025, 11:45:00- V2.2 set "Partly open door" verschwindet im Dropdown Menü beim Ofen HB772G1B1 nicht, obwohl es im Attribut excludeSettings automatisch eingetragen wurde.
Das kann ich nicht nachvollziehen. Machst du mal ein "list" ?
Raspberry 4 + HM-MOD-RPI-PCB (pivCCU)/RfxTrx433XL/Zigbee
Module: 50_Signalbot, 48_HomeConnect, 52_I2C_ADS1x1x , 58_RPI_1Wire, (50_SPI_MAX31865)

isy

#34
Here we are:

Internals:
  DEF        hcconn 384090390173005938-001
  FUUID      677a5461-f33f-27cb-e16b-55479df68becbfe9
  NAME      HB772G1B1
  NR        1274
  NTFY_ORDER 50-HB772G1B1
  STATE      Autostart (-)
  TYPE      HomeConnect
  aliasname  Backofen
  brand      Siemens
  eventCount 19
  events   
  haId      384090390173005938-001
  hcconn    hcconn
  logfile    Backofen
  model      Oven
  offline    0
  prefix    Cooking.Oven
  programs  HeatingMode.HotAir, HeatingMode.TopBottomHeating, HeatingMode.TopBottomHeatingEco, HeatingMode.HotAirGrilling, HeatingMode.PizzaSetting, HeatingMode.FrozenHeatupSpecial, HeatingMode.BottomHeating, HeatingMode.PreHeating
  settings  PowerState, ChildLock, AlarmClock
  type      Oven
  version    2.2
  vib        HB772G1B1
  OLDREADINGS:
  READINGS:
    2025-02-15 11:43:45  Setting.ChildLock Off
    2025-02-15 11:43:45  Setting.PowerState Standby
    2025-02-15 11:43:17  Status.CurrentCavityTemperature 32 °C
    2025-02-15 11:43:17  Status.DoorState Closed
    2025-02-15 11:43:17  Status.LocalControlActive Off
    2025-02-15 11:43:17  Status.OperationState Inactive
    2025-02-15 11:43:17  Status.RemoteControlActive On
    2025-02-15 11:43:17  Status.RemoteControlStartAllowed On
    2025-02-15 11:43:24  lastErr        Command: BSH.Common.Command.PartlyOpenDoor not supported
    2025-02-15 11:43:17  state          auto
    2025-02-15 11:43:17  state1          Autostart
    2025-02-15 11:43:17  state2          -
  data:
    finished 
    poweroff  PowerStandby
    retrans:
      4D_Heißluft HeatingMode.HotAir
      Auftauen  HeatingMode.Defrost
      Flächengrill HeatingMode.GrillLargeArea
      Heißluft  HeatingMode.HotAir
      HeißluftSchonend HeatingMode.HotAirGentle
      Heißluftgrill HeatingMode.HotAirGrilling
      LangsamGaren HeatingMode.SlowCook
      Ober-/Unterhitze HeatingMode.TopBottomHeating
      Ober/Unterhitze HeatingMode.TopBottomHeating
      Pizza      HeatingMode.PizzaSetting
      Pizzastufe HeatingMode.PizzaSetting
      Pyrolyse  Cleaning.Pyrolysis
      Sanfte_Ober-/Unterhitze HeatingMode.TopBottomHeatingEco
      Umluftgrillen HeatingMode.HotAirGrilling
      Unterhitze HeatingMode.BottomHeating
      Vorheizen  HeatingMode.PreHeating
      Warmhalten HeatingMode.KeepWarm
      coolStart-Funktion HeatingMode.FrozenHeatupSpecial
    sets:
      CurrentCavityTemperature 1
    settings:
      AlarmClock:
        name      BSH.Common.Setting.AlarmClock
        trans      Alarm
        unit      seconds
        value      0
      ChildLock:
        name      BSH.Common.Setting.ChildLock
        trans      Kindersicherung
        value      Off
        values    On,Off
      PowerState:
        name      BSH.Common.Setting.PowerState
        trans      Energiezustand
        type      BSH.Common.EnumType.PowerState
        value      Standby
    status:
      CurrentCavityTemperature:
        name      Cooking.Oven.Status.CurrentCavityTemperature
        unit      °C
        value      32
      DoorState:
        name      BSH.Common.Status.DoorState
        trans      Tür
        type      BSH.Common.EnumType.DoorState
        value      Closed
      LocalControlActive:
        name      BSH.Common.Status.LocalControlActive
        trans      Lokale Bedienung aktiv
        value      Off
        values    On,Off
      OperationState:
        name      BSH.Common.Status.OperationState
        trans      Betriebsstatus
        type      BSH.Common.EnumType.OperationState
        value      Inactive
      RemoteControlActive:
        name      BSH.Common.Status.RemoteControlActive
        trans      Fernbedienung
        value      On
        values    On,Off
      RemoteControlStartAllowed:
        name      BSH.Common.Status.RemoteControlStartAllowed
        trans      Fernstart
        value      On
        values    On,Off
    trans:
      Cleaning.Pyrolysis Pyrolyse
      HeatingMode.BottomHeating Unterhitze
      HeatingMode.Defrost Auftauen
      HeatingMode.FrozenHeatupSpecial coolStart-Funktion
      HeatingMode.GrillLargeArea Flächengrill
      HeatingMode.HotAir 4D_Heißluft
      HeatingMode.HotAirGentle HeißluftSchonend
      HeatingMode.HotAirGrilling Umluftgrillen
      HeatingMode.KeepWarm Warmhalten
      HeatingMode.PizzaSetting Pizzastufe
      HeatingMode.PreHeating Vorheizen
      HeatingMode.SlowCook LangsamGaren
      HeatingMode.TopBottomHeating Ober-/Unterhitze
      HeatingMode.TopBottomHeatingEco Sanfte_Ober-/Unterhitze
  helper:
    clear      0
    details    -1
    elapsed    0
    eventChannelTimeout 1739619654.85839
    init      1
    init_count 3
    key       
    options    -1
    programs  1
    retrycounter 0
    settings  1
    stateupdate 0
    status    1
Attributes:
  alias      Backofen
  excludeSettings OpenDoor, PartlyOpenDoor
  icon      scene_baking_oven
  logfile    Backofen
  room      Küche
  stateFormat state1 (state2)
Ein Weg wird erst zu einem Weg, wenn man ihn geht

Adimarantis

Ok, das dürfte das Leerzeichen sein. Muss ich dann vorsichtichtshalber entfernen
Raspberry 4 + HM-MOD-RPI-PCB (pivCCU)/RfxTrx433XL/Zigbee
Module: 50_Signalbot, 48_HomeConnect, 52_I2C_ADS1x1x , 58_RPI_1Wire, (50_SPI_MAX31865)

locodriver

Zitat von: Adimarantis am 15 Februar 2025, 11:34:13
Zitat von: locodriver am 15 Februar 2025, 11:24:32lastErr    Insufficient scope for this resource
Schau mal auf den timestamp - vielleicht ist das alt? Sonst nochmal ein aktuelles Logfile.
ZitatUnd das "Translate" scheint auch noch nicht so zu funzen, ich bekomme kein neues "deutsches" Reading für:

"SelectedProgram". Oder verstehe ich das falsch?
Übersetzt wird der WERT des Readings. Du müsstest also in "Setting.SelectedProgram" den englischen Programnamen haben und in "SelectedProgram" den deutschen.


Ich hatte "lastErr" mal gelöscht - es war dann wieder angelegt und mit einer Fehlermeldung gefüllt worden - jetzt steht allerdings "ok" drin.

Die nächsten zwei Wochen bin ich nicht da, danach kann ich weiter mit testen.
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

locodriver

#37
Bin wieder da...

Heute habe ich mal das allgemeine log (reverse) durchgesehen und folgende Warnungen entdeckt:

2025.03.02 12:20:42.808 1: [HomeConnect_HandleError] Wama: Error "HomeAppliance is offline"
2025.03.02 12:12:20.283 1: [HomeConnect_CloseEventChannel] Wama: disconnected from event channel
...
2025.03.02 12:11:03.261 1: PERL WARNING: Use of uninitialized value $event in string eq at ./FHEM/48_HomeConnect.pm line 2510.
2025.03.02 12:11:03.261 1: PERL WARNING: Use of uninitialized value $event in string eq at ./FHEM/48_HomeConnect.pm line 2506.
2025.03.02 12:11:03.260 1: PERL WARNING: Use of uninitialized value $event in string eq at ./FHEM/48_HomeConnect.pm line 2498.
...
2025.03.02 11:56:36.069 3: [HomeConnect_ResponseGetSettings] Wama: error getting settings, replacing by default settings for type Washer
2025.03.02 11:56:36.060 1: [HomeConnect_HandleError] Wama: Error "Insufficient scope for this resource"
...


State1 und 2 kommen jetzt in deutsch :)

Gibt es eine Möglichkeit, die Warnung, dass zu viel Schaum vorhanden ist (in der App) auch als reading in fhem zu hinterlegen? Da sich die verbleibende Waschzeit dann wieder erhöht, könnte man das eventuell auswerten...

Ansonsten bekomme ich über Alexa die Ansage, dass die Maschine fertig ist
(DOELSEIF
([Wama:Option.ProgramProgress] eq "100 %") (set WZ_Echo_Dot speak Die Waschmaschine ist fertig))

und ich kann den Status abfragen und bekomme den aktuellen Status der Wama und die Restzeit angesagt.

if ($roomName =~ "waschmaschine|wama"){{
        $textAlexa = "Die Waschmaschine ist beim ".ReadingsVal('Wama','Option.ProcessPhase','')." und in circa ".int(ReadingsNum('Wama','Option.RemainingProgramTime','')/60)." Minuten fertig."};       
        if (ReadingsVal("Wama","Status.OperationState","") =~ "Ready") {$textAlexa = "Die Waschmaschine läuft momentan nicht"};   
    }

Gut wäre noch, wenn die ProcessPhase auch noch auf deutsch wäre...
Aber das ist dann eine Zugabe.

Dankeschön für deine sehr gute Arbeit, um BSH etwas unserfriendly zu gestalten.
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

Zitat von: locodriver am 02 März 2025, 16:56:412025.03.02 12:11:03.261 1: PERL WARNING: Use of uninitialized value $event in string eq at ./FHEM/48_HomeConnect.pm line 2510.
Dann fange ich das mal ab...
Zitat2025.03.02 11:56:36.069 3: [HomeConnect_ResponseGetSettings] Wama: error getting settings, replacing by default settings for type Washer
Das kann normal sein, z.B. wenn die WaMa nicht eingeschaltet ist, funktioniert diese Abfrage bei manchen Geräten dann nicht.
Zitat2025.03.02 11:56:36.060 1: [HomeConnect_HandleError] Wama: Error "Insufficient scope for this resource"
Das stört mich am meisten - da bräuchte ich mal ein komplettes logfile das mit dem Attribut "logfile" erzeugt wurde. Dürfte ein Konfigurationsproblem mit dem accessScope sein.
ZitatGibt es eine Möglichkeit, die Warnung, dass zu viel Schaum vorhanden ist (in der App) auch als reading in fhem zu hinterlegen? Da sich die verbleibende Waschzeit dann wieder erhöht, könnte man das eventuell auswerten...
Leider liefert BSH das nicht über die API. Habe schon angeregt hier mehr Events durchzureichen. Genau das "Schaum" Problem hatte ich auch erst - allerdings war das am Ende gar kein Schaum, sondern eine Haarnadel die sich in der Pumpe quergestellt hatte, so dass er nicht abpumpen konnte - und das hat er dann als Schaum interpretiert.
ZitatGut wäre noch, wenn die ProcessPhase auch noch auf deutsch wäre...
Die kannst du dir mit
attr ... translate ProcessPhase
übersetzen lassen - steht dann im Reading "ProcessPhase" (ohne "Option." davor)
Raspberry 4 + HM-MOD-RPI-PCB (pivCCU)/RfxTrx433XL/Zigbee
Module: 50_Signalbot, 48_HomeConnect, 52_I2C_ADS1x1x , 58_RPI_1Wire, (50_SPI_MAX31865)

locodriver

Danke für deine Antworten.

Bei der nächsten Wäsche werde ich das log aktivieren.

Im accessScope steht aktuell: IdentifyAppliance Monitor
Im Attribut translate: SelectedProgram ProcessPhaseDies müsste also passen. Ich habe mir momentan so beholfen, dass ich in der sub die englischen Wörter während der Erstellung des Textstrings durch deutsche ersetze.

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

Zitat von: locodriver am 04 März 2025, 17:39:54Im accessScope steht aktuell:
IdentifyAppliance Monitor
Das ist zu wenig.
Nimm mal: Settings IdentifyAppliance Control Monitor Washer-Settings
Oder einfach den Default (Attribut löschen)
Du musst dich aber abmelden und wieder anmelden damit das übernommen wird.
ZitatIm Attribut translate:
SelectedProgram ProcessPhase
Da gehört ein Komma dazwischen.
Raspberry 4 + HM-MOD-RPI-PCB (pivCCU)/RfxTrx433XL/Zigbee
Module: 50_Signalbot, 48_HomeConnect, 52_I2C_ADS1x1x , 58_RPI_1Wire, (50_SPI_MAX31865)

locodriver

ZitatIm Attribut translate:
    Code Auswählen
    SelectedProgram ProcessPhase

Da gehört ein Komma dazwischen.

Wer lesen kann... :))

Zum accessScope:

Das Attribut hatte ich schon gelöscht, allerdings war das reading noch da. Habe ich jetzt entfernt und bin auf die nächste Wäsche gespannt... :)
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

Das Reading zeigt nur an was vom Server kommt.
Solange du kein "set hcconn logout" und erneutes Login machst, haben Änderungen in FHEM keinen Effekt.
Raspberry 4 + HM-MOD-RPI-PCB (pivCCU)/RfxTrx433XL/Zigbee
Module: 50_Signalbot, 48_HomeConnect, 52_I2C_ADS1x1x , 58_RPI_1Wire, (50_SPI_MAX31865)

Adimarantis

Update 2.3 in Github eingecheckt.
Nur ein paar Kleinigkeiten verbessert, hauptsächlich wurden die state* Readings in manchen Situationen bei meiner Waschmaschine nicht aktualisiert
Raspberry 4 + HM-MOD-RPI-PCB (pivCCU)/RfxTrx433XL/Zigbee
Module: 50_Signalbot, 48_HomeConnect, 52_I2C_ADS1x1x , 58_RPI_1Wire, (50_SPI_MAX31865)

isy

Moin Jörg,
das Thema "PartlyOpenDoor" bei meinem Ofen funktionierte ja schon mit vorherigen Release.
Aktuell wird das Setting "OpenDoor" auch mit der aktuellen Version noch nicht ins Attribut "excludeSettings" übertragen.
Auch wenn ich es manuell als "OpenDoor" eintrage, bleibt es in der DropDown Liste erhalten, nur mit "OpenDoor " funktioniert die Logik.

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