Werte von Arduino mit Python in Postgres schreiben
Verfasst: Mittwoch 9. Januar 2019, 12:59
Hallo Zusammen
Ich versuche mit folgendem Python Script Daten in meine Postgres Datenbank zu schreiben. Ich weiss der Code kann noch verbessert werden und daran arbeite ich auch noch.
Zur erklährung returns_temp_name ist der name des Sensors returns_temp_value ist der Wert vom Sensor.
Nun ist das Problem, dass ich vom Python folgende Fehlermeldung erhalte:
", line 22, in <module>
db_curser.execute(f"INSERT INTO my_smart_home(sensor_name, sensor_value, time_s)"
psycopg2.ProgrammingError: column "returns_temp" does not exist
LINE 1: ...art_home(sensor_name, sensor_value, time_s)VALUES(returns_te..."
Die Column "returns_temp" ist keine column sondern der name des Sensors und dieser soll in die Column sensor_name geschrieben werden.
Kann mir jemand helfen und sagen was ich falsch mache?
Besten Dank und Gruss
^
Ich versuche mit folgendem Python Script Daten in meine Postgres Datenbank zu schreiben. Ich weiss der Code kann noch verbessert werden und daran arbeite ich auch noch.
Code: Alles auswählen
from datetime import datetime
import psycopg2
import serial
db_connect = psycopg2.connect(user="xxxxx", password="xxxxxxx", host="1xxxxx", port="xxxxx",
database="mydb")
read_arduino = serial.Serial('/dev/ttyACM3', 9600)
db_curser = db_connect.cursor()
while True:
data_arduino = read_arduino.readline()
data_arduino_dec = data_arduino.decode("UTF8")
data_arduino_dec_split = data_arduino_dec.split(",")
returns_temp_name = data_arduino_dec_split[0]
returns_temp_value = data_arduino_dec_split[1]
leader_temp_value = data_arduino_dec_split[3]
living_temp_value = data_arduino_dec_split[5]
time_s = datetime.now().timestamp()
# Insert Value temperatur leader and returns in Database
db_curser.execute(f"INSERT INTO my_smart_home(sensor_name, sensor_value, time_s)"
f"VALUES({str(returns_temp_name)}," f"{float(returns_temp_value)}, {time_s})")
db_connect.commit()
Nun ist das Problem, dass ich vom Python folgende Fehlermeldung erhalte:
", line 22, in <module>
db_curser.execute(f"INSERT INTO my_smart_home(sensor_name, sensor_value, time_s)"
psycopg2.ProgrammingError: column "returns_temp" does not exist
LINE 1: ...art_home(sensor_name, sensor_value, time_s)VALUES(returns_te..."
Die Column "returns_temp" ist keine column sondern der name des Sensors und dieser soll in die Column sensor_name geschrieben werden.
Kann mir jemand helfen und sagen was ich falsch mache?
Besten Dank und Gruss
^