Aggiustare il ritardo per l'irrigazione... non va piu
  • 7 voti - 3.14 media
#1
Gestisco l'irrigazione con Fibaro e per regolare un ritardo nell'irrigazione in funzione delle piogge, avevo trovato il seguente codice che lanciato da un VD imposta un ritardo del programma di 24 ore.
Da un mese però non funziona piu e mi da "attempt to call field 'decode' (a nil value)"

Questo codice è solo per gli utenti registrati

E' cambiato qualcosa nelle chiamate API?
Fibaro HC2 + HClite+ Satel Integra 32 + Nas Synology 415plus + Nabaztag V2
#2
prova ad eseguire il comando direttamente sulla barra degli indirizzi del tuo browser pre vedere cosa ottieni...

Questo codice è solo per gli utenti registrati

dovrebbe risponderti qualcosa del genere...

Questo codice è solo per gli utenti registrati

verifica poi che la struttura JSON sia rispondente alla tua decodifica e ricodifica dopo la variazione del valore
#3
Non conosco il sistema fibaro, ma mi verrebbe da dire che devi scrivere json.decode(HC2.response)

Dall'errore intuisco che il sistema trova un valore null per response.. Quindi non punta a quello che tu immagini

Lo strano è che prima funzionava..



Sent by Oneplus One - Power is nothing without control
Questo messaggio è stato modificato l'ultima volta il: 20-06-2016, 10:01 PM da ExTrEmE79.
#4
Il codice e' corretto
non ti torna la chiamata http... dovresti verificare:
a) se funziona da browser
b) cosa contiene status ed errorCode prima di usare response.
Baran
-MasterOfDisasters-
Fibaro HC2 | ProLiant Micro | Zentyal | Foscam IpCam | Rocki | Denon AVR-X2
#5
Allora la chiamata via brownser funziona e mi restituisce la seguente tabella:
Questo codice è solo per gli utenti registrati

Per me è arabo quindi se mi aiutate a decifrare vi ringrazio...
Il codice ha sempre funzionato ed è riportato su diversi siti come l'unico modo per gestire i ritardi di irrigazione nel caso di pioggia.
Ha smesso di funzionare con il passaggio alla 4.080 credo... come non funzionano piu altri comandi via API (vedi cambio variabili).
Non va nemmeno il suo "collega" che serve per regolare le percentuali di irrigazione nel caso di estrema siccità.

Questo codice è solo per gli utenti registrati

@Baran come posso vedere cosa contengono i valori da te menzionati?
Fibaro HC2 + HClite+ Satel Integra 32 + Nas Synology 415plus + Nabaztag V2
Questo messaggio è stato modificato l'ultima volta il: 21-06-2016, 06:17 AM da kead.
#6
Ho capito com fare il Debug di quanto chiesto da Baran.
HC2 mi restituisce i seguenti valori:

Debug Status: mi da 200
Debug errorCode: mi da 0
Debug response mi da il seguente codice:
Questo codice è solo per gli utenti registrati

Alla riga del comando "jsonTable.rainDelay = 24" ricevo:

Questo codice è solo per gli utenti registrati
Fibaro HC2 + HClite+ Satel Integra 32 + Nas Synology 415plus + Nabaztag V2
Questo messaggio è stato modificato l'ultima volta il: 21-06-2016, 06:29 AM da kead.
#7
prova:

Questo codice è solo per gli utenti registrati
Baran
-MasterOfDisasters-
Fibaro HC2 | ProLiant Micro | Zentyal | Foscam IpCam | Rocki | Denon AVR-X2
#8
@Baran ma cosa è cambiato? Dici rimuovendo solo la prima riga "HC2 = Net.FHttp("10.0.0.50",80)" ?
Ho provato ma cosi facendo mi da errore già alla prima riga alla creazione della variabile HC2 (a nil value)
Fibaro HC2 + HClite+ Satel Integra 32 + Nas Synology 415plus + Nabaztag V2
#9
no... scusa... quello lascialo... e' sparito nel copia e incolla...

cambia la parte finale:

Questo codice è solo per gli utenti registrati


ho rinominato la variabile a cui assegni il json da inviare una volta modificato
ora si chiama jsonBack.

prova... voglio capire se e' il precompilatore che si arrabbia.
Baran
-MasterOfDisasters-
Fibaro HC2 | ProLiant Micro | Zentyal | Foscam IpCam | Rocki | Denon AVR-X2
#10
Grande! Il problema del "nil value" si è risolto!!
Ora non mi restituisce errori ma c'è qualcosa che non va nell'assegnazione del valore.
Difatti ho aggiunto una riga di Debug del tipo:
Questo codice è solo per gli utenti registrati

Quando lancio il "jsonTable.rainDelay = 0" il rainDelay va correttamente a 0.
Se lancio altri valori (esempio 12 o 24 ore) il rainDelay va a valori altissimi e completamente sballati (tipo 8639). 
Allego lo screen per capire.

[Immagine: uSOfG8U.png]
Fibaro HC2 + HClite+ Satel Integra 32 + Nas Synology 415plus + Nabaztag V2
Questo messaggio è stato modificato l'ultima volta il: 21-06-2016, 10:23 AM da kead.


Utente(i) che stanno guardando questa discussione:
1 Ospite(i)