Verbesserungs- / Erweiterungswüsche an HomeConnect

Begonnen von Pf@nne, 23 Mai 2018, 16:29:35

Vorheriges Thema - Nächstes Thema

PatrickR

Zitat von: hoppel118 am 12 Mai 2020, 20:27:17
Von was für Freezes redest du?
https://github.com/sw-home/FHEM-HomeConnect/issues/2

Zitat von: hoppel118 am 12 Mai 2020, 20:27:17
Ich habe mit bzw. durch Home Connect keine Freezes.
Auf welchem Wert steht fm_freezeThreshold?

Patrick


Von unterwegs gesendet.
lepresenced - Tracking von Bluetooth-LE-Tags (Gigaset G-Tag) mittels PRESENCE

"Programming today is a race between software engineers striving to build bigger and better idiot-proof programs, and the universe trying to produce bigger and better idiots. So far, the universe is winning." - Rich Cook

zwehn

#16
Hi, Unterstützung des Bosch cookit waere klasse.
Ist gerade seit 2 wochen auf dem Markt.

Nachtrag, mit Init kommt man weiter.
Fhem auf Proxmox VM mit MSI Cubi N8GL mit N5000: HM-USB, HM-Lan, Cul 868, Cul 433, Selbstbau CUL868MHz für Wireless M-Bus, RFXtrx; FS20, HomeMatic Rolladensteuerung, Somfy Markisensteuerung, TextToSpeech, TFA Wetter, Universalsensor Innen/Aussen, Feinstaubsensor. Div Arduino und Esp Easy projekte.

Risiko

Hallo swhome

vielen Dank für das tolle Modul.
Wäre es möglich, das ganze Modul auf "Non-Blocking" umzustellen.
Habe sonst die Befürchtung, dass Homeconnect FHEM zum stehen bringt (jedenfalls bis zum Timeout der HttpUtils_BlockingGet-Aufrufe) , wenn es nicht erreichbar ist.

Risiko.

PatrickR

Hi!

Zitat von: Risiko am 05 August 2021, 16:47:58
Habe sonst die Befürchtung, dass Homeconnect FHEM zum stehen bringt (jedenfalls bis zum Timeout der HttpUtils_BlockingGet-Aufrufe) , wenn es nicht erreichbar ist.

Da ein Fix bereits mehrfach abgelehnt wurde eine Idee für einen Workaround:
Du könntest überlegen, für HomeConnect eine eigene FHEM-Instanz einzurichten.  Ich habe das über einen zweiten FHEM-Container gelöst, der mit der Hauptinstanz über MQTT kommuniziert. Im Ergebnis sehen die Devices fast wie in der eigentlichen FHEM-Instanz aus aber die Hauptinstanz ist sicher vor Freezes (bei mir zuvor teilweise 3 Minuten). Falls Du das umsetzen möchtest sieh Dir auf jeden Fall das Modul MQTT_GENERIC_BRIDGE und die zugehörigen Beispiele im Forum an.

Patrick
lepresenced - Tracking von Bluetooth-LE-Tags (Gigaset G-Tag) mittels PRESENCE

"Programming today is a race between software engineers striving to build bigger and better idiot-proof programs, and the universe trying to produce bigger and better idiots. So far, the universe is winning." - Rich Cook

Heiner

hi, ich hab eine siemens Spuelmaschine ueber Homeconnect angebunden. Kann man eventuell die Readings und deren Values etwas kuerzer gestalten und den "Prefix" Anteil loeschen?

So sieht der ReadingBereich aktuell bei mir aus:

