homematic-community / hm_pdetect

:iphone: A HomeMatic CCU-Addon to regularly query AVM FRITZ!-devices for registered WiFi/LAN devices and deduce general user presence from this information
GNU Lesser General Public License v3.0
74 stars 6 forks source link

Falscher Status mit Fritzbox 7390 und Fritz!OS 6.30 #16

Closed aski71 closed 8 years ago

aski71 commented 8 years ago

Hallo,

die Status-Änderung funktioniert nicht zuverlässig. Ich habe zwei Geräte konfiguriert. Bei einem Gerät scheint es zu funktionieren. Beim anderen Gerät stimmt es nicht: Das Gerät hat das WLAN verlassen (als abgemeldet angezeigt in der Fritz-Oberfläche unter Heimnetz und Funknetz. Keine doppelten MAC Adressen vorhanden), wird aber trotzdem weiter als "present" angezeigt.

Bitte um Hilfe.

Viele Grüße Alex

jens-maus commented 8 years ago

Du hattest gesagt du kannst das hm_pdetect.sh zum testen manuell auf einem Mac/Linux ausführen? Hier einmal eine Testversion die zusätzlich info ausgeben sollte. Bitte entsprechend ausführen und die infos hier posten.

hm_pdetect.sh.tar.gz

aski71 commented 8 years ago

Hm. Script braucht bash 4 oder höher. Weder Mac noch QNAP hat bash 4. Kann man diese Abhängigkeit auflösen?

jens-maus commented 8 years ago

Nein, das geht nicht da das script bash4 features verwendet (assoziative Arrays). Installier dir doch bash4 mittels macports (www.macports.org)

aski71 commented 8 years ago

Ok. Mach ich. Das dauert jetzt aber vielleicht eine Woche, da ich jetzt unterwegs bin. Melde mich.

aski71 commented 8 years ago

So. Jetzt gerade noch dazu gekommen, zu testen. Musste in Deinem Script "md5sum -b" durch "md5" austauschen, weil es md5sum auch nicht als macport gab. Und jetzt kommt der Gag: mit Deinem Testskript funktioniert es einwandfrei. Mit dem auf der CCU nicht. Ich stelle auf der CCU auch folgendes fest: Wenn ich nur 1 Gerät in hm_pdetect konfiguriert habe, wird die .list Variable auf 1 gesetzt. Wenn ich zwei Geräte definiert habe, wird die .list Variable auf 3 gesetzt!

Zusammen fassend: Mein Handy wird auf der CCU durch hm_pdetect immer richtig erkannt. Das von meiner Frau ist immer "present". Egal, ob WLAN on oder off ist. Der Zustand in der Fritzbox ist korrekt für beide und Dein Testskript behandelt erkennt den Präsenzstatus beider Geräte richtig.

Seit heute habe ich aber noch einen zusätzlichen Fehlereffekt: Sowohl das Testskript, als auch das Logging von hm_pdetect auf der CCU zeigen folgende Fehlermeldung (die ich gestern noch nicht hatte): "WARNING: could not connect to http://fritz.repeater. Please check hostname/ip or URI." Wenn ich per Browser http://fritz.repeater" eingebe, funktioniert es einwandfrei. Keine Ahnung, ob da ein Zusammenhang bestehen kann, aber ich dachte, ich erwähne es mal.

jens-maus commented 8 years ago

Damit wir der Sache besser auf den Grund gehen können würde ich dich bitten deine .conf datei hier einmal zu posten sowie die entsprechenden logfiles der unterschiedlichen hm_pdetect Versionen (auf CCU und direkt unter MacOSX). Erklären kann ich mir deine beschriebenen Effekte gerade leider nicht, ich bräuchte da mehr infos bzw. debugging von dir.

aski71 commented 8 years ago

Angeforderte Logs per Email geschickt.

Habe auch noch das Originalscript auf der CCU2 durch das Testscript ersetzt und ebenfalls einen Log gemacht.

Ergebnis: Sogar das Testscript reproduziert den Fehler, wenn es auf der CCU2 läuft. Wenn es auf dem Mac läuft, sind die Ergebnisse richtig.

jens-maus commented 8 years ago

Deine Logs hab ich bekommen. Allerdings werde ich daraus leider auch nicht schlau. Was mir einfach dazu fehlt ist die info (zu selben Zeit) wie das in der Fritz!Box denn in dem moment aussieht wenn deiner Meinung nach der Status falsch ist. Auch würde mich interessieren auf was du denn das abfrageintervall gestellt hast denn aus dem logfile der CCU2 kann man sehen das hier alle ~5 Sekunden eine abfrage passiert. ggf. überlastet das deine CCU aber. stell das bitte mal auf einen höheren wert (15 Sekunden usw.) und schau ob das problem weg ist. Auch sehe ich das du zusätzlich zur fritz.box auch noch einen fritz.repeater abfragst. solltest du den nicht haben bitte bei hostname einfach nur "fritz.box" reinschreiben damit hm_pdetect sich die abfrage eines möglichen repeaters sparen kann.

Was ich im übrigen auch noch sehen kann aus deinem CCU2 log ist das er in jedem run versucht z.b. die "Anwesenheit.list" variable auf "2" zu setzen und das obwohl im letzten run das doch bereits auf 2 gesetzt wurde. das sollte nicht passieren. Kannst du mal bitte die neueste version (0.9) auf der CCU2 einsetzen und schauen ob das da immer noch der fall ist?

aski71 commented 8 years ago

Hallo Jens,

das Intervall habe ich nur zum Testen auf 5 Sekunden gestellt, damit es schneller loggt. Die beiden Logdateien betrachten genau den gleichen Zeitraum. Ich habe die CCU-Variante laufen und loggen lassen und parallel das Testscript auf dem Mac.

Erst später habe ich dann das Testscript auf der CCU laufen lassen (ist das schon 0.9?). Dabei lief das Script nicht parallel auf dem Mac. Ergebnis war aber das gleiche. Alex ging auf Abwesend, wenn ich das WLAN auf dem iPhone abschaltete. Elke blieb auf Anwesend, wenn ich das WLAN auf dem iPhone abschaltete.

Das mit dem fritz.repeater irritiert mich ebenfalls. Ich habe tatsächlich einen fritz.repeater im Einsatz. Der ist angeschlossen und ich kann ihn im Browser über http://fritz.repeater erreichen. Das Script scheint das aus irgendwelchen Gründen nicht zu schaffen.

Die offizielle 0.9 habe ich gerade installiert und werde es heute abend testen.

Das mit der Anwesenheit.list ist mir auch schon aufgefallen. Ich melde mich wieder.

Viele Grüße Alex

Am 22.03.2016 um 09:11 schrieb Jens Maus notifications@github.com:

Deine Logs hab ich bekommen. Allerdings werde ich daraus leider auch nicht schlau. Was mir einfach dazu fehlt ist die info (zu selben Zeit) wie das in der Fritz!Box denn in dem moment aussieht wenn deiner Meinung nach der Status falsch ist. Auch würde mich interessieren auf was du denn das abfrageintervall gestellt hast denn aus dem logfile der CCU2 kann man sehen das hier alle ~5 Sekunden eine abfrage passiert. ggf. überlastet das deine CCU aber. stell das bitte mal auf einen höheren wert (15 Sekunden usw.) und schau ob das problem weg ist. Auch sehe ich das du zusätzlich zur fritz.box auch noch einen fritz.repeater abfragst. solltest du den nicht haben bitte bei hostname einfach nur "fritz.box" reinschreiben damit hm_pdetect sich die abfrage eines möglichen repeaters sparen kann.

Was ich im übrigen auch noch sehen kann aus deinem CCU2 log ist das er in jedem run versucht z.b. die "Anwesenheit.list" variable auf "2" zu setzen und das obwohl im letzten run das doch bereits auf 2 gesetzt wurde. das sollte nicht passieren. Kannst du mal bitte die neueste version (0.9) auf der CCU2 einsetzen und schauen ob das da immer noch der fall ist?

aski71 commented 8 years ago

Hallo Jens,

