23 Commits

Author SHA1 Message Date
182ebb8ba4 Fix marker z-index so newest locations appear on top
Changed rendering order to display oldest markers first and added
zIndexOffset to ensure newest location markers are always visible
on top when markers overlap. Also improved firstLocation logic to
only use the latest marker for map centering.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-14 19:49:22 +00:00
52d98428ca Fix browser caching issue preventing live updates in device filter
Added cache-busting parameter to API URL to prevent browser from
serving stale cached responses. This ensures that device-specific
filters always show the most recent location data.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-14 19:44:02 +00:00
59c46a023b Überarbeite Dokumentation auf aktuellen MQTT-only Stand
- README.md komplett neu geschrieben:
  - Fokus auf n8n-tracker.json (MQTT-only)
  - Entfernt: Telegram-Workflows, Datei-basierte Speicherung
  - Hinzugefügt: OwnTracks-Setup, Geräte-Mapping, erweiterte Features
  - Neue Sektionen: Sicherheitshinweise, DSGVO-Compliance
  - Praktische Code-Beispiele für Customization

- CLAUDE.md aktualisiert:
  - Neue Workflow-Architektur dokumentiert
  - NocoDB-Schema mit battery/speed Feldern
  - Web-Interface Details (Filter, Kartenebenen, Marker)
  - Wichtige Gotchas und Edge Cases hinzugefügt

- Dateien bereinigt:
  - Gelöscht: tracker.json, tracker-db.json, tracker-mqtt.json
  - Gelöscht: index_owntrack.html, locations-example.csv
  - Hinzugefügt: n8n-tracker.json (aktueller Workflow)
  - Hinzugefügt: database-example.csv (aktuelles Schema)

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-14 18:47:05 +00:00
4bec87d42b Replace marker icons with navigation-style circular icons
Changed marker design from rotated teardrop shapes to clean circular icons with directional indicators. The new design uses SVG for crisp rendering at all zoom levels.

- Latest position: 32x32px circle with arrow indicator
- Historical positions: 16x16px circles
- Uses device-specific colors (red for Joachim Pixel, blue for Huawei)
- White border for better visibility on all map layers

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-14 18:29:31 +00:00
1406445631 Fix device dropdown filter to show all MQTT devices
Changed strict equality (===) to loose equality (==) in loadLocations() when filtering MQTT data for device dropdown. This was preventing devices from appearing in the device selection dropdown because user_id is returned as string "0" from API.

This fix ensures both tid=10 (Joachim Pixel) and tid=11 (Huawei Smartphone) appear as selectable options in the device filter dropdown.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-14 18:25:34 +00:00
21fe35904f Fix user_id type comparison in location filter
Changed strict equality (===) to loose equality (==) in applyFilters() to handle user_id being returned as string "0" from API instead of number 0. This was preventing MQTT location data from being displayed on the map.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-14 18:13:03 +00:00
e5ca23a276 Refactor index.html to MQTT-only location tracker with device mapping
- Remove Telegram source filter and references
- Add device name mapping for username field (10→Joachim Pixel, 11→Huawei Smartphone)
- Implement color-coded markers and polylines per device
- Update time filter: default to 1h, add 3h/12h options, remove 7d/30d
- Add battery and speed info to location popups
- Improve marker design with custom droplet-shaped icons
- Filter only MQTT data (user_id = 0)
- Group locations by device with separate polylines
- Keep map layer selection (OSM, Satellite, Terrain, Dark)

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-14 17:52:21 +00:00
1e229582d4 Update README.md to reflect current feature set
- Document all three workflows (tracker.json, tracker-db.json, tracker-mqtt.json)
- Add detailed descriptions of both web interfaces (index.html, index_owntrack.html)
- Include comprehensive installation guide with all credential types
- Add complete data schema documentation (Telegram vs MQTT differentiation)
- Expand workflow architecture diagrams for all three variants
- Add 7 customization options with code examples
- Include security warnings (GDPR, CORS, API authentication)
- Add extensive troubleshooting section (6 common issues)
- Document MQTT/OwnTracks integration details
- Add repository contents table and roadmap

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-14 17:23:27 +00:00
8a5660b420 Add advanced filtering and map layer controls to location tracker
Added four comprehensive dropdown filters:
- Map layer switcher (standard, satellite, terrain, dark mode)
- Data source filter (Telegram/MQTT/all)
- Dynamic user/device filter (auto-populated from data)
- Time range filter (1h to 30d, plus all time)

