Changed the data retrieval query to use ROWID DESC instead of timestamp DESC, ensuring that the most recently inserted data appears first regardless of timestamp field values. This fixes the issue where entries with "not connected" or invalid timestamps would appear in wrong order. Benefits: - Most recent database entries always shown at top - Works correctly even when timestamp is null, "not connected", or incorrect - Based on actual insertion order rather than timestamp field 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
52 lines
1.3 KiB
Python
Executable File
52 lines
1.3 KiB
Python
Executable File
'''
|
|
____ ___ _ _ _
|
|
/ ___| / _ \| | (_) |_ ___
|
|
\___ \| | | | | | | __/ _ \
|
|
___) | |_| | |___| | || __/
|
|
|____/ \__\_\_____|_|\__\___|
|
|
|
|
Script to read data from a sqlite database
|
|
/usr/bin/python3 /var/www/nebuleair_pro_4g/sqlite/read.py data_NPM 10
|
|
|
|
Available table are
|
|
data_NPM
|
|
data_NPM_5channels
|
|
data_BME280
|
|
data_envea
|
|
timestamp_table
|
|
data_MPPT
|
|
data_WIND
|
|
|
|
'''
|
|
|
|
import sqlite3
|
|
import sys
|
|
parameter = sys.argv[1:] # Exclude the script name
|
|
#print("Parameters received:")
|
|
table_name=parameter[0]
|
|
limit_num=parameter[1]
|
|
|
|
# Connect to the SQLite database
|
|
conn = sqlite3.connect("/var/www/nebuleair_pro_4g/sqlite/sensors.db")
|
|
cursor = conn.cursor()
|
|
|
|
# Retrieve the last sensor readings based on insertion order (ROWID)
|
|
# This ensures we get the most recently inserted data, regardless of timestamp value
|
|
if table_name == "timestamp_table":
|
|
cursor.execute("SELECT * FROM timestamp_table")
|
|
else:
|
|
# Order by ROWID DESC to get most recently inserted rows first
|
|
query = f"SELECT * FROM {table_name} ORDER BY ROWID DESC LIMIT ?"
|
|
cursor.execute(query, (limit_num,))
|
|
|
|
rows = cursor.fetchall()
|
|
# Keep DESC order - most recently inserted data first
|
|
|
|
|
|
# Display the results
|
|
for row in rows:
|
|
print(row)
|
|
|
|
# Close the database connection
|
|
conn.close()
|