SmartThings and HASS on Windows

First post and a new user so be warned. I’ve been configuring things from some extensive reading and I understand that Windows is almost a frowned upon platform but I already had a Windows Server in the house (actually WHS 2011 doing backups and serving My Movies to the kids). For the most part I have the following:

  • Running the latest HASS, 0.63.2 (just pulled an update yesterday from original install last week)
  • Python 3.6.4
  • Node v8.9.4
  • NPM 5.6.0
  • Mosquitto 1.4.14
  • JDK 8u162

I have successfully got the following devices working:

  • Philips Hue
  • Arlo Cameras w/ sensors readings
  • Weather Underground w/ forecast
  • Sonoff 4CH PRO running Tasmota Firmware

I’ve somewhat successfully installed all the SmartThings requirements based on the forum posts. I selected a Z-Wave Leviton Dimmer Switch and a Sylvania Outdoor RGB Strip.

Where I’m at now is that if I use the ST Mobile App and control the Leviton Dimmer (aka Kitchen Table Light) I can see the status change from Off to ON in the HA Light Card. I have it defined as a switch and am using the following configuration:

- platform: mqtt
  name: "Front Porch Strip"
  state_topic: "smartthings/Porch RGB Strip Lights/switch/state"
  command_topic: "smartthings/Porch RGB Strip Lights/switch/cmd"
  retain: true
  brightness_state_topic: "smartthings/Porch RGB Strip Lights/level/state"
  brightness_command_topic: "smartthings/Porch RGB Strip Lights/level/cmd"
  brightness_scale: 99
  brightness_value_template: '{{ value }}'
  qos: 0
  payload_on: "on"
  payload_off: "off"

- platform: mqtt
  name: "Kitchen Table Light"
  state_topic: "smartthings/Kitchen Table Light/switch/state"
  command_topic: "smartthings/Kitchen Table Light/switch/cmd"
  retain: true
  brightness_state_topic: "smartthings/Kitchen Table Light/level/state"
  brightness_command_topic: "smartthings/Kitchen Table Light/level/cmd"
  brightness_scale: 99
  brightness_value_template: '{{ value }}'
  qos: 0
  payload_on: "on"
  payload_off: "off"

I can watch commands using the SmartThings (ST) IDE logger as well as watch MQTT traffic using mqtt-spy

If I turn the Kitchen Table Light (KTL) ON using the ST App I see the state change in HA. I can then use HA to turn the light OFF and the state correctly changes in the ST App.

If I try to use HA to turn the KTL ON I see the slider move to the ON position but then it slides back to the OFF position after maybe 1 second.

When I use HA to turn the KTL OFF I can see traffic in both mqtt-spy and the ST IDE logger:

7:03:14 PM: debug Received device event from bridge: [status:OK]
7:03:13 PM: debug Forwarding device event to bridge: {"path":"/push","body":{"name":"Kitchen Table Light","value":"off","type":"switch"}}
7:03:11 PM: debug Received device event from bridge: [name:Kitchen Table Light, value:off, command:true, type:switch]

in mqtt I see a cmd and a state OFF

When I try to use HA to turn the KTL ON I don’t see anything int eh ST IDE and in mqtt I see the cmd on

This has me a bit perplexed and I can’t seem to find what is causing this behavior.

Thanks in advance for any help!

This is what I have for my setup

- platform: mqtt
  name: "Kitchen Sink Shades"
  state_topic: "smartthings/Kitchen Sink Shades/switch"
  command_topic: "smartthings/Kitchen Sink Shades/switch"
  brightness_state_topic: "smartthings/Kitchen Sink Shades/level"
  brightness_command_topic: "smartthings/Kitchen Sink Shades/level"
  brightness_scale: 100
  payload_on: "on"
  payload_off: "off"
  retain: true

I’ll have to try removing the state and cmd since you don’t have them but from what I read I thought they were needed.

Well that seemed to do the trick, I was even able to control the brightness.

In my config.yml (the one that is created for the MQTT Bridge) I had tried both setting and unsetting the state_read_suffix and command_suffix. My guess is you can either add them to your device configuration OR if you set them in the config.yml you don’t set them .

I would have expected the mqtt-spy messages to look like cmd/cmd when they were set in both the device and bridge configuration files but I didn’t see that.

