thermferm/mqtt.c

changeset 693
3518c07737d8
parent 689
f94b525f7563
child 698
92a080c1a5d5
equal deleted inserted replaced
692:6d97eb820cc1 693:3518c07737d8
36 extern int my_shutdown; 36 extern int my_shutdown;
37 extern int my_reboot; 37 extern int my_reboot;
38 extern const char UNITMODE[5][8]; 38 extern const char UNITMODE[5][8];
39 extern const char UNITSTAGE[4][12]; 39 extern const char UNITSTAGE[4][12];
40 extern const char PROFSTATE[5][6]; 40 extern const char PROFSTATE[5][6];
41 extern const char TEMPSTATE[3][8]; 41 extern const char DEVPRESENT[4][6];
42 42
43 int Sequence = 0; 43 int Sequence = 0;
44 44
45 45
46 46
930 */ 930 */
931 if (unit->air_address) { 931 if (unit->air_address) {
932 payload = xstrcat(payload, (char *)",\"air\":{\"address\":\""); 932 payload = xstrcat(payload, (char *)",\"air\":{\"address\":\"");
933 payload = xstrcat(payload, unit->air_address); 933 payload = xstrcat(payload, unit->air_address);
934 payload = xstrcat(payload, (char *)"\",\"state\":\""); 934 payload = xstrcat(payload, (char *)"\",\"state\":\"");
935 payload = xstrcat(payload, (char *)TEMPSTATE[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 *)"}"); 939 payload = xstrcat(payload, (char *)"}");
940 pub_domoticz_temp(unit->air_idx, unit->air_temperature); 940 pub_domoticz_temp(unit->air_idx, unit->air_temperature);
947 */ 947 */
948 if (unit->beer_address) { 948 if (unit->beer_address) {
949 payload = xstrcat(payload, (char *)",\"beer\":{\"address\":\""); 949 payload = xstrcat(payload, (char *)",\"beer\":{\"address\":\"");
950 payload = xstrcat(payload, unit->beer_address); 950 payload = xstrcat(payload, unit->beer_address);
951 payload = xstrcat(payload, (char *)"\",\"state\":\""); 951 payload = xstrcat(payload, (char *)"\",\"state\":\"");
952 payload = xstrcat(payload, (char *)TEMPSTATE[unit->beer_state]); 952 payload = xstrcat(payload, (char *)DEVPRESENT[unit->beer_state]);
953 payload = xstrcat(payload, (char *)"\",\"temperature\":"); 953 payload = xstrcat(payload, (char *)"\",\"temperature\":");
954 sprintf(buf, "%.3f", unit->beer_temperature / 1000.0); 954 sprintf(buf, "%.3f", unit->beer_temperature / 1000.0);
955 payload = xstrcat(payload, buf); 955 payload = xstrcat(payload, buf);
956 payload = xstrcat(payload, (char *)"}"); 956 payload = xstrcat(payload, (char *)"}");
957 pub_domoticz_temp(unit->beer_idx, unit->beer_temperature); 957 pub_domoticz_temp(unit->beer_idx, unit->beer_temperature);
964 */ 964 */
965 if (unit->chiller_address) { 965 if (unit->chiller_address) {
966 payload = xstrcat(payload, (char *)",\"chiller\":{\"address\":\""); 966 payload = xstrcat(payload, (char *)",\"chiller\":{\"address\":\"");
967 payload = xstrcat(payload, unit->chiller_address); 967 payload = xstrcat(payload, unit->chiller_address);
968 payload = xstrcat(payload, (char *)"\",\"state\":\""); 968 payload = xstrcat(payload, (char *)"\",\"state\":\"");
969 payload = xstrcat(payload, (char *)TEMPSTATE[unit->chiller_state]); 969 payload = xstrcat(payload, (char *)DEVPRESENT[unit->chiller_state]);
970 payload = xstrcat(payload, (char *)"\",\"temperature\":"); 970 payload = xstrcat(payload, (char *)"\",\"temperature\":");
971 sprintf(buf, "%.3f", unit->chiller_temperature / 1000.0); 971 sprintf(buf, "%.3f", unit->chiller_temperature / 1000.0);
972 payload = xstrcat(payload, buf); 972 payload = xstrcat(payload, buf);
973 payload = xstrcat(payload, (char *)"}"); 973 payload = xstrcat(payload, (char *)"}");
974 pub_domoticz_temp(unit->chiller_idx, unit->chiller_temperature); 974 pub_domoticz_temp(unit->chiller_idx, unit->chiller_temperature);
1345 payload = xstrcat(payload, (char *)"\"chiller\":"); 1345 payload = xstrcat(payload, (char *)"\"chiller\":");
1346 sprintf(buf, "%.3f", unit->chiller_temperature / 1000.0); 1346 sprintf(buf, "%.3f", unit->chiller_temperature / 1000.0);
1347 payload = xstrcat(payload, buf); 1347 payload = xstrcat(payload, buf);
1348 comma = true; 1348 comma = true;
1349 } 1349 }
1350 if (Config.temp_address) { 1350 if (Config.temp_uuid) {
1351 if (comma) 1351 if (comma)
1352 payload = xstrcat(payload, (char *)","); 1352 payload = xstrcat(payload, (char *)",");
1353 payload = xstrcat(payload, (char *)"\"room\":"); 1353 payload = xstrcat(payload, (char *)"\"room\":");
1354 sprintf(buf, "%.1f", Config.temp_value / 1000.0); 1354 sprintf(buf, "%.1f", Config.temp_value / 1000.0);
1355 payload = xstrcat(payload, buf); 1355 payload = xstrcat(payload, buf);
1427 payload = xstrcat(payload, (char *)"Unknown\",\"os\":\"Unknown\",\"os_version\":\"Unknown"); 1427 payload = xstrcat(payload, (char *)"Unknown\",\"os\":\"Unknown\",\"os_version\":\"Unknown");
1428 } 1428 }
1429 payload = xstrcat(payload, (char *)"\",\"FW\":\""); 1429 payload = xstrcat(payload, (char *)"\",\"FW\":\"");
1430 payload = xstrcat(payload, (char *)VERSION); 1430 payload = xstrcat(payload, (char *)VERSION);
1431 payload = xstrcat(payload, (char *)"\",\"server_port\":"); 1431 payload = xstrcat(payload, (char *)"\",\"server_port\":");
1432 sprintf(buf, "%d", Config.my_port); 1432 sprintf(buf, "%d", Config.server_port);
1433 payload = xstrcat(payload, buf); 1433 payload = xstrcat(payload, buf);
1434 payload = xstrcat(payload, (char *)",\"websocket_port\":"); 1434 payload = xstrcat(payload, (char *)",\"websocket_port\":");
1435 sprintf(buf, "%d", Config.websocket_port); 1435 sprintf(buf, "%d", Config.websocket_port);
1436 payload = xstrcat(payload, buf); 1436 payload = xstrcat(payload, buf);
1437 1437
1438 if (Config.temp_address || Config.hum_address) { 1438 if (Config.temp_uuid || Config.hum_uuid) {
1439 payload = xstrcat(payload, (char *)",\"THB\":{"); 1439 payload = xstrcat(payload, (char *)",\"THB\":{");
1440 if (Config.temp_address) { 1440 if (Config.temp_uuid) {
1441 payload = xstrcat(payload, (char *)"\"temperature\":{\"address\":\""); 1441 payload = xstrcat(payload, (char *)"\"temperature\":{\"uuid\":\"");
1442 payload = xstrcat(payload, Config.temp_address); 1442 payload = xstrcat(payload, Config.temp_uuid);
1443 payload = xstrcat(payload, (char *)"\",\"state\":\""); 1443 payload = xstrcat(payload, (char *)"\",\"state\":\"");
1444 payload = xstrcat(payload, (char *)TEMPSTATE[Config.temp_state]); 1444 payload = xstrcat(payload, (char *)DEVPRESENT[Config.temp_state]);
1445 payload = xstrcat(payload, (char *)"\",\"value\":"); 1445 payload = xstrcat(payload, (char *)"\",\"value\":");
1446 sprintf(buf, "%d", Config.temp_value); 1446 sprintf(buf, "%d", Config.temp_value);
1447 payload = xstrcat(payload, buf); 1447 payload = xstrcat(payload, buf);
1448 payload = xstrcat(payload, (char *)"}"); 1448 payload = xstrcat(payload, (char *)"}");
1449 } 1449 }
1450 if (Config.temp_address && Config.hum_address) 1450 if (Config.temp_uuid && Config.hum_uuid)
1451 payload = xstrcat(payload, (char *)","); 1451 payload = xstrcat(payload, (char *)",");
1452 if (Config.hum_address) { 1452 if (Config.hum_uuid) {
1453 payload = xstrcat(payload, (char *)"\"humidity\":{\"address\":\""); 1453 payload = xstrcat(payload, (char *)"\"humidity\":{\"uuid\":\"");
1454 payload = xstrcat(payload, Config.hum_address); 1454 payload = xstrcat(payload, Config.hum_uuid);
1455 payload = xstrcat(payload, (char *)"\",\"state\":\""); 1455 payload = xstrcat(payload, (char *)"\",\"state\":\"");
1456 payload = xstrcat(payload, (char *)TEMPSTATE[Config.hum_state]); 1456 payload = xstrcat(payload, (char *)DEVPRESENT[Config.hum_state]);
1457 payload = xstrcat(payload, (char *)"\",\"value\":"); 1457 payload = xstrcat(payload, (char *)"\",\"value\":");
1458 sprintf(buf, "%d", Config.hum_value); 1458 sprintf(buf, "%d", Config.hum_value);
1459 payload = xstrcat(payload, buf); 1459 payload = xstrcat(payload, buf);
1460 payload = xstrcat(payload, (char *)"}"); 1460 payload = xstrcat(payload, (char *)"}");
1461 } 1461 }
1462 if (Config.temp_address || Config.hum_address) 1462 if (Config.temp_uuid || Config.hum_uuid)
1463 payload = xstrcat(payload, (char *)","); 1463 payload = xstrcat(payload, (char *)",");
1464 payload = xstrcat(payload, (char *)"\"index\":"); 1464 payload = xstrcat(payload, (char *)"\"index\":");
1465 sprintf(buf, "%d", Config.temp_hum_idx); 1465 sprintf(buf, "%d", Config.temp_hum_idx);
1466 payload = xstrcat(payload, buf); 1466 payload = xstrcat(payload, buf);
1467 payload = xstrcat(payload, (char *)"}"); 1467 payload = xstrcat(payload, (char *)"}");
1569 payload = xstrcat(payload, (char *)VERSION); 1569 payload = xstrcat(payload, (char *)VERSION);
1570 payload = xstrcat(payload, (char *)"\"}"); 1570 payload = xstrcat(payload, (char *)"\"}");
1571 comma = true; 1571 comma = true;
1572 } 1572 }
1573 1573
1574 if (Config.temp_address || Config.hum_address) { 1574 if (Config.temp_uuid || Config.hum_uuid) {
1575 if (comma) 1575 if (comma)
1576 payload = xstrcat(payload, (char *)","); 1576 payload = xstrcat(payload, (char *)",");
1577 payload = xstrcat(payload, (char *)"\"THB\":{"); 1577 payload = xstrcat(payload, (char *)"\"THB\":{");
1578 if (Config.temp_address) { 1578 if (Config.temp_uuid) {
1579 payload = xstrcat(payload, (char *)"\"temperature\":"); 1579 payload = xstrcat(payload, (char *)"\"temperature\":");
1580 sprintf(buf, "%.1f", Config.temp_value / 1000.0); 1580 sprintf(buf, "%d", Config.temp_value);
1581 payload = xstrcat(payload, buf); 1581 payload = xstrcat(payload, buf);
1582 } 1582 }
1583 if (Config.temp_address && Config.hum_address) 1583 if (Config.temp_uuid && Config.hum_uuid)
1584 payload = xstrcat(payload, (char *)","); 1584 payload = xstrcat(payload, (char *)",");
1585 if (Config.hum_address) { 1585 if (Config.hum_uuid) {
1586 payload = xstrcat(payload, (char *)"\"humidity\":"); 1586 payload = xstrcat(payload, (char *)"\"humidity\":");
1587 sprintf(buf, "%.1f", Config.hum_value / 1000.0); 1587 sprintf(buf, "%d", Config.hum_value);
1588 payload = xstrcat(payload, buf); 1588 payload = xstrcat(payload, buf);
1589 } 1589 }
1590 payload = xstrcat(payload, (char *)"}"); 1590 payload = xstrcat(payload, (char *)"}");
1591 } 1591 }
1592 1592
1696 free(topic); 1696 free(topic);
1697 topic = NULL; 1697 topic = NULL;
1698 free(payload); 1698 free(payload);
1699 payload = NULL; 1699 payload = NULL;
1700 1700
1701 if ((Config.temp_address || Config.hum_address) && Config.temp_hum_idx) { 1701 if ((Config.temp_uuid || Config.hum_uuid) && Config.temp_hum_idx) {
1702 sprintf(sidx, "%d", Config.temp_hum_idx); 1702 sprintf(sidx, "%d", Config.temp_hum_idx);
1703 sprintf(buf, "%.1f;%.1f;0", Config.temp_value / 1000.0, Config.hum_value / 1000.0); 1703 sprintf(buf, "%.1f;%.1f;0", Config.temp_value / 1000.0, Config.hum_value / 1000.0);
1704 1704
1705 payload = xstrcpy((char *)"{\"command\":\"udevice\",\"idx\":"); 1705 payload = xstrcpy((char *)"{\"command\":\"udevice\",\"idx\":");
1706 payload = xstrcat(payload, sidx); 1706 payload = xstrcat(payload, sidx);

mercurial