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

AddOn funktioniert mit CCU1 nicht (md5sum fehlt) #7

Closed hicomer closed 8 years ago

hicomer commented 8 years ago

Verhalten: Die Konfigurationen des AddOn werden korrekt gespeichert, trotzdem passiert nichts. Verwendete FB7390 mit FRITZ!OS 06.30 Eine leere Seite wird im AddOn-Protokoll angezeigt (./addons/hm_pdetect/settings/logoutput.cgi).

Erste Ursache gefunden: Es fehlt mindestens das Tool md5sum auf der CCU1 (Software-Version 1.519 ).

Ausgaben:

~ # cat /var/log/hm_pdetect.log
ERROR: 'md5sum' tool missing. Please install.

~ # export PATH=/usr/local/addons/hm_pdetect/bin:${PATH} ; /usr/local/addons/hm_pdetect/bin/hm_pdetect.sh /usr/local/addons/hm_pdetect/etc/hm_pdetect.conf
ERROR: 'md5sum' tool missing. Please install.
jens-maus commented 8 years ago

Bitte mal von folgender URL das 'md5sum' binary herunterladen und auf die CCU1 mit 'scp' kopieren und dann versuchen auszuführen (z.B. md5sum --version):

https://github.com/jens-maus/hm_pdetect/raw/master/addon/ccu1/bin/md5sum

Wenn das klappt dann bitte mal nach /usr/local/addons/hm_pdetect/bin kopieren und nochmal versuchen manuell hm_pdetect.sh wie oben aufzurufen um zu schauen ob noch weitere dinge fehlschlagen.

hicomer commented 8 years ago

Am 30.01.2016 um 21:53 schrieb Jens Maus:

Bitte mal von folgender URL das 'md5sum' binary herunterladen und auf die CCU1 mit 'scp' kopieren und dann versuchen auszuführen (z.B. |md5sum --version|):

https://github.com/jens-maus/hm_pdetect/raw/master/addon/ccu1/bin/md5sum

Wenn das klappt dann bitte mal nach |/usr/local/addons/hm_pdetect/bin| kopieren und nochmal versuchen manuell hm_pdetect.sh wie oben aufzurufen um zu schauen ob noch weitere dinge fehlschlagen.

— Reply to this email directly or view it on GitHub https://github.com/jens-maus/hm_pdetect/issues/7#issuecomment-177299438.

Hallo,

md5sum konnte nach der Anleitung nun ausgeführt werden (/version////md5sum (GNU coreutils) 8.25//). / Der andere Aufruf liefert nun auch eine Ausgabe (Mac-Adresse durch xx.. ersetzt): /~ # export PATH=/usr/local/addons/hm_pdetect/bin:${PATH} ; /usr/local/addons/hm_pdetect/bin/hm_pdetect.sh /usr/local/addons/hm_pdetect/etc/hm_pdetect.conf// ///usr/local/addons/hm_pdetect/etc/hm_pdetect.conf: line 7: HM_USER_LIST: [Matthias]: must use subscript when assigning associative array// ///usr/local/addons/hm_pdetect/etc/hm_pdetect.conf: line 7: HM_USER_LIST: xx:xx:xx:xx:xx:xx: must use subscript when assigning associative array// ///usr/local/addons/hm_pdetect/etc/hm_pdetect.conf: line 7: HM_USER_LIST: [Isabell]: must use subscript when assigning associative array// ///usr/local/addons/hm_pdetect/etc/hm_pdetect.conf: line 7: HM_USER_LIST: ///xx:xx:xx:xx:xx:xx/: must use subscript when assigning associative array// //hm_pdetect 0.7 - a FRITZ!-based HomeMatic presence detection script// //(Jan 27 2016) Copyright (C) 2015-2016 Jens Maus mail@jens-maus.de// // //Querying FRITZ! devices: fritz.boxwget: unrecognized option `--no-check-certificate'// //BusyBox v1.00 (2015.08.19-10:58+0000) multi-call binary// // //Usage: wget [-c|--continue] [-q|--quiet] [-O|--output-document file]// // [--header 'header: value'] [-Y|--proxy on/off] [-P DIR] url// // //wget retrieves files via HTTP or FTP// // //Options:// // -c continue retrieval of aborted transfers// // -q quiet mode - do not print// // -P Set directory prefix to DIR// // -O save to filename ('-' for stdout)// // -Y use proxy ('on' or 'off')// // // //WARNING: could not connect to http://fritz.box. Please check hostname/ip or URI.// //ERROR: couldn't connect to any specified FRITZ! device./

Grüße, hicomer

jens-maus commented 8 years ago

Zeig mal bitte deine hm_pdetect.conf hier, da scheint was nicht zu stimmen in der Datei.

jens-maus commented 8 years ago

BTW: Da anscheinend wget fehlt muss ich das auch noch kompilieren. Bitte mal die Ausgabe folgendes Befehles auf der CCU1 hier posten:

ls -la /usr/lib
hicomer commented 8 years ago

Die hm_pdetect.conf sieht genauso aus, wie schon im homematic-forum gepostet (keine Sonderzeichen entdeckt / NP++). HM_CCU_IP=127.0.0.1 HM_FRITZ_USER="xxx" HM_FRITZ_SECRET="xxxxxxxxx" HM_CCU_PRESENCE_VAR="Anwesenheit_neu" HM_KNOWN_LIST_MODE="guest" HM_USER_LIST=([Matthias] xx:xx:xx:xx:xx:xx [Isabell] xx:xx:xx:xx:xx:xx) HM_KNOWN_LIST=""

Den Ordner usr/lib gibt es auf der CCU1 nicht, nur die Unterordner usr/bin, usr/local und usr/sbin.

jens-maus commented 8 years ago

Nun, da ist aber ein Fehler! bei HM_USER_LIST fehlen die "=". Das muss wie folgt aussehen:

HM_USER_LIST=([Matthias]=xx:xx:xx:xx:xx:xx [Isabell]=xx:xx:xx:xx:xx:xx)

Hast du die config von Hand erzeugt? Wenn nicht bitte das webinterface testen ob es die "=" verschluckt, dann ist das ein neuer bug bzgl. CCU1 webinterface.

hicomer commented 8 years ago

Das war mein Fehler. Ich habe im webinterface die Zeichen "=" bei beiden Einträgen vergessen. Aus der obigen Fehlermeldung bleibt nun nur noch das wget-Problem übrig.

Benötigst Du den Inhalt von usr/bin? ich habe ihn mal angehängt: lrwxrwxrwx 1 root root 17 Jan 2 21:40 [ -> ../../bin/busybox lrwxrwxrwx 1 root root 17 Jan 2 21:40 awk -> ../../bin/busybox lrwxrwxrwx 1 root root 17 Jan 2 21:40 basename -> ../../bin/busybox lrwxrwxrwx 1 root root 17 Jan 2 21:40 bunzip2 -> ../../bin/busybox lrwxrwxrwx 1 root root 17 Jan 2 21:40 bzcat -> ../../bin/busybox lrwxrwxrwx 1 root root 17 Jan 2 21:40 chvt -> ../../bin/busybox lrwxrwxrwx 1 root root 17 Jan 2 21:40 clear -> ../../bin/busybox lrwxrwxrwx 1 root root 17 Jan 2 21:40 cmp -> ../../bin/busybox lrwxrwxrwx 1 root root 17 Jan 2 21:40 cut -> ../../bin/busybox lrwxrwxrwx 1 root root 35 Jan 30 16:05 dbclient -> /usr/local/addons/dropbear/dbclient lrwxrwxrwx 1 root root 17 Jan 2 21:40 deallocvt -> ../../bin/busybox lrwxrwxrwx 1 root root 17 Jan 2 21:40 dirname -> ../../bin/busybox lrwxrwxrwx 1 root root 17 Jan 2 21:40 du -> ../../bin/busybox lrwxrwxrwx 1 root root 17 Jan 2 21:40 env -> ../../bin/busybox lrwxrwxrwx 1 root root 17 Jan 2 21:40 expr -> ../../bin/busybox lrwxrwxrwx 1 root root 17 Jan 2 21:40 find -> ../../bin/busybox lrwxrwxrwx 1 root root 17 Jan 2 21:40 free -> ../../bin/busybox lrwxrwxrwx 1 root root 17 Jan 2 21:40 ftpget -> ../../bin/busybox lrwxrwxrwx 1 root root 17 Jan 2 21:40 ftpput -> ../../bin/busybox lrwxrwxrwx 1 root root 17 Jan 2 21:40 head -> ../../bin/busybox lrwxrwxrwx 1 root root 17 Jan 2 21:40 hexdump -> ../../bin/busybox lrwxrwxrwx 1 root root 17 Jan 2 21:40 id -> ../../bin/busybox lrwxrwxrwx 1 root root 17 Jan 2 21:40 install -> ../../bin/busybox lrwxrwxrwx 1 root root 17 Jan 2 21:40 killall -> ../../bin/busybox lrwxrwxrwx 1 root root 17 Jan 2 21:40 logger -> ../../bin/busybox lrwxrwxrwx 1 root root 17 Jan 2 21:40 od -> ../../bin/busybox lrwxrwxrwx 1 root root 17 Jan 2 21:40 openvt -> ../../bin/busybox lrwxrwxrwx 1 root root 17 Jan 2 21:40 passwd -> ../../bin/busybox lrwxrwxrwx 1 root root 17 Jan 2 21:40 readlink -> ../../bin/busybox lrwxrwxrwx 1 root root 17 Jan 2 21:40 reset -> ../../bin/busybox lrwxrwxrwx 1 root root 30 Jan 30 16:05 scp -> /usr/local/addons/dropbear/scp lrwxrwxrwx 1 root root 17 Jan 2 21:40 sort -> ../../bin/busybox lrwxrwxrwx 1 root root 17 Jan 2 21:40 strings -> ../../bin/busybox lrwxrwxrwx 1 root root 17 Jan 2 21:40 tail -> ../../bin/busybox lrwxrwxrwx 1 root root 17 Jan 2 21:40 tee -> ../../bin/busybox lrwxrwxrwx 1 root root 17 Jan 2 21:40 test -> ../../bin/busybox lrwxrwxrwx 1 root root 17 Jan 2 21:40 tftp -> ../../bin/busybox lrwxrwxrwx 1 root root 17 Jan 2 21:40 time -> ../../bin/busybox lrwxrwxrwx 1 root root 17 Jan 2 21:40 tr -> ../../bin/busybox lrwxrwxrwx 1 root root 17 Jan 2 21:40 tty -> ../../bin/busybox -rwxr-xr-x 1 root root 30492 Aug 24 13:59 udevinfo -rwxr-xr-x 1 root root 44680 Aug 24 13:59 udevtest lrwxrwxrwx 1 root root 17 Jan 2 21:40 uniq -> ../../bin/busybox lrwxrwxrwx 1 root root 17 Jan 2 21:40 unzip -> ../../bin/busybox lrwxrwxrwx 1 root root 17 Jan 2 21:40 uptime -> ../../bin/busybox lrwxrwxrwx 1 root root 17 Jan 2 21:40 wc -> ../../bin/busybox lrwxrwxrwx 1 root root 17 Jan 2 21:40 wget -> ../../bin/busybox lrwxrwxrwx 1 root root 17 Jan 2 21:40 which -> ../../bin/busybox lrwxrwxrwx 1 root root 17 Jan 2 21:40 whoami -> ../../bin/busybox lrwxrwxrwx 1 root root 17 Jan 2 21:40 xargs -> ../../bin/busybox lrwxrwxrwx 1 root root 17 Jan 2 21:40 yes -> ../../bin/busybox

jens-maus commented 8 years ago

Ok. dann bitte folgendes wget binary runterladen:

https://github.com/jens-maus/hm_pdetect/raw/master/addon/ccu1/bin/wget

Dann bitte auf die CCU1 kopieren und folgende Ausgaben hier posten:

wget --version

Wenn das klappt bitte das wget nach /usr/local/addons/hm_pdetect/bin kopieren und versuchen ob nun das hm_pdetect läuft oder ob weitere fehler kommen.

hicomer commented 8 years ago

Wieder ein Schritt weiter :-)

Ausgabe von wget:

/ # /usr/local/addons/hm_pdetect/bin/wget --version
GNU Wget 1.12 built on linux-gnu.

+digest +ipv6 -nls +ntlm +opie +md5/openssl +https -gnutls +openssl
-iri

Wgetrc:
    /usr/local/etc/wgetrc (system)
Compile:
    /home/damato/projekte/linux/hm-buildroot/ccu1/buildroot/arm-linux/bin/arm-linux-uclibc-gcc -DHAVE_CONFIG_H -DSYSTEM_WGETRC="/usr/local/etc/wgetrc" -DLOCALEDIR="/usr/local/share/locale" -I. -I../lib -O2 -Wall
Link:
    /home/damato/projekte/linux/hm-buildroot/ccu1/buildroot/arm-linux/bin/arm-linux-uclibc-gcc -O2 -Wall -lssl -lcrypto -ldl ftp-opie.o openssl.o http-ntlm.o gen-md5.o ../lib/libgnu.a

Installations-Skript:

/ # export PATH=/usr/local/addons/hm_pdetect/bin:${PATH} ; /usr/local/addons/hm_pdetect/bin/hm_pdetect.sh /usr/local/addons/hm_pdetect/etc/hm_pdetect.conf
hm_pdetect 0.7 - a FRITZ!-based HomeMatic presence detection script
(Jan 27 2016) Copyright (C) 2015-2016 Jens Maus <mail@jens-maus.de>

Querying FRITZ! devices: fritz.box
 Normal-WiFi devices active: 16
 Guest-WiFi devices active: 2
Checking user presence:
 Matthias: present
  Creating CCU variable 'Anwesenheit_neu.Matthias' (bool)... ERROR: could not create system variable 'Anwesenheit_neu.Matthias'.
 Isabell: present
  Creating CCU variable 'Anwesenheit_neu.Isabell' (bool)... ERROR: could not create system variable 'Anwesenheit_neu.Isabell'.
Checking guest presence:
 Gast: present - 2 (xx:xx:xx:xx:xx:xx xx:xx:xx:xx:xx:xx)
  Creating CCU variable 'Anwesenheit_neu.Gast' (bool)... ERROR: could not create system variable 'Anwesenheit_neu.Gast'.
/usr/local/addons/hm_pdetect/bin/hm_pdetect.sh: line 419: fold: command not found
/usr/local/addons/hm_pdetect/bin/hm_pdetect.sh: line 419: fold: command not found
/usr/local/addons/hm_pdetect/bin/hm_pdetect.sh: line 419: fold: command not found
  Creating CCU variable 'Anwesenheit.list' (enum)... ERROR: could not create system variable 'Anwesenheit.list'.
  Creating CCU variable 'Anwesenheit.string' (string)... ERROR: could not create system variable 'Anwesenheit.string'.
  Setting CCU variable 'Anwesenheit_neu': 'true'... ok.

Systemvariablen wurden, wie in der Ausgabe zu sehen, nicht erzeugt.

hicomer commented 8 years ago

Eine Systemvariable "Anwesenheit_neu.Matthias" konnte ich eben ohne Probleme über die CCU-Weboberfläche anlegen (wieder gelöscht). Es gibt also kein Problem mit der Länge oder dem Punkt.

jens-maus commented 8 years ago

Ok, ersetze bitte trotzdem mal das underscore "_" gegen ein anderen Zeichen bzw. gegen eine zahl, nur zum test. Und da fehlt anscheinend noch das "fold" Kommando. kommt dann noch nachgeliefert.

jens-maus commented 8 years ago

Ok. hab das fold Kommando nun auch parat. Hier runterladen:

https://github.com/jens-maus/hm_pdetect/raw/master/addon/ccu1/bin/fold

und wie gehabt ausführen und schauen was es mit --version ausgibt und dann wieder nach /usr/local/addons/hm_pdetect/bin kopieren und testen.

hicomer commented 8 years ago

Ok, ersetze bitte trotzdem mal das underscore "_" gegen ein anderen Zeichen bzw. gegen eine zahl, nur zum test.

Der Ändern der Systemvariable Anwesenheit_neu in Anwesend führte zum gleichen Ergebnis.

jens-maus commented 8 years ago

Ok, dachte ich mir schon. dann bitte hm_pdetect.sh neu runterladen hab debug Output hinzugefügt:

https://github.com/jens-maus/hm_pdetect/raw/master/hm_pdetect.sh

damit nochmal probieren und posten was das ding ausgibt hinter dem ERROR

hicomer commented 8 years ago

(Teil-)Ausgabe mit der angepassten hm_pdetect.sh:

...
Checking user presence:
 Matthias: present
  Creating CCU variable 'Anwesend.Matthias' (bool)... ERROR: could not create system variable 'Anwesend.Matthias'.
'Anwesend.Matthias'
 Isabell: present
  Creating CCU variable 'Anwesend.Isabell' (bool)... ERROR: could not create system variable 'Anwesend.Isabell'.
'Anwesend.Isabell'
Checking guest presence:
 Gast: present - 2 (xx:xx:xx:xx:xx:xx xx:xx:xx:xx:xx:xx)
  Creating CCU variable 'Anwesend.Gast' (bool)... ERROR: could not create system variable 'Anwesend.Gast'.
'Anwesend.Gast'
  Creating CCU variable 'Anwesenheit.list' (enum)... ERROR: could not create system variable 'Anwesenheit.list'.
'Anwesenheit.list'
  Creating CCU variable 'Anwesenheit.string' (string)... ERROR: could not create system variable 'Anwesenheit.string'.
'Anwesenheit.string'
...
hicomer commented 8 years ago

Habe mal das result von wget ausgeben lassen. Das ist bei jedem Aufruf leer:

...
  # use wget to post the tcl script to tclrega.exe
  local result=$(wget -q -O - --post-data "${postbody}" "http://${HM_CCU_IP}/tclrega.exe")
  if [[ ${result} =~ \<v\>${vaname}\</v\> ]]; then
    echo "ok."
    return ${RETURN_SUCCESS}
  else
    echo "ERROR: could not create system variable '${vaname}'."
    echo "'${result}'"
    return ${RETURN_FAILURE}
  fi
...
jens-maus commented 8 years ago

ja, das wollte ich eigentlich ausgeben ;) Guter Hinweis.

Mach mal das -qvom Aufruf weg und geb das result nochmal aus. Ich vermute es gibt das tclrega.exe nicht und es kommt ein fehler.

hicomer commented 8 years ago

bei allen Aufrufen kommt damit diese Rückmeldung:

  Creating CCU variable 'Anwesenheit.list' (enum)... --2016-01-31 13:34:29--  http://127.0.0.1/tclrega.exe
Connecting to 127.0.0.1:80... connected.
HTTP request sent, awaiting response... 403 Forbidden
2016-01-31 13:34:29 ERROR 403: Forbidden.

ERROR: could not create system variable 'Anwesenheit.list'.
''
jens-maus commented 8 years ago

Änder mal folgende Zeile

  local result=$(wget -q -O - --post-data "${postbody}" "http://${HM_CCU_IP}/tclrega.exe")

in

  local result=$(wget -q -O - --post-data "${postbody}" "http://${HM_CCU_IP}:8181/tclrega.exe")
hicomer commented 8 years ago

Das sieht gut aus! Die Systemvariablen sind nun erstellt worden.

jens-maus commented 8 years ago

wunderbar, dann sollte jetzt alles gehen oder? dann fix ich das hier und teste das mit den anderen CCUs auch noch. sag bescheid ob du sonst noch was findest. z.b. mal das webinterface zum konfigurieren voll durchtesten usw.

