FHEM Forum

FHEM - Hausautomations-Systeme => Homematic => Thema gestartet von: rih am 24 April 2021, 16:57:34

Titel: Button-Auswertung HB-UNI-SenAct-4-4-RC
Beitrag von: rih am 24 April 2021, 16:57:34
Ich habe mir gerade den HB-UNI-SenAct-4-4-RC aufgebaut. Die Funktion der 4 Schaltkanäle ist soweit klar. Bei den Button-Kanälen habe ich jedoch ein Verständniss-Problem mit dem Status bzw. Reading:

- Taster kurz drücken erzeugt ein Short mit hochzählendem Zahlenwert bei jedem Drücken (short-1, short-2 usw.), aber kein ShortRelease
- Taster lang drücken erzeugt ein LongPress mit hochlaufendem Zahlenwert, je nachdem wie lange gedrückt wird. Taster loslassen erzeugt ein LongRelease mit Zahlenwert.

Ich hatte einfach einen Eingang erwartet, der on / off oder von mir aus auch Short / ShortRelease bzw. Long / LongRelease im Status anzeigt. Aber mit dem o.g. Verhalten weiß ich gerade nichts anzufangen. Wie soll man denn so etwas auswerten? Wie habt ihr das gehandhabt?
Titel: Antw:Button-Auswertung HB-UNI-SenAct-4-4-RC
Beitrag von: frank am 24 April 2021, 17:32:49
ein short ist ja bereits, genau genommen, ein shortRelease.
am besten button und actor peeren.

was hast du denn vor?
Titel: Antw:Button-Auswertung HB-UNI-SenAct-4-4-RC
Beitrag von: rih am 24 April 2021, 18:15:07
Zitat von: frank am 24 April 2021, 17:32:49
was hast du denn vor?

Hm, ich dachte, ich hätte das Problem genau beschrieben ...

Ich will einfach einen am HB-UNI-SenAct-4-4 angeschlossenen Taster- oder Schalterzustand abfragen. Dazu möchte ich den Status des entsprechenden Button-Kanals auswerten. Bei kurzem Drücken ändert sich der state aber nicht wirklich. Aktuell steht im state "Short_86 (to VCCU)". Beim nächsten Drücken steht dann Short_87 drin. Dazwischen ist aber kein Wechsel auf released oder open.
Dasselbe beim langen Drücken, hier aber noch von der gedrückten Zeit abhängig. Hier kommt dann allerdings beim Loslassen ein Released, aber auch mit wechselnden anhängenden Zahlen.

Peeren will ich nicht. Die Aktor- und die Button-Kanäle sollen voneinander unabhängig sein.

Hat denn niemand den HB-UNI-SenAct-4-4 im Einsatz? Wie sieht bei euch der state eines Button-Kanals aus?
Titel: Antw:Button-Auswertung HB-UNI-SenAct-4-4-RC
Beitrag von: Gernott am 24 April 2021, 20:54:02
Zitat von: rih am 24 April 2021, 18:15:07
Hat denn niemand den HB-UNI-SenAct-4-4 im Einsatz? Wie sieht bei euch der state eines Button-Kanals aus?
So, wie von Frank beschrieben. Es gibt

Jeweils mit einer Nummer dahinter. Gerät ist ein HM-PB-6-WM55

Titel: Antw:Button-Auswertung HB-UNI-SenAct-4-4-RC
Beitrag von: papa am 24 April 2021, 21:17:23
Welcen Sketch hast Du denn drauf ?
Für den Status Open/Closed brauchst Du wahrscheinlich diesen hier

https://github.com/jp112sdl/HB-UNI-SenAct-4-4/blob/master/HB-UNI-SenAct-4-4-SC/HB-UNI-SenAct-4-4-SC.ino
Titel: Antw:Button-Auswertung HB-UNI-SenAct-4-4-RC
Beitrag von: rih am 24 April 2021, 22:09:30
@gernott: das habe ich doch selbst schon geschrieben. Leider sind halt die Stati's (zumindest bei mir) mit angehängten Zahlen, z.B. Short_86. Das sind keine Taster-Nummern. Wie soll ich denn ein Short_86 z.B in einem DOIF auswerten, wenn der Status beim nächsten kurzen Drücken Short_87 heißt, zumal kein Release dazwischen kommt? Langsam glaube ich, dass in meiner Konfiguration etwas nicht zusammen passt, wenn hier niemand versteht was ich meine.

