Hauptmenü

LIRC /IREXEC zickt

Begonnen von Hans Preuth, 11 Dezember 2017, 22:05:10

Vorheriges Thema - Nächstes Thema

Hans Preuth

???? irexec wird durch "lirc" versorgt ... kannst Du mir bitte Deine Config von lircd und irexec zukommen lassen?
Die Lircd:


[begin remote

  name  /home/pi/lircd.conf
  bits           13
  flags RC5|CONST_LENGTH
  eps            30
  aeps          100

  one           963   814
  zero          963   814
  plead         987
  gap          113806
  min_repeat      2
#  suppress_repeat 2
#  uncomment to suppress unwanted repeats
  toggle_bit_mask 0x800

      begin codes
          key_1                    0x1141
          key_2                    0x1142
          key_3                    0x1143
          key_4                    0x1144
          key_5                    0x1145
          key_6                    0x1146
          key_7                    0x1147
          key_8                    0x1148
          key_9                    0x1149
          key_0                    0x1140
          key_clear                0x1171
]

wo finde ich die conf von irexec?

Und wenn ich Dichr ciht verstanden habe, funktioniert bei Dir auf einem anderen System lirc/irexec??

Ja, auf einen anderen Raspi funktioniert es einwandfee - als GUI nutze ich Pilight.

Und wie gesagt wenn ich irexec "von Hand starte" läuft es auch (x.sh uns GPIO,s)
auch sehe ich mit irw die Pulse. Ich kann den lirc fehlerfrei starten und stoppen.
( Starting lirc (via systemctl): lirc.service) Ich bekomme ihn nicht im Hintergrund zum laufen - was ganz klar an meiner Unwissenheit liegt!! Bin halt ein Anfänger und eher auf der Hardwareseite Zuhause.
Lt. "HTOP" laüft er. Kann es an die Rechteverteilung liegen?

Wernieman