Just for reference for the next person that comes along here’s what my config.yml currently is:

---
mqtt:
    # Specify your MQTT Broker's hostname or IP address here
    host: 192.168.10.201
    # Preface for the topics $PREFACE/$DEVICE_NAME/$PROPERTY
    preface: smartthings

    # The write and read suffixes need to be different to be able to differentiate when state comes from SmartThings or when its coming from the physical device/application

    # Suffix for the topics that receive state from SmartThings $PREFACE/$DEVICE_NAME/$PROPERTY/$STATE_READ_SUFFIX
    # Your physical device or application should subscribe to this topic to get updated status from SmartThings
    state_read_suffix: state

    # Suffix for the topics to send state back to SmartThings $PREFACE/$DEVICE_NAME/$PROPERTY/$STATE_WRITE_SUFFIX
    # your physical device or application should write to this topic to update the state of SmartThings devices that support setStatus
    # state_write_suffix: set_state

    # Suffix for the command topics $PREFACE/$DEVICE_NAME/$PROPERTY/$COMMAND_SUFFIX
    command_suffix: cmd

    # Other optional settings from https://www.npmjs.com/package/mqtt#mqttclientstreambuilder-options
    # username: AzureDiamond
    # password: hunter2

# Port number to listen on
port: 2080

and my lights.yaml file is now:

- platform: mqtt
  name: "Front Porch Strip"
  state_topic: "smartthings/Porch RGB Strip Lights/switch"
  command_topic: "smartthings/Porch RGB Strip Lights/switch"
  retain: true
  brightness_state_topic: "smartthings/Porch RGB Strip Lights/level"
  brightness_command_topic: "smartthings/Porch RGB Strip Lights/level"
  brightness_scale: 99
  brightness_value_template: '{{ value }}'
  qos: 0
  payload_on: "on"
  payload_off: "off"

- platform: mqtt
  name: "Kitchen Table Light"
  state_topic: "smartthings/Kitchen Table Light/switch"
  command_topic: "smartthings/Kitchen Table Light/switch"
  retain: true
  brightness_state_topic: "smartthings/Kitchen Table Light/level"
  brightness_command_topic: "smartthings/Kitchen Table Light/level"
  brightness_scale: 99
  brightness_value_template: '{{ value }}'
  qos: 0
  payload_on: "on"
  payload_off: "off"

Thanks for the help, I owe you a beer!

Well I spoke too soon. I left the house at 7:40pm and when I got back I thought it was odd that the KTL was ON. It turned OFF at one point and then later turned itself back on.

I still had the SmartThings IDE open and logging events and this is what it captured.

9:39:54 PM: debug Forwarding device event to bridge: {"path":"/push","body":{"name":"Kitchen Table Light","value":"off","type":"switch"}}
9:36:53 PM: debug Forwarding device event to bridge: {"path":"/push","body":{"name":"Kitchen Table Light","value":"66","type":"level"}}
9:36:43 PM: debug Received device event from bridge: [status:OK]
9:36:43 PM: debug Received device event from bridge: [name:Kitchen Table Light, value:66, command:true, type:level]
9:36:42 PM: debug Updating subscription: {"path":"/subscribe","body":{"devices":{"notify":["Contacts","System"],"acceleration":[],"alarm":[],"battery":[],"presence":[],"button":[],"carbonDioxide":[],"carbonMonoxide":[],"hue":["Porch RGB Strip Lights"],"saturation":["Porch RGB Strip Lights"],"color":["Porch RGB Strip Lights"],"colorTemperature":[],"consumable":[],"contact":[],"door":[],"energy":[],"illuminance":[],"image":[],"level":["Porch RGB Strip Lights","Kitchen Table Light"],"lock":[],"activities":[],"currentActivity":[],"motion":[],"status":[],"trackDescription":[],"trackData":[],"mute":[],"pH":[],"power":[],"humidity":[],"switch":["Kitchen Table Light","Porch RGB Strip Lights"],"shock":[],"lqi":[],"rssi":[],"sleeping":[],"smoke":[],"sound":[],"steps":[],"goal":[],"soundPressureLevel":[],"tamper":[],"temperature":[],"heatingSetpoint":[],"coolingSetpoint":[],"thermostatSetpoint":[],"thermostatMode":[],"thermostatFanMode":[],"thermostatOperatingState":[],"threeAxis":[],"timeRemaining":[],"sessionStatus":[],"touch":[],"voltage":[],"water":[],"windowShade":[]}}}

9:21:42 PM: debug Received device event from bridge: [name:Porch RGB Strip Lights, value:on, command:true, type:switch]
9:21:42 PM: debug Updating subscription: {"path":"/subscribe","body":{"devices":{"notify":["Contacts","System"],"acceleration":[],"alarm":[],"battery":[],"presence":[],"button":[],"carbonDioxide":[],"carbonMonoxide":[],"hue":["Porch RGB Strip Lights"],"saturation":["Porch RGB Strip Lights"],"color":["Porch RGB Strip Lights"],"colorTemperature":[],"consumable":[],"contact":[],"door":[],"energy":[],"illuminance":[],"image":[],"level":["Porch RGB Strip Lights","Kitchen Table Light"],"lock":[],"activities":[],"currentActivity":[],"motion":[],"status":[],"trackDescription":[],"trackData":[],"mute":[],"pH":[],"power":[],"humidity":[],"switch":["Kitchen Table Light","Porch RGB Strip Lights"],"shock":[],"lqi":[],"rssi":[],"sleeping":[],"smoke":[],"sound":[],"steps":[],"goal":[],"soundPressureLevel":[],"tamper":[],"temperature":[],"heatingSetpoint":[],"coolingSetpoint":[],"thermostatSetpoint":[],"thermostatMode":[],"thermostatFanMode":[],"thermostatOperatingState":[],"threeAxis":[],"timeRemaining":[],"sessionStatus":[],"touch":[],"voltage":[],"water":[],"windowShade":[]}}}

9:08:58 PM: debug Forwarding device event to bridge: {"path":"/push","body":{"name":"Kitchen Table Light","value":"off","type":"switch"}}
9:06:47 PM: debug Forwarding device event to bridge: {"path":"/push","body":{"name":"Kitchen Table Light","value":"74","type":"level"}}
9:06:43 PM: debug Received device event from bridge: [name:Kitchen Table Light, value:74, command:true, type:level]
9:06:43 PM: debug Received device event from bridge: [status:OK]
9:06:43 PM: debug Received device event from bridge: [name:Porch RGB Strip Lights, value:on, command:true, type:switch]
9:06:42 PM: debug Updating subscription: {"path":"/subscribe","body":{"devices":{"notify":["Contacts","System"],"acceleration":[],"alarm":[],"battery":[],"presence":[],"button":[],"carbonDioxide":[],"carbonMonoxide":[],"hue":["Porch RGB Strip Lights"],"saturation":["Porch RGB Strip Lights"],"color":["Porch RGB Strip Lights"],"colorTemperature":[],"consumable":[],"contact":[],"door":[],"energy":[],"illuminance":[],"image":[],"level":["Porch RGB Strip Lights","Kitchen Table Light"],"lock":[],"activities":[],"currentActivity":[],"motion":[],"status":[],"trackDescription":[],"trackData":[],"mute":[],"pH":[],"power":[],"humidity":[],"switch":["Kitchen Table Light","Porch RGB Strip Lights"],"shock":[],"lqi":[],"rssi":[],"sleeping":[],"smoke":[],"sound":[],"steps":[],"goal":[],"soundPressureLevel":[],"tamper":[],"temperature":[],"heatingSetpoint":[],"coolingSetpoint":[],"thermostatSetpoint":[],"thermostatMode":[],"thermostatFanMode":[],"thermostatOperatingState":[],"threeAxis":[],"timeRemaining":[],"sessionStatus":[],"touch":[],"voltage":[],"water":[],"windowShade":[]}}}

8:51:49 PM: debug Forwarding device event to bridge: {"path":"/push","body":{"name":"Kitchen Table Light","value":"66","type":"level"}}
8:51:43 PM: debug Received device event from bridge: [name:Kitchen Table Light, value:66, command:true, type:level]
8:51:43 PM: debug Received device event from bridge: [status:OK]
8:51:42 PM: debug Received device event from bridge: [name:Porch RGB Strip Lights, value:on, command:true, type:switch]
8:36:52 PM: debug Received device event from bridge: [status:OK]
8:36:51 PM: debug Forwarding device event to bridge: {"path":"/push","body":{"name":"Kitchen Table Light","value":"74","type":"level"}}
8:36:43 PM: debug Received device event from bridge: [name:Porch RGB Strip Lights, value:on, command:true, type:switch]
8:36:43 PM: debug Received device event from bridge: [name:Kitchen Table Light, value:74, command:true, type:level]
8:36:42 PM: debug Updating subscription: {"path":"/subscribe","body":{"devices":{"notify":["Contacts","System"],"acceleration":[],"alarm":[],"battery":[],"presence":[],"button":[],"carbonDioxide":[],"carbonMonoxide":[],"hue":["Porch RGB Strip Lights"],"saturation":["Porch RGB Strip Lights"],"color":["Porch RGB Strip Lights"],"colorTemperature":[],"consumable":[],"contact":[],"door":[],"energy":[],"illuminance":[],"image":[],"level":["Porch RGB Strip Lights","Kitchen Table Light"],"lock":[],"activities":[],"currentActivity":[],"motion":[],"status":[],"trackDescription":[],"trackData":[],"mute":[],"pH":[],"power":[],"humidity":[],"switch":["Kitchen Table Light","Porch RGB Strip Lights"],"shock":[],"lqi":[],"rssi":[],"sleeping":[],"smoke":[],"sound":[],"steps":[],"goal":[],"soundPressureLevel":[],"tamper":[],"temperature":[],"heatingSetpoint":[],"coolingSetpoint":[],"thermostatSetpoint":[],"thermostatMode":[],"thermostatFanMode":[],"thermostatOperatingState":[],"threeAxis":[],"timeRemaining":[],"sessionStatus":[],"touch":[],"voltage":[],"water":[],"windowShade":[]}}}

8:21:54 PM: debug Received device event from bridge: [status:OK]
8:21:53 PM: debug Forwarding device event to bridge: {"path":"/push","body":{"name":"Kitchen Table Light","value":"66","type":"level"}}
8:21:43 PM: debug Received device event from bridge: [name:Kitchen Table Light, value:66, command:true, type:level]
8:21:43 PM: debug Received device event from bridge: [status:OK]
8:21:42 PM: debug Received device event from bridge: [name:Porch RGB Strip Lights, value:on, command:true, type:switch]
8:21:42 PM: debug Updating subscription: {"path":"/subscribe","body":{"devices":{"notify":["Contacts","System"],"acceleration":[],"alarm":[],"battery":[],"presence":[],"button":[],"carbonDioxide":[],"carbonMonoxide":[],"hue":["Porch RGB Strip Lights"],"saturation":["Porch RGB Strip Lights"],"color":["Porch RGB Strip Lights"],"colorTemperature":[],"consumable":[],"contact":[],"door":[],"energy":[],"illuminance":[],"image":[],"level":["Porch RGB Strip Lights","Kitchen Table Light"],"lock":[],"activities":[],"currentActivity":[],"motion":[],"status":[],"trackDescription":[],"trackData":[],"mute":[],"pH":[],"power":[],"humidity":[],"switch":["Kitchen Table Light","Porch RGB Strip Lights"],"shock":[],"lqi":[],"rssi":[],"sleeping":[],"smoke":[],"sound":[],"steps":[],"goal":[],"soundPressureLevel":[],"tamper":[],"temperature":[],"heatingSetpoint":[],"coolingSetpoint":[],"thermostatSetpoint":[],"thermostatMode":[],"thermostatFanMode":[],"thermostatOperatingState":[],"threeAxis":[],"timeRemaining":[],"sessionStatus":[],"touch":[],"voltage":[],"water":[],"windowShade":[]}}}

8:06:46 PM: debug Received device event from bridge: [status:OK]
8:06:43 PM: debug Received device event from bridge: [name:Porch RGB Strip Lights, value:on, command:true, type:switch]
8:06:43 PM: debug Received device event from bridge: [name:Kitchen Table Light, value:74, command:true, type:level]
8:06:43 PM: debug Received device event from bridge: [status:OK]
8:06:42 PM: debug Updating subscription: {"path":"/subscribe","body":{"devices":{"notify":["Contacts","System"],"acceleration":[],"alarm":[],"battery":[],"presence":[],"button":[],"carbonDioxide":[],"carbonMonoxide":[],"hue":["Porch RGB Strip Lights"],"saturation":["Porch RGB Strip Lights"],"color":["Porch RGB Strip Lights"],"colorTemperature":[],"consumable":[],"contact":[],"door":[],"energy":[],"illuminance":[],"image":[],"level":["Porch RGB Strip Lights","Kitchen Table Light"],"lock":[],"activities":[],"currentActivity":[],"motion":[],"status":[],"trackDescription":[],"trackData":[],"mute":[],"pH":[],"power":[],"humidity":[],"switch":["Kitchen Table Light","Porch RGB Strip Lights"],"shock":[],"lqi":[],"rssi":[],"sleeping":[],"smoke":[],"sound":[],"steps":[],"goal":[],"soundPressureLevel":[],"tamper":[],"temperature":[],"heatingSetpoint":[],"coolingSetpoint":[],"thermostatSetpoint":[],"thermostatMode":[],"thermostatFanMode":[],"thermostatOperatingState":[],"threeAxis":[],"timeRemaining":[],"sessionStatus":[],"touch":[],"voltage":[],"water":[],"windowShade":[]}}}

7:51:43 PM: debug Received device event from bridge: [name:Porch RGB Strip Lights, value:on, command:true, type:switch]
7:51:42 PM: debug Updating subscription: {"path":"/subscribe","body":{"devices":{"notify":["Contacts","System"],"acceleration":[],"alarm":[],"battery":[],"presence":[],"button":[],"carbonDioxide":[],"carbonMonoxide":[],"hue":["Porch RGB Strip Lights"],"saturation":["Porch RGB Strip Lights"],"color":["Porch RGB Strip Lights"],"colorTemperature":[],"consumable":[],"contact":[],"door":[],"energy":[],"illuminance":[],"image":[],"level":["Porch RGB Strip Lights","Kitchen Table Light"],"lock":[],"activities":[],"currentActivity":[],"motion":[],"status":[],"trackDescription":[],"trackData":[],"mute":[],"pH":[],"power":[],"humidity":[],"switch":["Kitchen Table Light","Porch RGB Strip Lights"],"shock":[],"lqi":[],"rssi":[],"sleeping":[],"smoke":[],"sound":[],"steps":[],"goal":[],"soundPressureLevel":[],"tamper":[],"temperature":[],"heatingSetpoint":[],"coolingSetpoint":[],"thermostatSetpoint":[],"thermostatMode":[],"thermostatFanMode":[],"thermostatOperatingState":[],"threeAxis":[],"timeRemaining":[],"sessionStatus":[],"touch":[],"voltage":[],"water":[],"windowShade":[]}}}

7:40:12 PM: debug Forwarding device event to bridge: {"path":"/push","body":{"name":"Kitchen Table Light","value":"off","type":"switch"}}
7:36:51 PM: debug Received device event from bridge: [status:OK]
7:36:50 PM: debug Forwarding device event to bridge: {"path":"/push","body":{"name":"Kitchen Table Light","value":"66","type":"level"}}
7:36:43 PM: debug Received device event from bridge: [name:Kitchen Table Light, value:66, command:true, type:level]
7:36:43 PM: debug Received device event from bridge: [name:Porch RGB Strip Lights, value:on, command:true, type:switch]
7:36:42 PM: debug Updating subscription: {"path":"/subscribe","body":{"devices":{"notify":["Contacts","System"],"acceleration":[],"alarm":[],"battery":[],"presence":[],"button":[],"carbonDioxide":[],"carbonMonoxide":[],"hue":["Porch RGB Strip Lights"],"saturation":["Porch RGB Strip Lights"],"color":["Porch RGB Strip Lights"],"colorTemperature":[],"consumable":[],"contact":[],"door":[],"energy":[],"illuminance":[],"image":[],"level":["Porch RGB Strip Lights","Kitchen Table Light"],"lock":[],"activities":[],"currentActivity":[],"motion":[],"status":[],"trackDescription":[],"trackData":[],"mute":[],"pH":[],"power":[],"humidity":[],"switch":["Kitchen Table Light","Porch RGB Strip Lights"],"shock":[],"lqi":[],"rssi":[],"sleeping":[],"smoke":[],"sound":[],"steps":[],"goal":[],"soundPressureLevel":[],"tamper":[],"temperature":[],"heatingSetpoint":[],"coolingSetpoint":[],"thermostatSetpoint":[],"thermostatMode":[],"thermostatFanMode":[],"thermostatOperatingState":[],"threeAxis":[],"timeRemaining":[],"sessionStatus":[],"touch":[],"voltage":[],"water":[],"windowShade":[]}}}

