bd5cf9978d
mongo.js, influx_post.js und logit.js lagen in beiden Komponenten doppelt
und waren auseinandergelaufen - so ist der Zeitzonen-Fehler entstanden, den
readin seit jeher richtig loest und readFromcsv.js zwei Jahre lang nicht.
Sie liegen jetzt einmal unter common/.
Wo die Fassungen sich widersprachen:
- MONGOAUTH wird als String verglichen. Die readarchive-Fassung pruefte nur
auf truthy, dadurch schaltete auch MONGOAUTH=false die Auth ein.
- writeDataArray(client, coll, data) nimmt den Collection-Namen direkt;
readarchive baut ihn mit dem neuen dataCollName(styp).
- getallProperties liefert das Array selbst. Die readarchive-Fassung mit
{error, properties} war dort ungenutzt.
- properties_collection heisst einheitlich property_coll.
Das Sammelobjekt statistics lag in readin/readdata.js und wurde von
mongo.js und influx_post.js importiert. Es liegt jetzt in
common/statistics.js, damit die gemeinsamen Module readin nicht kennen
muessen.
Der Build-Kontext beider Images ist dadurch das Repository-Wurzelverzeichnis;
das Layout im Image spiegelt das Repository, damit ../common/... unveraendert
aufgeht. Die Volume-Zeile von readin im Compose zieht deshalb auf
/opt/app/readin/data um.
readarchive folgt jetzt den Konventionen des Stacks: deploy.sh statt
build_and_copy.sh, Dockerfile_readarchive statt Dockerfile_rfcsv, und die
eigene docker-compose.yml entfaellt - der Dienst haengt als Profil "tools"
im Compose des Stacks und wird mit Parametern gestartet:
docker compose run --rm readarchive -t noise -s 2026-07-25 -e 2026-07-29
Getestet: beide Images gebaut, beide gegen Testdatenbanken laufen lassen.
Nicht deployt - die Images in der Registry sind unveraendert.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
34 lines
888 B
JavaScript
34 lines
888 B
JavaScript
// MQTT interface
|
|
|
|
import * as mqtt from 'mqtt'
|
|
import { logit, logerror } from '../common/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()
|
|
}
|