úterý 8. dubna 2025

MacOS - skript s detaily o nabíječce

# nabijeni.sh

#!/bin/bash

# Získání hodnot z ioreg

AMP_HEX=$(ioreg -r -n AppleSmartBattery | grep '"Amperage"' | awk '{print $3}')

# Převod amperáže na signed číslo

AMP=$(perl -e "print unpack('q', pack('Q', $AMP_HEX));")

# Vstupní řádek (můžeš ho sem vložit nebo načítat z ioreg automaticky)

DATA=$(ioreg -r -n AppleSmartBattery)


# 🔌 CHARGER DATA

extract_charger() {

  echo "$DATA" | sed -nE "s/.*\"$1\"=([0-9]+).*/\1/p"

}

CURRENT=$(extract_charger "ChargingCurrent")   # mA

VOLTAGE=$(extract_charger "ChargingVoltage")   # mV

VACLIMIT=$(extract_charger "VacVoltageLimit")  # mV

CHARGER_ID=$(extract_charger "ChargerID")

REASON=$(extract_charger "NotChargingReason")

RESET_COUNT=$(extract_charger "ChargerResetCounter")


extract_adapter() {

  echo "$DATA" | sed -nE "s/.*\"$1\"=([^,}]*)[,}].*/\1/p" | head -n 1

}

ADAPTER_ID=$(extract_adapter "AdapterID")

ADAPTER_VOLTS=$(extract_adapter "AdapterVoltage") # mV

ADAPTER_CURRENT=$(extract_adapter "Current")      # mA

ADAPTER_WATTS=$(extract_adapter "Watts")

ADAPTER_DESCRIPTION=$(extract_adapter "Description")

IS_WIRELESS=$(extract_adapter "IsWireless")


if [[ -n "$ADAPTER_VOLTS" && -n "$ADAPTER_CURRENT" ]]; then

  # Odstraň whitespaces a nové řádky

  VOLTS_CLEAN=$(echo "$ADAPTER_VOLTS" | tr -d '[:space:]')

  CURRENT_CLEAN=$(echo "$ADAPTER_CURRENT" | tr -d '[:space:]')

  CALC_WATTS=$(awk -v v="$VOLTS_CLEAN" -v c="$CURRENT_CLEAN" 'BEGIN { printf "v=%.2f V, c=%.2f A, w=%.2f",v/1000,c/1000, (v * c) / 1000000 }')

else

  CALC_WATTS="N/A"

fi


# 🖨️ VÝPIS

clear

echo "🔋 CHARGER DATA:"

echo "  🔌 Charging Current:     $CURRENT mA"

echo "  🔋 Charging Voltage:     $VOLTAGE mV"

#echo "  ⚡ Charging Power:       $WATTS W"

echo "  🔧 Charger ID:           $CHARGER_ID"

echo "  ⛔ Not Charging Reason:  $REASON"

echo "  🔁 Reset Counter:        $RESET_COUNT"

echo ""

echo "🔌 ADAPTER DETAILS:"

echo "  🆔 Adapter ID:           $ADAPTER_ID"

echo "  🧱 Description:          $ADAPTER_DESCRIPTION"

#echo "  🔋 Max. voltage:              $ADAPTER_VOLTS mV"

#echo "  🔌 Max. current:              $ADAPTER_CURRENT mA"

echo "  ⚡ Reported Power:       $ADAPTER_WATTS W"

echo "  ⚙️  Computed Power:       $CALC_WATTS W"

echo "  📡 Wireless?:            $IS_WIRELESS"
echo "🔌 Battery Amperage:     $AMP mA" 

Pro příkaz "watch" je ho potřeba nejdřív instalovat:

/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"

cd

echo >> .zprofile

echo 'eval "$(/opt/homebrew/bin/brew shellenv)"' >> -zprofile

eval "$(/opt/homebrew/bin/brew shellenv)"


A pak už stačí jen:

watch ./nabijeni.sh

Žádné komentáře: