Hallo zusammen
Ich hänge mit meinem HM-LC-BL1-FM bei einem Detail-Problem.
Status aktuell: Eingebaut, funktioniert prinzipiell, peering mit Wetterstation leider noch gar nicht zufriedenstellend - vermutlich ein Problem mit der Wetterstation... muss ich mir noch anschauen (insb. bekomme ich von dort keinen "Sturm" gemeldet - anderes Thema).
Was nicht funktioniert: wenn ich auf der Fernbedienung (HAND_KEY_SW_4_HandKey_02) drücke, fährt er ziemlich weit, aber nicht die volle Zeit (drivedown/up). Warum: keine Ahnung.
Dachte, hier (https://forum.fhem.de/index.php/topic,69044.msg605246.html#msg605246) geht es um etwas Ähnliches, aber bei mir steht die 100 drin. Siehe unten: get regTable zum Device:
get UG_F_Storen regTable:
UG_F_Storen type:blindActuator -
list:peer register :value
0: confBtnTime :permanent
0: intKeyVisib :visib
0: localResDis :off
0: pairCentral :0x123456
1: driveDown :27 s
1: driveTurn :0.5 s
1: driveUp :30 s
1: refRunCounter :0
1: sign :off
1: statusInfoMinDly :2 s
1: statusInfoRandom :1 s
1: transmitTryMax :6
HAND_KEY_SW_4_HandKey_02 self01 self02 wetterstat_chn-01
lg sh lg sh lg sh lg sh
ActionType jmpToTarget jmpToTarget jmpToTarget jmpToTarget jmpToTarget jmpToTarget jmpToTarget jmpToTarget
BlJtDlyOff refOff refOff dlyOn dlyOn refOff refOff refOff refOff
BlJtDlyOn refOn refOn refOn refOn dlyOff dlyOff refOn refOn
BlJtOff dlyOn dlyOn dlyOn dlyOn dlyOff dlyOff dlyOn dlyOn
BlJtOn dlyOff dlyOff dlyOn dlyOn dlyOff dlyOff dlyOff dlyOff
BlJtRampOff off off off off rampOff rampOff off off
BlJtRampOn on on rampOn rampOn on on on on
BlJtRefOff off off off off rampOff rampOff off off
BlJtRefOn on on rampOn rampOn on on on on
CtDlyOff geLo geLo geLo geLo geLo geLo geLo geLo
CtDlyOn geLo geLo geLo geLo geLo geLo geLo geLo
CtOff geLo geLo geLo geLo geLo geLo geLo geLo
CtOn geLo geLo geLo geLo geLo geLo geLo geLo
CtRampOff geLo geLo geLo geLo geLo geLo geLo geLo
CtRampOn geLo geLo geLo geLo geLo geLo geLo geLo
CtRefOff geLo geLo geLo geLo geLo geLo geLo geLo
CtRefOn geLo geLo geLo geLo geLo geLo geLo geLo
CtValHi 100 100 100 100 100 100 100 100
CtValLo 50 50 50 50 50 50 50 50
DriveMode direct direct direct direct direct direct direct direct
MaxTimeF [s] 25 25 0.4 unused 0.4 unused 0.5 unused
MultiExec on off on off on off on off
OffDly [s] 0 0 0 0 0 0 0 0
OffLevel [%] 0 0 0 0 0 0 0 0
OffTime unused unused unused unused unused unused unused unused
OffTimeMode absolut absolut absolut absolut absolut absolut absolut absolut
OnDly [s] 0 0 0 0 0 0 0 0
OnLevel [%] 100 100 100 100 100 100 100 100
OnTime unused unused unused unused unused unused unused unused
OnTimeMode absolut absolut absolut absolut absolut absolut absolut absolut
Ideen? Tips?
Beste Grüsse
da ich keinen blind aktor habe, hier mein vorschlag zur selbsthilfe:
1. zum verständnis der statemachine => https://de.elv.com/homematic-programmieren-aktionsprofile-fuer-aktoren-erarbeiten-203591 (https://de.elv.com/homematic-programmieren-aktionsprofile-fuer-aktoren-erarbeiten-203591)
2. zum einfachen verändern und spielen mit den registern das tool hm.js installieren => https://forum.fhem.de/index.php/topic,106959.0.html (https://forum.fhem.de/index.php/topic,106959.0.html)
3. eventuell passt auch ein standard template von martin.
zum einfachen ausprobieren eignet sich auch gut das registertool.
Hi,
ich würde sagen Mist beim peeren gebaut.
Meine regTable sieht so aus. Der Taster ist default gepeert, zwei Tasten auf einmal.
No regs found for:
RolloSZ type:blindActuator -
list:peer register :value
0: intKeyVisib :invisib
0: pairCentral :0x200DB8
1: driveDown :17.5 s
1: driveTurn :0.5 s
1: driveUp :18 s
1: refRunCounter :0
1: sign :off
RC62_5 RC62_6
lg sh lg sh
ActionType jmpToTarget jmpToTarget jmpToTarget jmpToTarget
BlJtDlyOff refOff refOff dlyOn dlyOn
BlJtDlyOn dlyOff dlyOff refOn refOn
BlJtOff dlyOff dlyOff dlyOn dlyOn
BlJtOn dlyOff dlyOff dlyOn dlyOn
BlJtRampOff rampOff rampOff off off
BlJtRampOn on on rampOn rampOn
BlJtRefOff rampOff rampOff off off
BlJtRefOn on on rampOn rampOn
CtDlyOff geLo geLo geLo geLo
CtDlyOn geLo geLo geLo geLo
CtOff geLo geLo geLo geLo
CtOn geLo geLo geLo geLo
CtRampOff geLo geLo geLo geLo
CtRampOn geLo geLo geLo geLo
CtRefOff geLo geLo geLo geLo
CtRefOn geLo geLo geLo geLo
CtValHi 100 100 100 100
CtValLo 50 50 50 50
DriveMode direct direct direct direct
MaxTimeF [s] 0.5 unused 0.5 unused
MultiExec on off on off
OffDly [s] 0 0 0 0
OffLevel [%] 0 0 0 0
OffTime unused unused unused unused
OffTimeMode absolut absolut absolut absolut
OnDly [s] 0 0 0 0
OnLevel [%] 100 100 100 100
OnTime unused unused unused unused
OnTimeMode absolut absolut absolut absolut
MaxTimeF finde ich, ist mit 25 sec völlig schräg. ::)
Was wolltest Du damit bzw. beim peeren erreichen?
Gruß Otto
Zitat von: Otto123 am 25 April 2020, 11:46:37Meine regTable sieht so aus. Der Taster ist default gepeert, zwei Tasten auf einmal.
dann baue ihm doch mal ein template. ;)
Das war völlig ohne ;)
set RC62_5 peerChan 0 RolloSZ dual set
Zitat von: Otto123 am 25 April 2020, 11:59:32
Das war völlig ohne ;)
set RC62_5 peerChan 0 RolloSZ dual set
wie auch immer.
mit templates kann man es auch "reparieren".
Hallo
@Otto: mich würde interessieren, woran Du erkennst, dass ich beim Peeren etwas falsch gemacht haben könnte - ich hatte gerade neulich den Moment, seit dem ich den Eindruck habe, ich verstehe insb. das mit dem Peeren und den Registern plötzlich besser.
Mein Statement zum peeren war:
set HAND_KEY_SW_4_HandKey_02 peerChan 0 UG_F_Storen dual set
Klingt für mich nach dem, was Du vorschlägst.
Die MaxTimeF hatte ich nicht verstanden, hat die Situation aber verbessert: immerhin fährt er jetzt schon mal 25s am Stück in eine Richtung. Das rettete mir WAFseitig die Stimmung :-) Muss ich aber wiederzurücksetzen, hast Du vollkommen Recht.
Bringt mich zur Frage, ob es irgendwo eine detailliertere Beschreibung der einzelnen Register gibt. Die regList hilft mir beim Lesen und verstehen leider nicht sonderlich.
@Frank: das mit den Templates habe ich gelesen... um ehrlich zu sein, aber weder auf Anhieb verstanden, noch weiter vertieft, um es dann zu verstehen. Scheint benutzerfreundlicher zu sein, auf Anhieb verstanden habe ich es dennoch nicht.
Das mit den States kam mir auch in den Sinn... da gab es in dieser Word-Doku auf der Webseite (Einsteiger-Doku...) vor Jahren schon mal eine recht ausführliche Beschreibung... das muss ich mir wohl nochmals genauer anschauen. Ich weiss noch, dass mir das damals nicht so plausibel erschien... aber das mit dem Peering ging mir auch erst vor einigen Wochen klarer ins Hirn.
Was mache ich? Peering nochmals komplett alles wegwerfen, die MaxTimeF auf 0.5 (war es glaube ich) zurück und dann nochmal anfangen?
Danke euch!
Beste Grüsse
shMaxTimeF muss in der Regel auf "unused" stehen.
set UG_F_Storen regSet shMaxTimeF unused HAND_KEY_SW_4_HandKey_02
Das Register beschränkt die Fahrzeit bei einem Trigger. Bei short soll er bis Anschlag fahren. Bei long wird 0,5s benutzt, weil in 0,4s der nächste Trigger eintrifft.
set UG_F_Storen regSet lgMaxTimeF 0.5 HAND_KEY_SW_4_HandKey_02
Oder wirklich entpeeren und wieder peeren. Keine Ahnung, was da schiefgelaufen sein könnte.
edit: Nach der obigen Tabelle erkenne ich keine anderen Fehler. Der Handkey war single gepairt. Bei meinen beiden single gepeerten Buttons sieht die jump table auch so aus.
@hnnmn Das mit dem peeren war nur so dahin gesagt, weil eben Deine Tabelle so völlig anders aussieht als meine.
Peeren sind ja zwei Dinge: Das Peeren an sich, und dabei wird auch ein Satz Register mit Standardbelegung für diesen Peer angelegt.
Diese Register kann man anschließend verändern, um das Verhalten für diesen Peer verändern.
Ich weiß leider nicht wie man mit einem single Peer (ein Knopf) den Rolladen wirklich bedient.
Gruß Otto
Hallo
@Otto: danke, verstanden.
@Pfriemler: stell ich wieder so zurück. Danke.
Es bleibt die Frage, wie ich mit einer Fernbedienung an den Aktor gepeert auf Knopfdruck (bspw lange drücken) die gesamte Strecke fahren kann.
Aktuell mit Single fährt er auf Knopfdruck los, nochmals drücken stoppt, nochmals Gegenrichtung, nochmals stop... alles wie es soll, nur die Fahrtzeit ist nicht wie gewünscht.
Beste Grüsse
Nein, die Frage sollte sich nach der Korrektur von shMaxTimeF eben nicht mehr stellen, vorausgesetzt die Laufzeit ist global korrekt eingestellt, was der Fall ist, wenn du am Aktor selbst durch kurzes Tippen vollständige Fahrten hast.
Also wenn ich es richtig verstehe, ist nachträglich MaxTimeF verstellt worden? Mit der Standard MaxTimeF (wie bei mir mit dual ) verhält er sich dann "normal" nur eben wie das "Garagentor mit Einknopf" ;) !?
Genau so sehe ich das. Was auch immer die Verstellung der xxMaxTimeF verursacht hat - wissentlich oder versehentlich.
Die Einknopfbedienung von Rolläden/Markisen nutze ich wie hnnmn bei mir auf mehreren Fernbedienungen. Die Start/Stop/Umkehr-Mimik klappt bei Rademacher ebenso, aber das gezielte Fahren per longpress im direkten Peer natürlich nur mit dem HM-Rolladenaktor, den ich in der PBU-Version bei mir im Einsatz für die Terrassenmarkise habe.
DispFB und FB12 sind single gepeert. Die DispFB (die 20kanalige Handfernbedienung mit Display und Drehrad zum Drücken) kann gar nicht vernünftig anders. Sie liefert während des longpress im Display sogar die Positionsangabe in %, wie auch bei einem Dimmer. Für den technisch verwandten HM_PB4Dis1 habe eine "Seite" mit zwei Buttons dual gepeert.
Alle Einstellungen für die Peers sind original. Dabei fällt auf, dass lgMaxTimeF bei Fernbedienungen auf 0.5s steht, bei den internen Tasten auf 0.4s. Das dürfte mit unterschiedlichen Repetierraten bei longpress zusammenhängen: Fernbedienungen liefern (konfigurierbar), default alle 0,4s ein neues Telegramm. Bei internen Tasten ist das m.W. 0,3s und nicht konfigurierbar.
Das Zusammenspiel von lgMultiExec=on und einer minimal größeren lgMaxTimeF als das longpress-Sendeintervall des peers sorgt bei einem langen Tastendruck für ein kontinuierliches Fahren solange die Taste gedrückt wird und für ein möglichst zügiges Beenden der Fahrt, wenn die Taste losgelassen wird. Prinzipbedingt reagiert der Aktor hier also maximal 0,4-0,5s verzögert darauf.
In hnnmns Konfig mit lgMaxTimeF=25 dürfte dieses Stoppen beim Loslassen der Taste gar nicht funktioniert haben. Und auf der anderen Seite beendet die Laufzeitbegrenzung bei kurzem Tastendruck (shMaxTimeF=25) jede so angestoßene Fahrt nach 25 Sekunden. Bei Fahrt aus einer Endlage heraus bleibt der Aktor also zwingend vor Erreichen der anderen Endlage stehen (27 bzw. 30s Fahrzeit laut Konfiguration). Drückt man bei single peer nun noch einmal die Taste und beendet die Fahrt in entgegengesetzte Richtung mit einem zweiten Tastendruck, um mit einem dritten Tastendruck wieder in die gewünschte Richtung zu starten, sollte der Antrieb die Endlage erreichen.
MaxTimeF kann auch ganz anderes benutzt werden: Bei Einrichtungen, bei denen es auf das genaue Anfahren einer Position ankommt, kann man bei einem dual peer (also mit einer Taste pro Richtung) die Zeit auch extrem verkürzen, um so ein Stottern (bei Anwendung mit longpress) oder ein schrittweises Verfahren (mit shortpress) zu erreichen - im ersten Beispiel mit short die Fahrt starten und stoppen und mit long im Stotterbetrieb feineinstellen oder im zweiten Beispiel mit long manuell kontinuierlich verfahren und mit einzelnen Tastentipps jeweils einen Schritt. Die Schritte können auch kleiner oder größer sein, so könnte eine angepasste shMaxTimeF z.B. eine Lüftungsposition für Rolläden anfahren oder eine Teilabschattung des Raumes bewirken.
Zum Vergleich mal meine regTable für den HM-LC-Bl1PBU-FM.
No regs found for:
Terrassendachmarkise type:blindActuator -
list:peer register :value
0: confBtnTime :permanent
0: intKeyVisib :visib
0: localResDis :off
0: pairCentral :0x1411AB
1: driveDown :40 s
1: driveTurn :0.5 s
1: driveUp :40 s
1: refRunCounter :0
1: sign :off
1: statusInfoMinDly :2 s
1: statusInfoRandom :1 s
1: transmitTryMax :6
DispFB_Btn_06 FB12_Btn_11 HM_PB4Dis1_Btn_05 HM_PB4Dis1_Btn_06 self01 self02
lg sh lg sh lg sh lg sh lg sh lg sh
ActionType jmpToTarget jmpToTarget jmpToTarget jmpToTarget jmpToTarget jmpToTarget jmpToTarget jmpToTarget jmpToTarget jmpToTarget jmpToTarget jmpToTarget
BlJtDlyOff refOff refOff refOff refOff refOff refOff dlyOn dlyOn refOff refOff dlyOn dlyOn
BlJtDlyOn refOn refOn refOn refOn dlyOff dlyOff refOn refOn dlyOff dlyOff refOn refOn
BlJtOff dlyOn dlyOn dlyOn dlyOn dlyOff dlyOff dlyOn dlyOn dlyOff dlyOff dlyOn dlyOn
BlJtOn dlyOff dlyOff dlyOff dlyOff dlyOff dlyOff dlyOn dlyOn dlyOff dlyOff dlyOn dlyOn
BlJtRampOff off off off off rampOff rampOff off off rampOff rampOff off off
BlJtRampOn on on on on on on rampOn rampOn on on rampOn rampOn
BlJtRefOff off off off off rampOff rampOff off off rampOff rampOff off off
BlJtRefOn on on on on on on rampOn rampOn on on rampOn rampOn
CtDlyOff geLo geLo geLo geLo geLo geLo geLo geLo geLo geLo geLo geLo
CtDlyOn geLo geLo geLo geLo geLo geLo geLo geLo geLo geLo geLo geLo
CtOff geLo geLo geLo geLo geLo geLo geLo geLo geLo geLo geLo geLo
CtOn geLo geLo geLo geLo geLo geLo geLo geLo geLo geLo geLo geLo
CtRampOff geLo geLo geLo geLo geLo geLo geLo geLo geLo geLo geLo geLo
CtRampOn geLo geLo geLo geLo geLo geLo geLo geLo geLo geLo geLo geLo
CtRefOff geLo geLo geLo geLo geLo geLo geLo geLo geLo geLo geLo geLo
CtRefOn geLo geLo geLo geLo geLo geLo geLo geLo geLo geLo geLo geLo
CtValHi 100 100 100 100 100 100 100 100 100 100 100 100
CtValLo 50 50 50 50 50 50 50 50 50 50 50 50
DriveMode direct direct direct direct direct direct direct direct direct direct direct direct
MaxTimeF [s] 0.5 unused 0.5 unused 0.5 unused 0.5 unused 0.4 unused 0.4 unused
MultiExec on off on off on off on off on off on off
OffDly [s] 0 0 0 0 0 0 0 0 0 0 0 0
OffLevel [%] 0 0 0 0 0 0 0 0 0 0 0 0
OffTime unused unused unused unused unused unused unused unused unused unused unused unused
OffTimeMode absolut absolut absolut absolut absolut absolut absolut absolut absolut absolut absolut absolut
OnDly [s] 0 0 0 0 0 0 0 0 0 0 0 0
OnLevel [%] 100 100 100 100 100 100 100 100 100 100 100 100
OnTime unused unused unused unused unused unused unused unused unused unused unused unused
OnTimeMode absolut absolut absolut absolut absolut absolut absolut absolut absolut absolut absolut absolut
Hallo zusammen
Nochmals vielen Dank an alle.
Ich habe eine Lösung, aber nicht für alle Probleme :-)
Der
MaxTimeF ist zurück auf 0.5 - Verhalten wie zuvor, fährt jetzt wieder gefühlte 0.5 Sekunden lang.
Mit den self01/02 bekomme ich das gewünschte Ergebnis: die Markiese fährt bis zum Anschlag, ... alles wie erwartet.
Dann habe ich, nachdem alles Vergleichen mit euren regTables nicht die Erleuchtung gebracht hat,
eine andere Fernbedienung gepeert. Und was ist passiert: wie von euch prophezeit:
es hat einfach genau so funktioniert, wie es sollte.Dann habe ich die o.g. nochmals komplett resettet und neu gepeert: gleiches Resultat. Dann habe ich aus versehen
einen anderen Kanal dieser Fernbedienung gepeert und siehe da: der funktioniert.Also habe ich unten nochmals die regTable eingefügt, damit ihr auch nochmals gucken könnt, ob euch noch etwas einfällt. Ich kann es mir nicht erklären.
- HAND_KEY_SW_4_HandKey_02: funktioniert nicht
- HAND_KEY_SW_4_HandKey_01: funktioniert
Die Register stehen nach mehrfachem Vergleich mMn identisch.
No regs found for:
UG_F_Storen type:blindActuator -
list:peer register :value
0: confBtnTime :permanent
0: intKeyVisib :visib
0: localResDis :off
0: pairCentral :0x123456
1: driveDown :27 s
1: driveTurn :0.5 s
1: driveUp :30 s
1: refRunCounter :0
1: sign :off
1: statusInfoMinDly :2 s
1: statusInfoRandom :1 s
1: transmitTryMax :6
HAND_KEY_SW_4_HandKey_01 HAND_KEY_SW_4_HandKey_02 self01 self02 wetterstat_chn-01
lg sh lg sh lg sh lg sh lg sh
ActionType jmpToTarget jmpToTarget jmpToTarget jmpToTarget jmpToTarget jmpToTarget jmpToTarget jmpToTarget jmpToTarget jmpToTarget
BlJtDlyOff refOff refOff refOff refOff dlyOn dlyOn refOff refOff refOff refOff
BlJtDlyOn refOn refOn refOn refOn refOn refOn dlyOff dlyOff refOn refOn
BlJtOff dlyOn dlyOn dlyOn dlyOn dlyOn dlyOn dlyOff dlyOff dlyOn dlyOn
BlJtOn dlyOff dlyOff dlyOff dlyOff dlyOn dlyOn dlyOff dlyOff dlyOff dlyOff
BlJtRampOff off off off off off off rampOff rampOff off off
BlJtRampOn on on on on rampOn rampOn on on on on
BlJtRefOff off off off off off off rampOff rampOff off off
BlJtRefOn on on on on rampOn rampOn on on on on
CtDlyOff geLo geLo geLo geLo geLo geLo geLo geLo geLo geLo
CtDlyOn geLo geLo geLo geLo geLo geLo geLo geLo geLo geLo
CtOff geLo geLo geLo geLo geLo geLo geLo geLo geLo geLo
CtOn geLo geLo geLo geLo geLo geLo geLo geLo geLo geLo
CtRampOff geLo geLo geLo geLo geLo geLo geLo geLo geLo geLo
CtRampOn geLo geLo geLo geLo geLo geLo geLo geLo geLo geLo
CtRefOff geLo geLo geLo geLo geLo geLo geLo geLo geLo geLo
CtRefOn geLo geLo geLo geLo geLo geLo geLo geLo geLo geLo
CtValHi 100 100 100 100 100 100 100 100 100 100
CtValLo 50 50 50 50 50 50 50 50 50 50
DriveMode direct direct direct direct direct direct direct direct direct direct
MaxTimeF [s] 0.5 unused 0.5 unused 0.4 unused 0.4 unused 0.5 unused
MultiExec on off on off on off on off on off
OffDly [s] 0 0 0 0 0 0 0 0 0 0
OffLevel [%] 0 0 0 0 0 0 0 0 0 0
OffTime unused unused unused unused unused unused unused unused unused unused
OffTimeMode absolut absolut absolut absolut absolut absolut absolut absolut absolut absolut
OnDly [s] 0 0 0 0 0 0 0 0 0 0
OnLevel [%] 100 100 100 100 100 100 100 100 100 100
OnTime unused unused unused unused unused unused unused unused unused unused
OnTimeMode absolut absolut absolut absolut absolut absolut absolut absolut absolut absolut
Also ich bin mit meinem Latein erneut am Ende. Für mich sieht das aus, wie ein Bug.
=> Irgendwelche Ideen, wie ich den gewünschten Knopf noch zum Funktionieren bringen könnte?Beste Grüsse
Schräger Gedanke von mir: HAND_KEY_SW_4_HandKey_02 macht noch was anderes? Irgendein Gerät, notify DOIF oder sonst was reagiert darauf und schießt quer? Alter Versuch von Dir bevor Du gepeert hast?
Definier Dir mal grep als cmdalias (Wiki (https://wiki.fhem.de/wiki/Cmdalias)) und such danach.
Gruß Otto
Ich bin noch nicht ganz im Bilde.
Was ich erkenne: Alle erneuten Peerings haben die Register erfolgreich richtig gesetzt. Die MaxTimeF =25 waren eine einmalige Geschichte.
Auch ich sehe keine Probleme in der regTable.
_Handkex_01 funktioniert, schreibst Du. Das sollte bedeuten:
- kurzes Drücken: fährt alternierend bis zum Anschlag.
- langes drücken: fährt alterniered solange gedrückt wird und stoppt kurz nach dem Loslassen.
_Handkey_02 funktioniert nicht.
ZitatDer MaxTimeF ist zurück auf 0.5 - Verhalten wie zuvor, fährt jetzt wieder gefühlte 0.5 Sekunden lang.
Soll das bedeuten, dass hier auch auf kurzen Tastendruck nur kurz gefahren wird?
Wenn ja: Sendet die Taste tatsächlich short-Impulse? Könnte ein Hardwaredefekt vorliegen (Taste klemmt beim Loslassen -> long)?
Wie ist der Wert des Register "longPress" im _02?
Im Zweifelsfall lieber komplette Lists hier posten.
Und: Kannst Du mal im Eventmonitor mitloggen was da zwischen Taste und Aktor läuft?