Error on installing a script for case fan control and power button from command line

That’s the exact same script I use :slight_smile:
Automations is the next step. The beginnings are a bit hard, but then you will find it super useful.

Just got the Argon case today and found this thread. Trying to figure this out as well. I found another version of Argon one’s script for a different OS here but it doesn’t work on home assistant either.

https://www.argon40.com/learn/index.php/2020/03/10/argon-one-installation-guide-for-libreelec/

Happy to help you test this. Not sure if you have an Argon One available for testing purposes.

Hi everyone,

I just received my Argon One Case for Raspberry Pi 4, and I’m in the same situation:
The argon1.sh script is built for Debian based OS.
But I found this repo that seems running the Argon deamon in a docker container https://github.com/jmercha/docker-argonone

AFAIK, Hassio is built around Docker, and add-ons are precisely docker containers, so do you think about a solution with that?

PS: I’m developer, I can help to built a integration for Argon One case (fan + button) for Hassio

I’ve started developing an integration. The current version is available here: https://github.com/Misiu/argon40
Sadly I don’t have the case so I can’t properly test the code.
The idea is to create a service that could be used to control the fan speed. This way you can create a cpu temp sensor and use automation to control fan.
You need I2c enabled.

If you want you can try the code. Improvements are welcome :slight_smile:

2 Likes

Oh nice! I’ll try this as soon as I can, and I will let you know if it works! Thanks a lot

@Misiu I just tried to install the integration, but I catch an error at the last step:

    1. Add argon40 : to your configuration.yaml

If I add this to my configuration, Hassio tells me:

The following integrations and platforms could not be set up:
  - argon40
Please check your config.

Would you like talk about this in your GitHub repo, through an issue?

EDIT: It seems to be caused by i2c, which I did activate following this, but the logs show me that is not enabled.

2020-06-11 14:05:47 ERROR (MainThread) [homeassistant.setup] Error during setup of component argon40
Traceback (most recent call last):
  File "/usr/local/lib/python3.7/site-packages/smbus/smbus.py", line 81, in open
    self._fd = os.open(path, os.O_RDWR, 0)
FileNotFoundError: [Errno 2] No such file or directory: '/dev/i2c-1'

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/config/custom_components/argon40/__init__.py", line 34, in async_setup
    bus = SMBus(1)
  File "/usr/local/lib/python3.7/site-packages/smbus/smbus.py", line 56, in __init__
    self.open(bus)
  File "/usr/local/lib/python3.7/site-packages/smbus/smbus.py", line 83, in open
    raise IOError(e.errno)
OSError: 2

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/usr/src/homeassistant/homeassistant/setup.py", line 190, in _async_setup_component
    result = await asyncio.wait_for(task, SLOW_SETUP_MAX_WAIT)
  File "/usr/local/lib/python3.7/asyncio/tasks.py", line 442, in wait_for
    return fut.result()
  File "/config/custom_components/argon40/__init__.py", line 64, in async_setup
    address,
UnboundLocalError: local variable 'address' referenced before assignment

Sadly I don’t have access to my test environment till the end of the week.
There is an easier way to enable I2c, you need to plug SD card to your PC and edit a single file, but I can’t find the instructions. I’ll post it here and in my repo if I find and test them.

I followed thoses instructions I2c not working on the Pi4
And it works for i2c, now I have /dev/i2c-1 available.

But sadly, I figured out that adding argon40: to my configuration.yml is breaking completely the loading of my HomeAssistant instance. No specific logs via SSH, but the frontend refuse to load.

EDIT:

I found logs after added argon40: in my configuration.yaml:

20-06-12 19:21:42 ERROR (MainThread) [supervisor.homeassistant] Error on call https://172.30.32.1:8123/api/config:

It occurs many times, until I comment argon40: in configuration.yaml. Unfortunately, I don’t know where to find HomeAssistant API logs :confused:

Sorry for late reply.
What version of Home Assistant you have?
I’ll try to debug everything on both PI3 and PI4, but I still don’t have the case so I’ll be asking for help.
You can log issues in my repo or post them here :slight_smile:

I just received my Argon one for my raspberry pi 4 :slight_smile:

I would like to help and test your addon.
The problem is each time I uncomment the line “dtparam=i2c_arm=on” to get i2c, the pi doesn’t boot anymore. I was using this method I2c not working on the Pi4

Hi, no worries about replying late :wink:

I just open an issue on your repo: https://github.com/Misiu/argon40/issues/1

We could talk about this there, and go back here once the component will be ready?

2 Likes

Nice work on the custom component. Can’t believe argon40 has not addressed this.

1 Like

Tried implementing this but I get invalid config error on startup. Any ideas?

big thank you to @Misiu for the custom component!! I manage to get it working. Biggest difficulty for me was to enable l2c as the partition for hass overlay did not show up when i plug in into my PC so i couldnt change the file and ended up having to load up Linux to do it

For everyone having trouble with I2C/1wire - I’ve created a feature request Allow enabling I2C and 1wire via Home Assistant CLI.
Please upvote it :pleading_face:
Enabling both interfaces should be much easier and properly documented.

1 Like

I’m trying to enable I2C on my PI4. Did you follow those instructions on Windows?
I was able to finally do it, but I can’t remember which instructions I follow.
I’ve tried the one you linked (but I only see hassos-boot), then I tried https://github.com/home-assistant/operating-system/blob/ec6f7978b52823098c3d555f14c6097d0eb33916/Documentation/boards/raspberrypi.md#i2c and https://www.home-assistant.io/hassio/enable_i2c/

I want to find a proper way and correct the docs so it will work on PI4.

Hi Misiu,

Thanks for putting together this custom component!

FYI This is the method I used to enable I2C on my Raspberry Pi 4 Model B.

Your Argon40 component works great. I threw together an automation for HA to regulate the fan speed in discrete steps based on CPU temp which seems to be working smoothly.

Do you think you could add compatibility for the power button? It would be nice if it showed up as a sort of momentary switch in HA to be used in automations. To be honest, I’m not entirely sure what I would do with it, but because it’s on the Argon case it would be nice to have for use in HA.

Thanks again!

I’ve tried that guide on a fresh installed HassOS (4.10) and I failed.
I’m using Windows to create those files, so maybe that was the problem? I’ve tried saving files as ANSI and as UTF8, I’ve changed new line character from CR LF to LF (Unix style) and I had no luck :confused:
When I think about that, the only thing I didn’t try was to use another USB stick.
What USB port did you use? 2.0 or 3.0?
Do you remember if something should show in the logs saying the import was successful? (it should show something)

you can always create a PR to my repo with your automation, or post it here and I’ll update the readme :slight_smile:

I think you can use the power button already.
Argon one script is using pin 4 with pull down:

echo 'GPIO.setwarnings(False)' >> $powerbuttonscript
echo 'GPIO.setmode(GPIO.BCM)' >> $powerbuttonscript
echo 'shutdown_pin=4' >> $powerbuttonscript
echo 'GPIO.setup(shutdown_pin, GPIO.IN,  pull_up_down=GPIO.PUD_DOWN)' >> $powerbuttonscript

Please try adding this into config:

binary_sensor:
  - platform: rpi_gpio
    pull_mode: DOWN
    ports:
      4: Argon Power Button

ref: https://www.home-assistant.io/integrations/rpi_gpio/
maybe you will need to add invert_logic: true, but I can’t test that right now.

I’ll try to add separate events for short and long press for that button, but first I need to enable I2C :slight_smile:

looking too for support about this case fan control capabilities. I installed your repo and enabled i2c, bit can’t find the argon40.set_fan_speed service in home assistant. What went wrong?