Se sei già registrato           oppure    

Orario: 29/04/2024 01:06:36  

 

Energia Alternativa ed Energia Fai Da Te > Solare Fotovoltaico

VISUALIZZA L'ALBUM

Pagine: (6)   [1]   2   3   4   5   6    (Ultimo Msg)


Monitoraggio PIP4048 con Zabbix
FinePagina

ize
Watt


Gruppo:Utente
Messaggi:44

Stato:



Inviato il: 17/10/2015 10:25:53

Ciao a tutti
Volevo condividere con voi quanto ho sviluppato per tenere sotto controllo il mio 4848MS

Il software in dotazione con l'inverter WatchPower è terribile e dopo qualche settimana di utilizzo ho deciso di investire un po di tempo e integrare il monitoraggio dell'inverter in Zabbix.
Zabbix è un software OpenSource ideato per il monitoraggio dei data center e ne ho implementati parecchi nel corso degli anni, diciamo che non è pensato per monitorare gli inverter ma funziona egregiamente.

Colgo l'occasione per ringraziare tutti gli abitanti del forum che hanno partecipato al reverse engineering del protocollo di comunicazione seriale, il vostro lavoro mi ha risparmiato un sacco di tempo, grazie anche a chi ha implementato il CRC in Python.
Basandomi sul vostro lavoro ho scritto il Wrapper che permette di far comunicare Zabbix con il PIP4048.

Ho importato nel sistema tutti i valori utili e da quelli riesco a derivarne altri vedi foto.

http://www.energialternativa.info/public/newforum/ForumEA/G/Items.JPG



Il sistema permette di generare dei grafici on-demand di uno qualsiasi dei valori oppure di generare una schermata (screen) pre configurata con i grafici dei valori scelti, più valori possono essere inseriti nello stesso grafico (es: corrente di carica e corrente di scarica)

Questo è lo screen di stato che ho implementato:

http://www.energialternativa.info/public/newforum/ForumEA/G/Screen1.JPG


I grafici si aggiornano in tempo reale (5 sec) in alto a SX il grafico mostra la sorgente dell'energia usata dal sistema, in rosso la rete lettrica, in blu le batterie ed in giallo quella solare.
In alto a DX la potenza utilizzata espressa in VA (ho usato i VA come unità di misuta di tutte le potenze)
In centro a SX il voltaggio delle batterie e a DX le correnti di carica (verde) e scarica (rosso)
In basso a SX il SOC ed a DX le corrente prelevata dai pannelli.
Non ci sono le didascalie che descrivono i valori per rispamiare spazio in modo da vedere meglio i grafici dal telefono.

