HI,
kann mir jemand sagen ob ich den aktor peeren kann? er hat ja keine channels die man peeren könnte und ich kann nur peerIODev und peerBulk wählen.
bleibt nur der weg des set on / off über notify ?
gruß
christian
das sollte kein problem sein. er hat schon ein channel, der wird aber zusammen mit dem device in fhem angezeigt, wie bei allen devices mit nur 1 channel. nimm peerbulk und setze chn1 bei den 8-stelligen id's. zb xxxxxx01.
peerchan ist bestimmt nur "abhanden" gekommen.
ich habe in keinem device mehr peerChan!!!!!!!!!
ich habe nun 2 buttons des wandtasters per
set <switch>_Btn_03 peerChan 0 <aktor> single set
set <switch>_Btn_04 peerChan 0 <aktor> single set
verbunden. das command wird wohl nur nicht angezeigt
ich finde bei dem HM-LC-SW1-BA-PCB die lösung nicht:
ich will bei:
taste3(wandswitch) short -> den HM-LC-SW1-BA-PCB einschalten
taste4(wandswitch) short -> den HM-LC-SW1-BA-PCB ausschalten
ich habe es nun so angepasst:
R-whg_switch01_Btn_03-lgActionType jmpToTarget
R-whg_switch01_Btn_03-shActionType jmpToTarget
R-whg_switch01_Btn_04-lgActionType jmpToTarget
R-whg_switch01_Btn_04-shActionType off
bei jmpToTaget (was auch immer das heisst) toggled er im prinzip
short auf 03 -> an oder aus je nach aktuellem status
short auf 03 -> an oder aus je nach aktuellem status
long 03/04 -> an oder aus je nach aktuellem status
long 03/04 -> an oder aus je nach aktuellem status
drücke ich short auf 04 passiert nichts (der HM-LC-SW1-BA-PCB bleibt eingeschaltet wenn er on ist).
die buttons 03 und 04 sind zusätzlich noch mit vccu_Btn3,vccu_Btn4 peered
R-whg_switch01_Btn_03-lgActionType jmpToTarget
das aktiviert die statemachine für diesen peer.
R-whg_switch01_Btn_04-shActionType off
hiermit wird dieser peer totgelegt.
poste mal die kompletten registersätze für short für beide taster.
wenn ich das hier richtig verstehe http://forum.fhem.de/index.php?topic=12299.40;wap2
ist das was ich will nur über jmpToTarget und anpassung der jumptable möglich , richtig?
jumptable:
Zitatwhg_switch01_Btn_03 whg_switch01_Btn_04
lg sh lg sh
ActionType jmpToTarget jmpToTarget jmpToTarget jmpToTarget
CtDlyOff geLo geLo geLo geLo
CtDlyOn geLo geLo geLo geLo
CtOff geLo geLo geLo geLo
CtOn geLo geLo geLo geLo
CtValHi 100 100 100 100
CtValLo 50 50 50 50
MultiExec on off on off
OffDly (s) 0 0 0 0
OffTime unused unused unused unused
OffTimeMode absolut absolut absolut absolut
OnDly ( s) 0 0 0 0
OnTime unused unused unused unused
OnTimeMode absolut absolut absolut absolut
SwJtDlyOff off off off off
SwJtDlyOn on on on on
SwJtOff dlyOn dlyOn dlyOn dlyOn
SwJtOn dlyOff dlyOff dlyOff dlyOff
beispiel dev ist aus
short von wandswitch -> jmpToTarget -> wenn state OFF sieht in der zeile SwJtOff nach und geht auf dlyOn ?
->wenn state ON sieht in der zeile SwJtOn nach und geht auf dlyOff ?
registersätze (get reg all???)
Zitatlist:peer register :value
0: intKeyVisib :invisib
0: ledMode :on
0: lowBatLimitBA :10.5 V
0: pairCentral :0xF81284
1: sign :off
3:whg_switch01_Btn_03 lgActionType :jmpToTarget
3:whg_switch01_Btn_03 lgCtDlyOff :geLo
3:whg_switch01_Btn_03 lgCtDlyOn :geLo
3:whg_switch01_Btn_03 lgCtOff :geLo
3:whg_switch01_Btn_03 lgCtOn :geLo
3:whg_switch01_Btn_03 lgCtValHi :100
3:whg_switch01_Btn_03 lgCtValLo :50
3:whg_switch01_Btn_03 lgMultiExec :on
3:whg_switch01_Btn_03 lgOffDly :0 s
3:whg_switch01_Btn_03 lgOffTime :unused
3:whg_switch01_Btn_03 lgOffTimeMode :absolut
3:whg_switch01_Btn_03 lgOnDly :0 s
3:whg_switch01_Btn_03 lgOnTime :unused
3:whg_switch01_Btn_03 lgOnTimeMode :absolut
3:whg_switch01_Btn_03 lgSwJtDlyOff :off
3:whg_switch01_Btn_03 lgSwJtDlyOn :on
3:whg_switch01_Btn_03 lgSwJtOff :dlyOn
3:whg_switch01_Btn_03 lgSwJtOn :dlyOff
3:whg_switch01_Btn_03 shActionType :jmpToTarget
3:whg_switch01_Btn_03 shCtDlyOff :geLo
3:whg_switch01_Btn_03 shCtDlyOn :geLo
3:whg_switch01_Btn_03 shCtOff :geLo
3:whg_switch01_Btn_03 shCtOn :geLo
3:whg_switch01_Btn_03 shCtValHi :100
3:whg_switch01_Btn_03 shCtValLo :50
3:whg_switch01_Btn_03 shMultiExec :off
3:whg_switch01_Btn_03 shOffDly :0 s
3:whg_switch01_Btn_03 shOffTime :unused
3:whg_switch01_Btn_03 shOffTimeMode :absolut
3:whg_switch01_Btn_03 shOnDly :0 s
3:whg_switch01_Btn_03 shOnTime :unused
3:whg_switch01_Btn_03 shOnTimeMode :absolut
3:whg_switch01_Btn_03 shSwJtDlyOff :off
3:whg_switch01_Btn_03 shSwJtDlyOn :on
3:whg_switch01_Btn_03 shSwJtOff :dlyOn
3:whg_switch01_Btn_03 shSwJtOn :dlyOff
3:whg_switch01_Btn_04 lgActionType :jmpToTarget
3:whg_switch01_Btn_04 lgCtDlyOff :geLo
3:whg_switch01_Btn_04 lgCtDlyOn :geLo
3:whg_switch01_Btn_04 lgCtOff :geLo
3:whg_switch01_Btn_04 lgCtOn :geLo
3:whg_switch01_Btn_04 lgCtValHi :100
3:whg_switch01_Btn_04 lgCtValLo :50
3:whg_switch01_Btn_04 lgMultiExec :on
3:whg_switch01_Btn_04 lgOffDly :0 s
3:whg_switch01_Btn_04 lgOffTime :unused
3:whg_switch01_Btn_04 lgOffTimeMode :absolut
3:whg_switch01_Btn_04 lgOnDly :0 s
3:whg_switch01_Btn_04 lgOnTime :unused
3:whg_switch01_Btn_04 lgOnTimeMode :absolut
3:whg_switch01_Btn_04 lgSwJtDlyOff :off
3:whg_switch01_Btn_04 lgSwJtDlyOn :on
3:whg_switch01_Btn_04 lgSwJtOff :dlyOn
3:whg_switch01_Btn_04 lgSwJtOn :dlyOff
3:whg_switch01_Btn_04 shActionType :jmpToTarget
3:whg_switch01_Btn_04 shCtDlyOff :geLo
3:whg_switch01_Btn_04 shCtDlyOn :geLo
3:whg_switch01_Btn_04 shCtOff :geLo
3:whg_switch01_Btn_04 shCtOn :geLo
3:whg_switch01_Btn_04 shCtValHi :100
3:whg_switch01_Btn_04 shCtValLo :50
3:whg_switch01_Btn_04 shMultiExec :off
3:whg_switch01_Btn_04 shOffDly :0 s
3:whg_switch01_Btn_04 shOffTime :unused
3:whg_switch01_Btn_04 shOffTimeMode :absolut
3:whg_switch01_Btn_04 shOnDly :0 s
3:whg_switch01_Btn_04 shOnTime :unused
3:whg_switch01_Btn_04 shOnTimeMode :absolut
3:whg_switch01_Btn_04 shSwJtDlyOff :off
3:whg_switch01_Btn_04 shSwJtDlyOn :on
3:whg_switch01_Btn_04 shSwJtOff :dlyOn
3:whg_switch01_Btn_04 shSwJtOn :dlyOff
Zitatist das was ich will nur über jmpToTarget und anpassung der jumptable möglich , richtig?
im grunde schon. notify geht natürlich auch.
3:whg_switch01_Btn_03 shActionType :jmpToTarget
3:whg_switch01_Btn_03 shSwJtDlyOff :no
3:whg_switch01_Btn_03 shSwJtDlyOn :no
3:whg_switch01_Btn_03 shSwJtOff :on # im zustand off direkt nach on
3:whg_switch01_Btn_03 shSwJtOn :no # no => keine reaktion
3:whg_switch01_Btn_04 shActionType :jmpToTarget
3:whg_switch01_Btn_04 shSwJtDlyOff :no
3:whg_switch01_Btn_04 shSwJtDlyOn :no
3:whg_switch01_Btn_04 shSwJtOff :no # no => keine reaktion
3:whg_switch01_Btn_04 shSwJtOn :off #im zustand on direkt nach off
Danke dir, werde ich testen.
notify dauert im vergleich zum peeren ewig bis die aktion am akto ausgeführt wird, finde ich.
jetzt wo die beiden peered sind schaltet er quasi bei knopfdruck ohne verzögerung (mit dem notify würde ich auch noch eine it-dose schalten, was noch mal verzögert -> wenn it vor hm muss hm warten anderstrum it). so läuft alles parallel-> druck -> fhem schaltet it und gleichzeitig geht der switch an
weist du wofür in shSwJtDlyOff steht ?
keine frage, die statemachine sollte man immer nutzen.
Zitatweist du wofür in shSwJtDlyOff steht ?
der zustand dlyoff. dieser timer kommt normalerweise nach on. falls man dahin springt, kann man eine ausschaltverzögerung konfigurieren. nach ablauf gehts nach off.
entsprechend für eine einschaltverzögerung gibt es dann shSwJtDlyOn.
Hallo,
das geht auch einfacher:
set Taster_Btn3 peerchan 0 actor dual set both - und gut ist. Der Btn4 wird automatisch mit gepeert. Dann ist Btn 3 on und Btn 4 off.
Gruß Christoph
Zitat von: Bennemannc am 19 November 2015, 23:14:39
Dann ist Btn 3 on und Btn 4 off.
jaein. es ist ein glücksspiel scheint mir, welche button dann on / off ist. des weiteren lässt er ein delay drin.
über die jumplist habe ich den dirketen einfluss und er tut genau das was er soll (je button ohne verzögerung nur ein / aus).
aber man spart sich das händische peeren eines Channels beim dual.
kann man eigentlich
ZitatshSwJtDlyOff no whg_switch01_Btn_03
shSwJtDlyOn no whg_switch01_Btn_03
shSwJtOff on whg_switch01_Btn_03
shSwJtOn no whg_switch01_Btn_03
shSwJtDlyOff no whg_switch01_Btn_04
shSwJtDlyOn no whg_switch01_Btn_04
shSwJtOff no whg_switch01_Btn_04
shSwJtOn off whg_switch01_Btn_04
mit einem cmd absetzten?
regSet shSwJtDlyOn no whg_switch01_Btn_03, shSwJtOff on whg_switch01_Btn_03
usw usw???
Bei dual legt der aktor fest, was in und was oft ist. Genauer: er legt das gesamte Register set fest. Peert man einen bereits größeren peer noch einmal wird wieder das gesamte registerset über schrieben.
Will man mehr Register eines sets schreiben sollte man mit prep und exec arbeiten.
Das mit mehr Register in einem Kommando geht nicht.
Ich empfehle hier wieder einmal templates. Du legst den Satz Register mit templatedef fest, zum Beispiel den für on, und dann mit templateset er wird er auf den aktor angewendet.
Das templates für on ist im defaultsatz als SWon und auch SWoff enthalten. Templates werden im hminfo betrieben.
Danke Martin!
kannst du anhand meines beispieles erklären wie ich ein template für meinen wünsche baue?
Ich werde aus dem wiki-artikel nicht wirklich schlau................. :o
Ein einfaches template hat keine Parameter. Du machst eine Liste mit Registern, die gesetzt werden sollen und den wert, der rein soll.
Das template kann short,long kompatibel sein. Also gleichermaßen für short und long genutzt werden können, wenn du willst. Dann musst du SH und LG vom regnamen weglassen. Z.b.ontime
OnTime:20 OffTime:50
Du definiert also ein template mit Namen, Kommentar und als Parameter setzt du "", weildu keine hast
Die Liste der Register machst du so lange wie du willst.
Ein short,long sensitive template koennte sein
ShOnTime:30 lgOnTime:80 shOffTime:300
Das ist es schon