Autor Thema: LIRC /IREXEC zickt  (Gelesen 3780 mal)

Offline Wernieman

  • Hero Member
  • *****
  • Beiträge: 4144
Antw:LIRC /IREXEC zickt
« Antwort #45 am: 02 Januar 2018, 18:58:51 »
Zeig mal den Inhalt
- Bitte um Input für Output
- When there is a Shell, there is a Way

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

Offline Hans Preuth

  • New Member
  • *
  • Beiträge: 40
Antw:LIRC /IREXEC zickt
« Antwort #46 am: 06 Januar 2018, 20:12:50 »
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!

Offline Wernieman

  • Hero Member
  • *****
  • Beiträge: 4144
Antw:LIRC /IREXEC zickt
« Antwort #47 am: 07 Januar 2018, 11:42:21 »
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 TasteKann 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

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

Offline Hans Preuth

  • New Member
  • *
  • Beiträge: 40
Antw:LIRC /IREXEC zickt
« Antwort #48 am: 12 Januar 2018, 20:06:02 »
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

Offline Wernieman

  • Hero Member
  • *****
  • Beiträge: 4144
Antw:LIRC /IREXEC zickt
« Antwort #49 am: 13 Januar 2018, 13:08:58 »
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

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

Offline Hans Preuth

  • New Member
  • *
  • Beiträge: 40
Antw:LIRC /IREXEC zickt
« Antwort #50 am: 13 Januar 2018, 17:35:28 »
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 ?

Offline Wernieman

  • Hero Member
  • *****
  • Beiträge: 4144
Antw:LIRC /IREXEC zickt
« Antwort #51 am: 14 Januar 2018, 17:34:35 »
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

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

Offline Hans Preuth

  • New Member
  • *
  • Beiträge: 40
Antw:LIRC /IREXEC zickt
« Antwort #52 am: 16 Januar 2018, 20:06:55 »
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?


Offline Wernieman

  • Hero Member
  • *****
  • Beiträge: 4144
Antw:LIRC /IREXEC zickt
« Antwort #53 am: 17 Januar 2018, 09:35:56 »
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/nullUnd genau dort ist "$server" wichtig als Ziel.
- Bitte um Input für Output
- When there is a Shell, there is a Way

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

Offline Hans Preuth

  • New Member
  • *
  • Beiträge: 40
Antw:LIRC /IREXEC zickt
« Antwort #54 am: 17 Januar 2018, 16:28:57 »
also in Zeile 7 und 23 jeweils "localhost:7072" ?

Offline Wernieman

  • Hero Member
  • *****
  • Beiträge: 4144
Antw:LIRC /IREXEC zickt
« Antwort #55 am: 17 Januar 2018, 19:58:08 »
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

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

Offline Hans Preuth

  • New Member
  • *
  • Beiträge: 40
Antw:LIRC /IREXEC zickt
« Antwort #56 am: 17 Januar 2018, 21:49:31 »
Im Pfad var/log/ fehlt fhem/schalte_fhem - soll ich die Ordner anlegen?
IREXEC scheint zu laufen.
Aber der Rest ?

Offline Wernieman

  • Hero Member
  • *****
  • Beiträge: 4144
Antw:LIRC /IREXEC zickt
« Antwort #57 am: 18 Januar 2018, 08:07:03 »
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

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

Offline Hans Preuth

  • New Member
  • *
  • Beiträge: 40
Antw:LIRC /IREXEC zickt
« Antwort #58 am: 18 Januar 2018, 19:45:41 »
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 ...

Offline Wernieman

  • Hero Member
  • *****
  • Beiträge: 4144
Antw:LIRC /IREXEC zickt
« Antwort #59 am: 19 Januar 2018, 09:17:10 »
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

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

 

decade-submarginal