Il secondo screen che ho implementato è un sunto della produzione giornaliera e mensile:
(attualmente quella mensile mostra dei valori errati per via del fatto che l'ho configurata di recente e il calcolo non ha 30gg di dati quindi ritorna dei valori sballati, appena ci saranno i dati nel DB i valori risulteranno corretti).

http://www.energialternativa.info/public/newforum/ForumEA/G/Screen2.JPG




Ho anche tentato di calcolare il risparmio giornaliero basato sulle mie tariffe di acquisto in fascia1 (quella nella quale produco dal sole) ed ho aggiunto un contatore generale del risparmio (ROI) per stimare qunto dell'investimento ho recuperato con la produzione.

Questo è quello che serve a me, niente vieta a chiunque di generare qualsiasi grafico a partire dai valori che arrivano dall'inverter, se riuscite a pensare ad un sistema per calocare un particolare valore allora lo potete mettere in un grafico.

Il tutto è opensource.
Se siste interessati vi posso girare il Wrapper per comunicare con il PIP, l'unico vero ostacolo è imparare ad usare Zabbix, inizialmente è un po complesso, quando poi si capisce come ragiona come ogni altro software diventa semplice.

Nel forum avevo visto qualcuno che chiedeva se era possibile monitorare più apparati contemporaneamente, con zabbix non dovrebbe essere un problema non credo serva nemmeno modificare troppo il Wrapper.
In ambienti lavorativi ho implementato server Zabbix con oltre 10.000 oggetti monitorati.

PS: non lavoro per Zabbix e non vendo nulla, il software è OpenSource il codice che ho scritto lo do a chiunque lo chieda.

Ciao
Allego qualche altra immagine:

http://www.energialternativa.info/public/newforum/ForumEA/G/Screen3.JPG


http://www.energialternativa.info/public/newforum/ForumEA/G/Screen4.JPG


http://www.energialternativa.info/public/newforum/ForumEA/G/Screen5.JPG






Immagine Allegata: Items.JPG
 
ForumEA/G/Items_1.JPG



---------------
3D printer and racing drones addicted
https://www.youtube.com/channel/UCX7UjdoPqErjrR2nYaxkqCw

 

iw3gx
KiloWatt


Gruppo:Utente
Messaggi:172

Stato:



Inviato il: 17/10/2015 12:52:18

Faccine/Smileys_0003.gifFaccine/Smileys_0006.gif
Complimentissimi per il lavoro svolto....
Appena posso gli butto un occhio meglio. Zabbix ho visto che è multipiattaforma
Gira sotto win? Ce la fa raspberry con una piattaforma raspian?
Grazie


Luca



Modificato da iw3gx - 17/10/2015, 13:59:23
 

righetz

Avatar
GigaWatt


Gruppo:MODERATORE
Messaggi:4225

Stato:



Inviato il: 17/10/2015 16:37:09

Grandissima realizzazione, complimenti veramente.



---------------
Chi non si indebita fa la rabbia degli usurai

 

ize
Watt


Gruppo:Utente
Messaggi:44

Stato:



Inviato il: 17/10/2015 19:27:33

Grazie, in realtà è più semplice di quello che sembra.



---------------
3D printer and racing drones addicted
https://www.youtube.com/channel/UCX7UjdoPqErjrR2nYaxkqCw

 

Claudio

Avatar
PetaWatt


Gruppo:MODERATORE
Messaggi:15101

Stato:



Inviato il: 17/10/2015 20:29:58

Fantastico Ize, complimenti. Faccine/cheers.gif



---------------
Inverter Sofar Solar HYD6000-EP, 5250W pannelli, 14kWh lifepo4.

 

ize
Watt


Gruppo:Utente
Messaggi:44

Stato:



Inviato il: 17/10/2015 21:41:45

Se siete interessati posso prendermi carico di scrivere un manualino su come installare il sistema e configurare il tutto.
Il mio è basato su Ubuntu e gira su di un mini pc da pochissimi Watt con un po di martellate credo possa girare anche su raspberry.



---------------
3D printer and racing drones addicted
https://www.youtube.com/channel/UCX7UjdoPqErjrR2nYaxkqCw

 

iw3gx
KiloWatt


Gruppo:Utente
Messaggi:172

Stato:



Inviato il: 17/10/2015 22:40:20

CITAZIONE (ize, 17/10/2015 21:41:45 ) Discussione.php?213129&1#MSG3

Grazie, in realtà è più semplice di quello che sembra. :)

E piu semplice per chi lo sa fare...
Si io perquanto sia ancora indietro con i pannelli (non li ho ancora presi) sarei interessato. Appena recupero un po di tempo dalla famiglia mi piacerebbe studiarci un po sopra. Interessante l idea del manualetto. Se puoi è in bene accetto.
Grazie

Luca

 

BellaEli

Avatar
GigaWatt


Gruppo:MODERATORE
Messaggi:3286

Stato:



Inviato il: 18/10/2015 00:56:04

Ciao Ize, non posso far altro che unirmi alla schiera di complimenti che ti sei giustamente meritato.

Anche se per te è stato semplice perché lavori nel settore resta comunque un'integrazione di alto livello.

È da un po' che cerco un sistema (per il forum) per monitorare gli impianti semplice, flessibe, open, scalabile e alla portata di tutti e sicuramente il tuo progetto si inserisce nella lista dei candidati... Appena ho 2 minuti provo ad installare il software su una VM per vedere come funziona.

Posso chiederti di spendere 2 righe che descrivano la catena di comunicazione ? Cioè il 4848 è collegato con la seriale al PC, i dati vengono acquisiti dal tuo Wrapper (perché lo chiami così ? Di cosa si tratta di un demone che trasferisce i dati dalla seriale a Zabbix ?) che li invia a Zabbix il quale li elabora secondo le nostre impostazioni, giusto ?

Grazie in anticipo, Elix



---------------
C'è un limite al fai da te ???
Si, ma lo stabiliamo noi !!!

 

ize
Watt


Gruppo:Utente
Messaggi:44

Stato:



Inviato il: 18/10/2015 08:05:19

