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

Ich habe mich über die vollkommen unergonomischen Set-Befehle geärgert.

Anbei eine - vollkommen inoffizielle und nicht autorisierte - Version von 48_HomeConnect.pm, in welcher diese Befehle (zumindest in fast allen Fällen der mir zur Verfügung stehenden BSH-Geräte) solche kryptischen Kommandos wie

set <device> BSH.Common.Setting.ChildLock true

ersetzt durch

set <device> childLock on

Es fehlen noch ein paar Dinge, wie etwa das komfortable Setzen von Alarm- oder Verzögerungszeiten und die Auswahl eines Programms, das kommt noch.

Bitte mal testen und Wünsche  für Erweiterungen der Kommandos (z.B. auch für Kaffeemaschinen) hier posten.

LG

pah

Edit: Ich habe die Version noch einmal aktualisiert - jetzt können sowohl die Optionen gesetzt werden, die nur während des Programmlaufs möglich sind, als auch diejenigen, die nur vor dem Programmstart wählbar sind.


Stonemuc

#2
Ich muss mal kurz was zu diesem ganzen unergonomischen Zeug über die BSH Api sagen....es nervt mich total.
Kann man da was bei der Waschmaschine vereinfachen?

Den Geschirrspüler kann ich z.B. mit:
set SX758X06TE startProgram
starten - der läuft dann auch in jeglicher vorher eingestellter Variation der Programme und Zusatzoptionen an.

Bei der Waschmaschine sieht das ganz anders aus, denn mit:
set WAYH2841 startProgram
kommt nur die Fehlermeldung, dass ich ein Program auswählen muss...
Also gebe ich dann:
set WAYH2841 startProgram Mix
ein und die Maschine läuft an. Aber nur wenn auch Mix eingestellt ist am "Handrad" der Maschine.

Wenn ich da etwas automatisieren möchte per DOIF, ist das ein riesen Mist, da man dann die Programmbezeichnung splitten muss und das Programm dann erst starten kann - wenn er es zuvor denn auch richtig abgerufen hat was eingestellt ist, denn die readings aktualisieren sich auch nicht immer.

Gut wäre wenn man die Waschmaschine so wie den Geschirrspüler starten könnte...
FHEM aus Raspberry PI 3 B+, Haussteuerung auf EnOcean Basis, Tecalor THZ 404eco Wärmepumpe

Prof. Dr. Peter Henning

#3
Das ist auch bei meiner Waschmaschine das Ziel....

Ich denke, dass dieses dauernde Abfragen der Optionen, das immer wieder alle Auswahlmöglichkeiten durcheinander wirft, als nächstes herausgeworfen wird.

Das muss einmal geholt und dann dauerhaft als Attribut gespeichert werden.

LG

pah

Stonemuc

#4
Danke, dass du dich darum kümmerst. Ich werde deine Version mal testen.
Ich bin leider programmiertechnisch eine richtige Niete...hab ich schon damals gemerkt, als ich mal das Vordiplom in Elektrotechnik gemacht habe....
Nen fertigen Code kann ich teilweise umschreiben mit Mühe und viel Zeit, aber was neues implementieren geht nicht.

Ich löse das bei der Waschmaschine aktuell mit dem Splitten des Programms...

Was mir noch einfällt - die Waschmaschine zeigt immer eine Sekunde Restlaufzeit an - warum auch immer. Kann man das noch irgendwie beheben? Oder ist das ein Fehler bei BSH in der API?
FHEM aus Raspberry PI 3 B+, Haussteuerung auf EnOcean Basis, Tecalor THZ 404eco Wärmepumpe

Prof. Dr. Peter Henning

#5
So, ich bin mal wieder etwas weiter. Programmauswahl und das Einstellen von Optionen etc. funktioniert bei der Spülmaschine schon ganz gut. Auch kann ich mit

set <Spülmaschine> selectProgram Quick45
set <Spülmaschine> delayType endtime
set <Spülmaschine> delayTime 06:00
set <Spülmaschine> startProgram

erreichen, dass die Spülmaschine mitten in der Nacht losläuft und um Punkt 06:00 in der Frühe fertig ist (andere Werte für delayType sind "relative" und "absolute". Da kann man raten, was die machen).

