ich habe mehrere doif funktionen mit dem ich Shell scripte aufrufe.
Die Shell scripte laufen ein weile da hier schleifen enthalten sind um Serienbilder von den Kameras zu erzeugen.
define doif_FotoBewegEingang DOIF ([Bewegung_Eingang:"motion"] or [ESPEasy_TuerKlingel:"Tue"]) ("/opt/fhem/FHEM/kamerabild.sh &")
Jetzt hab ich nur das Problem das mir hierdurch massig LOG Einträge produziert werden.
verbose 0 und loglevel 0 hilft hier nicht. Wie unterdrücke ich das ganze ?
Versuch mit {qx(/opt/fhem/FHEM/kamerabild.sh&)}
sorgt für hänger des Systems, da hier auf rückantwort gewartet wird.
Jemand eine Idee ?
("/opt/fhem/FHEM/kamerabild.sh > /dev/null 2>&1")
Cooltux hatte irgendwo mal einen Codeschnippsel bereitgestellt, mit dem man Systemfunktionen nonBlocking aufrufen kann (mit Callback um das Ergebnis auszuwerten). Ich habe das für mich etwas generischer abgewandelt. Kann ich heute Abend mal raussuchen...
Wobei im vorliegenden Fall amenomades Vorschlag ausreichen sollte.
habe das mal mit dev null ausprobiert... theoretisch sollte das ja eigentlich funktionieren.... leider klappt das nicht.
Ich habe im Log trotzdem die Einträge drin.
Ich habe irgendwo mal gelesen das der "system" aufruf grundsätzlich reinschreibt
Zeig mal bitte die Loginträge. Was genau schreibt er denn da. Eigentlich sollte das Script mit dem & am Ende komplett von FHEM abgetrennt abgearbeitet werden. Man bekommst halt nur keine Rückantwort es sei denn das Script schreibt eine in FHEM.
bei dem Aufruf "Shell Befehl" gibt es irgendwie keine Pipe ... hab ich vor geraumer Zeit mal ausgiebig probiert ::)
ZitatJetzt hab ich nur das Problem das mir hierdurch massig LOG Einträge produziert werden.
Wenn Du die nicht willst, warum machst Du sie dann? Du hast ein Shell Script - drücke doch dort selbst jede stdout Ausgabe "in den Skat" ???
Außerdem kannst Du dir bei "Shellbefehl" das & am Ende sparen, das ist bei "Shellbefehl" quasi schon drin.
https://fhem.de/commandref_DE.html#command
@Marko Du irrst: Die stdout landet bei dem Aufruf " shellbefehl" im Logfile, egal wann sie kommt.
Gruß Otto
im Log steht:
2020-02-03 18:01:00 (4,66 MB/s) - auf die Standardausgabe geschrieben [/89]
--2020-02-03 18:01:00-- http://<IP-deleted>/tmpfs/snap_tmpfs/20200203/IMG001/IMG_chn0_TIMER_MNG_20200203180059_030.jpg
Verbindungsaufbau zu <IP-deleted> ... verbunden.
HTTP-Anforderung gesendet, auf Antwort wird gewartet ... 200 OK
L�nge: 80775 (79K) [image/jpeg]
Wird in �/mnt/video/eingang/fhem/2020-02-03_18.01.00.jpg� gespeichert.
0K .......... .......... .......... .......... .......... 63% 2,79M 0s
50K .......... .......... ........ 100% 6,86M=0,02s
2020-02-03 18:01:00 (3,56 MB/s) - �/mnt/video/eingang/fhem/2020-02-03_18.01.00.jpg� gespeichert [80775/80775]
--2020-02-03 18:01:02-- http://<IP-deleted>/cgi-bin/hi3510/snap.cgi?
Verbindungsaufbau zu <IP-deleted> ... verbunden.
HTTP-Anforderung gesendet, auf Antwort wird gewartet ... 200 OK
L�nge: nicht spezifiziert [text/html]
Wird in �STDOUT� gespeichert.
Wie sieht denn das Script aus?
z.B.
wget -q macht keine Ausgabe mehr :)
Danke Otto für den Hinweis. Das wusste ich in der Tat nicht.
Dann am besten die stdout Ausgaben unterdrücken wie bereits erwähnt.
z.b. so
#!/bin/sh
for i in 1 2 3 4 5 6 7 8 9 10
do
d=$(date +%Y-%m-%d_%H.%M.%S)
PIC=$(wget -O - 'http://192.168.1.11/cgi-bin/hi3510/snap.cgi?')
PIC=${PIC#*'"'}
PIC=${PIC%'"'*}
wget -O /mnt/video/eingang/fhem/$d.jpg 'http://192.168.1.11'$PIC
cp /mnt/video/eingang/fhem/$d.jpg /mnt/video/eingang/fhem/bild$i.jpg
convert /mnt/video/eingang/fhem/$d.jpg -resize 20% /mnt/video/eingang/fhem/bild_klein$i.jpg
sleep 1
done
im Prinzip kein Hexenwerk, ich hole Bilder aus der Kamera, speichere sie ab, verkleinere sie für eine Vorschau in fhem.
Wie schon gesagt
wget -qO bla bla
macht schon mal viel weg
cp machts nix
macht convert was?
Hinter die Zeilen die eine Ausgabe machen, setzt Du
> /dev/null 2>&1
Danke Otto
wget -qO das war es... cp und convert hatten keine Einträge im log erzeugt.
Prima, falls Dich das Thema noch weiter interessiert: Kannst Du hier meine Notizen (https://heinz-otto.blogspot.com/2018/02/in-fhem-externe-programme-aufrufen.html)bei Gelegenheit noch lesen.