hicomer commented 8 years ago

Prima! Ich spiel mal noch einiges durch und melde mich, sofern ich was finde.

hicomer commented 8 years ago

Anscheinend gibt es in der Abarbeitung noch ein paar Lücken:

jens-maus commented 8 years ago

Bist du sicher das das ding automatisch ausgeführt wird? was sagt das logfite (/var/log/hm_pdetect.log)? wird es wirklich alle 15 Sekunden aufgerufen? Da müsste ne Uhrzeit drin zu sehen sein.

hicomer commented 8 years ago

wahrscheinlich wird es nicht ausgeführt. Außer dem Eintrag von gestern

Sat Jan 30 16:09:55 CET 2016
============================
ERROR: 'md5sum' tool missing. Please install.

steht im Logfile ( /var/log/hm_pdetect.log) nichts drin. Sollte da nicht mehr protokolliert werden

hicomer commented 8 years ago

Wie wird das 15s Abfrage-Intervall realisiert? In /etc/crontab ist kein Eintrag enthalten außer arm7setclock. Außerdem wäre die Abfrage ja nur minutenweise.

jens-maus commented 8 years ago

Was kommt denn wenn du "crontab -l" eingibst?

Auch kannst du mal "/usr/local/config/etc/rc.d/hm_pdetect start" eingeben und schauen ob da ne fehlermeldung kommt

