Autor Thema: Wunschliste HomeConnect-Module  (Gelesen 893 mal)

Offline peterk_de

  • Sr. Member
  • ****
  • Beiträge: 709
Wunschliste HomeConnect-Module
« am: 06 Februar 2018, 21:28:13 »
Liebe HomeConnectler,

ersteinmal ein gigantisch großes Lob! Ich habe nach der Freischaltung ein wenig gespielt, und es funktioniert schon hervorragend.

Ich hätte noch kleine (Low-Priority-) Anregungen für das Modul, die als Interessensbekundung und "weiter so" gedacht sein sollen ;)

- Viele Readings müssen, um in die FHEM-Welt zu passen, durch User wie mich erst manuell "lesbar gemacht" werden, was m.E. das Modul schon übernehmen könnte. Beispiel: Das Reading BSH.Common.Setting.PowerState hat einen Wert wie z.B. BSH.Common.EnumType.PowerState.On ... das muss man sich für diverse Zwecke ersteinmal auf "On" oderso umbasteln. Schön wäre es, wenn ein ReadingsVal, der auf den Regex /(.+\.)([^.]+)/ matcht, automatisch durch SubExpression $2 ersetzt werden würden, d.h. wenn im Beispiel einfach BSH.Common.EnumType.PowerState. abgeschnitten werden würde. Was meint Ihr? Wenn das nicht im Sinne der API-Legislatur ist - die Module halten sich ja auffällig genau an die BSH-API-Nomenklatur - dann gern auch nur nach Setzen eines Attributes "simplifyReadings 1|0" o.ä. Bei den Readingsnamen könnte man das vielleicht auch machen, aber da nervt es nicht ganz so sehr ...

- Die readingFnAttributes werden noch nicht unterstützt ... wein ;) ... kommt das noch?

- Gesetzte Start-Timer (DelayedStart) erzeugen ziemlich viele Events, weil jeweils die Restlaufzeit in Sekunden in die Readings geschrieben wird, die natürlich dann auch korrekterweise alle paar Sekunden runterzählt. Mangels readingFnAttributes kann man das auch nicht unterbinden. Schöner wäre es, wenn hier das Modul automatisch aus aktueller Zeit + der Sekundenanzeige einen Timestamp generieren würde. Gern auch zusätzlich ...

- Das Wort seconds im ReadingsVal bei allen Zeitangaben ist irgendwie unnötig ... OK Einheiten sind ja in FHEM so ne Sache ;)

Ganz liebe Grüße

Peter
FHEM-VM: 2x Intel NUC5i5 Proxmox Cluster
FHEM2FHEM-Roomnodes: 6x Raspi, 1x NUC5i5
Frontends: 4x TabletUI, Siri, Grafana, StreamDeck
IOdevs: 3xHM, CUL868, HarmonyHub, HueBridge
Devices: 86xHomematic, >30xLAN/WiFi, 22xHUE, 15xTechem, 15xBTLE, 5xIPCAM, 4xSONOS, 2xHomeConnect, DENON, Geofency, ..

Offline hannik.k

  • New Member
  • *
  • Beiträge: 6
Antw:Wunschliste HomeConnect-Module
« Antwort #1 am: 07 Februar 2018, 12:43:43 »
Hallo Peter,

bis Deine Anregungen umgesetzt werden würde ich gerne schon mal einige Readings manuell "lesbar" machen.
Bekomme aber die Umsetzung nicht hin :-( . Probiere und Suche schon ne ganze Weile.
Im Online regex tester funzt es z.B. auch mit /\w+$/. Leider nicht in FHEM.
Denke auch, das einige User daran verzweifeln.
Kannst Du bitte mal posten wie so ein UserReading attr aussieht.

Damit z.B. aus dem Reading
BSH.Common.Status.DoorState   BSH.Common.EnumType.DoorState.Closed
ein userReading
Door    Closed
wird.

Vielleicht geht mir ja dann ein Licht auf!
Danke.


LG

Offline peterk_de

  • Sr. Member
  • ****
  • Beiträge: 709
Antw:Wunschliste HomeConnect-Module
« Antwort #2 am: 08 Februar 2018, 21:50:05 »
Mit Userreadings geht es - zumindest offiziell - auch nicht, da die readingFnAttributes noch nicht supported werden. Ich mache das jetzt deshalb temporär mit einem Notify, der die hübschen Readings in ein Dummy schreibt (für den ich dann auch event-on... setzen kann):

Bitte noch anpassen:

meinSpueler = Devicename von dem Homeconnect-Device
meinDummy = Name von dem Dummy, wo die gekürzten Readings reingeschrieben werden


defmod n_makeReadableSpueler notify meinSpueler.* {

  my ($reading_sh, $val_sh) = $EVENT =~ /([^:]+): ([^:]+)/;

  if ($reading_sh =~ /[^: ]+\.([^:. ]+)/) {
    $reading_sh = $1;
  }

  if ($val_sh =~ /[^ ]+\.([^. ]+)/) {
    $val_sh = $1;
  } elsif ($val_sh =~  /([^ ]+) [^ ]+/) {
    $val_sh = $1;
  }

  fhem("setreading meinDummy $reading_sh $val_sh");
}

Das haut auch gleich die ganzen Einheiten weg, die bei der Weiterverarbeitung nicht sonderlich hilfreich sind. Falls du die Einheiten drinbehalten willst, lösche diesen Teil:

elsif ($val_sh =~  /([^ ]+) [^ ]+/) {
    $val_sh = $1;
  }

LG!
« Letzte Änderung: 08 Februar 2018, 21:54:18 von peterk_de »
FHEM-VM: 2x Intel NUC5i5 Proxmox Cluster
FHEM2FHEM-Roomnodes: 6x Raspi, 1x NUC5i5
Frontends: 4x TabletUI, Siri, Grafana, StreamDeck
IOdevs: 3xHM, CUL868, HarmonyHub, HueBridge
Devices: 86xHomematic, >30xLAN/WiFi, 22xHUE, 15xTechem, 15xBTLE, 5xIPCAM, 4xSONOS, 2xHomeConnect, DENON, Geofency, ..

Offline swhome

  • Moderator
  • Full Member
  • ***
  • Beiträge: 225
Antw:Wunschliste HomeConnect-Module
« Antwort #3 am: 09 Februar 2018, 00:28:50 »
Hi, vielen Dank für das nette Feedback.

Home Connect sendet die Einheiten getrennt von den Werten, daher könnte ich mit recht wenig Aufwand ein Konfigurations-Attribut einbauen, das generell ein Anhängen der Einheit in jeglichen readings unterbindet. Oder wäre besser nur die Einheit „Sekunden“ zu unterdrücken?

Zu den Konstanten ala BSH.etcetc: finde ich auch nicht schön, war mir aber nicht sicher ob die Werte noch eindeutig sind wenn man nur den letzten Abschnitt übernimmt. Außerdem können auch Readings auch „Settings“ sein, würde ich diesem Fall die Präfixe abschneiden, könnte man den Wert nicht mehr an das Api zurück senden.
Im Einsatz: FHEM auf Raspberry Pi mit 350 devices, hauptsächlich Homematic Wired und HM-Heizungsregler, dazu diverse Eigenbauten für Fussbodenheizung und LED Beleuchtung. Und jetzt mit Alexa!

Andre0909

  • Gast
Antw:Wunschliste HomeConnect-Module
« Antwort #4 am: 09 Februar 2018, 19:40:28 »
Hi, vielen Dank für das nette Feedback.

Oder wäre besser nur die Einheit „Sekunden“ zu unterdrücken?



das wäre schonmal MEGA :>

 

decade-submarginal