Mapowanie rejestrów SUN2K do jednolitego formatu ORNO

This commit is contained in:
ms
2026-02-15 00:04:34 +01:00
parent 8f3756b1fe
commit ae444a10fc

View File

@@ -379,8 +379,64 @@ int influx_send_orno_batch(s_voltage *v, int v_ok, s_current *i, int i_ok,
int influx_send_SUN2K(t_mb_reg *reg_to_send, char *_str_buf) { int influx_send_SUN2K(t_mb_reg *reg_to_send, char *_str_buf) {
if (!_str_buf || strlen(_str_buf) == 0) return 0; if (!_str_buf || strlen(_str_buf) == 0) return 0;
char line[256]; char line[256];
/* reg_id used as tag, value as field */ char pomiar_tag[32] = "";
snprintf(line, sizeof(line), "sun2k,device=sun2k %s=%s", reg_to_send->reg_id, _str_buf); char field_name[32] = "";
/* Mapowanie rejestrów SUN2K do jednolitego formatu ORNO */
if (strcmp(reg_to_send->reg_id, "PV_P") == 0 ||
strcmp(reg_to_send->reg_id, "P_active") == 0 ||
strcmp(reg_to_send->reg_id, "P_peak") == 0) {
/* Moc - mapujemy do pomiar=power, pole=total */
strcpy(pomiar_tag, ",pomiar=power");
strcpy(field_name, "total");
}
else if (strcmp(reg_to_send->reg_id, "P_reactive") == 0) {
/* Moc bierna - osobny pomiar */
strcpy(pomiar_tag, ",pomiar=reactive_power");
strcpy(field_name, "total");
}
else if (strcmp(reg_to_send->reg_id, "Frequency") == 0) {
/* Częstotliwość - mapujemy do pomiar=frequency, pole=frequency */
strcpy(pomiar_tag, ",pomiar=frequency");
strcpy(field_name, "frequency");
}
else if (strcmp(reg_to_send->reg_id, "Temp") == 0) {
/* Temperatura */
strcpy(pomiar_tag, ",pomiar=temperature");
strcpy(field_name, "value");
}
else if (strcmp(reg_to_send->reg_id, "P_accum") == 0) {
/* Energia zgromadzona */
strcpy(pomiar_tag, ",pomiar=energy");
strcpy(field_name, "total");
}
else if (strcmp(reg_to_send->reg_id, "P_daily") == 0) {
/* Energia dzienna - osobny pomiar */
strcpy(pomiar_tag, ",pomiar=daily_energy");
strcpy(field_name, "total");
}
else if (strcmp(reg_to_send->reg_id, "State1") == 0 ||
strcmp(reg_to_send->reg_id, "Alarm1") == 0 ||
strcmp(reg_to_send->reg_id, "Status") == 0 ||
strcmp(reg_to_send->reg_id, "Fault") == 0) {
/* Statusy */
strcpy(pomiar_tag, ",pomiar=status");
strcpy(field_name, reg_to_send->reg_id);
}
else if (strcmp(reg_to_send->reg_id, "Start") == 0 ||
strcmp(reg_to_send->reg_id, "Shutdown") == 0 ||
strcmp(reg_to_send->reg_id, "Time") == 0) {
/* Info/czas */
strcpy(pomiar_tag, ",pomiar=info");
strcpy(field_name, reg_to_send->reg_id);
}
else {
/* Domyślnie - nazwa rejestru jako nazwa pola */
strcpy(field_name, reg_to_send->reg_id);
}
snprintf(line, sizeof(line), "sun2k,device=sun2k%s %s=%s",
pomiar_tag, field_name, _str_buf);
return influx_send_post(line); return influx_send_post(line);
} }
@@ -388,7 +444,8 @@ int influx_send_SUN2K_U_batch(float U_A, float U_B, float U_C, int valid) {
if (DISABLE_INFLUX) return 0; if (DISABLE_INFLUX) return 0;
if (!valid) return 0; if (!valid) return 0;
char batch[256]; char batch[256];
snprintf(batch, sizeof(batch), "sun2k,device=sun2k,pomiar=voltage U_A=%.2f,U_B=%.2f,U_C=%.2f", U_A, U_B, U_C); /* Ujednolicone z ORNO - L1, L2, L3 zamiast U_A, U_B, U_C */
snprintf(batch, sizeof(batch), "sun2k,device=sun2k,pomiar=voltage L1=%.2f,L2=%.2f,L3=%.2f", U_A, U_B, U_C);
return influx_send_post(batch); return influx_send_post(batch);
} }