hicomer commented 8 years ago

der findet erst einmal nicht viel:

~ # crontab -l
-sh: crontab: not found
~ # /usr/local/config/etc/rc.d/hm_pdetect start
-sh: /usr/local/config/etc/rc.d/hm_pdetect: not found

ich schau mir mal die Dateistruktur an

jens-maus commented 8 years ago

Oh, kein crontab Befehl. Das erklärt einiges.

Und das andere Kommando meinte ich:

/usr/local/etc/config/rc.d/hm_pdetect start

Hatte da das etc zuweit hinten gesehen. Probier das mal ich schau mal wie man crontab ersetzen kann.

jens-maus commented 8 years ago

Und bitte noch folgendes ausführen:

ls -la /usr/local/crontabs/

bzw.

cat /usr/local/crontabs/root

wenn es das root gibt in dem crontabs Verzeichnis. Wenn nicht bitte Inhalt von /etc/crontab zeigen.

hicomer commented 8 years ago
~ # /usr/local/etc/config/rc.d/hm_pdetect start
grep: /usr/local/crontabs/root: No such file or directory
/usr/local/etc/config/rc.d/hm_pdetect: 42: crontab: not found
~ # ls -la /usr/local/crontabs/
ls: /usr/local/crontabs/: No such file or directory
~ # cat /usr/local/crontabs/root
cat: /usr/local/crontabs/root: No such file or directory

Inhalt von /etc/crontab

# mm hh day_of_month month day_of_week command

00,15,30,45 * * * * /bin/arm7setclock
jens-maus commented 8 years ago

Nach etwas Überlegung bin ich zu dem Schluss gekommen das ich wohl bzgl. des CCU-Addon davon weggehen werde cronjobs einzusetzen. Das sollte dann auch dieses Problem hier für die CCU1 beheben und gleichzeitig ticket #9 und #11 einfacher ermöglichen. Dafür werde ich dann aber wohl hm_pdetect eine daemon-Funktionalität spendieren sodass man es nur 1x starten muss und es dann quasi in einer Endlosschleife laufen wird. Sobald es wieder was zu testen gibt melde ich mich dann und hoffe das du das vor dem release von 0.8 dann auf der CCU1 auch einmal kurz antasten kannst.

hicomer commented 8 years ago

Alles klar, meld dich einfach, wenn es etwas für die CCU1 zu testen gibt.

Am 1. Februar 2016 10:37:22 MEZ, schrieb Jens Maus notifications@github.com:

Nach etwas Überlegung bin ich zu dem Schluss gekommen das ich wohl bzgl. des CCU-Addon davon weggehen werde cronjobs einzusetzen. Das sollte dann auch dieses Problem hier für die CCU1 beheben und gleichzeitig ticket #9 und #11 einfacher ermöglichen. Dafür werde ich dann aber wohl hm_pdetect eine daemon-Funktionalität spendieren sodass man es nur 1x starten muss und es dann quasi in einer Endlosschleife laufen wird. Sobald es wieder was zu testen gibt melde ich mich dann und hoffe das du das vor dem release von 0.8 dann auf der CCU1 auch einmal kurz antasten kannst.


