Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- # Category = Lights
- #@Lighting controls and events
- $MQTT_insteon = new mqtt('mqtt_insteon', $config_parms{MQTT_Host}, $config_parms{MQTT_Port}, 'insteon/#', "mh-insteon", "XXXXXXXXXXXXXXXXX", 120);
- $MQTTobj_mrhouse = new mqtt('mqtt_mrhouse', $config_parms{MQTT_Host}, $config_parms{MQTT_Port}, 'mrhouse/#', 'mh-insteon', 'XXXXXXXXXXXXXXXXX', 120);
- $MQTTobj_house = new mqtt('mqtt_house', $config_parms{MQTT_Host}, $config_parms{MQTT_Port}, 'house/#', 'mh-insteon', 'XXXXXXXXXXXXXXXXX', 120);
- ################################################
- sub mqtt_discovery_sensor_send {
- my ( $mqtt_device_type, $mqtt_device_class, $mqtt_prefix, $mqtt_id, $mqtt_name, $mqtt_short_name ) = @_;
- my $device_class_json = '';
- $device_class_json = '"device_class":"'.$mqtt_device_class.'",' if $mqtt_device_class ne '';
- my $mqtt_template_sensor = '{
- "~":"'.$mqtt_prefix.'/'.$mqtt_id.'",
- "name":"'.$mqtt_short_name.'",
- "unique_id":"mh_'.$mqtt_id.'",
- "payload_on":"on",
- "payload_off":"off",
- "state_topic":"~/state",
- '.$device_class_json.'
- "device":{"name":"'.$mqtt_name.'",
- "identifiers":"mh_'.$mqtt_id.'",
- "manufacturer":"Mister House",
- "model":"'.$mqtt_device_type.'"
- }
- }';
- $MQTT_insteon->publish_mqtt_message('homeassistant/'.$mqtt_device_type.'/'.$mqtt_id.'/config', $mqtt_template_sensor, 1);
- }
- sub mqtt_discovery_switch_send {
- my ( $mqtt_device_type, $mqtt_device_class, $mqtt_prefix, $mqtt_id, $mqtt_name, $mqtt_short_name, $mqtt_dimable ) = @_;
- my $additional_json = '';
- $mqtt_dimable = false unless $mqtt_dimable;
- #print_log($mqtt_name.' dimable: '.$mqtt_dimable);
- $additional_json .= '"device_class":"'.$mqtt_device_class.'",' if $mqtt_device_class ne '';
- $additional_json .= '
- "brightness_scale":"100",
- "brightness_state_topic":"~/brightness/state",
- "brightness_command_topic":"~/brightness",' if $mqtt_dimable;
- my $mqtt_template_sensor = '{
- "~":"'.$mqtt_prefix.'/'.$mqtt_id.'",
- "name":"'.$mqtt_short_name.'",
- "unique_id":"mh_'.$mqtt_id.'",
- "payload_on":"on",
- "payload_off":"off",
- "state_topic":"~/state",
- "command_topic":"~",
- '.$additional_json.'
- "device":{
- "name":"'.$mqtt_name.'",
- "identifiers":"mh_'.$mqtt_id.'",
- "manufacturer":"Mister House",
- "model":"'.$mqtt_device_type.'"
- }
- }';
- $MQTT_insteon->publish_mqtt_message('homeassistant/'.$mqtt_device_type.'/'.$mqtt_id.'/config', $mqtt_template_sensor, 1);
- }
- sub mqtt_discovery_fan_send {
- my ( $mqtt_device_type, $mqtt_device_class, $mqtt_prefix, $mqtt_id, $mqtt_name, $mqtt_short_name ) = @_;
- my $device_class_json = '';
- $device_class_json = '"device_class":"'.$mqtt_device_class.'",' if $mqtt_device_class ne '';
- my $mqtt_template_sensor = '{
- "~":"'.$mqtt_prefix.'/'.$mqtt_id.'",
- "name":"'.$mqtt_short_name.'",
- "unique_id":"mh_'.$mqtt_id.'",
- "payload_on":"on",
- "payload_off":"off",
- "state_topic":"~/state",
- "command_topic":"~",
- "percentage_state_topic":"~/percentage/state",
- "percentage_command_topic":"~/percentage",
- "percentage_command_template": "{{ iif(value == 0, \'off\', value) }}",
- "speed_range_min":1,
- "speed_range_max":3,
- '.$device_class_json.'
- "icon":"mdi:ceiling-fan",
- "device":{
- "name":"'.$mqtt_name.'",
- "identifiers":"mh_'.$mqtt_id.'",
- "manufacturer":"Mister House",
- "model":"'.$mqtt_device_type.'"
- }
- }';
- $MQTT_insteon->publish_mqtt_message('homeassistant/'.$mqtt_device_type.'/'.$mqtt_id.'/config', $mqtt_template_sensor, 1);
- }
- ################################################
- # Example payloads from other objects which advertise
- =begin
- homeassistant/cover/GarageDoor/config {
- "~":"home/garage/GarageDoor",
- "name":"Door",
- "unique_id":"GarageDoor_XXXXXXXXXXXXXXXXXXX",
- "availability_topic":"~/status/availability",
- "device_class":"garage",
- "command_topic":"~/command/door",
- "payload_open":"open",
- "payload_close":"close",
- "payload_stop":"stop",
- "state_topic":"~/status/door",
- "device":{
- "name":"GarageDoor",
- "identifiers":"GarageDoor_XXXXXXXXXXXXXXXXXXX",
- "manufacturer":"Paul Wieland",
- "model":"ratgdo",
- "sw_version":"2.53",
- "configuration_url":"http://192.168.299.431/"
- }
- }
- homeassistant/light/GarageDoor/config {
- "~":"home/garage/GarageDoor",
- "name":"Light",
- "unique_id":"GarageDoor_08:3A:8D:FA:DB:30_light",
- "availability_topic":"~/status/availability",
- "command_topic":"~/command/light",
- "payload_on":"on",
- "payload_off":"off",
- "state_topic":"~/status/light",
- "device":{
- "name":"GarageDoor",
- "identifiers":"GarageDoor_XXXXXXXXXXXXXXXXXXX",
- "manufacturer":"Paul Wieland",
- "model":"ratgdo",
- "sw_version":"2.53",
- "configuration_url":"http://192.168.299.431/"
- }
- }
- homeassistant/binary_sensor/GarageDoor/config {
- "~":"home/garage/GarageDoor",
- "name":"Obstruction",
- "unique_id":"GarageDoor_08:3A:8D:FA:DB:30_obs",
- "availability_topic":"~/status/availability",uh
- "device_class":"motion",
- "state_topic":"~/status/obstruction",
- "payload_on":"obstructed",
- "payload_off":"clear",
- "device":{
- "name":"GarageDoor",
- "identifiers":"GarageDoor_XXXXXXXXXXXXXXXXXXX",
- "manufacturer":"Paul Wieland",
- "model":"ratgdo",
- "sw_version":"2.53",
- "configuration_url":"http://192.168.299.431/"
- }
- }
- =cut
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement