thermferm/server.c

changeset 564
3fc61dd28656
parent 562
119129969d37
child 566
776a605befa5
equal deleted inserted replaced
563:ca2fafcf3294 564:3fc61dd28656
34 extern int debug; 34 extern int debug;
35 extern int run_pause; 35 extern int run_pause;
36 extern int run_hold; 36 extern int run_hold;
37 extern sys_config Config; 37 extern sys_config Config;
38 extern const char UNITMODE[5][8]; 38 extern const char UNITMODE[5][8];
39 extern const char UNITSTAGE[3][10];
39 extern const char TEMPSTATE[3][8]; 40 extern const char TEMPSTATE[3][8];
40 extern const char DEVTYPE[8][6]; 41 extern const char DEVTYPE[8][6];
41 extern const char DEVPRESENT[4][6]; 42 extern const char DEVPRESENT[4][6];
42 extern const char DEVDIR[7][11]; 43 extern const char DEVDIR[7][11];
43 extern const char PROFSTATE[5][6]; 44 extern const char PROFSTATE[5][6];
1983 unit->volume = unit->prof_peak_abs = unit->prof_peak_rel = 0.0; 1984 unit->volume = unit->prof_peak_abs = unit->prof_peak_rel = 0.0;
1984 unit->air_state = unit->beer_state = unit->chiller_state = 1; 1985 unit->air_state = unit->beer_state = unit->chiller_state = 1;
1985 unit->air_temperature = unit->beer_temperature = unit->chiller_temperature = 20000; 1986 unit->air_temperature = unit->beer_temperature = unit->chiller_temperature = 20000;
1986 unit->beer_set = unit->fridge_set = 20.0; 1987 unit->beer_set = unit->fridge_set = 20.0;
1987 unit->heater_state = unit->cooler_state = unit->fan_state = unit->door_state = unit->mode = \ 1988 unit->heater_state = unit->cooler_state = unit->fan_state = unit->door_state = unit->mode = \
1988 unit->light_state = unit->psu_state = unit->prof_state = 0; 1989 unit->light_state = unit->psu_state = unit->prof_state = unit->stage = 0;
1989 unit->heater_delay = unit->cooler_delay = unit->fan_delay = 20; /* 5 minutes delay */ 1990 unit->heater_delay = unit->cooler_delay = unit->fan_delay = 20; /* 5 minutes delay */
1990 unit->light_delay = 1; /* 15 seconds delay */ 1991 unit->light_delay = 1; /* 15 seconds delay */
1991 unit->heater_wait = unit->cooler_wait = unit->fan_wait = unit->light_wait = 0; 1992 unit->heater_wait = unit->cooler_wait = unit->fan_wait = unit->light_wait = 0;
1992 unit->heater_usage = unit->cooler_usage = unit->fan_usage = unit->light_usage = 0; 1993 unit->heater_usage = unit->cooler_usage = unit->fan_usage = unit->light_usage = 0;
1993 unit->temp_set_min = 1.0; 1994 unit->temp_set_min = 1.0;
2059 srv_send((char *)"UUID,%s", unit->uuid); 2060 srv_send((char *)"UUID,%s", unit->uuid);
2060 srv_send((char *)"ALIAS,%s", unit->alias); 2061 srv_send((char *)"ALIAS,%s", unit->alias);
2061 srv_send((char *)"PRODUCT_NAME,%s", unit->product_name); 2062 srv_send((char *)"PRODUCT_NAME,%s", unit->product_name);
2062 srv_send((char *)"PRODUCT_CODE,%s", unit->product_code); 2063 srv_send((char *)"PRODUCT_CODE,%s", unit->product_code);
2063 srv_send((char *)"MODE,%s", UNITMODE[unit->mode]); 2064 srv_send((char *)"MODE,%s", UNITMODE[unit->mode]);
2065 srv_send((char *)"STAGE,%s", UNITSTAGE[unit->stage]);
2064 srv_send((char *)"VOLUME,%2f", unit->volume); 2066 srv_send((char *)"VOLUME,%2f", unit->volume);
2065 srv_send((char *)"AIR_ADDRESS,%s", unit->air_address); 2067 srv_send((char *)"AIR_ADDRESS,%s", unit->air_address);
2066 srv_send((char *)"AIR_STATE,%s", TEMPSTATE[unit->air_state]); 2068 srv_send((char *)"AIR_STATE,%s", TEMPSTATE[unit->air_state]);
2067 srv_send((char *)"AIR_TEMPERATURE,%.3f", unit->air_temperature / 1000.0); 2069 srv_send((char *)"AIR_TEMPERATURE,%.3f", unit->air_temperature / 1000.0);
2068 srv_send((char *)"AIR_IDX,%d", unit->air_idx); 2070 srv_send((char *)"AIR_IDX,%d", unit->air_idx);
2450 if (unit->psu_idx != ival) 2452 if (unit->psu_idx != ival)
2451 syslog(LOG_NOTICE, "Fermenter unit %s psu idx %d to %d", unit->uuid, unit->psu_idx, ival); 2453 syslog(LOG_NOTICE, "Fermenter unit %s psu idx %d to %d", unit->uuid, unit->psu_idx, ival);
2452 unit->psu_idx = ival; 2454 unit->psu_idx = ival;
2453 } 2455 }
2454 2456
2457 } else if (val && (strcmp(kwd, (char *)"STAGE") == 0)) {
2458 for (i = 0; i < 3; i++) {
2459 if (strcmp(val, UNITSTAGE[i]) == 0) {
2460 if (i != unit->stage) {
2461 syslog(LOG_NOTICE, "Fermenter unit %s stage %s to %s", unit->uuid, UNITSTAGE[unit->stage], UNITSTAGE[i]);
2462 unit->mqtt_flag |= MQTT_FLAG_DATA;
2463 }
2464 unit->stage = i;
2465 break;
2466 }
2467 }
2468
2455 } else if (val && (strcmp(kwd, (char *)"MODE") == 0)) { 2469 } else if (val && (strcmp(kwd, (char *)"MODE") == 0)) {
2456 for (i = 0; i < 5; i++) { 2470 for (i = 0; i < 5; i++) {
2457 if (strcmp(val, UNITMODE[i]) == 0) { 2471 if (strcmp(val, UNITMODE[i]) == 0) {
2458 unit->mqtt_flag |= MQTT_FLAG_DATA; 2472 unit->mqtt_flag |= MQTT_FLAG_DATA;
2459 /* Initialize log if the unit is turned on */ 2473 /* Initialize log if the unit is turned on */

mercurial