9 prefixes_of_net_interfaces_to_show
="$4"
11 | stdbuf
-o L
"$dir_bin"/khatus_controller \
12 -v opt_debug
="$debug" \
13 -v opt_mpd_song_max_chars
=10 \
14 -v opt_prefixes_of_net_interfaces_to_show
="$prefixes_of_net_interfaces_to_show"
25 "$dir_bin"/$cmd |
while read line
; do
26 echo "${msg_head} $line" > "$pipe"
39 weather_station_id
='KJFK'
40 screen_brightness_device_name
='acpi_video0'
41 prefixes_of_net_interfaces_to_show
='w' # comma-separated
45 fan_path
='/proc/acpi/ibm/fan'
47 interval_inp_datetime
=1
48 interval_inp_brightness
=1
49 interval_inp_weather
=$
(( 30 * 60)) # 30 minutes
50 interval_inp_mpd_state
=1
51 interval_inp_mpd_song
=1
53 interval_inp_bluetooth
=5
54 interval_inp_net_wifi
=5
56 interval_inp_disk_space
=5
57 interval_inp_disk_io
=1
58 interval_inp_loadavg
=1
65 # ---------------------------------------------------------------------
67 # In order for automatic value reporting, at startup, to work - ensure that
68 # long option names match corresponding variable names!
69 # ---------------------------------------------------------------------
72 long_options
+=',dir_bin:'
73 long_options
+=',dir_logs:'
74 long_options
+=',file_pipe:'
75 long_options
+=',weather_station_id:'
76 long_options
+=',screen_brightness_device_name:'
77 long_options
+=',prefixes_of_net_interfaces_to_show:'
78 long_options
+=',disk_space_device:'
79 long_options
+=',disk_io_device:'
80 long_options
+=',thermal_zone:'
81 long_options
+=',fan_path:'
82 long_options
+=',interval_inp_datetime:'
83 long_options
+=',interval_inp_brightness:'
84 long_options
+=',interval_inp_weather:'
85 long_options
+=',interval_inp_mpd_state:'
86 long_options
+=',interval_inp_mpd_song:'
87 long_options
+=',interval_inp_volume:'
88 long_options
+=',interval_inp_bluetooth:'
89 long_options
+=',interval_inp_net_wifi:'
90 long_options
+=',interval_inp_net_io:'
91 long_options
+=',interval_inp_disk_space:'
92 long_options
+=',interval_inp_disk_io:'
93 long_options
+=',interval_inp_loadavg:'
94 long_options
+=',interval_inp_temp:'
95 long_options
+=',interval_inp_fan:'
96 long_options
+=',interval_inp_mem:'
97 long_options
+=',interval_inp_energy:'
124 --weather_station_id)
125 weather_station_id
="$2"
128 --screen_brightness_device_name)
129 screen_brightness_device_name
="$2"
132 --prefixes_of_net_interfaces_to_show)
133 prefixes_of_net_interfaces_to_show
="$2"
137 disk_space_device
="$2"
152 --interval_inp_datetime)
153 interval_inp_datetime
="$2"
156 --interval_inp_brightness)
157 interval_inp_brightness
="$2"
160 --interval_inp_weather)
161 interval_inp_weather
="$2"
164 --interval_inp_mpd_state)
165 interval_inp_mpd_state
="$2"
168 --interval_inp_mpd_song)
169 interval_inp_mpd_song
="$2"
172 --interval_inp_volume)
173 interval_inp_volume
="$2"
176 --interval_inp_bluetooth)
177 interval_inp_bluetooth
="$2"
180 --interval_inp_net_wifi)
181 interval_inp_net_wifi
="$2"
184 --interval_inp_net_io)
185 interval_inp_net_io
="$2"
188 --interval_inp_disk_space)
189 interval_inp_disk_space
="$2"
192 --interval_inp_disk_io)
193 interval_inp_disk_io
="$2"
196 --interval_inp_loadavg)
197 interval_inp_loadavg
="$2"
201 interval_inp_temp
="$2"
205 interval_inp_fan
="$2"
209 interval_inp_mem
="$2"
212 --interval_inp_energy)
213 interval_inp_energy
="$2"
223 screen_brightness_device_path
='/sys/class/backlight'
224 screen_brightness_device_path
+="/$screen_brightness_device_name"
227 echo '=============================================='
228 echo "Khatus starting with the following parameters:"
229 echo '=============================================='
231 $
(echo -n "$long_options" \
232 |
awk -v RS
=, '{sub(":$", ""); print $0}'
235 echo "$param := ${!param}"
238 echo '----------------------------------------------'
244 cmd_sens_screen_brightness
='khatus_sensor_screen_brightness'
245 cmd_sens_screen_brightness
+=" $screen_brightness_device_path"
247 cmd_sens_weather
="khatus_sensor_weather $weather_station_id"
249 cmd_sens_disk_space
="khatus_sensor_disk_space $disk_space_device"
251 cmd_sens_disk_io
="khatus_sensor_disk_io $disk_io_device"
253 cmd_sens_temperature
="khatus_sensor_temperature $thermal_zone"
255 cmd_sens_fan
="khatus_sensor_fan $fan_path"
257 # TODO: Redirect each worker's stderr to a dedicated log file
259 log
="$dir_logs"/khatus_sensors.log
260 spawn
"$pipe" "$dir_bin" "$log" khatus_sensor_datetime
'in:DATE_TIME' $interval_inp_datetime
261 spawn
"$pipe" "$dir_bin" "$log" "$cmd_sens_screen_brightness" 'in:SCREEN_BRIGHTNESS' $interval_inp_brightness
262 spawn
"$pipe" "$dir_bin" "$log" "$cmd_sens_weather" 'in:WEATHER' $interval_inp_weather
263 spawn
"$pipe" "$dir_bin" "$log" khatus_sensor_mpd_state
'in:MPD_STATE' $interval_inp_mpd_state
264 spawn
"$pipe" "$dir_bin" "$log" khatus_sensor_mpd_song
'in:MPD_SONG' $interval_inp_mpd_song
265 spawn
"$pipe" "$dir_bin" "$log" khatus_sensor_volume
'in:VOLUME' $interval_inp_volume
266 spawn
"$pipe" "$dir_bin" "$log" khatus_sensor_bluetooth_power
'in:BLUETOOTH_POWER' $interval_inp_bluetooth
267 spawn
"$pipe" "$dir_bin" "$log" khatus_sensor_net_wifi_status
'in:NET_WIFI_STATUS' $interval_inp_net_wifi
268 spawn
"$pipe" "$dir_bin" "$log" khatus_sensor_net_addr_io
'in:NET_ADDR_IO' $interval_inp_net_io
269 spawn
"$pipe" "$dir_bin" "$log" "$cmd_sens_disk_space" 'in:DISK_SPACE' $interval_inp_disk_space
270 spawn
"$pipe" "$dir_bin" "$log" "$cmd_sens_disk_io" 'in:DISK_IO' $interval_inp_disk_io
271 spawn
"$pipe" "$dir_bin" "$log" khatus_sensor_loadavg
'in:LOAD_AVG' $interval_inp_loadavg
272 spawn
"$pipe" "$dir_bin" "$log" "$cmd_sens_temperature" 'in:TEMPERATURE' $interval_inp_temp
273 spawn
"$pipe" "$dir_bin" "$log" "$cmd_sens_fan" 'in:FAN' $interval_inp_fan
274 spawn
"$pipe" "$dir_bin" "$log" khatus_sensor_memory
'in:MEMORY' $interval_inp_mem
275 spawn
"$pipe" "$dir_bin" "$log" khatus_sensor_energy
'in:ENERGY' $interval_inp_energy
281 "$prefixes_of_net_interfaces_to_show"