Funktion zum licht ausschalten, wenn wecker am handy beendet

This commit is contained in:
Ratatoskr 2023-11-22 12:27:46 +01:00
parent 5d21fb28c1
commit 8a9dea2d71
Signed by: Ratatoskr
GPG Key ID: 28B77439A6D78F4E

View File

@ -41,21 +41,29 @@ set_color() {
# Die IP-Adresse von Lisas-IPhone holen. # Die IP-Adresse von Lisas-IPhone holen.
check_ip() { check_ip() {
mac_address="1e:46:8c:e4:cd:d1" # Ersetze dies # Die IP-Adresse von Lisas-IPhone holen. mac_address="e4:cd:d1" # Ersetze dies # Die IP-Adresse von Lisas-IPhone holen.
A72_ip=$(arp -a | grep "$mac_address" | awk '{print $2}' | sed 's/[()]//g') A72_ip=$(arp -a | grep "$mac_address" | awk '{print $2}' | sed 's/[()]//g')
echo "$A72_ip" echo "$A72_ip"
} }
# check_ip -Funktion ausführen.
check_ip
#iobroker state set zigbee.0.04cd15fffee03198.state true #iobroker state set zigbee.0.04cd15fffee03198.state true
# Überprüfung, ob es die erste Änderung der Helligkeit ist # Überprüfung, ob es die erste Änderung der Helligkeit ist
first_brightness_change=true first_brightness_change=true
# Überprüfung, ob das Licht extern ausgeschaltet wurde # Überprüfung, ob das Licht extern ausgeschaltet wurde
check_external_light_status() { check_notification() {
local light_status=$(iobroker state getValue zigbee.0.04cd15fffee03198.state) local output
if [ "$light_status" == "false" ]; then output=$(ssh a72 'dumpsys notification | grep "Beenden"')
echo "Licht ist aus. Das Skript wird beendet."
if [[ $output == *"Beenden"* && $output == *"com.urbandroid.sleep"* ]]; then
echo "Wecker noch nicht beendet."
else
echo "Wecker beendet."
iobroker state set zigbee.0.04cd15fffee03198.state false
exit exit
fi fi
} }
@ -75,18 +83,11 @@ duration_seconds=900
# Alle 30 Sekinden Änderung # Alle 30 Sekinden Änderung
steps=30 # Alle 30 Sekunden einen Schritt steps=30 # Alle 30 Sekunden einen Schritt
# Berechne die Schritte für Helligkeit und Farbtemperatur pro Schritt
brightness_step=$(bc <<< "($end_brightness - $start_brightness) / $steps")
colortemp_step=$(bc <<< "$start_colortemp / $steps")
# Überprüfe, ob A72 in Schlafzimmer.
ip_adresse=$(check_ip)
if [ "$ip_adresse" = "192.168.178.60" ]; then
echo "A72 im Schlafzimmer. IP: $ip_adresse"
# Schrittweise Anpassung von Helligkeit und Farbtemperatur # Schrittweise Anpassung von Helligkeit und Farbtemperatur
for ((i = 0; i < $steps; i++)); do for ((i = 0; i < $steps; i++)); do
current_brightness=$(bc <<< "$start_brightness + ($brightness_step * $i)") current_brightness=$(bc <<< "$start_brightness + ($brightness_step * $i)")
current_colortemp=$(bc <<< "$start_colortemp - ($colortemp_step * $i)") current_colortemp=$(bc <<< "$start_colortemp - ($colortemp_step * $i)")
check_notification
if [ "$first_brightness_change" = false ]; then if [ "$first_brightness_change" = false ]; then
check_external_light_status check_external_light_status
@ -100,16 +101,11 @@ if [ "$ip_adresse" = "192.168.178.60" ]; then
set_colortemp "$current_colortemp" set_colortemp "$current_colortemp"
sleep 30 # Änderungen alle 30 Sekunden sleep 30 # Änderungen alle 30 Sekunden
done done
elif [ "$ip_adresse" = "192.168.178.99" ]; then
# A72 in Wohnzimmer. # Berechne die Schritte für Helligkeit und Farbtemperatur pro Schritt
echo "A72 im Wohnzimmer. IP: $ip_adresse" brightness_step=$(bc <<< "($end_brightness - $start_brightness) / $steps")
exit colortemp_step=$(bc <<< "$start_colortemp / $steps")
else
# A72 weder Schlaf- noch Wohnzummer.
echo "A72 nicht auffindbar. IP: $ip_adresse"
exit
fi
# Farben ändern für mehr konzentration # Farben ändern für mehr konzentration
while :; do while :; do
@ -126,6 +122,8 @@ while :; do
set_color "$blau" set_color "$blau"
sleep 2 sleep 2
set_color "$rot" set_color "$rot"
check_notification
done done
# Füge hier den Rest deines Skripts ein, das den Weckvorgang durchführt # Füge hier den Rest deines Skripts ein, das den Weckvorgang durchführt