thermferm/mqtt.c

changeset 545
c382a6c58c20
parent 544
e2889b17f48c
child 546
d2e8626e7118
equal deleted inserted replaced
544:e2889b17f48c 545:c382a6c58c20
445 } 445 }
446 free(payload); 446 free(payload);
447 payload = NULL; 447 payload = NULL;
448 } 448 }
449 449
450 #endif
451 450
452 451
453 void publishDData(units_list *unit) 452 void publishDData(units_list *unit)
454 { 453 {
455 #ifdef HAVE_MOSQUITTO_H
456
457 char *payload = NULL, *topic = NULL; 454 char *payload = NULL, *topic = NULL;
458 455
459 if (mqtt_use) { 456 if (mqtt_use) {
460 payload = payload_header(); 457 payload = payload_header();
461 payload = xstrcat(payload, unit_data(unit, false)); 458 payload = xstrcat(payload, unit_data(unit, false));
466 free(payload); 463 free(payload);
467 payload = NULL; 464 payload = NULL;
468 free(topic); 465 free(topic);
469 topic = NULL; 466 topic = NULL;
470 } 467 }
471 #endif
472 } 468 }
473 469
474 470
475 471
476 void publishDBirth(units_list *unit) 472 void publishDBirth(units_list *unit)
477 { 473 {
478 #ifdef HAVE_MOSQUITTO_H
479
480 char *payload = NULL, *topic = NULL; 474 char *payload = NULL, *topic = NULL;
481 475
482 if (mqtt_use) { 476 if (mqtt_use) {
483 payload = payload_header(); 477 payload = payload_header();
484 payload = xstrcat(payload, unit_data(unit, true)); 478 payload = xstrcat(payload, unit_data(unit, true));
489 free(payload); 483 free(payload);
490 payload = NULL; 484 payload = NULL;
491 free(topic); 485 free(topic);
492 topic = NULL; 486 topic = NULL;
493 } 487 }
494 #endif
495 } 488 }
496 489
497 490
498 491
499 void publishDDeath(units_list *unit) 492 void publishDDeath(units_list *unit)
500 { 493 {
501 #ifdef HAVE_MOSQUITTO_H
502
503 char *topic = NULL; 494 char *topic = NULL;
504 495
505 if (mqtt_use) { 496 if (mqtt_use) {
506 // First delete presistent DBIRTH topic 497 // First delete presistent DBIRTH topic
507 topic = xstrcat(topic_base((char *)"DBIRTH"), (char *)"/"); 498 topic = xstrcat(topic_base((char *)"DBIRTH"), (char *)"/");
513 topic = xstrcat(topic, unit->alias); 504 topic = xstrcat(topic, unit->alias);
514 publisher(mosq, topic, NULL, true); 505 publisher(mosq, topic, NULL, true);
515 free(topic); 506 free(topic);
516 topic = NULL; 507 topic = NULL;
517 } 508 }
518 #endif
519 } 509 }
520 510
521 511
522 512
523 void publishNData(bool birth, int flag) 513 void publishNData(bool birth, int flag)
524 { 514 {
525 #ifdef HAVE_MOSQUITTO_H
526 char *payload = NULL, sidx[10], buf[64]; 515 char *payload = NULL, sidx[10], buf[64];
527 struct utsname ubuf; 516 struct utsname ubuf;
528 bool comma = false; 517 bool comma = false;
529 518
530 payload = payload_header(); 519 payload = payload_header();
600 payload = xstrcat(payload, (char *)"\"}"); 589 payload = xstrcat(payload, (char *)"\"}");
601 publisher(mosq, (char *)"domoticz/in", payload, false); 590 publisher(mosq, (char *)"domoticz/in", payload, false);
602 free(payload); 591 free(payload);
603 payload = NULL; 592 payload = NULL;
604 } 593 }
605 #endif
606 } 594 }
607 595
608 596
609 597
610 void mqtt_connect(void) 598 void mqtt_connect(void)
611 { 599 {
612 #ifdef HAVE_MOSQUITTO_H
613 char *id = NULL; 600 char *id = NULL;
614 char err[1024]; 601 char err[1024];
615 int rc; 602 int rc;
616 603
617 /* 604 /*
679 */ 666 */
680 mosquitto_loop_start(mosq); 667 mosquitto_loop_start(mosq);
681 publishNData(true, 0); 668 publishNData(true, 0);
682 publishDBirthAll(); 669 publishDBirthAll();
683 } 670 }
684 #endif
685 } 671 }
686 672
687 673
688 674
689 void mqtt_disconnect(void) 675 void mqtt_disconnect(void)
690 { 676 {
691 #ifdef HAVE_MOSQUITTO_H
692 int rc; 677 int rc;
693 678
694 if (mqtt_use) { 679 if (mqtt_use) {
695 /* 680 /*
696 * Final publish 0 to clients/<hostname>/thermferm/state 681 * Final publish 0 to clients/<hostname>/thermferm/state
730 mqtt_disconnect_sent = FALSE; 715 mqtt_disconnect_sent = FALSE;
731 mqtt_connect_lost = FALSE; 716 mqtt_connect_lost = FALSE;
732 mqtt_my_shutdown = FALSE; 717 mqtt_my_shutdown = FALSE;
733 syslog(LOG_NOTICE, "MQTT disconnected"); 718 syslog(LOG_NOTICE, "MQTT disconnected");
734 } 719 }
720 }
721
722
735 #endif 723 #endif
736 }
737
738
739

mercurial