gerade nochmal getestet:

Gerät Alex: Statusänderung funktioniert Gerät Elke: Statusänderung funktioniert nicht

Wenn beide Geräte anwesend sind, ist die Anwesenheit.list immer noch 3. Wenn mein Gerät sich abmeldet ist die Anwesenheit.list = 2

Inzwischen bin ich der Sache näher gekommen, warum der Connect zum Repeater nicht funktioniert. Im Script rufst Du die URL http://fritz.repeater/login_sid.lua http://fritz.repeater/login_sid.lua auf. Das habe ich mal manuell gemacht, woraufhin mein Repeater dreist behauptet:

FRITZ!WLAN Repeater Die angegebene URL wurde nicht gefunden. Sie werden auf die Startseite des FRITZ!WLAN Repeater weitergeleitet.

Falls Sie nicht automatisch auf die Startseite des FRITZ!WLAN Repeater weitergeleitet werden, klicken Sie hier http://fritz.repeater/.

Möglicherweise ist mein Repeater zu alt…. :-O

Um auszuschließen, dass sich eines der Geräte auf den Repeater verbindet und deshalb keine Statusänderung stattfindet, habe ich den Repeater mal ausgesteckt und aus der hm_pdetect Konfiguration genommen: Selbes Ergebnis.

Dann habe ich mal Elke ein anderes Gerät zugeordnet, indem ich eine andere Mac-Adresse hinterlegt habe: Selbes Ergebnis. Dann habe ich mal die Mac-Adressen zwischen Elke und Alex vertauscht: Selbes Ergebnis. Nach wie vor funktioniert die Statusänderung beim Gerät Alex und beim Gerät Elke funktioniert sie nicht.

Viele Grüße Alex

Am 22.03.2016 um 10:45 schrieb alex sebastian alex@alexsebastian.de:

Hallo Jens,

das Intervall habe ich nur zum Testen auf 5 Sekunden gestellt, damit es schneller loggt. Die beiden Logdateien betrachten genau den gleichen Zeitraum. Ich habe die CCU-Variante laufen und loggen lassen und parallel das Testscript auf dem Mac.

Erst später habe ich dann das Testscript auf der CCU laufen lassen (ist das schon 0.9?). Dabei lief das Script nicht parallel auf dem Mac. Ergebnis war aber das gleiche. Alex ging auf Abwesend, wenn ich das WLAN auf dem iPhone abschaltete. Elke blieb auf Anwesend, wenn ich das WLAN auf dem iPhone abschaltete.

Das mit dem fritz.repeater irritiert mich ebenfalls. Ich habe tatsächlich einen fritz.repeater im Einsatz. Der ist angeschlossen und ich kann ihn im Browser über http://fritz.repeater http://fritz.repeater/ erreichen. Das Script scheint das aus irgendwelchen Gründen nicht zu schaffen.

Die offizielle 0.9 habe ich gerade installiert und werde es heute abend testen.

Das mit der Anwesenheit.list ist mir auch schon aufgefallen. Ich melde mich wieder.

Viele Grüße Alex

Am 22.03.2016 um 09:11 schrieb Jens Maus <notifications@github.com mailto:notifications@github.com>:

Deine Logs hab ich bekommen. Allerdings werde ich daraus leider auch nicht schlau. Was mir einfach dazu fehlt ist die info (zu selben Zeit) wie das in der Fritz!Box denn in dem moment aussieht wenn deiner Meinung nach der Status falsch ist. Auch würde mich interessieren auf was du denn das abfrageintervall gestellt hast denn aus dem logfile der CCU2 kann man sehen das hier alle ~5 Sekunden eine abfrage passiert. ggf. überlastet das deine CCU aber. stell das bitte mal auf einen höheren wert (15 Sekunden usw.) und schau ob das problem weg ist. Auch sehe ich das du zusätzlich zur fritz.box auch noch einen fritz.repeater abfragst. solltest du den nicht haben bitte bei hostname einfach nur "fritz.box" reinschreiben damit hm_pdetect sich die abfrage eines möglichen repeaters sparen kann.

Was ich im übrigen auch noch sehen kann aus deinem CCU2 log ist das er in jedem run versucht z.b. die "Anwesenheit.list" variable auf "2" zu setzen und das obwohl im letzten run das doch bereits auf 2 gesetzt wurde. das sollte nicht passieren. Kannst du mal bitte die neueste version (0.9) auf der CCU2 einsetzen und schauen ob das da immer noch der fall ist?

aski71 commented 8 years ago

Hi Jens,

ich glaube, ich weiß jetzt, womit es zu tun hat. Dein Programm macht irgendwas mit dem Anlegen der Werteliste Anwesenheit.list falsch. Vorhin habe ich ein drittes Gerät namens „Dummy“ angelegt und bin dann darüber gestolpert, dass es plötzlich angeblich 7 Geräte waren. Das erste und das dritte haben funktioniert. Das zweite nach wie vor nicht. Dann bin ich darüber gestolpert, dass die Werteliste auf der CCU so aussieht: Niemand;Alex;Elke;Dummy;Alex,Elke;Alex,Dummy;Elke,Dummy;Alex,Elke,Dummy

Dann habe ich alle Variablen auf der CCU mal gelöscht und sie neu anlegen lassen. Wieder mit den Personen Alex und Elke. Ergebnis: Die Anwesenheit.list Werteliste sieht so aus: Niemand;Alex;Elke;Alex,Elke

Da liegt der Hund begraben, denke ich. Kannst Du mal in diese Richtung forschen?

Viele Grüße Alex

Am 22.03.2016 um 15:57 schrieb alex sebastian alex@alexsebastian.de:

Hallo Jens,

gerade nochmal getestet:

Gerät Alex: Statusänderung funktioniert Gerät Elke: Statusänderung funktioniert nicht

Wenn beide Geräte anwesend sind, ist die Anwesenheit.list immer noch 3. Wenn mein Gerät sich abmeldet ist die Anwesenheit.list = 2

Inzwischen bin ich der Sache näher gekommen, warum der Connect zum Repeater nicht funktioniert. Im Script rufst Du die URL http://fritz.repeater/login_sid.lua http://fritz.repeater/login_sid.lua auf. Das habe ich mal manuell gemacht, woraufhin mein Repeater dreist behauptet:

FRITZ!WLAN Repeater Die angegebene URL wurde nicht gefunden. Sie werden auf die Startseite des FRITZ!WLAN Repeater weitergeleitet.

Falls Sie nicht automatisch auf die Startseite des FRITZ!WLAN Repeater weitergeleitet werden, klicken Sie hier http://fritz.repeater/.

Möglicherweise ist mein Repeater zu alt…. :-O

Um auszuschließen, dass sich eines der Geräte auf den Repeater verbindet und deshalb keine Statusänderung stattfindet, habe ich den Repeater mal ausgesteckt und aus der hm_pdetect Konfiguration genommen: Selbes Ergebnis.

Dann habe ich mal Elke ein anderes Gerät zugeordnet, indem ich eine andere Mac-Adresse hinterlegt habe: Selbes Ergebnis. Dann habe ich mal die Mac-Adressen zwischen Elke und Alex vertauscht: Selbes Ergebnis. Nach wie vor funktioniert die Statusänderung beim Gerät Alex und beim Gerät Elke funktioniert sie nicht.

Viele Grüße Alex

Am 22.03.2016 um 10:45 schrieb alex sebastian <alex@alexsebastian.de mailto:alex@alexsebastian.de>:

Hallo Jens,

das Intervall habe ich nur zum Testen auf 5 Sekunden gestellt, damit es schneller loggt. Die beiden Logdateien betrachten genau den gleichen Zeitraum. Ich habe die CCU-Variante laufen und loggen lassen und parallel das Testscript auf dem Mac.

Erst später habe ich dann das Testscript auf der CCU laufen lassen (ist das schon 0.9?). Dabei lief das Script nicht parallel auf dem Mac. Ergebnis war aber das gleiche. Alex ging auf Abwesend, wenn ich das WLAN auf dem iPhone abschaltete. Elke blieb auf Anwesend, wenn ich das WLAN auf dem iPhone abschaltete.

Das mit dem fritz.repeater irritiert mich ebenfalls. Ich habe tatsächlich einen fritz.repeater im Einsatz. Der ist angeschlossen und ich kann ihn im Browser über http://fritz.repeater http://fritz.repeater/ erreichen. Das Script scheint das aus irgendwelchen Gründen nicht zu schaffen.

Die offizielle 0.9 habe ich gerade installiert und werde es heute abend testen.

Das mit der Anwesenheit.list ist mir auch schon aufgefallen. Ich melde mich wieder.

Viele Grüße Alex

Am 22.03.2016 um 09:11 schrieb Jens Maus <notifications@github.com mailto:notifications@github.com>:

Deine Logs hab ich bekommen. Allerdings werde ich daraus leider auch nicht schlau. Was mir einfach dazu fehlt ist die info (zu selben Zeit) wie das in der Fritz!Box denn in dem moment aussieht wenn deiner Meinung nach der Status falsch ist. Auch würde mich interessieren auf was du denn das abfrageintervall gestellt hast denn aus dem logfile der CCU2 kann man sehen das hier alle ~5 Sekunden eine abfrage passiert. ggf. überlastet das deine CCU aber. stell das bitte mal auf einen höheren wert (15 Sekunden usw.) und schau ob das problem weg ist. Auch sehe ich das du zusätzlich zur fritz.box auch noch einen fritz.repeater abfragst. solltest du den nicht haben bitte bei hostname einfach nur "fritz.box" reinschreiben damit hm_pdetect sich die abfrage eines möglichen repeaters sparen kann.

Was ich im übrigen auch noch sehen kann aus deinem CCU2 log ist das er in jedem run versucht z.b. die "Anwesenheit.list" variable auf "2" zu setzen und das obwohl im letzten run das doch bereits auf 2 gesetzt wurde. das sollte nicht passieren. Kannst du mal bitte die neueste version (0.9) auf der CCU2 einsetzen und schauen ob das da immer noch der fall ist?

aski71 commented 8 years ago

P.S.: Das Repeater-Problem ist gelöst. Deine Lösung funktioniert nicht mit den alten Fritz N/G Repeatern, die schwarz sind und ein LED Display, bestehende aus roten Punkten haben. Die können nämlich nicht von der Fritzbox aus administriert werden und nicht die Fritzbox User Logins übernehmen.

Am 22.03.2016 um 09:11 schrieb Jens Maus notifications@github.com:

Deine Logs hab ich bekommen. Allerdings werde ich daraus leider auch nicht schlau. Was mir einfach dazu fehlt ist die info (zu selben Zeit) wie das in der Fritz!Box denn in dem moment aussieht wenn deiner Meinung nach der Status falsch ist. Auch würde mich interessieren auf was du denn das abfrageintervall gestellt hast denn aus dem logfile der CCU2 kann man sehen das hier alle ~5 Sekunden eine abfrage passiert. ggf. überlastet das deine CCU aber. stell das bitte mal auf einen höheren wert (15 Sekunden usw.) und schau ob das problem weg ist. Auch sehe ich das du zusätzlich zur fritz.box auch noch einen fritz.repeater abfragst. solltest du den nicht haben bitte bei hostname einfach nur "fritz.box" reinschreiben damit hm_pdetect sich die abfrage eines möglichen repeaters sparen kann.

Was ich im übrigen auch noch sehen kann aus deinem CCU2 log ist das er in jedem run versucht z.b. die "Anwesenheit.list" variable auf "2" zu setzen und das obwohl im letzten run das doch bereits auf 2 gesetzt wurde. das sollte nicht passieren. Kannst du mal bitte die neueste version (0.9) auf der CCU2 einsetzen und schauen ob das da immer noch der fall ist?

— You are receiving this because you authored the thread. Reply to this email directly or view it on GitHub https://github.com/jens-maus/hm_pdetect/issues/16#issuecomment-199690065

jens-maus commented 8 years ago

