Anwesenheit BT v4.23 (stable)

Problemlösungen und Hinweise von allgemeinem Interesse zur Haussteuerung mit HomeMatic

Moderator: Co-Administratoren

Benutzeravatar
blackhole
Beiträge: 3730
Registriert: 21.07.2015, 14:03
System: CCU
Hat sich bedankt: 184 Mal
Danksagung erhalten: 587 Mal

Re: Anwesenheit BT v2.29 (stable)

Beitrag von blackhole » 24.03.2017, 19:10

Hallo zusammen,

da Anwesenheit BT v2.29 stabil läuft, habe ich für nächste Woche einen Beta-Release mit kleineren Änderungen und ggf. auch mit neuen Funktionen eingeplant.
Falls es also Ideen, Wünsche, Verbesserungsvorschläge geben sollte, wäre jetzt ein guter Zeitpunkt diese zu äußern, damit diese in v2.30 Beta einfließen können.

Benutzeravatar
blackhole
Beiträge: 3730
Registriert: 21.07.2015, 14:03
System: CCU
Hat sich bedankt: 184 Mal
Danksagung erhalten: 587 Mal

Re: Anwesenheit BT v2.29 (stable)

Beitrag von blackhole » 27.03.2017, 15:16

Bisheriges Changelog v2.30 (beta1):
  • Überflüssige Hochkommata entfernt
  • Exit im Falle eines Typos hinzugefügt
  • Verwendung von verkürzten Timeouts
  • Code gestrafft und Einrückungen korrigiert
  • Anwesenheitsüberprüfungen ausgelagert an zentrale Stelle
  • Aufteilung in Skript- und Beipieldatei-Paket (Todo: How-To anpassen)
Falls es jemanden geben sollte, der das im Vorfeld testen möchte: Bitte hier im Thread oder direkt per PN melden.

danberg
Beiträge: 106
Registriert: 15.11.2015, 23:03

Re: Anwesenheit BT v2.29 (stable)

Beitrag von danberg » 28.03.2017, 17:03

Hallo blackhole

Ich erlaube mir einmal noch folgende Anmerkungen/Anregungen:

Ich würde (habe bei mir) den Exit-Befehlen noch eine Nummer mitgegeben, damit der Fehlerfall eindeutig gekennzeichnet ist (und nicht etwa sogar 0 als 'fehlerfrei' zurückgegeben wird).

Dann habe ich den doppelten 'Anwesenheitsprüfungs-Test' eliminiert (weiss nicht ob folgender Code-Auszug wirklich lauffähig ist, denn ich habe meine eigene Variablen-Benennung wieder rückgängig gemacht und beim WiFi-Test das ergänzte vorgängige Aufwecken per Pushover, falls konfiguriert, entfernt):

Code: Alles auswählen