@papa: ich habe den HB-UNI-SenAct-4-4-RC-Sketch (von Jerome) drauf. Der HB-UNI-SenAct-4-4-SC-Sketch wird von der HMConfig_AskSinPPCustom.pm leider nicht unterstützt. Ist das ein großer Aufwand, die ...Custom.pm an den SC-Sketch anzupassen bzw. den SC einzubauen?
Titel: Antw:Button-Auswertung HB-UNI-SenAct-4-4-RC
Beitrag von: Gernott am 24 April 2021, 23:04:14
Zitat von: rih am 24 April 2021, 22:09:30
@gernott: das habe ich doch selbst schon geschrieben. Leider sind halt die Stati's (zumindest bei mir) mit angehängten Zahlen, z.B. Short_86. Das sind keine Taster-Nummern. Wie soll ich denn ein Short_86 z.B in einem DOIF auswerten, wenn der Status beim nächsten kurzen Drücken Short_87 heißt, zumal kein Release dazwischen kommt? Langsam glaube ich, dass in meiner Konfiguration etwas nicht zusammen passt, wenn hier niemand versteht was ich meine.
Das wurde kürzlich hier schon hoch und runter diskutiert. Üblicherweise werden Events ausgewertet, keine Stati. Die kann man sich im Eventmonitor ansehen und sich dann daraus ein Regex bauen, was funktioniert. Im Eventmonitor gibt es sogar einen Knopf, der aus einer ausgewählten Zeile ein notify bastelt.

Beispiel für Short-Press:
2021-04-24 22:59:53 CUL_HM hm.taster6_EG.Flur hm.taster6_EG.Flur_Btn_06 Short
2021-04-24 22:59:53 CUL_HM hm.taster6_EG.Flur_Btn_06 Short 1_133 (to vccu)
2021-04-24 22:59:53 CUL_HM hm.taster6_EG.Flur_Btn_06 trigger: Short_133
2021-04-24 22:59:53 CUL_HM hm.taster6_EG.Flur_Btn_06 trigger_cnt: 133
2021-04-24 22:59:53 CUL_HM vccu_Btn4 trigLast: hm.taster6_EG.Flur_Btn_06:short
2021-04-24 22:59:53 CUL_HM vccu_Btn4 trig_hm.taster6_EG.Flur_Btn_06: Short_133


Notify zur ersten Zeile:
define hm.taster6_EG.Flur_notify_1 notify hm.taster6_EG.Flur:hm.taster6_EG.Flur_Btn_06.Short {}

Titel: Antw:Button-Auswertung HB-UNI-SenAct-4-4-RC
Beitrag von: rih am 24 April 2021, 23:45:35
@gernott: Entschuldigung, du hast natürlich recht. Da stand ich irgendwie auf dem Schlauch. An Events habe ich jetzt gar nicht gedacht. Danke für die gute Erklärung.

