signalk-mareas-ihm 1.3.0 → 2.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -6,277 +6,172 @@
6
6
 
7
7
  ## Español
8
8
 
9
- Plugin de Signal K para **predicción de mareas en España** usando datos oficiales del **IHM (Instituto Hidrográfico de la Marina)**.
9
+ Plugin de Signal K para **predicción de mareas en España** usando datos oficiales del **IHM (Instituto Hidrográfico de la Marina)**, con **Visor de Fondeo** integrado, alarmas inteligentes y soporte para domótica.
10
10
 
11
- ### Características
11
+ ### Características principales
12
12
 
13
+ #### Mareas
13
14
  - **Predicción de mareas** automática por GPS o selección manual de estación
14
- - **Aplicación con interfaz visual (WebApp)** integrada en Signal K: consulta mareas, curvas de marea interactivas, selección de estación y configuración de alarmas
15
- - **Alarma de varada** configurable con aviso anticipado, sonido silenciable y estados visuales (compatible con KIP, OpenPlotter, etc.)
16
- - **Caché offline** de al menos 2 meses de predicciones
15
+ - **Curvas de marea interactivas** con HAT/LAT anuales, cursor interactivo y etiquetas de pleamar/bajamar
16
+ - **Coeficientes oficiales IHM** con descarga automática
17
17
  - **Consejo táctico** para las Rías Baixas (experimental)
18
- - **Bilingüe**: interfaz en español e inglés
19
-
20
- ### Modos de funcionamiento
18
+ - **Caché offline** de al menos 2 meses de predicciones
21
19
 
22
- | Modo | Descripción |
23
- |---|---|
24
- | **AUTOMÁTICO** (por defecto) | Detecta la estación IHM más cercana por GPS. Si no hay GPS al arrancar, usa **Vigo** como estación por defecto hasta que llegue señal. |
25
- | **MANUAL** | Selección libre de cualquier estación IHM. |
20
+ #### Visor de Fondeo
21
+ - **Mapa Leaflet** con posición GPS en tiempo real y capas múltiples (ESRI, Bing, Google, IHM S-52, SonarChart, MBTiles offline)
22
+ - **Anchor Watch** con alarma de garreo visual y sonora
23
+ - **Cadena largada** con slider bidireccional y cálculo automático
24
+ - **Radio de borneo y alarma** con etiquetas en la carta
25
+ - **Sincronización multi-dispositivo** en tiempo real (SSE)
26
+
27
+ #### AIS Inteligente
28
+ - **Detección de colisión** con targets AIS en zona de borneo
29
+ - **ACK por target individual** — silencia alarma de un barco sin desactivar la alarma general
30
+ - **Detección de garreo ajeno** — si un target ACKed se acerca >2m/min, la alarma se reactiva
31
+ - **Estimación de ancla** de otros barcos mediante análisis de track (centroide + radio máximo)
32
+ - **Anillos de colisión persistentes** en la carta
33
+
34
+ #### Alarmas Inteligentes
35
+ - **Alarma de varada** solo cuando el barco está parado (SOG < 0.5kn)
36
+ - **Detección de sonda** congelada, inestable, fuera de rango
37
+ - **Alarmas independientes** de garreo, AIS y sonda con control individual
38
+ - **Previsión meteorológica** integrada (Open-Meteo) con múltiples modelos
39
+
40
+ #### Domótica / KIP
41
+ - **Botones KIP** para fondear/levar y activar/desactivar alarmas
42
+ - **Endpoints REST** para Alexa, Google Home, Node-RED, MQTT
43
+ - **Endpoint toggle** para mandos a distancia con un solo botón
44
+
45
+ #### Bilingüe completo
46
+ - Interfaz en **español e inglés** en todas las vistas
47
+ - Idioma sincronizado entre Landing, Mareas y Visor de Fondeo
48
+ - Banderas de idioma en la barra inferior del visor
49
+
50
+ ### URLs
51
+
52
+ | URL | Función |
53
+ |-----|---------|
54
+ | `/signalk-mareas-ihm/` | Landing — selector Mareas / Visor de Fondeo |
55
+ | `/signalk-mareas-ihm/mareas` | Vista de Mareas (directo) |
56
+ | `/signalk-mareas-ihm/visorfondeo` | Visor de Fondeo (directo) |
57
+
58
+ ### Domótica — Endpoints REST
26
59
 
27
- ### Paths publicados
60
+ ```bash
61
+ # Fondear/Levar con un solo botón
62
+ curl -X POST http://openplotter.local:3000/signalk-mareas-ihm/api/anchor-watch/toggle
28
63
 
29
- En `vessels.self.environment.tide.*`:
64
+ # Fondear en posición GPS actual
65
+ curl -X POST http://openplotter.local:3000/signalk-mareas-ihm/api/anchor-watch/drop
30
66
 
31
- | Path | Descripción |
32
- |---|---|
33
- | `environment.tide.heightNow` | Altura actual de la marea (m) |
34
- | `environment.tide.heightNextHigh` | Próxima pleamar (m) |
35
- | `environment.tide.heightNextLow` | Próxima bajamar (m) |
36
- | `environment.tide.tendency` | Subiendo / Bajando |
37
- | `environment.tide.percentage` | Porcentaje del ciclo (0–100) |
38
- | `environment.tide.stationName` | Estación activa |
39
- | `environment.tide.coef` | Coeficiente de marea |
40
- | `environment.tide.vessel.draftEffective` | Calado efectivo (calado + margen × 1.15) |
41
- | `environment.tide.vessel.groundingRisk` | Riesgo de varada (true/false) |
42
- | `environment.tide.vessel.groundingStatus` | Estado físico |
43
- | `environment.tide.vessel.finalExpctDepthBKeel` | Sonda mínima esperada |
67
+ # Levar ancla
68
+ curl -X POST http://openplotter.local:3000/signalk-mareas-ihm/api/anchor-watch/lift
44
69
 
45
- La lista completa está disponible en **INSTRUCCIONES** dentro de la WebApp.
70
+ # Estado simple (para monitorización)
71
+ curl http://openplotter.local:3000/signalk-mareas-ihm/api/anchor-watch/simple
72
+ ```
46
73
 
47
- ### Requisitos
74
+ ### KIP — Paths para Boolean Control
48
75
 
49
- - Signal K Server ≥ 2.x
50
- - Node.js ≥ 18
51
- - `navigation.position` (GPS) para detección automática de estación (opcional: funciona sin GPS usando estación por defecto)
76
+ | Path | Función |
77
+ |------|---------|
78
+ | `environment.anchor.mareasIhm.anchorCommand` | Fondear (true) / Levar (false) |
79
+ | `environment.anchor.mareasIhm.garreoAlarmCommand` | Alarma garreo ON/OFF |
80
+ | `environment.anchor.mareasIhm.aisAlarmCommand` | Alarma AIS ON/OFF |
52
81
 
53
82
  ### Instalación
54
83
 
55
- **Desde la App Store de Signal K** (recomendado): busca "Mareas" o "IHM".
56
-
57
- **Manual:**
58
-
59
84
  ```bash
85
+ cd /home/pi
86
+ unzip -o signalk-mareas-ihm_v1.3.1_RevXX.zip
87
+ cd signalk-mareas-ihm
88
+ npm install && npm run build && npm pack
60
89
  cd ~/.signalk
61
- npm install signalk-mareas-ihm
62
- # Reiniciar Signal K
90
+ npm install /home/pi/signalk-mareas-ihm/signalk-mareas-ihm-1.3.1.tgz --save
91
+ sudo systemctl restart signalk
63
92
  ```
64
93
 
