[gelöst] vccu virtual button mit on/off

Begonnen von UliM, 10 Oktober 2015, 18:49:23

Vorheriges Thema - Nächstes Thema

UliM

Hallo,
ich habe mehrere Aktoren (in diesem Kontext alle HM-LC-SW1-PL2), die von einem virtuellen button der vccu als Gruppe geschaltet werden sollen.

Also habe ich gepeert mit
set whg_Audio_Master peerChan 0 bz_Audio single set
set whg_Audio_Master peerChan 0 ez_Audio single set

usw.

Der virtuelle button "whg_Audio_Master" hängt unter der vccu. Hier das list:
Internals:
   DEF        34F25F03
   NAME       whg_Audio_Master
   NR         419
   NTFY_ORDER 50-vccu_Btn3
   STATE      set_press short
   TYPE       CUL_HM
   chanNo     03
   device     vccu
   peerList   bz_Audio,ez_Audio,ko_Audio,ku_Audio,
   Readings:
     2015-10-10 18:29:29   peerList        bz_Audio,ez_Audio,ko_Audio,ku_Audio,
     2015-10-10 18:23:02   state           set_press short
   Helper:
     count      2
     Role:
       chn        1
       prs        1
Attributes:
   model      CCU-FHEM
   peerIDs    2EAD2601,2EAD3601,2EAD5401,2FC9CB01,
   room       Media
   subType    pushButton
   webCmd     on:off



Leider kennt der aber keine on/off, nur press short, press long etc. 
Ich möchte aber explizit on bzw. off schalten können, nicht nur ein toggle durch press short.

Kann ich dies durch Einstellungen am virtuellen Sensor erreichen? (hab schon subType pushButton, singleButton und virtual probiert)
Oder muss ich das mittels eventMap on->press short, off->press long und dann mittels JumpTable-Anpassung wie in diesem Fred machen?

Beste Grüße,
Uli
RPi4/Raspbian, CUL V3 (ca. 30 HomeMatic-devices), LAN (HarmonyHub, alexa etc.).  Fördermitglied des FHEM e.V.

LuckyDay

Uli,
bei homematic kann generel nur eine Taste short oder long und darauf regierst du im Aktor mit den Jumptables,

wenn du geziehlt on bzw off brauchst, benötigst du auch zwei Tasten und dann darfst du natürlich nicht single peeren, sondernu dual
und dann in den Regiestern für Taste 1 short z.B. on für Taste 2 short off, wie bei einer Fernbedienung Jede Taste ist ein Kanal

UliM

Hi,
ah, ok.
Wenn ich eh mit Registern frickeln muss, könnte ich ja auch bei nur einem virtual bleiben und dann via Jumptable short=on und long=off konfiguerieren.

Wenn ich dual peere - was ist dann in den vccu-virtuals der Effekt? Werden 2 virtuals angebunden?

Gruß, Uli
RPi4/Raspbian, CUL V3 (ca. 30 HomeMatic-devices), LAN (HarmonyHub, alexa etc.).  Fördermitglied des FHEM e.V.

LuckyDay

ZitatWenn ich dual peere - was ist dann in den vccu-virtuals der Effekt? Werden 2 virtuals angebunden?
Wenn es Martin richtig prog. hat sollte der nachfolgende virtuelle Kanal genommen werden wie bei einer Fb

ZitatWenn ich eh mit Registern frickeln muss, könnte ich ja auch bei nur einem virtual bleiben und dann via Jumptable short=on und long=off konfiguerieren.
ja, habs aber selber noch nicht gemacht.

martinp876

Wenn die vccu der sender ist und der man dual peert werden 2 Kanäle der vccu gepeert. Hoffentlich sind die angelegt.

Die Register des realen aktor werden automatisch, also im aktor intern von hm, nicht von fhem gesetzt. Da wird also typisch einer on und einer off gesetzt.

Man kann es nachträglich aendern.
Templates sind eine high level Alternative in hminfo. Ich versuche gerade dies aufzupeppen. Damit man das setzen speichern und prüfen kann.
Aktuell kann man z.b. SwOn und SwOff nutzen. Und eigene schreiben.

UliM

#5
Hi,
oh ja, ein Template wäre klasse.
Offengestanden hab  ich noch nicht gerafft, mit welcher Syntax ich ein eigenes Template erstellen und auf einen weiteren Aktor anwenden kann.

Der Vollständigkeit halber - die ursprüngliche Problemstellung hab ich nun wie folgt gelöst:

1. Unter der vccu einen virtual button angelegt (whg_Audio_Master, man beachte eventMap):
Internals:
   DEF        34F25F03
   NAME       whg_Audio_Master
   NR         414
   NTFY_ORDER 50-whg_Audio_Master
   STATE      set_on
   TYPE       CUL_HM
   chanNo     03
   device     vccu
   peerList   bz_Audio,ez_Audio,ko_Audio,ku_Audio,
   Readings:
     2015-10-10 19:27:43   peerList        bz_Audio,ez_Audio,ko_Audio,ku_Audio,
     2015-10-11 08:14:50   state           set_press short
   Helper:
     count      18
     Role:
       chn        1
       prs        1
     Shadowreg:
