Erhalten Sie früher Benachrichtigungen über niedrigen Batteriestand für die Maus

Ist es möglich, den Prozentsatz zu optimieren, mit dem ich bei schwacher Batterie für meine Magic Mouse 2 gewarnt werde?

Ich bekomme es derzeit nur bei 2%, an diesem Punkt ist es sehr nahe am Sterben, also muss ich aufhören, was ich tue, und es anschließen. Eine Erinnerung von etwa 10-15% würde es mir ermöglichen, es das nächste Mal anzuschließen, wenn ich es habe eine natürliche Pause.

Antworten (3)

Für diejenigen, die bereit sind, ein Bash-Skript zu kopieren und auszuführen und einen Cron-Job hinzuzufügen, ist hier eine vollständige Lösung, die kostenlos und aktuell ist (ab macOS Catalina 10.15.3) und keine Programmierung erfordert (ich habe diesen Teil für Sie erledigt). Nur ein wenig Systemadministration:

Speichern Sie dies in einem Bash- Skript wie ~/.mouse-battery-check.sh:

#!/usr/bin/env bash
PATH=/usr/local/bin:/usr/local/sbin:~/bin:/usr/bin:/bin:/usr/sbin:/sbin

# actual battery level
BATT=`ioreg -c AppleDeviceManagementHIDEventService -r -l | grep -i mouse -A 20 | grep BatteryPercent | cut -d= -f2 | cut -d' ' -f2`

# defaults to warn at 20%; accepts other number as 1st argument (useful for testing)
COMPARE=${1:-20}

if [ -z "$BATT" ]; then
  echo 'No mouse found.'
  exit 0
fi

if (( BATT < COMPARE )); then
  osascript -e "display notification \"Mouse battery is at ${BATT}%.\" with title \"Mouse Battery Low\""
fi

Öffnen Sie Terminal und machen Sie das Skript ausführbar:

chmod +x ~/.mouse-battery-check.sh

Jetzt können Sie testen, ob das Skript eine Desktop-Benachrichtigung sendet, indem Sie es ausführen, wenn Ihre BlueTooth-Maus verbunden ist (dies testet auf weniger als 101 % Batterie, daher sollte es immer eine Benachrichtigung senden):

~/.mouse-battery-check.sh 101

Um erneut mit der Standardeinstellung (20%) zu testen:

~/.mouse-battery-check.sh

Wenn keine BlueTooth-Maus erkannt wird, gibt das Skript „Keine Maus gefunden“ zurück.

Automatisch prüfen

Um jetzt regelmäßig zu testen und Sie automatisch zu benachrichtigen, fügen Sie einen neuen Cron-Job hinzu :

env EDITOR=nano crontab -e

Fügen Sie einen Eintrag hinzu, der alle 15 Minuten überprüft werden soll:

*/15 * * * * cd ~ && bash ~/.mouse-battery-check.sh

(Hier können Sie den Batterieprozentsatz wieder als Parameter an das Skript übergeben.)

Drücken Sie Control+Xdann und Ydann Enter, um den Editor zu verlassen und den Cron-Job zu speichern.

Kompatibilität

Dies wurde getestet auf:

  • Catalina 10.15.3
  • Mojave 10.14.6
  • High Sierra 10.13.x im Juni 2018

Danksagungen

Zur Batterieprüfung diese Antwort:

Akku-Warnstufe der Magic Mouse anpassen

Zur Benachrichtigung diese Antwort:

Wie kann ich eine Notification Center-Benachrichtigung von einem AppleScript oder Shell-Skript auslösen?

Für Cron-Jobs, dieser Blog:

https://ole.michelsen.dk/blog/schedule-jobs-with-crontab-on-mac-osx.html

Benutzer sirclesam für Kompatibilitätstests.

Verbesserung - Überprüfen Sie auch die Tastatur (und möglicherweise das Trackpad)

Ich habe das obige Skript geändert, um sowohl die Apple Magic Mouse als auch die Tastatur zu überprüfen. Mit dem Hinzufügen eines Wortes könnte es auch Trackpads oder andere überteuerte Apple Magic doo-Väter überprüfen. Ich habe nur die Maus und die Tastatur, also habe ich damit angefangen. Ich habe auch die Standardeinstellung auf 10 % geändert, was mir immer noch ein paar Tage Zeit gibt, um es anzuschließen. Das Trackpad folgt der gleichen Syntax.

#!/usr/bin/env bash
# Check battery level of Apple Magic Mouse and Keyboard and Notify if low

PATH=/usr/local/bin:/usr/local/sbin:~/bin:/usr/bin:/bin:/usr/sbin:/sbin

# Warn at 10% or according to first parameter.  Pass in 101 for testing.
COMPARE=${1:-10}