65
- ### Configuración
66
-
67
- En *Server → Plugin Config*:
68
-
69
- - **IHM base URL**: URL del servicio IHM
70
- - **Refresco caché (horas)**: por defecto 48 h
71
- - **Frecuencia de actualización**: minutos entre actualizaciones
72
-
73
- El calado del barco se lee automáticamente de Signal K (`design.draft`) o se puede configurar desde la WebApp (ventana ALARMA → margen de seguridad).
74
-
75
- ### Changelog
76
-
77
- #### v1.3.0
78
- - **Visor de Fondeo**: nueva página independiente `/mapafondeo` con mapa Leaflet a pantalla completa.
79
- - Icono de barco SVG cenital con escala real según `design.length` / `design.beam` y rotación por heading/COG. A zoom bajo se sustituye por diana roja.
80
- - Línea cadena proa→ancla con rumbo y distancia en tiempo real.
81
- - Círculos dinámicos: borneo (azul) y alarma (rojo) con etiquetas de metros permanentes.
82
- - Sliders de radio borneo y alarma ajustables en caliente.
83
- - Marcador de ancla ⚓ arrastrable con actualización inmediata de círculos.
84
- - Track GPS con historial de 3000 puntos.
85
- - Targets AIS cercanos (diferencia estáticos vs dinámicos).
86
- - Detección de `@signalk/tracks-plugin` con popup recomendación.
87
- - Botón meteo → Open-Meteo con temperatura, viento, presión, precipitación.
88
- - Capas: OSM, OpenSeaMap, MBTiles con slider de transparencia individual.
89
- - Historial últimas 5 posiciones del ancla con fecha/hora.
90
- - Favicon, botón volver a Mareas IHM, copyright OSM/OpenSeaMap.
91
- - Escala gráfica dinámica (metros).
92
- - **Cartas MBTiles**: servidor de tiles integrado (better-sqlite3) para cartas raster. Selector de carpeta (default `/home/pi/charts`), checkboxes + opacidad por carta.
93
- - **Alarma de Garreo**: evaluación cada 5s distancia barco-ancla. Radio alarma = swingRadiusMax + margen ajustable (slider 1-50m). Notificación Signal K estándar.
94
- - **Cadena editable**: clic en caja Cadena para introducir metros reales largados, persiste en backend, sincroniza con Visor.
95
- - **Paths Signal K nuevos**: `watchEnabled`, `anchorLat`, `anchorLon`, `distanceToAnchor`, `alarmRadius`, `dragging`.
96
- - **Layout mejorado**: grid auto-fill sin scroll, cajas expandidas al espacio disponible.
97
-
98
- #### v1.2.1
99
- - **UI Fondeo renovada**: cajas resultado con títulos uniformes 14px, Cadena y Profundidad en naranja, Estado Marea muestra resumen, Status Profundidad con estado varada, Publicar SK en barra verde.
100
- - **Config overlay**: panel configuración se superpone sin scroll, con botón Calcular naranja.
101
- - **Botones 170px**: todos los botones de la barra principal ampliados.
102
- - **Fix alarma**: notificaciones OpenPlotter se limpian correctamente (state:normal).
103
- - **Fix hBow**: corregido borrado de altura de roldana.
104
- - **Fix Publicar SK**: estado persistente entre reinicios.
105
-
106
- #### v1.2.0
107
- - ⚓ **Calculadora de fondeo**: nueva pestaña FONDEO con modelo de scope náutico. Cadena recomendada, radio de borneo, publicación opcional en Signal K (`environment.anchor.mareasIhm.*`).
108
- - 🔇 **Fix notificaciones**: la alarma de varada suena una sola vez (antes se repetía cada 60s).
109
- - 📡 **Arranque sin GPS/Internet**: lista hardcoded de todas las estaciones IHM españolas. Siempre hay estaciones disponibles para elegir.
110
- - 📋 **Nuevos paths FONDEO**: nuevos paths publicados en Signal K relacionados con la función FONDEO.
111
- - 🔍 **Tamaño estable al Zoom**: la interfaz siempre llena la ventana al 100% por defecto, sin encogerse al reducir o ampliar el zoom del navegador.
112
-
113
- #### v1.1.1
114
- - Coeficientes IHM oficiales con auto-descarga del PDF. Elimina el "dato bailante".
115
- - Fix zona horaria: coeficiente usa hora local española (no UTC).
116
- - Fix ESM `__dirname` para módulos ES.
117
-
118
- #### v1.1.0
119
- - Alarma de varada: aviso 24h, anticipada, snooze, silenciar sonido.
120
- - Curvas de marea interactivas (SVG).
121
- - Bilingüe ES/EN completo.
122
- - Salida/Puesta sol (integración Derived Data).
123
- - Consejo táctico Rías Baixas (experimental).
124
-
125
- #### v1.0.0
126
- - Versión inicial: datos IHM, AUTO/MANUAL, paths Signal K.
127
-
128
- ### Créditos y licencia
129
-
130
- Licencia Apache 2.0. Derivado originalmente de `signalk-tides` (Brandon Keepers, Joachim Bakke, Scott Bender y contribuidores). Véase `NOTICE` para detalles de atribución.
131
-
132
- 📧 Contacto: **tradesolutions@gmail.com** (indicar "MAREAS (IHM)" en el asunto)
133
-
134
94
  ---
135
95
 
136
96
  ## English
137
97
 
138
- Signal K plugin for **tide predictions in Spain** using official data from the **IHM (Instituto Hidrográfico de la Marina Spanish Navy Hydrographic Institute)**.
98
+ Signal K plugin for **Spanish tide predictions** using official data from **IHM (Instituto Hidrográfico de la Marina)**, with integrated **Anchor Watch Viewer**, smart alarms and home automation support.
139
99
 