BSH.Common.Event.ProgramAborted               BSH.Common.EnumType.EventPresentState.Off      2021-10-04 22:19:10
BSH.Common.Event.ProgramFinished               BSH.Common.EnumType.EventPresentState.Off      2021-10-05 06:19:24
BSH.Common.Option.ProgramProgress             100 %                                                                 2021-10-05 01:08:45
BSH.Common.Option.RemainingProgramTime    0 seconds                                                            2021-10-05 01:08:45
BSH.Common.Option.StartInRelative                 0 seconds                                                            2021-10-04 22:19:10
BSH.Common.Root.ActiveProgram                     -                                                                        2021-10-05 01:08:45
BSH.Common.Root.SelectedProgram                 Auto2                                                                  2021-10-04 22:19:10
BSH.Common.Setting.PowerState                     BSH.Common.EnumType.PowerState.Off                2021-10-05 01:10:45
BSH.Common.Status.DoorState                        BSH.Common.EnumType.DoorState.Closed             2021-10-05 08:43:59
BSH.Common.Status.OperationState                 BSH.Common.EnumType.OperationState.Inactiv     2021-10-05 01:10:45
BSH.Common.Status.RemoteControlActive         1                                                                        2021-10-04 22:19:10
BSH.Common.Status.RemoteControlStartAllowed  0                                                                     2021-10-04 22:19:10
Dishcare.Dishwasher.Option.BrillianceDry           0                                                                        2021-10-04 22:19:10
Dishcare.Dishwasher.Option.IntensivZone           0                                                                       2021-10-04 22:19:10
Dishcare.Dishwasher.Option.VarioSpeedPlus        0                                                                       2021-10-04 22:19:10
state                                                                Idle                                                                   2021-10-05 08:43:59


Danke fuer jeden Hinweis.

Viele Gruesse

Heiner
Heiner
--------------------------------
fhem auf Pi3+
CUL 868MHz, Signalduino 434MHz, HM-CFG-USB
HM, THZ, Kostal, Somfy, Conbee, Pytonbinding, FritzBox, FTUI, MQTT2

PatrickR

Hallo Heiner!

Zitat von: Heiner am 05 Oktober 2021, 13:08:02
hi, ich hab eine siemens Spuelmaschine ueber Homeconnect angebunden. Kann man eventuell die Readings und deren Values etwas kuerzer gestalten und den "Prefix" Anteil loeschen?

Den Ansatz, die Readings und Values unverändert(?) aus der API durchzureichen, ist eigentlich ziemlich gut. Das ist ziemlich flexibel und auch robust gegenüber Änderungen. Für den optischen Aspekt könntest Du auf FHEM-Bordmittel wie userreadings oder readingsgroups zurückgreifen.

Patrick
lepresenced - Tracking von Bluetooth-LE-Tags (Gigaset G-Tag) mittels PRESENCE

"Programming today is a race between software engineers striving to build bigger and better idiot-proof programs, and the universe trying to produce bigger and better idiots. So far, the universe is winning." - Rich Cook

Timmäää

Grundsäzlich ja, aber es sollte auch konsistent zu anderen Modulen und den Coding Guidelines sein.

Ein State sollte Off, On oder oder was auch immer sein und nicht "BSH.Common.EnumType.PowerState.Off ".

Aber gut. Natürlich geht das auch mit Bordmitteln, aber etwas mehr Anpassung wäre cool, leider kann ich dafür aktuell wenig beisteuern.

PatrickR

#22
Hi!

Zitat von: Timmäää am 30 November 2021, 20:54:11
Grundsäzlich ja, aber es sollte auch konsistent zu anderen Modulen und den Coding Guidelines sein.

Ein State sollte Off, On oder oder was auch immer sein und nicht "BSH.Common.EnumType.PowerState.Off ".

Aber gut. Natürlich geht das auch mit Bordmitteln, aber etwas mehr Anpassung wäre cool, leider kann ich dafür aktuell wenig beisteuern.
Hast Du mal einen Link zu den Coding Guidelines? Die finde ich leider nicht und auch in DevelopmentModuleIntro bin ich auf die Schnelle nicht fündig geworden.

Das Problem ist aber ein anderes. Das zwangsweise Mapping auf Standardwerte erfordert bei komplexen Systemen (so wie der HomeConnect-API) eine Menge an Handarbeit und das ggf. bei jedem neuen unterstützten Gerät. Daher ist es normalerweise nicht leistbar, direkt von Anfang an die Readings zu mappen, selbst wenn es offensichtliche Mappings wie on und off gibt. Dann passiert das, was man z. B. bei HMCCU gut sehen kann: Die Werte werden nach und nach geändert und Eventhandler laufen "still" ins Leere. Zudem vergibt man die Chance, beim Verstehen eines Readings auf die API-Spezifikation zurückzugreifen, die oftmals detaillierter ist als die Commandref. Gibt es keine offensichtlichen Mappings, wird es noch unangenehmer: Der Entwickler müsste "kurze" Values erfinden und aus der Spezifikation des Herstellers in die Commandref übersetzen.  Hat er (nachvollziehbarerweise) dafür keine Zeit, dann bleiben die Phantasievalues undokumentiert und der Rückgriff auf die API-Doku wird erschwert oder erfordert ein Nachlesen des Mappings im Code durch den Nutzer.