Gut das du das fritz.repeater problem gelöst hast. Leider bedeutet das aber das das sicher auch der grund ist das bei dir die erkennung mal funktioniert und mal nicht, da die fritzbox dann nur sehr spät bzw. nicht richtig vom repeater die daten der angemeldeten geräte erhält.

Bei der angeblichen falschen Erstellung der "Anwesenheit.list" Variable list du leider falsch. So wie du sie mir gezeigt hast ist die vollkommen richtig. Das was du allerdings übersiehst ist, dass dies eine enum liste ist. Das bedeutet das diese eben alle möglichen Anwesenheitswerte abbildet. Und bei zwei geräten sind das eben 4 mögliche werte: 0=Niemand 1=Alex 2=Elke 3=Alex+Elke Und bei 3 geräten sind es dann eben bereits 8 mögliche kombinationen.

Wenn du diese enum liste aber eh nicht in der ccu nutzt kannst du versuchen diese in der hm_pdetect konfiguration abzuschalten. Das bringt vielleicht schon was und sollte hm_pdetect auf einer CCU2 auch etwas beschleunigen.

aski71 commented 8 years ago

Hi Jens,

danke für die Erläuterung der enum-Geschichte. Du hast natürlich recht, und jetzt sehe ich auch, dass da einmal ein Komma dazwischen ist und einmal ein Strichpunkt. :-)

Bzgl. des Repeaters kann das aber nicht die Antwort sein, denn wenn ich den Repeater aus der Gleichung nehme, verhält sich hm_pdetect immer noch falsch. Ich hatte den Repeater ja ausgesteckt, so dass sich alle Geräte auf die Fritzbox verbinden und den Repeater auch aus der hm_pdetect Konfiguration genommen.

Der Effekt war auch nicht, dass es mal funktioniert, mal nicht. Es funktioniert bei zwei konfigurierten Geräten immer für das zweite Gerät nicht. Bei drei konfigurierten Geräten funktioniert es auch immer für das zweite Gerät in der Konfigurationsliste nicht. Wenn man dann die Mac-Adressen des dritten und zweiten Geräts in der Konfiguration tauscht, funktioniert's wieder beim zweiten Gerät (also dem vormals dritten Gerät) nicht. Oder umgekehrt formuliert: Es funktioniert bei drei Geräten immer für das erste und dritte in der Liste.

Wenn Du noch weiteres Logging brauchst, kannst Du mir gerne erweiterte Scripts schicken, die noch mehr Debug-Informationen mitloggen. Dann kopiere ich die direkt auf die CCU und logge dort.

Viele Grüße Alex

Gesendet von aPad

Am 22.03.2016 um 23:10 schrieb Jens Maus notifications@github.com:

Gut das du das fritz.repeater problem gelöst hast. Leider bedeutet das aber das das sicher auch der grund ist das bei dir die erkennung mal funktioniert und mal nicht, da die fritzbox dann nur sehr spät bzw. nicht richtig vom repeater die daten der angemeldeten geräte erhält.

Bei der angeblichen falschen Erstellung der "Anwesenheit.list" Variable list du leider falsch. So wie du sie mir gezeigt hast ist die vollkommen richtig. Das was du allerdings übersiehst ist, dass dies eine enum liste ist. Das bedeutet das diese eben alle möglichen Anwesenheitswerte abbildet. Und bei zwei geräten sind das eben 4 mögliche werte: 0=Niemand 1=Alex 2=Elke 3=Alex+Elke Und bei 3 geräten sind es dann eben bereits 8 mögliche kombinationen.

Wenn du diese enum liste aber eh nicht in der ccu nutzt kannst du versuchen diese in der hm_pdetect konfiguration abzuschalten. Das bringt vielleicht schon was und sollte hm_pdetect auf einer CCU2 auch etwas beschleunigen.

— You are receiving this because you authored the thread. Reply to this email directly or view it on GitHub

jens-maus commented 8 years ago