Enhanced visualization:
- Latest location marked in red, historical in blue
- Proper layer management for markers and polylines
- Status shows filtered count vs total count
- All filters work in combination

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-14 16:28:14 +00:00
2c16642992 Add detailed coordinate debugging and validation
- Log latitude/longitude values and types before parsing
- Add null checks for marker_label and display_time
- Improve history polyline filtering for invalid coords
- Show "Keine aktuelle Position" when no current location

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-14 15:47:26 +00:00
40aecaafc0 Add extensive debugging to loadLocations function
- Add console.log statements at each step
- Show error message in status widget
- Add coordinate validation
- Remove incorrect success/failure logic

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-14 15:45:55 +00:00
1a1ad16d12 Fix latitude/longitude string parsing in index_owntrack.html
- Convert string latitude/longitude to float before using in Leaflet
- NocoDB returns coordinates as strings, causing Leaflet errors

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-14 15:42:50 +00:00
2d4cd19f52 Fix connection error handling in index_owntrack.html
- Add HTTP status check before parsing JSON
- Clear old markers and polylines on refresh to prevent stacking
- Improve error logging for better debugging

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-14 15:40:38 +00:00
54b8e26eb2 Fix speed field name in index_owntrack.html
- Change loc.velocity to loc.speed to match JSON response

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-14 15:00:03 +00:00
ea058828b8 Add battery and speed fields to tracker-db workflow
- Add battery and speed fields to Location processing node
- Add battery and speed fields to NocoDB storage
- Update API URL to home64.de domain
- Add new index_owntrack.html with battery/speed display

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-14 14:50:46 +00:00
035148df2e Fix timestamp validation in MQTT workflow
- Add validation for required fields (lat, lon, tst)
- Add timestamp validation to prevent "Invalid time value" error
- Skip entries with missing or invalid data
- Use fallback to current time if timestamp is invalid

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-14 13:19:21 +00:00
38dcd73100 Add MQTT/OwnTracks workflow for location tracking
- Add tracker-mqtt.json: New n8n workflow for MQTT-based location data
- MQTT workflow subscribes to owntracks/# topic
- Transforms OwnTracks data format to NocoDB schema
- Stores locations in same database as Telegram workflow
- Update CLAUDE.md with MQTT workflow documentation
- Add OwnTracks integration guide and data mapping details

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-14 11:43:03 +00:00
8f8923c9be Änderungen in der Ausgabe 2025-11-14 11:30:51 +00:00
5294943c65 Fix NocoDB sort option format to use array structure
Change sort option from object to array format to match n8n's
expected parameter structure for NocoDB nodes. This should resolve
import errors when loading the workflow.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-14 10:57:38 +00:00
a021f00d1b Fix NocoDB API query to sort locations by timestamp
Add sorting to the "Lade Daten aus NocoDB" node to return locations
in descending chronological order (newest first). This ensures the
web interface displays all location entries correctly, not just the
first unsorted entry.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-14 10:53:16 +00:00
39b3ec418f Dateien nach "/" hochladen 2025-11-14 10:47:25 +00:00
d4a5bf7c0a Add NocoDB-based workflow and example data
- Add tracker-db.json: NocoDB version of location tracker workflow
  - Replaces file-based storage with NocoDB database
  - Unlimited storage instead of 100-entry limit
  - Includes CREATE and READ operations for locations table
- Add locations-example.csv: Sample location data for NocoDB import
  - 8 example entries with Munich coordinates
  - Demonstrates expected data structure

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-14 10:06:27 +00:00
bf10598861 first commit 2025-11-14 09:58:21 +00:00