EnOcean Eltako FAH63

Begonnen von Guest, 29 Oktober 2012, 23:07:56

Vorheriges Thema - Nächstes Thema

Guest

Originally posted by: <email address deleted>

Hallo!

Ich bin Neueinsteiger möchte gern EnOcean-Komponenten von ELTAKO mit FHEM
nutzen und habe die u.g. Komponenten erworben. Leider ist hier entgegen
meinen Erwartungen noch nicht viel dokumentiert. Ich hoffe das wird sich in
Zukunft ändern.

Nun zu meinem Problem:

derzeitige Komponenten:  
FAH63, 1 Rolladenaktor FSB61-NP 230V  und 1 Lichtaktor FSR61-NP 230V
FHEM auf Synology Diskstation (mit updatefhem auf aktuelles 5.3 geupdatet),
EUL von Busware

Ich versuche bereits seit Tagen den FAH63 (Helligkeitsaussensensor) in FHEM
richtig einzubinden, um Rolladen- und Lichtaktor zu steuern. Entsprechend
Post von Krikan "Eltako Enocean Sensoren für Helligkeit, Bewegung und
Temperatur" vom 11.8.12 habe ich definiert:

define EUL TCM 310 /dev/ttyUSB0@57600

define EnO_Sensor16 EnOcean 00865B53
attr EnO_Sensor16 model sensor
attr EnO_Sensor16 IODev EUL
attr EnO_Sensor16 loglevel 5
attr EnO_Sensor16 room EnO_Sensor

nur so zeigt er:

2012-10-29_22:50:31 EnO_Sensor16 sensor1: 134
2012-10-29_22:50:31 EnO_Sensor16 sensor2: 0
2012-10-29_22:50:31 EnO_Sensor16 sensor3: 0
2012-10-29_22:50:31 EnO_Sensor16 D3: 1
2012-10-29_22:50:31 EnO_Sensor16 D2: 1
2012-10-29_22:50:31 EnO_Sensor16 D1: 1
2012-10-29_22:50:31 EnO_Sensor16 D0: 1

definiere ich stattdessen wie von Krikan vorgeschlagen:

define EnO_Sensor3 EnOcean 00865B53
attr EnO_Sensor3 subType FAH
attr EnO_Sensor3 room EnO_Sensor
oder...
define EnO_Sensor4 EnOcean 00865B53
attr EnO_Sensor4 model FAH63
attr EnO_Sensor4 room EnO_Sensor

...wird nix angezeigt (keine Readings).

Was mache ich falsch???
1. Möchte gern die implementiert "FAH" Definition in der 10_EnOcean.pm nutzen.
2. Werte werden derzeit unter "Sensor1" zw. "0" (dunkel) und "135" (Zimmerlicht) angezeigt.Sind das effektive Luxwerte
   oder müssen sie noch umgerechnet werden?
3. Kann man den Sensor per FHEM willkürlich abrufen, oder muss man auf dessen Senderintervall warten.
4. Wie kann ich nun derzeitigen Wert aus den Readings auslesen um ihn zur Steuerung des Aktors über einen
   bereits von mir definierten virtuellen Schalter, statt sunset_rel verwenden?

   define FSB61_Flur EnOcean 008554F0
   attr FSB61_Flur room EnOcean
   attr FSB61_Flur subType FSB61

   define Taster EnOcean FFBA6881
   attr Taster eventMap AI:on A0:off
   attr Taster room EnOcean
   
   define Sonnenuntergang at +*{sunset_rel(+3600)} set Taster on
   define Sonnenaufgang at +*{sunrise_rel(+3600)} set Taster off

Vielen Dank für euer Hilfe!


MfG, Mister Eltako


--
To unsubscribe from this group, send email to
fhem-users+unsubscribe@googlegroups.com

rudolfkoenig

                                                   

> 1. Möchte gern die implementiert "FAH" Definition in der 10_EnOcean.pm nutzen.

Bitte "attr EnO_Sensor4 loglevel 2" setzen, und die neu erzeugten Zeilen aus
dem Log (EnO_Sensor4: ORG:...) hier posten.

> 3. Kann man den Sensor per FHEM willkürlich abrufen, oder muss man auf dessen
> Senderintervall warten.

Warten, generell wird bei Sensoren Strom gespart, sie schlafen die meiste
Zeit.


> 4. Wie kann ich nun derzeitigen Wert aus den Readings auslesen um ihn zur
> Steuerung des Aktors über einen bereits von mir definierten virtuellen
> Schalter, statt sunset_rel verwenden?

http://fhem.de/HOWTO.html#at

--
To unsubscribe from this group, send email to
fhem-users+unsubscribe@googlegroups.com

Guest

Originally posted by: <email address deleted>