Ciao BellaEli

I dati vengono letti dalla seriele tramite uno script in python che di fatto è un demone unix, in sostaza lo script fa una lettura di tutti i parametri ogni X secondi e li scrive in un file di stato, dopo di che Zabbix per ogni valore ha un tempo di pooling differente (per salvare spazio sul databese, non ha senso leggere ogni 5 secondi valori che non graficherò mai, come la freq della linea elettrica).
Ogni volta che Zabbix deve leggere un valore che arriva dall'inverter utilizza uno script che se lo va a cercare nel file che ha generato lo script in python.
Una volta che il valore è stato letto da zabbix finisce in un database mysql dove il sistema attinge quando deve generare i grafici.
Il sistema controlla anche i valori e se escono da certi limiti configuati è in grado di mandare mail di allarme.

Lo script gestisce anche il LOCK della seriale per permettere ad altri script di utilizzarla quando non la usa il Wrapper, ho un paio di script che commutano le modalità dell'inverter da remoto, SBU, SOL, UEI.

Modificando il codice python sarebbe possibile avere il supporto per più modelli di inverter basta avere i vari protocolli di comunicazione per far si che lo script sia in grado di scrivere i valori nel file.

questo è il codice del Wrapper:

import serial, time
import struct, string
import shutil	
import os
from ctypes import c_ubyte, c_ushort

def CalcoloCRC( str ):

	crc_ta = [ 0x0000, 0x1021, 0x2042, 0x3063, 0x4084, 0x50a5, 0x60c6, 0x70e7, \
                     0x8108, 0x9129, 0xa14a, 0xb16b, 0xc18c, 0xd1ad, 0xe1ce, 0xf1ef ]

	lunghezza = len(str)

	Calcolo = list(str)

	crc = 0

	for idx in range(0,lunghezza):
		da=c_ubyte((c_ubyte(crc>>8).value)>>4).value
		crc = c_ushort(crc << 4).value
		crc = c_ushort(crc ^ crc_ta[da^c_ubyte(c_ubyte(ord(Calcolo[idx])).value >> 4).value]).value
		da = (c_ubyte(crc>>8).value) >> 4 
		crc <<= 4
		crc = c_ushort(crc ^ crc_ta[ da ^ ( ord(Calcolo[idx]) & 0x0f )]).value

	bCRCLow = c_ubyte(crc).value
	bCRCHign = c_ubyte(crc>>8).value

	if ( bCRCLow==0x28 or bCRCLow==0x0d or bCRCLow==0x0a ):
		bCRCLow += 1

	if ( bCRCHign==0x28 or bCRCHign==0x0d or bCRCHign==0x0a ):
		bCRCHign += 1

	crc = c_ushort(bCRCHign).value << 8
	crc += bCRCLow;
	return crc

class Inverter:
	def __init__(self,serialport):

		self.ser = serial.Serial()
		self.ser.port = serialport
		self.ser.baudrate = 2400
		self.ser.bytesize = serial.EIGHTBITS    #number of bits per bytes
		self.ser.parity = serial.PARITY_NONE    #set parity check: no parity
		self.ser.stopbits = serial.STOPBITS_ONE #number of stop bits
		self.ser.timeout = 1                    #non-block read
		self.ser.xonxoff = False                #disable software flow control
		self.ser.rtscts = False                 #disable hardware (RTS/CTS) flow control
		self.ser.dsrdtr = False                 #disable hardware (DSR/DTR) flow control
		self.ser.writeTimeout = 2               #timeout for write

		try: 
		    self.ser.open()

		except Exception, e:
		    print "error open serial port: " + str(e)
		    exit()

		if self.ser.isOpen():
			try:
				self.ser.flushInput()   #flush input buffer, discarding all its contents
				self.ser.flushOutput()  #flush output buffer, aborting current output 
							#and discard all that is in buffer
			except Exception, e1:
				print "error communicating...: " + str(e1)
		else:
			print "cannot open serial port "

	def QueryCMD(self,CMD):
		try:
			self.ser.write(CMD + struct.pack('!H',CalcoloCRC(CMD)) + '\x0D')
			time.sleep(0.2)  #give the serial port sometime to receive the data
			self.response = self.ser.readline()
			self.CRCSENT = ord(self.response[-3]) * 256 + ord(self.response[-2])
			if ( CalcoloCRC(self.response[:-3]) == self.CRCSENT ):
				return self.response[:-3]
			else:
				return -1
		except:
			return -1

	def Update(self):
		CMD = self.QueryCMD("QPIGS")
		if(CMD == -1):
			return -1
		all = string.split(CMD[1:])
		self.grid_voltage = float(all[0])
		self.grid_frequency = float(all[1])
		self.ac_output_voltage = float(all[2])
		self.ac_output_frequency = float(all[3])
		self.ac_output_apparent_power = int(all[4])
		self.ac_output_active_power = int(all[5])
		self.output_load_percent = int(all[6])
		self.bus_voltage = float(all[7])
		self.battery_voltage = float(all[8])
		self.battery_charging_current = int(all[9])
		self.battery_capacity = int(all[10])
		self.heatsink_temperature = int(all[11])
		self.pv_current = int(all[12])
		self.pv_voltage = float(all[13])
		self.battery_voltage_scc = float(all[14])
		self.battery_discharge_current = int(all[15])
		CMD = self.QueryCMD("QMOD")
		if (CMD == -1):
			return -1
		mode = CMD[1:]
		self.isLineMode = 0
		if ( mode == "L" ):
			self.isLineMode = 1
		self.isBatteryMode = 0
		if ( mode == "B" ):
			self.isBatteryMode = 1
		CMD = self.QueryCMD("QPIWS")
		if (CMD == -1):
			return -1
		self.inverter_fault = CMD[1:2]
		self.BusOvervolt = CMD[2:3]
 		self.BusUndervolt = CMD[3:4]
 		self.SoftStartFail = CMD[4:5]
 		self.LineFail = CMD[5:6]
 		self.PvShort = CMD[6:7]
 		self.InvVoltLow = CMD[7:8]
 		self.InvVolrHigh = CMD[8:9]
 		self.OverTemp = CMD[9:10]
 		self.BatteryVoltHigh = CMD[10:11]
		self.BatteryVoltLow = CMD[11:12]
		return 0

#####################################################################
##                                                                 ##
##     MAIN                                                        ##
#####################################################################


sp5000 = Inverter("/dev/ttyUSB0")	
while True:
	lock_file = open("/tmp/SERIALLOCK","w")
	lock_file.write("1")	
	if (sp5000.Update() == 0):
		out_file = open("/tmp/sp5000out_B","w")
		out_file.write("grid_voltage:"+str(sp5000.grid_voltage)+"\n")
		out_file.write("grid_frequency:"+str(sp5000.grid_frequency)+"\n")
		out_file.write("ac_output_voltage:"+str(sp5000.ac_output_voltage)+"\n")
	        out_file.write("ac_output_frequency:"+str(sp5000.ac_output_frequency)+"\n")
		out_file.write("ac_output_apparent_power:"+str(sp5000.ac_output_apparent_power)+"\n")
		out_file.write("ac_output_active_power:"+str(sp5000.ac_output_active_power)+"\n")
		out_file.write("output_load_percent:"+str(sp5000.output_load_percent)+"\n")
		out_file.write("bus_voltage:"+str(sp5000.bus_voltage)+"\n")
		out_file.write("battery_voltage:"+str(sp5000.battery_voltage)+"\n")
		out_file.write("battery_charging_current:"+str(sp5000.battery_charging_current)+"\n")
		out_file.write("battery_capacity:"+str(sp5000.battery_capacity)+"\n")
		out_file.write("heatsink_temperature:"+str(sp5000.heatsink_temperature)+"\n")
		out_file.write("pv_current:"+str(sp5000.pv_current)+"\n")
		out_file.write("pv_voltage:"+str(sp5000.pv_voltage)+"\n")
		out_file.write("battery_voltage_scc:"+str(sp5000.battery_voltage_scc)+"\n")
		out_file.write("battery_discharge_current:"+str(sp5000.battery_discharge_current)+"\n")
		out_file.write("isLineMode:"+str(sp5000.isLineMode)+"\n")
		out_file.write("isBatteryMode:"+str(sp5000.isBatteryMode)+"\n")
		out_file.write("inverter_fault:"+str(sp5000.inverter_fault)+"\n")
		out_file.write("BusOvervolt:"+str(sp5000.BusOvervolt)+"\n")
		out_file.write("BusUndervolt:"+str(sp5000.BusUndervolt)+"\n")
		out_file.write("SoftStartFail:"+str(sp5000.SoftStartFail)+"\n")
		out_file.write("LineFail:"+str(sp5000.LineFail)+"\n")
		out_file.write("PvShort:"+str(sp5000.PvShort)+"\n")
		out_file.write("InvVoltLow:"+str(sp5000.InvVoltLow)+"\n")
		out_file.write("InvVolrHigh:"+str(sp5000.InvVolrHigh)+"\n")
		out_file.write("OverTemp:"+str(sp5000.OverTemp)+"\n")
		out_file.write("BatteryVoltHigh:"+str(sp5000.BatteryVoltHigh)+"\n")
		out_file.write("BatteryVoltLow:"+str(sp5000.BatteryVoltLow)+"\n")
		out_file.close()
		shutil.move("/tmp/sp5000out_B","/tmp/sp5000out")
	lock_file.close()
	os.remove("/tmp/SERIALLOCK")
	time.sleep(3)


