Hallo liebe FHEM Gemeinde,
nach dem ich nun den ganzen Nachmittag versucht habe mein Wissen mit Lesen diverser Beiträge als auch "DEM FHEM pdf Dokument" zu erweitern,
nun aber einfach, weil bestimmt den Wald vor Bäumen..... nicht weiterkomme.
ich habe seid nem Jahr einen Aktor (HM-LC-Sw1-FM) in der Garage im Einsatz der von einem Taster (Funk-Tasterschnittstelle) am Wohngebäude, und einem normalen Taster der mit dem Aktor verbunden ist geschaltet wird. Nun habe ich mir endlich mal ein Herz gefasst und einen RPI zugelegt. Der läuft mit raspbian und einem CUL auch soweit. Eine Steckdose zum Testen wurde eingerichtet und lässt sich schalten. Der Aktor wurde zurück gesetzt, mit dem CUL gepairt, und lässt sich auch über das Webinterface ein und aus schalten. Die Tasterschnittstelle habe ich auch gepairt. Aus dem "Heimautomatisierung mit fhem" pdf habe ich mir folgende Zeile für die Kommunikation zwischen aktor und taster gezogen.
--> define Taster1notify notify Taster1 set aktor_gartenweg $EVENT
Tasterschnittstelle --> Taster1
Aktor --> aktor_gartenweg
lange Rede......
die Beleuchtung lässt sich nicht schalten.
jedoch sehe ich unter dem Punkt State dass bei Drücken des Tasters ein Signal angekommen sein muss.
Irgendwo häng ich leider schon beim warscheinlich leichtesten überhaupt :-(
ich glaube ich lese und informiere mich gerade in die falsche Richtung
kann mir jemand den Weg weisen.
2015.01.03 18:34:06 2: Error messages while initializing FHEM: statefile: Please define Taster1notify first
2015.01.03 18:34:06 0: Server started with 21 defined entities (version $Id: fhem.pl 7358 2014-12-29 16:03:31Z rudolfkoenig $, os linux, user fhem, pid 2235)
2015.01.03 18:42:03 3: Taster1notify return value: Unknown argument battery:, choose one of clear:readings,trigger,register,rssi,msgEvents,all getConfig getRegRaw getSerial getVersion inhibit:on,off off on on-for-timer on-till pair peerBulk peerIODev press raw regBulk regSet reset sign:on,off statusRequest toggle unpair
2015.01.03 18:42:03 3: Taster1notify return value: Unknown argument CUL_HM_HM_PBI_4_FM_20B603_Btn_01, choose one of clear:readings,trigger,register,rssi,msgEvents,all getConfig getRegRaw getSerial getVersion inhibit:on,off off on on-for-timer on-till pair peerBulk peerIODev press raw regBulk regSet reset sign:on,off statusRequest toggle unpair
Grüße
Die Tasterschnittstelle gibt als EVENT immer short oder long. Wenn du im notify also $EVENT zum schalten verwendest, wird das mit dem Aktor nicht funktionieren. Besser wäre hier ohnehin ein Peering.
Ziel war ja eigentlich die Gartenbeleuchtung auch vom Tablet aus schalten zu können, wenn die Kinder oder das geliebte Weib mal wieder
vergessen hab aus zuschalten. Außerdem war geplant, regelmäßig zu bestimmten Zeiten die Beleuchtung ein zuschalten.
Hi,
erstmal musst du die Tasten einzeln bennen.
..btn_01
..btn_02
die zwei triggern wenn dann das notify.
mach nen rename auf die zwei und benenn die z.B.
garten_BTN_1
garten_BTN_2
versuchs mal damit...
Das notify muss auch ein event auswerten können
define ntfy_gartenBTN1 notify garten_BTN_1:short.* set aktor_gartenweg on
define nftfy_gartenBTN2 notify garten_BTN_2:short.* set aktor_gartenweg off
weiß nicht warum ich mir das gestern so kompliziert gemacht habe,
über folgende Definition läuft es natürlich ::)
define Taster1Notify notify Taster1 set aktor_gartenweg toggle
Nun muß ich nur mal schauen ob ich das auch als "Treppenlicht" ausgebaut bekomme.
Also mit kurzem Druck auf einen Taster ca. 2min on wär prima, und bei längerem Druck (4sec) Dauerlicht.
Bin ja erst auf Seite 27 ;D
oh da haben wir uns überschnitten ;D
danke für deine Antwort. was bedeutet Taster:short.*
Das wäre die Lösung für den kurzen Tastendruck.
Das mit den minuten an ist auch simpel...
set Treppenhauslicht on-for-timer 60
Die 60 sind Sekunden in dem Fall wäre es eine Minute.
Hier ist die Lösung für lange Tastendrücke
define ntfy treppeL notify Treppenhaus:Long.2.*
anke für deine Mühe, aber vorweg, damit wir nicht aneinander vorbei reden ;-)
ich nutze nur
einen Taster.
also bilde ich mir ein dass ich mit dem toggle Befel arbeiten muss oder?
die Richtung scheint ja schon mal zu stimmen.
mit
define taster_gartenNotify notify taster_garten set aktor_gartenweg on-for-timer 5
ist die Lampe nach kurzem Tastendruck für 5sec. an. prima
wenn ich das von dir angesprochene ":short.*" einbaue passiert nichts
im prinzip müsste ich ja nur noch das "long" einbauen, da ja standardmäßig (glaube das gelesen zu haben) bei kurzem Tastdruck short aktiv ist.
ZitatHier ist die Lösung für lange Tastendrücke
define ntfy treppeL notify Treppenhaus:Long.2.*
hab ich versucht
define taster_garten_Long notify taster_garten:long.2.* set aktor_gartenweg on
kein Licht
erkannt wird der längere Tastbefehl jedoch
Hi,
sag mal welchen Taster du hast.
Poste mal das ganze define und ich meine in einem deiner Screenshots hab ich btn1 und btn2 gesehen.
den hier http://www.elv.de/homematic-hm-pbi-4-fm-funk-tasterschnittstelle-4fach-unterputzmontage.html (http://www.elv.de/homematic-hm-pbi-4-fm-funk-tasterschnittstelle-4fach-unterputzmontage.html) / HM-PBI-4-FM, an diesen können 4 Taster angeschlossen werden,
ich habe aktuell nur einen für die Gartenbeleuchtung angeklemmt. Evtl. werden die anderen Kontakte später noch belegt. (z.Bsp. für weitere Lampen, oder zur Bewässerung)
edit: define taster_gartenNotify notify taster_garten set aktor_gartenweg toggle
original heißen die Tasterschnittstellen CUL_HM_HM_PBI_4_FM_20B603_Btn_01 / 02 /03 /04
den ersten habe ich in taster_garten umbenannt
Ahh, das bringt Licht ins Dunkel.
So ein Teil habe ich noch gar nicht im Einsatz.
Also fangen wir von vorn an.
Wo programmierst du das?
In der fhem.cfg? Oder def?
Also Edit Files und dann fhem.cfg ??
Da muss der Code anders aussehen. Wichtig ist, Groß und Kleinschreibung beachten. Schau mal im Eventmonitor nach was kommt wenn du lang und kurz auf den Taster drückst und poste das mal.
Findest unten Links. auf der Startseite.
define taster_gartenNotify notify taster_garten:Short.* {\
fhem (" set aktor_gartenweg toggle");;\
}
define taster_gartenNotify notify taster_garten:Long.4.* {\
fhem (" set aktor_gartenweg off");;\
}
Ich mach das immer so, dann kann ggf. optisch schneller was eingefügt werden für mich ist es auch übersichtlicher als in einer Zeile.
Bisher habe ich nur die Befehlszeile von fhem genutzt und das dann in der .cfg gegen gecheckt.
ich bin aktuell auf Arbeit und würde deine Befehle heut Abend testen.
Aber wenn ich das richtig verstehe schalte ich doch mit deinem 2. Befehl
define taster_gartenNotify notify taster_garten:Long.4.* {\fhem (" set aktor_gartenweg off");;\
}
nur aus, oder hab ich nen Hänger?
wenn ich den langen Tastendruck für "Treppenlichtfunktion" nutzen möchte muss da nicht "..................set aktor_gartenweg on-for-timer xxx" rein...
Bevor wir uns aber hier verrennen, mir ist noch was eingefallen was evtl. problematisch ist, bzw. auch berücksichtigt werden müsste (falls du weißt wie das geht ;-))
an dem Aktor http://www.elv.de/homematic-funk-schaltaktor-2fach-unterputzmontage-1.html habe ich ja einen normalen Taster direkt angeschlossen. ist das denn damit auch realisierbar?
Wenn du den Taster direkt bedienst, hast du wenig chancen mit on-for-timer zu auf arbeiten.
Nur dann wird er bei jedem on reagieren. Viel laenger als die Zeit wird der aktor nicht an sein.
Du koenntest allerdings mit at +00:00:30 arbeiten.
Nur smartphone zeug hier spaeter per laptop.
Hallo,
ZitatBisher habe ich nur die Befehlszeile von fhem genutzt und das dann in der .cfg gegen gecheckt.
Sehr löblich - wobei letzteres nicht unbedingt notwendig ist ;D
FHEM weiß schon wie die Codes zu speichern sind.
Versuch mal:
define taster_gartenNotify notify taster_garten:Long.* set aktor_gartenweg off
Sollte taster_gartenNotify bereits existieren - already defined, delete it first - dann einfach erstmal ein
delete taster_gartenNotify
eingeben und dann den Code nochmal in die Befehlszeile kopieren.
Oder du suchst dir das DEF des notify und kopierst
taster_garten:Long.* set aktor_gartenweg off
direkt ins DEF.
Bei langem Tastendruck sollte die Lampe ausgeschaltet werden.
Wenn nicht dann bitte Logfile und EventMonitor posten - danke.
Grüße
gegen gecheckt war vielleciht falsch ausgedrückt, ich wollte einfach nur sehen (verstehen wär noch zu viel) was in der cfg eingetragen wird ;D
entweder habe ich mich falsch ausgedrückt, oder ich verstehe euch nicht
ich möchte NICHT per Long ausschalten.
mein Wunsch ist, per short für eine bestimmte Zeit (z.Bsp. on-for-timer 60), und per long Dauerlicht zu schalten....
Hallo,
dann einmal ein
taster_garten:Long.* set aktor_gartenweg on
und ein
taster_garten:Short.* set aktor_gartenweg on-for-timer 60
Grüße
Wenn ich die Beschreibung des Schalters richtig verstehe, kannst du mit Short nur togglen.
define Schalterkurz notify Taster_garten:Short.* set Aktor toggle
define Schalterlang notify Taster_garten:Long.* set aktor on-for-timer 30
@Puschel
Wie schaltetet du das Licht wieder aus?
@netcrawler
Du kannst auch den Schalter mit dem aktor Peeren und dann die on-for-timer im Register des Aktors einstellen
Hallo,
Zitat@Puschel
Wie schaltetet du das Licht wieder aus?
Wieso ich?
Die Anforderungen kommen nicht von mir ;)
Aber ein Short schaltet das Licht nach 60 Sekunden ab - wenn on-for-timer klappen würde.
Sonst ein at drauf und das Licht lässt sich auch wieder abschalten (mit einem off diesmal).
Druck auf Long (Licht an) - Druck auf Short (Licht nach 60 Sekunden aus)
Du siehst - das Licht lässt sich auch so ausschalten.
Grüße
aktuell steh bei mir in der .cfg
define taster_gartenNotify notify taster_garten set aktor_gartenweg on-for-timer 3
und das funktioniert (auch ohne :Short.*) hab es aber dennoch gesetzt. ich tu ja meist was man mir sagt ;-)
also geändert in
define taster_gartenNotify notify taster_garten:Short.* set aktor_gartenweg on-for-timer 3
und funktioniert immer noch.
mit
define taster_garten_Long notify taster_garten:Long.* set aktor_gartenweg toggle
blinkt die Lampe so lange wie ich den Taster drücke, wenn ich nach 3x blinken los lasse hab ich Dauerlicht,
sieht zwar lustig aus, aber sooo oft wird das nicht benötigt. Außerdem schaltet das Licht nach kurzem Tastdruck erst nach 3sec. wieder aus, aber auch das ist egal
Zitat@netcrawler
Du kannst auch den Schalter mit dem aktor Peeren und dann die on-for-timer im Register des Aktors einstellen
ich hatte den
Taster ja schon längere Zeit mit dem Aktor gepeert. Aber ich dachte gerade für diese "on-for-timer" Geschichte ist das pairen erforderlich.
Nun stellt sich mir die Frage ob ich das (für 60sec. on) denn auch mit dem, am Aktor direkt angeschlossenem Taster auch relisieren kann.
Zitat von: netcrawler am 05 Januar 2015, 19:54:42
Nun stellt sich mir die Frage ob ich das (für 60sec. on) denn auch mit dem, am Aktor direkt angeschlossenem Taster auch relisieren kann.
Ja das geht Beschreibung findest du http://forum.fhem.de/index.php/topic,31319.0.html
ok, schau ich mir an,
aber ich glaube du hast Recht.
ich habe jetzt mal den Wert für on-for-timer nach oben gesetzt - 20sec.
hatte ja nur zum Test 3sec. eingetragen.
Das blöde Teil schaltet immer noch nach ca. 3sec. ab :-(
Menno
Ich glaube der Schalter ist dafür nicht geeignet
ahhhh, verdammt sorry für die Verwirrung,
hatte in der fhem.cfg den Wert in der falschen Zeile geändert >:(
funktioniert doch mit on-for-timer, auch mit 60
sorry noch mals,
das andere aus deinem Link hab ich nach 2x lesen noch nicht verstanden, ich trink mal nen Schluck Whisky und les es noch mal ;D
Ich bin bei HM auch noch Anfänger. Schau mal ob du bei deinem Aktor schon Register siehst . Die beginnen mit r-....... Wenn nicht setze beim Aktor set <aktor> RegSet intKeyVisib visib
ich merke schon, so eine wie ich dachte einfache Aufgabe artet aus.
jetzt versteh ich deine Frage von vorhin
ZitatWie schaltetet du das Licht wieder aus?
wenn die Beleuchtung AN ist, und ich den Taster nun zum ausschalten betätige schickt er ja ein "on-for-timer 60",
und das Licht geht erst nach dieser Zeit aus. Das ist doch alles Schei...benkleister
Warum togglest du nicht auf Short ( So ist es eigentlich bei dem Schalter gedacht)
Und bei Long setzt du on-for-timer
das wär doch zu einfach LOL
nein, aber die Kinder nutzen diesen Weg häufig, und das Licht wird oft vergessen aus zu schalten.
wenn ich denen jetzt erkläre dass der Taster lange gedrückt werden muss, wird das eh nüscht.
das einfachste wird wohl sein, Bewegungsmelder zu verwenden. oder aber lesenlesenlesen.
ich bin doch sicher nicht der erste der sowas realisieren will.
ich guck mir das mit deinen angesprochenen Registern mal an, wie meinst du das
ZitatWenn nicht setze beim Aktor set <aktor> RegSet intKeyVisib visib
set aktor_gartenweg regSet intKeyVisib visib
hab ich gemacht,
unter deinem o.g. link hast du ja ein list gemacht, und dort sieht man viele Einträge mit R-FHEM...
mein list sieht so aus
Internals:
CUL_0_MSGCNT 49
CUL_0_RAWMSG A0A2C8002237777F1123400::-72:CUL_0
CUL_0_RSSI -72
CUL_0_TIME 2015-01-05 22:08:28
DEF 237777
IODev CUL_0
LASTInputDev CUL_0
MSGCNT 49
NAME aktor_gartenweg
NR 26
STATE off
TYPE CUL_HM
lastMsg No:2C - t:02 s:237777 d:F11234 00
protLastRcv 2015-01-05 22:08:28
protSnd 44 last_at:2015-01-05 22:08:27
protState CMDs_done
rssi_CUL_0 avg:-72.86 min:-74 max:-71 lst:-72 cnt:38
rssi_at_CUL_0 avg:-72.93 min:-74.5 max:-71.5 lst:-72 cnt:49
Readings:
2015-01-05 22:08:28 CommandAccepted yes
2015-01-03 15:26:27 D-firmware 1.12
2015-01-03 15:26:27 D-serialNr KEQ0632658
2015-01-03 15:26:28 PairedTo 0xF11234
2015-01-05 21:49:15 R-intKeyVisib set_visib
2015-01-03 15:26:28 R-pairCentral 0xF11234
2015-01-03 15:26:28 R-sign off
2015-01-03 15:26:28 RegL_00: 02:01 03:00 04:00 05:00 06:00 07:00 08:00 09:00 0A:F1 0B:12 0C:34 00:00
2015-01-03 15:26:28 RegL_01: 08:00 00:00
2015-01-05 21:21:32 deviceMsg off (to broadcast)
2015-01-05 21:21:32 level 0
2015-01-04 17:07:06 levelMissed desired:100
2015-01-05 21:21:32 pct 0
2015-01-05 21:21:32 recentStateType info
2015-01-05 21:21:32 state off
2015-01-05 21:21:32 timedOn off
Helper:
cSnd 01F112342377770006
dlvlCmd ++A011F112342377770201C80000
mId 0004
rxType 1
Io:
newChn +237777,00,01,00
nextSend 1420492108.15208
prefIO
rxt 0
vccu
p:
237777
00
01
00
Mrssi:
mNo 2C
Io:
CUL_0 -70
Prt:
bErr 0
sProc 0
Rspwait:
Q:
qReqConf 00
qReqStat
Role:
chn 1
dev 1
prs 1
Rssi:
Cul_0:
avg -72.8684210526316
cnt 38
lst -72
max -71
min -74
At_cul_0:
avg -72.9387755102041
cnt 49
lst -72
max -71.5
min -74.5
Shadowreg:
RegL_00: 02:81 03:00 04:00 05:00 06:00 07:00 08:00 09:00 0A:F1 0B:12 0C:34 00:00
Attributes:
IODev CUL_0
autoReadReg 4_reqStatus
expert 2_full
firmware 1.12
model HM-LC-SW1-FM
peerIDs 00000000,
room Gartenweg
serialNr KEQ0632658
subType switch
userattr room_map structexclude
webCmd statusRequest:toggle:on:off
Dann würde ich es nochmal so probieren.
Schalter Long set aktor toggle
Schalter Short set aktor on-for-timer. (War jetzt Kurzfassung)
Dein intKeyVisible ist noch nicht verarbeitet in den readings muss das "set" raus. Eventuell mal den Taster des aktor lange drücken. Wie zum anlernen.
Ihr müsst darauf achten, wenn ihr auf Long.* triggert, reagiert das notfify auf jedes Event was mit Long kommt. triggert ihr auf Long.4.* reagiert er nur auf einen.
Spreche aus Erfahrung... Ich hatte einen Knopf belegt auf Long.* das tolle war, dieser Knopf hat alles ausgeschalten. Blöd ist dann aber das bei jedem Long alles abgeschalten wird. Kommt das Long 4 mal hat er 4 mal alles aus gemacht. Öhm ja das hat dann gedauert endete dann im Hmlan overload...
Solang ihr noch nicht viel im Netz habt ist das sicher kein Problem. Wird es mehr, solltet Ihr den HM-Traffic gering halten.
nun habt ihr mich komplett aus der Bahn geworfen, oder es ist zu spät, oder ich schwimme hier in für mich zu tiefen Gewässern.
Das schau ich mir morgen noch mal mit nem Kaffee an ;D
Zuviel Whisky ;)