Are those “Updating subscription” messages causing things to change? I think I recall reading in one of the posts that someone had a similar issue but I couldn’t find that thread. Notice that the level is changing between 66 and 74 so perhaps there’s a problem syncing the level of brightness and that is causing the ON/OFF at different brightness’s?

In mqtt-spy I see both /switch and /switch/state as well as /level and /level/state.

I thought I would add some of the Bridge log data just for completeness:

info: Subscribing to smartthings/Porch RGB Strip Lights/hue/cmd, smartthings/Porch RGB Strip Lights/hue, smartthings/Por
ch RGB Strip Lights/level/cmd, smartthings/Porch RGB Strip Lights/level, smartthings/Kitchen Table Light/level/cmd, smar
tthings/Kitchen Table Light/level, smartthings/Kitchen Table Light/switch/cmd, smartthings/Kitchen Table Light/switch, s
martthings/Porch RGB Strip Lights/switch/cmd, smartthings/Porch RGB Strip Lights/switch, smartthings/Contacts/notify/cmd
, smartthings/Contacts/notify, smartthings/System/notify/cmd, smartthings/System/notify, smartthings/Porch RGB Strip Lig
hts/saturation/cmd, smartthings/Porch RGB Strip Lights/saturation, smartthings/Porch RGB Strip Lights/color/cmd, smartth
ings/Porch RGB Strip Lights/color
info: Incoming message from MQTT: smartthings/Kitchen Table Light/level/cmd = 74
info: Skipping duplicate message from: smartthings/Kitchen Table Light/level/cmd = 74
info: Incoming message from MQTT: smartthings/Kitchen Table Light/level = 66
info: Skipping level set due to device being off
info: Incoming message from MQTT: smartthings/Kitchen Table Light/switch/cmd = on
info: Skipping duplicate message from: smartthings/Kitchen Table Light/switch/cmd = on
info: Incoming message from MQTT: smartthings/Kitchen Table Light/switch = on
info: Skipping duplicate message from: smartthings/Kitchen Table Light/switch = on
info: Incoming message from MQTT: smartthings/Porch RGB Strip Lights/switch/cmd = on
info: Saving current state
info: Saving current state
info: Subscribing to smartthings/Porch RGB Strip Lights/hue/cmd, smartthings/Porch RGB Strip Lights/hue, smartthings/Por
ch RGB Strip Lights/level/cmd, smartthings/Porch RGB Strip Lights/level, smartthings/Kitchen Table Light/level/cmd, smar
tthings/Kitchen Table Light/level, smartthings/Kitchen Table Light/switch/cmd, smartthings/Kitchen Table Light/switch, s
martthings/Porch RGB Strip Lights/switch/cmd, smartthings/Porch RGB Strip Lights/switch, smartthings/Contacts/notify/cmd
, smartthings/Contacts/notify, smartthings/System/notify/cmd, smartthings/System/notify, smartthings/Porch RGB Strip Lig
hts/saturation/cmd, smartthings/Porch RGB Strip Lights/saturation, smartthings/Porch RGB Strip Lights/color/cmd, smartth
ings/Porch RGB Strip Lights/color
info: Incoming message from MQTT: smartthings/Kitchen Table Light/level/cmd = 74
info: Skipping duplicate message from: smartthings/Kitchen Table Light/level/cmd = 74
info: Incoming message from MQTT: smartthings/Kitchen Table Light/level = 66
info: Incoming message from MQTT: smartthings/Kitchen Table Light/switch/cmd = on
info: Skipping duplicate message from: smartthings/Kitchen Table Light/switch/cmd = on
info: Incoming message from MQTT: smartthings/Kitchen Table Light/switch = on
info: Skipping duplicate message from: smartthings/Kitchen Table Light/switch = on
info: Incoming message from MQTT: smartthings/Porch RGB Strip Lights/switch/cmd = on
info: Incoming message from SmartThings: smartthings/Kitchen Table Light/level/state = 66
info: Incoming message from SmartThings: smartthings/Kitchen Table Light/switch/state = on
info: Saving current state
info: Incoming message from SmartThings: smartthings/Kitchen Table Light/switch/state = off
info: Saving current state
info: Subscribing to smartthings/Porch RGB Strip Lights/hue/cmd, smartthings/Porch RGB Strip Lights/hue, smartthings/Por
ch RGB Strip Lights/level/cmd, smartthings/Porch RGB Strip Lights/level, smartthings/Kitchen Table Light/level/cmd, smar
tthings/Kitchen Table Light/level, smartthings/Kitchen Table Light/switch/cmd, smartthings/Kitchen Table Light/switch, s
martthings/Porch RGB Strip Lights/switch/cmd, smartthings/Porch RGB Strip Lights/switch, smartthings/Contacts/notify/cmd
, smartthings/Contacts/notify, smartthings/System/notify/cmd, smartthings/System/notify, smartthings/Porch RGB Strip Lig
hts/saturation/cmd, smartthings/Porch RGB Strip Lights/saturation, smartthings/Porch RGB Strip Lights/color/cmd, smartth
ings/Porch RGB Strip Lights/color
info: Incoming message from MQTT: smartthings/Kitchen Table Light/level/cmd = 74
info: Skipping level set due to device being off
info: Incoming message from MQTT: smartthings/Kitchen Table Light/level = 66
info: Skipping duplicate message from: smartthings/Kitchen Table Light/level = 66
info: Incoming message from MQTT: smartthings/Kitchen Table Light/switch/cmd = on
info: Skipping duplicate message from: smartthings/Kitchen Table Light/switch/cmd = on
info: Incoming message from MQTT: smartthings/Kitchen Table Light/switch = on
info: Skipping duplicate message from: smartthings/Kitchen Table Light/switch = on
info: Incoming message from MQTT: smartthings/Porch RGB Strip Lights/switch/cmd = on
info: Saving current state
info: Saving current state
info: Subscribing to smartthings/Porch RGB Strip Lights/hue/cmd, smartthings/Porch RGB Strip Lights/hue, smartthings/Por
ch RGB Strip Lights/level/cmd, smartthings/Porch RGB Strip Lights/level, smartthings/Kitchen Table Light/level/cmd, smar
tthings/Kitchen Table Light/level, smartthings/Kitchen Table Light/switch/cmd, smartthings/Kitchen Table Light/switch, s
martthings/Porch RGB Strip Lights/switch/cmd, smartthings/Porch RGB Strip Lights/switch, smartthings/Contacts/notify/cmd
, smartthings/Contacts/notify, smartthings/System/notify/cmd, smartthings/System/notify, smartthings/Porch RGB Strip Lig
hts/saturation/cmd, smartthings/Porch RGB Strip Lights/saturation, smartthings/Porch RGB Strip Lights/color/cmd, smartth
ings/Porch RGB Strip Lights/color
info: Incoming message from MQTT: smartthings/Kitchen Table Light/level/cmd = 74
info: Incoming message from MQTT: smartthings/Kitchen Table Light/level = 66
info: Skipping duplicate message from: smartthings/Kitchen Table Light/level = 66
info: Incoming message from MQTT: smartthings/Kitchen Table Light/switch/cmd = on
info: Skipping duplicate message from: smartthings/Kitchen Table Light/switch/cmd = on
info: Incoming message from MQTT: smartthings/Kitchen Table Light/switch = on
info: Skipping duplicate message from: smartthings/Kitchen Table Light/switch = on
info: Incoming message from MQTT: smartthings/Porch RGB Strip Lights/switch/cmd = on
info: Incoming message from SmartThings: smartthings/Kitchen Table Light/switch/state = on
info: Incoming message from SmartThings: smartthings/Kitchen Table Light/level/state = 74
info: Saving current state

Maybe try without using command_suffix in config.yml

#command_suffix: cmd