Skip to content

x-c1-fan.sh service throws error because of problem with float -> int conversion #13

@dermaze

Description

@dermaze

The fan script did not work properly after installation, so I had a look at the service:

pi@raspberrypi:~ $ sudo systemctl status x-c1-fan.service 
● x-c1-fan.service - Daemon to monitor and control fan speed
   Loaded: loaded (/lib/systemd/system/x-c1-fan.service; enabled; vendor preset: enabled)
   Active: active (running) since Sat 2024-11-02 19:43:20 CET; 1h 38min ago
 Main PID: 455 (bash)
    Tasks: 2 (limit: 4164)
   CGroup: /system.slice/x-c1-fan.service
           ├─ 455 bash /usr/local/bin/x-c1-fan.sh
           └─2641 sleep 5

Nov 02 21:21:17 raspberrypi x-c1-fan.sh[455]: /usr/local/bin/x-c1-fan.sh: Zeile 184: printf: 46.74: Ungültige Zahl.
Nov 02 21:21:22 raspberrypi x-c1-fan.sh[455]: /usr/local/bin/x-c1-fan.sh: Zeile 184: printf: 44.79: Ungültige Zahl.
Nov 02 21:21:27 raspberrypi x-c1-fan.sh[455]: /usr/local/bin/x-c1-fan.sh: Zeile 184: printf: 46.74: Ungültige Zahl.

The printf function is used for conversion from float to int, but fails. So I used the builtin number manipulation capabilities of bash instead:

    CUR_TEMP=${TEMP/.*}    #This does now work as intended
    #printf -v CUR_TEMP %0.0f "$TEMP" # Convert float to int, but does not work, original method, now commented out

Now the script works:

pi@raspberrypi:~ $ sudo systemctl status x-c1-fan.service 
● x-c1-fan.service - Daemon to monitor and control fan speed
   Loaded: loaded (/lib/systemd/system/x-c1-fan.service; enabled; vendor preset: enabled)
   Active: active (running) since Sat 2024-11-02 21:40:50 CET; 12min ago
 Main PID: 26993 (bash)
    Tasks: 2 (limit: 4164)
   CGroup: /system.slice/x-c1-fan.service
           ├─ 4042 sleep 5
           └─26993 bash /usr/local/bin/x-c1-fan.sh

Nov 02 21:40:50 raspberrypi systemd[1]: Started Daemon to monitor and control fan speed.
Nov 02 21:40:50 raspberrypi x-c1-fan.sh[26993]: Fan speed changed to 45, temp is 46.74
Nov 02 21:42:40 raspberrypi x-c1-fan.sh[26993]: Fan speed changed to 50, temp is 50.63
Nov 02 21:42:55 raspberrypi x-c1-fan.sh[26993]: Fan speed changed to 45, temp is 48.20

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions