{"id":43834314,"url":"https://github.com/oukene/smartthings_customize","last_synced_at":"2026-04-28T23:05:16.937Z","repository":{"id":190141243,"uuid":"681869874","full_name":"oukene/smartthings_customize","owner":"oukene","description":"HomeAssistant 와 SmartThings 의 연동을 자유자재로 하기 위한 컴포넌트","archived":false,"fork":false,"pushed_at":"2026-04-24T02:32:34.000Z","size":428,"stargazers_count":19,"open_issues_count":1,"forks_count":10,"subscribers_count":1,"default_branch":"main","last_synced_at":"2026-04-24T04:26:05.032Z","etag":null,"topics":["customcomponent","homeassistant","smartthings"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/oukene.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2023-08-23T00:09:19.000Z","updated_at":"2026-04-24T02:32:29.000Z","dependencies_parsed_at":"2024-01-11T11:32:17.400Z","dependency_job_id":"f1c78d6e-31c7-4946-8d4e-fa01592831af","html_url":"https://github.com/oukene/smartthings_customize","commit_stats":null,"previous_names":["oukene/smartthings_customize"],"tags_count":77,"template":false,"template_full_name":null,"purl":"pkg:github/oukene/smartthings_customize","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/oukene%2Fsmartthings_customize","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/oukene%2Fsmartthings_customize/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/oukene%2Fsmartthings_customize/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/oukene%2Fsmartthings_customize/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/oukene","download_url":"https://codeload.github.com/oukene/smartthings_customize/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/oukene%2Fsmartthings_customize/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32402705,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-28T19:38:08.556Z","status":"ssl_error","status_checked_at":"2026-04-28T19:37:55.688Z","response_time":56,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["customcomponent","homeassistant","smartthings"],"created_at":"2026-02-06T04:04:03.701Z","updated_at":"2026-04-28T23:05:16.909Z","avatar_url":"https://github.com/oukene.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# smartthings_customize\n\nMade based on SmartThings component, an integrated component of HomeAssistant\n\nComponent for adding functionality not supported in the official SmartThings component\n\n\n# installation\n\nstep1. You can add it by registering it as a custom repository in HACS, or by downloading the code\n\nstep2. Restart HomeAssistant and install the SmartThings Customize component. The installation process is identical to the official SmartThings component\n\nstep3. After installing \"config/smartthings_customize/{locationName}.yaml\" Check if the file was created.\n\nstep4. Please write the generated yaml file by referring to the example below.\n\n# example\n\n- Name creation rules, You can use label, component, capability, attribute, and command items.\nPlease refer to the button example in example.\u003cbr\u003e\u003cbr\u003e\n  \"%{label}%{component}%{capability}%{attribute}%{command} fan power\"\n\n- Rules can also be applied to entity ids.\u003cbr\u003eCheck default_entity_id_format: \"st_custom_%{device_id}_%{label}_%{component}_%{capability}_%{attribute}_%{command}_%{name}\"\u003cbr\u003e\u003cbr\u003e\nAnd in each capability setting It can be set with entity_id_format:\u003cbr\u003e\u003cbr\u003e\nexample) entity_id_format: st_custom_%{device_id}_%{device_type}_%{label}_%{component}_%{capability}_%{attribute}_%{command}_%{name}\n\n\u003cbr\u003e\u003cbr\u003e\n```\n# https://my.smartthings.com/advanced/\n# After identifying the information of the device from the above site, modify the setting file\n\nglobals:\n  lock:\n    - name: \"door lock\"\n      component: main\n      capability: switch\n      state:\n        attribute: switch\n      command:\n        \"lock\": \"on\"\n        \"unlock\": \"off\"\n      lock_state: [\"on\"]\n      \n  switch:\n    - name: \"power cool\"\n      capability: refrigeration\n      component: main\n      command:\n        \"on\": \"setRapidCooling\"\n        \"off\": \"setRapidCooling\"\n      argument:\n        \"on\": [\"on\"]\n        \"off\": [\"off\"]\n        #type: optional\n      state:\n        #component: optional\n        #capability: optional\n        attribute: rapidCooling\n      on_state: [\"on\"]\n\n    - name: \"power freeze\"\n      capability: refrigeration\n      component: main\n      command:\n        \"on\": \"setRapidFreezing\"\n        \"off\": \"setRapidFreezing\"\n      argument:\n        \"on\": [\"on\"]\n        \"off\": [\"off\"]\n        #type: optional\n      state:\n        attribute: rapidFreezing\n      on_state: [\"on\"]\n\n  sensor:\n    - name: power cool activate\n      capability: refrigeration\n      component: main\n      state:\n        attribute: rapidCooling\n      default_unit:\n      device_class:\n      state_class:\n      entity_category:\n\n    - name: power freeze activate\n      capability: refrigeration\n      component: main\n      state:\n        attribute: rapidFreezing\n      default_unit:\n      device_class:\n      state_class:\n      entity_category:\n\n  binary_sensor:\n    - name: rapid cooling\n      capability: refrigeration\n      component: main\n      state:\n        attribute: rapidCooling\n      on_state: [\"on\"]\n      device_class:\n      entity_category:\n\n    - name: rapid freezing\n      capability: refrigeration\n      component: main\n      state:\n        attribute: rapidFreezing\n      on_state: [\"on\"]\n\n  select:\n    - name: \"operating\"\n      component: main\n      capability: samsungce.robotCleanerOperatingState\n      options:\n        attribute: supportedOperatingState\n      command: setOperatingState\n      state:\n        attribute: operatingState\n\n  number:\n    - name: \"set freezer temperature\"\n      capability: thermostatCoolingSetpoint\n      component: freezer\n      command: setCoolingSetpoint\n      state:\n        attribute: coolingSetpoint\n      mode: slider\n      #min: -23\n      min:\n        component: freezer\n        capability: custom.thermostatSetpointControl\n        attribute: minimumSetpoint\n      max: -17\n      step: 1\n      parent_entity_id: binary_sensor.naengjanggo_contact_2\n\n  # Enter the information of the button entity to be added.\n  # You must enter the command entry for your SmartThings device and specify the properties that are changed by the\n  # Galaxy home mini ir fan example\n  button:\n    - name: \"%{label} %{component} %{capability} %{attribute} %{command} fan power\"\n      capability: statelessPowerToggleButton\n      component: main\n      command: setButton\n      argument: [powerToggle]\n\n    - name: \"fan speed\"\n      capability: statelessFanspeedButton\n      component: main\n      command: setButton\n      argument: [fanspeedUp]\n\n  text:\n    - name: \"Input Source\"\n      capability: samsungvd.mediaInputSource\n      component: \"main\"\n      command: setInputSource\n      state:\n        attribute: inputSource\n\n    - name: \"명령\"\n      capability: samsungim.bixbyContent\n      component: main\n      command: bixbyCommand\n      state:\n        attribute: text\n\n    - name: \"방송\"\n      capability: speechSynthesis\n      component: main\n      command: speak\n      state:\n        attribute: text\n\n  # The device ID of the SmartThings to ignore. Once added here, it will not be added as a device.\n  # This setting does not affect individual device settings (devies:)\n  ignore_devices: []\n  #  - b065a858-1927-fd98-a374-7fc1498e8c76\n\n# You can also add settings for individual devices under the devices: entry\n# (if you add them here they will be ignored in the global settings).\n# parent_entity_id - Included in the same device as the specified entity ID\ndevices:\n  # kimchi refrigerator example\n  - device_id: bc98a847-3fbb-e0fa-96f9-e9a8157c16ae\n    binary_sensor:\n      - name: top contact\n        capability: contactSensor\n        component: top\n        state:\n          attribute: contact\n        on_state: [\"open\"]\n        device_class: door\n      - name: middle contact\n        capability: contactSensor\n        component: middle\n        state:\n          attribute: contact\n        on_state: [\"open\"]\n        device_class: door\n      - name: bottom contact\n        capability: contactSensor\n        component: bottom\n        state:\n          attribute: contact\n        on_state: [\"open\"]\n        device_class: door\n\n    sensor:\n      - name: top OperatingState\n        capability: samsungce.kimchiRefrigeratorOperatingState\n        component: top\n        state:\n          attribute: operatingState\n          key: mode\n  # vacuum example\n  - device_id: \"46955634-09e8-6bc7-0167-a73b2e9182e6\"\n    vacuum:\n      - name: \"robot vacuum test\"\n        component: main\n        capability: samsungce.robotCleanerOperatingState\n        capabilities:\n          - commands:\n            capability: samsungce.robotCleanerOperatingState\n            command: setOperatingState\n            argument:\n              \"return\": [\"homing\"]\n              \"start\": [\"cleaning\"]\n              \"stop\": [\"paused\"]\n            state:\n              attribute: operatingState\n            s2h_state_mapping:\n              [\n                {\n                  \"charging\": \"docked\",\n                  \"charged\": \"docked\",\n                  \"returning\": \"homing\",\n                },\n              ]\n          - fan_speed:\n            capability: robotCleanerTurboMode\n            options: [\"on\", \"off\"]\n            command: setRobotCleanerTurboMode\n            s2h_fan_speed_mapping: [{ \"on\": \"turbo\", \"off\": \"normal\" }]\n            state:\n              attribute: robotCleanerTurboMode\n\n  - device_id: b065a858-1927-fd98-a374-7fc1498e8c76\n    type: ocf\n    sensor:\n      - name: power cool activate\n        capability: refrigeration\n        component: main\n        state:\n          attribute: rapidCooling\n        default_unit:\n        device_class:\n        state_class:\n        entity_category:\n\n      - name: power freeze activate\n        capability: refrigeration\n        component: main\n        state:\n          attribute: rapidFreezing\n        default_unit:\n        device_class:\n        state_class:\n        entity_category:\n\n    switch:\n      - name: \"power cool\"\n        capability: refrigeration\n        component: main\n        command:\n          \"on\": \"setRapidCooling\"\n          \"off\": \"setRapidCooling\"\n        argument:\n          \"on\": [\"on\"]\n          \"off\": [\"off\"]\n        state:\n          attribute: rapidCooling\n        on_state: [\"on\"]\n\n      - name: \"power freeze\"\n        capability: refrigeration\n        component: main\n        command:\n          \"on\": \"setRapidFreezing\"\n          \"off\": \"setRapidFreezing\"\n        argument:\n          \"on\": [\"on\"]\n          \"off\": [\"off\"]\n        state:\n          attribute: rapidFreezing\n        on_state: [\"on\"]\n    climate:\n      - name: freezer temperature\n        capability: thermostatCoolingSetpoint\n        component: freezer\n        capabilities:\n          - switch:\n            capability: refrigeration\n            component: main\n            command:\n              \"on\": \"setRapidCooling\"\n              \"off\": \"setRapidCooling\"\n            argument:\n              \"on\": [\"on\"]\n              \"off\": [\"off\"]\n            state:\n              attribute: rapidCooling\n          - mode:\n            capability: refrigeration\n            component: main\n            command: setRapidCooling\n            state:\n              attribute: rapidCooling\n            options: [\"cool\", \"off\"]\n            s2h_mode_mapping: [{ \"on\": \"cool\" }]\n            s2h_action_mapping: [{ \"on\": \"cooling\", \"off\": \"off\" }]\n\n          - target_temp:\n            apply_mode: \"cool\"\n            capability: thermostatCoolingSetpoint\n            min:\n              capability: custom.thermostatSetpointControl\n              attribute: minimumSetpoint\n            max:\n              capability: custom.thermostatSetpointControl\n              attribute: maximumSetpoint\n            step: 1\n            command: setCoolingSetpoint\n            state:\n              attribute: coolingSetpoint\n            argument:\n              type: float\n          - target_temp:\n            apply_mode: \"off\"\n            capability: thermostatCoolingSetpoint\n            min:\n              capability: custom.thermostatSetpointControl\n              attribute: minimumSetpoint\n            max:\n              capability: custom.thermostatSetpointControl\n              attribute: maximumSetpoint\n            step: 1\n            command: setCoolingSetpoint\n            state:\n              attribute: coolingSetpoint\n            argument:\n              type: float\n          - current_temperature:\n            capability: temperatureMeasurement\n            state:\n              attribute: temperature\n    valve:\n      - name: valve test\n        capability: thermostatCoolingSetpoint\n        component: freezer\n        device_class: water\n        capabilities:\n          - valve:\n            capability: refrigeration\n            component: main\n            command:\n              \"open\": \"setRapidFreezing\"\n              \"closed\": \"setRapidFreezing\"\n            argument:\n              \"open\": [\"on\"]\n              \"closed\": [\"off\"]\n            state:\n              attribute: rapidFreezing\n            open_state: [\"on\"]\n          - position:\n            capability: thermostatCoolingSetpoint\n            command: setCoolingSetpoint\n            state:\n              attribute: coolingSetpoint\n            open: -17\n            closed: -23\n          - stop:\n            capability: refrigeration\n            component: main\n            command: \"setRapidFreezing\"\n            argument: [\"off\"]\n\n  - device_id: 53eade61-7950-4b89-868b-60ee53e49248\n    fan:\n      - name: \"fan test\"\n        capability: airConditionerFanMode\n        component: main\n        capabilities:\n          - switch:\n            capability: switch\n            component: main\n            command:\n              \"on\": \"on\"\n              \"off\": \"off\"\n            argument:\n              \"on\": []\n              \"off\": []\n          - preset_mode:\n            capability: airConditionerFanMode\n            options:\n              attribute: supportedAcModes\n            command: setFanMode\n            state:\n              attribute: fanMode\n          - direction:\n            capability: airConditionerFanMode\n            options:\n              attribute: supportedAcModes\n            command: setFanMode\n            state:\n              attribute: fanMode\n            oscillate_modes: [\"low\"]\n          - percentage:\n            capability: thermostatCoolingSetpoint\n            min: 0\n            max: 100\n            step: 1\n            command: setCoolingSetpoint\n            state:\n              attribute: coolingSetpoint\n    climate:\n      - name: \"Bedroom Aircon\"\n        capability: airConditionerMode\n        component: main\n        capabilities:\n          - switch:\n            capability: switch\n            component: main\n            command:\n              \"on\": \"on\"\n              \"off\": \"off\"\n            state:\n              attribute: switch\n            argument:\n              \"on\": []\n              \"off\": []\n          - mode:\n            capability: airConditionerMode\n            options:\n              [\"off\", \"wind\", \"cool\", \"dry\"]\n              #attribute: supportedAcModes\n            command: setAirConditionerMode\n            state:\n              attribute: airConditionerMode\n            s2h_mode_mapping: [{ \"wind\": \"fan_only\" }]\n            s2h_action_mapping:\n              [{ \"cool\": \"cooling\", \"dry\": \"drying\", \"off\": \"off\" }]\n          - fan_mode:\n            capability: airConditionerFanMode\n            options:\n              attribute: supportedAcFanModes\n            command: setFanMode\n            state:\n              attribute: fanMode\n            s2h_state_mapping: [{}]\n          - preset_mode:\n            capability: airConditionerFanMode\n            options:\n              attribute: supportedAcFanModes\n            command: setFanMode\n            state:\n              attribute: fanMode\n\n          - swing_mode:\n            capability: airConditionerFanMode\n            options:\n              attribute: supportedAcFanModes\n            command: setFanMode\n            state:\n              attribute: fanMode\n\n          - target_temp:\n            capability: thermostatCoolingSetpoint\n            min: 22\n            max: 28\n            step: 1\n            command: setCoolingSetpoint\n            state:\n              attribute: coolingSetpoint\n\n          - target_temp_low:\n            capability: thermostatCoolingSetpoint\n            command: setCoolingSetpoint\n            state:\n              attribute: coolingSetpoint\n\n          - target_temp_high:\n            capability: thermostatCoolingSetpoint\n            command: setCoolingSetpoint\n            state:\n              attribute: coolingSetpoint\n\n          - target_humidity:\n            capability: thermostatCoolingSetpoint\n            min: 40\n            max: 60\n            step: 1\n            command: setCoolingSetpoint\n            state:\n              attribute: coolingSetpoint\n\n          - current_temperature:\n            capability: temperatureMeasurement\n            state:\n              attribute: temperature\n          - current_humidity:\n            entity_id: input_number.hum\n\n          - aux_heat:\n            capability: airConditionerMode\n            state:\n              attribute: airConditionerMode\n            aux_heat_modes: [\"cool\", \"dry\"]\n\nignore_platforms:\n  - scene\n\ndefault_entity_id_format: \"st_custom_%{device_id}_%{device_type}_%{label}_%{component}_%{capability}_%{attribute}_%{command}_%{name}\"\n\n\n\n  ```\n\n\n# support entity\n\n- number\n- switch\n- sensor\n- binary_sensor\n- select\n- button\n- text\n- climate\n- fan\n- lock \n- vacuum\n- valve\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Foukene%2Fsmartthings_customize","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Foukene%2Fsmartthings_customize","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Foukene%2Fsmartthings_customize/lists"}