mirror of
https://github.com/dustinbrun/JDS6600_python_Influx-DB_logger.git
synced 2025-12-30 01:23:23 +01:00
V1
This commit is contained in:
101
readfreq_influxdb.py
Normal file
101
readfreq_influxdb.py
Normal file
@@ -0,0 +1,101 @@
|
||||
from jds6600 import jds6600
|
||||
import warnings
|
||||
import serial
|
||||
import serial.tools.list_ports
|
||||
import time
|
||||
from influxdb import InfluxDBClient
|
||||
from datetime import datetime
|
||||
import influxdb_config
|
||||
|
||||
print("-----------------JDS6600-Reader-----------------")
|
||||
print("Searching Device ...")
|
||||
|
||||
found_ports = [
|
||||
p.device
|
||||
for p in serial.tools.list_ports.comports()
|
||||
if 'CH340' in p.description or 'USB Serial' in p.description #CH340 for Windows, USB Serial for Linux
|
||||
]
|
||||
if not found_ports:
|
||||
raise IOError("No JDS6600-device found")
|
||||
if len(found_ports) > 1:
|
||||
warnings.warn('Multiple JDS6600-devices found - using the first')
|
||||
|
||||
portname = found_ports[0]
|
||||
print("JDS6600 device found!")
|
||||
print("Using Port ", portname)
|
||||
|
||||
jds = jds6600(portname)
|
||||
#jds = jds6600("COM4")
|
||||
|
||||
print("--------------------------")
|
||||
# API information calls
|
||||
print("Devicetype: ", jds.getinfo_devicetype())
|
||||
print("Serialnumber:", jds.getinfo_serialnumber())
|
||||
print("--------------------------")
|
||||
|
||||
#Disable Both outputs
|
||||
#print(jds.getchannelenable())
|
||||
jds.setchannelenable(bool(0), bool(0))
|
||||
print("Disabeling Outputs ... \t\t OK")
|
||||
|
||||
#print(jds.getmode())
|
||||
jds.setmode('MEASURE')
|
||||
print("Set Mode Measure ... \t\t OK")
|
||||
|
||||
jds.measure_setcoupling('AC')
|
||||
jds.measure_setgate(1) #Gatetime 1s
|
||||
jds.measure_setmode("PERIOD")
|
||||
print("Configure Measurement ... OK")
|
||||
print("--------------------------")
|
||||
|
||||
|
||||
print("Connecting to Influx-DB ... OK")
|
||||
dbclient = InfluxDBClient( influxdb_config.influxdb_host,
|
||||
influxdb_config.influxdb_port,
|
||||
influxdb_config.influxdb_user,
|
||||
influxdb_config.influxdb_password,
|
||||
influxdb_config.influxdb_dbname)
|
||||
freq_value = 0.0
|
||||
dbclient_success = False
|
||||
dbclient_fail_counter = 0
|
||||
|
||||
print("--------------------------")
|
||||
print("Starting to read data ...")
|
||||
print("--------------------------")
|
||||
|
||||
log_count = 0
|
||||
|
||||
while 1:
|
||||
if jds.getmode()[0] != 4: # 4 means mode 'MEASURE'
|
||||
raise IOError("Measurement-mode is not enabled!")
|
||||
freq_value = jds.measure_getfreq_p()
|
||||
|
||||
|
||||
|
||||
json_body = [
|
||||
{
|
||||
"measurement": "freq_Hz",
|
||||
"fields": {
|
||||
"value": freq_value
|
||||
}
|
||||
}
|
||||
]
|
||||
|
||||
dbclient_success = dbclient.write_points(json_body, time_precision='ms')
|
||||
|
||||
if dbclient_success == True:
|
||||
log_count = log_count + 1
|
||||
if log_count >= 10:
|
||||
print("f = ", freq_value, " DB OK")
|
||||
log_count = 0
|
||||
else:
|
||||
dbclient_fail_counter = dbclient_fail_counter + 1
|
||||
print("f = ", freq_value, " DB ERROR ", dbclient_fail_counter)
|
||||
if dbclient_fail_counter >= 5:
|
||||
raise IOError("Writing DB entry failed 5 times ... exiting!")
|
||||
else:
|
||||
dbclient_fail_counter = 0
|
||||
|
||||
|
||||
time.sleep(1)
|
||||
|
||||
Reference in New Issue
Block a user