impostazione parametro dispositivo
  • 5 voti - 3 media
#1
Stò creando una piccola scena che faccia da collettore a tutte le chiamate alle sirene!
è più di un ora che cerco, senza esito,  di trovare il formato corretto per variare il parametro 37 della mia sirena aeotec modello zw080. 
Tale parametro imposta i dB (volume) ed il tipo di suono, lo stesso può assumere  23 valori da 1 a 1283 
I dati salienti sono:
Id sirena = 55
nome = sirena.1
Parametro da impostare = 37
valore da inserire = a seconda delle necessità, attualmente ho inserito 513 dal pannello 'Avanzate' del dispositivo.

eseguendo http://IP HC2/api/devices?=55 e cercando il valore 513 ho trovato:
.....  {"id":37,"lastReportedValue":513,"lastSetValue":513,"size":2,"value":513}, ......


help me please ... ;-)

grazie
Arturo
#2
a te quanti parametri ti interessa settare?
puoi fare un virtual device a pulsanti, ogni pulsante corrisponde ad una combinazione e ogni volta che lo clicchi lui ti cambia il parametro esempio:

l
Questo codice è solo per gli utenti registrati

il numero del device "55" lo inserisci nel campo tcp port e indirizzo ip lo lasci vuoto.
Ti crei tutti i pulsanti che ti servono, poi con una scena puoi far attivare quello che vuoi quando vuoi.
Fammi sapere se funziona
#3
ciao, nexus
grazie per la dritta, visto che il dispositivo è z-wave, speravo di poterlo impostare da una normale scena, senza dover creare un VD. Io mi sono bloccato sul fatto che oltre a dover indicare il deviceID (55) devo indicare anche il parametro (37), e non riuscivo a trovare un comando ad hoc.
  
Comunque visto il mio scopo, e la presenza di sirene con parametri difformi, l'una dall'altra, la creazione di un VD è la soluzione migliore, un tasto per ogni modello di sirena con all'interno le impostazioni espresse non in costanti ma in variabili lette da una Variabile Globale.

per farti capire al meglio in mio scopo allego sotto il codice della scena che fa da collettore per le chiamate alle sirene


Questo codice è solo per gli utenti registrati
 

ti aggiorno appena fatto .... se riesco ;-)
grazie ancora


se a qualcuno può far comodo ho creato delle scene 'collettori' anche per i messaggi vocali, tramite Audiocast M5 e per i messaggi push agli smartphone, sempre con variabili globali che passano le impostazioni e testi da leggere od inviare
Questo messaggio è stato modificato l'ultima volta il: 11-04-2017, 01:18 PM da Arturo.
#4
il codice che ti ho scritto è fatto per virtual device, non sono sicuro che funzioni in una scena, ho preso spunto dalla guida che avevo creato qui.
il metodo che usi tu va bene, pui inserire ad un certo punto la chiamata al pulsante  del vd che andrai a creare.
Intanto provalo, poi vediamo cosa si può fare.
#5
Sia inserendo la riga seguente con 
variabili :    local json = '{'id':'..deviceId..','properties':{'parameters':[{'id': IdParam,'size': SizeParam,'value': ValueParam}]}}';
che con costanti:     local json = '{"id":'..DeviceID..',"properties":{"parameters":[{"id": 37,"size": 2,"value": 513}]}}'

comunque, il debug del bottone,  mi genera il seguente errore:
[ERROR] 16:04:49: line …”]:29
29 è la riga dove si avvalora la variabile json, sopra copiata.
Il problema non è comunque da ricercare nella quadra chiusa in quanto ho volutamente sbagliato un'altra riga (local a == 1)  e nonostante non contenesse quadre mi ha dato lo stesso errore, cambiando il numero di riga.  
quindi deve qualcosa nella sintassi della riga ...

Ps:
ho notato che, nonostante abbia letto che per LUA il simbolo ' (apice) è uguale a  questo " (doppio apice) , cambiandolo, mi cambia anche il colore della stringa racchiusa ... !?!?
#6
Ho risolto la variante con le variabili, il deviceId lo vuole come variabile alfanumerica .... Angry  
ora ho altri problemini ... strani ....  da risolvere ... ma non mi manca molto ...
grazie
#7
Il giro dalla variazione della variabile globale all'attivazione della sirena funziona senza errori, ma purtroppo non mi aggiorna i parametri sul device sirena.
Ho provato a metterli come variabili numeriche, alfanumeriche,  ma niente! me li aggiorna solo se li metto come costanti numeriche
Eseguendo il debug, con le variabili,  mi ritorna correttamente   "parametro cambiato", quindi la funzione mi genera il codice ritorno 200 ... che devo supporre voglia significare "tutto ok" eppure non mi cambia il parametro.

riga NON OK!
--local json = '{"id":'..DeviceId..',"properties":{"parameters":[{"id": IdParametro,"size": SizeParam,"value": ValueParam}]}}';

riga OK!
local json = '{"id":'..DeviceId..',"properties":{"parameters":[{"id": 37,"size": 2,"value": 1025}]}}';


mediante fibaro:debug ho potuto appurare che IdParametro, SizeParam e ValueParam sono correttamente avvalorate numericamente.

Se non mi accetta le variabili, dovrei fare 15 pulsanti per ogni sirena, (5 suoni con 3 diversi Volumi)  ..... cosa che mi seccherebbe un pò ... non tanto per configurarli, ma per evitare codice ridondante!



idee ??
#8
la soluzione è stata talmente banale che quasi quasi mi vergogno a postare la soluzione  Sad  
in pratica, l'apice iniziale e finale raggruppa in una stringa carattere che avvalora json ................... non ho fatto altro che creare json accodando i vari tronconi, lasciando le variabili fuori dagli apici. 
ecco la stringa corretta:
local json = '{"id":'..DeviceId..',"properties":{"parameters":[{"id":' ..IdParam.. ',"size": ' ..SizeParam.. ',"value": ' ..ValueParam..'}]}}'


grazie per avermi aiutato a risolvere il problema!
Ciao
Arturo
#9
Quindi funziona tutto bene?

Inviato dal mio PLK-L01 utilizzando Tapatalk
#10
(13-04-2017, 05:02 PM)Nexus_77 Ha scritto: Quindi funziona tutto bene?

Inviato dal mio PLK-L01 utilizzando Tapatalk


Si, si, come detto sopra funziona a meraviglia tutto il giro, a partire dall'impostazione della variabile globale da parte delle varie scene, alla scena che fa da collettore, fino al VD della sirena. Non ho però potuto testare il funzionamento con più sirene, in quanto per ora ne ho una sola .. ;-)
Naturamente è senz'altro migliorabile, cosa che farò in caso di nuove idee balzane.... 

L'idea è quella di, una volta acquisiti i relativi dispositivi,  variare volume e tipo di suono a seconda degli eventi: 
allarme zona giorno, un suono, 
allarme zona notte, un altro, 
perdita d'acqua un altro, con volume al minimo 
fumo un altro sempre con volume al minimo
ecc ecc ....

Ora sto lottando  con un VD che dovrebbe attivarmi / disattivami gli infrarossi,motion detect e registrazione della ipcam... 

Grazie ancora per le dritte.
ciao
arturo


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