All Projects → atxbyea → samsungrac

atxbyea / samsungrac

Licence: other
Home Assistant Climate Device for controlling (not only) Samsung AC

Projects that are alternatives of or similar to samsungrac

ha-samsungtv-smart
📺 Home Assistant SamsungTV Smart Component with simplified SmartThings API Support configurable from User Interface.
Stars: ✭ 240 (+650%)
Mutual labels:  samsung, homeassistant
HomeAssistant-Tapo-Control
Control for Tapo cameras as a Home Assistant component
Stars: ✭ 327 (+921.88%)
Mutual labels:  homeassistant, hacktoberfest2021
power-distribution-card
A Lovelace Card for visualizing power distributions.
Stars: ✭ 117 (+265.63%)
Mutual labels:  homeassistant
formica
A discord bot that collects and analyzes form data
Stars: ✭ 20 (-37.5%)
Mutual labels:  hacktoberfest2021
HacktoberFest2021
No description or website provided.
Stars: ✭ 29 (-9.37%)
Mutual labels:  hacktoberfest2021
micronova controller
Allows you to easily control via MQTT any Micronova equiped pellet stove. (MCZ, Extraflame, Laminox, and many others brands!)
Stars: ✭ 30 (-6.25%)
Mutual labels:  homeassistant
threedy
Home Assistant card for 3D printer status and management.
Stars: ✭ 159 (+396.88%)
Mutual labels:  homeassistant
tgpkernel-s7-n
Custom Kernel for Samsung Galaxy S7 / S7 Edge running Samsung Firmware (Nougat) [EOL]
Stars: ✭ 20 (-37.5%)
Mutual labels:  samsung
youtemy
A great way to learn from YouTube courses without any distractions and the ability to enroll in courses and track them with a daily streak to become more consistent.
Stars: ✭ 28 (-12.5%)
Mutual labels:  hacktoberfest2021
Hacktoberfest-2021
This is A Hacktoberfest 2021 Python Repository
Stars: ✭ 13 (-59.37%)
Mutual labels:  hacktoberfest2021
sakazuki
自宅の酒を管理するアプリケーション
Stars: ✭ 13 (-59.37%)
Mutual labels:  hacktoberfest2021
plugwise-beta
Custom-component / development version of the Plugwise Home Assistant platform
Stars: ✭ 23 (-28.12%)
Mutual labels:  homeassistant
Hactoberfest2021
Hacktoberfest2021
Stars: ✭ 45 (+40.63%)
Mutual labels:  hacktoberfest2021
hass-cozytouch
Cozytouch support for Home Assistant
Stars: ✭ 23 (-28.12%)
Mutual labels:  homeassistant
robo4j
Robo4j.io robotics/IoT framework
Stars: ✭ 65 (+103.13%)
Mutual labels:  hacktoberfest2021
Learn-To-Use-Github
Wanna Learn How to use github ? come on in
Stars: ✭ 68 (+112.5%)
Mutual labels:  hacktoberfest2021
Data-Structures-And-Algorithms
Important data structure and algorithms codes and concept's open-source repository.
Stars: ✭ 48 (+50%)
Mutual labels:  hacktoberfest2021
MeteoalarmCard
Meteoalarm, Météo-France and DWD severe weather warnings card for Home Assistant Lovelace UI ⛈️
Stars: ✭ 48 (+50%)
Mutual labels:  homeassistant
addon-sqlite-web
SQLite Web - Home Assistant Community Add-ons
Stars: ✭ 29 (-9.37%)
Mutual labels:  homeassistant
uber-go-style-guide-th
Uber's Go Style Guide Translation in Thai. Linked to the uber-go/guide as a part of contributions https://github.com/uber-go/guide
Stars: ✭ 98 (+206.25%)
Mutual labels:  hacktoberfest2021

hacs_badge

Climate_IP - IP based climate device for Home Assistant

Implementation of ClimateDevice for controlling IP based AC units. This component is able to work with any AC unit which can be controlled with REST API. At this moment it is configured to work with:

  • Samsung AC units available at port 8888 (new generation, REST API)
  • Samsung AC units available at port 2878 (old generation, socket communication)
  • Samsung MIM-H03 controller (REST API, port 8888)

Support for any unit working with REST API can be easily added via YAML configuration file.

This component was created by SebuZet, he however appears to be MIA so I have forked and repaired his component https://github.com/SebuZet/samsungrac