DownStateRecheckLoop=0
while 
   # Ping via Bluetooth and Wifi
   echo "`date` - Erreichbarkeit per Bluetooth wird geprüft."
   $BTTest > /dev/null 2>&1; Result=$?
   if  [ $Result -eq 0 ]; then
      echo "`date` - Gerät ist per Bluetooth erreichbar."
   else
      echo "`date` - Gerät ist per Bluetooth nicht erreichbar."
      if  [ $ipAddressWiFi != "0.0.0.0" ]; then
         echo "`date` - Erreichbarkeit per WLAN wird geprüft."
         $WifiTest > /dev/null 2>&1; Result=$?
         if  [ $Result -eq 0 ]; then
            echo "`date` - Gerät ist per WLAN erreichbar."
         else
            echo "`date` - Gerät ist per WLAN nicht erreichbar."
         fi
      else
         echo "`date` - Prüfung per WLAN ist ausgeschaltet."
      fi  
   fi

   if  [ $Result -eq 0 ]; then
      #Device in range
      LoopSleep=$LongSleep
      if [ $DownStateRecheckLoop -gt 0 ]; then
         echo "`date` - Gerät hat kurzzeitig nicht geantwortet, ist nun aber wieder erreichbar. Warte $LoopSleep Sekunden ..."
         DownStateRecheckLoop=0;
      fi  
      curl -s "http://$HomematicIP:8181/hm.exe?value=dom.GetObject(ID_SYSTEM_VARIABLES).Get('$SystemVar').Value()" | grep false > /dev/null
      if [ $? -eq 1 ]; then
         # Do nothing device - presence did not change
         echo "`date` - Gerätestatus ist unverändert. Systemvariable bleibt unberührt. Warte $LoopSleep Sekunden ..."
      else
         #Device is status changed to: in range/detected
         echo -e "`date` - Gerätetatus hat sich geändert. Systemvariable wird geändert (Gerät erreichbar). Warte $LoopSleep Sekunden ..."
         curl -s "http://$HomematicIP:8181/hm.exe?value=dom.GetObject(ID_SYSTEM_VARIABLES).Get('$SystemVar').State(1)" > /dev/null
      fi
  
   else
      #Device out of range
      curl -s "http://$HomematicIP:8181/hm.exe?value=dom.GetObject(ID_SYSTEM_VARIABLES).Get('$SystemVar').Value()" | grep false > /dev/null
      if [ $? -eq 0 ] ; then
         LoopSleep=$ShortSleep
         # Do nothing - device presence did not change
         echo "`date` - Gerätestatus ist unverändert. Systemvariable bleibt unberührt. Warte $LoopSleep Sekunden ..."
      else
         LoopSleep=$DownStateRecheckTime
         DownStateRecheckLoop=$(( $DownStateRecheckLoop + 1 ))
         if  [ $DownStateRecheckLoop -eq $DownStateRecheckCount ]; then
            # Device status changed to: not in range/not detected
            echo -e "`date` - Gerätetatus hat sich geändert. Systemvariable wird geändert (Gerät nicht erreichbar)."
            curl -s "http://$HomematicIP:8181/hm.exe?value=dom.GetObject(ID_SYSTEM_VARIABLES).Get('$SystemVar').State(0)" > /dev/null
            DownStateRecheckLoop=0;
         else  
            echo "`date` - Gerät ist nicht erreichbar. Warte $LoopSleep Sekunden bis erneut getestet wird ..."
         fi
      fi
   fi

  # Wait before running loop again
  sleep $LoopSleep

  [ $DownStateRecheckLoop -gt 0 ] && [ $DownStateRecheckLoop -lt $DownStateRecheckCount ] 
do
  :; 
Viele Grüsse Danberg
__________________________
RaspberryMatic@RPi2 / FW 2.27.8.20170410

Benutzeravatar
blackhole
Beiträge: 3730
Registriert: 21.07.2015, 14:03
System: CCU
Hat sich bedankt: 184 Mal
Danksagung erhalten: 587 Mal

Re: Anwesenheit BT v2.29 (stable)

Beitrag von blackhole » 28.03.2017, 19:14

danberg hat geschrieben:Ich würde (habe bei mir) den Exit-Befehlen noch eine Nummer mitgegeben, damit der Fehlerfall eindeutig gekennzeichnet ist (und nicht etwa sogar 0 als 'fehlerfrei' zurückgegeben wird).
Ja, das stimmt.
Ich glaube zwar nicht, dass allzu viele Leute den Exit-Status auswerten werden, werde aber dennoch 4 sinnvolle Bytes ergänzen. :)
danberg hat geschrieben:Dann habe ich den doppelten 'Anwesenheitsprüfungs-Test' eliminiert
Das schwebte mir auch vor, hatte es aber zunächst noch nach hinten verschoben.
Ich schaue mir deinen Umbau dieser Tage genauer an und werde ihn mit Sicherheit in der Art einbauen.

Vielen Dank dafür!

Benutzeravatar
blackhole
Beiträge: 3730
Registriert: 21.07.2015, 14:03
System: CCU
Hat sich bedankt: 184 Mal
Danksagung erhalten: 587 Mal

Re: Anwesenheit BT v2.42 (stable)

Beitrag von blackhole » 07.04.2017, 23:38

Anwesenheit BT v2.41 v2.42 ist ab sofort verfügbar (Changelog)

Wesentliche Änderungen seit Anwesenheit BT v2.29 bis v2.42 auf einen Blick:
  • Exit im Falle eines Typos hinzugefügt
  • Verwendung von verkürzten Timeouts
  • Anwesenheitsüberprüfungen ausgelagert an zentrale Stelle
  • Aufteilung in Skript- und Beipieldatei-Paket, How-To angepasst
  • Exit-Befehle haben eine Code-Nummer erhalten
  • Code-Rewrite, die ehemals "doppelte Abwesenheitsprüfung" erfolgt nun in einer zentralen While-Schleife
  • Bugfixes, Code gestrafft, und Einrückungen korrigiert und Redundanzen entfernt
