Moin Moin zusammen,
ich mache derzeit meine ersten Schritte mit FHEM und bin begeistert - komme aus der Ecke IP-Symcon.
Leider hakt es aber nunmehr massiv bei dieser Aufgabenstellung:
Bei der Bewegungserkennung durch den Peha Bewegungsmelder EnOcean soll Licht für 120 sec geschaltet werden.
Die Rahmenbedingungen:
Fhem info:
Release : 5.5
Branch : DEVELOPMENT
OS : linux
Arch : arm-linux-gnueabihf-thread-multi-64int
Perl : v5.14.2
uniqueID : fbadeff0c8dc70c38dedca6221406529
upTime : 00:25:26
Defined modules:
Calendar : 1
EnOcean : 17
FB_CALLMONITOR : 1
FHEMWEB : 6
FLOORPLAN : 1
FileLog : 13
TCM : 1
Weather : 1
at : 1
autocreate : 1
dummy : 9
eventTypes : 1
notify : 10
readingsGroup : 1
structure : 7
telnet : 1
weblink : 1
Das Device:
define BM_Garten EnOcean 000106E5
attr BM_Garten IODev TCM310_0
attr BM_Garten manufID 001
attr BM_Garten room EnOcean,Garten
attr BM_Garten subType lightTempOccupSensor.01
define FileLog_BM_Garten FileLog ./log/BM_Garten-%Y.log BM_Garten
attr FileLog_BM_Garten logtype text
attr FileLog_BM_Garten room EnOcean
die Problemzeile:
define garten_movement notify BM_Garten{ if ReadingsVal('BM_Garten', 'motion', "" ) eq "on" ) { fhem "set Grillschuppen on-for-timer 120"}}
das Ziel:
### Garten Schalter 2 Schuppen links / Bodenbeleuchtung
###### physikalischer Schalter 2 ######
define 4TG2 EnOcean 00117135
attr 4TG2 IODev TCM310_0
attr 4TG2 room EnOcean
attr 4TG2 subType switch
define TG2_A dummy
attr TG2_A eventMap AI:on A0:off
attr TG2_A room EnOcean
define n_A2 notify 4TG2:.*A.* { fhem("set TG2_A ".($EVENT=~m/AI/ ? "on" : "off")) }
define TG2_B dummy
attr TG2_B eventMap BI:on B0:off
attr TG2_B fp_Garten 50,200,1,
attr TG2_B room EnOcean
define n_B2 notify 4TG2:.*B.* { fhem("set TG2_B ".($EVENT=~m/BI/ ? "on" : "off")) }
define FileLog_4TG2 FileLog ./log/EnO_switch_00157702-%Y.log EnO_switch_00157702
attr FileLog_4TG2 logtype text
attr FileLog_4TG2 room EnOcean
#Definition des Fhem Schalters Garten 2 links ===== FF8F3C85 ======
define fh_garten02_li EnOcean FF8F3C85
attr fh_garten02_li IODev TCM310_0
attr fh_garten02_li eventMap BI:on B0:off
attr fh_garten02_li fp_Garten 50,200,1,
attr fh_garten02_li icon icoBELEUCHTUNG.png
attr fh_garten02_li room EnOcean
attr fh_garten02_li subType switch
### Kopplung Schalter phy und fhem ########
define Grillschuppen structure room fh_garten02_li TG2_B
attr Grillschuppen clientstate_behavior last
attr Grillschuppen eventMap BI:on B0:off
attr Grillschuppen fp_Garten 50,200,1,
attr Grillschuppen room EnOcean,Garten
Tests:
In der FHEM-Kommandozeile:
{ReadingsVal('BM_Garten', 'motion', "");;}
ergibt den jeweils sauberen Zustand vom PeHa
set Grillschuppen on-for-timer 120
schalte brav das gewünschte Licht für 120 sec .... nur leider funktioniert die o.a. Zeile nicht so richtig ....
.... falls das Problem an der Intelligenz vor meiner Maschine oder hinter meiner Brille liegen, bitte ich um NAchsicht und einen kleine Tipp, wie ich hier vorwärts komme ... meine Perl-Kenntnisse muß ich wohl auch mal wieder massiv auffrischen.
Vielen Dank vorab
Bitte schau Dir notify in der commandref an. Du hast kein pattern: ..........M:.on
Einsteiger-pdf enthält auch Infos dazu.
Hi, und danke für die flotte Antwort,
aber warum soll der Auslöser denn auf den Zustand gebunden werde ? Ich ging davon aus, das der Wechsel von BM_Garten als Auslöser reicht - die Bedingung wird dann im if geprüft, und die Folge generiert .....
... wo genau fängt denn da jetzt mein Holzweg an ?
Sorry,aber da ich die Events nicht kenne, habe ich beim Pattern ein Beispiel geliefert. Wenn bspw. motion: on , dann motion:.on usw. Oder ich brauche mehr Details......
Hi Krikan,
nein, sorry muß ich sagen - hier die nötigen Details, die ich vorher vergessen habe:
Internals
DEF
000106E5
IODev
TCM310_0
LASTInputDev
TCM310_0
MSGCNT
32
NAME
BM_Garten
NOTIFYDEV
global
NR
213
STATE
M: off E: 136 P: absent T: 0.0 U: 3.3
TCM310_0_DestinationID
FFFFFFFF
TCM310_0_MSGCNT
32
TCM310_0_PacketType
1
TCM310_0_RSSI
-79
TCM310_0_ReceivingQuality
good
TCM310_0_RepeatingCounter
0
TCM310_0_SubTelNum
3
TCM310_0_TIME
2014-08-05 06:34:49
TYPE
EnOcean
Readings
brightness
510
2014-08-05 06:52:07
motion
off
2014-08-05 06:52:07
presence
absent
2014-08-05 06:52:07
state
M: off E: 510 P: absent T: 0.0 U: 3.3
2014-08-05 06:52:07
temperature
0.0
2014-08-05 06:52:07
voltage
3.3
2014-08-05 06:52:07
Du musst Dir die Events anschauen, notify reagiert auf events und nicht auf readings. Darum Eventlog ansehen und zeigen. Mein letztes Pattern dürfte aber der richtige Weg sein.....
Und nimm das if aus dem notify, dass ist doch der/das? Pattern, oder ?
Hallo krikan,
danke für das massive Schubsen auf den rechten Weg .... mein Brett war ein wenig dicker gestern .... 8)
auf alle Fälle tut
define mv_garten notify BM_Garten:motion:.on {fhem "set Grillschuppen on-for-timer 120"}
nun das, was es soll .....
Problem gelöst, Lösung verstanden - VIELEN DANK !
Kein Problem, im Gegenzug darfst Du gerne die Funktionsfähigkeit von bisher mit Fhem ungetesteten Enocean-Geräten bestätigen. Und Beispiele für EnOcean-Codeschnipsel hätte ich auch gerne entweder im EnOcean-Bereich oder als Ergänzung im Wiki ;)
.... das wird so gemacht .....
Ich will nur heute abend / morgen früh testen, ob das automatisierte Aktivieren/Deaktivieren des Schalters Bewegung bei Sunset + 30 min / Deaktivieren Sunrise +30 min funktioniert, dann post ich diesen Codeschnipsel ... manuell geht das schon ....
Prima! :)
EDIT: Die Einsatzbeispiele von 50watt zur Bewgungserkennung http://www.fhemwiki.de/wiki/EnOcean-FBH65TFB-Funk-Bewegungs-_Helligkeits-_Temperatur-_und_Feuchte-Sensor kennst Du schon?
Nein,
kannte ich noch nicht - meiner ist ein etwas anderes Modell http://sortiment.opus-schalter.de/documents/561_148--DBH-1-de.pdf (http://sortiment.opus-schalter.de/documents/561_148--DBH-1-de.pdf).
Aber ein definierter Lux-Schwellenwert als Bedingung ist natürlich charmanter als die Abhänggkeit vom Sonnenstand + x min - man erfasst halt mehr Szenarien.
Danke für den Tip - werde ich umsetzen , testen und bei gewünschter Funktionalität posten.
Gruß
Lars
Der Sensor ist afaik von mehreren Firmen mit diversen Namen erhältlich; OPUS produziert glaube ich nicht. Im Wiki haben wir diese und seine Namenskollegen speziell aber noch nicht. Von der Funktionalität dürfte aber http://www.fhemwiki.de/wiki/EnOcean-FBH65S-Funk-Bewegungs-_Helligkeitssensor am ähnlichsten sein.
Gruß, Christian
Hallo Christian - stimmt, OPUS bzw Jäger kauft nur zu - mein Sensor ist wohl von Peha ....
Ja, die Syntax Deines Link-Geräts sollte bei mir passen - ich bau das Beispiel "Aktor schalten in Abhängigkeit von Bewegung und Helligkeit " heute noch in meinen Code ein und teste, ob es funktioniert ..... dann melde ich mich wieder.
Gruß
Lars
EDIT:
aktuell habe ich das nun so gelöst:
### Bewegung einschalten bei Dunkelheit #####
define chk_lux_on notify (BM_Garten:M.*) {if ($EVTPART3 < xxx){fhem "set Bewegungsmelder on"}}
#### Licht Schalten bei Bewegung
define mv_garten notify BM_Garten:motion:.on {if (Value("Bewegungsmelder")eq "on"){fhem "set Grillschuppen on-for-timer 120"}}
##### Bewegung ausschalten bei Helligkeit #####
define chk_lux_off notify (BM_Garten:M.*) {if ($EVTPART3 > yyy){fhem "set Bewegungsmelder off"}}
... die LUX-Werte xxx und yyy definiere ich heute bei Dämmerung individuell, und dann werde ich noch testen, ob der Helligkeitssensor mit ner MagLite manipulierbar ist .... falls ja, kommt noch eine Sonnenstandsabhängige Triggerung mit sunset_abs(1800) o.ä. zum Einsatz .....
Hallo Lars,
freut mich, dass Du vorwärts kommst, dummerweise ;) hat Dein Sensor ein EEP (subType lightTempOccupSensor.01), das eben leider schon im Wiki beschrieben ist. Hatte gehofft, das etwas neues kommt....
Zu Deinen notify´s :
Zitatdefine mv_garten notify BM_Garten:motion:.on {if (Value("Bewegungsmelder")eq "on"){fhem "set Grillschuppen on-for-timer 120"}}
Die if-Abfrage kannst Du Dir meiner Meinung nach sparen. Dein notify springt nur an, wenn Bewegung (Event: motion:.on) vorliegt.
Zitatdefine chk_lux_on notify (BM_Garten:M.*) {if ($EVTPART3 < xxx){fhem "set Bewegungsmelder on"}}
Wenn Du nur auf Helligkeit testen willst, könntest Du das Pattern auch auf brightness:.* setzen, da Du die Bewegung nicht brauchst. Aber das ist halt Geschmacksfrage.
Viel Spaß beim weiteren Basteln, Christian
Hallo Christian,
das sehe ich anders ....
Zitat
Zitat
define mv_garten notify BM_Garten:motion:.on {if (Value("Bewegungsmelder")eq "on"){fhem "set Grillschuppen on-for-timer 120"}}
Die if-Abfrage kannst Du Dir meiner Meinung nach sparen. Dein notify springt nur an, wenn Bewegung (Event: motion:.on) vorliegt.
... das if ist drin, da ich "Bewegungsmelder" manuell daktivieren kann - ist schon doof, wenn man abends im Sommer mit der GöGa im Garten sitzt und bei jeder Bewegung die Vorfeldbeleuchtung anspringt ... stört ein wenig das Ambiente .... aber Dein Hinweis mit Brightness war gut .... das ist der elegantere Weg als mein eigener ....
Nächstes Projekt ist die Markisensteuerung .... dummerweise mit dem Aktor http://www.opusgreen.net/sites/default/files/downloads/561314-rev01_0701221.pdf (http://www.opusgreen.net/sites/default/files/downloads/561314-rev01_0701221.pdf) ...über den hab ich nicht wirklich was gefunden .....
Gruß
Lars
Hallo Lars,
Zitat. das if ist drin, da ich "Bewegungsmelder" manuell daktivieren kann
Ok, das wusste ich nicht. Steht das in der Anleitung ?
Vergiss es, habe es jetzt verstanden :-[
ZitatMarkisensteuerung
Tippe auf Peha-unidirektional-Aktor. Mein Peha 451 (http://www.batterielos.de/download/Bedienungsanleitungen/Produktgruppe%20EnOcean/Peha/452-FUEPJR.pdf) sieht genauso aus und Anleitung ähnelt dem auch. Wenn ich richtig liege, dann muss Du einen switch als Tasteremulation einlernen (http://www.fhemwiki.de/wiki/EnOcean_Starter_Guide#Teach-In_als_Tasteremulation)
Gruß, Christian
edit: Nchträglich kapiert....
Hallo Christian,
ich poste die gesamte Lösung mit Erläuterungen noch einmal gesondert, dann wird das klarer ......
Hast Du eventuell eine Quelle, wie ich einen langen Tastendruck auf den FT 55 simulieren kann ?
ZitatHast Du eventuell eine Quelle, wie ich einen langen Tastendruck auf den FT 55 simulieren kann ?
Kannst Du mir näher erläutern, was und warum Du das brauchst ? Momentan fehlt mir ein bißchen der Zusammenhang.
Meinst Du evtl. so eine Befehlsfolge:
set switch A0
sleep 1
set switch relased
Hi, nar klar .... also folgengender IST-Zustand:
- dezeit steuere ich die Markise manuell über einen Doppelwippentaster mit den Kanälen BI (ausfahren) B0 (einfahren)
- der unidirektionale Aktor ist im Funktionsmodus 1 (siehe Datenblatt) - d.h. er fährt die Markise bei langem Tastendruck in die gewünschte Richtung , jeweils voll bis zum Begrenzer - wenn ich nur 50% will, muß ich kurz drücken, dann stoppt das Teil.
SOLL-Zustand:
- ich will die Markise über FHEM und Taster steuern (Koppelung wohl mit dem klassischen Structure-Gebilde für unidirektionale Aktoren)
(hier kommt meine Frage nach Tastendruck lang ins Spiel)
- ich will über einen Slider verschieden Stufen des Ausfahrgrades einstellen können mittels Emulation (ich habe die Gesamtlaufzeit, also Tastendruck lang sleep 9 sec (für 20% Ausfahren) - Tastendruck kurz ) und natürlich über Reading Timestamps den Staus sauber in FHEM abbilden.
ich hoffe, ich habe mich verständlich ausgedrückt .... falls nicht ... ich üb noch ;-)
Zitatich hoffe, ich habe mich verständlich ausgedrückt .... falls nicht ... ich üb noch ;-)
Ich auch...
Muss ich mir in Ruhe anschauen. Vielleicht solltest Du, das hier mal als neues Thema im EnOcean-Bereich posten. Keine Ahnung, ob klaus.schauer (Entwickler der EnOcean-Module) hier mitliest, was sicherlich besser wäre.
Zitat
SOLL-Zustand:
Hättest Du nicht mit den einfachen Dingen anfangen können.... ;)
Hab ich doch ... die Fenster sind drin, Licht und Strom im Haus (jedenfalls die mit Aktoren) sind eingebunden ... ich habe meine GöGa für das System begeistert (jetzt auf einmal kann es nicht schnell genug gehen ... 8) ).... ach was ... einfach kann jeder 8) .... aber ich halte die Idee mit dem EnOcean-Fred für sinnvoll .... da ticker ich dann auch meine Lösung mit dem Bewegungsmelder rein ......
ZitatGöGa für das System begeistert
Herzlichen Glückwunsch, wir hatten heute erst Diskussionen zu den "lauten" alten PTM210. Die neuen PTM215 sind doch viel leiser. Ich höre keinen bedeutsamen Unterschied....
Hast Du die
A0 sleep released
Kombination mal ausprobiert.
Zitat
Hast Du die
Code: [Auswählen]
A0 sleep released
Kombination mal ausprobiert.
noch nicht - ich sammel erstmal - irgendwie war die letzte Nacht zu lang .... nur noch Matsch in der Birne .....
Ich finde, man kann den Unterschied hören - aber grade akustisches und haptisches Feedback erhöhen normalerweise das Vertrauen des Anwenders - wenns knackt - dann funktioniert der/das Piezo .... meine findet es besser , als leise und/oder wabbelig ind der Haptik ....