/argon40

Home Assistant support for Argon ONE Pi 3 & 4 cases and Argon Fan HAT

Primary LanguagePythonMIT LicenseMIT

Argon ONE Pi 3 & 4 Cases and Fan HAT support for Home Assistant

GitHub Release GitHub Activity License

GitHub CRON Workflow Status GitHub PUSH Workflow Status

hacs Project Maintenance BuyMeCoffee

Component supports: Argon ONE Raspberry Pi 4 Case, Argon ONE Raspberry Pi 3 Case, Argon Fan HAT.

example

Installation

  1. Enable I2C. This is the most important step. Disabled I2C prevents the integraion from running and shows an error in logs.
  2. Using the tool of choice open the directory (folder) for your HA configuration (where you find configuration.yaml).
  3. If you do not have a custom_components directory (folder) there, you need to create it.
  4. In the custom_components directory (folder) create a new folder called argon40.
  5. Download all the files from the custom_components/argon40/ directory (folder) in this repository.
  6. Place the files you downloaded in the new directory (folder) you created.
  7. Add argon40: to your configuration.yaml
  8. Restart Home Assistant

Using your HA configuration directory (folder) as a starting point you should now also have this:

custom_components/argon40/__init__.py
custom_components/argon40/const.py
custom_components/argon40/manifest.json
custom_components/argon40/services.yaml

Configuration is done via configuration.yaml

Config

  1. Add CPU Temperature sensor:
sensor:
  - platform: command_line
    name: CPU Temp
    command: "cat /sys/class/thermal/thermal_zone0/temp"
    unit_of_measurement: "°C"
    value_template: "{{ value | multiply(0.001) | round(1) }}"
  1. Add automation:
automation:
- id: Set-fan-speed-off
  alias: Set-fan-speed-off
  description: 'Turn off fan on start'
  trigger:
    - platform: homeassistant
      event: start
  condition: []
  action:
    - service: argon40.set_fan_speed
      data:
        speed: 0
  mode: single
- id: Set-fan-speed-on-0
  alias: CPU fan high speed 0
  description: Turn up fan speed when CPU is under 35 degrees
  trigger:
    - platform: numeric_state
      entity_id: sensor.cpu_temp
      below: '35'
  condition: []
  action:
    - service: argon40.set_fan_speed
      data:
        speed: 0
  mode: single
- id: Set-fan-speed-on-10
  alias: CPU fan high speed 10
  description: Turn up fan speed when CPU is over 35 degrees
  trigger:
    - platform: numeric_state
      entity_id: sensor.cpu_temp
      above: '35'
  condition: []
  action:
    - service: argon40.set_fan_speed
      data:
        speed: 10
  mode: single
- id: Set-fan-speed-on-20
  alias: CPU fan high speed 20
  description: Turn up fan speed when CPU is over 45 degrees
  trigger:
    - platform: numeric_state
      entity_id: sensor.cpu_temp
      above: '45'
  condition: []
  action:
    - service: argon40.set_fan_speed
      data:
        speed: 20
  mode: single
- id: Set-fan-speed-on-30
  alias: CPU fan high speed 30
  description: Turn up fan speed when CPU is over 50 degrees
  trigger:
    - platform: numeric_state
      entity_id: sensor.cpu_temp
      above: '50'
  condition: []
  action:
    - service: argon40.set_fan_speed
      data:
        speed: 30
  mode: single
- id: Set-fan-speed-on-40
  alias: CPU fan high speed 40
  description: Turn up fan speed when CPU is over 55 degrees
  trigger:
    - platform: numeric_state
      entity_id: sensor.cpu_temp
      above: '55'
  condition: []
  action:
    - service: argon40.set_fan_speed
      data:
        speed: 40
  mode: single
- id: Set-fan-speed-on-50
  alias: CPU fan high speed 50
  description: Turn up fan speed when CPU is over 60 degrees
  trigger:
    - platform: numeric_state
      entity_id: sensor.cpu_temp
      above: '60'
  condition: []
  action:
    - service: argon40.set_fan_speed
      data:
        speed: 50
  mode: single
- id: Set-fan-speed-on-75
  alias: CPU fan high speed 75
  description: Turn up fan speed when CPU is over 65 degrees
  trigger:
    - platform: numeric_state
      entity_id: sensor.cpu_temp
      above: '65'
  condition: []
  action:
    - service: argon40.set_fan_speed
      data:
        speed: 75
  mode: single
- id: Set-fan-speed-on-100
  alias: CPU fan high speed 100
  description: Turn up fan speed to max when CPU is over 60 degrees
  trigger:
    - platform: numeric_state
      entity_id: sensor.cpu_temp
      above: '70'
  condition: []
  action:
    - service: argon40.set_fan_speed
      data:
        speed: 100
  mode: single

Bonus - button double-tap detection

automation:
  - alias: "Argon40 button double-tap"
    trigger:
      platform: event
      event_type: argon40_event
      event_data:
        action: double-tap
    action:
      - service: persistent_notification.create
        data:
          title: "Argon 40"
          message: "Button was double-tapped"

Contributions are welcome!

If you want to contribute to this please read the Contribution guidelines