[gelöst] Verständnissproblem - MAX ECO Schalter und Steckdose schalten

Begonnen von matzewob, 05 März 2017, 10:28:41

Vorheriges Thema - Nächstes Thema

matzewob

Guten Morgen zusammen,

ich komme jetzt nach mehreren Tagen probieren nicht mehr weiter und möchte mich an euch wenden.
Ich bin mit FHEM recht neu und habe durch diverses googlen usw schon ein bisschen hinbekommen.
Allerdings kapiere ich die zusammnhänge jetzt nicht mehr wo ich mit dem ECO Schalter von Max einfach nur eine FS20 Steckdose ein und ausschalten möchte.

Und zwar habe ich eine FS20 Steckdose von ELV welche ich mit dem Cul verbunden habe.
In der Weboberfläche kann ich auch ganz toll auf an und aus klicken und die macht es :)

Die Steckdose die über das Web funktioniert.

define CUL1 CUL /dev/ttyACM0@9600 1234
attr CUL1 rfmode MAX
define Steckdose1 FS20 12341324 11
attr Steckdose1 IODev CUL1
attr Steckdose1 room Arbeitszimmer
attr Steckdose1 webCmd on:off


Jetzt habe ich auch den ECO Schalter von MAX mit dem Cul verbunden:


define cm CUL_MAX 123456
attr cm IODev CUL1

define MAX_051ba3 MAX PushButton 051ba3
attr MAX_051ba3 IODev cm
attr MAX_051ba3 alias ECO_BUTTON
attr MAX_051ba3 room Arbeitszimmer
define FileLog_MAX_051ba3 FileLog ./log/MAX_051ba3-%Y.log MAX_051ba3
attr FileLog_MAX_051ba3 logtype text
attr FileLog_MAX_051ba3 room MAX


Wenn ich dort auf ECO klicke bekomme ich auch das in die Logdatei:

2017-03-05_10:30:14 MAX_051ba3 battery: ok
2017-03-05_10:30:14 MAX_051ba3 onoff: 0
2017-03-05_10:30:14 MAX_051ba3 connection: 1
2017-03-05_10:30:14 MAX_051ba3 closed
2017-03-05_10:30:14 MAX_051ba3 RSSI: -75


Wenn ich auf Auto klicke schreibt er das in die Logdatei:

2017-03-05_10:31:07 MAX_051ba3 battery: ok
2017-03-05_10:31:07 MAX_051ba3 onoff: 1
2017-03-05_10:31:07 MAX_051ba3 connection: 1
2017-03-05_10:31:07 MAX_051ba3 opened
2017-03-05_10:31:07 MAX_051ba3 RSSI: -71.5


Nun habe ich versucht per folgenden Eintrag die Steckdose dazu zu bekommen ein bzw. auszuschalten
wenn ich auf den ECO Schalter drücke.


define n_MAX_051ba3.event notify MAX_051ba3:(onoff)..short IF ([Steckdose1] eq "on") (set Steckdose1 off) ELSE (set Steckdose1 on)


Ihr Erfahrenden FHEM User werdet erkennen das es nicht funktioniert :)
Aber ich verstehe die Logik grad nicht nach der ich gehen muss.

Habt ihr da eine Idee bzw. Tipps um mich in die richtige Richtung zu schieben?

Vielen Dank euch für die Hilfe

Gruß aus Wolfsburg

Matze

viegener

Laut log kommt im Event aber nichts mit short vor?
Also vielleicht mal

define n_MAX_051ba3.event notify MAX_051ba3:(onoff).* IF ([Steckdose1] eq "on") (set Steckdose1 off) ELSE (set Steckdose1 on)
Kein Support über PM - Anfragen gerne im Forum - Damit auch andere profitieren und helfen können

matzewob

Krass das hat funktioniert. Vielen vielen Dank

Was sagt das "Short" genau ? Also worauf hast du dich bezogen? Würde das gerne Nachvollziehen


viegener

Das short kam von Dir und stand in Deiner notify definition, war aber wohl nicht im Event enthalten

Es geht beim notify darum einen Regexp zu machen, der genau auf die Events passt auf die man reagieren will. Ich vermute mal bei Dir sind das events die onoff und danach irgendwas enthalten (die klammern sind übrigens auch überflüssig). Ich vermute Dein notify kommt irgendwo aus einem homematic-Teil? Da gibt es short und vermutlich auch so etwas wie (on|off) --> also on oder off

Kein Support über PM - Anfragen gerne im Forum - Damit auch andere profitieren und helfen können

matzewob

Das Short kam bei mir durch Unwissenheit und der Idee "Was bei dem Amazon Dashbutton funktioniert" könnte doch auch hier funktionieren.


define DashButton dash_dhcp
attr DashButton allowed ac:63:be:6c:46:89
attr DashButton port 6767
attr DashButton room Wohnzimmer

define n_DashButton1 notify DashButton:ac-63-be-6c-46-89..short IF ([Steckdose_Presse] eq "on") (set Steckdose_Presse off) ELSE (set Steckdose_Presse on) ##Dashbutton läuft


Daher bin ich auf die Idee gekommen das es funktionieren könnte :)

Wie kann man das z.b. machen das wenn ich auf Eco klicke und ja in der LOG das hier sehe


2017-03-05_10:31:07 MAX_051ba3 opened


er Steckdose1 ein und ausschaltet und wenn ich auf AUTO klicke und in der LOG sehe

2017-03-05_10:31:07 MAX_051ba3 closes

er Steckdose 2 ein und ausschaltet?

Ich versuche grad durchzusteigen und die Logik zu verstehen, also Danke für deine Mühe schonmal, finde es echt gut das man hier solche Newbeefragen loswerden kann :)

viegener

Ich nehme an, Du meinst mit log den Eventmonitor?

Wenn Du auf Events reagieren willst ist eine gewisse Kenntnis von perl regular expressions von Nutze, sonst ist das herumraten.

Generelle Vorgehensweise ist man nimmt sich die Events, also
Zitat
MAX_051ba3 opened
MAX_051ba3 closes

und baut daraus einen regexp der Form <device>:<rest des events>

also in diesem fall erstmal vor dem Doppelpunkt MAX_051ba3

und hinter dem Doppelpunkt so etwas wie (opened|closes)

also wäre Dein Regexp so etwas wie

MAX_051ba3:(opened|closes)

Ohne dass ich das ausprobiert habe, denn gefühlt habe ich das auch schon 100 mal beschrieben ;)

Jetzt kann es sein, dass noch Leerzeichen oder sonstiges weg muss, aber das merkt man wenn es nicht geht



Kein Support über PM - Anfragen gerne im Forum - Damit auch andere profitieren und helfen können

matzewob