Hallo und Danke @ Rudolf König für die schnelle Antwort!

in Fhem.cfg habe ich nun folgendes zum Ausprobieren eingetragen:

define EnO_Sensor3 EnOcean 00865B53
attr EnO_Sensor3 IODev EUL
attr EnO_Sensor3 loglevel 2
attr EnO_Sensor3 subType FAH
attr EnO_Sensor3 room EnO_Sensor

define EnO_Sensor4 EnOcean 00865B53
attr EnO_Sensor4 IODev EUL
attr EnO_Sensor4 loglevel 2
attr EnO_Sensor4 model FAH63
attr EnO_Sensor4 room EnO_Sensor

define EnO_Sensor16 EnOcean 00865B53 ----> nur dieser zeigt Werte unter
Readings an
attr EnO_Sensor16 IODev EUL
attr EnO_Sensor16 loglevel 2
attr EnO_Sensor16 model sensor
attr EnO_Sensor16 room EnO_Sensor

Mit loglevel2 erscheint in Logdatei nur:

2012.10.31 10:46:42 2: EnO_Sensor16: ORG:A5 DATA:850B000F ID:00865B53 STATUS:00
2012.10.31 10:47:22 2: EnO_Sensor16: ORG:A5 DATA:8204000F ID:00865B53 STATUS:00

Es scheint als werde die Subroutine der 10_EnOcean.pm Datei unter
EnOcean_Parse($$) mit dem Eintrag:
"}elseif($st eq "FAH" || $model=~/^(FAH60|FAH63......"  unabhängig vom
definierten subType oder model gar nicht erst durchlaufen,
sondern stattdessen der Eintrag: "} else { push @event,"3: state:db_3"...."
am Schluß abgearbeitet.

MfG, MisterEltako


--
To unsubscribe from this group, send email to
fhem-users+unsubscribe@googlegroups.com

rudolfkoenig

                                                   

Ohne zu testen:
> attr EnO_Sensor16 model sensor
hat weder subType noch model richtig gesetzt.

Wenn der andere Sensor nicht sendet, dann kann fhem auch nix dafuer, ist also
ein anderes Problem.

--
To unsubscribe from this group, send email to
fhem-users+unsubscribe@googlegroups.com

Guest

Originally posted by: <email address deleted>

Also am Sensor selbst kann es nicht liegen, der sendet ja. Zum Verständnis
ich habe nur 1 Sensor der unter ID:00865B53 sendet und dafür die o.g.
"define" Eintrage alle für den selben Sensor gesetzt.  

Wenn ich nun noch zusätzlich ein weiteres "define" ganz ohne "model" noch
"subType" setzte:
define EnO_Sensor17 EnOcean 00865B53
attr EnO_Sensor17 IODev EUL
attr EnO_Sensor17 loglevel 2
attr EnO_Sensor17 room EnO_Sensor

bringen die Einträge für Sensor16 und Sensor17 --- unter Readings "Sensor1"
ein Ergebnis, die eigentlich "richtigen" define's jedoch nicht!

Kann man irgendwie testeten, ob die eigentliche subroutine für FAH63 in der
10_EnOcean.pm überhaupt angesprungen wird???

--
To unsubscribe from this group, send email to
fhem-users+unsubscribe@googlegroups.com

rudolfkoenig

                                                   

> bringen die Einträge für Sensor16 und Sensor17 --- unter Readings "Sensor1"
> ein Ergebnis, die eigentlich "richtigen" define's jedoch nicht!

Mehere Instanzen mit dem gleichen EnOcean ID haben einen undefinierten Zustand
in fhem zur Folge.


> Kann man irgendwie testeten, ob die eigentliche subroutine für FAH63 in der
> 10_EnOcean.pm überhaupt angesprungen wird???

Ja, indem man loglevel hochsetzt, und auf ORG achtet.
Btw. die Quellen sind offen.

--
To unsubscribe from this group, send email to
fhem-users+unsubscribe@googlegroups.com

Guest

Originally posted by: <email address deleted>

Am Mittwoch, 31. Oktober 2012 13:21:29 UTC+1 schrieb Mister Eltako:
>
>
>
>
> Kann man irgendwie testeten, ob die eigentliche subroutine für FAH63 in
> der 10_EnOcean.pm überhaupt angesprungen wird???
>

Von meiner Seite kann ich nur sagen, dass die aktuelle FHEM-Version bzw.
10_EnOcean.pm den FAH korrekt auswertet. Läuft zumindest hier problemlos,
wenn der subType auf FAH steht.

--
To unsubscribe from this group, send email to
fhem-users+unsubscribe@googlegroups.com

Guest

Originally posted by: <email address deleted>

Nachdem ich die zusätzlichen "define"-Einträge für den selben Sensor (die
ich testweise eingetragen habe) entfernt habe und stattdessen...

define EnO_Sensor4 EnOcean 00865B53
attr EnO_Sensor4 IODev EUL
attr EnO_Sensor4 loglevel 2
attr EnO_Sensor4 model FAH63
attr EnO_Sensor4 room EnO_Sensor

...belassen habe.

f*unktioniert es auf einmal!!!!!*

Komisch ist nur das ich diese Definition schon einzeln ausprobiert hatte
und nix angezeigt wurde.
Hauptsache nun geht es!
Vielen Dank @Rudolf König und Krikan! Ihr macht wirklich tolle Arbeit
hier!!!!!

Ich hoffe auch EnOcean wird weiter in Fhem vorangetrieben und nicht nur
Homematic/FS20!

Leider stoße ich als Neuling schon auf das nächste Problem. Ich hoffe ich
ihr könnt mir auch hier wieder helfen:

Wie o.g. möchte ich mittels des Sensors meine Rolläden abhängig von der
Helligkeit steuern.

define EnO_Sensor4 EnOcean 00865B53
attr EnO_Sensor4 IODev EUL
attr EnO_Sensor4 loglevel 2
attr EnO_Sensor4 model FAH63
attr EnO_Sensor4 room EnO_Sensor

efine Taster EnOcean FFBA6881
attr Taster eventMap AI:on A0:off
attr Taster room EnOcean

define FSB61_Flur EnOcean 008554F0
attr FSB61_Flur room EnOcean
attr FSB61_Flur subType FSB61

bisher habe ich das so geregelt:
define Sonnenaufgang at +*{sunrise_rel(3600)} set Taster off
define Sonnenuntergang at +*{sunset_rel(+3600)} set Taster on

Trotz Lesen der Dokumentation von "at" und "notify" weiß ich nun nicht wie
ich den Helligkeitswert der vom Sensor angezeigt wird auswerten und
vergleichen kann, damit die Jalousie bei entsprechenden über oder
unterschreiten hoch- bzw. runterfährt. Habe schon verschiedenes definiert,
aber nix hat funktioniert.

Es ist bestimmt gar nicht schwer....nur muß mich hier sicher einer darauf
hinweisen.

MfG, MisterEltako.

--
To unsubscribe from this group, send email to
fhem-users+unsubscribe@googlegroups.com

Guest

Originally posted by: <email address deleted>

>
> Es ist bestimmt gar nicht schwer....nur muß mich hier sicher einer darauf
> hinweisen.
>

Vielleicht schaust Du Dir mal im Wiki dies an:  
http://www.fhemwiki.de/wiki/Funktionsbeschreibung_zu_notify . Am Ende steht
eine analoge Lösung der Rolladensteuerung. "Einfach" auf den FAH anpassen.
Mir ist klar, dass dies nicht mal eben kurz geht, bin nämlich auch
FHEM/Perl-Anfänger.

Nochmals zu Deinen Ausgangsfragen: Wie oft die Enocean-Sensoren Ihre Daten
liefern, kannst Du in der Anleitung finden. Ein direktes Abfragen ist bei
keinem mir bekannten Sensor möglich; man muss warten. Was in den
Sensor0..2-Readings steht sind die Rohwerte, die eben passend gewandelt
werden müssen (vgl. z.B. Erläuterungen von Eltako zu den Funktelegrammen).
Hier sind bisher nur einige Sensoren in FHEM passend eingebunden. Es
besteht noch einiges an Programmierbedarf. Wenn Du unterstützen kannst
immer gerne. Auf meine Anfrage nach Enocean-Programmierhilfe hier, hat sich
niemand gemeldet, so dass ich mich auf mein Enocean-Hauptproblem MD15
(bisher erfolglos) konzentrierte...



--
To unsubscribe from this group, send email to
fhem-users+unsubscribe@googlegroups.com

Guest

Originally posted by: <email address deleted>

So funktioniert es jetzt ganz gut:

define FSB61_Flur EnOcean 008554F0
attr FSB61_Flur room EnOcean
attr FSB61_Flur subType FSB61

define Taster EnOcean FFBA6881
attr Taster eventMap AI:on A0:off
attr Taster room EnOcean          

define EnO_Sensor4 EnOcean 00865B53
  attr EnO_Sensor4 IODev EUL
  attr EnO_Sensor4 loglevel 2
  attr EnO_Sensor4 model FAH63
  attr EnO_Sensor4 room EnOcean

