Guida Rapida
Il modo migliore per scoprire Iottly è attraverso il Getting Started project, precaricato in ogni nuovo account. Include un Elastic Pi — un device virtuale già connesso alla piattaforma — così puoi esplorare tutte le funzionalità senza nessun hardware fisico.
La demo simula uno scenario semplice: un Elastic Pi è virtualmente connesso a sensori di temperatura e umidità e ne legge periodicamente i valori.
Passo 1 — Verifica l’Elastic Pi nel pannello Device Configuration
Apri il pannello Device Configuration. Dovresti vedere il tuo Elastic Pi in stato connected.

Ogni device registrato in Iottly riceve un Unique ID (usato come username MQTT per l’autenticazione) e il suo indirizzo MAC viene registrato per permettere la ri-registrazione dopo un reset in fabbrica.
Passo 2 — Esplora i Management Scripts
Apri il pannello Management Scripts. Qui vive il codice Python che gira sul device.

Il codice è diviso in due sezioni:
Sezione global — helper e variabili
def read_data_from_sensor(sensortype):
"""simula la lettura di un sensore generando valori casuali"""
if sensortype == "temperature":
# genera casualmente un valore di temperatura
return round_reading(random.uniform(30, 50))
elif sensortype == "humidity":
# genera casualmente un valore di umidità
return round_reading(random.uniform(20, 80))
Questa funzione simula le letture dei sensori generando valori casuali. In un deployment reale leggerebbe da hardware vero (GPIO, I2C, seriale, ecc.).
Sezione loop — il loop principale del device
def loop():
"""il loop principale del device, in esecuzione su un processo dedicato"""
# campiona temperatura e umidità ogni 5 secondi,
# salvando i valori in variabili globali (definite nella sezione global)
temp_value.value = read_data_from_sensor("temperature")
hum_value.value = read_data_from_sensor("humidity")
time.sleep(5)
La funzione loop gira in continuo in un processo dedicato. Qui campiona entrambi i sensori ogni 5 secondi e salva le letture in variabili globali condivise.
Passo 3 — Invia un comando remoto
Apri il pannello Messages. Un comando chiamato read_sensor_data è già definito:

{"read_sensor_data": {"sensortype": "<temperature|humidity|both>"}}
read_sensor_dataè il tipo di messaggio — identifica cosa fa il comando.sensortypeè una keyword che accetta tre valori:temperature,humidity, oboth.
Iottly ha generato automaticamente la funzione handler per questo comando:
def read_sensor_data(command):
"""
Gestisce il comando read_sensor_data.
Formato: {"read_sensor_data": {"sensortype": "<temperature|humidity|both>"}}
"""
cmdpars = command["read_sensor_data"]
if cmdpars["sensortype"] == "temperature":
sensor_data_reading = {"temperature": temp_value.value}
elif cmdpars["sensortype"] == "humidity":
sensor_data_reading = {"humidity": hum_value.value}
elif cmdpars["sensortype"] == "both":
sensor_data_reading = {
"temperature": temp_value.value,
"humidity": hum_value.value,
}
message = {"sensor_data_reading": sensor_data_reading}
send_msg(message) # invia la risposta via MQTT
Passo 4 — Testa dalla Console
Apri il pannello Console. Poiché il messaggio read_sensor_data è stato definito nel pannello Messages, Iottly ha già creato un pulsante di comando interattivo.

Clicca read_sensor_data e scegli un sensortype. Dovresti vedere la risposta apparire nel pannello Logs — i messaggi più recenti sono in fondo.
Prova tu stesso: aggiungi un allarme di temperatura
Incolla questo snippet nella funzione loop, appena prima di time.sleep:
if temp_value.value > 48:
alarm = {"description": "temperatura troppo alta", "temp_value": temp_value.value}
message = {"ALARM": alarm}
send_msg(message)
Poi clicca Flash over-the-air per distribuire il nuovo codice all’Elastic Pi. Dopo il riavvio dell’agent vedrai i messaggi di allarme nel pannello Console ogni volta che la temperatura generata casualmente supera 48°.
Rendi la soglia configurabile da remoto
Vuoi cambiare la soglia di allarme senza ridistribuire il codice? Puoi farlo interamente da remoto:
-
Crea un nuovo comando nel pannello Messages, es.
set_alarm_threshold
-
Aggiungi una variabile globale per la soglia nella sezione
global:Threshold = multiprocessing.Value('d', 45.0) -
Riempi l’handler generato
set_alarm_thresholdcon:limit = cmdpars["threshold"] Threshold.value = float(limit) change = {"new_threshold_value": Threshold.value} send_msg(change) -
Aggiorna il loop per usare la variabile al posto del valore hardcoded:
if temp_value.value > Threshold.value: -
Flash over-the-air e testa dalla Console.
Prossimi passi
- Configurazione — installa l’agent su un device fisico
- Panoramica API — integra Iottly nel tuo backend
- Tutorial completi su iottly.github.io ↗