@mxtommy/kip 4.5.0-beta.1 → 4.5.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/.github/copilot-instructions.md +19 -6
- package/.github/instructions/project.instructions.md +42 -6
- package/CHANGELOG.md +13 -0
- package/README.md +11 -7
- package/package.json +8 -5
- package/plugin/duckdb-parquet-storage.service.js +1206 -0
- package/plugin/history-series.service.js +439 -0
- package/plugin/index.js +670 -15
- package/plugin/openApi.json +253 -3
- package/plugin/plugin-auth.service.js +75 -0
- package/plugin-config-data/kip/historicalData/kip-history.duckdb +0 -0
- package/plugin-config-data/kip/historicalData/parquet/chart-1/1772344583976-1772344583976.parquet +0 -0
- package/plugin-config-data/kip/historicalData/parquet/live-1/1771408800000-1771408890000.parquet +0 -0
- package/plugin-config-data/kip/historicalData/parquet/live-1/1771412400000-1771412490000.parquet +0 -0
- package/plugin-config-data/kip/historicalData/parquet/live-1/1771419600000-1771419650000.parquet +0 -0
- package/plugin-config-data/kip/historicalData/parquet/live-1/1772344584154-1772344584154.parquet +0 -0
- package/plugin-config-data/kip/historicalData/parquet/live-1/1772344584191-1772344584191.parquet +0 -0
- package/plugin-config-data/kip/historicalData/parquet/live-1/1772344584268-1772344584268.parquet +0 -0
- package/plugin-config-data/kip/historicalData/parquet/live-2/1771502400000-1771502400000.parquet +0 -0
- package/plugin-config-data/kip/historicalData/parquet/live-3/1771408800000-1771408890000.parquet +0 -0
- package/plugin-config-data/kip/historicalData/parquet/live-3/1771412400000-1771412490000.parquet +0 -0
- package/plugin-config-data/kip/historicalData/parquet/live-3/1771419600000-1771419650000.parquet +0 -0
- package/plugin-config-data/kip/historicalData/parquet/live-3/1772344584268-1772344584268.parquet +0 -0
- package/plugin-config-data/kip/historicalData/parquet/live-4/1771408800000-1771408890000.parquet +0 -0
- package/plugin-config-data/kip/historicalData/parquet/live-4/1771412400000-1771412490000.parquet +0 -0
- package/plugin-config-data/kip/historicalData/parquet/live-4/1771419600000-1771419650000.parquet +0 -0
- package/plugin-config-data/kip/historicalData/parquet/live-5/1771412400000-1771412490000.parquet +0 -0
- package/plugin-config-data/kip/historicalData/parquet/live-5/1771419600000-1771419650000.parquet +0 -0
- package/plugin-config-data/kip/historicalData/parquet/live-6/1771419600000-1771419650000.parquet +0 -0
- package/plugin-config-data/kip/historicalData/parquet/live-prefixed-1/1771408800000-1771408890000.parquet +0 -0
- package/plugin-config-data/kip/historicalData/parquet/live-prefixed-1/1771412400000-1771412490000.parquet +0 -0
- package/plugin-config-data/kip/historicalData/parquet/live-prefixed-1/1771419600000-1771419650000.parquet +0 -0
- package/plugin-config-data/kip/historicalData/parquet/live-prefixed-1/1772344584191-1772344584191.parquet +0 -0
- package/plugin-config-data/kip/historicalData/parquet/live-prefixed-1/1772344584268-1772344584268.parquet +0 -0
- package/public/assets/help-docs/chartplotter.md +5 -18
- package/public/assets/help-docs/community.md +0 -3
- package/public/assets/help-docs/configuration.md +1 -1
- package/public/assets/help-docs/contact-us.md +0 -4
- package/public/assets/help-docs/dashboards.md +20 -18
- package/public/assets/help-docs/datainspector.md +7 -5
- package/public/assets/help-docs/history-api.md +116 -0
- package/public/assets/help-docs/menu.json +18 -6
- package/public/assets/help-docs/nodered-control-flows.md +125 -0
- package/public/assets/help-docs/putcontrols.md +101 -60
- package/public/assets/help-docs/welcome.md +6 -7
- package/public/assets/help-docs/widget-historical-series.md +66 -0
- package/public/assets/help-docs/zones.md +5 -10
- package/public/{chunk-KFFAA7DL.js → chunk-2ICAVOT2.js} +8 -8
- package/public/chunk-6XFWUUDD.js +3 -0
- package/public/chunk-A6DQJFP4.js +16 -0
- package/public/chunk-B75MT7ND.js +1 -0
- package/public/{chunk-T6TFVZVM.js → chunk-CEB42O2C.js} +1 -1
- package/public/chunk-CHGXAEKT.js +2 -0
- package/public/chunk-D7VDX7ZF.js +5 -0
- package/public/chunk-DD4F6F4S.js +9 -0
- package/public/{chunk-ZQER6AIQ.js → chunk-DEGYRCMI.js} +1 -1
- package/public/{chunk-M2B5OYGO.js → chunk-DEM56G4S.js} +1 -1
- package/public/chunk-DYTBBUMI.js +4 -0
- package/public/{chunk-YIYYVDFO.js → chunk-EDNYYQIZ.js} +2 -2
- package/public/chunk-FNF7M3AE.js +1 -0
- package/public/chunk-IHURI4IH.js +5 -0
- package/public/chunk-J3LDKVIS.js +50 -0
- package/public/{chunk-5FEX27I4.js → chunk-JB4YVVNW.js} +1 -1
- package/public/chunk-KPHICV76.js +5 -0
- package/public/{chunk-QZKCRH3H.js → chunk-KZ5DUKAX.js} +1 -1
- package/public/{chunk-HMOOTAEA.js → chunk-LQDSU4WS.js} +3 -3
- package/public/{chunk-IXQ7KIFY.js → chunk-MGPPVLZ7.js} +1 -1
- package/public/{chunk-QVCLOCEC.js → chunk-R7RQHWKJ.js} +1 -1
- package/public/chunk-S72JTJPN.js +6 -0
- package/public/chunk-UYIJND2R.js +1 -0
- package/public/chunk-YCEXTKGG.js +1 -0
- package/public/chunk-YKJKIWXO.js +6 -0
- package/public/index.html +1 -1
- package/public/main-EG2WF4EO.js +1 -0
- package/tools/schematics/create-host2-widget/files/readme/README.md.template +1 -1
- package/public/assets/help-docs/datasets.md +0 -95
- package/public/chunk-2OB7ZJBR.js +0 -3
- package/public/chunk-6GGJZDRE.js +0 -1
- package/public/chunk-6V4GGGXE.js +0 -2
- package/public/chunk-A5BW6BUM.js +0 -1
- package/public/chunk-DGE5YFPU.js +0 -5
- package/public/chunk-G6M3Z3BY.js +0 -53
- package/public/chunk-GMGZLXY7.js +0 -4
- package/public/chunk-GUZ3BDVZ.js +0 -2
- package/public/chunk-ICDGHQFP.js +0 -6
- package/public/chunk-JCNE4QHQ.js +0 -15
- package/public/chunk-K6XYUNG4.js +0 -8
- package/public/chunk-LGCQEN7V.js +0 -4
- package/public/chunk-O3JH7UTR.js +0 -1
- package/public/chunk-Q3USFT4F.js +0 -2
- package/public/chunk-VIKU7BH7.js +0 -1
- package/public/chunk-XMQPXXLW.js +0 -8
- package/public/main-4URMGBQS.js +0 -1
- package/rm-npmjs-beta.sh +0 -50
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
|
|
2
|
+
|
|
3
|
+
## Widget Historical Chart
|
|
4
|
+
|
|
5
|
+
Widgets that use numeric paths automatically track and store data for their configured paths. This lets you easily view charts showing the last 15 minutes, 1 hour, 8 hours, or 24 hours of data.
|
|
6
|
+
|
|
7
|
+
## Accessing Widget Historical Charts
|
|
8
|
+
|
|
9
|
+
### Locked Dashboard Quick View
|
|
10
|
+
You can open a widget history dialog directly from a locked dashboard:
|
|
11
|
+
|
|
12
|
+
- **Touch devices:** Two-finger tap a widget
|
|
13
|
+
- **Desktop / mouse:** Right-click a widget or two-finger click on trackpads
|
|
14
|
+
|
|
15
|
+
This dialog displays only historical data (no live stream overlay).
|
|
16
|
+
|
|
17
|
+
## Which Widgets Support History?
|
|
18
|
+
Most widgets that use numeric paths support history, including the Horizon widget.
|
|
19
|
+
|
|
20
|
+
## Which Chart Widgets Support Data Seeding?
|
|
21
|
+
|
|
22
|
+
### Data Chart Widget
|
|
23
|
+
- **Supported:** Yes, fully seeded with history data.
|
|
24
|
+
- **Requirements:** Time scale must be minutes or longer.
|
|
25
|
+
|
|
26
|
+
### Wind Trends Widget
|
|
27
|
+
- **Supported:** Yes, fully seeded with history data.
|
|
28
|
+
- **Requirements:** Time span of `5 minutes` or `30 minutes`.
|
|
29
|
+
|
|
30
|
+
### Numeric Widget's Mini Chart
|
|
31
|
+
- **Supported:** No. Mini charts use very short time windows (12 seconds) and skip history seeding.
|
|
32
|
+
- Mini charts start live-only for performance reasons.
|
|
33
|
+
|
|
34
|
+
### History Seeding
|
|
35
|
+
When you open a chart widget with a large time scale (minutes or larger):
|
|
36
|
+
1. KIP requests historical data points.
|
|
37
|
+
2. The chart immediately displays the historical trend.
|
|
38
|
+
|
|
39
|
+
### Live Updates
|
|
40
|
+
After history data loads:
|
|
41
|
+
- New data points arrive continuously.
|
|
42
|
+
- The chart smoothly transitions from history to live updates.
|
|
43
|
+
- Old data points are removed to maintain a rolling window of the configured time scale.
|
|
44
|
+
|
|
45
|
+
## How Does Historical Widget Data Work?
|
|
46
|
+
|
|
47
|
+
KIP and its server-side plugin work together to seamlessly monitor dashboard and widget configurations. For numeric and chart-type widgets (such as Data Chart and Wind Trends), time-series data is automatically captured and managed in the background. For the Data Chart widget, this enables pre-filling the chart instead of starting empty.
|
|
48
|
+
|
|
49
|
+
Time-series data is pruned automatically, retaining only the data required by active widgets and only for the time ranges those widgets display. This process is fully transparent, requires no manual intervention, and keeps server storage efficient and lean.
|
|
50
|
+
|
|
51
|
+
This feature uses History-API query/request, introduced in Signal K version 2.22.1.
|
|
52
|
+
|
|
53
|
+
## Configuration Options
|
|
54
|
+
|
|
55
|
+
Configuration options are found in **Settings → Options → Display** under the Widget Historical Data section.
|
|
56
|
+
|
|
57
|
+
You can:
|
|
58
|
+
- Disable KIP's automatic time-series and data capture services and use a History-API provider of your choice. See [Using The History-API](history-api.md) in the Integrations Help menu for more details.
|
|
59
|
+
- Disable access to widget historical charts (disables two-finger tap, mouse right-click, or two-finger click on trackpads).
|
|
60
|
+
|
|
61
|
+
If you don't want to use this feature, set the option to use a History API provider (this turns off the plugin's data collection), and disable widget historical charts to also disable the UI elements.
|
|
62
|
+
|
|
63
|
+
## Questions or Issues?
|
|
64
|
+
|
|
65
|
+
- Refer to [Using The History-API](history-api.md) to learn how to use other History API providers.
|
|
66
|
+
- For general questions or issues, see the `Contact-Us` help page—the KIP community is active on Discord and GitHub.
|
|
@@ -2,7 +2,6 @@
|
|
|
2
2
|
|
|
3
3
|
Stay informed about your vessel’s data with Signal K’s state notifications. For example, Signal K can flag certain sensor readings—such as depth or temperature—when they reach critical levels. KIP can then visually or audibly alert you. For instance, if the depth drops to 3 meters or less, KIP can highlight this with a warning sound or visual cue. This powerful feature combines **Zones Configuration** and **Notification Methods** in Signal K.
|
|
4
4
|
|
|
5
|
-
---
|
|
6
5
|
|
|
7
6
|
## Zones & Notification Configuration
|
|
8
7
|
|
|
@@ -15,7 +14,6 @@ For more details on path units, see the [Keys Reference (Vessel)](https://signal
|
|
|
15
14
|
|
|
16
15
|
As path values move between zone ranges, Signal K generates a notification sent to KIP. Each notification includes a state (severity), optional presentation methods (visual and/or sound), and an optional message.
|
|
17
16
|
|
|
18
|
-
---
|
|
19
17
|
|
|
20
18
|
### Zone State and Method Guidance
|
|
21
19
|
|
|
@@ -26,13 +24,12 @@ As path values move between zone ranges, Signal K generates a notification sent
|
|
|
26
24
|
- KIP uses predefined, state specific sound files.
|
|
27
25
|
- You can configure KIP to globally ignore audio prompts in **Settings > Notifications**; this applies globally to all notifications and paths.
|
|
28
26
|
|
|
29
|
-
|
|
30
|
-
1. You don’t need zones for every path.
|
|
31
|
-
2. You don’t need to configure every zone for a given path. Only configure what is really needed. For example, if all you want is to be alerted at 20% State Of Charge, just add one zone with the Alarm state and method. No need for Warn and Alert zones in this case.
|
|
32
|
-
3. Don't enable the **visual** method if you don't want a zone state in the Notifications menu.
|
|
33
|
-
4. Keep your zone setup simple—too many Notifications can become overwhelming.
|
|
27
|
+
>**Tips:**
|
|
28
|
+
>1. You don’t need zones for every path.
|
|
29
|
+
>2. You don’t need to configure every zone for a given path. Only configure what is really needed. For example, if all you want is to be alerted at 20% State Of Charge, just add one zone with the Alarm state and method. No need for Warn and Alert zones in this case.
|
|
30
|
+
>3. Don't enable the **visual** method if you don't want a zone state in the Notifications menu.
|
|
31
|
+
>4. Keep your zone setup simple—too many Notifications can become overwhelming.
|
|
34
32
|
|
|
35
|
-
---
|
|
36
33
|
|
|
37
34
|
### Taking Action on Notifications
|
|
38
35
|
|
|
@@ -46,7 +43,6 @@ You can **Silence** or **Resolve** notifications.
|
|
|
46
43
|
- If you turn off a device, then resolve its last notification, it will remain resolved until the device is powered back on and sends new data.
|
|
47
44
|
- Different devices send data at different intervals—some multiple times per second, others as infrequently as once per day. Check your device or plugin documentation for details. Once a notification is silenced or resolved, it will stay in this state until a new value is received and evaluated.
|
|
48
45
|
|
|
49
|
-
---
|
|
50
46
|
|
|
51
47
|
## Displaying Zones and Notifications
|
|
52
48
|
|
|
@@ -81,7 +77,6 @@ You can **Silence** or **Resolve** notifications.
|
|
|
81
77
|
- **Individual Widgets:**
|
|
82
78
|
Widgets such as **Numeric**, **Simple Linear**, **Linear**, **Radial**, and **Steel Style** visually highlight relevant data ranges according to their configured zones and integrate notification states into their display. You can configure each widget to ignore zones if desired.
|
|
83
79
|
|
|
84
|
-
---
|
|
85
80
|
|
|
86
81
|
## KIP Notification Configuration Override
|
|
87
82
|
|