thermferm/thermferm.c

changeset 504
862de87f9f89
parent 503
003c20125212
child 505
727fe541a48d
child 506
cdcd07bbee30
equal deleted inserted replaced
503:003c20125212 504:862de87f9f89
1069 unit->heater_state = unit->cooler_state = unit->fan_state = unit->door_state = unit->light_state = 0; 1069 unit->heater_state = unit->cooler_state = unit->fan_state = unit->door_state = unit->light_state = 0;
1070 unit->heater_wait = unit->cooler_wait = unit->fan_wait = unit->light_wait = 0; 1070 unit->heater_wait = unit->cooler_wait = unit->fan_wait = unit->light_wait = 0;
1071 mqtt_publish_int(unit->alias, (char *)"state", (unit->mode != UNITMODE_OFF) ? 1 : 0); 1071 mqtt_publish_int(unit->alias, (char *)"state", (unit->mode != UNITMODE_OFF) ? 1 : 0);
1072 if (unit->name) 1072 if (unit->name)
1073 mqtt_publish_str(unit->alias, (char *)"name", unit->name); 1073 mqtt_publish_str(unit->alias, (char *)"name", unit->name);
1074 else
1075 mqtt_publish_clear(unit->alias, (char *)"name");
1074 if (unit->heater_address) 1076 if (unit->heater_address)
1075 mqtt_publish_int(unit->alias, (char *)"heater", 0); 1077 mqtt_publish_int(unit->alias, (char *)"heater", 0);
1078 else
1079 mqtt_publish_clear(unit->alias, (char *)"heater");
1076 if (unit->cooler_address) 1080 if (unit->cooler_address)
1077 mqtt_publish_int(unit->alias, (char *)"cooler", 0); 1081 mqtt_publish_int(unit->alias, (char *)"cooler", 0);
1082 else
1083 mqtt_publish_clear(unit->alias, (char *)"cooler");
1078 if (unit->fan_address) 1084 if (unit->fan_address)
1079 mqtt_publish_int(unit->alias, (char *)"fan", 0); 1085 mqtt_publish_int(unit->alias, (char *)"fan", 0);
1086 else
1087 mqtt_publish_clear(unit->alias, (char *)"fan");
1080 if (unit->air_address) 1088 if (unit->air_address)
1081 unit->mqtt_flag |= MQTT_FLAG_AIR; 1089 unit->mqtt_flag |= MQTT_FLAG_AIR;
1082 if (unit->beer_address) 1090 if (unit->beer_address)
1083 unit->mqtt_flag |= MQTT_FLAG_BEER; 1091 unit->mqtt_flag |= MQTT_FLAG_BEER;
1084 if (unit->mode == UNITMODE_PROFILE) { 1092 if (unit->mode == UNITMODE_PROFILE) {
1940 * Stop units processing in a neat way 1948 * Stop units processing in a neat way
1941 */ 1949 */
1942 for (unit = Config.units; unit; unit = unit->next) { 1950 for (unit = Config.units; unit; unit = unit->next) {
1943 1951
1944 if (unit->mode != UNITMODE_OFF) { 1952 if (unit->mode != UNITMODE_OFF) {
1945 if (unit->heater_address) 1953 if (unit->heater_address) {
1946 mqtt_publish_int(unit->alias, (char *)"heater", 0); 1954 mqtt_publish_int(unit->alias, (char *)"heater", 0);
1947 if (unit->cooler_address) 1955 mqtt_publish_clear(unit->alias, (char *)"heater");
1956 }
1957 if (unit->cooler_address) {
1948 mqtt_publish_int(unit->alias, (char *)"cooler", 0); 1958 mqtt_publish_int(unit->alias, (char *)"cooler", 0);
1949 if (unit->fan_address) 1959 mqtt_publish_clear(unit->alias, (char *)"cooler");
1960 }
1961 if (unit->fan_address) {
1950 mqtt_publish_int(unit->alias, (char *)"fan", 0); 1962 mqtt_publish_int(unit->alias, (char *)"fan", 0);
1963 mqtt_publish_clear(unit->alias, (char *)"fan");
1964 }
1951 mqtt_publish_int(unit->alias, (char *)"state", 0); 1965 mqtt_publish_int(unit->alias, (char *)"state", 0);
1966 mqtt_publish_clear(unit->alias, (char *)"state");
1952 } 1967 }
1968 mqtt_publish_clear(unit->alias, (char *)"air/temperature");
1969 mqtt_publish_clear(unit->alias, (char *)"air");
1970 mqtt_publish_clear(unit->alias, (char *)"beer/temperature");
1971 mqtt_publish_clear(unit->alias, (char *)"beer");
1972 mqtt_publish_clear(unit->alias, (char *)"setpoint/high");
1973 mqtt_publish_clear(unit->alias, (char *)"setpoint/low");
1974 mqtt_publish_clear(unit->alias, (char *)"setpoint");
1975 mqtt_publish_clear(unit->alias, (char *)"door");
1976 mqtt_publish_clear(unit->alias, (char *)"name");
1977 mqtt_publish_clear(unit->alias, (char *)"mode");
1978 mqtt_publish_clear(unit->alias, (char *)"12volt");
1979 mqtt_publish_clear(unit->alias, (char *)"profile/uuid");
1980 mqtt_publish_clear(unit->alias, (char *)"profile/state");
1981 mqtt_publish_clear(unit->alias, (char *)"profile/name");
1982 mqtt_publish_clear(unit->alias, (char *)"profile/fridgemode");
1983 mqtt_publish_clear(unit->alias, (char *)"profile/percent");
1953 1984
1954 /* 1985 /*
1955 * Turn everything off 1986 * Turn everything off
1956 */ 1987 */
1957 unit->heater_state = unit->cooler_state = unit->fan_state = unit->door_state = unit->light_state = 0; 1988 unit->heater_state = unit->cooler_state = unit->fan_state = unit->door_state = unit->light_state = 0;

mercurial