Esiste esempio (sketch) Cosm --> Arduino ?

Ciao a tutti,
al momento utilizzo un emontx che invia dati su COSM (utilizzando un NANODERF).
Tutto funziona alla perfezione al momento.

Adesso vorrei rigirare questi dati che COSM riceve, sul mio Arduino Mega.

Esistono esempi in merito ? Googlando, trovo solo esempi per inviare dati a COSM.

Io vorrei il contrario.

Saluti
Remo

Non ho mai visto ciò che chiedi in rete, non ti convereebbe salvare tutto in un db, inviarli al tuo mega ed a cosm tramite due separati script in php/asp o similari ?

purtroppo nn so programmare ne php ne Asp.
Ho qualche nozione in c non di più.

Saluti
Remo

Ciao,
devi partire dalle api di cosm (se non proprio dal link che allego, da qualcosa di simile):
https://cosm.com/docs/v2/feed/show.html
Trovi svariati esempi sia per l'interpertazione di xml, che di json.
Senza parlare di csv, che di fatto è testo semplice senza markup particolari.

Io di Api conosco solo questa...

PaoloP:
Io di Api conosco solo questa...

lol XD

Io di Api conosco solo questa...

XD
attento perchè quella può anche pungere, quelle di cosm no

Ciao a tutti, grazie delle risposte.
Cosm ha messo a disposizione un nuovo sketch (data gennaio 2013), il quale ti permette di inviare un valore su Cosm, e allo stesso tempo rileggerlo, sempre con il medesimo sketch.
E un punto di partenza, ho provato a smanettarci sopra ieri eliminando la parte di post, utilizzando solo la parte Get , purtroppo ricevo sempre l'errore -403.
Posto qui sotto il Codice originale messo a disposizione da Cosm. Se qualcuno ha qualche idea.
P.S. il valore = 2777 l'ho messo io per testarlo.
Grazie
R.

/**

  • Cosm Arduino sensor client example.
  • This sketch demonstrates connecting an Arduino to Cosm (https://cosm.com),
  • using the new Arduino library to send and receive data.
  • Requirements
    • Arduino with Ethernet shield or Arduino Ethernet (board must use the
  • Wiznet Ethernet chipset)
    • Arduino software with version >= 1.0
  • Optional
    • An analog sensor connected to pin 2 (note we can still read a value from
  • the pin without this)
  • Created 8th January, 2013 using code written by Adrian McEwen with
  • modifications by Sam Mulube
  • Full tutorial available here: https://cosm.com/docs/quickstart/arduino.html
  • This code is in the public domain.
    */

#include <SPI.h>
#include <Ethernet.h>
#include <HttpClient.h>
#include <Cosm.h>

#define API_KEY "xxxxxxxxxxx" // your Cosm API key
#define FEED_ID xxxxxxx // your Cosm feed ID

// MAC address for your Ethernet shield
byte mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED };

// Analog pin which we're monitoring (0 and 1 are used by the Ethernet shield)
int sensorPin = 2;

unsigned long lastConnectionTime = 0; // last time we connected to Cosm
const unsigned long connectionInterval = 15000; // delay between connecting to Cosm in milliseconds

// Initialize the Cosm library

// Define the string for our datastream ID
char sensorId[] = "sensor_reading";

CosmDatastream datastreams[] = {
CosmDatastream(sensorId, strlen(sensorId), DATASTREAM_FLOAT),
};

// Wrap the datastream into a feed
CosmFeed feed(FEED_ID, datastreams, 1 /* number of datastreams */);

EthernetClient client;
CosmClient cosmclient(client);

void setup() {
// put your setup code here, to run once:
Serial.begin(9600);

Serial.println("Cosm Sensor Client Example");
Serial.println("==========================");

Serial.println("Initializing network");
while (Ethernet.begin(mac) != 1) {
Serial.println("Error getting IP address via DHCP, trying again...");
delay(15000);
}

Serial.println("Network initialized");
Serial.println();
}