Reply to this email directly or view it on GitHub: https://github.com/jens-maus/hm_pdetect/issues/7#issuecomment-177876194

Diese Nachricht wurde von meinem Android-Mobiltelefon mit K-9 Mail gesendet.

jens-maus commented 8 years ago

Da ich gerade daran bastel. Kannst du bitte mal folgenden Befehl in der CCU1 eingeben:

setsid

will sehen ob es den Befehl gibt und welche version der hat.

hicomer commented 8 years ago

Am 01.02.2016 um 16:12 schrieb Jens Maus:

Da ich gerade daran bastel. Kannst du bitte mal folgenden Befehl in der CCU1 eingeben:

|setsid |

will sehen ob es den Befehl gibt und welche version der hat.

— Reply to this email directly or view it on GitHub https://github.com/jens-maus/hm_pdetect/issues/7#issuecomment-178010018.

Hab die ganze Verzeichnisstruktur durchsucht: setsid ist nicht vorhanden

jens-maus commented 8 years ago

auch einfach probiert einzugeben? vielleicht wird das von der shell direkt unterstützt?

hicomer commented 8 years ago

Ja, da kommt “nicht gefunden“

Am 1. Februar 2016 19:46:32 MEZ, schrieb Jens Maus notifications@github.com:

auch einfach probiert einzugeben? vielleicht wird das von der shell direkt unterstützt?


Reply to this email directly or view it on GitHub: https://github.com/jens-maus/hm_pdetect/issues/7#issuecomment-178122552

Diese Nachricht wurde von meinem Android-Mobiltelefon mit K-9 Mail gesendet.

jens-maus commented 8 years ago

ok. dann muss ich das auch noch basteln.

jens-maus commented 8 years ago

Ok. nun bitte von folgender URL das setsid mal runterladen und auf der CCU1 mit "setsid --help" bzw. "setsid -V" mal ausführen und schauen ob es prinzipiell geht

https://github.com/jens-maus/hm_pdetect/raw/master/addon/ccu1/bin/setsid

Bitte dann am Schluss auch mal folgende Aufrufe machen:

setsid echo hallo
setsid -w echo hallo ; echo $?

Und schauen ob das hallo wirklich ausgegeben wird und dann hier posten bitte.

hicomer commented 8 years ago

Am 01.02.2016 um 20:04 schrieb Jens Maus:

Ok. nun bitte von folgender URL das setsid mal runterladen und auf der CCU1 mit "setsid --help" bzw. "setsid -V" mal ausführen und schauen ob es prinzipiell geht

~ # /usr/local/addons/hm_pdetect/bin/setsid --help

Usage: /usr/local/addons/hm_pdetect/bin/setsid [options] [arguments ...]

Run a program in a new session.

Options: -c, --ctty set the controlling terminal to the current one -w, --wait wait program to exit, and use the same return -h, --help display this help and exit -V, --version output version information and exit

For more details see setsid(1).

~ # /usr/local/addons/hm_pdetect/bin/setsid --version /usr/local/addons/hm_pdetect/bin/setsid from util-linux 2.27

https://github.com/jens-maus/hm_pdetect/raw/master/addon/ccu1/bin/setsid

Bitte dann am Schluss auch mal folgende Aufrufe machen:

|setsid echo hallo | |setsid -w echo hallo ; echo $? |

Und schauen ob das hallo wirklich ausgegeben wird und dann hier posten bitte.

— Reply to this email directly or view it on GitHub https://github.com/jens-maus/hm_pdetect/issues/7#issuecomment-178131885.

~ # /usr/local/addons/hm_pdetect/bin/setsid echo hallo ~ # hallo ~ # /usr/local/addons/hm_pdetect/bin/setsid -w echo hallo ; echo $? hallo 0

jens-maus commented 8 years ago

Ok, danke. Dann bitte mal folgendes überarbeitetes script runterladen:

https://github.com/jens-maus/hm_pdetect/raw/master/hm_pdetect.sh

dann auf die CCU1 nach/usr/local/addons/hm_pdetect/bin kopieren.

Dann bitte folgende Aufrufe damit testen:

(1)

/usr/local/addons/hm_pdetect/bin/hm_pdetect.sh /usr/local/addons/hm_pdetect/etc/hm_pdetect.conf

(2)

HM_INTERVAL_TIME=5 /usr/local/addons/hm_pdetect/bin/hm_pdetect.sh /usr/local/addons/hm_pdetect/etc/hm_pdetect.conf

Hier sollte er dann alle 5 Sekunden die abfrage machen. Kannst du mit Ctrl-C beenden.

(3)

HM_INTERVAL_TIME=5 HM_PROCESSLOG_FILE=/var/log/hm_pdetect.log /usr/local/addons/hm_pdetect/bin/hm_pdetect.sh start /usr/local/addons/hm_pdetect/etc/hm_pdetect.conf

