Se sei già registrato           oppure    

Orario: 28/04/2024 21:42:34  

 

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: 31/10/2015 07:54:23

Credo sia un problema di permessi allora.
Contralla prima che il percorso del file nell'errore di zabbix sia quello corretto.
Se è corretto prova un chmod -R 775 /etc/zabbix

Ciao



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

 

gruppo

Avatar
GigaWatt


Gruppo:Utente
Messaggi:984

Stato:



Inviato il: 31/10/2015 10:24:34

pi@raspberrypi ~ $ sudo chmod -R 775 /etc/zabbix
pi@raspberrypi ~ $ sudo reboot

niente non va , ora vado a vedere il log
oltre al server zabbix o anche l'agente zabbix installato non sò se crea conflitti di funzionamento

sono andato a vedere il contenuto del file di log ed ho controllato anche l'esistenza di bash cui mi sono posizionato col mouse per farti vedere diritti.
vedi link
http://www.energialternativa.info/public/newforum/ForumEA/G/Immagine.jpg


ciao



Modificato da gruppo - 31/10/2015, 11:06:08


---------------
Batterie? no grazie ho SSP

 

ize
Watt


Gruppo:Utente
Messaggi:44

Stato:



Inviato il: 31/10/2015 12:57:16

Per motivi che non mi sono chiari zabbix non vede lo script.

facciamo un test:

crea una directory da un altra parte, non sotto etc,
mkdir /var/zabbixscripts
chown zabbix:root /var/zabbixscripts

copiaci il file
cp /etc/zabbix/externalscrips/GetData /var/zabbixscripts
chown zabbix:root /var/zabbixscripts/GetData

modifica il file /etc/zabbix/zabbix_server.conf
e modifica il parametro di conf per gli script
ExternalScripts=/var/zabbixscripts

Riavvia e vediamo cosa succede.
Ciao



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

 

gruppo

Avatar
GigaWatt


Gruppo:Utente
Messaggi:984

Stato:



Inviato il: 31/10/2015 13:42:05

fatto
solo che invece di quello che mi hai indicato
cp /etc/zabbix/externalscrips/GetData /var/zabbixscripts
ho digitato questo
cp /etc/zabbix/externalscripts/GetData /var/zabbixscripts

finito le modifiche , reboot aspetto una ventina di minuti ma non va neanche cosi
però il mio script che non ho spostato (GetTest). dalla pagina web di zabbix è cambiato l'errore guardando l'item e andando sulla x rossa compare
/var/zabbixscripts GetTest:[2] no such file o directory ( e questo è corretto perchè non l'ho spostato e nella cartella non c'è)
mentre l'item che fa riferimento con il key al GetData l'errore è
Received value [] is not suitable for value type [numeric(float)]
quindi da qui si capisce che qualcosa trova ma non gli va a genio (precedentemente nella cartella /etc/zabbix/externalscripts avevo anche provato ad assegnare alla cartella come proprietario e gruppo zabbix.zabbix con opzione ricorsiva poi o rimesso a posto)
ovviamente in
root@raspberrypi:/home/pi# ls -l /tmp
totale 4
-rw-r--r-- 1 root root 545 ott 31 12:38 sp5000out
il file c'è
root@raspberrypi:/home/pi# cat /tmp/sp5000out
grid_voltage:236.5
grid_frequency:49.9
ac_output_voltage:229.9
ac_output_frequency:49.9
ac_output_apparent_power:229
ac_output_active_power:156
output_load_percent:4
bus_voltage:449.0
battery_voltage:56.1
battery_charging_current:3
battery_capacity:100
heatsink_temperature:48
pv_current:6
pv_voltage:98.1
battery_voltage_scc:56.17
battery_discharge_current:0
isLineMode:0
isBatteryMode:1
inverter_fault:0
BusOvervolt:0
BusUndervolt:0
SoftStartFail:0
LineFail:0
PvShort:0
InvVoltLow:0
InvVolrHigh:0
OverTemp:0
BatteryVoltHigh:0
BatteryVoltLow:0


contenuto di GetData

#!/bin/bash
grep $1: /tmp/sp5000out |awk -F ":" '{print $2}'

lanciando GetData col parametro da linea di comando
pi@raspberrypi /var/zabbixscripts $ GetData "battery_voltage"
-bash: GetData: comando non trovato
pi@raspberrypi /var/zabbixscripts $ sh GetData "battery_voltage"
56.1


ciao



Modificato da gruppo - 31/10/2015, 14:19:06


---------------
Batterie? no grazie ho SSP

 

ize
Watt


Gruppo:Utente
Messaggi:44

Stato:



Inviato il: 31/10/2015 21:52:03

Per lanciare uno script/eseguibile che non si trova nei path di default devi espliciatare il percorso, non è come su windows.

nel tuo caso per lanciare un comando nella directory in cui ti trovi in quel momento devi usare ./ ovvero ./GetData altrimenti il sistema cerca nei percorsi predefiniti e non lo trova.

Per l'errore di zabbix invece, non saprei, allegami le ultime 5-10 linee del log.


Ciao



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

 

gruppo

Avatar
GigaWatt


Gruppo:Utente
Messaggi:984

Stato:



Inviato il: 31/10/2015 22:06:31

se do questo comando
pi@raspberrypi /var/zabbixscripts $ ./GetData
restituisce a video le due righe qui sotto

-bash: ./GetData: /bin/bash^M: interprete errato: File o directory non esistente
pi@raspberrypi /var/zabbixscripts $


se invece faccio precedere
sh
allora viene eseguito

quindi mi puoi indicare cosa modificare affinchè il comando ./GetData possa trovare il l'interprete bash
ciao

----capperi in linux ci sono più shell la bash è una estensione di sh

se digito /bin/bash ./GetData viene eseguito

ma la prima riga del file GetData non dovrebbe servire per far richiamare la shell bash
la prima riga di GetData è #!/bin/bash

quindi mi sembra di capire che da zabbix non rilevo nulla perchè se do questo comando
/var/zabbixscripts/GetData
mi da errore come segue
bash: /var/zabbixscripts/GetData: /bin/bash^M: interprete errato: File o directory non esistente


...dai ultimo sforzo ize che ci siamo. ciao



Modificato da gruppo - 31/10/2015, 23:12:11


---------------
Batterie? no grazie ho SSP

 

ize
Watt


Gruppo:Utente
Messaggi:44

Stato:



Inviato il: 01/11/2015 08:05:38

CITAZIONE (gruppo, 31/10/2015 22:06:31 ) Discussione.php?213129&4#MSG53



-bash: ./GetData: /bin/bash^M: interprete errato: File o directory non esistente
pi@raspberrypi /var/zabbixscripts $




Semplicemente hai editato quel file da windoiws che lo ha salvato con i terminatori di stringa non compatibili con linux.

usa il comando dos2unix nomefile
se serve installarlo sudo apt-get install dos2unix

ciao



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

 

gruppo

Avatar
GigaWatt


Gruppo:Utente
Messaggi:984

Stato:



Inviato il: 01/11/2015 09:11:25

IZE,
un vero GRAZIE , avevo già provato a riscrivere la riga, ma sempre da windows e quindi ho rimesso qualche carattere che non piace a linux.
Installato il pacchetto dos2unix e convertito il file
ora il comando ./GetData non da errori e in output ho il risultato previsto.
dopo 5 minuti sono cominciate a sparire le x rosse dalla pagina degli item di ZABBIX finalmente.
in settimana vedo di aggiungere la parte di documentazione che serve per far raggiungere l'obbiettivo finale ad un newbie linux come me.

Ciao.Faccine/Smileys_0109.gif



Modificato da gruppo - 01/11/2015, 09:42:04


---------------
Batterie? no grazie ho SSP

 

ize
Watt


Gruppo:Utente
Messaggi:44

Stato:



Inviato il: 01/11/2015 11:03:26

CITAZIONE (gruppo, 01/11/2015 09:11:25 ) Discussione.php?213129&4#MSG55

IZE,
un vero GRAZIE , avevo già provato a riscrivere la riga, ma sempre da windows e quindi ho rimesso qualche carattere che non piace a linux.
Installato il pacchetto dos2unix e convertito il file
ora il comando ./GetData non da errori e in output ho il risultato previsto.
dopo 5 minuti sono cominciate a sparire le x rosse dalla pagina degli item di ZABBIX finalmente.
in settimana vedo di aggiungere la parte di documentazione che serve per far raggiungere l'obbiettivo finale ad un newbie linux come me.

Ciao.Faccine/Smileys_0109.gif



Sono contento che funzioni.
Fammi sapere come va.
Ciao



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

 

gruppo

Avatar
GigaWatt


Gruppo:Utente
Messaggi:984

Stato:



Inviato il: 01/11/2015 14:50:19

ize lo script dopo qualche ora a volte prima si interrompe non aggiornando più il file sp5000out

pi@raspberrypi ~ $ python2 sp5000.py &
[1] 23228

pi@raspberrypi ~ $ Traceback (most recent call last):
File "sp5000.py", line 141, in
if (sp5000.Update() == 0):
File "sp5000.py", line 89, in Update
self.grid_voltage = float(all[0])
ValueError: could not convert string to float: NAK


[1]+ Uscita 1 python2 sp5000.py

ti ricordo che ho usato /dev/ttyAMA0
ma ho disabilitato la console per liberare la seriale.

sicuramente da quello che vedo l'inventer risponde raramente NAK
a parte ricercare la motivazione del NAK (un log dei comandi inviati mi farebbe capire il problema),
come posso fare per riavviarlo in automatico se si interrompe oppure modificare sp5000.py affinche ritenti la richiesta per n volte prima di gettare la spugna?

nel frattempo ho fatto questo script per metterci una pezza momentanea.
ho creato un file prova con al'interno tre righe

#!/bin/bash
/usr/bin/python2 ./sp5000.py
./prova


un loop infinito ma è solo momentaneo finchè non risolvo.


Zabbix è uno strumento stupendo ne ho scoperto sicuramente poco ma grazie al tuo lavoro vedo che si possono fare cose moolto interessanti.

ciao



Modificato da gruppo - 01/11/2015, 17:48:13


---------------
Batterie? no grazie ho SSP

 

ize
Watt


Gruppo:Utente
Messaggi:44

Stato:



Inviato il: 01/11/2015 21:12:03

CITAZIONE (gruppo, 01/11/2015 14:50:19 ) Discussione.php?213129&4#MSG57

ize lo script dopo qualche ora a volte prima si interrompe non aggiornando più il file sp5000out

pi@raspberrypi ~ $ python2 sp5000.py &
[1] 23228

pi@raspberrypi ~ $ Traceback (most recent call last):
File "sp5000.py", line 141, in
if (sp5000.Update() == 0):
File "sp5000.py", line 89, in Update
self.grid_voltage = float(all[0])
ValueError: could not convert string to float: NAK


[1]+ Uscita 1 python2 sp5000.py

ti ricordo che ho usato /dev/ttyAMA0
ma ho disabilitato la console per liberare la seriale.

sicuramente da quello che vedo l'inventer risponde raramente NAK
a parte ricercare la motivazione del NAK (un log dei comandi inviati mi farebbe capire il problema),
come posso fare per riavviarlo in automatico se si interrompe oppure modificare sp5000.py affinche ritenti la richiesta per n volte prima di gettare la spugna?

nel frattempo
ho fatto questo script per metterci una pezza momentanea.
ho creato un file prova con al'interno tre righe

#!/bin/bash
/usr/bin/python2 ./sp5000.py
./prova


un loop infinito ma è solo momentaneo finchè non risolvo.


Zabbix è uno strumento stupendo ne ho scoperto sicuramente poco ma grazie al tuo lavoro vedo che si possono fare cose moolto interessanti.

ciao



Ciao
Allora anche il mio si incastra ogni tanto perché l'inverter risponde NAK, migliorare la gestione degli errori del codice python è nella mia lista di cose da fare

Per ora ho sistemato come segue

#!/bin/bash
cd /home/antoniodm
while true; do
echo $(date)
echo Rinning SP5000 Daemon
python2 SP5000.py
echo Died
done

Lo script lancia automaticamente il demone se muore.
Ciao



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

 

gruppo

Avatar
GigaWatt


Gruppo:Utente
Messaggi:984

Stato:



Inviato il: 02/11/2015 23:43:54

ciao ize,
sto litigando con i demoni, nome appropiato.

quando chiudo l'emulatore terminale si ferma
ho provato anche con nohup

allora ho fatto un tentativo ad inserirlo come servizio ma forse stò sbagliando qualcosa
se dai una controllata sono convinto che scopri al volo dove sbaglio.
uso jessie ho il systemd

il file demone contiene il tuo script ed è eseguibile

#!/bin/bash
cd /home/pi
while true
do
  echo $(date)
  echo Running sp5000 Daemon
  /usr/bin/python2 /home/pi/sp5000.py
  echo Died
done

e da terminale funziona
sono posizionato in /home/pi
cp ./demone /usr/sbin/leggiinverter
sudo cd /etc/init.d
sudo cp ./skeleton ./demoneinverter
sudo nano demoneinverter

contenuto di skeleton
#!/bin/sh
# kFreeBSD do not accept scripts as interpreters, using #!/bin/sh and sourcing.
if [ true != "$INIT_D_SCRIPT_SOURCED" ] ; then
    set "$0" "$@"; INIT_D_SCRIPT_SOURCED=true . /lib/init/init-d-script
fi
### BEGIN INIT INFO
# Provides:          skeleton
# Required-Start:    $remote_fs $syslog
# Required-Stop:     $remote_fs $syslog
# Default-Start:     2 3 4 5
# Default-Stop:      0 1 6
# Short-Description: Example initscript
# Description:       This file should be used to construct scripts to be
#                    placed in /etc/init.d.  This example start a
#                    single forking daemon capable of writing a pid
#                    file.  To get other behavoirs, implemend
#                    do_start(), do_stop() or other functions to
#                    override the defaults in /lib/init/init-d-script.
### END INIT INFO

# Author: Foo Bar 
#
# Please remove the "Author" lines above and replace them
# with your own name if you copy and modify this script.

DESC="Description of the service"
DAEMON=/usr/sbin/daemonexecutablename



cambio le ultime due righe
DESC="Demone Inverter"
DAEMON=/usr/sbin/leggiinverter

sudo chmod +x demoneinverter
sudo systemctl enable demoneinverter
sudo update-rc.d demoneinverter defaults


avvio il demone
sudo -s
service demoneinverter start


controllo se si è avviato
systemctl status demoneinverter

risponde questo
? demoneinverter.service - LSB: Example initscript
Loaded: loaded (/etc/init.d/demoneinverter)
Active: active (exited) since lun 2015-11-02 21:08:55 UTC; 10s ago
Process: 23860 ExecStart=/etc/init.d/demoneinverter start (code=exited, status=0/SUCCESS)



ora abilito il servizio al boot
systemctl enable demoneinverter
reboot
sudo ps -a

vedo solo il processo sudo e il processo ps

provo a vedere se il file in /tmp si aggiorna
ls -l /tmp

perfetto ora si aggiorna anche con il terminale scollegato.
------------------------------------------------------------
ho pensato di utilizzare zabbix per inviare direttive all'inverter.
Per far questo pensavo da zabbix di creare un file con all'interno i comandi da inviare.
ad esempio creo un file /var/zabbixscript/comandi_tx
con all'interno il comando senza crc

il punto dove pensavo se testare l'esistenza dei file di comandi aggiuntivi potrebbe essere in fondo al def Update(self): del file sp5000.py

ciao



Modificato da gruppo - 07/11/2015, 17:12:37


---------------
Batterie? no grazie ho SSP

 

ize
Watt


Gruppo:Utente
Messaggi:44

Stato:



Inviato il: 05/11/2015 22:06:48

Ciao
Che risultato vuoi raggiungere ?
Nel senso.. descrivimi il processo che ti aspetti zabbix faccia, ci sono delle funzionalità apposite in zabbix per gestire questo genere di cose.

Ciao



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

 

gruppo

Avatar
GigaWatt


Gruppo:Utente
Messaggi:984

Stato:



Inviato il: 05/11/2015 22:46:37

ciao ize,
pensavo di inviare comandi all'inverter da zabbix scrivendoli in un file.
Il demone che ho creato vedi msg precedente controlla se esiste il file e legge le linee all'interno e le invia all'inverter.

1) qui sotto ho modificato la funzione Update del file sp5000.py affinchè processi un file di nome comandi_tx nella cartella zabbixscripts.
il file conterrà il comando o i comandi da inviare all'inverter.
dopo che i comandi sono stati inviati all'inverter il file comandi_tx viene eliminato.

2) creare tramite zabbix il file comandi_tx, per eseguire operazioni sull'inverter, esempio: possibilità di cambiare la modalità di funzionamento dell'inverter solar, uti, etc...

presumo che a molti interessi questa possibilità per evitare pendolamenti dell'inverter.

per il punto 1 sembra funzionare .

il file sp5000.py modificato nella parte finale di
def Update(Self):
si presenta così


                self.BatteryVoltLow = CMD[11:12]
                # se esiste il file comandi_tx vengono processate tutte le linee ed il file cancellato
                if os.path.exists("/var/zabbixscripts/comandi_tx"):
                        try:
                                with open('/var/zabbixscripts/comandi_tx',"r") as inFile:
                                        for Line in inFile:
                                                if Line == "":
                                                        break
                                                CMD=self.QueryCMD(Line)
                                                fl = open("/home/pi/log.tx","w")
                                                fl.write(Line)
                                                fl.close()
                                os.remove('/var/zabbixscripts/comandi_tx')
                        except:
                                return 0
                #fine modifica
                return 0



nel test
ho provato a creare il file comandi_tx con all'interno la scritta PCP01
risultato:
il file è sparito in home/pi è comparso log.tx che conteneva proprio PCP01
e aprendo ZABBIX ho rilevato il funzionamento del comando
(nota PCP è il comando per cambiare modalità)
00 for utility first, 01 for solar first, 03 for only solar charging

per attuare il punto 2 ho provato a creare su zabbix trigger ed actions
allego immagini in test
ma ho dei problemi con le action ed il custom script, se controlli il link 4_3.jpg
vedi il comando che ho scritto ,
http://www.energialternativa.info/public/newforum/ForumEA/G/0.jpg
http://www.energialternativa.info/public/newforum/ForumEA/G/1_5.jpg
http://www.energialternativa.info/public/newforum/ForumEA/G/2_5.jpg
http://www.energialternativa.info/public/newforum/ForumEA/G/3_5.jpg
http://www.energialternativa.info/public/newforum/ForumEA/G/4_3.jpg
nella foto manca la s a zabbixscripts l'ho aggiunta.
da zabbix l'action parte ma il file non viene creato eppure la cartella
/var/zabbixscripts appartiene a utente zabbix gruppo zabbix


ho anche provato il comando di un custom script da linea di comando come utente zabbix
sudo -u zabbix echo "PCP00" | sudo tee /var/zabbixscripts/comandi_tx > /dev/null
ma è stato eseguito ed elaborato correttamente.

hai idee?




Modificato da gruppo - 11/11/2015, 20:01:25


---------------
Batterie? no grazie ho SSP

 

ize
Watt


Gruppo:Utente
Messaggi:44

Stato:



Inviato il: 12/11/2015 10:57:28

Ciao Gruppo
Ti rispondo punto per punto

1) Non conviene modificare lo script che legge i valori per fare altro.
Avevo predisposto la creazione di un file SERIALLOCK che viene scritto mentre lo script gira e rimosso appena ha terminato.
Quel file serve per far capire ad altri script quando la seriale e' in uso.
Conviene se ti crei un altro script a parte che usa la seriale solo quando il file SERIALLOCK non e' presente.


2) Caio, zabbix ha una funzione specifica per eseguire degli script on-demand sul sistema.
Sotto Administration trovi la tab Scripts.
Li puoi definire uno script da lanciare cliccando con il tasto DX sul nome host nella dashboard.
Prova a definirlo li.

Link al manuale zabbix:
http://www.zabbix.com/documentation/

Ciao



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

 
 InizioPagina
 

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

Versione Mobile!

Home page       TOP100-SOLAR      Home page forum