Mittlerweile habe ich die HMConfig_AskSinPPCustom.pm selbst für den HB-UNI-SenAct-4-4-SC erweitert. Funktioniert einwandfrei. Da ich eher Schalter und weniger Taster bzw. langen / kurzen Tastendruck nicht brauche, passt der SC mit open / closed besser. Ansonsten weiß ich jetzt ja, wie ich den RC verwenden muss :-[.
Titel: Antw:Button-Auswertung HB-UNI-SenAct-4-4-RC
Beitrag von: papa am 25 April 2021, 09:26:43
Zitat von: rih am 24 April 2021, 23:45:35
Mittlerweile habe ich die HMConfig_AskSinPPCustom.pm selbst für den HB-UNI-SenAct-4-4-SC erweitert. Funktioniert einwandfrei. Da ich eher Schalter und weniger Taster bzw. langen / kurzen Tastendruck nicht brauche, passt der SC mit open / closed besser. Ansonsten weiß ich jetzt ja, wie ich den RC verwenden muss :-[.
Bitte einen PullRequest stellen, damit andere auch davon profitieren können
Titel: Antw:Button-Auswertung HB-UNI-SenAct-4-4-RC
Beitrag von: rih am 25 April 2021, 11:19:48
Zitat von: papa am 25 April 2021, 09:26:43
Bitte einen PullRequest stellen, damit andere auch davon profitieren können

Ich weiß leider nicht, wie man einen PullRequest erstellt. Scheint sehr aufwendig zu sein. Du bist doch glaube ich der Autor der HMConfig_AskSinPPCustom.pm. Kannst Du das mit dem PullRequest bitte übernehmen?
Die Implementierung selbst war kein großes Ding. Habe einfach geschaut, wie es beim HB-UNI-SenAct-8-8-SC gemacht wurde. Hier der Code:

$HMConfig::culHmModel{"F331"} = {name=>"HB-UNI-SenAct-4-4-SC",st=>'custom',cyc=>'',rxt=>'',lst=>'1,3:1p.2p.3p.4p,4:5p.6p.7p.8p',chn=>"Sw:1:4,Btn:5:8"};
$HMConfig::culHmChanSets{"HB-UNI-SenAct-4-4-SC00"}{fwUpdate} = "<filename>";
$HMConfig::culHmChanSets{"HB-UNI-SenAct-4-4-SC01"} = $HMConfig::culHmSubTypeSets{"switch"};
$HMConfig::culHmChanSets{"HB-UNI-SenAct-4-4-SC02"} = $HMConfig::culHmSubTypeSets{"switch"};
$HMConfig::culHmChanSets{"HB-UNI-SenAct-4-4-SC03"} = $HMConfig::culHmSubTypeSets{"switch"};
$HMConfig::culHmChanSets{"HB-UNI-SenAct-4-4-SC04"} = $HMConfig::culHmSubTypeSets{"switch"};
$HMConfig::culHmChanSets{"HB-UNI-SenAct-4-4-SC05"} = $HMConfig::culHmSubTypeSets{"THSensor"};
$HMConfig::culHmChanSets{"HB-UNI-SenAct-4-4-SC06"} = $HMConfig::culHmSubTypeSets{"THSensor"};
$HMConfig::culHmChanSets{"HB-UNI-SenAct-4-4-SC07"} = $HMConfig::culHmSubTypeSets{"THSensor"};
$HMConfig::culHmChanSets{"HB-UNI-SenAct-4-4-SC08"} = $HMConfig::culHmSubTypeSets{"THSensor"};
$HMConfig::culHmRegModel{"HB-UNI-SenAct-4-4-SC"}   = { intKeyVisib=>1, cyclicInfoMsg=>1, sabotageMsg=>1 };
$HMConfig::culHmRegChan {"HB-UNI-SenAct-4-4-SC01"} = $HMConfig::culHmRegType{switch};
$HMConfig::culHmRegChan {"HB-UNI-SenAct-4-4-SC02"} = $HMConfig::culHmRegType{switch};
$HMConfig::culHmRegChan {"HB-UNI-SenAct-4-4-SC03"} = $HMConfig::culHmRegType{switch};
$HMConfig::culHmRegChan {"HB-UNI-SenAct-4-4-SC04"} = $HMConfig::culHmRegType{switch};
$HMConfig::culHmRegChan {"HB-UNI-SenAct-4-4-SC05"} = $HMConfig::culHmRegType{threeStateSensor};
$HMConfig::culHmRegChan {"HB-UNI-SenAct-4-4-SC06"} = $HMConfig::culHmRegType{threeStateSensor};
$HMConfig::culHmRegChan {"HB-UNI-SenAct-4-4-SC07"} = $HMConfig::culHmRegType{threeStateSensor};
$HMConfig::culHmRegChan {"HB-UNI-SenAct-4-4-SC08"} = $HMConfig::culHmRegType{threeStateSensor};
$customMsg{"HB-UNI-SenAct-4-4-SC"} = sub {
  my ($msg,$target) = @_;
  my $channel = $msg->channel;
  return $msg->processThreeState($target) if $channel > 4;
  return $msg->processSwitchStatus($target) if $msg->isStatus;
  return ();
};


Schau bitte auch mal drüber, ob ich alles richtig gemacht habe. Funktionieren tut alles. Nur beim Sabotagekontakt bin ich unsicher. Den Code habe ich vor dem HB-UNI-SenAct-4-4-RC-Abschnitt eingefügt.
Titel: Antw:Button-Auswertung HB-UNI-SenAct-4-4-RC
Beitrag von: papa am 25 April 2021, 20:26:41
Sieht gut aus und wenn es funktioniert ....
Habs mit hinzugefügt