1. Bitte verwende demnächst die CODE-Tags (das # im Editor) zum posten von Codes. Macht es etwas übersichtlicher

2. Könntest Du uns den Inhalt folgender Datei geben?
cat /etc/lirc/lircrc

3. Du sprichst von GUI? Was hast Du für ein System installiert?
- Bitte um Input für Output
- When there is a Shell, there is a Way
- Wann war Dein letztes Backup?

Wie man Fragen stellt: https://tty1.net/smart-questions_de.html

Hans Preuth

begin
    button = key_1
    prog = irexec
    config = sudo gpio mode 2 out && gpio write 2 0
    toggle_reset
    config = sudo gpio write 2 1
end

begin
    button = key_2
    prog = irexec
    config = sudo gpio mode 3 out && gpio write 3 0
end

begin
    button = key_3
    prog = irexec
    config = sudo gpio mode 6 out && gpio write 6 0
end

begin
    button = key_4
    prog = irexec
    config = sudo gpio mode 7  out && gpio write 7 0
end

begin
    button = key_9
    prog = irexec
    config = sudo gpio mode 4 out && gpio write 4 0
end

begin
    button = key_clear
    prog = irexec
    config = sudo gpio mode 5 out && gpio write 5 0
end

begin
    button = key_play
    prog = irexec
    config = sudo /home/pi/raspberry-remote/scripte/./woall_on.sh
end

begin
    button = key_pause
    prog = irexec
    config = sudo /home/pi/raspberry-remote/scripte/./woall_off.sh
end

begin
    button = key_fastforward
    prog = irexec
    config = sudo /home/pi/raspberry-remote/scripte/putzlicht_on.sh
end

begin
    button = key_record
    prog = irexec
    config = sudo /home/pi/raspberry-remote/scripte/putzlicht_off.sh
end

begin
    button = key_pvr
    prog = irexec
    config = sudo /home/pi/raspberry-remote/scripte/nacht.sh
end



Zur Frage 3: Auf dem Raspi wo LIRC funktioniert ist Jessie und Pilight installiert. Läuft seit 3 Jahren ohne update und ohne Probleme.

Auf dem Raspi (3) mit Fhem (auch Jessie ,aber aktuell) habe die Probleme. Auch der Befehl "toggle_reset" unter key_1 scheint nicht erlaubt zu sein - mit ihm stürzt Fhem ab. Aber auch ohne gehts nicht.

Wernieman

Nur mal als Vergleich meine:
begin
        remote = TT
        button = vol-
        prog   = irexec
        repeat = 1
        config = /opt/fhem/schalte-fhem.sh myMPD volumeDown
end


remote brauche ich, da ich mehr als eine Fernbedienung habe. "toggle_reset" habe ich noch nie verwendet.

Das Script ist total Einfach (schon mehrfach erwähnt)
#!/bin/bash
# Programme
nc="/bin/nc"
log="/var/log/fhem/schalte_fhem"
debug=0
server=<FHEM-Server>

if [ $# -lt 2 ];
then
  echo "Zuwenig Parameter!"
  echo "1. Was"
  echo "2. Wie (on,off)"
  exit 1
fi

if [ "$debug" -ne 0 ]
then
  echo "`date` : Debug: Schalte Fhem mit \"$0 $@\"" >>$log
fi

#fhem "set $1 $2"
echo -en "set ${1} ${2}\nquit\n" | $nc -w 5 $server 7072 >/dev/null

error=$?
if [ "$error" -ne 0 ]
then
  echo "`date` : Fehler $error beim Aufruf \"$0 $@\"" >>$log
  exit 1
fi


Probiere es mal bitte
- Bitte um Input für Output
- When there is a Shell, there is a Way
- Wann war Dein letztes Backup?

Wie man Fragen stellt: https://tty1.net/smart-questions_de.html

Hans Preuth

mal ne doofe Frage: muss Lirc nicht erst ohne fhen funktionieren bevor ich es an fhem übergebe? Bei mir schaltet aber keines meiner scripte.
Das direkte schalten der GPIO,s via FB-Geber funktioniert. Die Scripte alleine für sich via Terminal auch. Also die Scripte für sich funktionieren. Ich kann sie nur nicht via FB schalten. Es sei denn ich starte Irexec im Terminal dierekt also irexec -> enter. Dann läut alles einwandfrei. Nur nicht im Hintergrund - also keine weitere Bedienung des RPI möglich.

Wernieman

ach sooooo ... dann hast Du den Deamon lircd laufen, aber nicht den irexec.

Zeig mir mal Deine:
Zitat/etc/init.d/lirc

Und .. wie sieht die erste Zeile der lircrc aus?
head -n1 /etc/lirc/lircrc
bzw. mal als Test:
grep UNCONFIGURED /etc/lirc/lircrc
- Bitte um Input für Output
- When there is a Shell, there is a Way
- Wann war Dein letztes Backup?

Wie man Fragen stellt: https://tty1.net/smart-questions_de.html

Hans Preuth

Ja, so stellt sich das für mich auch da - Ich habe das wohl umständlich beschrieben sorry :-[
#! /bin/sh
### BEGIN INIT INFO
# Provides:          lirc
# Required-Start:    $remote_fs $syslog
# Required-Stop:     $remote_fs $syslog
# Default-Start:     2 3 4 5
# Default-Stop:      0 1 6
# Short-Description: Starts LIRC daemon.
# Description:       LIRC is used to control different
#                    infrared receivers and transceivers.
### END INIT INFO

load_modules ()
{
        MODULES_MISSING=false

        log_daemon_msg "Loading LIRC modules"
        for mod in $*; do
                if [ $mod = "udev" ]; then
                        log_end_msg 0
                        log_success_msg "Restarted via udev, don't reload modules"
                        break
                else
                        modprobe $mod 2> /dev/null || MODULES_MISSING=true
                fi
        done
        log_end_msg $?

        if $MODULES_MISSING; then
                log_failure_msg "Unable to load LIRC kernel modules. Verify your"
                log_failure_msg "selected kernel modules in /etc/lirc/hardware.conf"
                START_LIRCMD=false
                START_LIRCD=false
        fi
}

build_args ()
{
        ARGS="$*"

        ## Try to find an lirc device.
        if [ -z "$DEVICE" ]; then
                if [ -c $dev ]; then
                        DEVICE="$dev"
                        break
                fi
        fi

        if [ -n "$DEVICE" ] && [ "$DEVICE" != "none" ]; then
                ARGS="--device=$DEVICE $ARGS"
        fi

        if [ -n "$DRIVER" ] && [ "$DRIVER" != "none" ]; then
                ARGS="--driver=$DRIVER $ARGS"
        fi

        echo $ARGS
}

. /lib/lsb/init-functions

test -f /usr/sbin/lircd || exit 0
test -f /usr/sbin/lircmd || exit 0

START_LIRCMD=true
START_LIRCD=true
START_IREXEC=true


if [ -f /etc/lirc/hardware.conf ];then
        . /etc/lirc/hardware.conf
fi

if [ ! -f /etc/lirc/lircd.conf ] || grep -q "^#UNCONFIGURED" /etc/lirc/lircd.conf; then
        if [ "$1" = "start" ]; then
                log_success_msg "No valid /etc/lirc/lircd.conf has been found."
                log_success_msg "Remote control support has been disabled."
                log_success_msg "Reconfigure LIRC or manually replace /etc/lirc/lircd.conf to enable."
        fi

        START_LIRCD=false
        START_LIRCMD=false
        START_IREXEC=false
fi

if [ ! -f /etc/lirc/lircmd.conf ] || grep -q "^#UNCONFIGURED" /etc/lirc/lircmd.conf; then
        START_LIRCMD=false
fi

if [ ! -f /etc/lirc/lircrc ] || grep -q "^#UNCONFIGURED" /etc/lirc/lircrc; then
        START_IREXEC=false
fi

case "$1" in
        start)
                [ -d "/var/run/lirc" ] || mkdir -p "/var/run/lirc"
                if [ "$LOAD_MODULES" = "true" ] && [ "$START_LIRCD" = "true" ]; then
                        load_modules $2 $MODULES
                fi

                if [ "$START_LIRCD" = "true" ]; then
                        log_daemon_msg "Starting remote control daemon(s) : LIRC "
                        LIRCD_ARGS=`build_args $LIRCD_ARGS`

                        if [ ! -z "$LIRCD_ARGS" ]; then
                                start-stop-daemon --start --quiet --oknodo --exec /usr/sbin/lircd -- $LIRCD_ARGS < /dev/null
                                # retain compatibility with old clients
                                ln -fs ../var/run/lirc/lircd /dev/lircd
                                log_end_msg $?
                        else
                                log_end_msg 1
                        fi
                fi

                if [ "$START_LIRCMD" = "true" ]; then
                        log_daemon_msg "Starting remote control mouse daemon : LIRCMD "
                        start-stop-daemon --start --quiet --oknodo --exec /usr/sbin/lircmd < /dev/null
                        log_end_msg $?
                fi

                if [ "$START_IREXEC" = "true" ]; then
                        log_daemon_msg "Starting execution daemon: irexec"
                        start-stop-daemon --start --quiet --oknodo --exec /usr/bin/irexec -- -d /etc/lirc/lircrc < /dev/null
                        log_end_msg $?
                fi
                ;;
        stop)
                if [ "$START_IREXEC" = "true" ]; then
                        log_daemon_msg "Stopping execution daemon: irexec"
                        start-stop-daemon --stop --quiet --exec /usr/bin/irexec
                        log_end_msg $?
                fi

                if [ "$START_LIRCMD" = "true" ]; then
                        log_daemon_msg "Stopping remote control mouse daemon: LIRCMD"
                        start-stop-daemon --stop --quiet --exec /usr/sbin/lircmd
                        log_end_msg $?
                fi

                if [ "$START_LIRCD" = "true" ]; then
                        log_daemon_msg "Stopping remote control daemon(s): LIRC"
                        start-stop-daemon --stop --quiet --exec /usr/sbin/lircd
                        log_end_msg $?
                fi
                ;;
        reload|force-reload)
                if [ "$START_IREXEC" = "true" ]; then
                        start-stop-daemon --stop --quiet --signal 1 --exec /usr/bin/irexec
                fi

                if [ "$START_LIRCD" = "true" ]; then
                        start-stop-daemon --stop --quiet --signal 1 --exec /usr/sbin/lircd
                fi

                if [ "$START_LIRCMD" = "true" ]; then
                        start-stop-daemon --stop --quiet --signal 1 --exec /usr/sbin/lircmd
                fi
                ;;
        restart)
                $0 stop
                sleep 1
                #passes parameter $2 which is possibly our udev paramater
                $0 start $2
                ;;
        *)
                echo "Usage: /etc/init.d/lircd {start|stop|reload|restart|force-reload}"
        exit 1
esac

exit 0

die erste Zeile beginnt mit begin
begin
    button = key_1
    prog = irexec
    config = sudo gpio mode 2 out && gpio write 2 0
end


Deine Testzeile "grep un ..."  bewirkt nichts

Wernieman

Habe jetzt 3 Aufgaben für Dich:
Die einfache:
1. Einfach
Läuft denn irexec?
ps aux | grep [i]rexec

2. Komplizierter:
Mach bitte mail 2 Fenster auf. Bitte bei beiden "root" werden durch
sudo -i

In Einem bitte mal eingeben:
tail -f /var/log/syslog

In dem 2. Bitte:
/etc/init.d/lirc stop
/etc/init.d/lirc stop

Nun sollte im 1. Fenster nach dem 2. Befehl des 2. Fenster so etwas stehen:
Dec 13 20:53:08 mimi systemd[1]: Starting LSB: Starts LIRC daemon....
Dec 13 20:53:08 mimi lirc[13898]:  * Loading LIRC modules
Dec 13 20:53:08 mimi lirc[13898]:    ...done.
Dec 13 20:53:08 mimi lirc[13898]:  * Starting remote control daemon(s) :
Dec 13 20:53:08 mimi lirc[13898]:    ...done.
Dec 13 20:53:08 mimi lircd-0.9.0[13913]: lircd(default) ready, using /run/lirc/lircd
Dec 13 20:53:08 mimi lirc[13898]:  * Starting execution daemon: irexec
Dec 13 20:53:08 mimi lircd-0.9.0[13913]: accepted new client on /run/lirc/lircd
Dec 13 20:53:08 mimi lirc[13898]:    ...done.
Dec 13 20:53:08 mimi systemd[1]: Started LSB: Starts LIRC daemon..


Naütlrich mit einem anderen Rechnernamen als "mimi". Wichtig ist hier die Zeile:
* Starting execution daemon: irexec
Erscheint Die bei Dir?


3. Läuft denn jetzt irexec (siehe 1.)
- Bitte um Input für Output
- When there is a Shell, there is a Way
- Wann war Dein letztes Backup?

Wie man Fragen stellt: https://tty1.net/smart-questions_de.html

Hans Preuth

Zu 1: Nein, leider nicht

root       698  0.0  0.0   1888    92 ?        Ss   21:55   0:00 /usr/bin/irexe          -d /etc/lirc/lircrc
pi         817  0.0  0.0   1888    92 ?        Ss   21:55   0:00 /usr/bin/irexe          -d
pi         942  0.0  0.0   1888    92 ?        Ss   21:55   0:00 /usr/bin/irexe          -d
pi        1156  0.0  0.0   1888    92 ?        Ss   21:55   0:00 /usr/bin/irexe          -d
pi        1174  0.0  0.0   1888    92 ?        Ss   21:55   0:00 /usr/bin/irexe          -d


Zu 2: ich denke mal Du meist : /etc/init.d/lirc stop & /etc/init.d/lirc start und nicht stop

Dec 13 21:55:23 raspberrypi systemd[1]: Time has been changed
Dec 13 21:55:23 raspberrypi dhcpcd[530]: wlan0: no IPv6 Routers available
Dec 13 21:55:42 raspberrypi ntpd_intres[757]: parent died before we finished, exiting
Dec 13 21:55:44 raspberrypi systemd[1]: Starting Session c3 of user pi.
Dec 13 21:55:44 raspberrypi systemd[1]: Started Session c3 of user pi.
Dec 13 21:55:45 raspberrypi lircd-0.9.0-pre1[685]: accepted new client on /var/run/lir  c/lircd
Dec 13 21:55:49 raspberrypi systemd[1]: Starting Session c4 of user pi.
Dec 13 21:55:49 raspberrypi systemd[1]: Started Session c4 of user pi.
Dec 13 21:55:50 raspberrypi lircd-0.9.0-pre1[685]: accepted new client on /var/run/lir  c/lircd
Dec 13 21:57:17 raspberrypi rsyslogd-2007: action 'action 17' suspended, next retry is   Wed Dec 13 21:57:47 2017 [try http://www.rsyslog.com/e/2007 ]
Dec 13 21:58:37 raspberrypi systemd[1]: Stopping LSB: Starts LIRC daemon....
Dec 13 21:58:37 raspberrypi rsyslogd-2007: action 'action 17' suspended, next retry is   Wed Dec 13 21:59:07 2017 [try http://www.rsyslog.com/e/2007 ]
Dec 13 21:58:37 raspberrypi lircd-0.9.0-pre1[685]: removed client
Dec 13 21:58:37 raspberrypi lircd-0.9.0-pre1[685]: removed client
Dec 13 21:58:37 raspberrypi lircd-0.9.0-pre1[685]: removed client
Dec 13 21:58:37 raspberrypi lircd-0.9.0-pre1[685]: removed client
Dec 13 21:58:37 raspberrypi lircd-0.9.0-pre1[685]: removed client
Dec 13 21:58:37 raspberrypi lirc[1207]: Stopping execution daemon: irexec:.
Dec 13 21:58:37 raspberrypi lircd-0.9.0-pre1[685]: caught signal
Dec 13 21:58:37 raspberrypi lirc[1207]: Stopping remote control daemon(s): LIRC:.
Dec 13 21:58:37 raspberrypi systemd[1]: Stopped LSB: Starts LIRC daemon..
Dec 13 21:58:56 raspberrypi systemd[1]: Starting LSB: Starts LIRC daemon....
Dec 13 21:58:56 raspberrypi lirc[1244]: Loading LIRC modules:.
Dec 13 21:58:56 raspberrypi kernel: [  233.285835] input: lircd as /devices/virtual/in  put/input1
Dec 13 21:58:56 raspberrypi lircd-0.9.0-pre1[1254]: lircd(default) ready, using /var/r  un/lirc/lircd
Dec 13 21:58:56 raspberrypi lirc[1244]: Starting remote control daemon(s) : LIRC :.
Dec 13 21:58:56 raspberrypi lircd-0.9.0-pre1[1254]: accepted new client on /var/run/li  rc/lircd
[color=red]Dec 13 21:58:56 raspberrypi lirc[1244]: Starting execution daemon: irexec:.
Dec 13 21:58:56 raspberrypi systemd[1]: Started LSB: Starts LIRC daemon..

Würde ja passen

Nach erneuten Eingabe von : ps aux | grep rexec   erscheint diese Meldung :  root      1259  0.0  0.1   1888  1040 ?        Ss   21:58   0:00 /usr/bin/irexec -d /etc/lirc/lircrc

Zu3 :irexec läuft aber leider immer noch nicht.


Wernieman

Also eigentlich:
Dec 13 21:58:56 raspberrypi lirc[1244]: Starting execution daemon: irexec:
Und dem folgenden:
root      1259  0.0  0.1   1888  1040 ?        Ss   21:58   0:00 /usr/bin/irexec -d /etc/lirc/lircrc
Sollte er gestartet sein.

Sieht bei mir nicht anders aus:
irexec     847  0.0  0.0   6440   108 ?        Ss   08:10   0:00 /usr/bin/irexec -d /etc/lirc/lircrc

Was mich wundert, Du hast zuerst 5? irexec laufen? Wirklich so viele??

Achte bitte mal erstmal darauf, das Du nur 1! laufen hast. Ich verstehe aber die Aussage zu 3 nicht. Das Programm an sich läuft doch laut Ende der Aussage zu 2.? Oder ist Deine Aussage so nicht richtig? Es geht mir (momentan) noch nicht ums funktionieren. Das ist der nächste Stepp.

Könntest Du mir bitte mal die komplette /etc/lirc/lircrc geben? Wenn zu viel Privates, gerne auch per PM.

- Bitte um Input für Output
- When there is a Shell, there is a Way
- Wann war Dein letztes Backup?

Wie man Fragen stellt: https://tty1.net/smart-questions_de.html

Hans Preuth

Hallo - ich bewundere Deine Geduld mit mir!
Hier meine Lircrcroot@raspberrypi:/etc/lirc# cat lircrc
begin
    button = key_1
    prog = irexec
    config = sudo gpio mode 2 out && gpio write 2 0
end

begin
    button = key_2
    prog = irexec
    config = sudo gpio mode 3 out && gpio write 3 0
end

begin
    button = key_3
    prog = irexec
    config = sudo gpio mode 6 out && gpio write 6 0
end

begin
    button = key_4
    prog = irexec
    config = sudo gpio mode 7  out && gpio write 7 0
end

begin
    button = key_9
    prog = irexec
    config = sudo gpio mode 4 out && gpio write 4 0
end

begin
    button = key_clear
    prog = irexec
    config = sudo gpio mode 5 out && gpio write 5 0
end

begin
    button = key_play
    prog = irexec
    config = sudo /home/pi/raspberry-remote/scripte/./woall_on.sh
end

begin
    button = key_pause
    prog = irexec
    config = sudo /home/pi/raspberry-remote/scripte/./woall_off.sh
end

begin
    button = key_fastforward
    prog = irexec
    config = sudo /home/pi/raspberry-remote/scripte/putzlicht_on.sh
end

begin
    button = key_record
    prog = irexec
    config = sudo /home/pi/raspberry-remote/scripte/putzlicht_off.sh
end

begin
    button = key_pvr
    prog = irexec
    config = sudo /home/pi/raspberry-remote/scripte/nacht.sh
end


warum die IREXEC nach dem Start 4 mal läuft weiß ich nicht. Ich starte es auch nicht 4 x über die rc.local ...

ZitatZu3 :irexec läuft aber leider immer noch nicht.
meinte ich es funktioniert noch nicht wie gedacht -da habe ich mich falsch ausgedrückt.


Hans Preuth

#11
so nun läuft die irexec nur noch einemal
Zitatroot       696  0.0  0.1   1888  1036 ?        Ss   19:46   0:00 /usr/bin/irexec -d /etc/lirc/lircrc
es war wohl letztendlich der Eintrag in : ~/.profile

dafü habe ich nun folgende Fehlermeldung
Zitat/etc/lirc $ /etc/init.d/lirc start
[....] Starting lirc (via systemctl): lirc.serviceFailed to start lirc.service: Access denied
failed!

mit root rechte  gehts

aber funktionieren tut,s immer noch nicht - keine Funktion der FB
Zitat[ ok ] Starting lirc (via systemctl): lirc.service.

Wernieman

/etc/lirc $ /etc/init.d/lirc start
[....] Starting lirc (via systemctl): lirc.serviceFailed to start lirc.service: Access denied
failed!


Dad knling komisch.

Würde es jetzt mal "sauber" machen und neu installieren (alles als root):
1. Sicherheitscopy:
cp /etc/lirc /etc/lirc.backup
2. Entfernen
apt-get purge lirc
apt-get autoremove
apt-get autoclean

3. Sicherheitshalber update der Sourcen
apt-get update
4. Neuinstallation
apt-get install lirc

Jetzt die Gesicherte Config wieder einfügen, aber auf die Berechtigung achten! Und deshalb nicht per cp, sondern per "überlegen". Du könntet auch schrittweise vorgehen, d.h. erstmal key_1 und dann erst weitergehen ...

P.S. Du hast lirc sudo rechte gegeben? Hast Du sonsto noch Rechte vergeben? Oder es eingetragen?
(Wie Dein erwähntes .profile)
- Bitte um Input für Output
- When there is a Shell, there is a Way
- Wann war Dein letztes Backup?

Wie man Fragen stellt: https://tty1.net/smart-questions_de.html

Hans Preuth

so, ich habe alles deinstalliert und installiert. Die lircrc besteht aus nur 2 Befehlen


pi@raspberrypi:/etc/lirc $ cat lircrc
begin
    button = key_fastforward
    prog = irexec
    config = sudo /home/pi/raspberry-remote/scripte/putzlicht_on.sh
end

begin
    button = key_record
    prog = irexec
    config = sudo /home/pi/raspberry-remote/scripte/putzlicht_off.sh
end


Die Abfrage via pi@raspberrypi:/etc/lirc $ ps aux | grep rexec sagt das es nun auch nur 1 mal läuft.  Hier wird ircxec übrigens rot angezeigt. Hmm?

root       688  0.0  0.0   1888    92 ?        Ss   21:12   0:00 /usr/bin/irexec -d /etc/lirc/lircrc

Die FB hat aber immernoch keine Funktion.
Starte ich irexec "von Hand" nochmal  -
Zitatpi@raspberrypi:~ $ irexec
kann ich mit der FB korrekt schalten - - das Script bzw. der Inhalt der LIRCRC  und läuft also. Den Inhalt der LIRC habe ich mit chmod +x volle Rechte, so glaube ich, gegeben.







Wernieman

?? Du must es per Hand starten? Wie ist er Befehl?

Das es rot ist, liegt am grep. Der markiert alle "Suchwörter" in der Konsole. Das Du im "ps aux"  nach irexec greps, zeigt er es ...

Edit:
Jetzt bewege ich mich gerade auf dünnen Eis, da ich aktuell nur einen ubuntu-Server zum angucken habe. Kannst Du mir bitte mal geben:
cat /etc/lirc/hardware.conf

hast Du eigentlich eine /etc/lirc/lircrc oder eine /etc/lirc/.lircrc?
Man beachte den "."
- Bitte um Input für Output
- When there is a Shell, there is a Way
- Wann war Dein letztes Backup?

Wie man Fragen stellt: https://tty1.net/smart-questions_de.html

Hans Preuth

Per Hand - pi@raspberrypi:~ $ irexec -> Enter zum starten und Strg & c zum stoppen.

# /etc/lirc/hardware.conf
#
# Arguments which will be used when launching lircd
LIRCD_ARGS="--uinput"

#Don't start lircmd even if there seems to be a good config file
#START_LIRCMD=false

#Don't start irexec, even if a good config file seems to exist.
#START_IREXEC=false

#Try to load appropriate kernel modules
LOAD_MODULES=true

# Run "lircd --driver=help" for a list of supported drivers.
DRIVER="default"
# usually /dev/lirc0 is the correct setting for systems using udev
DEVICE="/dev/lirc0"
MODULES="lirc_rpi"

# Default configuration files for your hardware if any
LIRCD_CONF=""
LIRCMD_CONF=""


Lircrc ohne Punkt, also nicht  versteckt.

Wernieman

Ich verstehe es nicht ... kann es mir nur vorstellen, das der irexec, aus welchen gründen auch immer, bei Dir zu früh gestartet wird und sich deshalb nicht mit dem lircd verbündet. Sorry, aber Fehlersuche mit einem bei mir (momentan) nicht reproduzierbarem Problem ist nicht einfach.

Sehe momentan 2 Lösungen:
1. Du nimmst irexec aus dem start vom lircd raus und definierst ein eigenes "Startscript".
2. Wir machen eine debugsession, d.h. Du könnest bei Dir den ssh port öffnen und wir gucken zusammen über eine screen session
- Bitte um Input für Output
- When there is a Shell, there is a Way
- Wann war Dein letztes Backup?

Wie man Fragen stellt: https://tty1.net/smart-questions_de.html

Hans Preuth

Debugsession hört sich gut an - da Lehrne ich ja mal was - wann hast Du Lust? Und Schlimme an der Sache dass garantiert ich irgendwo Mist gebaut habe!

Wernieman

Zitatwann hast Du Lust?
Das ist die Falsche Frage, sie sollte lauten:
Zitatwann hast Du Zeit?

Könntest Du zwischen 8:00 und 15:00?
Ansonsten wird es erst "im neuen Jahr" ...
- Bitte um Input für Output
- When there is a Shell, there is a Way
- Wann war Dein letztes Backup?

Wie man Fragen stellt: https://tty1.net/smart-questions_de.html

Hans Preuth

Da habe ich leider keine Zeit, Schade. Bin aber leider beruflich unterwegs. - Ich denke wir verschieben es aus neue Jahr. Aber dennoch Danke für Deine Mühe.

Wernieman

Naja ... kann beruflich mal eine Pause einlegen .. nur privat bin ich aktuell "eingespannt". Könntest Du auch kurzfristig?

Eventuell könnte es diese Woche ab 18:00 klappen, nur weiß ich es nur c.a. 6 Stunde vorher ...
- Bitte um Input für Output
- When there is a Shell, there is a Way
- Wann war Dein letztes Backup?

Wie man Fragen stellt: https://tty1.net/smart-questions_de.html

Hans Preuth

Sorry, das ich mich jetzt erst melde. Bin auch erst seit heute wider zu Hause. Muste am Wochenende auf meinem RPI ein Image zurückspielen. VERDADDELT! Habe den Ursprung wieder hergestellt. Auuußer IREXEC läuft wieder 3 mal. Und ich finde nicht wo er gestartet wird.
Ich bin Abends erst um ca 19:00 zu Hause. Da hätte ich Morgen und Freitag/Samstag Zeit.

Hans Preuth

oh, es hat sich gerade etwas verschoben leider kann ich nur noch Morgen.

Wernieman

Und bei mir ... ich bin jetzt wirklich für dieses Jahr "ausgebucht" .. sorry

Wird also er in "1 Jahr" *griiins*
- Bitte um Input für Output
- When there is a Shell, there is a Way
- Wann war Dein letztes Backup?

Wie man Fragen stellt: https://tty1.net/smart-questions_de.html

Wernieman

Was mir heute mal so spontan eingefallen ist: Wer darf Deine Scripte eigentlich lesen/starten?

Wenn ich mir so angucke: /home/pi/raspberry-remote/scripte/putzlicht_off.sh
Liegt unter dem User PI und irexec läuft unter einem anderen User! Dann ist so klar, warum es läuft, wenn Du irexec manuell startest, wahrscheinlich User PI?

Bitte mal ordentlich machen ...
- Bitte um Input für Output
- When there is a Shell, there is a Way
- Wann war Dein letztes Backup?

Wie man Fragen stellt: https://tty1.net/smart-questions_de.html

Hans Preuth

Ja, ich starte Irexec als "pi". Was meinst mit ordentlich machen?

Übrigens der "Mehrfachstart" von irexec hatte sich wieder durch die versteckte Datai ".profile" eingeschlichen.

Wernieman

irexec start im Normallfall eben NICHT unter dem User pi. Kannst ja mal gucken:
ps aux | grep [i]rexec
- Bitte um Input für Output
- When there is a Shell, there is a Way
- Wann war Dein letztes Backup?

Wie man Fragen stellt: https://tty1.net/smart-questions_de.html

Hans Preuth

Du hast Recht irexec läuft als root
root       717  0.0  0.1   1888  1028 ?        Ss   19:54   0:00 /usr/bin/irexec -d /etc/lirc/lircrc

Wernieman

????
ps aux | grep irexec
irexec     757  0.0  0.0   6440  1384 ?        Ss   Dez19   0:00 /usr/bin/irexec -d /etc/lirc/lircrc


Hast Du einen User irexec?
Sorry habe hier keinen Pi mit lirc, kann also dort nicht gucken, Obiges ist von einem Ubuntu, aber unter debian ist es auch so.
- Bitte um Input für Output
- When there is a Shell, there is a Way
- Wann war Dein letztes Backup?

Wie man Fragen stellt: https://tty1.net/smart-questions_de.html

Hans Preuth

Einen User irexec habe ich nicht.
Bei der Eingabe von :"ps aux | grep irexec" erhalte ich das:
root       717  0.0  0.1   1888  1028 ?        Ss   Dez23   0:00 /usr/bin/irexec -d /etc/lirc/lircrc
pi        4182  0.0  0.1   4296  1848 pts/0    S+   14:57   0:00 grep --color=auto irexec

Bei meinem 2. Raspi, der wie gesagt schon seit Jahre läuft, sie es übrigens ähnlich aus.
siehe hier:root       529  0.0  0.1   1892  1024 ?        Ss   Dez09   0:00 /usr/bin/irexec -d /etc/lirc/lircrc
pi       29574  0.0  0.1   4300  1840 pts/0    S+   14:54   0:00 grep --color=auto irexec

Wernieman

Kein Problem .. dann läuft bei Dir der irexec unter root ... hast Du Debian oder Raspian "drauf"?

Könnnte auch der Standart bei der ARM-Distri sein. Wie schon mal geschrieben, kenne mich mit lirc/irexec aus, aber nicht unter dem raspi.

Was mir mal als Debuglösung eingefallen ist: Könntest Du Dir ein Script schreiben, was einfach nur mal ein Logfile schreibt?
ala:
#!/bin/bash
date >>/var/log/irexec.log


Wenn Du dieses mit irexec/einem Tastendruck verbindest, funktioniert es dann?

z.B. in einem Fenster:
tail -f /var/log/irexec.log

Wenn Du jetzt "die" Taste auf der fernbedienung drückst, müstest Du im Terminal die Uhrzeit sehen. So kannst Du erstmal ohne FHEM testen ...

Ansonsten .. wird erst in der 2. Januarwoche mit einer Debugsession
- Bitte um Input für Output
- When there is a Shell, there is a Way
- Wann war Dein letztes Backup?

Wie man Fragen stellt: https://tty1.net/smart-questions_de.html

Hans Preuth

Habe Heilig Abend vormittags (meine Frau war Einkaufen und ich hatte Zeit) alles Neugemacht.
1. OS Jessie neu aufgesetzt -Image erstellt
2.  WiringPi uns lirc installiert -> Fernbedienung geht
3. Fhem installiert -> FB geht
4. Fhem Backup installiert - > FB geht - aber einige scripte (.sh) laufen nicht
5. Fhem erlaubt Sudo zu nutzen wie hier beschrieben:
1.  /etc/passwd
sudo nano /etc/passwd
Hier wird folgendes geändert:
fhem:x:999:20::/opt/fhem:/bin/none
in:
fhem:x:999:20::/opt/fhem:/bin/bash
Mit "Strg+O" speichern und mit "Strg+X" schließen.
2.  /etc/sudoers
sudo nano /etc/sudoers
Hier wird folgendes ergänzt (irgendwo in der Datei):
Defaults        requiretty
Defaults:%dialout        !requiretty
Defaults:fhem        !requiretty

fhem ALL=(ALL) NOPASSWD: ALL


Ergebniss -> scripte laufen FB geht nicht mehr.
"Sudoerlaubniss" rückgängig gemacht -> FB läuft - scripte nicht.
Sobald ich also Fhem die Erlaubniss erteile sudo nutzen zu dürfen funktioniert die Fernbedienung nicht mehr.


Wernieman

1. solche Zeilen verwendet man nicht:
fhem ALL=(ALL) NOPASSWD: ALL
Damit machst Du fhem praktisch zum root ... mit allen negativen Folgeerscheinungen.

Anstatt "ALL" schreibt man expliziete Programme rein.

Um es jetzt mal richtig zu machen, wofür brauchst Du sudo?

P.S. Leider findet man immer wieder diese Zeile im WEB .. gehört in die Schublade "gefährliches Halbwissen". Leider auch hier im Forum schon mehr als ein mal gefunden ... :o(
- Bitte um Input für Output
- When there is a Shell, there is a Way
- Wann war Dein letztes Backup?

Wie man Fragen stellt: https://tty1.net/smart-questions_de.html

Hans Preuth

hmm, bei gefährlichem Halbwissen bin ich ziemlich weit Vorne dabei.
Sorry. :-[ Ich habe diese Zeilen natürlich auch aus dem Netz.
Aber ohne laufen ein Teil meiner Scripte nicht. Will sagen, ich kann diese via dummy/notify nicht schalten. Mit diesen Zeilen schon - aber die FB funktioniert nicht. Ohne diese Zeilen funktioniert meine FB. Habe ich hier ein "Rechteproblem"?

Wernieman

Welche Scripte funktionieren nicht?

Ich glaube, Du hast ein "globales" Rechteproblem ...
- Bitte um Input für Output
- When there is a Shell, there is a Way
- Wann war Dein letztes Backup?

Wie man Fragen stellt: https://tty1.net/smart-questions_de.html

Hans Preuth

scripte wie zb.
{system "/home/pi/raspberry-remote/scripte/putzlicht_on.sh&"}
was heißt globales Problem?

Wernieman

#36
Das Du nicht genau weißt, welche Rechte FHEM braucht/nicht braucht.

hast Du irgendwo ein "chown/chmod" ausgeführt?

Diie Frage ist eher, was pasiert in Deinem Script /home/pi/raspberry-remote/scripte/putzlicht_on.sh?
Also welche "Befehle" werden ausgeführt? Da kann man bestimmt viel feiner die rechte dosieren....

Edit:
Bin beruflich Linux-Systemadministrator. Da hat man mit der Feingraduierung von Systemrechten häufiger zu tuhen. Auch das viele Anleitung im "Hardwarebereich" pauschal erstmal zu viele Rechte verteilen ist auch schon heufig aufgefallen ...
- Bitte um Input für Output
- When there is a Shell, there is a Way
- Wann war Dein letztes Backup?

Wie man Fragen stellt: https://tty1.net/smart-questions_de.html

Hans Preuth

ich habe z.b. via :
sudo chmod +x /home/pi/raspberry-remote/scripte/putzlicht_on.sh&
Rechte vergeben. Das habe ich mit allen Scripten im Pfad /home/pi/raspberry-remote/scripte/ xxx.sh&
so gemacht.

Hans Preuth

oh, Moment habe mich versehen nicht: chmod +x home/pi/raspberry-remote/scripte/putzlicht_on.sh&
sondern: chmod +x raspberry-remote/scripte/putzlicht_on.sh&

Wernieman

chmod +x raspberry-remote/scripte/putzlicht_on.sh&

Warum hängst Du ein & ans Ende????

Was mich interessiert, was steht IN Deinen Scripten .. gerne auch per PN oder Mail wenn Du Angst um den Inhalt hast ...
- Bitte um Input für Output
- When there is a Shell, there is a Way
- Wann war Dein letztes Backup?

Wie man Fragen stellt: https://tty1.net/smart-questions_de.html

Hans Preuth

hast ne PN - aber nicht aus Angst. Aber so "müllt" sich der chat nicht so voll.

Wernieman

Naja .. mittlerweile wird es hier ein "privater Chat", deshalb hier eine Anmerkung:
sudo gpio mode 2 out
Der User fhem muß die gpio-Ports nutzen dürfen. Dazu muß er "nur" in der Gruppe gpio sein. Dann braucht er auch das "sudo" nicht mehr.

Dafür (Zitat):
sudo usermod -a -G gpio <Username>


Allerdings würde ich persöhnlich nicht über ein Programm gpio gehen, sondern direkt in die Relevanten Teile schreiben, wie z.B.
echo "23" > /sys/class/gpio/export
echo "in" > /sys/class/gpio/gpio23/direction


P.S. Du hast doch ein aktuelles Debian?
Zitatraspi1:~# cat /etc/debian_version
9.3
- Bitte um Input für Output
- When there is a Shell, there is a Way
- Wann war Dein letztes Backup?

Wie man Fragen stellt: https://tty1.net/smart-questions_de.html

Hans Preuth

meine DEBIAN Vers. 8.0 Jessie - trotz update /upgrade.
Warum sagst Du der user fhem muss "nur" in der Gruppe GPIO sein? Hast Du da Sicherheitsbedenken? - Naja und anlegen müsste man den user fhem halt noch -oder. Ohne sudo wird es alles überschaubarer - so glaube ich.

BTW: hatte ich Dir eigentlich eine 2. PM gesendet - bin mir nicht sicher ob die durchgegangen ist - war vom Handy. 

Egal,war das:

Also ich habe nun die 3 "requiretty" Einträge deaktiviert. Fhem hat leider immernoch root Rechte aber ich kann aus Fhem scripte schalten und die FB funktioniert auch!!

sudo nano /etc/sudoers:


pi ALL=(ALL) NOPASSWD: ALL

#Defaults        requiretty
#Defaults:%dialout        !requiretty
#Defaults:fhem        !requiretty

fhem ALL=(ALL) NOPASSWD: ALL


Aber was ich hier wirklich gemacht habe kann ich nicht beurteilen!! Das war "tray and error" und garantiert Mist. Vielleicht hast Du da eine gescheite Lösung.

Sonst macht er ja eigentlich jetzt genau was er soll was er soll.

Wenn ich jetzt noch mit der IR- FB, ich denke via dummy und  4 notify meine 4 433 MHZ- Aktoren geschaltet bekomme steht schonmal ein Gerüst. Das ist aber ein zweites Kapitel.





 

Wernieman

Würde Dir empfehlen:
Per IR-Fernbediehnung einen Dummy schalten:
z.B. "set DummyIR pause"
Dann kannst Du per notify auf DummyIR:pause trickern und sachen erleidgen lassen

pause ist natürlich eine passende Taste auf der Fernbedienung. Anstatt dessen kannst Du jeden anderen Namen nehmen.

Das "nur" in "" war etwas ironisch gemeint. Dafür must Du natürlich NICHT einen neuen User anlegen, sondern die rechte vom User fhem erweitern. Siehe mein Posting.

- Bitte um Input für Output
- When there is a Shell, there is a Way
- Wann war Dein letztes Backup?

Wie man Fragen stellt: https://tty1.net/smart-questions_de.html

Hans Preuth

Hi - so ich habe heute Zeit gefunden um ein wenig zu basteln.
ich habe fhem der Gruppe gpio hinzugefügt via:
sudo usermod -a -G gpio fhem
Alles schaltet nun ohne "sudo" (fhem IR-FB / irexec) NUR 3 armselige Scripte
kann fhem nur mit root- Rechte ausführen. Alle Scripte liegen in ein und dem selben Ordnerdrwxr-xr-x 2 pi pi 4096 Dez 30 18:19 .
drwxr-xr-x 6 pi pi 4096 Dez 24 17:32 ..
-rwxrwxrwx 1 pi pi   44 Nov 10 20:29 buereg_ob_off.sh
-rwxrwxrwx 1 pi pi   45 Nov  9 22:16 buereg_ob_on.sh
-rwxrwxrwx 1 pi pi   44 Nov  9 22:05 buereg_un_off.sh
-rwxrwxrwx 1 pi pi   46 Nov  9 21:57 buereg_un_on.sh
-rwxr-xr-x 1 pi pi   45 Nov 10 21:00 lafen_off.sh
-rwxr-xr-x 1 pi pi   45 Nov 10 20:59 lafen_on.sh
-rwxr-xr-x 1 pi pi  321 Nov 21 22:18 nacht_1_on.sh
-rwxrwxrwx 1 pi pi  180 Dez 17 20:47 putzlicht_off.sh
-rwxrwxrwx 1 pi pi  181 Dez 17 20:09 putzlicht_on.sh
-rwxr-xr-x 1 pi pi   46 Nov  7 20:21 receiver_off.sh
-rwxrwxrwx 1 pi pi   48 Nov  7 20:18 receiver_on.sh
-rwxr-xr-x 1 pi pi   45 Nov 10 20:48 stehl_off.sh
-rwxr-xr-x 1 pi pi   45 Nov 10 20:47 stehl_on.sh
-rwxr-xr-x 1 pi pi   50 Nov 10 20:08 TV_off.sh
-rwxr-xr-x 1 pi pi   50 Nov 10 20:07 TV_on.sh
-rwxr-xr-x 1 pi pi  135 Nov  8 21:46 woall_off.sh
-rwxr-xr-x 1 pi pi  138 Nov  8 21:45 woall_on.sh

das sind woall_xx.sh, putzlicht_xx.sh und nacht_1_on.sh. waarum???

Wernieman

- Bitte um Input für Output
- When there is a Shell, there is a Way
- Wann war Dein letztes Backup?

Wie man Fragen stellt: https://tty1.net/smart-questions_de.html

Hans Preuth

Hi und Sorry dass ich mich erst jetzt melde - ich war die ganze letzte Woche beruflich Unterwegs.

Nach einem heutigen "update und upgrade" kann ich auch die letzten armseligen Scripte, ohne dass Fhem Rootrechte hat, ausführen! Warum das nun plötzlich geht weiß ich nicht (Magic). Werde nun das System mal aufräumen und versuchen einen Dummy/notify via IR zu schalten. Dein Tipp Fhem der Gruppe GPIO hinzuzufügen war wohl der alles entscheidende Tipp! Alle andere Probleme führe ich auf ein von mir schlampig aufgesetztes System zurück.
Danke für Deine Geduld und Deine Mühe!

Wernieman

Das schöne über den irexec-Weg ist, das man das übergeben an FHEM unabhängig testen kann. Wenn das Script Funktioniert, ála:
schalte.sh IR Taste
Kann man dann innerhalb von FHEM per notify auswerten und hat das gewünschte Ergebnis ;o)

Irgendwo habe ich so ein Script schon gepostet ...
- Bitte um Input für Output
- When there is a Shell, there is a Way
- Wann war Dein letztes Backup?

Wie man Fragen stellt: https://tty1.net/smart-questions_de.html

Hans Preuth

soo, habe nun mein System "aufgeräumt" und Dein Script installiert.
Aber ich bekomme keine Echo Ausgabe. Das Script als solches läuft (warum auch nicht).
Wenn ich IREXEC direkt starte bekomme ich die Echoausgabe via FB.
Und mit mit: "home/pi/raspberry-remote/scripte/schalte-fhem.sh" auch.
Sieht wieder nach einem Rechteproblem aus -oder?

Deim Script:

#!/bin/bash
# Programme

nc="/bin/nc"
log="/var/log/fhem/schalte_fhem"
debug=0
server=/opt/fhem/FHEM

if [ $# -lt 2 ];
then
  echo "Zuwenig Parameter!"
  echo "1. KEY_8"
  echo "2. Wie (on,off)"
  exit 1
fi

if [ "$debug" -ne 0 ]
then
  echo "`date` : Debug: Schalte Fhem mit \"$0 $@\"" >>$log
fi

#fhem "set $1 $2"
echo -en "set ${1} ${2}\nquit\n" | $nc -w 5 $server 7072 >/dev/null

error=$?
if [ "$error" -ne 0 ]
then
  echo "`date` : Fehler $error beim Aufruf \"$0 $@\"" >>$log
  exit 1
fi

Wernieman

Die Echo Ausgabe sollst Du nur bekommen, wenn Du zu wenig Parameter eingibst.

Oder meinst Du das Debug? Dann setze mal in den Anfang "Debug=1"
- Bitte um Input für Output
- When there is a Shell, there is a Way
- Wann war Dein letztes Backup?

Wie man Fragen stellt: https://tty1.net/smart-questions_de.html

Hans Preuth

Ich glaube ich habe 2 Fehler:
1. ich kann das Script nicht via FB starten. Oder besser es startet nur wenn ich irexec      vorher via Befehlszeile ( Irexec -> Enter) starte. Oder ich starte es "per Hand"
2. Wenn es startet  Echo ausgabe "zu wenig Parameter. ...

wo muss ich denn mit dem "Debug=1" hin ?

Wernieman

1. Gib mir mal die Berechtigung des Scriptes.
ls -lha

2. Bezüglich Debug=1
Lies Dir bitte mal das Script durch

Und normalerweise wird es aufgerufen mit:
./script.sh was wohin
./script Lampe1 on

- Bitte um Input für Output
- When there is a Shell, there is a Way
- Wann war Dein letztes Backup?

Wie man Fragen stellt: https://tty1.net/smart-questions_de.html

Hans Preuth

Zu1) -rwxr-xr-x 1 pi pi 499 Jan 16 19:17 /home/pi/raspberry-remote/scripte/schalte-fhem.sh

Zu2) ahh - Zeile 6 im schalte-fhem.sh von debug=0 auf =1 ändern.


hier die Ausgabe wenn ich es per Hand starte:
Use of uninitialized value $ARGV[0] in string eq at /opt/fhem/fhem.pl line 419.
Usage:
as server: fhem configfile
as client: fhem [host:]port cmd cmd cmd...
Zuwenig Parameter!
1. KEY_8
2. Wie (on,off)


und hier der in halt des Scripts:
#!/bin/bash
# Programme

nc="/bin/nc"
log="/var/log/fhem/schalte_fhem"
debug=1
server= /opt/fhem/fhem.pl

if [ $# -lt 2 ];
then
  echo "Zuwenig Parameter!"
  echo "1. KEY_8"
  echo "2. Wie (on,off)"
  exit 1
fi

if [ "$debug" -ne 0 ]
then
  echo "`date` : Debug: Schalte Fhem mit \"$0 $@\"" >>$log
fi

#fhem "set $1 $2"
echo -en "set ${1} ${2}\nquit\n" | $nc -w 5 $server 7072 >/dev/null

error=$?
if [ "$error" -ne 0 ]
then
  echo "`date` : Fehler $error beim Aufruf \"$0 $@\"" >>$log
  exit 1
fi


ist eigentlich meine Angabe des Servers in Zeile 7 korrekt?


Wernieman

server= /opt/fhem/fhem.pl

Ich glaube, da hast DU mich falsch verstanden ... mit "server" ist die Serveradresse gemeint. Nicht das "Server-Programm". In der Regel kommt dort "localhost" rein, es sei denn, Du sprichst eine andere Maschine an.

Die Datenübertragung an Fhem läuft mit:
echo -en "set ${1} ${2}\nquit\n" | $nc -w 5 $server 7072 >/dev/null
Und genau dort ist "$server" wichtig als Ziel.
- Bitte um Input für Output
- When there is a Shell, there is a Way
- Wann war Dein letztes Backup?

Wie man Fragen stellt: https://tty1.net/smart-questions_de.html

Hans Preuth

also in Zeile 7 und 23 jeweils "localhost:7072" ?

Wernieman

Ich glaube, ich muß besser Dokumentieren ;o)

Nur im Folgenden Block wird konfiguriert:
nc="/bin/nc"
log="/var/log/fhem/schalte_fhem"
debug=0
server=<Serveradresse|localhost>


Den Rest bearbeitet man nur für Debugzwecke.

Btw. achte mal darauf, ob bei Dir der Pfad "log" existiert. z.B. durch
ls -lha /var/log/fhem/

Edit:
Funktioniert jetzt irexec und wir arbeiten nur am Script, oder hast Du noch irexec-Probleme?
- Bitte um Input für Output
- When there is a Shell, there is a Way
- Wann war Dein letztes Backup?

Wie man Fragen stellt: https://tty1.net/smart-questions_de.html

Hans Preuth

Im Pfad var/log/ fehlt fhem/schalte_fhem - soll ich die Ordner anlegen?
IREXEC scheint zu laufen.
Aber der Rest ?

Wernieman

Du solltest den Ordner anlegen und User/Berechtigungen passend setzen. Alternativ einen passenden Ordner z.B. unter /opt/fhem/log anlegen ... mir gefällt es persöhnlich aber besser, Logfiles im "Logordner" /var/log" abzulegen...
- Bitte um Input für Output
- When there is a Shell, there is a Way
- Wann war Dein letztes Backup?

Wie man Fragen stellt: https://tty1.net/smart-questions_de.html

Hans Preuth

soo, den Ordner habe ich nun angelegt und ich hoffe mit den nötigen Rechten ausgestattet
siehe hier: ls -lha /var/log/fhem/
insgesamt 12K
drwxr-xr-x 3 root root 4,0K Jan 18 19:16 .
drwxr-xr-x 8 root root 4,0K Jan 18 19:06 ..
drwxr-xr-x 2 root root 4,0K Jan 18 19:16 schalte_fhem


und im Script bei Server=localhost -mit port(7072) oder ohne? und nun ...

Wernieman

Einfach nur den Servernamen (also localhost bei Dir). Die Portangabe habe ich noch nicht Variable gemacht.

Jetzt müstest Du als User, der das Script aufrufen darf, mal Testen, ob die Kommunikation stimmt.

also z.B.
./schalte_fhem.sg Licht on

Natürlich bitte Licht durch passendes ersetzen. Jetzt sollte in Fhem genau das geschaltet werden. Wenn DAS klappt, kannst Du das Script in irexec als aufzurufendes Programm eintragen.

Nur mal so als Beispiel von mir:
begin
        remote = PANASONIC
        button = setup
        prog   = irexec
        repeat = 0
        config = /opt/fhem/schalte-fhem.sh Rechner on
end


Natürlich wieder Pfade (hier  /opt/fhem) anpassen! Kannst DU eigentlich verstehen, was ich hiermit bezwecke?

Btw:
Kann Dir immer noch anbieten, das wir mal eine Debugsitzung machen.
- Bitte um Input für Output
- When there is a Shell, there is a Way
- Wann war Dein letztes Backup?

Wie man Fragen stellt: https://tty1.net/smart-questions_de.html

Hans Preuth

Soo, habe alles so erledigt wie Du es vorgeschlagen hast und einige Dummy-Taster (toggle) in Fhem angelegt. Diese schalte ich nun via LIRC (irexec). Und alles funktioniert einwandfrei !!! Manchmal schaltet der ein oder andere Aktor nicht - das schiebe ich mal auf meinen SIGNALduino (Freiverdrahtung) und die 433 MHZ Aktoren. On Top müssen die noch durch eine Betondecke funken. Der Fehler ist aber auch zu vernachlässigen. Die 868 MHZ - Strecken funktionieren nahezu 100 %. Werde nun noch die restlichen Tasten belegen - sollte aber pflegeleicht von Statten gehen. Ne Frage - wozu dient bei Dir der "repeat=0" Eintrag in der IREXEC.  - Tasten entprellen?

wie auch immer ersteinmal vielen Dank für Deine geduldige Hilfe und Unterstützung. Habe ne Menge gelernt. Ich melde mich wenn alles geklappt hat. Als Nächstes steht ein DHT22 und anderer CUL (mit CC1101) auf der Liste. "Schaun wir mal".

Wernieman

Siehe Doku von Irexec, besser:
https://wiki.ubuntuusers.de/Lirc/Tasten_mit_Funktionen_belegen/

repeat    Anweisung, wie mit wiederholten Impulsen umgegangen werden soll.

Wenn Du es nicht drin hast, kann bei dauerhaften drücken (auf der Taste bleiben), der Befehl mehrfach aufgerufen werden. ist z.B. bei Laut/Leiste sinnvoll, aber meistens nicht.

Nur mal so als Beispiel für eine Anwendung:
begin
        remote = TT
        button = vol-
        prog   = irexec
        repeat = 1
        config = /home/irexec/schalte-fhem.sh myMPD volumeDown
end


Was war jetzt eigentlich das Problem, welches ursprünglich bei Dir irexec/fhem gestört hat?
- Bitte um Input für Output
- When there is a Shell, there is a Way
- Wann war Dein letztes Backup?

Wie man Fragen stellt: https://tty1.net/smart-questions_de.html

Hans Preuth

Hast recht, die Ubuntu - Beschreibung ist die Bessere. Mein Problem war wahrscheinlich
dass mehrfache starten von IREXEC in ./Profile und ... Dazu kam noch mein mangelhaftes Verteilen der Rechte und das ich Dein Skript zuerst nicht verstanden habe.

Wernieman

Mit der Bewschreibung .. ist es dann O.K.?

Würde es sonst mal im Wiki Hinterlegen
- Bitte um Input für Output
- When there is a Shell, there is a Way
- Wann war Dein letztes Backup?

Wie man Fragen stellt: https://tty1.net/smart-questions_de.html

Hans Preuth

Absolut - funktioniert hervorragend !! Und vor allen Dingen schnell!!