Ok, ich schau es mir noch einmal an. Was mich stutzig macht ist das es nur auf der CCU2 nicht gehen soll und unter einem Mac/Linux schon?!? Was ist wenn du die Anwesenheit.list variable komplett deaktivierst (siehe webkonfiguration)? Und hast du mal probiert die intervall abfrage auf der ccu2 zu deaktivieren und es von hand dort zu starten wie du das unter dem mac machst?

aski71 commented 8 years ago

Ja. Das macht mich auch stutzig. Hab ich beides noch nicht probiert. Versuch ich mal.

Am 23.03.2016 um 08:23 schrieb Jens Maus notifications@github.com:

Ok, ich schau es mir noch einmal an. Was mich stutzig macht ist das es nur auf der CCU2 nicht gehen soll und unter einem Mac/Linux schon?!? Was ist wenn du die Anwesenheit.list variable komplett deaktivierst (siehe webkonfiguration)? Und hast du mal probiert die intervall abfrage auf der ccu2 zu deaktivieren und es von hand dort zu starten wie du das unter dem mac machst?

— You are receiving this because you authored the thread. Reply to this email directly or view it on GitHub https://github.com/jens-maus/hm_pdetect/issues/16#issuecomment-200227049

aski71 commented 8 years ago

So, gerade noch kurz getestet:

Script mehrmals händisch laufen lassen. Vorher .list in der Konfig abgeschaltet. Immer noch das gleiche Fehlverhalten, aber zusätzliche Fehlermeldung. Die angezeigte Mac Adresse ist die, die nicht funktioniert.

./hm_pdetect.sh ../etc/hm_pdetect.conf

../etc/hm_pdetect.conf: line 10: HM_USER_LIST: 84:78:8B:9E:90:43: must use subscript when assigning associative array hm_pdetect 0.9 - a FRITZ!-based HomeMatic presence detection script (Mar 15 2016) Copyright (C) 2015-2016 Jens Maus mail@jens-maus.de

../etc/hm_pdetect.conf: line 10: HM_USER_LIST: 84:78:8B:9E:90:43: must use subscript when assigning associative array ../etc/hm_pdetect.conf: line 10: HM_USER_LIST: 84:78:8B:9E:90:43: must use subscript when assigning associative array

In der Conf-Datei sah es wie folgt aus: HM_USER_LIST=([Alex]='48:43:7C:D1:4A:86' [Elke]= '84:78:8B:9E:90:43')

Also habe ich mal das Leerzeichen nach dem = händisch raus genommen. Und siehe da: läuft. Vielleicht ist die Macport-Version der bash da fehlertoleranter?!

Jetzt ist nur die Frage: Wie kam das Leerzeichen rein? Entweder habe ich das in der Oberfläche gemacht. Dann wundert mich, warum es mir an der Oberfläche nicht aufgefallen ist … oder es ist irgendwie anders rein gekommen. :-) Vielleicht schaust Du Dir die Routine nochmal an, wo Du es abspeicherst und löschst alle Leerzeichen, um es fehlertoleranter zu machen.

Aber das war wohl der Kern des Problems. :-)

Viele Grüße Alex

Am 23.03.2016 um 08:23 schrieb Jens Maus notifications@github.com:

Ok, ich schau es mir noch einmal an. Was mich stutzig macht ist das es nur auf der CCU2 nicht gehen soll und unter einem Mac/Linux schon?!? Was ist wenn du die Anwesenheit.list variable komplett deaktivierst (siehe webkonfiguration)? Und hast du mal probiert die intervall abfrage auf der ccu2 zu deaktivieren und es von hand dort zu starten wie du das unter dem mac machst?

— You are receiving this because you authored the thread. Reply to this email directly or view it on GitHub https://github.com/jens-maus/hm_pdetect/issues/16#issuecomment-200227049

jens-maus commented 8 years ago

Ok, danke für die Analyse. Bin froh das es dann doch kein weiteres FRITZ!Box problem oder ähnliches war sondern eher ein Bedienungsfehler. Ich hab jedoch trotzdem mal vorsichtshalber ein paar Routinen hinzugefügt die sicherstellen sollen das man nicht an der falschen Stelle ein Whitespace hinzufügt wie es bei dir passiert ist.