Installation

  1. Download all files from repo to newly created folder
  2. move folder custom_components/climate_ip to your <ha_configuration_folder>
  3. In configuration.yaml file add section:
    • For new generation units (REST API, port 8888)
      - platform: climate_ip
        config_file: 'samsungrac.yaml'
        ip_address: 'device_ip'
        token: 'token'
        cert: 'ac14k_m.pem'
      
    • For MIM-H03 controller (REST API, port 8888)
      - platform: climate_ip
        config_file: 'mim-h03_heatpump.yaml'
        ip_address: 'device_ip'
        token: 'token'
        cert: 'ac14k_m.pem'
      
    • For old generation units:
      - platform: climate_ip
        config_file: 'samsung_2878.yaml'
        ip_address: 'device_ip'
        token: 'token'
        cert: 'ac14k_m.pem' #set as '' to skip certificate verification
        mac: 'AB:cd:EF:gh:IJ'
        poll: True
      

Configuration

  1. Configuration parameters:

    Parameter description Required
    config_file YAML configuration filename Yes
    ip_address Device IP address (e.g. 192.178.1.200) Yes
    token Access token gathered from the device Yes
    cert_file certificate file name (default: ac14k_m.pem, Use None to not use certification) Usually Yes
    mac MAC address of device Only 2878 devices
    name Device name (by default this value is taken from YAML config file) No
    controller Controller type to use (default, and the only one for now: yaml) No
    poll Enable/disable state polling. Default: Taken from YAML config. Enabled for old gen devices No
    device_id Set the device for controllers like MIM-H03, which can control multiple air con units No. Strongly recommended for MIM-H03. Defaults to 032000000
    debug Enable/disable more debugs. Default: False No
  2. You need to have your device token. I will create a guide to gather it

  3. If you're using MIM-H03, you may need your device ID, this can be had by running the following command and select your aircon device. It might be device 0.

curl -k -H "Content-Type: application/json" -H "Authorization: Bearer __DEVICE_TOKEN__" --cert ac14k_m.pem -X GET https://__CLIMATE_IP_HOST__:8888/devices/
  1. YAML configuration You can easily add, remove or modify any device paramter to meet device capabilities.

YAML configuration file syntax

climate:
  - platform: climate_ip
    config_file: '/config/custom_components/climate_ip/samsung_2878.yaml'
    ip_address: 192.178.1.200
    token: SDADSAGFDfsdgdf234323
    mac: AA:BB:CC:DD:EE:FF
    name: 'AC Living Room'
    poll: True

Functionality

Functionality depends on yaml configuration file and can be easily changed by editing those files. Currently configuration provides:

  1. For new generation units (REST API, port 8888)
    • turn device on and off
    • sets and reads target/min/max temperatures
    • sets and reads swing direction
    • sets and reads fan level
    • sets and reads fan maximum level
    • sets and reads special mode (2Step, Comfort, Quiet etc)
    • sets and reads good sleep mode
    • turn purify mode on and off
    • turn auto clean mode on and off
    • turn beep mode on and off
    • read current indoor temperature
    • read device configuration
  2. For old generation units
    • turn device on and off
    • sets and reads target temperature
    • sets and reads swing direction (if supported)
    • sets and reads fan level (if supported)
    • sets and reads special mode (Comfort, Quiet etc)
    • turn purify mode on and off (if supported)
    • turn auto clean mode on and off (if supported)
    • read current indoor temperature
    • read device configuration

Using

Default functionality

This component implements Home Assistant ClimateDevice class. Functionality enabled in HA by default:

  • turn device on/off
  • select fan mode
  • select swing mode
  • select target temperatures (min, max and target)

Device specific functions

Device specific functionality is added as extra service called climate.climate_ip_set_property. Every device attribute can be set using this service with proper params.

{
  "entity_id" : "climate.salon_ac",
  "power" : "on",
  "purify" : "on",
  "special_mode" : "comfort"
}

Switches for special functions

To make controllig device as easy as possible user can create template switches for operations defined as Switch (please see configuration file). Below is an example of template switch for Purify option

switch:
  - platform: template
    switches:
      purify:
        value_template: "{{ is_state_attr('climate.salon_ac', 'purify', 'on') }}"
        turn_on:
          service: climate.climate_ip_set_property
          data:
            entity_id: climate.salon_ac
            purify: 'on'
        turn_off:
          service: climate.climate_ip_set_property
          data:
            entity_id: climate.salon_ac
            purify: 'off'

References

TODO

Documentation...

Known issues

SSL issues when running a pip install might be fixed with : #25

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].