[vz-users] NetIO -> Apache2 error 400
dl4huf
dl4huf at t-online.de
Tue Jul 4 16:08:34 CEST 2017
Hallo und Danke für die Antworten.
Ja, mit wget schicke ich einen leeren POST. Das scheint aber ok zu sein.
Die Aufrufe vom NetIO sind genauso. Auch bei den S0-Impulsen.
Mich wundert ja nur, das es vor dem Update lief.
Ich habe also nur die System-Updates (apt-get update && apt-get
dist-upgrade) laufen lassen.
Und das es auf 2 verschiedenen Apache-Versionen auftritt.
Ein Update des Volkszähler habe ich mit Absicht nicht gemacht, da sich
dann für die Ansicht die URL (/frontend fällt ja weg) ändert.
Das wird aber noch von anderen Scripten verwendet um z.B. Werte in die
Homeatic zu bringen.
Hier noch mal ein tcpdump. Zuerst kommt ein S0-Inpuls, der wird
geschrieben. Und der Temperaturwert eben nicht.
Was mir auffällt: beim fehlerhaften Aufruf fehlt der Header
"Content-Length". Mehr sehe ich nicht.
14:54:16.647542 IP 192.168.30.120.18360 > 192.168.30.100.80: Flags [P.],
seq 1:147, ack 1, win 1446, length 146: HTTP: POST
/middleware.php/data/aa974baa-6b49-53e7-ab74-3e694817954a.json?ts=1499172852000&value=1
HTTP/1.1
E....L.. at .$....x...dG..P...|-..bP.......POST
/middleware.php/data/aa974baa-6b49-53e7-ab74-3e694817954a.json?ts=1499172852000&value=1
HTTP/1.1
Host: alix.fritz.box
*Content-Length: 0*
14:54:16.647864 IP 192.168.30.100.80 > 192.168.30.120.18360: Flags [.],
ack 147, win 15544, length 0
14:54:17.626917 IP 192.168.30.120.18361 > 192.168.30.100.80: Flags [P.],
seq 1:130, ack 1, win 1446, length 129: HTTP: POST
/middleware.php/data/12345678-262a-ac49-2932-03674ba180b7.json?ts=1499172857000&value=37.4
HTTP/1.1
E....R.. at .$....x...dG..P....&yR.P.......POST
/middleware.php/data/12345678-262a-ac49-2932-03674ba180b7.json?ts=1499172857000&value=37.4
HTTP/1.1
Host: alix.fritz.box
14:54:17.627244 IP 192.168.30.100.80 > 192.168.30.120.18361: Flags [.],
ack 130, win 15544, length 0
Mit etwas googeln habe ich nun diesen Absatz gefunden :
RFC2616 Section 4
For compatibility with HTTP/1.0 applications, HTTP/1.1 requests
containing a message-body MUST include a valid Content-Length header
field unless
the server is known to be HTTP/1.1 compliant. If a request contains a
message-body and a Content-Length is not given,
the server SHOULD respond with 400 (bad request) if it cannot determine
the length of the message,
or with 411 (length required) if it wishes to insist on receiving a
valid Content-Length.
Bleibt nur die Frage ob man an dem Apache noch was drehen kann weil es
ja mal ging.
Ev. ist es nur eine Einstellung.
Mit mod_header (würde eh nur auf dem Apache 2.4 gehen) habe ich
gespielt, es aber noch nicht hin bekommen.
Also Workaround habe ich mir nun ein Script geschrieben, das per cron
die Werte abholt und in die DB schreibt.
#/bin/bash
SERVER="http://ubserv.fritz.box"
NETIO"="192.168.30.120"
ID3="65559f5e-262a-ac49-2932-03674ba180b7"
T3=$(echo "1w get Keller" | nc -q 1 $NETIO 2701)
wget -q --post-data="" $SERVER/middleware.php/data/$ID3.json?value=$T3
-O /dev/null
Gruß Ronald
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://demo.volkszaehler.org/pipermail/volkszaehler-users/attachments/20170704/2d3db37f/attachment.html>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: dl4huf.vcf
Type: text/x-vcard
Size: 4 bytes
Desc: not available
URL: <http://demo.volkszaehler.org/pipermail/volkszaehler-users/attachments/20170704/2d3db37f/attachment.vcf>
More information about the volkszaehler-users
mailing list