Ich habe einen HM-LC-Sw4-PCB als Garage1 umbenannt. Der Befehl set Garage1 on
funktioniert. Der Handsender HM-RC-4-2 benannt als Hand1 mit den Tasten Hand1_1 bis Hand1_4 ist auch vorhanden. Wenn ich jetzt define Tor_auf notify Hand1_1_short set Garage1 on
in der fhem.cfg stehen habe und den Taster 1 drücke funktioniert nichts. Ist die syntax falsch?
Hallo,
vorgehen in solchen Fällen:
EventMonitor ausmachen und den Taster drücken. Dann wird dort angezeigt, welche Event ausgelöst wird. Das kommt dann ins notify. Ich vermute der notify muss auf Hand1_1:short laufen.
Gruß Christoph
ausmachen oder anmachen?
Das habe ich im event monitor nach drücken der Taste 1
2015-11-01 13:00:59 CUL_HM Hand1 battery: ok
2015-11-01 13:00:59 CUL_HM Hand1 CMDs_done
2015-11-01 13:00:59 CUL_HM Hand1 Hand1_2 Short
2015-11-01 13:00:59 CUL_HM Hand1_2 Short (to Hand1)
2015-11-01 13:00:59 CUL_HM Hand1_2 trigDst_123456: noConfig
2015-11-01 13:00:59 CUL_HM Hand1_2 trigger: Short_25
2015-11-01 13:00:59 CUL_HM Hand1_2 trigger_cnt: 25
Hallo,
bitte die commandref zu notify lesen - da steht Gerät:Event also für Dich
Hand1_1:Short oder wenn das nicht geht :.Short. Die Groß-/Kleinschreibung ist bei fhem immer zu beachten.
BTW warum peerst Du die Fernbedienung nicht mit dem Actor. Damit reduziert Du den Funkverkehr (1% Regel) und stellst gleichzeitig sicher, das die Funktion auch gegeben ist, wenn fhem mal nicht läuft.
Gruß Christoph
Ich möchte später mit EINEM Knopfdruck nacheinander zwei Aktoren auslösen. Deshalb mein Gedanke das über fhem zu machen.
Hallo,
dann solltest Du Dir mal das Modul DOIF ansehen. Das kann genau so etwas - vor allem das mit den zwei Actoren mit Zeitunterschied ist da sehr einfach zu lösen.
Gruß Christoph
ZitatIch möchte später mit EINEM Knopfdruck nacheinander zwei Aktoren auslösen.
du kannst mehrere aktoren mit einem button peeren. sollen diese zeitlich versetzt schalten, kannst du zusätzlich entsprechende verzögerungen zu den peers in den aktoren konfigurieren.
da fällt mir gleich wieder template ein, wenn du verzögert schalten willst. Definiere ein SwDelayedOn bei dem du die Zeit einstellen kannst.
erst peere die beiden Aktoren act1 und act2 mit Btn1.
set hm templateDef SwDelayedOn delay "verzögertes einschalten" ActionType:jmpToTarget OffTime:unused OnTime:unused SwJtDlyOff:dlyOn SwJtDlyOn:on SwJtOff:dlyOn SwJtOn:no OnDly:p0 OffDly:0
und dann weise es den aktoren zu, wobei der Akt 2 10 sec später angehen soll, bei kurzem Tastendruck.
set hm templateSet act1 SwDelayedOn Btn1:short 0
set hm templateSet act2 SwDelayedOn Btn1:short 10
was bei Long passieren soll ist nicht definiert - kann man noch, z.B. Long soll beide Ausschalten:
set hm templateSet act1 SwOff Btn1:long
set hm templateSet act2 SwOff Btn1:long
SwOff ist ein vordefiniertes template, das hast du schon mit HMInfo.
hm ist die HMInfo instanz, klar oder?
define hm HMinfo
nicht vergessen:
- die register werden dann je nach device gesetzt - das kann dauern... oder auch nicht
- set hm archConfig speichert die Sets und Defs - also nicht vergessen
- set hm templateExe # schreibt alle configs noch einmal, wenn es nicht geklappt hat.
Siehe auch Wiki.... ok, das muss noch besser werden.
Erst mal Danke, das muß ich erst verarbeiten. ;-)) Noch eine Frage dazu: Auch wenn ich den Taster kurz presse werden trotzdem mehrere Befehle gesendet. Wie kann ich das verhindern? (kurze Pause nach einmal drücken?)
Ist das
set hm templateDef SwDelayedOn delay "verzögertes einschalten" ActionType:jmpToTarget OffTime:unused OnTime:unused SwJtDlyOff:dlyOn SwJtDlyOn:on SwJtOff:dlyOn SwJtOn:no OnDly:p0 OffDly:0
unabhängig von den Aktoren?
Und
set hm templateSet act1 SwDelayedOn Btn1:short 0
set hm templateSet act2 SwDelayedOn Btn1:short 10
bedeutet act1 ist dann bei mir z.B. Garage1 Nach eingabe dieser Befehle muß dann noch
set hm archConfig
eingegeben werden.
Habe ich das soweit richtig verstanden?
Das def ist ersteinmal ein frei schwebendes template. Es kann auf alle Aktoren angewendet werden, die alle Register haben welche im template definiert werden. Bei der Definition kann nichts geprüft werden, da nicht klar ist, welches device es nutzen wird.
Es ist also bedingt unabhängig.
Nach dem set werden die Register sofort geschrieben. Der akt1 wird sofort auf btn1 short reagieren. Akt2 ebenso, aber nach 10 sec
Das arch ist dann nur um das define zu sichern. Und die sets auch. Mit loadconfig kannst du es wieder laden, nach einem reboot. Damit kannst du die Register auf einer abstrakten ebene kontrollieren.
Wenn du es durchgängig einbaust wird es viel vereinfachen.
So ganz klappt es nicht. Beide Aktoren gehen zusammen an und beim nächsten Tastendruck geht Aktor 1 aus. der andere reagiert nicht mehr. btw wie bringe ich den Aktoren noch ein on-for-timer bei? Mit set funktioniert es zwar aus dem webinterface, den Knopfdruck lässt das aber kalt.
Jemand eine Idee, wie das mit dem set und den Registern aus der Weboberfläche geht?
mit set musst du alle register setzen, die das template auch setzt. schaue es einfach an. templateList <template>.
hast dukomtrolliert, dass das template auch eingebaut ist?
get hm templateUsg
get hm templateChk
Ich habe ja das
set hm templateDef SwDelayedOn delay "verzögertes einschalten" ActionType:jmpToTarget OffTime:unused OnTime:unused SwJtDlyOff:dlyOn SwJtDlyOn:on SwJtOff:dlyOn SwJtOn:no OnDly:p0 OffDly:0
eingegeben.
Wenn ich dann nach Deinem letzten Post das
get hm templateChk
nachfrage bekomme ich 47 mal untereinander geschrieben
template undefined
ich dachte, mit dem
set hm templateDef.....
hätte ich das template gesetzt
mit templateDef wird das template angelegt. Nach einem einem reboot ist es weg, wenn du nichts machst.
Also nachsehen, was gesetzt ist
get hm templateList
get hm templateUsg
dann siehst du welche templates es gibt und welche genutzt werden.
Nachdem du ein def oder ein set gemacht hast solltest du speichern
set hm archConfig
dann kannst du es (nach reboots) mit
set hm loadConfig
wieder holen.
attr hm autoArchive 1
speichert automatisch (wenn du nicht zu schnell rebootest) - es dauert einige Minuten
bei
get hm templateUsg
kommt
Unknown argument templateUsg, choose one of configCheck help models msgStat param peerCheck peerXref protoEvents regCheck register rssi templateChk templateList
bei
get hm templateList
BlStopDnLg params: Info:Blind: stop drive on any key - for long drive down
BlStopDnSh params: Info:Blind: stop drive on any key - for short drive down
BlStopUpLg params: Info:Blind: stop drive on any key - for long drive up
BlStopUpSh params: Info:Blind: stop drive on
SwCondAbove params:condition Info:Switch: execute only if condition level is above limit
SwCondBelow params:condition Info:Switch: execute only if condition level is below limit
SwDelayedOn params:delay Info:verzögertes einschalten
SwOff params: Info:Switch: off if trigger
SwOn params: Info:Switch: on if trigger
SwOnCond params:level cond Info:switch: execute only if condition [geLo|ltLo] level is below limit
SwToggle params: Info:Switch: toggle on trigger
autoOff params:time Info:staircase - auto off after <time>, extend time with each trigger
motionOnDim params:ontime brightness Info:Dimmer: on for time if MDIR-brightness below level
motionOnSw params:ontime brightness Info:Switch: on for time if MDIR-brightness below level
wmClose params:speed Info:winmatic: close window
wmClosed params: Info:winmatic: lock window
wmLock params: Info:winmatic: lock window
wmOpen params:speed Info:winmatic: open window
da sind aber andere "Dinge" drin als im "set templateDef"
Ich hab jetzt noch das Problen, daß Kanal1 zwar verzögert einschaltet ABER zeitgleich mit dem unverzögerten Kanal ein oder zweimal kurz ein und wieder aus schaltet.
Ausserdem bekomme ich die OnTime nicht in die templateDef.
wenn templateUsg nicht geht musst du ein update machen - das ist noch nicht so alt
Zitata sind aber andere "Dinge" drin als im "set templateDef"
templateDef definiert deine templates, list zeigt die definierten. den Kommentar verstehe ich nicht
In der geposteten template Liste habe ich nicht die z.B. OnTime gefunden.
OK, nach dem Update sieht es so aus
Garage1 |Hand1_1:short |SwDelayedOn|1
Garage4 |Hand1_1:short |SwDelayedOn|0 shOnTime:0
Lässt sich daraus ersehen, warum Garage1 kurz "blinkt" bevor es angeht?