smoothhands Inserita: 29 gennaio 2016 Segnala Inserita: 29 gennaio 2016 Per l'item di tipo String... String pippo "bla bla bla [%s] bla" {...} nella sitemap dovrebbe andare questo... Text item=pippo label="[%s]"'
omar1971 Inserita: 29 gennaio 2016 Autore Segnala Inserita: 29 gennaio 2016 Ciao, buongiorno... questa mattina avviato il tutto per controllare i dati del fotovoltaico ma brutta notizia, il campo rendimento giornaliero appare - KWh, anzichè 178 Wh..... l'unità di misura la modifico ..
smoothhands Inserita: 29 gennaio 2016 Segnala Inserita: 29 gennaio 2016 Giustamente di giorno il rendimento non è nullo e quindi potrebbe cambiare anche l'unità di misura (da Wh a kWh). Quindi la regola che abbiamo usato ieri sera non va più bene perchè è adatta a valori senza virgola. Tra l'altro immagino che si riproponga il problema degli altri due valori che sono espressi come 1,87 anzichè 1.87. Ti tocca risolvere ricavando l'espressione come stringa di testo. Poi magari un modo per convertire la stringa in numero si rimedia con le rules.
omar1971 Inserita: 30 gennaio 2016 Autore Segnala Inserita: 30 gennaio 2016 ciao, scusa ti faccio una domanda: leggendo la documentazione della comparazione indirizzo modulo/word.. non mi torna qualcosa.. Abbiamo compilato il file config per la sonda di temperatura nel seguente modo: #TEMPERATURA ESTERNA ID28 modbus:serial.I28.connection=COM2:19200:8:none:1:rtu modbus:serial.I28.id=1 modbus:serial.I28.start=28 modbus:serial.I28.length=1 modbus:serial.I28.type=holding quindi la scheda con ID28 risponde correttamente sulla word 28 (ciò è discordante da quanto spiega la documentazione di un videoterminale Profaces serie GP che dovrebbe essere word 29 -- Operazioni su bit Le operazioni a livello di bit sono quelle di comando dei punti di uscita e di lettura dei punti di ingresso (reali e/o virtuali). Queste operazioni vengono effettuate quando si posizionano sul videoterminale simboli tipo led e tasti. L’indirizzo del bit su cui operare è così composto: iORmmmmmbbdove: i è l'indirizzo assegnato alla DFTS OR indica un'operazione su Word (attenzione: il primo carattere è la lettera O maiuscola e non il numero zero)mmmmm equivale all’indirizzo (in decimale) della Word sulla quale si vuole operare incrementato di 1 bb è il bit sul quale si vuole operare (compreso tra 0 e 15); in pratica il punto di ingresso/uscita decrementato di 1 Per quanto riguarda l'elenco ed il significato delle Word dell'interfaccia DFTS, fare riferimento alla mappatura RAM riportata in questa stessa nota applicativa. Nota: nel caso in cui il videoterminale sia collegato ad una sola DFTS di indirizzo 1, la parte iniziale iOR può essere sostituita dal numero 4. Il numero di zeri prima dell’indirizzo della word vengono aggiunti automaticamente dal programma di supporto del videoterminale. Esempio 1: per comandare il punto 3 del modulo di uscita 2 mediante un tasto sul videoterminale, ed avendo assegnato all’interfaccia DFTS l’indirizzo 1, si deve specificare il seguente indirizzo: 1OR0025902
omar1971 Inserita: 1 febbraio 2016 Autore Segnala Inserita: 1 febbraio 2016 Ciao .. ho avuto risposta dalla Duemmegi: per ingressi utilizzare la funzione 03 per le uscite la funzione 16 (ma questa non la trovo nel binding modbus rtu
smoothhands Inserita: 1 febbraio 2016 Segnala Inserita: 1 febbraio 2016 Ciao omar1971. No, dal wiki del binding non risulta ancora implementato. Le soluzioni che mi vengono in mente a questo punto ricadono tutte sul mettere mano al codice: modificare il binding già pronto oppure realizzarne uno ex novo dedicato al tuo sistema. Entrambe non mi sembrano praticabili nel breve periodo. Mi spiace.
omar1971 Inserita: 1 febbraio 2016 Autore Segnala Inserita: 1 febbraio 2016 Noooooooo... ora sono proprio nella cacca.... ora che avevo capito qualcosa..... che sfiga........ grazie comunque.... per tutto il tuo prezioso aiuto.. e se nel caso ti venisse un idea... avvisami....
smoothhands Inserita: 2 febbraio 2016 Segnala Inserita: 2 febbraio 2016 Sono andato a spulciare i sorgenti del binding. Questo è la parte di openhab.cfg riferito al modbus: ############################### Modbus Binding ######################################## # # sets refresh interval to Modbus polling service. # Value in milliseconds (optional, defaults to 200) #modbus:poll= # connection (mandatory) #modbus:serial:slave1.connection= # The data type, can be "coil" "discrete" "holding" "input" #modbus:serial:slave1.type= # The slave id (optional, defaults to '1') #modbus:serial:slave1.id= # The slave start address (optional, defaults to '0') #modbus:serial:slave1.start= # The number of data item to read # (optional, defaults to '0' - but set it to something meaningful) #modbus:serial:slave1.length= # Value type, required for combined registers (details: http://www.simplymodbus.ca/FAQ.htm#Types) # Can be "bit", "int8", "uint8", "int16", "uint16", "int32", "uint32", "float32" # (optional, defaults to 'uint16') #modbus:serial:slave1.valuetype= Tra tutti i parametri ce n'è uno non documentato. # Use write function 16 (optional, defaults to false) #modbus:writemultipleregisters=true Il commento l'ho aggiunto io. In pratica dovresti usare type=holding e length=1. In lettura usa la funzione 3 mentre in scrittura con il nuovo parametro la funzione 16. Questa funzionalità non è stata aggiunta perchè "pare" non riesca a scrivere effettivamente più registri. Quindi a prescindere utilizzala sempre con un solo registro (da uint16, che poi è quello di default). Fai un tentativo. Può essere che funzioni
omar1971 Inserita: 2 febbraio 2016 Autore Segnala Inserita: 2 febbraio 2016 quindi nel cfg dovrei trovare: modbus:writemultipleregisters=true e lo commento (#) oppure trovo modbus:writemultipleregisters=false e devo impostare il valore a "true" ? Grazie... se riesco questa sera ci provo...
smoothhands Inserita: 2 febbraio 2016 Segnala Inserita: 2 febbraio 2016 no... non lo trovi nel file cfg. Lo devi aggiungere tu nella sezione modbus subito sotto a #modbus:poll= e devi impostarlo a true.
omar1971 Inserita: 2 febbraio 2016 Autore Segnala Inserita: 2 febbraio 2016 ciao .. in pausa pranzo ho provato velocemente.. senza esito positivo... poi ho pensato che avrei dovuto modificare anche modbus:serial:slave1.valuetype=bit in modbus:serial:slave1.valuetype=uint16 delle word di riferimento delle schede di uscita .. riproverò stasera ...
smoothhands Inserita: 2 febbraio 2016 Segnala Inserita: 2 febbraio 2016 Quote modificare anche modbus:serial:slave1.valuetype=bit in modbus:serial:slave1.valuetype=uint16 visto che per default il valuetype è uint16 io proverei a commentare il parametro. Quindi... #modbus:serial:slave1.valuetype=uint16 Se ricordo bene quando abbiamo provato assieme, una delle scorse sere, non è servito specificare che il valuetype fosse di tipo coil o bit. Era poi il tipo di Items e il binding tra le {...} che determinava come interpretare il registro da 16 bit restituito. Nel caso di Switch Item il registro veniva utilizzato bit per bit. Nel caso di Number Item il registro veniva preso interamente come valore.
omar1971 Inserita: 2 febbraio 2016 Autore Segnala Inserita: 2 febbraio 2016 Ciao .. penso proprio che il tuo ragionamento sia corretto.. proverò speriamo in un esito positivo... Grazie nuovamente per l'impegno
omar1971 Inserita: 2 febbraio 2016 Autore Segnala Inserita: 2 febbraio 2016 Ciao ... sconsolato ti devo deludere... non funziona modbus:writemultipleregisters=true #MODULO USCITE ID61 modbus:serial.O61.connection=COM2:19200:8:none:1:rtu modbus:serial.O61.id=1 modbus:serial.O61.start=317 modbus:serial.O61.length=1 modbus:serial.O61.type=holding modbus:serial.O61.valuetype=uint16 avvio il tutto e le uscite non comandano nulla. mettendo: modbus:serial.O61.valuetype=bit visualizzo lo stato delle uscite mi spiace...
smoothhands Inserita: 2 febbraio 2016 Segnala Inserita: 2 febbraio 2016 se togli valuetype=bit non riesci a vedere lo stato delle uscite? Mi ricopi anche le definizioni degli items per le uscite? e anche la parte di sitemap... sempre per le uscite?
omar1971 Inserita: 2 febbraio 2016 Autore Segnala Inserita: 2 febbraio 2016 Items /* COMANDO USCITE */ Switch Comando_Uscita1 "Comando Uscita 1" <switch> (Prove) { modbus="O61:0" } Switch Comando_Uscita2 "Comando Uscita 2" <switch> (Prove) { modbus="O61:1" } Switch Comando_Uscita3 "Comando Uscita 3" <switch> (Prove) { modbus="O61:2" } Switch Comando_Uscita4 "Comando Uscita 4" <switch> (Prove) { modbus="O61:3" } Sitemap Nella sitemap non ho label dedicato alle uscite ma gli Item di uscita fanno parte del gruppo Prove sitemap duemmegi label="La mia sitemap" { Frame { Group item=gFF label="Primo Piano" icon="firstfloor" Group item=gGF label="Piano Rialzato" icon="groundfloor" Group item=gC label="Piano Terra" icon="cellar" Group item=Outdoor label="Giardino" icon="garden" Group item=Prove label="Prove" icon="keyring" Group item=Statobus label="Stato Impianto BUS" icon="keyring" Group item=dfcc label="Controllo carichi" icon="keyring" } Vorrei inoltrarti la documentazione che mi ha inviato per mail la DUEMMEGI ma supera la dimensione accettata, dovrei inviarti una mail
cesenac Inserita: 22 novembre 2019 Segnala Inserita: 22 novembre 2019 Ciao a tutti, mi riallaccio a questo vecchio post per sapere se nel frattempo è nato qualcosa di standard per parlare con duemmegi o se bisogna ancora partire da zero con modbus RTU Grazie! Christian
Messaggi consigliati
Crea un account o accedi per commentare
Devi essere un utente per poter lasciare un commento
Crea un account
Registrati per un nuovo account nella nostra comunità. è facile!
Registra un nuovo accountAccedi
Hai già un account? Accedi qui.
Accedi ora