Questo lo script che va a leggere i valori eseguito da zabbix:
#!/bin/bash
grep $1: /tmp/sp5000out |awk -F ":" '{print $2}'


Questo è un esempio della configurazione di un valore:

http://www.energialternativa.info/public/newforum/ForumEA/G/PV_Current.jpg



Questi sono gli allarmi che ho configurato:

http://www.energialternativa.info/public/newforum/ForumEA/G/Triggers.jpg



Ciao



---------------
3D printer and racing drones addicted
https://www.youtube.com/channel/UCX7UjdoPqErjrR2nYaxkqCw

 

emanuele78
Watt


Gruppo:Utente
Messaggi:70

Stato:



Inviato il: 18/10/2015 08:30:15

Ciao ize
Complimenti per il tuo lavoro .
È' un po' che cerco su internet qualcosa del genere ma ho trovato solo qualche discussione in un forum australiano .
È' vero che il software molto carino e' quello di jarod ma sotto Windows dopo 2 giorni si è piantato !
Credo che sotto ubuntu sia molto più stabile .
Avendo il clone del pip4048 cioè il genius50 il problema come quello di tutti sarebbe il discorso dell'equalizzazione perché oltre al fatto che il regolatore interno non ci arriva a farla anche se là si fa con un regolatore esterno va spento perché a più 60V va in blocco e si spegne .
Cercavo qualcosa che legga oltre ai dati dell' inverter anche dei 3 regolatori .
Con lo stesso programma dell' inverter riesco a leggere i parametri del regolatore advance SC3KM clone del pcm6048 .
Ciò che alla fine vorrei realizzare e' una pagina web che possa darmi i dati di 2 inverter e 4 regolatori .
So che è complicato e lungo ma se si potesse avere lo script Python per la comunicazione sarebbe già molto .
Grazie
Buona giornata

 

ize
Watt


Gruppo:Utente
Messaggi:44

Stato:



Inviato il: 18/10/2015 09:30:17

CITAZIONE (emanuele78, 18/10/2015 08:30:15 ) Discussione.php?213129&1#MSG9

Ciao ize
Complimenti per il tuo lavoro .
È' un po' che cerco su internet qualcosa del genere ma ho trovato solo qualche discussione in un forum australiano .
È' vero che il software molto carino e' quello di jarod ma sotto Windows dopo 2 giorni si è piantato !
Credo che sotto ubuntu sia molto più stabile .
Avendo il clone del pip4048 cioè il genius50 il problema come quello di tutti sarebbe il discorso dell'equalizzazione perché oltre al fatto che il regolatore interno non ci arriva a farla anche se là si fa con un regolatore esterno va spento perché a più 60V va in blocco e si spegne .
Cercavo qualcosa che legga oltre ai dati dell' inverter anche dei 3 regolatori .
Con lo stesso programma dell' inverter riesco a leggere i parametri del regolatore advance SC3KM clone del pcm6048 .
Ciò che alla fine vorrei realizzare e' una pagina web che possa darmi i dati di 2 inverter e 4 regolatori .
So che è complicato e lungo ma se si potesse avere lo scr
ipt Python per la comunicazione sarebbe già molto .
Grazie
Buona giornata