Auch wenn ich danbergs Code nicht übernommen habe, an dieser Stelle noch einmal vielen Dank für die Anregungen und Verbesserungen, welche letztendlich alle umgesetzt wurden (inkl. Auflösung des doppelten Loops) - wenn auch etwas anders als vorgeschlagen. :)

Ach ja, wer ganz genau hinschaut, findet in der Debug-Ausgabe unter gewissen Umständen einen Rechtschreibfehler in der Textausgabe. Wer ihn findet, darf ihn bis zur Jubiläumsausgabe (Edit: zwischenzeitlich released) behalten.

Benutzeravatar
blackhole
Beiträge: 3730
Registriert: 21.07.2015, 14:03
System: CCU
Hat sich bedankt: 184 Mal
Danksagung erhalten: 587 Mal

Re: Anwesenheit BT v2.44 (stable)

Beitrag von blackhole » 24.04.2017, 14:21

Die ehemalige Version 2.42 Beta ("Jubiläumsausgabe") ist ohne funktionale Code-Änderungen jetzt als v2.42 v2.43 v2.44 die aktuelle stabile und voraussichtlich finale Version (weitere Infos: siehe oben).

Anders
Beiträge: 76
Registriert: 07.07.2017, 11:09
Wohnort: Rotterdam/Aachen/Frankfurt/Changzhou
Hat sich bedankt: 31 Mal
Kontaktdaten:

Re: Anwesenheit BT v2.44 (stable)

Beitrag von Anders » 11.07.2017, 13:18

Hallo blackhole vielen dank fuer anwesenheit BT. Das klappt super.
Anders van Loork

Benutzeravatar
blackhole
Beiträge: 3730
Registriert: 21.07.2015, 14:03
System: CCU
Hat sich bedankt: 184 Mal
Danksagung erhalten: 587 Mal

Re: Anwesenheit BT v2.44 (stable)

Beitrag von blackhole » 11.07.2017, 14:03

Anders hat geschrieben:vielen dank fuer anwesenheit BT. Das klappt super.
Gerne geschehen.

dodi
Beiträge: 137
Registriert: 26.12.2016, 11:59
Hat sich bedankt: 2 Mal

Re: Anwesenheit BT v2.28

Beitrag von dodi » 08.08.2017, 13:14

mike9677 hat geschrieben:Hier mal jetzt der Auszug aus dem Log von heute Nacht.
Unbenannt.PNG
Und ich war die ganze Zeit anwesend 8)
Das kann doch nicht an schlechtem Empfang liegen, oder ?

Welche Werte sollte/könnte ich in den optionalen Einstellungen anpassen ?
PS: Client is ein iphone 6+ mit aktueller FW
mike
Hi,
ich habe genau das gleiche Problem mit dem IPhone5S meiner Freundin.
Meins hingegen funktioniert einwandfrei...
Hat einer dazu noch einen Anhaltspunkt gefunden?

Grüße
Sascha

Benutzeravatar
blackhole
Beiträge: 3730
Registriert: 21.07.2015, 14:03
System: CCU
Hat sich bedankt: 184 Mal
Danksagung erhalten: 587 Mal

Re: Anwesenheit BT v2.28

Beitrag von blackhole » 08.08.2017, 17:08

dodi hat geschrieben:ich habe genau das gleiche Problem mit dem IPhone5S meiner Freundin.
Meins hingegen funktioniert einwandfrei...
Welche Version vom Skript hast Du im Einsatz? Bei mike9677 war damals noch eine frühe Version im Einsatz.

Das Problem klingt danach, dass nur die WLAN-Erkennung (Fallback) aktiv ist. Da kommt es zu so einem Fehlerbild. Apple übertreibt es da ja mit Stromsparmaßnahmen, ähnlich wie Google bei neueren Android-Versionen.
Insofern vermute ich, dass Deine Freundin entweder Bluetooth zu diesem Zeitpunkt nicht aktiviert hatte oder dass die Konfiguration für das betroffene iPhone einen Fehler hat (falsche Bluetooth-MAC-Adresse) oder dass das iPhone selbst ein Problem hat.

Ein Reichweitenproblem wirst Du sicherlich schon ausgeschlossen haben. Wie man eine Diagnose durchzuführen kann, ist eingangs im Abschnitt "Testen der Konfiguration" beschrieben.

Antworten

Zurück zu „HomeMatic Tipps & Tricks - keine Fragen!“