mset.xml: Device Settings
The main configuration is stored in /setting/mset.xml on the microSD card and has a <settings> root element.
The current file is not a list of factory values
Values in the XML of a particular device may have been changed by the user, the web interface, or automatically. For example, sefe_start_interval="60000" and alarm_sms_sec_interval="10" are not initial values: a new configuration uses 120000 ms and 180 s respectively.
See also the safe editing rules. Do not change SERVICE parameters without a backup and an understanding of their effect on the device.
net_settings
This section stores parameters for the device access point, connection to an external Wi-Fi network, data transmission, and FTP. An SSID/PASSWORD or SSID_STA/PASSWORD_STA pair is applied only when both values are present and nonempty.
| Field | Purpose | Requirement | Allowed values / range | Initial value | If omitted | Level |
|---|---|---|---|---|---|---|
SSID |
Name of the device's local access point | Conditionally required with PASSWORD |
String; up to 32 characters | apiary_net |
The new access-point pair is not applied | USER |
PASSWORD |
Password for the local access point | Conditionally required with SSID |
String; up to 32 characters | apiary_wifi |
The new access-point pair is not applied | USER |
SSID_STA |
SSID of the external Wi-Fi network | Optional | Nonempty string; maximum length is not specified | - |
New STA parameters are not applied | ADVANCED |
PASSWORD_STA |
Password for the external Wi-Fi network | Conditionally required with SSID_STA |
String; maximum length is not specified | - |
New STA parameters are not applied | ADVANCED |
STA_KEY |
Authentication key used during transmission | Optional | String; format depends on the authentication method | - |
The Wi-Fi parameter is not changed | SERVICE |
UPLOAD_URL |
Address of the Wi-Fi data receiver | Optional | URL; maximum length is not specified | Depends on device configuration | Set to a single space; transmission is effectively not configured | SERVICE |
wifi_sync |
Enables synchronization through an external Wi-Fi network | Optional | true, false |
false |
false |
ADVANCED |
FTP_USER |
Username for local FTP | Optional as part of a pair | String; up to 32 characters | Depends on device configuration | If either FTP field is missing, the initial FTP settings are used | ADVANCED |
FTP_PASSWORD |
Password for local FTP | Optional as part of a pair | String; up to 32 characters | Depends on device configuration | If either FTP field is missing, the initial FTP settings are used | ADVANCED |
The - value
For SSID_STA, PASSWORD_STA, and STA_KEY, the hyphen is a literal initial value. It is processed as a nonempty string, so do not use it as a reliable indication that a setting is “not configured.”
Change the initial password apiary_wifi after the first device check.
apairy_set
The section name contains a historical error and must remain apairy_set. This section is required to create the list of hives.
| Field | Purpose | Requirement | Allowed values / range | Initial value | If omitted | Level |
|---|---|---|---|---|---|---|
hive_count |
Number of hive configuration files | Optional field in a required section | Integer; 1 or more is recommended; limits are not checked automatically |
1 |
1 |
ADVANCED |
hive1…hiveN |
Base names of hive files without .xml |
Required for every number up to hive_count |
String; up to 8 ASCII characters is recommended for compatibility | hive1 |
Attribute read error; the corresponding hive is not created | SERVICE |
The path has the form /setting/<value>.xml. The name uses an internal 24-byte buffer, so do not use long names or path separators.
GSM
This section describes two recipients. If the section is absent, the GSM structure is cleared. The section itself should therefore be considered required even when operating without a SIM card.
| Field | Purpose | Requirement | Allowed values / range | Initial value | If omitted | Level |
|---|---|---|---|---|---|---|
sms_format1 |
SMS format for number1 |
Optional | 1 — text; 2 — compact app format |
2 |
2 |
USER |
sms_format2 |
SMS format for number2 |
Optional | 1 — text; 2 — compact app format |
2 |
2 |
USER |
number1 |
Primary recipient number | Optional | International format; internal 15-byte buffer | Empty string | No recipient is configured on the first load | USER |
number2 |
Additional recipient number | Optional | International format; internal 15-byte buffer | Empty string | No recipient is configured on the first load | USER |
sms_wait_to_send_sec |
Time to wait before sending an SMS on a weak network | Optional | Integer number of seconds; no fixed limits | 50 s |
50 s |
ADVANCED |
alarm_call_wait_sec |
Interval between repeated alarm-call attempts | Optional | Integer number of seconds; no fixed limits | 80 s |
80 s |
ADVANCED |
Specify an empty number as number1="" or number2="". Do not include real phone numbers in published examples.
NTP
This section belongs to the same internal structure as GSM. If NTP is completely absent, the GSM parameters that were just read are also reset. The section must therefore remain present even when synchronization is disabled.
| Field | Purpose | Requirement | Allowed values / range | Initial value | If omitted | Level |
|---|---|---|---|---|---|---|
synchronize |
Automatic time synchronization through an available network mechanism | Optional field in a required section | true, false |
false |
false |
USER |
time_zone |
Time-zone offset specified in whole hours in the XML | Optional | Integer; -11 to 12 is recommended; limits are not checked automatically |
2 |
3 |
ADVANCED |
ntp1 |
Primary time server | Optional | Hostname; internal buffer up to 30 bytes | 0.europe.pool.ntp.org |
Empty on the first load | ADVANCED |
ntp2 |
Secondary time server | Optional | Hostname; internal buffer up to 30 bytes | 1.europe.pool.ntp.org |
Empty on the first load | ADVANCED |
ntp3 |
Third time server | Optional | Hostname; internal buffer up to 30 bytes | 2.europe.pool.ntp.org |
Empty on the first load | ADVANCED |
time_zone has different values in the two cases: a new file receives 2, while a missing attribute results in 3. Account for this difference before changing the initial configuration.
The spelling synсhronize contains the Cyrillic letter с and is not recognized. Use only synchronize.
options
Individual attributes are optional and have fallback values. Do not remove the entire section: if it is absent, the section parameters are cleared instead of receiving the initial values shown below.
| Field | Purpose | Requirement | Allowed values / range | Initial value | If omitted | Level |
|---|---|---|---|---|---|---|
meteo |
Indicates the presence of a pressure and humidity sensor | Optional | true, false |
false |
false |
SERVICE |
pir_sensor |
Indicates the presence of a PIR motion sensor | Optional | true, false |
false |
false |
SERVICE |
temperature_twist |
Swaps the logical T1 and T2 values | Optional | true, false |
false |
false |
ADVANCED |
oled |
Indicates the presence of an OLED display | Optional | true, false |
false |
false |
SERVICE |
oled_invert |
Inverts the OLED image | Optional | true, false |
false |
false |
SERVICE |
sefe_start_interval |
Duration of the active window after startup | Optional | Milliseconds; limits are not checked automatically | 120000 ms |
120000 ms |
SERVICE |
alarm_sms_sec_interval |
Minimum interval between alarm SMS messages | Optional | Unsigned integer number of seconds | 180 s |
180 s |
ADVANCED |
alarm_by_changes_count |
Number of PIR state changes required to confirm an alarm | Optional | Unsigned integer; practical value depends on placement | 3 |
3 |
ADVANCED |
alarm_by_long_state |
Duration of an active PIR state required for an alarm | Optional | Unsigned integer number of seconds | 10 s |
10 s |
ADVANCED |
time_ms_compensate |
Daily clock-rate compensation | Optional | Signed 32-bit number of milliseconds | 0 ms |
0 ms |
SERVICE |
sync_time_sec |
Service timestamp for manual synchronization | Optional | Signed 64-bit number of seconds | 0 |
0 |
SERVICE |
sefe_start_interval is the exact historical field name. Its initial value is 120000 ms; the range is not checked automatically, so reducing it arbitrarily is dangerous.
Hardware flags changed through the web interface are saved immediately, but the operating configuration applies them after the settings are read again.
BLE
The entire section is optional for compatibility with older files. If it is absent, BLE is disabled, and the current values and standard intervals are used.
| Field | Purpose | Requirement | Allowed values / range | Initial value | If omitted | Level |
|---|---|---|---|---|---|---|
ble_enable |
Enables BLE | Optional | true, false |
false |
false; an invalid value also disables BLE |
USER |
static_values |
Selects static values instead of current values | Optional | true, false |
false |
false |
SERVICE |
update_time_sec |
BLE data update interval | Optional | 3–60 s; lower values are normalized to 3, higher values to 60 |
30 s |
30 s |
ADVANCED |
advertising_time_sec |
BLE advertising duration | Optional | 0 or 10–60 s; values from 1 to 9 are normalized to 0, values above 60 to 60 |
20 s |
20 s |
ADVANCED |
For static_values, only the selection of static instead of current values is described; no other effect of the parameter is defined.
Minimal Example
This example leaves STA, FTP, and BLE at their initial values. An empty but present <options /> section activates the fallback value of each attribute instead of clearing the entire structure.
<settings>
<net_settings SSID="apiary_net" PASSWORD="apiary_wifi" />
<apairy_set hive_count="1" hive1="hive1" />
<GSM sms_format1="2" sms_format2="2"
number1="" number2=""
sms_wait_to_send_sec="50" alarm_call_wait_sec="80" />
<NTP synchronize="false" time_zone="2"
ntp1="0.europe.pool.ntp.org"
ntp2="1.europe.pool.ntp.org"
ntp3="2.europe.pool.ntp.org" />
<options />
</settings>
Complete Sanitized Example
The values SITE_WIFI, WIFI_PASSWORD, DEVICE_KEY, FTP_USER, FTP_PASSWORD, and the URL are placeholders, not data from an operating device.
<settings>
<net_settings SSID="apiary_net" PASSWORD="apiary_wifi"
SSID_STA="SITE_WIFI" PASSWORD_STA="WIFI_PASSWORD"
STA_KEY="DEVICE_KEY"
UPLOAD_URL="https://example.invalid/beeapiary"
wifi_sync="false"
FTP_USER="FTP_USER" FTP_PASSWORD="FTP_PASSWORD" />
<apairy_set hive_count="1" hive1="hive1" />
<GSM sms_format1="2" sms_format2="2"
number1="+380XXXXXXXXX" number2=""
sms_wait_to_send_sec="50" alarm_call_wait_sec="80" />
<NTP synchronize="false" time_zone="2"
ntp1="0.europe.pool.ntp.org"
ntp2="1.europe.pool.ntp.org"
ntp3="2.europe.pool.ntp.org" />
<options meteo="false" pir_sensor="false"
temperature_twist="false" oled="false" oled_invert="false"
sefe_start_interval="120000"
alarm_sms_sec_interval="180"
alarm_by_changes_count="3" alarm_by_long_state="10"
time_ms_compensate="0" sync_time_sec="0" />
<BLE ble_enable="false" static_values="false"
update_time_sec="30" advertising_time_sec="20" />
</settings>