Bei diesem Aufruf sollte keinerlei Ausgabe kommen nur sowas wie "Starting in daemon mode". und dann sollte hm_pdetect im Hintergrund alle 5 Sekunden die abfrage machen. Bitte mit ps aux | grep pdetect schauen ob der Prozess im Hintergrund läuft. Du kannst auch dann in die /var/log/hm_pdetect.logdatei schauen und solltest die Ausführung alle 5 Sekunden dort drin sehen.

Danach kann mit folgendem Kommando die Ausführung von hm_pdetect gestoppt werden:

/usr/local/addons/hm_pdetect/bin/hm_pdetect.sh stop

Er sollte dann am Schluss die PID ausgeben die er beendet hat, was dann auch zeigt das der daemon mode problemlos funktioniert auf der CCU1.

Bitte mal schauen ob das alles problemlos auf der CCU1 funktioniert.

hicomer commented 8 years ago

Am 02.02.2016 um 11:27 schrieb Jens Maus:

Ok, danke. Dann bitte mal folgendes überarbeitetes script runterladen:

https://github.com/jens-maus/hm_pdetect/raw/master/hm_pdetect.sh

dann auf die CCU1 nach|/usr/local/addons/hm_pdetect/bin| kopieren.

Dann bitte folgende Aufrufe damit testen:

(1)

|/usr/local/addons/hm_pdetect/bin/hm_pdetect.sh /usr/local/addons/hm_pdetect/etc/hm_pdetect.conf| |Hier bricht es leider schon ab:

||env: bash: No such file or directory|

jens-maus commented 8 years ago

ok. mein Fehler. vorher bitte mal folgendes in der shell eingeben:

export PATH=/usr/local/addons/hm_pdetect/bin:$PATH

Dann die Kommandos wie aufgelistet hintereinander probieren.

hicomer commented 8 years ago

Am 02.02.2016 um 11:27 schrieb Jens Maus:

Ok, danke. Dann bitte mal folgendes überarbeitetes script runterladen:

https://github.com/jens-maus/hm_pdetect/raw/master/hm_pdetect.sh

dann auf die CCU1 nach|/usr/local/addons/hm_pdetect/bin| kopieren.

Dann bitte folgende Aufrufe damit testen:

(1)

|/usr/local/addons/hm_pdetect/bin/hm_pdetect.sh /usr/local/addons/hm_pdetect/etc/hm_pdetect.conf| |1x ausgeführt, ok:

== Tue Feb 2 18:15:37 CET 2016 =================================== Querying FRITZ! devices: fritz.box Normal-WiFi devices active: 16 Guest-WiFi devices active: 0 Checking user presence: Matthias: present Setting CCU variable 'Anwesend.Matthias': 'true'... ok. Isabell: present NIchtDa: away Creating CCU variable 'Anwesenheit.Nutzer' (bool)... ok. Setting CCU variable 'Anwesenheit.Nutzer': 'true'... ok. Checking guest presence: Gast: away Creating CCU variable 'Anwesenheit.Gast' (bool)... ok. Setting CCU variable 'Anwesenheit.list': '4'... ok. Setting CCU variable 'Anwesenheit.string': 'Matthias,Isabell'... ok. Setting CCU variable 'Anwesend': 'true'... ok.

(2)

|HM_INTERVAL_TIME=5 /usr/local/addons/hm_pdetect/bin/hm_pdetect.sh /usr/local/addons/hm_pdetect/etc/hm_pdetect.conf |

Hier sollte er dann alle 5 Sekunden die abfrage machen. Kannst du mit Ctrl-C beenden.

Wird alle 5s aufgeführt, jedoch mit reduzierter Ausgabe, ok?

== Tue Feb 2 18:21:16 CET 2016 =================================== Querying FRITZ! devices: fritz.box Normal-WiFi devices active: 16 Guest-WiFi devices active: 0 Checking user presence: Matthias: present Isabell: present NIchtDa: away Checking guest presence: Gast: away Setting CCU variable 'Anwesend': 'true'... ok.

(3)

|HM_INTERVAL_TIME=5 HM_PROCESSLOG_FILE=/var/log/hm_pdetect.log /usr/local/addons/hm_pdetect/bin/hm_pdetect.sh start /usr/local/addons/hm_pdetect/etc/hm_pdetect.conf |

Bei diesem Aufruf sollte keinerlei Ausgabe kommen nur sowas wie "Starting in daemon mode". und dann sollte hm_pdetect im Hintergrund alle 5 Sekunden die abfrage machen. Bitte mit |ps aux | grep pdetect| schauen ob der Prozess im Hintergrund läuft. Du kannst auch dann in die |/var/log/hm_pdetect.log|datei schauen und solltest die Ausführung alle 5 Sekunden dort drin sehen.

Starting hm_pdetect in daemon mode.