140
- ### Features
100
+ ### Main Features
141
101
 
102
+ #### Tides
142
103
  - **Automatic tide prediction** by GPS or manual station selection
143
- - **Visual WebApp** integrated in Signal K: view tides, interactive tide curves, station selection and alarm configuration
144
- - **Grounding alarm** with advance warning, mutable sound and visual states (compatible with KIP, OpenPlotter, etc.)
145
- - **Offline cache** of at least 2 months of predictions
104
+ - **Interactive tide curves** with annual HAT/LAT, interactive cursor and high/low tide labels
105
+ - **Official IHM coefficients** with automatic download
146
106
  - **Tactical advice** for the Rías Baixas (experimental)
147
- - **Bilingual**: Spanish and English interface
148
-
149
- ### Operating modes
150
-
151
- | Mode | Description |
152
- |---|---|
153
- | **AUTOMATIC** (default) | Picks the nearest IHM station by GPS. If no GPS is available at startup, defaults to **Vigo** until a fix arrives. |
154
- | **MANUAL** | Freely pick any IHM station. |
155
-
156
- ### Published paths
107
+ - **Offline cache** of at least 2 months of predictions
157
108
 
158
- Under `vessels.self.environment.tide.*`:
109
+ #### Anchor Watch Viewer
110
+ - **Leaflet map** with real-time GPS position and multiple layers (ESRI, Bing, Google, IHM S-52, SonarChart, offline MBTiles)
111
+ - **Anchor Watch** with visual and audible drag alarm
112
+ - **Chain deployed** with bidirectional slider and automatic calculation
113
+ - **Swing and alarm radius** with chart labels
114
+ - **Multi-device real-time sync** (SSE)
115
+
116
+ #### Smart AIS
117
+ - **Collision detection** with AIS targets in swing zone
118
+ - **Per-target ACK** — silence alarm for one boat without disabling the general alarm
119
+ - **External dragging detection** — if an ACKed target approaches >2m/min, alarm reactivates
120
+ - **Anchor estimation** for other boats via track analysis (centroid + max radius)
121
+ - **Persistent collision rings** on chart
122
+
123
+ #### Smart Alarms
124
+ - **Grounding alarm** only when boat is stopped (SOG < 0.5kn)
125
+ - **Sounder detection** for frozen, unstable, out-of-range readings
126
+ - **Independent alarms** for drag, AIS and depth with individual control
127
+ - **Weather forecast** integrated (Open-Meteo) with multiple models
128
+
129
+ #### Home Automation / KIP
130
+ - **KIP buttons** for drop/lift and alarm enable/disable
131
+ - **REST endpoints** for Alexa, Google Home, Node-RED, MQTT
132
+ - **Toggle endpoint** for single-button remote controls
133
+
134
+ #### Full Bilingual
135
+ - Interface in **Spanish and English** across all views
136
+ - Language synced between Landing, Tides and Anchor Watch Viewer
137
+ - Language flags in the viewer's bottom bar
138
+
139
+ ### URLs
140
+
141
+ | URL | Function |
142
+ |-----|----------|
143
+ | `/signalk-mareas-ihm/` | Landing — Tides / Anchor Watch selector |
144
+ | `/signalk-mareas-ihm/mareas` | Tides view (direct) |
145
+ | `/signalk-mareas-ihm/visorfondeo` | Anchor Watch Viewer (direct) |
146
+
147
+ ### Home Automation — REST Endpoints
159
148
 
160
- | Path | Description |
161
- |---|---|
162
- | `environment.tide.heightNow` | Current tide height (m) |
163
- | `environment.tide.heightNextHigh` | Next high water (m) |
164
- | `environment.tide.heightNextLow` | Next low water (m) |
165
- | `environment.tide.tendency` | Rising / Falling |
166
- | `environment.tide.percentage` | Tide cycle percentage (0–100) |
167
- | `environment.tide.stationName` | Active station |
168
- | `environment.tide.coef` | Tidal coefficient |
169
- | `environment.tide.vessel.draftEffective` | Effective draft (draft + margin × 1.15) |
170
- | `environment.tide.vessel.groundingRisk` | Grounding risk (true/false) |
171
- | `environment.tide.vessel.groundingStatus` | Physical state |
172
- | `environment.tide.vessel.finalExpctDepthBKeel` | Expected minimum depth under keel |
149
+ ```bash
150
+ # Drop/Lift with single button
151
+ curl -X POST http://openplotter.local:3000/signalk-mareas-ihm/api/anchor-watch/toggle
173
152
 
174
- The full list is available under **INSTRUCTIONS** in the WebApp.
153
+ # Drop anchor at current GPS
154
+ curl -X POST http://openplotter.local:3000/signalk-mareas-ihm/api/anchor-watch/drop
175
155
 
176
- ### Requirements
156
+ # Lift anchor
157
+ curl -X POST http://openplotter.local:3000/signalk-mareas-ihm/api/anchor-watch/lift
177
158
 
178
- - Signal K Server ≥ 2.x
179
- - Node.js ≥ 18
180
- - `navigation.position` (GPS) for automatic station detection (optional: works without GPS using a default station)
159
+ # Simple status (for monitoring)
160
+ curl http://openplotter.local:3000/signalk-mareas-ihm/api/anchor-watch/simple
161
+ ```
181
162
 
