readarchive: Import aus dem CSV-Archiv dazu

Gegenstueck zu readin/: waehrend readin alle 5 Minuten die Live-API
abfragt, liest readarchive rueckwirkend die Tagesdateien von
archive.sensor.community in dieselben Datenbanken ein.

Ohne History uebernommen (das Projekt lag bisher in einem eigenen
Repository unter Sensors/Laerm/laerm_readfromcsv_to_database).

Stand entspricht dort e33a7b7:
- Zeitstempel werden in UTC gespeichert, unabhaengig von der Zeitzone
  der Maschine. readin/parse.js macht das seit jeher richtig,
  readFromcsv.js lag zwei Stunden daneben.
- Fehlgeschlagene Influx-Writes werden gemeldet und setzen den
  Exit-Code, statt still verloren zu gehen.
- Der Container nimmt Parameter entgegen (ENTRYPOINT in Exec-Form).

Hinweis: mongo.js, influx_post.js und logit.js gibt es auch unter
readin/, mit abweichendem Stand. Zusammenfuehren waere der naechste
Schritt.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-07-31 06:36:01 +00:00
parent d6e6cb3f76
commit 7c6692c040
15 changed files with 1593 additions and 0 deletions
+33
View File
@@ -0,0 +1,33 @@
// MQTT interface
import * as mqtt from 'mqtt'
import { logit, logerror } from './logit.js'
const MQTTHOST = process.env.MQTTHOST || 'rexfue.de'
const MQTTPORT = process.env.MQTTPORT || 1883
const MQTTUSER = process.env.MQTTUSER || 'stzuhr'
const MQTTPASSWD = process.env.MQTTPASSWD || '74chQCYb'
const client = mqtt.connect(`mqtt://${MQTTHOST}:${MQTTPORT}`, {username: MQTTUSER, password: MQTTPASSWD } )
export let connected = false
export const doConnect = () => {
// client = mqtt.connect(`mqtt://${MQTTHOST}:${MQTTPORT}`, {user: MQTTUSER, password: MQTTPASSWD } )
}
client.on('error', (e) => {
logerror(`connect to MQTT ${e}`)
})
client.on('connect', () => {
connected = true
logit(`Connected to MQTT Broker ${MQTTHOST}`)
})
export const doPublish = (topic, msg) => {
client.publish(topic, msg)
}
export const doClose = () => {
client.end()
}