Ifrarot Lirc, Lirc Perl Client und Fhem

Begonnen von Hofi15, 22 März 2018, 11:40:49

Vorheriges Thema - Nächstes Thema

Hofi15

Hallo,

Nach dem ich mich seit 2 Tagen mit Fhem und dem Fhem lirc Modul quäle und jetzt eine Lösung gefunden habe. Möchte ich es anderen erleichtern die vielleicht die selben Probleme haben.
Ich selbst habe alles nach dem ersten Post in diesem Thread gemacht https://forum.fhem.de/index.php/topic,23646.0.html

Der folgende Fehler war im fhem Log:
IRC opening Infrarot device /etc/lirc/fhem.lircrc
couldn't connect to Lirc::Client=HASH(0x21d37d0)->dev: No such file or directory at (eval 22) line 85.

Ich verwende:
Raspberry Pi 1 B
Raspbian GNU/Linux 9.4 stretch lite
Fhem 5.8
Lirc 0.9.4c
Lirc Perl Client 2.0
Infrarot sender/empfänger = GPIO = /dev/lirc0

Nach dem sich bei den Versionssprüngen von Lirc die Config geänder hat und sich die Client.pm und die 00_LIRC.pm nicht geändert haben gibt es einige Problem.
Zum einen gab es früher die /etc/lirc/hardware.conf welche sich jetzt zu /etc/lirc/lirc_options.conf geändert hat und ganz anders aussieht. diese sieht bei mir jetzt wie folgt aus:

[lircd]
nodaemon        = False
driver          = default
device          = auto
output          = /var/run/lirc/lircd
pidfile         = /var/run/lirc/lircd.pid
plugindir       = /usr/lib/arm-linux-gnueabihf/lirc/plugins
permission      = 666
allow-simulate  = No
repeat-max      = 600
#effective-user =
#listen         = [address:]port
#connect        = host[:port]
#loglevel       = 6
uinput         = true
#release        = ...
#logfile        = ...

[lircmd]
uinput          = False
nodaemon        = False

# [modinit]
# code = /usr/sbin/modprobe lirc_serial
# code1 = /usr/bin/setfacl -m g:lirc:rw /dev/uinput
# code2 = ...


# [lircd-uinput]
# release-timeout = 200


Zum anderen hat sich auch die zuweisung der GPIO pins geändert. Diese habe ich in /boot/config.txt eingetragen und sieht wie folgt aus:

# Uncomment this to enable the lirc-rpi module
dtoverlay=lirc-rpi

# Uncomment this to override the defaults for the lirc-rpi module
dtparam=gpio_out_pin=22
dtparam=gpio_in_pin=23
#dtparam=gpio_in_pull=down


Wesentliches Problem war hier die Zeile output = /var/run/lirc/lircd . Früher ging das nach /dev/lircd . Ich hatte versucht dies mit dieser Zeile zu beheben, aber selbst nach einem reboot hatte ich keinen erfolg.

Somit habe ich mit dem Befehl perl -V alle relevanten Perl Verzeichnisse gesucht. In diesen habe ich in allen .../Lirc/Client.pm folgende default einträge von /dev/lircd auf /var/run/lirc/lircd geändert.
Nach dem reboot habe ich noch in fhem den Lirc Device angelegt und siehe da es funktioniert wieder.

Meine Definition in der fhem.conf:
define Infrarot LIRC /etc/lirc/fhem.lircrc

Viel Spaß beim testen. Wer mich korrigieren möchte darf das gerne machen. Aber bitte nur auf technischer Ebene!



Prof. Dr. Peter Henning

So etwas sollte aber nicht in einem Thread verschwinden. Sondern ins Wiki.

LG

pah

Hofi15

Hallo,

Danke für das Lob. :) Ja das stimmt wohl aber leider bin ich nicht berechtigt im FHEM Wiki Einträge zu machen. Also wenn jemand dazu die Rechte hat bzw eine andere Idee hat wie diese Info ins Wiki kommt dann bitte nur zu. Ich freue mich sehr wenn es jemanden hilft.

LG Hofi

nils_

viele Wege in FHEM es gibt!

Hofi15

Hallo,

Sorry ich hatte jetzt ein par Tage keine Zeit.
Sofern mir ein Benutzerkonto im Wiki angelegt wird, welches ich schon beantragt habe. Werde ich diese Info eintragen.

LG Hofi

Prof. Dr. Peter Henning

Und zwar in der Kategorie "Other Components", bitte.

LG

pah

matthias soll

Hallo zusammen,

Ich möchte lirc über eine serielle schnittstelle benutzen ALLE beispiele benutzen gpio´s.
Kann mir vielleichte jemand weiterhelfen was ich wo definieren muss?

Gruß
Matthias

Ellert

Zitat von: matthias soll am 09 Dezember 2018, 09:38:38
Hallo zusammen,

Ich möchte lirc über eine serielle schnittstelle benutzen ALLE beispiele benutzen gpio´s.
Kann mir vielleichte jemand weiterhelfen was ich wo definieren muss?

Gruß
Matthias
Bevor Du Lirc in FHEM nutzen kannst, müsstest Du erst einmal sicher stellen, dass Dein IR-Gerät mit Lirc auf Betriebssystem Ebene funktioniert.
Um dahin zu kommen, sollte die Lirc-Dokumentation die entsprechenden Informationen enthalten, s. http://www.lirc.org/index.html

Bei aktuell 18 verwendeten Lirc-Installationen in FHEM wirst Du hier wahrscheinlich nichts erreichen.

matthias soll

#8
LIRC habe ich laufen, allerdings auf den GPIO´s jetzt würde ich es gerne ändern auf die ttyACM1 und finde keine Hinweise was ich wo ändern muss.
in der /boot/config.txt
steht aktuell

dtoverlay=lirc-rpi,gpio_in_pin=23,gpio_out_pin=24

Kann ich dort 
dtoverlay=lirc-rpi,/dev/ttyACM1
eintragen oder wie wäre die korrekte syntax?

kinghill

Vielen Dank für die Info. Das hat echt geholfen und funktioniert :-)

TheOe

Die Infos hier haben mir sehr geholfen. Das Problem der fehlenden /dev/lircd habe ich jedoch so gelöst.

~ $ sudo nano /lib/systemd/system/lircdold.service

    [Unit]
    Description=Old Lircd Link Service
    After=network.target lircd-setup.service lircd.service

    [Service]
    ExecStart=ln -fs /var/run/lirc/lircd /dev/lircd
    StandardOutput=null

    [Install]
    WantedBy=multi-user.target
    Alias=lircdold.service


~ $ sudo systemctl enable lircdold.service
~ $ sudo systemctl start lircdold.service
2x Raspberry Pi 1B(+) | MAX | hue | Kodi