diff --git a/scripts/get_throttled.py b/scripts/get_throttled.py new file mode 100644 index 0000000..2fc6895 --- /dev/null +++ b/scripts/get_throttled.py @@ -0,0 +1,32 @@ +#!/usr/bin/env python + +import subprocess + +GET_THROTTLED_CMD = 'vcgencmd get_throttled' +MESSAGES = { + 0: 'Under-voltage!', + 1: 'ARM frequency capped!', + 2: 'Currently throttled!', + 3: 'Soft temperature limit active', + 16: 'Under-voltage has occurred since last reboot.', + 17: 'Throttling has occurred since last reboot.', + 18: 'ARM frequency capped has occurred since last reboot.', + 19: 'Soft temperature limit has occurred' +} + +print("Checking for throttling issues since last reboot...") + +throttled_output = subprocess.check_output(GET_THROTTLED_CMD, shell=True) +throttled_binary = bin(int(throttled_output.split('=')[1], 0)) + +warnings = 0 +for position, message in MESSAGES.iteritems(): + # Check for the binary digits to be "on" for each warning message + if len(throttled_binary) > position and throttled_binary[0 - position - 1] == '1': + print(message) + warnings += 1 + +if warnings == 0: + print("Looking good!") +else: + print("Houston, we may have a problem!")