FS20 mit IR Fernbedienung über LIRC steuern

Begonnen von Ronny_2013, 12 April 2013, 21:10:00

Vorheriges Thema - Nächstes Thema

Ronny_2013

Einen wunderschönen guten Abend,

nach längerer erfolgloser Lösungssuche im Internet, hoffe ich hier Unterstützung zu finden.

Einleitend mal grob zur anfänglichen Aufgabe des FHEM Systems:
FHEM soll über LIRC IR-Signale empfangen und eine zugewiesene FS20 Schaltsteckdose schalten.

Mein Problem liegt wahrscheinlich bei der richtigen Anwendung des notify Befehls. Versucht hatte ich folgenden Definitionen:

define IrBtn3 notify IR_BTN_3 set FS20_SSD1 toggle
und
define IrBtn3 notify IR_BTN_3 set FS20_SSD1 %

Leider wird mit diesen Definitionen nicht die FS20 Schaltsteckdose ( FS20_SSD1 ) geschaltet.

Sind diese Definitionen überhaupt richtig und ausreichend für die gewünschte Realisierung? Habe ich noch woanders einen Denkfehler oder fehlende Module oder oder ???

Noch zur Info:
LIRC funktioniert nach meinem empfinden, da in der FHEM Log-Datei die LIRC Kommandos ( LIRC IR_BTN_3 topple ) gelistet werden. Die Installation von LIRC ging nicht ganz reibungslos. Einige Perl Module musste ich für den Lirc::Client noch nach installieren. Aber ich denke, da Meldungen in der FHEM Log-Datei gelistet werden, sollte LIRC funktionieren. Die Schaltsteckdose ( FS20_SSD1 ) ist in FHEM integriert und schaltet über FHEM Web und seinen Handsender.

Tschja, dass ist nun mein Problem, woran ich verzweifle. Vielleicht können Ihr mir ja weiterhelfen.

Vielen Dank im Voraus!

rudolfkoenig

Hallo nochmal :). Bitte zuerst wie in http://fhem.de/HOWTO.html#at bzw. im Einsteiger PDF beschrieben die events genau beobachten. Danach erst die notifys bauen, und diese mit trigger testen.

Ronny_2013

Ja, Hallo :)
Okay, ich werde mir die Informationen genau anschauen und ein wenig testen.
Vielleicht bekomme ich ja damit das Problem noch weiter eingegrenzt.
Erst einmal vielen Dank.

Ronny_2013

Hallo
hatte nun Zeit etwas zu testen und habe folgende Erkenntnis:

Der Befehl   trigger IrBtn3   löste keine Reaktion an der Schaltsteckdose   FS20_SSD1   aus.
In dem FileLog zum    IrBtn3   wird das triggern aber gelistet.
Ich hatte wieder verschiedene Versionen der notify Definition ausprobiert.
   
Der Befehl   set FS20_SSD1 on   und   off   und   toggle   funktionieren über der Kommandozeile vom fhem.
Die Befehle werden auch in dem FileLog des   FS20_SSD1   gelistet.

Komisch, oder ???
MfG

Puschel74

Hallo,

ZitatDer Befehl trigger IrBtn3 löste keine Reaktion an der Schaltsteckdose FS20_SSD1 aus.

Zitatdefine IrBtn3 notify IR_BTN_3 set FS20_SSD1 %

wenn du nur

trigger IrBtn3

eingegeben hast wird es mAn auch keine Reaktion geben (können) da % nicht definiert wurde.
Wobei % und @ über kurz oder lang obsolet werden - muss den Beitrag noch suchen.

Du könntest dein notify mit ein paar Logmeldungen spicken um zu schauen ob das notify überhaupt abgefragt wird.
So in der Art:

define IrBtn3 notify IR_BTN_3:.* {
  Log (3,"Notify angetriggert");
  if (Value("IR_BTN_3") eq "on") {
    Log (3,"Button liefert on");
    set FS20_SSD1 on;
...


Der Code ist ungetestet und nur aus dem Kopf.

Grüße
Zotac BI323 als Server mit DBLog
CUNO für FHT80B, 3 HM-Lan per vCCU, RasPi mit CUL433 für Somfy-Rollo (F2F), RasPi mit I2C(LM75) (F2F), RasPi für Panstamp+Vegetronix +SONOS(F2F)
Ich beantworte keine Supportanfragen per PM! Bitte im Forum suchen oder einen Beitrag erstellen.

Ronny_2013

Hallo,
danke für die Infos.

Ich hatte nicht nur set FS20_SSD1 % sondern auch on und auch toggle probiert.
Jedes mal keine Reaktion.

Ich werde mal noch den zusätzlichen Eintrag in die Log Datei ausprobieren und sehen ob was passiert.

Vielen Dank erstmal.
MfG

Ronny_2013

Hallo,

ich bin jetzt ein Schritt weiter.
Hab die Definition für das notify geändert:

define IrBtn3 notify IR_BTN_3 set FS20_SSD1 $EVENT

Beim ausführen des trigger Befehls:

trigger IR_BTN_3 on

bekomme ich jetzt folgende Fehlermeldung:

Please define IR_BTN_3 first

Eigentlich bin ich davon ausgegangen, dass das Ereignis IR_BTN_3 schon mit dem LIRC Modul definiert ist.
Habe auch leider keine Infos zur Definition eines LIRC Ereignis gefunden.

zur Info nochmal:
Das LIRC Modul funktioniert nach meinem Empfinden, da das LIRC Ereignis (LIRC IR_BTN_3 toggle) in der Log Datei von FHEM gelistet wird.

Hat jemand eine Idee, was und wie ich noch konfigurieren muss???

MfG

Puschel74

Hallo,

in fhem musst du

a) das "Gerät" definieren
b) das Notify definieren.

Wobei Gerät etwas unglücklich ausgedrückt ist.
Auf alle Fälle musst du fhem erstmal mit deiner Taste an der Fernbedienung bekannt machen.

Wie das aber bei einer IR-FB geht kann ich dir leider nicht sagen.
Ich weiß auch nicht ob autocreate ein Device anlegt wenn du an der FB eine Taste drückst.

Und dann musst du natürlich das Notify noch definieren (hast du ja schon).7
Dir fehlt eigentlich nur noch das Device (IR-FB) in fhem zu definieren - schätze ich mal.

Grüße

P.S.: Sorry das ich dir nicht mehr helfen kann.
Zotac BI323 als Server mit DBLog
CUNO für FHT80B, 3 HM-Lan per vCCU, RasPi mit CUL433 für Somfy-Rollo (F2F), RasPi mit I2C(LM75) (F2F), RasPi für Panstamp+Vegetronix +SONOS(F2F)
Ich beantworte keine Supportanfragen per PM! Bitte im Forum suchen oder einen Beitrag erstellen.

Ronny_2013

Danke erstmal.
autocreate werde ich mir mal angucken und testen.
Vielleicht kommen ja noch weitere Hinweise rein.

MfG

Ronny_2013

Guten Abend,

ich hab nun viel gelesen und getestet. Bin jetzt auch viel schlauer, aber ein Problem bekomme ich nicht gelöst.

Der Befehl   trigger IR_BTN_3 toggle   löst immer noch nicht mein notify aus und bringt die
Fehlermeldung   "Please define IR_BTN_3 first".
Ich habe leider keine Information darüber gefunden, ob überhaupt und wenn, wie man das Ereignis von LIRC definieren soll, damit das notify  
define IrBtn3 notify IR_BTN_3 set FS20_SSD1 toggle   funktioniert.

Zur Info:
IR_BTN_3 ist in der lircrc Konfigurationsdatei wie folgt definiert:

begin
    prog = fhem
    button = BTN_3
    config = IR_BTN_3
end

Ein Tastendruck auf die IR-Fernbedienung erzeugt auch eine Meldung in der fhem-2013-04.log  
( 2013.04.16 19:35:49 3: LIRC IR_BTN_3 toggle )

LIRC selbst scheint nach meinem empfinden zu laufen und bringt keine Fehlermeldung.  (Auszug aus der fhem.log)

2013.04.16 19:53:44 1: Including fhem.cfg
2013.04.16 19:53:46 3: telnetPort: port 7072 opened
2013.04.16 19:53:48 3: WEB: port 8083 opened
2013.04.16 19:53:48 3: WEBphone: port 8084 opened
2013.04.16 19:53:48 3: WEBphone: attribute smallscreen deprecated, converted to stylesheetPrefix
2013.04.16 19:53:48 3: WEBtablet: port 8085 opened
2013.04.16 19:53:48 3: WEBtablet: attribute touchpad deprecated, converted to stylesheetPrefix
2013.04.16 19:53:49 3: Opening COC device /dev/ttyAMA0
2013.04.16 19:53:50 3: Setting COC baudrate to 38400
2013.04.16 19:53:50 3: COC device opened
2013.04.16 19:53:50 3: COC: Possible commands: mCFiAZOGMRTVWXefltux
2013.04.16 19:53:53 1: LIRC_Initialize
2013.04.16 19:53:53 3: LIRC opening Lirc device /etc/lirc/lircrc
2013.04.16 19:53:53 3: LIRC opened Lirc device /etc/lirc/lircrc
2013.04.16 19:53:53 1: configfile: WEBphone: attribute smallscreen deprecated, converted to stylesheetPrefix
WEBtablet: attribute touchpad deprecated, converted to stylesheetPrefix
2013.04.16 19:53:53 1: Including ./log/fhem.save
2013.04.16 19:53:53 1: usb create starting
2013.04.16 19:53:55 1: usb create end
2013.04.16 19:53:55 2: SecurityCheck:  WEB,WEBphone,WEBtablet has no basicAuth attribute. telnetPort has no password/globalpassword attribute.  Restart fhem for a new check if the problem is fixed, or set the global attribute motd to none to supress this message.
2013.04.16 19:53:55 0: Server started with 20 defined entities (version Fhem 5.4 (DEVELOPMENT), $Id: fhem.pl 3075 2013-04-15 15:19:48Z rudolfkoenig $, pid 2100)

Vielleicht hat ja noch einer eine zündende Idee!  ???

MfG

rudolfkoenig

Ich vermisse immer noch die Meldung aus "inform timer" bzw Event monitor (wie in der HOWTO beschrieben), die Zeilen aus dem FHEM-Log sind hier irrelevant.

Die Meldung beim trigger kommt, weil es keine FHEM-Definition mit dem Namen IR_BTN_3 existiert.

Ronny_2013

Hallo Herr König,

das hatte ich vergessen mit aufzuführen.
Bei aktiviertem inform und im Event Monitor erfolgt ebenfalls keine Reaktion (keine Ausgabe) der Bedienungen an der IR-Fernbedienung.
Die des FS20 Handsenders werden gelistet, also hab ich da mal alles richtig gemacht.  ;-)

Meine Zweifel zur Definition von   IR_BTN_3   entstanden dadurch, da ich ja den Namen eigentlich schon in der    lircrc    angegeben (Definiert) habe, weil ich keine Infos zur Definition von LIRC Kommandos in FHEM gefunden habe und weil (falsche) Versuchsdefinitionen von IR_BTN_3 mit FHEM Abstürzen endeten.

Inzwischen habe ich ja verstanden, dass ich das LIRC Kommando   IR_BTN_3    in FHEM definieren soll/muss, aber wie ???

MfG

rudolfkoenig

>  Bei aktiviertem inform und im Event Monitor erfolgt ebenfalls keine Reaktion (keine Ausgabe)...

Aah. Ein Blick ins Modul verraet einem wieso: die Events werden mit "gefaelschten" Geraetenamen (in diesem Fall IR_BTN_3) erzeugt, seit laengerem laesst aber fhem solche events nicht zu. Kannst Du bitte folgendes testen:

in 00_LIRC.pm die Zeilen
Log 3, "LIRC $code toggle";
DoTrigger($code, "toggle");

gegen folgende tauschen:
Log 3, "LIRC $hash->{NAME} $code";
DoTrigger($hash->{NAME}, $code);

Das notify muesste dafuer dann angepasst werden:
define IrBtn3 notify LIRCNAME:IR_BTN_3 set FS20_SSD1 toggle
wobei LIRCNAME gegen dem Namen des LIRC Geraetes ausgetauscht werden soll.

Ronny_2013

Es geeeeht!

Erstmal kurz zur Info: ja, es funktioniert.
Ich muss jetzt leider noch mal weg und melde mich morgen hierzu noch einmal.
Ich werde dann noch einiges testen und versuchen eine abschließende Zusammenfassung zum Thema LIRC zu erstellen.
Aber auf jeden Fall, erstmal vielen Dank Herr König und an alle anderen mithelfenden.

MfG

Ronny_2013

Abschließend eine kleine Zusammenfassung zum Thema LIRC im FHEM-System am Beispiel meiner Konfiguration auf einen Raspberry PI. Ich hoffe, dass ich noch viele Schritte zusammenbekomme. Es war ein längerer Prozess. Seht es also bitte als grobe Richtlinie und nicht als vollständige Anleitung.

zusätzliche Hardware:  
USB IR-Empfänger

zusätzliche Software:
Linux-Paket lirc
Linux-Paket inputlirc
Perl-Modul lirc::client und weitere dafür notwendige Perl-Module

notwendige Konfigurationen:
USB IR-Epfänger:
- mit lsusb prüfen, ob der IR-Empfänger erkannt wurde
- weitere Infos mit cat /proc/bus/input/devices

LIRC:
- lirc mit apt-get install lirc installieren
- inputlirc mit apt-get install inputlirc installieren
- Installation mit mode2 -d /dev/lirc0 testen
- mit irrecord -d /dev/lirc0 universalfb alle IR-Betätigungen empfangen und BTN_1, BTN_2 und BTN_3 zuordnen (siehe unten, für lircrc)
- mit cat universalfb Konfiguration prüfen
- mit cp universalfb /etc/lirc/lircd.conf Konfigurationsdatei an ihre richtige Stelle kopieren
- mit irw Konfiguration testen
- in der /etc/lirc/hardware.conf müssen folgende Einstellungen rein:
     
......
LOAD_MODULES=true
DEVICE="/dev/lirc0"

- mit /etc/init.d/lirc restart LIRC neu starten
- in der /etc/rc.local folgendes eintragen, damit LIRC automatisch gestartet wird:
      /etc/init.d/lirc restart
- Datei /etc/lirc/lircrc mit folgendem Inhalt erstellen:
begin
  prog = fhem
  button = BTN_1
  config = IR_BTN_1
end

begin
  prog = fhem
  button = BTN_2
  config = IR_BTN_2
end

begin
  prog = fhem
  button = BTN_3
  config = IR_BTN_3
end

lirc::client:
- Lirc-Client-2.00 installieren  (Client.pm nach /usr/share/perl5/Lirc)
- die noch fehlenden Perl-Module für das lirc::client Modul ebenfalls entsprechend installieren, ich glaube diese waren es:
Class-Accessor-0.34
Devel-GlobalDestruction-0.11
Devel-GlobalDestruction-XS-0.01
File-Path-Expand-1.02
Module-Runtime-0.013
Moo-1.001000
strictures-1.004004
Sub-Exporter-Progressive-0.001010


FHEM:
00_LIRC.pm
- falls noch folgender Code in der 00_LIRC.pm zu finden ist:
Log 3, "LIRC $code toggle";
DoTrigger($code, "toggle");

bitte durch folgenden Code ersetzen:
Log 3, "LIRC $hash->{NAME} $code";
DoTrigger($hash->{NAME}, $code);

fhem.cfg
- folgende Definitionen habe ich in FHEM für LIRC erstellt:
define Lirc LIRC /etc/lirc/lircrc
attr Lirc room LIRC
define FileLog_Lirc FileLog ./log/Lirc-%Y.log Lirc
attr FileLog_Lirc room LIRC
define IrBtn1 notify Lirc:IR_BTN_1 set FS20_SSD1 off
attr IrBtn1 room LIRC
define Lirc:IR_BTN_1 dummy
attr Lirc:IR_BTN_1 room LIRC
define IrBtn2 notify Lirc:IR_BTN_2 set FS20_SSD1 on
attr IrBtn2 room LIRC
define Lirc:IR_BTN_2 dummy
attr Lirc:IR_BTN_2 room LIRC
define IrBtn3 notify Lirc:IR_BTN_3 set FS20_SSD1 toggle
attr IrBtn3 room LIRC
define Lirc:IR_BTN_3 dummy
attr Lirc:IR_BTN_3 room LIRC


So,
und wenn ich jetzt nichts vergessen oder falsch gemacht habe oder Ihr nichts vergessen oder falsch gemacht habt,
könnte es jetzt funktionieren.  :-)

rudolfkoenig

Vielen Dank fuer die Zusammenfassung, bei gelegenhait sollte sowas direkt in fhemwiki.de abgelegt werden. Zugang gibt es bei den Admins (http://www.fhemwiki.de/wiki/FhemWiki:Administrators)

Ich habe die Aenderungen in 00_LIRC.pm eingecheckt.

MP3Chris2712

hey,

die anleitung hört sich sehr gut an nur bin ich noch kein linux freak wie installiere ich die module und pakete für lirc::client: wo finde ich diese ganzen sachen ?

mfg