FHEM Forum

FHEM => Sonstiges => Thema gestartet von: accessburn am 19 Dezember 2016, 18:50:10

Titel: Fritzfon Bild aufspielen
Beitrag von: accessburn am 19 Dezember 2016, 18:50:10
Es geht um folgendes: https://wiki.fhem.de/wiki/FRITZFON

Es funktioniert soweit alles, curl ist da und läuft, convert auch, das Bild wird generiert und versucht aufzuspielen.
Jedoch bricht er ab:
curl: (26) couldn't open file "612"

Idee was ich machen könnte? Via Fritzbox lässt sich das Bild übrigends ändern, nur als shell nicht.
Titel: Antw:Fritzfon Bild aufspielen
Beitrag von: Ralf W. am 19 Dezember 2016, 19:12:39
Hi,

versuche mal diese Variante:

#!/bin/sh

set -x

PHONEID=$2
PHONEBOOKID=255
PHONEBOOKTYPE=1
TMPFILE=$1
CURL=$(which curl)
avmfbip=${tempip:-fritz-7362sl}
avmfbuser=${tempuser:-""}
avmfbpwd=${temppwd:-"DEINKENNWORT"}
avmsidfile=${tempid:-/tmp/avmsid}


if [ ! -f $avmsidfile ]; then
        touch $avmsidfile
fi

avmsid=$(cat $avmsidfile)


login(){
# check if current login is valid, otherwise generate session id
result=$(curl -s "http://$avmfbip/login_sid.lua?sid=$avmsid" | grep -c "0000000000000000")

if [ $result -gt 0 ]; then
        echo "Login neccessary"
        challenge=$(curl -s http://$avmfbip/login_sid.lua |  grep -o "<Challenge>[a-z0-9]\{8\}" | cut -d'>' -f 2)
        hash=$(echo -n "$challenge-$avmfbpwd" |sed -e 's,.,&\n,g' | tr '\n' '\0' | md5sum | grep -o "[0-9a-z]\{32\}")
        curl -s "http://$avmfbip/login_sid.lua" -d "response=$challenge-$hash" -d 'username='${avmfbuser} \
        | grep -o "<SID>[a-z0-9]\{16\}" |  cut -d'>' -f 2 > $avmsidfile
fi
avmsid=$(cat $avmsidfile)
echo $avmsid

}

change(){
echo "CHANGE ${avmsid}"
$CURL -o /dev/null \
-F "sid=${avmsid}" \
-F "PhonebookId=$PHONEBOOKID" \
-F "PhonebookType=$PHONEBOOKTYPE" \
-F "PhonebookEntryId=$PHONEID" \
-F "PhonebookPictureFile=@$TMPFILE" \
${avmfbip}/cgi-bin/firmwarecfg
}

echo "login ...."
login
echo "change ...."
change


MfG
Titel: Antw:Fritzfon Bild aufspielen
Beitrag von: accessburn am 19 Dezember 2016, 19:42:14
Das klappt schon mal perfekt :-)
Vielen Dank für dein Script.

Daran knüpft gleich die nächste Frage: Auslesen der Daten aus fhem mit jsonlist2 und xhr oder gibts da was besseres?
Titel: Antw:Fritzfon Bild aufspielen
Beitrag von: Ralf W. am 19 Dezember 2016, 20:53:42
Habe dann auch sofort das Wiki geändert.

Zu Deiner Frage. Habe ich mir bei den paar Werten keine Gedanken gemacht. Das Vorlagebeispiel aus dem Wiki (unten) läuft seit fast zwei Jahren stabil. Es wird sich hier jemand finden, der mehr dazu sagen kann.

MfG


PS: Gehört das nicht besser in den Frittenbereich? Evtl. verschieben?
Titel: Antw:Fritzfon Bild aufspielen
Beitrag von: accessburn am 19 Dezember 2016, 20:58:04
Macht Sinn :-)

Wenn es bei dir jedoch Stabil läuft, was es aktuell hier auch tut, wie liest du die Daten aus FHEM aus?
Ich hatte es nun mit wget versucht und wollte es anschließend mit split zerlegt, jedoch wird bei der jsonlist2 das komplette html-Format mit ausgegeben, trotz XHR.
Titel: Antw:Fritzfon Bild aufspielen
Beitrag von: Ralf W. am 19 Dezember 2016, 21:00:36
Wikiseite, 1.10, Vorlage füllen

MfG
Titel: Antw:Fritzfon Bild aufspielen
Beitrag von: accessburn am 19 Dezember 2016, 21:25:10
Boar tut das weh ...

Tun wir einfach als wäre nichts geschehen ja? :D
Titel: Antw:Fritzfon Bild aufspielen
Beitrag von: visionsurfer am 20 Dezember 2016, 20:53:02
Hallo,

sagt mal, kann ich das eigentlich auch irgendwie "Missbrauchen" um ein Bild einer IPcam auf dem Fritzfon anzeigen zu lassen ?

Immer wenn bei mir jemand auf die Klingel drückt, wird sofort ein JPG Bild gespeichert. Das lasse ich mir auf das Handy pushen. Perfekt wäre, wenn ich es auch im Display vom Fritz Fon anzeigen lassen könnte.

Seht ihr eine Chance ?

Grüße,
Visionsurfer
Titel: Antw:Fritzfon Bild aufspielen
Beitrag von: accessburn am 20 Dezember 2016, 21:34:46
Wie du die Übergabe von Klingel zu Shellscript machen könntest wüsste ich jetzt nicht, aber zum Bild müsstest du nur das Verzeichnis auf ein neues Bild testen und das an das Script fritzfonpic.sh übergeben und vorher ggf. von der Größe anpassen.

Die Übergabe könntest du machen mit einem permanenten cronjob der auf ein neues Foto im Verzeichnis testet. Die Belastung wäre aber bestimmt die Hölle.