67 Commits

Author SHA1 Message Date
Orne Brocaar
f81b868a31 ui: Reload device on change event.
Fixes #319.
2023-11-13 14:17:45 +00:00
Orne Brocaar
464937169b ui: Make device metric name optional.
If enabled, metrics will be automatically detected and created based on
the decoded payload. The key will be set, but the name is left blank for
the user to configure. This can be confusing as it leads to validation
errors in the device-profile form if the name is not filled in.
The UI does show that one of the fields failed to validate, but even
with such notification, it is not clear that users have to check one
of the form tabs which they didn't edit on save.

This makes the name optional and uses the key as fallback such that
saving the form no longer fails in case the name is still blank.

Closes #313.
2023-11-10 16:50:17 +00:00
Orne Brocaar
b6d390b6ad ui: Fix setting initial tagsMap in TenantForm. 2023-11-07 09:46:02 +00:00
Orne Brocaar
a087c4c18b Add tags to tenants and applications.
Note that the integration events will contain the application +
device-profile + device tags. Integration events will NOT contain the
tenant tags. Most likely tenant tags will be used to store information
about the tenant, data that is unrelated to the integration events.

Fixes #211.
2023-10-19 17:11:50 +01:00
Orne Brocaar
41d00cb651 Implement end-to-end app payload encryption.
This implements end-to-end encryption between the end-device and
end-application. The encrypted AppSKey or SessionKeyID is forwarded to
the end-application which should be able to decrypt or request the
AppSKey to decrypt the uplink payload. As well the end-application will
be able to enqueue encrypted application payloads.

Using this mechanism, ChirpStack will never have access to the uplink
and downlink application-payloads.
2023-10-05 13:06:09 +01:00
Orne Brocaar
48aa453e95 ui: Fix Doughnut chart resizing.
Fixes #284.
2023-09-29 12:36:42 +01:00
Orne Brocaar
97d9072ffc Apply fix for #282 to all forms. 2023-09-29 10:46:53 +01:00
Orne Brocaar
91611b0505 Show form validation errors in notification.
This solves #282 because the issue was that auto created measurements
did not have a name and without the measurements tab open, the error
was not visible.

Before ChirpStack v4.5.0 forceRender was not used on the Tabs.TabPane,
in which case the validation would not run on unrendered tabs, which
explains why the form could be submitted even with the empty
measurement names.