Attributes:
   eventMap   /press short:on/ /press long:off/
   group      Audio
   model      CCU-FHEM
   peerIDs    2EAD2601,2EAD3601,2EAD5401,2FC9CB01,
   room       Media
   subType    pushButton


2. Je Aktor, der von dem o.g. virtual button explizit per press short->on und press long->off geschaltet werden soll:
set bz_Audio regSet shSwJtDlyOff on whg_Audio_Master
set bz_Audio regSet shSwJtDlyOn  on whg_Audio_Master
set bz_Audio regSet shSwJtOff    on whg_Audio_Master
set bz_Audio regSet shSwJtOn     on whg_Audio_Master
set bz_Audio regSet lgSwJtDlyOff off whg_Audio_Master
set bz_Audio regSet lgSwJtDlyOn  off whg_Audio_Master
set bz_Audio regSet lgSwJtOff    off whg_Audio_Master
set bz_Audio regSet lgSwJtOn     off whg_Audio_Master

also bei short immer on, bei long immer off.

Könnte man sich das in ein hmInfo-Template legen? Wenn ja, wäre ich für ein Beispiel dankbar. Vielleicht gibt's das ja schon, hab's aber nur in der commandref gefunden, und ich hätt's gerne an nem konkreten Beispiel :)

Gruß, Uli
RPi4/Raspbian, CUL V3 (ca. 30 HomeMatic-devices), LAN (HarmonyHub, alexa etc.).  Fördermitglied des FHEM e.V.

martinp876

Templates habe ich fast fertig. Konzept des definieren ist geblieben.
Neu ist, dass templates gespeichert werden, und zwar im registerarchive. Also hminfo, dort kann man aktuell die Register speichern, ich empfehle das autoarchive. Ab und zu eine Sicherheitskopien, einen knowngoodmaster.
Die templates, Definitionen und usage werden auch immer mit gesichert.
Anlegen ist erst einmal einfach, meine ich. Templatename, eine Beschreibung (einfach Text) evtl Parameter und die Register. Für den Anfang setze die Parameter auf 0.
Am Schluss stehen beliebig viele Register mit dem wert.
Reg:wert reg:wert .....
Immer das Register, ohne sh oder lg! Das kommt später beim "set". Wert ist identisch zu den werten, die du auch im regSet nutzt
Aktuell wird das templatename nach dem reboot vergessen. Ab nächste Woche nicht mehr.

Komplexer ist es, Parameter mitzugeben. Schreibe einfach eine Liste mit Namen der Parameter, komma getrennt. Die Namen sind wünscht, die Reihenfolge ist wichtig. In der Register Liste trägst du dann anstelle des Werts p0 für den ersten Parameter, p1 für den 2. ein, und so fort. Diese Parameter sind dann beim Aufruf zu setzen.

Vielleicht kannst du daraus eine gute Beschreibung machen.
Wenn es fertig ist kann man aus hminfo alle templates kontrollieren, setzen, sichern und darstellen.

UliM

Hallo Martin,
vielen Dank für die Erklärung.

Hab mich nun mit dem o.g. mit dem Anlegen eines templates versucht.

Dabei ist als Zwischenstand folgendes rausgekommen:

set HMinfo templateDef ShortOn press:Short "For single pairing of wallswitch-button to actor: press short=on" SwJtDlyOff:on SwJtDlyOn:on SwJtOff:on SwJtOn:on

set HMinfo templateDef LongOff press:Long "For single pairing of wallswitch-button to actor: press long=off" SwJtDlyOff:off SwJtDlyOn:off SwJtOff:off SwJtOn:off


Fragen:
1. Da es zwei unterschiedliche conditions gibt (press_long, press_short) und da Du schriebst, dass man bei der reg:val -Liste kein sh oder lg angeben kann, habe ich die im vorigen Fred angegebene Paramterlist auf zwei Templates verteilt. Ginge des auch in einem Template?
2. Die condition scheint mir noch nicht richtig, da es ja kein Reading "press" gibt. Was müsste ich da nehmen?

Hab da wohl mal wieder nen Knoten im Hirn...

Gruß, Uli
RPi4/Raspbian, CUL V3 (ca. 30 HomeMatic-devices), LAN (HarmonyHub, alexa etc.).  Fördermitglied des FHEM e.V.

martinp876

Ist so nicht wirklich gedacht.
Im template definierter du z.b. off, unabhängig von long und short.das taucht da garnicht auf, ist egal.
Nun kommt das set. Hierbei Programmierer du das template in einen aktor. Und zwar in den peer, genau in den long oder short des peers. Also in der Art ( habe die exakte Syntax nicht im Kopf....)
Def template switchon 0 Text Register.......
Def template switchon 0 anderertext andereregistee..

Dann musst du es nutzen, bis jetzt ist nur definiert wie es aussehen soll
Settemplate myactchannel peer:short switchon
Settemplate myactchannel peer:long switchoff

Die Register der Aktoren werden gesetzt. Beachte die neuen Funktionen: mit saveconfig speicherst du es in ein file ( Definition und setting) und mit load bekommst du es nach Boot zurück.
Alles in hminfo. Du kannst es prüfen und erneut schreiben lassen.
Probiere auch help in hminfo