[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