Diesen - in meinen Augen - massiven Nachteilen stehen bislang nicht greifbare Vorteile einer Einheitlichkeit von Readings entgegen, die sich - unter Berücksichtigung der Bordmitteln von FHEM (s. o. aber bspw. auch <struct_type>_map bei structures) - vermutlich auf den persönlichen Geschmack beschränken.

Patrick
lepresenced - Tracking von Bluetooth-LE-Tags (Gigaset G-Tag) mittels PRESENCE

"Programming today is a race between software engineers striving to build bigger and better idiot-proof programs, and the universe trying to produce bigger and better idiots. So far, the universe is winning." - Rich Cook

Det20

Lässt sich der aktuelle Stromverbrauch vom Backofen/Geschirrspüler auslesen? Oder gibt das die API nicht her?

Prof. Dr. Peter Henning

Das gibt die API nicht her. Ich habe aber ominöse Readings wie BSH.Common.Option.EnergyForecast mit einem Wert von z.B. 46%.

LG

pah

Adolar

Hallo,
wie schon im Nachbarfred geschrieben, hatte ich vor Allem auf Verbrauchswerte gehofft. Die App schätzt ja vor Programmstart die Werte. Gibt es wirklich keine Messwerte aus dem Gerät?
Füllstand von Salz und Klarspühler wäre auch Klasse.

Dank an den Ersteller,
Gruß,
Adolar

bombardi

Wie es Aussieht gibt es in der API inzwischen eine Möglichkeit die Nachricht für Salz und Klarspüler zu bekommen.
Dishcare.Dishwasher.Event.SaltNearlyEmpty
Dishcare.Dishwasher.Event.RinseAidNearlyEmpty
beide normalerweise mit Inhalt BSH.Common.EnumType.EventPresentState.Off

Aus der Homeconnet API.
Key
Dishcare.Dishwasher.Event.SaltNearlyEmpty

Description
This event is triggered by the home appliance each time when the salt supply is running low.

Key
Dishcare.Dishwasher.Event.RinseAidNearlyEmpty

Description
This event is triggered by the home appliance each time when the rinse aid supply is running low.

Possible values
    Event is present
    Key: BSH.Common.EnumType.EventPresentState.Present
    Description: The event occurred and is present.
    Event is off
    Key: BSH.Common.EnumType.EventPresentState.Off
    Description: The event is off.
    Event confirmed
    Key: BSH.Common.EnumType.EventPresentState.Confirmed
    Description: The event has been confirmed by the user.



Die Readings existieren bei mir, ist aber noch nicht getestet, ich muss erst auf das Ereignis warten wenn Salz oder Klarspüler zur Neige gehen.
Ich habe jeweils ein Notify aufgesetzt
Dishcare.Dishwasher.Event.SaltNearlyEmpty:.BSH.Common.EnumType.EventPresentState.Present
Dishcare.Dishwasher.Event.RinseAidNearlyEmpty:.BSH.Common.EnumType.EventPresentState.Present
Mal sehen ob ich eine Nachricht erhalte.

Prof. Dr. Peter Henning

Klar gibt es eine Nachricht. Alle diese Events sind in der neuen (inoffiziellen) Version enthalten.  Und bei aller Abneigung gegen das überladene DOIF-Modul: Es ist sinnvoller, ein DOIF statt zwei verschiedener notify zu verwenden - dann werden die Events der Spülmaschine nur einmal überwacht. Auszug aus meinem DOIF:
Zitat([SN55ZS49CE:".*Finished.*"] and [07:00-22:30])
({speak("TText 238386743",":130:")},
{speak("Tab1.EG",":130:")})
DOELSEIF
([SN55ZS49CE:".*RinseAidNearlyEmpty.*Present.*"])
( ...)
DOELSEIF
([SN55ZS49CE:".*SaltNearlyEmpty.*Present.*"])
(...)

LG

pah