[vz-dev] Sensor Kanal
Justin Otherguy
justin at justinotherguy.org
Mon May 16 00:36:56 CEST 2011
Moin,
Am 12.05.2011 um 10:38 schrieb Mario:
> ich habe ein arduino Board und habe es mit folgendem versucht
oh, arduino, schön. Die Doku für Dein Setup würde sich neben dem hier [1] ganz gut machen...
> ...
> byte server1[] = { 78,46,142,232};
> Client client1(server1, 80);
> char host[] = "http://volkszaehler.org"; // DOMAIN eingeben!
> char url[] = "
> http://volkszaehler.org/demo/middleware.php/data/e5ead180-74ed-11e0-ada4-15487dc1457a.json";
> ...
>
> ...
> void Daten_senden()
> {
> //Client client1(server1, 80);
> if (client1.connect()) // Verbindung zum Server aufbauen
> {
> Serial.print("Verbunden...sende Daten...");
> client1.print("POST ");
> client1.print(url);
> client1.print("?ts=");
> client1.print("1304553805427");
> client1.print("&value=");
> client1.print(wert);
> client1.println(" HTTP/1.1");
> client1.print("Host: ");
> client1.println(host);
> client1.println();
> Serial.println("fertig!");
> }
> else
> {
> Serial.println(" ***** VERBINDUNGSAUFBAU NICHT MÖGLICH *****");
> }
> ...
>
>
>
> Der Vebindungsaufbau scheint zu klappen. Die Rückmeldung ist positiv.
woraus schliesst Du das?
> Doch die Werte landen nicht an der richtigen Stelle.
was wäre aus Deiner Sicht die richtige Stelle?
Ich sehe Deine Requests mit dem HTTP-Statuscode 400 [2].
Wenn ich Deinen Request absetze:
$ curl -d "ts=1304553805427&value=10" http://volkszaehler.org/demo/middleware.php/data/e5ead180-74ed-11e0-ada4-15487dc1457a.json/
erhalte ich:
{"version":"0.2","exception":{"message":"SQLSTATE[23000]: Integrity constraint violation: 1062 Duplicate entry '632-1304553805447' for key 'chan_ts_idx'","type":"PDOException","code":"23000"}}
-> Duplicate entry. Den gibt's schon. Du reichst die ganzen Requests mit dem gleichen Timestamp ein.
2 Möglichkeiten:
a) Du benutzt einen echten Timestamp, dann passiert das:
$ curl -d "ts=1304553805447&value=10" http://volkszaehler.org/demo/middleware.php/data/e5ead180-74ed-11e0-ada4-15487dc1457a.json/
{"version":"0.2"}
-> alles gut!
b) Du lässt den Timestamp weg, dann nimmt der Server seinen aktuellen Timestamp:
$ curl -d "value=10" http://volkszaehler.org/demo/middleware.php/data/e5ead180-74ed-11e0-ada4-15487dc1457a.json/
{"version":"0.2"}
-> alles gut!
Gruss, J.
P.S.: abonnier' doch mal die Liste...
P.P.S.: wenn Du Deine Tests abgeschlossen hast, solltest Du Deine UUID wechseln; die in diesem Mailwechsel ist nun öffentlich.
[1] http://wiki.volkszaehler.org/hardware/controllers/avr_net-io
[2] http://de.wikipedia.org/wiki/HTTP_Status_Code#4XX_.E2.80.93_Client-Fehler
More information about the volkszaehler-dev
mailing list