thermferm/mqtt.c

changeset 703
344470c6bb1c
parent 698
92a080c1a5d5
child 708
13555c27b592
equal deleted inserted replaced
702:d77891f8915d 703:344470c6bb1c
934 payload = xstrcat(payload, (char *)"\",\"state\":\""); 934 payload = xstrcat(payload, (char *)"\",\"state\":\"");
935 payload = xstrcat(payload, (char *)DEVPRESENT[unit->air_state]); 935 payload = xstrcat(payload, (char *)DEVPRESENT[unit->air_state]);
936 payload = xstrcat(payload, (char *)"\",\"temperature\":"); 936 payload = xstrcat(payload, (char *)"\",\"temperature\":");
937 sprintf(buf, "%.3f", unit->air_temperature / 1000.0); 937 sprintf(buf, "%.3f", unit->air_temperature / 1000.0);
938 payload = xstrcat(payload, buf); 938 payload = xstrcat(payload, buf);
939 payload = xstrcat(payload, (char *)",\"idx\":");
940 sprintf(buf, "%d", unit->air_idx);
941 payload = xstrcat(payload, buf);
939 payload = xstrcat(payload, (char *)"}"); 942 payload = xstrcat(payload, (char *)"}");
940 pub_domoticz_temp(unit->air_idx, unit->air_temperature); 943 pub_domoticz_temp(unit->air_idx, unit->air_temperature);
941 } else { 944 } else {
942 payload = xstrcat(payload, (char *)",\"air\":null"); 945 payload = xstrcat(payload, (char *)",\"air\":null");
943 } 946 }
951 payload = xstrcat(payload, (char *)"\",\"state\":\""); 954 payload = xstrcat(payload, (char *)"\",\"state\":\"");
952 payload = xstrcat(payload, (char *)DEVPRESENT[unit->beer_state]); 955 payload = xstrcat(payload, (char *)DEVPRESENT[unit->beer_state]);
953 payload = xstrcat(payload, (char *)"\",\"temperature\":"); 956 payload = xstrcat(payload, (char *)"\",\"temperature\":");
954 sprintf(buf, "%.3f", unit->beer_temperature / 1000.0); 957 sprintf(buf, "%.3f", unit->beer_temperature / 1000.0);
955 payload = xstrcat(payload, buf); 958 payload = xstrcat(payload, buf);
959 payload = xstrcat(payload, (char *)",\"idx\":");
960 sprintf(buf, "%d", unit->beer_idx);
961 payload = xstrcat(payload, buf);
956 payload = xstrcat(payload, (char *)"}"); 962 payload = xstrcat(payload, (char *)"}");
957 pub_domoticz_temp(unit->beer_idx, unit->beer_temperature); 963 pub_domoticz_temp(unit->beer_idx, unit->beer_temperature);
958 } else { 964 } else {
959 payload = xstrcat(payload, (char *)",\"beer\":null"); 965 payload = xstrcat(payload, (char *)",\"beer\":null");
960 } 966 }
968 payload = xstrcat(payload, (char *)"\",\"state\":\""); 974 payload = xstrcat(payload, (char *)"\",\"state\":\"");
969 payload = xstrcat(payload, (char *)DEVPRESENT[unit->chiller_state]); 975 payload = xstrcat(payload, (char *)DEVPRESENT[unit->chiller_state]);
970 payload = xstrcat(payload, (char *)"\",\"temperature\":"); 976 payload = xstrcat(payload, (char *)"\",\"temperature\":");
971 sprintf(buf, "%.3f", unit->chiller_temperature / 1000.0); 977 sprintf(buf, "%.3f", unit->chiller_temperature / 1000.0);
972 payload = xstrcat(payload, buf); 978 payload = xstrcat(payload, buf);
979 payload = xstrcat(payload, (char *)",\"idx\":");
980 sprintf(buf, "%d", unit->chiller_idx);
981 payload = xstrcat(payload, buf);
973 payload = xstrcat(payload, (char *)"}"); 982 payload = xstrcat(payload, (char *)"}");
974 pub_domoticz_temp(unit->chiller_idx, unit->chiller_temperature); 983 pub_domoticz_temp(unit->chiller_idx, unit->chiller_temperature);
975 } else { 984 } else {
976 payload = xstrcat(payload, (char *)",\"chiller\":null"); 985 payload = xstrcat(payload, (char *)",\"chiller\":null");
977 } 986 }
986 sprintf(buf, "%d", unit->heater_state); 995 sprintf(buf, "%d", unit->heater_state);
987 payload = xstrcat(payload, buf); 996 payload = xstrcat(payload, buf);
988 payload = xstrcat(payload, (char *)",\"usage\":"); 997 payload = xstrcat(payload, (char *)",\"usage\":");
989 sprintf(buf, "%d", unit->heater_usage); 998 sprintf(buf, "%d", unit->heater_usage);
990 payload = xstrcat(payload, buf); 999 payload = xstrcat(payload, buf);
1000 payload = xstrcat(payload, (char *)",\"idx\":");
1001 sprintf(buf, "%d", unit->heater_idx);
1002 payload = xstrcat(payload, buf);
1003 payload = xstrcat(payload, (char *)",\"delay\":");
1004 sprintf(buf, "%d", unit->heater_delay);
1005 payload = xstrcat(payload, buf);
991 payload = xstrcat(payload, (char *)"}"); 1006 payload = xstrcat(payload, (char *)"}");
992 pub_domoticz_output(unit->heater_idx, unit->heater_state); 1007 pub_domoticz_output(unit->heater_idx, unit->heater_state);
993 } else { 1008 } else {
994 payload = xstrcat(payload, (char *)",\"heater\":null"); 1009 payload = xstrcat(payload, (char *)",\"heater\":null");
995 } 1010 }
1004 sprintf(buf, "%d", unit->cooler_state); 1019 sprintf(buf, "%d", unit->cooler_state);
1005 payload = xstrcat(payload, buf); 1020 payload = xstrcat(payload, buf);
1006 payload = xstrcat(payload, (char *)",\"usage\":"); 1021 payload = xstrcat(payload, (char *)",\"usage\":");
1007 sprintf(buf, "%d", unit->cooler_usage); 1022 sprintf(buf, "%d", unit->cooler_usage);
1008 payload = xstrcat(payload, buf); 1023 payload = xstrcat(payload, buf);
1024 payload = xstrcat(payload, (char *)",\"idx\":");
1025 sprintf(buf, "%d", unit->cooler_idx);
1026 payload = xstrcat(payload, buf);
1027 payload = xstrcat(payload, (char *)",\"delay\":");
1028 sprintf(buf, "%d", unit->cooler_delay);
1029 payload = xstrcat(payload, buf);
1009 payload = xstrcat(payload, (char *)"}"); 1030 payload = xstrcat(payload, (char *)"}");
1010 pub_domoticz_output(unit->cooler_idx, unit->cooler_state); 1031 pub_domoticz_output(unit->cooler_idx, unit->cooler_state);
1011 } else { 1032 } else {
1012 payload = xstrcat(payload, (char *)",\"cooler\":null"); 1033 payload = xstrcat(payload, (char *)",\"cooler\":null");
1013 } 1034 }
1022 sprintf(buf, "%d", unit->fan_state); 1043 sprintf(buf, "%d", unit->fan_state);
1023 payload = xstrcat(payload, buf); 1044 payload = xstrcat(payload, buf);
1024 payload = xstrcat(payload, (char *)",\"usage\":"); 1045 payload = xstrcat(payload, (char *)",\"usage\":");
1025 sprintf(buf, "%d", unit->fan_usage); 1046 sprintf(buf, "%d", unit->fan_usage);
1026 payload = xstrcat(payload, buf); 1047 payload = xstrcat(payload, buf);
1048 payload = xstrcat(payload, (char *)",\"idx\":");
1049 sprintf(buf, "%d", unit->fan_idx);
1050 payload = xstrcat(payload, buf);
1051 payload = xstrcat(payload, (char *)",\"delay\":");
1052 sprintf(buf, "%d", unit->fan_delay);
1053 payload = xstrcat(payload, buf);
1027 payload = xstrcat(payload, (char *)"}"); 1054 payload = xstrcat(payload, (char *)"}");
1028 pub_domoticz_output(unit->fan_idx, unit->fan_state); 1055 pub_domoticz_output(unit->fan_idx, unit->fan_state);
1029 } else { 1056 } else {
1030 payload = xstrcat(payload, (char *)",\"fan\":null"); 1057 payload = xstrcat(payload, (char *)",\"fan\":null");
1031 } 1058 }
1040 sprintf(buf, "%d", unit->light_state); 1067 sprintf(buf, "%d", unit->light_state);
1041 payload = xstrcat(payload, buf); 1068 payload = xstrcat(payload, buf);
1042 payload = xstrcat(payload, (char *)",\"usage\":"); 1069 payload = xstrcat(payload, (char *)",\"usage\":");
1043 sprintf(buf, "%d", unit->light_usage); 1070 sprintf(buf, "%d", unit->light_usage);
1044 payload = xstrcat(payload, buf); 1071 payload = xstrcat(payload, buf);
1072 payload = xstrcat(payload, (char *)",\"idx\":");
1073 sprintf(buf, "%d", unit->light_idx);
1074 payload = xstrcat(payload, buf);
1075 payload = xstrcat(payload, (char *)",\"delay\":");
1076 sprintf(buf, "%d", unit->light_delay);
1077 payload = xstrcat(payload, buf);
1045 payload = xstrcat(payload, (char *)"}"); 1078 payload = xstrcat(payload, (char *)"}");
1046 pub_domoticz_output(unit->light_idx, unit->light_state); 1079 pub_domoticz_output(unit->light_idx, unit->light_state);
1047 } else { 1080 } else {
1048 payload = xstrcat(payload, (char *)",\"light\":null"); 1081 payload = xstrcat(payload, (char *)",\"light\":null");
1049 } 1082 }
1055 payload = xstrcat(payload, (char *)",\"door\":{\"address\":\""); 1088 payload = xstrcat(payload, (char *)",\"door\":{\"address\":\"");
1056 payload = xstrcat(payload, unit->door_address); 1089 payload = xstrcat(payload, unit->door_address);
1057 payload = xstrcat(payload, (char *)"\",\"state\":"); 1090 payload = xstrcat(payload, (char *)"\",\"state\":");
1058 sprintf(buf, "%d", (unit->door_state) ? 0:1); 1091 sprintf(buf, "%d", (unit->door_state) ? 0:1);
1059 payload = xstrcat(payload, buf); 1092 payload = xstrcat(payload, buf);
1093 payload = xstrcat(payload, (char *)",\"idx\":");
1094 sprintf(buf, "%d", unit->door_idx);
1095 payload = xstrcat(payload, buf);
1060 payload = xstrcat(payload, (char *)"}"); 1096 payload = xstrcat(payload, (char *)"}");
1061 pub_domoticz_output(unit->door_idx, unit->door_state); 1097 pub_domoticz_output(unit->door_idx, unit->door_state);
1062 } else { 1098 } else {
1063 payload = xstrcat(payload, (char *)",\"door\":null"); 1099 payload = xstrcat(payload, (char *)",\"door\":null");
1064 } 1100 }
1070 payload = xstrcat(payload, (char *)",\"psu\":{\"address\":\""); 1106 payload = xstrcat(payload, (char *)",\"psu\":{\"address\":\"");
1071 payload = xstrcat(payload, unit->psu_address); 1107 payload = xstrcat(payload, unit->psu_address);
1072 payload = xstrcat(payload, (char *)"\",\"state\":"); 1108 payload = xstrcat(payload, (char *)"\",\"state\":");
1073 sprintf(buf, "%d", unit->psu_state); 1109 sprintf(buf, "%d", unit->psu_state);
1074 payload = xstrcat(payload, buf); 1110 payload = xstrcat(payload, buf);
1111 payload = xstrcat(payload, (char *)",\"idx\":");
1112 sprintf(buf, "%d", unit->psu_idx);
1113 payload = xstrcat(payload, buf);
1075 payload = xstrcat(payload, (char *)"}"); 1114 payload = xstrcat(payload, (char *)"}");
1076 pub_domoticz_output(unit->psu_idx, unit->psu_state); 1115 pub_domoticz_output(unit->psu_idx, unit->psu_state);
1077 } else { 1116 } else {
1078 payload = xstrcat(payload, (char *)",\"psu\":null"); 1117 payload = xstrcat(payload, (char *)",\"psu\":null");
1079 } 1118 }
1092 sprintf(buf, "%.1f", unit->PID_cool->SetP); 1131 sprintf(buf, "%.1f", unit->PID_cool->SetP);
1093 payload = xstrcat(payload, buf); 1132 payload = xstrcat(payload, buf);
1094 payload = xstrcat(payload, (char *)"},\"alarm\":"); 1133 payload = xstrcat(payload, (char *)"},\"alarm\":");
1095 sprintf(buf, "%d", unit->alarm_flag); 1134 sprintf(buf, "%d", unit->alarm_flag);
1096 payload = xstrcat(payload, buf); 1135 payload = xstrcat(payload, buf);
1136
1137 payload = xstrcat(payload, (char *)",\"pidc\":{\"P\":");
1138 sprintf(buf, "%.3f", unit->PID_cool->pGain);
1139 payload = xstrcat(payload, buf);
1140 payload = xstrcat(payload, (char *)",\"I\":");
1141 sprintf(buf, "%.3f", unit->PID_cool->iGain);
1142 payload = xstrcat(payload, buf);
1143 payload = xstrcat(payload, (char *)",\"D\":");
1144 sprintf(buf, "%.3f", unit->PID_cool->dGain);
1145 payload = xstrcat(payload, buf);
1146 payload = xstrcat(payload, (char *)",\"imax\":");
1147 sprintf(buf, "%.1f", unit->PID_cool->iMax);
1148 payload = xstrcat(payload, buf);
1149 payload = xstrcat(payload, (char *)",\"idle\":");
1150 sprintf(buf, "%.2f", unit->PID_cool->idleRange);
1151 payload = xstrcat(payload, buf);
1152 payload = xstrcat(payload, (char *)"},\"pidh\":{\"P\":");
1153 sprintf(buf, "%.3f", unit->PID_heat->pGain);
1154 payload = xstrcat(payload, buf);
1155 payload = xstrcat(payload, (char *)",\"I\":");
1156 sprintf(buf, "%.3f", unit->PID_heat->iGain);
1157 payload = xstrcat(payload, buf);
1158 payload = xstrcat(payload, (char *)",\"D\":");
1159 sprintf(buf, "%.3f", unit->PID_heat->dGain);
1160 payload = xstrcat(payload, buf);
1161 payload = xstrcat(payload, (char *)",\"imax\":");
1162 sprintf(buf, "%.1f", unit->PID_heat->iMax);
1163 payload = xstrcat(payload, buf);
1164 payload = xstrcat(payload, (char *)",\"idle\":");
1165 sprintf(buf, "%.2f", unit->PID_heat->idleRange);
1166 payload = xstrcat(payload, buf);
1167 payload = xstrcat(payload, (char *)"}");
1097 1168
1098 /* 1169 /*
1099 * Loaded profile and state 1170 * Loaded profile and state
1100 */ 1171 */
1101 if (unit->profile_uuid) { 1172 if (unit->profile_uuid) {

mercurial