Beim Ofen funktioniert das Setzen des Alarms auf diese Weise schon ganz gut, auch progDuration geht zu setzen. Programmauswahl und Temperatur aber nicht :-((

Leider scheitern diese etwas komfortableren Befehle für den Ofen an "Insufficient scope" - also fehlenden Rechten von FHEM. Die 2017 mitgeteilten Ausreden von BSH, dass dieses vom Gesetzgeber nicht zugelassen sei, sind Unsinn - schließlich kann ich über die BSH  App den Ofen aus der Ferne starten.

Ich werde mich also als Nächstes der Waschmaschine widmen.

LG

pah

P.S.: Anbei die aktuelle Bastelversion des Moduls, sowie ein Icon für den verzögerten Start der Spülmaschine

EDIT: Ups, die zuerst angehängte Version hatte einen peinlichen Fehler drin, ist jetzt behoben.


Det20

Wie geil, gerade die Endzeit ist echt sinnvoll.
Danke dir!

Prof. Dr. Peter Henning

Ein wenig kryptiscch ist das immer noch, weil mir noch die zündende Idee fehlt, das mit den relativ begrenzten Mitteln der normalen Widgets zu realisieren.

Derzeit ist der Ablauf so:

- Zuerst delayType wählen (relative, absolute oder endtime) bzw. alarmType (relative oder absolute).
- Dann delayTime bzw. alarmTime eingeben. Nur Ziffern => Anzahl der Sekunden

-- bei delayTime hh:mm => Stunden und Minuten, sagen wir 6:00
        Wenn delayType = relative => Starte in 6 Stunden
        Wenn delayType = absolute => Starte um 6:00 in der Frühe
        Wenn delayType = endtime => Starte so, dass das gewählte Programm um 6:00 in der Frühe zu Ende ist

-- denn bei alarmTime hh:mm:ss => optional Stunden, Minuten und Sekunden, sagen wir 04:30
        Wenn alarmType = relative => Alarm in 4 Minuten 30 Sekunden
        Wenn alarmType = absolute => Alarm um 4 Minuten und 30 Sekunden nach Mitternacht - nicht um 4:30 in der Frühe, dazu müsste man 04:30:00 eingeben

LG

pah

   

Prof. Dr. Peter Henning

Die oben angehängte Version hatte noch einen neu eingebauten Fehler, den habe ich jetzt behoben.

LG

pah

Prof. Dr. Peter Henning

So, ich habe da jetzt noch etwas Arbeit hineingesteckt. Insbesondere hat sich im Betrieb herausgestellt, dass die Angabe "delaytype" und "delayTime" eben nicht sehr komfortabel ist. Stattdessen kann man jetzt eines der drei Kommandos "delayRelative", "delayStartTime", "delayEndTime" oder eines des beiden Kommandos "alarmRelative", "alarmEndTime" verwenden, um den verzögerten Start des Programms oder den Ablauf des Kurzzeitweckers _in_ einer relativen Zeitspanne oder _um_ eine bestimmte Zeit einzustellen.

Dazu gibt es jetzt eine schöns Sprachsteuerung. Meine Chefin muss also nur noch sagen:

"Lass die Spülmaschine bis um 6 Uhr laufen" - und bekommt einen verzögerten Start, der morgen früh um 6:00 abläuft.

LG

pah

P.S.: Waschmaschine ist als nächstes dran. Frage in die Runde: Hat irgendjemand einen Workaround gefunden, einen Backofen doch zu steuern?

Supadone

Danke erstmal für deine Mühen :)
Falls es dir etwas hilft kann ich dir leider nur weitere Infos zu Kaffeemaschine und Dunstabzug anbieten.

Grüße

Andy

Prof. Dr. Peter Henning

Die würde ich tatsächlich auch gerne "richtig" steuern mit diesem Modul.

Sehn wir mal. Aktuell bin ich durch eine fette Omikron-Infektion ziemlich geerdet.

LG

pah

Det20

#12
Hallo,

leider läuft diese neue Version noch nicht rund. Sobald ich meinen Geschirrspüler mit "set ... startProgram" anschalten will (Fernstart ist aktiv), stürzt FHEM ab. Als Meldung sehe ich im Log nur


2022.11.07 11:09:43 1: [HomeConnect] SN578S06TD: starting program Eco50
Can't use an undefined value as a HASH reference at ./FHEM/48_HomeConnect.pm line 614.


... Obwohl Debug auf 2, Verbose auf 5 ist. Soweit ich mich erinnere, lief das aber schonmal. Glaube ich zumindest.

Prof. Dr. Peter Henning

Öh, das tut mir leid - aber in meiner aktuell ganz gut laufenden Version ist in Zeile 614 ein Kommentar...

LG

pah

Det20