# Check each device.  
# If you have a Trackpad please add the suitable token to this list and test it.
for HIDThingy in Keyboard Mouse; do
    # Determine battery level of Apple Magic Thingy
    BATT=`ioreg -c AppleDeviceManagementHIDEventService -r -l \
         | grep -i $HIDThingy -A 20 | grep BatteryPercent | sed -e 's/.* //'`

    if [ -z "$BATT" ]; then
      echo "No $HIDThingy found."
    elif (( BATT < COMPARE )); then
      osascript -e "display notification \"$HIDThingy battery is at ${BATT}%.\" with title \"$HIDThingy Battery\""
    fi
done
Das funktioniert perfekt für mich, während ich BTT nie zum Laufen gebracht habe, vielen Dank für die großartige Antwort. Ich bin mir nicht sicher, ob ich es zur akzeptierten Antwort machen soll, nur weil es etwas komplizierter ist als eine einfache Einstellungsanpassung oder GUI-Lösung.
Übrigens sollte ein ähnlicher Ansatz für Magic Keyboard funktionieren.
Bestätigt, dass diese Lösung immer noch für Catalina 10.15.3 funktioniert. Danke Will!
Danke für das Teilen der Testergebnisse, @sirclesam. Ich vermute, dass der erste Teil, der am wahrscheinlichsten irgendwann kaputt geht, der Befehl ioreg oder die über die Pipe geleiteten Befehle sind, die seine Ausgabe analysieren.
Ich habe das obige Skript geändert, um sowohl Maus als auch Tastatur zu überprüfen, und es könnte mit einer sehr kleinen Änderung auch das Trackpad überprüfen, aber ich habe keines zum Testen. Wo poste ich meine Änderung am besten? Eine neue Frage schreiben und beantworten? Diese Antwort bearbeiten und am Ende hinzufügen? Es ist zu lang für einen Kommentar.
@jay613 das ist eine coole Idee und eine gute Frage. Da es etwas über den Rahmen der OP-Frage hinausgeht, halte ich die Idee zum Schreiben und Beantworten einer neuen Frage für eine gute Wahl. Aber wenn Sie eine vorgeschlagene Änderung an meiner Antwort veröffentlichen, habe ich die Möglichkeit, sie zu überprüfen, bevor sie wirksam wird. Sie würden als Redakteur +2 Punkte erhalten, im Gegensatz zu +10 pro Upvote, wenn Sie eine Antwort schreiben. Sie könnten hier einfach eine Antwort hinzufügen ; Wenn ja, würde ich mich über eine Erwähnung meines Beitrags (falls vorhanden) freuen, aber das liegt wirklich an Ihnen. ;) Beifall.
@WillCain Ich werde versuchen, Ihre Antwort zu ergänzen. Teilweise aus Erfahrung, da ich das noch nie gemacht habe. Hauptsächlich, weil Sie so viele Details über den End-to-End-Prozess angeben, müsste meine neue Frage und Antwort entweder das meiste wörtlich kopieren (plagiieren?) Oder nur eine Teilantwort sein (nur mein Code) und die Leute für alle hierher verweisen das idiotensichere Detail.
Verified funktioniert perfekt mit macOS Big Sur, danke Will

Da ist ein Weg!

Dafür benötigen Sie leider BTT (Better Touch Tools) . BTT war kostenlos, aber um die Weiterentwicklung zu unterstützen, gibt es jetzt ein Pay-what-you-want-Lizenzmodell ab 5 USD. Aber afaik, Sie können es einige Tage kostenlos testen.

So stellen Sie die Benachrichtigung ein:

  1. BTT starten → Menüleiste → Einstellungen → Grundeinstellungen → Häkchen bei „BTT beim Start starten“ setzen
  2. Wechseln Sie zu den erweiterten Einstellungen (obere linke Ecke)
  3. Gehen Sie zu den Mauseinstellungen (obere rechte Ecke)
  4. Unter „Allgemein“ steht ganz unten „Warnen, wenn Batteriestand niedriger als X %“
  5. Aktivieren Sie die Option und stellen Sie Ihr Level ein.

btt-Screenshot

Danke, ich habe es gerade installiert, es scheint, als ob die App viel mehr kann, mit dem ich herumstöbern kann.
Ja, die App ist für mich ein Must-Have! Einrasten von Fenstern, benutzerdefinierte Tastaturbefehle und vieles mehr!
Wenn Sie ein Magic Trackpad haben, ist BTT absolut unerlässlich. Ohne könnte ich heutzutage nicht mehr leben.

Sie können Bitbar jederzeit herunterladen und einfach ein Skript zum Ausführen hinzufügen, wie dieses https://github.com/kunkel/OSX-Nagios .

Willkommen bei Ask Different und nehmen Sie sich die Zeit, eine Antwort zu posten! Es ist hilfreich , Ihre Antwort zu erweitern , um weiter zu erklären/klarzustellen, was Sie zu kommunizieren versuchen. Es ist auch besser, die relevanten Punkte in diese Antwort aufzunehmen, anstatt nur auf einen anderen zu verlinken.
Dies überprüft die Computerbatterie, nicht die Batterie der magischen Maus.