Guten Morgen zusammen,
ich nutze meinen Raspberry zur Messung des Wasserstandes in der Zisterne mit Levelsensoren (Schwimmschalter). Funktioniert auch gut. Allerdings habe ich eine Frage und ein Problem. Belastet dieses Script, welches alle 5 Sekunden per PI FACE DIGITAL 2 eine Messung durchführt die Lebensdauer des Raspberry?
Python
#!/usr/bin/python3
#-*- coding: iso-8859-15 -*-
import time
import socket
import pifacedigitalio as pf
import sys
# Messung Level durchführen
def messung():
pf.init()
summelevel=0
if pf.digital_read (0):
summelevel=summelevel+1
if pf.digital_read(1):
summelevel=summelevel+1
if pf.digital_read(2):
summelevel=summelevel+1
if pf.digital_read(3):
summelevel=summelevel+1
if pf.digital_read(4):
summelevel=summelevel+1
if pf.digital_read(5):
summelevel=summelevel+1
if pf.digital_read(6):
summelevel=summelevel+1
if pf.digital_read(7):
summelevel=summelevel+1
#LED als Messignal
pf.digital_write(7,1)
time.sleep(1)
pf.digital_write(7,0)
return summelevel
#Einstellungen zum Senden
ip="192.168.178.43"
port=50002
zeitint=5
#Senden der gemessenen Daten an Empfänger
print("Sende Füllstand Zisterne (IP "+ip+":"+str(port)+", Intervall "+str(zeitint)+" s)...")
print("gestartet um",time.strftime("%H:%M:%S"),"am",time.strftime("%d.%m.%Y"),"...")
while True:
try:
s=socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
nachricht=str(messung())
s.sendto(nachricht.encode(),(ip,port))
except:
print(sys.exc_info())
finally:
pass
time.sleep(zeitint)
Alles anzeigen
Nach mehr als zwei Tagen Dauerbetrieb erscheint folgende Meldung: (<class 'OSError'>, OSError(24, 'Too many open files'), <traceback object at 0x763e6a80>)
Kann jemand damit was an fangen?
Vielen Dank und einen sonnigen Tag für alle.
whitechristmas