182
163
  ### Installation
183
164
 
184
- **From the Signal K App Store** (recommended): search for "Mareas" or "IHM".
185
-
186
- **Manual:**
187
-
188
165
  ```bash
166
+ cd /home/pi
167
+ unzip -o signalk-mareas-ihm_v1.3.1_RevXX.zip
168
+ cd signalk-mareas-ihm
169
+ npm install && npm run build && npm pack
189
170
  cd ~/.signalk
190
- npm install signalk-mareas-ihm
191
- # Restart Signal K
171
+ npm install /home/pi/signalk-mareas-ihm/signalk-mareas-ihm-1.3.1.tgz --save
172
+ sudo systemctl restart signalk
192
173
  ```
193
174
 
194
- ### Configuration
195
-
196
- In *Server Plugin Config*:
197
-
198
- - **IHM base URL**: IHM service URL
199
- - **Cache refresh (hours)**: default 48 h
200
- - **Update frequency**: minutes between updates
201
-
202
- Vessel draft is read automatically from Signal K (`design.draft`) or can be configured from the WebApp (ALARM window → safety margin).
203
-
204
- ### Changelog
205
-
206
- #### v1.3.0
207
- - **Anchor Map Viewer**: new standalone `/mapafondeo` page with full-screen Leaflet map.
208
- - Cenital sailboat SVG icon scaled to real `design.length`/`design.beam`, heading rotation. Falls back to red target at low zoom.
209
- - Chain line bow→anchor with bearing and real-time distance.
210
- - Dynamic circles: swing (blue) and alarm (red) with permanent meter labels.
211
- - Adjustable sliders for swing and alarm radius.
212
- - Draggable anchor ⚓ marker with instant circle update.
213
- - GPS track (3000 points), AIS targets, OpenSeaMap overlay.
214
- - Tracks-plugin detection with install recommendation popup.
215
- - Meteo button → Open-Meteo (temperature, wind, pressure, rain).
216
- - MBTiles charts with per-layer opacity slider.
217
- - Last 5 anchor positions history with timestamps.
218
- - **MBTiles Charts**: integrated tile server (better-sqlite3) for raster charts. Folder selector, per-chart opacity control.
219
- - **Anchor Drag Alarm**: 5-second evaluation. Alarm radius = swingRadiusMax + adjustable margin (1-50m slider). Standard Signal K notification.
220
- - **Editable Chain**: click chain box to enter actual deployed meters, persisted in backend, synced to Viewer.
221
- - **New Signal K paths**: `watchEnabled`, `anchorLat`, `anchorLon`, `distanceToAnchor`, `alarmRadius`, `dragging`.
222
- - **Improved layout**: auto-fill grid, no scroll, boxes expand to fill available space.
223
-
224
- #### v1.2.1
225
- - **UI Fondeo renovada**: cajas resultado con títulos uniformes 14px, Cadena y Profundidad en naranja, Estado Marea muestra resumen, Status Profundidad con estado varada, Publicar SK en barra verde.
226
- - **Config overlay**: panel configuración se superpone sin scroll, con botón Calcular naranja.
227
- - **Botones 170px**: todos los botones de la barra principal ampliados.
228
- - **Fix alarma**: notificaciones OpenPlotter se limpian correctamente (state:normal).
229
- - **Fix hBow**: corregido borrado de altura de roldana.
230
- - **Fix Publicar SK**: estado persistente entre reinicios.
231
-
232
- #### v1.2.0
233
- - ⚓ **Anchoring calculator**: new ANCHOR tab with nautical scope model. Recommended chain, swing radius, optional Signal K publication (`environment.anchor.mareasIhm.*`).
234
- - 🔇 **Notification fix**: grounding alarm sounds once (previously repeated every 60s).
235
- - 📡 **Startup without GPS/Internet**: hardcoded list of all Spanish IHM stations. Stations always available for selection.
236
- - 📋 **New ANCHOR paths**: new Signal K paths published for the ANCHOR function.
237
- - 🔍 **Stable Zoom size**: UI always fills the window at 100% by default, no shrinking or growing when changing browser zoom.
238
-
239
- #### v1.1.1
240
- - Official IHM coefficients with PDF auto-download. Eliminates "dancing data".
241
- - Timezone fix: coefficient uses Spanish local time (not UTC).
242
- - ESM `__dirname` fix for ES modules.
243
-
244
- #### v1.1.0
245
- - Grounding alarm: 24h warning, advance alarm, snooze, mute sound.
246
- - Interactive tide curves (SVG).
247
- - Full ES/EN bilingual interface.
248
- - Sunrise/Sunset (Derived Data integration).
249
- - Rías Baixas tactical advice (experimental).
250
-
251
- #### v1.0.0
252
- - Initial release: IHM data, AUTO/MANUAL, Signal K paths.
253
-
254
- ### Credits and license
255
-
256
- Apache 2.0 License. Originally derived from `signalk-tides` (Brandon Keepers, Joachim Bakke, Scott Bender and contributors). See `NOTICE` for attribution details.
257
-
258
- 📧 Contact: **tradesolutions@gmail.com** (include "MAREAS (IHM)" in the subject)
259
-
260
- ### v1.3.0 — Visor de Fondeo + Alarma de Garreo
261
-
262
- **ES:**
263
- - **Visor de Fondeo** (`/signalk-mareas-ihm/mapafondeo`): Página standalone Leaflet a pantalla completa.
264
- - Icono SVG cenital velero escalado a `design.length`/`design.beam` con rotación heading. Diana roja a zoom bajo.
265
- - Línea cadena proa→ancla, círculos borneo (azul) y alarma (rojo) con etiquetas metros.
266
- - Sliders ajustables, ancla arrastrable, track GPS, targets AIS, OpenSeaMap.
267
- - Cartas MBTiles con slider opacidad por capa. Botón meteo → Open-Meteo.
268
- - Historial 5 últimas posiciones ancla. Favicon, botón volver, copyright.
269
- - **Alarma de Garreo**: Detección cada 5s. Radio = swingRadiusMax + margen slider (1-50m). Notificación SK `notifications.signalk-mareas-ihm.anchorDrag`.
270
- - **Servidor MBTiles** (better-sqlite3): Carga cartas `.mbtiles` desde `/home/pi/charts/` (configurable).
271
- - **Cadena editable**: Clic caja Cadena → introducir metros reales largados, persiste backend.
272
- - **Paths SK nuevos**: `watchEnabled`, `anchorLat`, `anchorLon`, `distanceToAnchor`, `alarmRadius`, `dragging`.
273
- - **Layout**: Grid auto-fill sin scroll, cajas expandidas.
274
-
275
- **EN:**
276
- - **Anchor Map** (`/signalk-mareas-ihm/mapafondeo`): New standalone Leaflet page showing position, anchor, and swing radius. Mobile accessible.
277
- - **Anchor Drag Alarm**: Continuous drag detection. Alarm radius = swingRadiusMax + 5m. Signal K notification `notifications.signalk-mareas-ihm.anchorDrag`.
278
- - **MBTiles Server**: Auto-loads nautical chart `.mbtiles` files (SAS Planet) from `/home/pi/charts/` (configurable). Checkboxes to switch between charts without reloading.
279
- - **Layers**: OpenSeaMap overlay, OSM CartoDB Dark fallback when no local MBTiles.
280
- - **Map Button**: Box 9 in anchor grid (double width), opens map in new tab.
281
- - **Search**: Search across Instructions and Changelog with highlighting and auto-scroll.
282
- - **New Signal K paths**: `environment.anchor.mareasIhm.watchEnabled`, `.anchorLat`, `.anchorLon`, `.distanceToAnchor`, `.alarmRadius`, `.dragging`.
175
+ ---
176
+
177
+ © IHM Datos oficiales del Instituto Hidrográfico de la Marina de España
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": "2.0.0",
3
+ "timestamp": "20260522-2339",
4
+ "gitHash": null,
5
+ "gitDirty": true,
6
+ "builtAt": "2026-05-22T21:39:55.610Z"
7
+ }