void loop() {
// main program loop
if (millis() - lastConnectionTime > connectionInterval) {
// read a value from the pin
int sensorValue = 2777.25;
// send it to Cosm
sendData(sensorValue);
// read the datastream back from Cosm
getData();
// update connection time so we wait before connecting again
lastConnectionTime = millis();
}
}

// send the supplied value to Cosm, printing some debug information as we go
void sendData(int sensorValue) {
datastreams[0].setFloat(sensorValue);

Serial.print("Read sensor value ");
Serial.println(datastreams[0].getFloat());

Serial.println("Uploading to Cosm");
int ret = cosmclient.put(feed, API_KEY);
Serial.print("PUT return code: ");
Serial.println(ret);

Serial.println();
}

// get the value of the datastream from Cosm, printing out the value we received
void getData() {
Serial.println("Reading data from Cosm");

int ret = cosmclient.get(feed, API_KEY);
Serial.print("GET return code: ");
Serial.println(ret);

if (ret > 0) {
Serial.print("Datastream is: ");
Serial.println(feed[0]);

Serial.print("Sensor value is: ");
Serial.println(feed[0].getFloat());
}

Serial.println();
}

remino:
Ciao a tutti,
al momento utilizzo un emontx che invia dati su COSM (utilizzando un NANODERF).
Tutto funziona alla perfezione al momento.

Scusa... il Tuo Topic mi ha fatto venire la curiosità di sapere cosa è COSM. Ho dato una sbirciata al sito web ufficiale, ma non ci ho capito molto, visto che è tutto in inglese.

Potresti, cortesemente, spiegarmi tu cosa è?

COSM è un sito/server su cui puoi inviare i tuoi dati (quasi in realtime).
COSM provvederà a generare un grafico e a tenere una tracciabilità dei tuoi dati.
In allegato uno screenshot del mio.

Saluti
R.

@remino
se i dati che vuoi monitorare principalmente son legati ai consumi, prova a dare un 'occhiata a OpenEnergyMonitor:
www.openenergymonitor.org

Il funzionamento è molto simile a Cosm, la cosa interessante è che esiste anche una versione non cloud che puoi installarti su tuo server (fisico o vps che sia).
Puoi farti un'idea di OpenEnergyMonitor, dando un'occhiata al tutorial base che trovi sul playground:
http://bit.ly/aplgtmns

Ciao Pitusso,
Da Ottobre mando dati su Emoncms utilizzando sia il mio Server Locale che quello messo a disposizione da Emoncms stesso.

Il mio Intento, sarebbe quello di poter convogliare tutti i dati presenti su COSM , su un mio terzo Arduino, da li gestirli ed implementarli con altri dati già presenti in casa (controllo elettrodomestici luci ecc....).

Al momento la via piu facile è quella di COSM che ha Sketch che fanno questo (ma appunto con errori o sono io che non ci riesco), Emoncms invece ha bisogno di uno script PHP (cosa che io purtroppo non so programmare/modificare)

Risultato finale sarebbe quello di poter monitorare il tutto su un tablet, visibile a tutti i componenti della famiglia.
Il mio progetto è composto da :
1x Emontx che legge 3 sensori di corrente e li invia utilizzando un RF.
2x NanodeRF che ricevono i dati da Emontx e li inviano , uno su Emoncms l'altro su Cosm.
1X Arduino Mega che gestisce Temperatura,distanza,vibrazioni,e luminosita.(E altro che sto studiando)

Saluti
Remo

Ciao

Al momento la via piu facile è quella di COSM che ha Sketch che fanno questo (ma appunto con errori o sono io che non ci riesco), Emoncms invece ha bisogno di uno script PHP (cosa che io purtroppo non so programmare/modificare)

questo non è vero, su emoncms è possibile anche recuperare i dati dei vari feed (e se consideri che ogni feed può essere il risultato di uno o più input...).

Per esempio, valore testuale (no json o xml) di un feed:
/feed/value.json?apikey=<api_key>&id=<feed_id>
valore json di tutti i feed
/feed/list.json&apikey=<api_key>

poi ovviamente vedi tu cosa preferisci fare