define SensorNotify notify EnO_Sensor4 {\
my $Lux = $value{"EnO_Sensor4"};;\
my $Status = $value{"FSB61_Flur"};;\
Log 1, "Abfrage Lux Konsequenz";;\
Log 1, $Lux;;\
Log 1, $Status;;\
 if ($Lux <= 40 && ($Status eq "B0" || $Status eq "released")) {\
      Log 1, "Rollladen zu";;\
      fhem "set Taster on";;\  
      fhem "set FSB61_Flur BI";;\
 } else {\
    if( $Lux>=40 && $Lux< 10000 &&($Status eq "BI" || $Status eq
"released")) {\
          Log 1, "Rollladen auf";;\
          fhem "set Taster off";;\  
          fhem "set FSB61_Flur B0";;\
        } else {\
       if ($Lux > 10000 && ($Status eq "BI" || $Status eq "B0")) {\
          Log 1, "Sonnenroutine";;\
          fhem "set FSB61_Flur released";;\
          fhem "set Taster on";;\
          Log 1, "Rolladen ganz zu 20s";;\
          fhem "sleep 20";;\
          fhem "set Taster off";;\
          Log 1, "Rolladen wieder um 12%% hoch";;\
          fhem "sleep 10";;\
          fhem "set Taster off";;\
          Log 1, "Rolladen stop";;\
       }\  
 }\
}\
}
attr SensorNotify room EnOcean


Hat jemand einen Vorschlag, wie man das statt mit "sleep" lösen könnte?
Gibt es auch einen Timer in Fhem für Enocean-Komponenten?



MfG, MisterEltako

--
To unsubscribe from this group, send email to
fhem-users+unsubscribe@googlegroups.com

rudolfkoenig

                                                   

Solch langen Code wuerde ich unbedingt als Funktion in 99_MyUtils.pm einbauen,
damit man mit ; @ und % kein Aerger hat. Die perl-Fehlermeldungen sind mit
Zeilennumer auch besser zu verstehen.


> Hat jemand einen Vorschlag, wie man das statt mit "sleep" lösen könnte?

fhem("sleep 20") ist equivalent mit sleep(20), und blockiert fhem komplett.
Dagegen ist
  fhem("sleep 20; set Taster off; sleep 10; set Taster off")
was ganz anderes, da hier sleep den Rest des Befehls mit einem InternalTimer
ausfuehrt, so wird fhem also nicht blockiert.


> Gibt es auch einen Timer in Fhem für Enocean-Komponenten?

Mwn haben weder die EnOcean, noch die ZWave Aktoren einen eingebauten timer,
man muesste also in fhem ein "on-for-timer" dazubauen. Es fiel mir bisher nur
kein Weg ein, das generisch zu machen, und das in jedem Modul explicit
einzubauen waere zu einfach :)

--
To unsubscribe from this group, send email to
fhem-users+unsubscribe@googlegroups.com

Guest

Originally posted by: <email address deleted>

Hallo!
Habe den Rat befolgt und den langen Code in MyUtils.pm untergebracht.
Funktioniert bisher auch. ;o) Ein erster Erfolg für einen Anfänger.
Habe inzwischen von FAH63 auf FAH60 umstellen müssen, da erster nicht ganz
dicht war ;o). Tatsächlich Wasser im Gehäuse nach Regenguß - Totalschaden!
Schwache Leistung von Eltako!!!

Mit FAH60 nun so gelöst:

FHEm.cfg:
define SensorNotify notify EnO_Lux_Sensor {\
               my $Lux = $value{"EnO_Lux_Sensor"};;\
               my $Status = $value{"FSB61_Flur"};;\
               Luxkonsequenz($Lux,$Status);;\
}

MyUtils.pm:
sub
Luxkonsequenz($$){
  my ($Lux, $Status) = @_;
  my ($Sonne) = 20000;
  my ($Nacht) = 50;  

  if ($Lux <= $Nacht && ($Status eq "B0" || $Status eq "released")){
    Log 1, "Rollladen wird geschlossen...bei: $Lux Lux";
    fhem ("set Taster on");
    fhem ("set FSB61_Flur BI");
    }elsif($Lux > $Nacht && $Lux < $Sonne && ($Status eq "BI" || $Status
eq  "released")){
    Log 1, "Rollladen wird geöffnet...bei: $Lux Lux";
    fhem ("set Taster off");
    fhem ("set FSB61_Flur B0");
    }elsif ($Lux > $Sonne && ($Status eq "BI" || $Status eq "B0")){
        Log 1, "Beschattungsposition wird angesteuert ...bei: $Lux Lux";
        fhem ("set Taster on");
        fhem ("set FSB61_Flur released");
        fhem("sleep 20; set Taster off; sleep 10; set Taster off");
        }  
#Log 1, "Nichts wird ausgeführt...bei: $Lux Lux";
}

MfG, MisterEltako

--
To unsubscribe from this group, send email to
fhem-users+unsubscribe@googlegroups.com