Ciao,
Ho allegato i due script ad una delle risposte qui sopra.
Se il protocollo seriale è lo stesso lo script dovrebbe andare senza problemi.
Per il discrso pagina web con i valori di più inverter l'unico limite è lo spazio a monitor.
Sicuramente puoi leggere i dati da 5 dispositivi contemporaneamente (devi avere 5 convertitori USB Seriale e 5 istanze dello script configurati per scrivere su 5 file differenti).
In zabbix volendo puoi avere un grafico che mostra valori diversi.
es: le tensioni di carica carica dei 4 regolatori nello stesso grafico con colori diversi e in basso una legeda che indica cosa sono i colori.
lo stesso per gli inverter, poi avere i grafici simili ai miei ma che mostrano i valori per entrambi gli inverter.

Questo è un esempio di come è configurato il mio grafico delle tensioni in batteria, che mostra le tensioni di carica e scarica che sul PIP4048 sono valori differenti.

http://www.energialternativa.info/public/newforum/ForumEA/G/Dual%20Value.jpg



Nel corso della prossima settimana cerco di scrivere un manuale su come mettere su il sistema, inizialmente sarà un poco grezzo poi con le esperienze di tutti lo affiniamo.



Modificato da ize - 18/10/2015, 09:34:54


---------------
3D printer and racing drones addicted
https://www.youtube.com/channel/UCX7UjdoPqErjrR2nYaxkqCw

 

emanuele78
Watt


Gruppo:Utente
Messaggi:70

Stato:



Inviato il: 18/10/2015 12:36:31

Ciao si perfetto ma già tutto il discorso dei grafici sarebbe troppo .... Basterebbe solo poter leggere i valori e magari fare qualche somma .

Sono solo quei pochi comandi per interrogare l'inverter ?
Grazie

 

ize
Watt


Gruppo:Utente
Messaggi:44

Stato:



Inviato il: 18/10/2015 17:33:31

CITAZIONE (emanuele78, 18/10/2015 12:36:31 ) Discussione.php?213129&1#MSG11

Ciao si perfetto ma già tutto il discorso dei grafici sarebbe troppo .... Basterebbe solo poter leggere i valori e magari fare qualche somma .

Sono solo quei pochi comandi per interrogare l'inverter ?
Grazie


Ciao, si parlare con l'inverter è semplice sono pochi comandi, ogni comando deve avere il suo CRC per essere accettato dall'inverter.
C'è una discussione sul forum dedicata al protocollo di comunicazione li trovi tutto, il documento del protocollo e tutte le info che possono servire.
Da quella discussione ho derivato il codice che uso per leggere i dati ed il sistema per calcolare il CRC.

Ciao



---------------
3D printer and racing drones addicted
https://www.youtube.com/channel/UCX7UjdoPqErjrR2nYaxkqCw

 

ize
Watt


Gruppo:Utente
Messaggi:44

Stato:



Inviato il: 19/10/2015 07:06:55

Ciao,
Mio figlio mi ha svegliato alle 4AM e quindi ho iniziato a scrivere due righe.

Per ora quanto riguarda l'installazione del sistema e la configurazione ho messo dei link ad altre guide online.

Mi sono concentrato sulla parte custom.
E' ancora tutto molto grezzo, pieno di errori, ma rende l'idea.

Per ora ho spiegato come installare gli script e come prelevare i dati con zabbix.
Mancano ancora, calcoli complessi, grafici, allarmi.

Allego tutti gli script in un unico archivio indicati nel manuale:
http://www.energialternativa.info/public/newforum/ForumEA/G/Forum.zip

Ciao

Scarica allegato

Guida PIP4048 e Zabbix 0.1.pdf ( Numero download: 734 )



---------------
3D printer and racing drones addicted
https://www.youtube.com/channel/UCX7UjdoPqErjrR2nYaxkqCw

 

iw3gx
KiloWatt


Gruppo:Utente
Messaggi:172

Stato:



Inviato il: 19/10/2015 08:56:50

CITAZIONE (ize, 19/10/2015 07:06:55 ) Discussione.php?213129&1#MSG13



...
Mio figlio mi ha svegliato alle 4AM e quindi ho iniziato a scrivere due righe.
...

http://www.energialternativa.info/public/newforum/ForumEA/G/Forum.zip

Ciao

...come ricordo quei bei tempi in cui si riusciva a dormire....ti capisco...

Scaricato gli do un occhio grazie

Luca

 
 InizioPagina
 

Pagine: (6)   [1]   2   3   4   5   6    (Ultimo Msg)

Versione Mobile!

Home page       TOP100-SOLAR      Home page forum