HIVE*.XML: Configuración de la colmena
La configuración de la colmena se guarda en /setting/<hive>.xml. El <hive> El nombre base está especificado por el hive1, hive2y atributos posteriores en mset.xml; el .xml La extensión se agrega automáticamente.
Valores que dependen del hardware
No copiar el scales sección desde otro dispositivo. Los pines de la placa y los valores de calibración dependen de la versión del hardware y del conjunto particular de sensores de peso. Los valores incorrectos pueden distorsionar las mediciones o hacer que no estén disponibles.
Ver el reglas de edición segura.
Reescritura automática
Después de leer el archivo, el dispositivo podrá guardarlo nuevamente:
- se crea un archivo faltante o dañado a partir del estado actual disponible;
- desaparecido
hive,thermometer, oschedulelas secciones permiten la normalización; - un atributo faltante en un existente
scalesothermometerla sección se reemplaza con un valor alternativo y permite la normalización; - completo
scales,booster, yrange_alarmerlas secciones son opcionales; - La normalización también escribe el
booster,range_alarmer,thermometer, yschedulesecciones incluso si algunas de ellas estuvieran ausentes en el archivo fuente.
hive
| Campo | Función | Obligatoriedad | Valores permitidos / límites | Valor inicial | Si no se especifica | Nivel |
|---|---|---|---|---|---|---|
hive_name |
Nombre interno de la colmena | Opcional | Cadena; se recomiendan hasta 8 caracteres ASCII por compatibilidad | Nombre de mset.xml, por ejemplo hive1 |
hive_<індекс>; el archivo está marcado para reescribir |
ADVANCED |
bus_number |
Número de la colmena en el bus interno | Opcional | Número entero; los límites no se comprueban | índice de instancia, 0 por primera |
Índice de instancia; el archivo está marcado para reescribir | SERVICE |
main_device |
Indica el dispositivo principal con sensores de hardware locales. | Opcional | true, false |
true en un archivo recién creado |
La instancia no se convierte en el dispositivo principal; la omisión por sí sola no permite reescribir | SERVICE |
La compatibilidad con dispositivos subordinados está obsoleta. el valor main_device="false" se acepta durante la carga, pero después de guardar, el atributo se vuelve main_device="true". no usar false como una configuración estable.
scales
Si la sección está totalmente ausente, no se crea el objeto de las balanzas y la medición del peso queda desactivada. Si la sección existe, cada campo ausente o incorrecto se sustituye por un valor de respaldo, tras lo cual se puede volver a escribir el archivo completo.
| Campo | Función | Obligatoriedad | Valores permitidos / límites | Valor inicial | Si no se especifica | Nivel |
|---|---|---|---|---|---|---|
pin_hc711_data |
GPIO de datos del HX711 | Obligatorio si la sección existe | GPIO para la placa particular | La sección no se crea automáticamente; dependiente del hardware | Pin para el tablero en particular; el archivo se reescribe | SERVICE |
pin_hc711_clk |
GPIO de reloj del HX711 | Obligatorio si la sección existe | GPIO para la placa particular | La sección no se crea automáticamente; dependiente del hardware | Pin para el tablero en particular; el archivo se reescribe | SERVICE |
gain |
Modo de ganancia HX711 | Obligatorio si la sección existe | Valor del modo de ganancia HX711 | Canal A, ganancia 128 | Canal A, gana 128; el archivo se reescribe | SERVICE |
zero_calibrate_measurement |
Valor ADC sin procesar para carga cero | Obligatorio si la sección existe | Entero de 32 bits con signo | Depende del hardware | Valor de reserva -486050; el archivo se reescribe |
SERVICE |
weight_calibrate_measurement |
Valor ADC bruto con el peso de referencia | Obligatorio si la sección existe | Entero de 32 bits con signo | Depende del hardware | Valor de reserva -498030; el archivo se reescribe |
SERVICE |
calibrate_weight |
Masa de referencia de calibración | Obligatorio si la sección existe | Gramos; entero positivo; los límites no se verifican automáticamente | Depende del hardware | 500 gramo; el archivo se reescribe |
USER |
start_weight |
Tara restada del resultado | Obligatorio si la sección existe | Gramos; -100000 a 100000 se recomienda; los límites no se verifican automáticamente |
Depende del hardware | 0 gramo; el archivo se reescribe |
USER |
source_weight |
Filtro cuyo resultado se utiliza como peso principal. | Obligatorio si la sección existe | 1 — immediate; 2 — stable; 3 — calibration |
La sección no se crea automáticamente. | 1; el archivo se reescribe. Otros valores se tratan como 1 durante la operación |
SERVICE |
normal_pecision |
Parámetro de precisión del filtro rápido. | Obligatorio si la sección existe | Número de punto flotante; los límites no están controlados | La sección no se crea automáticamente. | 0.5; el archivo se reescribe |
SERVICE |
normal_desired_deviation |
Desviación deseada del filtro rápido | Obligatorio si la sección existe | Número de punto flotante; los límites no están controlados | La sección no se crea automáticamente. | 10; el archivo se reescribe |
SERVICE |
stable_pecision |
Parámetro de precisión del filtro estable. | Obligatorio si la sección existe | Número de punto flotante; los límites no están controlados | La sección no se crea automáticamente. | 0.35; el archivo se reescribe |
SERVICE |
stable_desired_deviation |
Desviación deseada del filtro estable | Obligatorio si la sección existe | Número de punto flotante; los límites no están controlados | La sección no se crea automáticamente. | 5; el archivo se reescribe |
SERVICE |
calibrate_pecision |
Parámetro de precisión del filtro de calibración. | Obligatorio si la sección existe | Número de punto flotante; los límites no están controlados | La sección no se crea automáticamente. | 0.25; el archivo se reescribe |
SERVICE |
calibrate_desired_deviation |
Desviación deseada del filtro de calibración | Obligatorio si la sección existe | Número de punto flotante; los límites no están controlados | La sección no se crea automáticamente. | 3; el archivo se reescribe |
SERVICE |
median_window |
Tamaño de ventana de filtro mediano | Obligatorio si la sección existe | 3–100; los valores fuera de rango se reemplazan |
La sección no se crea automáticamente. | 100; el archivo se reescribe |
SERVICE |
Los identificadores normal_pecision, stable_pecision, y calibrate_pecision contener el error histórico pecision, que no debe corregirse en el XML.
gain se carga desde el archivo, pero al guardarlo siempre se configura el canal A con ganancia 128. No lo cambie manualmente sin datos para su dispositivo en particular.
thermometer
Una sección que falta permite la normalización de archivos. el valor sensors_count="0" desactiva el sondeo de los sensores DS18B20.
| Campo | Función | Obligatoriedad | Valores permitidos / límites | Valor inicial | Si no se especifica | Nivel |
|---|---|---|---|---|---|---|
pin_onewire |
Bus GPIO de 1 cable | Opcional | GPIO para la placa particular | 4 |
4; el archivo se reescribe |
SERVICE |
sensors_count |
Número de sensores DS18B20 | Opcional | 0 desactiva los sensores; entero positivo; el límite superior no está marcado |
2 |
2; el archivo se reescribe |
ADVANCED |
schedule
El TimeSlot0–TimeSlot23 Los atributos definen la acción para la hora correspondiente. Pasado el minuto 30, se selecciona la acción para la siguiente hora; después de la hora 23, TimeSlot0 está seleccionado.
| Campo | Función | Obligatoriedad | Valores permitidos / límites | Valor inicial | Si no se especifica | Nivel |
|---|---|---|---|---|---|---|
TimeSlot0…TimeSlot23 |
Tipo de acción programada por hora 0–23 |
Todos los atributos son opcionales, pero al menos un espacio con 2 es requerido |
Entero de 0 a 5; vea abajo |
5 durante horas 0–20; 1 para 21 y 22; 2 para 23 |
Una ranura faltante se convierte 0. si no 2 permanece después de la lectura, todo el programa se restablece al programa inicial |
ADVANCED |
| Valor | acción | Recomendación |
|---|---|---|
0 |
Ninguna acción programada | Se puede utilizar para una ranura vacía. |
1 |
Medición | Apoyado |
2 |
Transmisión por el canal primario. | Requerido en al menos una ranura |
3 |
Reservado para transmisión a través de Wi-Fi | no usar |
4 |
Reservado para transmisión a través de BLE | no usar |
5 |
Despertador cada hora para sincronización | Utilizado por el horario inicial. |
Otros números enteros no se rechazan pero no tienen un comportamiento definido. Utilice sólo valores de la tabla.
Horario inicial
<schedule
TimeSlot0="5" TimeSlot1="5" TimeSlot2="5" TimeSlot3="5"
TimeSlot4="5" TimeSlot5="5" TimeSlot6="5" TimeSlot7="5"
TimeSlot8="5" TimeSlot9="5" TimeSlot10="5" TimeSlot11="5"
TimeSlot12="5" TimeSlot13="5" TimeSlot14="5" TimeSlot15="5"
TimeSlot16="5" TimeSlot17="5" TimeSlot18="5" TimeSlot19="5"
TimeSlot20="5" TimeSlot21="1" TimeSlot22="1" TimeSlot23="2" />
booster
Esta sección establece el intervalo para reactivaciones adicionales para verificar parámetros críticos. Si la sección está ausente, se utiliza un intervalo de una hora durante la operación; la ausencia en sí misma no desencadena la reescritura.
| Campo | Función | Obligatoriedad | Valores permitidos / límites | Valor inicial | Si no se especifica | Nivel |
|---|---|---|---|---|---|---|
booster_time_sec |
Intervalo de control adicional | Opcional | 180, 240, 300, 360, 600, 720, 900, 1200, 1800, o 3600 s |
3600 s |
3600 s |
ADVANCED |
Un valor por debajo 180 s se convierte 180; un valor por encima 3600 s se convierte 3600. Otros valores dentro del rango se redondean al intervalo admitido más cercano en la tabla.
range_alarmer
Esta sección es opcional. Si está ausente, la alarma de umbral no se inicializa. si alarm="false" o el alarm El atributo está ausente, los límites no se leen y la tarea de alarma en segundo plano no se inicia.
| Campo | Función | Obligatoriedad | Valores permitidos / límites | Valor inicial | Si no se especifica | Nivel |
|---|---|---|---|---|---|---|
alarm |
Habilita alarmas de umbral | Opcional | true, false |
false |
false |
USER |
T1_min |
Límite inferior T1 | Opcional | Número de coma flotante, °C; Los límites físicos y el orden mínimo/máximo no se verifican automáticamente. | -500 °C en un archivo recién creado |
con alarm="true", no hay límite inferior |
ADVANCED |
T1_max |
Límite superior T1 | Opcional | Número de coma flotante, °C; Los límites físicos y el orden mínimo/máximo no se verifican automáticamente. | 500 °C en un archivo recién creado |
con alarm="true", no hay límite superior |
ADVANCED |
T2_min |
Límite inferior T2 | Opcional | Número de coma flotante, °C; Los límites físicos y el orden mínimo/máximo no se verifican automáticamente. | -500 °C en un archivo recién creado |
con alarm="true", no hay límite inferior |
ADVANCED |
T2_max |
Límite superior T2 | Opcional | Número de coma flotante, °C; Los límites físicos y el orden mínimo/máximo no se verifican automáticamente. | 500 °C en un archivo recién creado |
con alarm="true", no hay límite superior |
ADVANCED |
Humidity_min |
Límite inferior de humedad | Opcional | Número de punto flotante, %; Los límites físicos y el orden mínimo/máximo no se verifican automáticamente. | -20 % en un archivo recién creado |
con alarm="true", no hay límite inferior |
ADVANCED |
Humidity_max |
Límite superior de humedad | Opcional | Número de punto flotante, %; Los límites físicos y el orden mínimo/máximo no se verifican automáticamente. | 200 % en un archivo recién creado |
con alarm="true", no hay límite superior |
ADVANCED |
Para cada fuente (T1, T2 o humedad) un límite es suficiente. Si no se especifica ningún límite para una fuente en particular, no se agrega al cheque. el orden de _min y _max no se comprueba automáticamente.
Ejemplo de alarma unilateral
En este ejemplo, T1 se controla sólo desde arriba, T2 sólo desde abajo y no se controla la humedad:
<range_alarmer alarm="true" T1_max="45.0" T2_min="-10.0" />
La frecuencia general de SMS y la confirmación de alarma PIR se configuran mediante alarm_sms_sec_interval, alarm_by_changes_count, y alarm_by_long_state en mset.xml.
Ejemplo estructural Sin báscula
Este archivo utiliza el programa inicial, dos sensores de temperatura y alarmas de umbral deshabilitadas. el scales La sección está ausente, por lo que no se crea ningún objeto de balanza.
<settings>
<hive hive_name="hive1" bus_number="0" main_device="true" />
<booster booster_time_sec="3600" />
<range_alarmer alarm="false"
T1_max="500" T1_min="-500"
T2_max="500" T2_min="-500"
Humidity_max="200" Humidity_min="-20" />
<thermometer pin_onewire="4" sensors_count="2" />
<schedule
TimeSlot0="5" TimeSlot1="5" TimeSlot2="5" TimeSlot3="5"
TimeSlot4="5" TimeSlot5="5" TimeSlot6="5" TimeSlot7="5"
TimeSlot8="5" TimeSlot9="5" TimeSlot10="5" TimeSlot11="5"
TimeSlot12="5" TimeSlot13="5" TimeSlot14="5" TimeSlot15="5"
TimeSlot16="5" TimeSlot17="5" TimeSlot18="5" TimeSlot19="5"
TimeSlot20="5" TimeSlot21="1" TimeSlot22="1" TimeSlot23="2" />
</settings>
Sección Balanzas completas
El siguiente ejemplo estructural utiliza valores alternativos y se proporciona únicamente como referencia de archivo. No lo instales en un dispositivo: Los valores de calibración y los pines deben provenir de una copia de seguridad de ese dispositivo en particular o crearse mediante el procedimiento de calibración estándar.
<scales pin_hc711_data="27" pin_hc711_clk="26" gain="0"
zero_calibrate_measurement="-486050"
weight_calibrate_measurement="-498030"
calibrate_weight="500" start_weight="0" source_weight="1"
normal_pecision="0.5" normal_desired_deviation="10"
stable_pecision="0.35" stable_desired_deviation="5"
calibrate_pecision="0.25" calibrate_desired_deviation="3"
median_window="100" />
GPIO 27 y 26 son sólo un ejemplo para un dispositivo y no son universales. Utilice valores de la copia de seguridad de su dispositivo en particular.