/ # ps aux | grep pdetect 3151 root 852 S bash /usr/local/addons/hm_pdetect/bin/hm_pdetect.sh daemon 3568 root 276 S grep pdetect

Im Log erkennt man schön den Ablauf:

In der CCU1 WebOberfläche kann man schön die Auswirkung meiner Änderungen WLAN=aus/an --> abwesend/anwesend verfolgen

Danach kann mit folgendem Kommando die Ausführung von hm_pdetect gestoppt werden:

|/usr/local/addons/hm_pdetect/bin/hm_pdetect.sh stop |

Er sollte dann am Schluss die PID ausgeben die er beendet hat, was dann auch zeigt das der daemon mode problemlos funktioniert auf der CCU1.

/ # /usr/local/addons/hm_pdetect/bin/hm_pdetect.sh stop WARNING: config file '/usr/local/addons/hm_pdetect/bin/hm_pdetect.conf' doesn't exist. Using default values. Stopping hm_pdetect (pid: 3151) / # ps aux | grep pdetect 5566 root 276 S grep pdetect

Bitte mal schauen ob das alles problemlos auf der CCU1 funktioniert.

Da teste ich heute Abend noch weiter

— Reply to this email directly or view it on GitHub https://github.com/jens-maus/hm_pdetect/issues/7#issuecomment-178498603.

jens-maus commented 8 years ago

Ok, das sieht alles sehr gut aus und so wie es sein soll. Ich werde dann noch das Webinterface entsprechend an die neuen Features anpassen und dann leg ich dir hier mal ein addon tar.gz hin das du dann über das WebUI direkt mal installieren kannst um zu sehen ob alles noch korrekt funktioniert als Gesamtpaket. Wenn ja, dann gibts bald den 0.8 release mit repariertem CCU1 support.

hicomer commented 8 years ago

Bei den getesteten Intervallen von 5s und 15s werden immer zwischen 1 und 4 Prozessen gefunden. Ist das so gewollt?

~ # ps aux | grep pdetect
 6951 root        852 S   bash /usr/local/addons/hm_pdetect/bin/hm_pdetect.sh daemon
 8928 root        840 S   bash /usr/local/addons/hm_pdetect/bin/hm_pdetect.sh daemon
 8941 root        772 R   bash /usr/local/addons/hm_pdetect/bin/hm_pdetect.sh daemon
 8942 root        740 S   bash /usr/local/addons/hm_pdetect/bin/hm_pdetect.sh daemon
 8945 root        276 R   grep pdetect

Sonst ist mir jetzt nichts mehr aufgefallen.

Ich freue mich auf die 0.8 :-)

jens-maus commented 8 years ago

Das ist normal, ja. Das sind alles subhells die im Ablauf von hm_pdetect.sh kurzzeitig vom system generiert werden um die logfile ausgaben zu generieren. Sollte aber die CCU nicht nennenswert belasten oder tangieren.

jens-maus commented 8 years ago

Hallo. Kannst du mal bitte noch folgenden Befehl auf der CCU1 eingeben und zeigen was das ding ausgibt:

grep --help
hicomer commented 8 years ago

Hi, das wird ausgegeben:

~ # grep --help
BusyBox v1.00 (2015.08.19-10:58+0000) multi-call binary

Usage: grep [-ihHnqvs] PATTERN [FILEs...]

Search for PATTERN in each FILE or standard input.

Options:
        -H      prefix output lines with filename where match was found
        -h      suppress the prefixing filename on output
        -i      ignore case distinctions
        -l      list names of files that match
        -n      print line number with output lines
        -q      be quiet. Returns 0 if result was found, 1 otherwise
        -v      select non-matching lines
        -s      suppress file open/read error messages
jens-maus commented 8 years ago

nun bin ich wohl soweit und hab auch die webconfig Umgebung angepasst. Bitte mal das folgende tar.gz runterladen und als ganz normales CCU Addon über die WebUI der CCU1 installieren (vorher mal eine Kopie der config datei anlegen!):

[ersetzt]

Nach dem Reboot der CCU1 sollte dann hoffentlich alles funktionieren und hm_pdetect regelmäßig gestartet werden und als daemon laufen (siehe logfile). Auch soll das webconfig problemlos funktionieren und man da z.B. auch das Ausführungsintervall einstellen können bis hin zum kompletten ausschalten.

Auch gibt es nun die Möglichkeit bei abgeschaltetem Intervall hm_pdetect trotzdem manuell via Aufruf von /usr/local/addons/hm_pdetect/run.sh mittels CUxD oder direktem Aufruf von einem SSH Login aus starten zu lassen.

Bitte also ausführlich testen und Probleme hier melden. Ich warte dann noch bis zum offiziellen freigeben der 0.8er version bis du eine Rückmeldung schickst ob die version auf der CCU1 geht oder nicht. Bitte auch ein kompletten uninstall/reinstall testen.