soluzione, magari non proprio pulitissima...
dichiarazioni iniziali:
#include <HttpClient.h>
#include <Cosm.h>
#include <Ethernet.h>
#include <SPI.h>
#include <OneWire.h>
#include <DallasTemperature.h>
#include <EEPROM.h>
#include "EEPROMAnything.h"
#include <Flash.h>
// arrays to hold device addresses 28126A080300007F
DeviceAddress bufAddr; //<---
FLASH_TABLE(uint8_t, FbufAddr, 8, { 0x28,0x12,0x6A,0x08,0x03,0x00,0x00,0x7F }, //<---
{ 0x28,0x12,0x6A,0x08,0x03,0x00,0x00,0x7F },
{ 0x28,0x12,0x6A,0x08,0x03,0x00,0x00,0x7F },
{ 0x28,0x12,0x6A,0x08,0x03,0x00,0x00,0x7F },
{ 0x28,0x12,0x6A,0x08,0x03,0x00,0x00,0x7F },
{ 0x28,0x12,0x6A,0x08,0x03,0x00,0x00,0x7F },
{ 0x28,0x12,0x6A,0x08,0x03,0x00,0x00,0x7F },
{ 0x28,0x12,0x6A,0x08,0x03,0x00,0x00,0x7F },
{ 0x28,0x12,0x6A,0x08,0x03,0x00,0x00,0x7F },
{ 0x28,0x12,0x6A,0x08,0x03,0x00,0x00,0x7F },
{ 0x28,0x12,0x6A,0x08,0x03,0x00,0x00,0x7F },
{ 0x28,0x12,0x6A,0x08,0x03,0x00,0x00,0x7F });
// Define the strings for our datastream IDs
CosmDatastream datastreams_meas[] = {
CosmDatastream("0", strlen("0"), DATASTREAM_FLOAT),
CosmDatastream("1", strlen("1"), DATASTREAM_FLOAT),
CosmDatastream("2", strlen("2"), DATASTREAM_FLOAT),
CosmDatastream("3", strlen("3"), DATASTREAM_FLOAT),
CosmDatastream("4", strlen("4"), DATASTREAM_FLOAT),
CosmDatastream("5", strlen("5"), DATASTREAM_FLOAT),
CosmDatastream("6", strlen("6"), DATASTREAM_FLOAT),
CosmDatastream("7", strlen("7"), DATASTREAM_FLOAT),
CosmDatastream("8", strlen("8"), DATASTREAM_FLOAT),
CosmDatastream("9", strlen("9"), DATASTREAM_FLOAT),
CosmDatastream("10", strlen("10"), DATASTREAM_FLOAT),
CosmDatastream("11", strlen("11"), DATASTREAM_FLOAT),
};
effettuo il setup delle sonde e recupero gli indirizzi da FbufAddr, che ho scoperto essere semplicemente un array bidimensionale

void Setup_DS18x20(void)
{
// Start up the library
sensors.begin();
// set the resolution to N bit
for (int t=0; t<12; ++t){ //<---
for (uint8_t i = 0; i < 8; i++){ //<---
bufAddr[i] = FbufAddr[t][i]; //<---
}
sensors.setResolution(bufAddr, TEMPERATURE_PRECISION); //<---
}
}
di conseguenza aggiorno i datastream con i dati provenienti dalle sonde 1wire
void COSM_DataOut() {
//free(bufAddr);
Serial.println("+++++++++++++++++++++++++++++++++++++++++++++++++");
for (int t=0; t<12; ++t){ //<---
for (uint8_t i = 0; i < 8; i++){ //<---
bufAddr[i] = FbufAddr[t][i]; //<---
}
datastreams_meas[t].setFloat(ReadDS18x20(bufAddr)); // <---
switch (t){
case 0:
T_Pozzo1 = ReadDS18x20(bufAddr);
// statements
break;
case 1:
T_Pozzo2 = ReadDS18x20(bufAddr);
// statements
break;
default:
// statements
break;
}
//Serial.print("index: ");
//Serial.println(i, DEC);
printData(bufAddr);
}
datastreams_state[0].setInt(my_status.ST_RL_vlv3vie);
datastreams_state[1].setInt(my_status.ST_sel_estate_inverno);
Serial.println("Uploading meas it to Cosm");
int ret = cosmclient.put(feed_meas, cosmKey);
Serial.print("cosmclient.put returned ");
Serial.println(ret);
delay(5000);
Serial.println("Uploading states it to Cosm");
ret = cosmclient.put(feed_state, cosmKey);
Serial.print("cosmclient.put returned ");
Serial.println(ret);
delay(5000);
}
il tutto funziona correttamente

ecco il link:
http://ctfbarzon.altervista.org/saluti
kattivik76