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) { |