Compare commits

...

6 Commits

Author SHA1 Message Date
3fd97364e0 V 3.2.1 citysensor in allen Texten ersetzt durch ecocurious 2026-04-02 12:38:31 +02:00
5c1eb4a42d Initialize README with project details
Added project description and database structure information.
2026-03-31 14:39:30 +02:00
b4c153089f .env.local entfernt 2026-03-31 14:29:14 +02:00
cc664f6692 die .ignore-Files angepasst 2026-03-31 14:11:06 +02:00
rxf
6d99bdafbd V 3.2.0 2026-03-31 11:43:04 +02:00
rxf
58608f7cf8 Passenden THP-Sensor finden und anzeigen 2026-03-31 11:41:42 +02:00
12 changed files with 190 additions and 55 deletions

View File

@@ -1,10 +1,61 @@
node-modules
PYTHON
.gitignore
.dockerignore
build_and_copy.sh
buildit.sh
copycontainder.sh
# Node modules
node_modules/
# Logs
logs/
log/
*.log
npm-debug.log*
yarn-debug.log*
yarn-error.log*
# Dependency directories
dist/
build/
bower_components/
# Test, coverage, and debug
coverage/
.nyc_output/
*.out
*.tmp
# Editor directories and files
.vscode/
.idea/
*.swp
*.bak
*~
# Mac system files
.DS_Store
# Environment files
.env
.env.*
# Dumps and large sensor data
akws/dump/
*.bson
*.metadata.json
# Public generated files
public/js/*.map
public/js/*.tmp
# Ignore Python cache (if any)
__pycache__/
*.pyc
# Project-specific
Feinstaub_ToDos.pdf
this_is_MacBig
akws
# Build/Deployment files (nicht ins Image kopieren)
docker-compose.yml
docker-compose.*.yml
Dockerfile
Dockerfile*
nginx-proxy
*.sh
*.md

View File

@@ -1,18 +0,0 @@
# Environment Variables für lokale Entwicklung mit docker-compose.local.yml
# Diese Datei kann für lokale MongoDB-Verbindungseinstellungen verwendet werden
# Server Configuration
SERVERPORT=3005
DEBUG=true
# MongoDB Configuration - REMOTE SERVER
MONGOHOST=217.72.203.152
MONGOPORT=27037
MONGOBASE=sensor_data
MONGOAUTH=true
MONGOUSRP=admin:mongo4noise
# Timezone
TZ=Europe/Berlin
LOCALDIR=/Users/rxf/Projekte/Geiger_WEB_26

87
.gitignore vendored
View File

@@ -1,8 +1,91 @@
/node_modules/
Feinstaub_ToDos.pdf
this_is_MacBig
.idea
/node_modules/
# Logs
logs/
log/
*.log
npm-debug.log*
yarn-debug.log*
yarn-error.log*
# Runtime data
pids/
*.pid
*.seed
*.pid.lock
# Directory for instrumented libs generated by jscoverage/JSCover
lib-cov/
# Coverage directory used by tools like istanbul
coverage/
# nyc test coverage
.nyc_output/
# Grunt intermediate storage (https://gruntjs.com/creating-plugins#storing-task-files)
.grunt/
# Bower dependency directory (https://bower.io/)
bower_components/
# Compiled binary addons (https://nodejs.org/api/addons.html)
build/Release
# Dependency directories
dist/
build/
# Optional npm cache directory
.npm/
# Optional eslint cache
.eslintcache
# dotenv environment variables file
.env
.env.local.custom
.env.*
# VS Code settings
.vscode/
# Mac system files
.DS_Store
# Public generated files
public/js/*.map
public/js/*.tmp
# Ignore dumps and large sensor data
akws/dump/
# Ignore test and debug scripts output
*.out
*.tmp
# Ignore database dumps
*.bson
*.metadata.json
# Ignore backup files
*~
*.bak
*.swp
# Ignore coverage reports
coverage/
# Ignore Python cache (if any)
__pycache__/
*.pyc
# IDEs
.idea
# Project-specific
Feinstaub_ToDos.pdf
this_is_MacBig
akws

View File

@@ -1,4 +1,6 @@
# Geiger_WEB
Verschiedene Grafiken zur Auswertung des Multigeiger.
# Geiger Web
Stellt die Daten der Multigeiger-Sensoren grafisch dar.
Diese Version hier (geiger_web_26) ist hervorgegangen aus dem Projekt geiger_web und wurde an die neue Struktur der Datenbank angepasst. In der Datenbank werden die Werte nun in Zeitreihen gespeichert.
Beschreibung folgt ... irgendwann.

View File

@@ -1,7 +1,7 @@
{
"name": "geiger2",
"version": "3.1.3",
"date": "2026-03-31",
"name": "geiger",
"version": "3.2.1",
"date": "2026-04-02",
"description": "Graphics for multigeiger sensors",
"main": "app.js",
"scripts": {

View File

@@ -10,7 +10,7 @@
<ul id = "fehlersensorenliste"></ul>
<p>
Falls Dein Sensor dabei ist, kannst Du mir gerne eine <a class="hrefsimu" href="mailto:rexfue@gmail.com">email</a>
Falls Dein Sensor dabei ist, kannst Du mir gerne eine <a class="hrefsimu" href="mailto:multigeiger@ecocurious.de">email</a>
schreiben. Wir können dann gemeinsam entscheiden, welche Maßnahmen wir ergreifen können.
</p>

View File

@@ -37,7 +37,7 @@
<p>
<div id="fehlerexplain"></div> <br />
</p>
Du kannst mir gerne eine email ( <a href="mailto:rexfue@gmail.com">rexfue@gmail.com</a> )
Du kannst mir gerne eine email ( <a(href="mailto:multigeiger@ecocurious.de")> mailto:multigeiger@ecocurious.de</a> )
schreiben. Vielleicht können wir das Problem gemeinsam lösen.
</body>

View File

@@ -2,10 +2,10 @@
<p>Auf der Karte wird jede Zählstation mit dem Radioaktivitäts-Symbol angezeigt. Die Farbe des Symbols ändert sich mit der Zählrate, der Zusammenhang ist rechts oben in der Legende dargestellt.<br>
Hat der Sensor seit mind. 1 Stunde keine Daten mehr gesendet, so wird er dunkelgrau eingefärbt. Hat er über eine Woche nicht gesendet, wird er nicht mehr dargestellt.<br>
Die Karte ist standardmäßig auf Stuttgart ausgerichtet. Wenn der Aufruf der Webseite mit einer Stadt erfolgt (z.B: <a href="https://multigeiger.citysensor.de/Berlin">https://multigeiger.citysensor.de/Berlin</a>),
Die Karte ist standardmäßig auf Stuttgart ausgerichtet. Wenn der Aufruf der Webseite mit einer Stadt erfolgt (z.B: <a href="https://multigeiger.ecocurious.de/Berlin">https://multigeiger.ecocurious.de/Berlin</a>),
so wird die Karte auf diese Stadt zentriert. <br />
Wird statt dessen eine Sensornummer angegeben, so wird die Karte auf diesen Sensor zentriert und gleich die zugehörige Grafik angezeigt
(z.B. für den Sensor Nr. 34188 ist der Aufruf dann: <a href="https://multigeiger.citysensor.de/34188">https://multigeiger.citysensor.de/34188</a>).
(z.B. für den Sensor Nr. 34188 ist der Aufruf dann: <a href="https://multigeiger.ecocurious.de/34188">https://multigeiger.ecocurious.de/34188</a>).
</p>
<h3 id="toc_2">Bedienelemente</h3>

View File

@@ -65,13 +65,12 @@ function getSensorName(db,sid) {
async function getSensorProperties(db,sid) {
let start = new Date();
console.log("Get properties for", sid, "from DB");
let sensorEntries = [{'sid':sid}];
let sensorEntries = [{ sid: sid }];
let coll = db.collection('properties');
let properties;
try {
properties = await coll.findOne({ _id: sid });
}
catch(e) {
} catch (e) {
console.log("getSensorProperties", e);
return {};
}
@@ -82,16 +81,34 @@ async function getSensorProperties(db,sid) {
if (Array.isArray(properties.name)) {
currentName = properties.name[properties.name.length - 1].name;
}
// Overwrite name field with string for frontend compatibility
properties.name = currentName;
sensorEntries[0]['name'] = currentName;
// Check if othersensors exists (might not in new DB structure)
if (!properties.othersensors || properties.othersensors.length === 0) {
// Neue Logik: Immer nur den aktuellen Sensor eintragen, dann nach passendem thp-Sensor suchen
let newSid = parseInt(sid) + 1;
let properties2 = await coll.findOne({ _id: newSid });
if (properties2) {
// Prüfe Typ (name enthält "BME" oder "thp") und gleiche Koordinaten
let name2 = properties2.name;
if (Array.isArray(name2)) {
name2 = name2[name2.length - 1].name;
}
let isTHP = (properties2.type && properties2.type.toLowerCase() === 'thp');
let sameLocation = false;
try {
const loc1 = properties.location && Array.isArray(properties.location) && properties.location[0] && properties.location[0].id;
const loc2 = properties2.location && Array.isArray(properties2.location) && properties2.location[0] && properties2.location[0].id;
sameLocation = (loc1 !== undefined && loc2 !== undefined && loc1 === loc2);
} catch (e) {
sameLocation = false;
}
if (isTHP && sameLocation) {
sensorEntries.push({ sid: newSid, name: name2 });
}
}
properties.othersensors = sensorEntries;
return properties;
}
let mustbeobject = false;
for(let i = 0, j=1; i<properties.othersensors.length; i++) {

View File

@@ -9,5 +9,5 @@ block content
#author
#mailadr
a(href="mailto:rexfue@gmail.com") mailto:rexfue@gmail.com
a(href="mailto:multigeiger@ecocurious.de") mailto:multigeiger@ecocurious.de
#versn Version: #{version} vom #{date}

View File

@@ -96,7 +96,7 @@ block content
#dialogWinSet
#author
#mailadr
a(href="mailto:rexfue@gmail.com") mailto:rexfue@gmail.com
a(href="mailto:multigeiger@ecocurious.de") mailto:multigeiger@ecocurious.de
#versn Version: #{version} vom #{date}

View File

@@ -27,5 +27,5 @@ block content
Auswahl entweder durch Anklicken der
Sensor-Nummer in der Tabelle oder direkt Aufrufen durch
Anhängen der Sensornummer an die URL (z.B.
<strong> feinstaub.rexfue.de/140</strong>).
<strong> multigeiger.ecocurious.de/68890</strong>).