Closes #282.
2023-09-29 10:24:50 +01:00
Orne Brocaar
dac4f15f40 Fix showing initial InfluxDB integration form.
Closes #254.
2023-07-31 10:51:23 +01:00
Orne Brocaar
651fcfce43 Fix gRPC stream handling after UI refactor.
This moves the onMessage handler out of useEffect and it fixes
appending the the array. The .unshift() method does not work
well using React.useState. It would prepend, but since it would not
change the array (it adds an item to the array), the update would
not propagate.
2023-07-27 16:39:29 +01:00
Orne Brocaar
6f1638e87a Refactor UI to function elements & update React + Ant.
This refactor the UI components from class based element into function
based elements. This makes it possible to use hooks that are used now
by most React components. This also updates React and Ant to the latest
versions (+ other dependencies).
2023-07-27 13:07:00 +01:00
Orne Brocaar
a28d29deb9 Do not disable activation fields.
It prevents showing and copying the keys etc.
2023-07-19 11:49:20 +01:00
Gristle King
2a88f45123
UI menu grammar & typo fixes. (#186)
Closes #185.
2023-05-30 12:22:16 +01:00
Orne Brocaar
cefe61072d Initial Relay support implementation (TS011).
Closes #59.
2023-05-22 11:04:13 +01:00
Orne Brocaar
513aa7804d Add event prefix + arbitrary JSON options for IFTTT. 2023-05-19 14:43:39 +01:00
Orne Brocaar
f71d30ca83 Re-implement frame and event download option. 2023-04-12 14:50:33 +01:00
Orne Brocaar
1430c30ab3 Make using gateway location optional (LoRa Cloud). 2023-03-28 13:11:49 +01:00
Orne Brocaar
cb49afeb01 Update LoRa Cloud form label. 2023-03-23 11:38:34 +00:00
Orne Brocaar
ef97eccf62 Update LoRa Cloud integration. 2023-03-08 17:01:11 +00:00
Orne Brocaar
f776dd3898 Split private gateways under tenant in uplink / downlink.
This makes it possible to share uplink data with other tenants, but do
not allow other tenants to use these gateways for downlinks.
2023-02-14 13:41:22 +00:00
Orne Brocaar
f657c3e971 Implement adding gws to multicast-group + Class-C scheduling config.
This makes it possible to add gateways to a multicast-group, which in
case configured will always be used for transmitting the multicast
downlinks.

This also moves the multicast class-c scheduling to the multicast-group
configuration. Options are delay between multiple gateways, or GPS time
synchronized transmission.
2023-02-09 15:29:23 +00:00
Orne Brocaar
0e1cdf1e17 Fix typo in 'Every 128 seconds' option value. 2023-01-13 10:32:28 +00:00
Orne Brocaar
24d9b6db54 Add Class-B ping-slot parameters back to device-profile UI.
The device might not always send its periodicity to the network-server
(using mac-commands). As well there is some ambiguity about the default
ping-slot data-rates. While the Regional Parameters Specification
defines the default beacon data-rates, it only defines the default
ping-slot frequency for Class-B.

This also changes the API field from class_b_ping_slot_period to
class_b_ping_slot_nb_k, where ..._k must be between 0 - 7 as defined by
the LoRaWAN Specification. This removes some ambiguity as 'period' could
mean different things in different contexts.
2023-01-12 14:41:42 +00:00
Orne Brocaar
438d120fb0 Make gateway state consistent + make stats interval configurable.
This:

* Makes the gateway stats interval configurable (default 30 sec)
* Adds GatewayState type (NEVER_SEEN, OFFLINE, ONLINE)
* Adds gateway state to gateway lists
* Fixes dashboard inconsistencies

Closes #76.
2023-01-11 10:51:53 +00:00
Orne Brocaar
687c3f21ec Add missing <Admin> block around Delete device + format code.
The <Admin> block hides components when the user doesn't have sufficient
permissions to perform an UI action. Without this the 'Delete device'
button was visible, but on click, the user would be redirect to the
login page due to permission issues (API).

Fixes #71.
2023-01-10 16:50:13 +00:00
Orne Brocaar
e5e0514d9f Fix regions regex (UI). 2023-01-09 13:28:08 +00:00
Orne Brocaar
e78dac316a Fix region config id in gateway list + add link to region. 2023-01-09 12:22:27 +00:00
Orne Brocaar
103e4298fb Add device-profile option to configure region configuration.
By selecting a region configuration, devices using the device-profile
will only stick to the selected region configuration, rather than the
configurations provided by the selected region common-name.

This change also renames the region 'name' option to 'id' in the region
configuration, as well it adds a 'description' to provide a human
readable description, which is used in the drop-down in the UI.

This also fixes the JS API generation. In a previous commit the the
protobuf package was updated, but the latest protobuf compiler no longer
supports generating JS code (this now requires an external plugin). This
has been fixed.

Please note that if you have implemented custom ADR algorithms that are
referring to the 'regionName' key, that you must change this to
'regionConfigId' (see the ADR code example).
2023-01-09 12:04:10 +00:00
Orne Brocaar
417179ba54 Fix header z-index issue in UI.
The z-index of the header was set to 2000 because of Leaflet JS zoom
controls going over the header instead of under when scrolling. However,
this caused issues with the notifications and dropdowns (menu and
autocomplete).

Setting the z-index to 1001 is enough to fix the Leaflet JS issues,
without causing other issues.
2022-12-24 10:46:23 +00:00
Orne Brocaar
cb3ab9466e Fix notification z-index. 2022-12-05 11:29:44 +00:00
Orne Brocaar
3a6e359ce1 Fix leafletjs controls floating over header. 2022-11-25 09:22:45 +00:00
Orne Brocaar
a864bd2e5d Add gateway metadata tab and make naming consistent. 2022-11-04 11:51:24 +00:00
Orne Brocaar
0a23c71641 Add option for auto-detect measurements.
In case the decoded payload contains random keys the auto-detect
measurements feature will add new measurements for each uplink. With
this option it is possible to turn auto-detection off to avoid
polluting the database with many measurements.

Closes #42.
2022-11-02 10:19:38 +00:00
Orne Brocaar
577a33ec9a Run yarn format. 2022-11-01 10:28:57 +00:00
Orne Brocaar
5b3b44bce4 Fix OIDC logout URL in UI. 2022-11-01 10:28:35 +00:00
Orne Brocaar
f17250c37f Show region information in UI. 2022-09-15 10:58:37 +01:00
Orne Brocaar
a43ef72fb2 Fix chart tooltip date format. 2022-09-13 10:15:21 +01:00
Orne Brocaar
90c5af20df Update encodeDownlink code template. 2022-09-12 11:52:51 +01:00
Orne Brocaar
0fc548d6b4 Fix object > data error in template.
Closes #39.
2022-09-10 12:42:50 +01:00
Orne Brocaar
0fa40717e8 Add missing CN470 configuration.
Closes #36.
2022-08-31 09:48:55 +01:00
Orne Brocaar
cfb4290334 Add missing isDisabled and setSkipFcntCheck switches (UI). 2022-08-09 11:07:32 +01:00
Orne Brocaar
eee1c4b4b0 Show counter value as rate per aggregation interval. 2022-07-31 13:10:16 +01:00
Orne Brocaar
11d433a394 Show loader on aggregation interval change or refresh. 2022-07-19 11:13:47 +01:00
Orne Brocaar
72e72446a2 Disable activation key form for OTAA.
Closes #10.
2022-07-14 11:42:07 +01:00
Orne Brocaar
68b1de87f3 Rename setItem to setQueueItem.
This was renamed to be more consistent with the multicast enqueue message.
2022-07-13 12:35:13 +01:00
Orne Brocaar
96ab49944c Add IFTTT integration. 2022-07-06 15:43:00 +01:00
Orne Brocaar
9ab2f77ee2 Fix CodeMirror not refreshing on value change.
On changing a different device-profile template and thus changing the
this.state.value, CodeMirror would not rerender until focussing the
textarea field.
2022-07-05 15:18:43 +01:00
Orne Brocaar
6dbbaff7b6 Add button to set gw to current location. 2022-07-05 14:48:02 +01:00
Orne Brocaar
a04d47833f Render empty bar and heatmap charts. 2022-06-29 09:26:42 +01:00
Orne Brocaar
462ff3665d Fix missing Card import. 2022-06-28 15:12:34 +01:00