Vorstellung meiner Anwesenheitserkennung mit Bluetooth

Begonnen von Markus Bloch, 27 Januar 2013, 13:39:33

Vorheriges Thema - Nächstes Thema

Lars

Hi Markus,
Update durchgeführt, nach dem Restart wird folgendes ausgegeben:
2013.02.21 13:16:32 0: Server started with 210 defined entities (version Fhem 5.3 (DEVELOPMENT), $Id: fhem.pl 2752 2013-02-17 13:55:05Z rudolfkoenig $, pid 11197)
2013.02.21 13:16:32 3: PRESENCE (lsc): 'which hcitool' returns:
2013.02.21 13:16:36 3: PRESENCE_ProcessLocalScan: lsc|0|error|no hcitool binary found. Please check that the bluez-package is properly installed
2013.02.21 13:16:36 3: PRESENCE: error while processing device lsc - no hcitool binary found. Please check that the bluez-package is properly installed


Gruß
Lars
FHEM Hauptsystem auf ESXi VM | dblog | 3 rPi für Nebensysteme | 2 Beaglebone Black Test- / Integrationssystem

Markus Bloch

Hi Lars,

hasst du FHEM zufällig unter einen eigenen Usernamen laufen? Denn die Bluetooth-Erkennung funktioniert nur, wenn FHEM unter root läuft. Laut dem log, hat "which hcitool" kein Ergebnis geliefert, was bedeutet, dass der User das Binary nicht zur Verfügung hat bzw. nicht root-Rechte hat.

Viele Grüße

Markus
Developer für Module: YAMAHA_AVR, YAMAHA_BD, FB_CALLMONITOR, FB_CALLLIST, PRESENCE, Pushsafer, LGTV_IP12, version

aktives Mitglied des FHEM e.V. (Technik)

Lars

jepp, FHEM läuft unter dem User fhem.
Mit diesem User kann ich jedoch auf der Kommandozeile beide Befehle erfolgreich ausführen.
Ich schau mal wie es aussieht, wenn ich fhem unter root Rechten laufen lasse. So prall wäre die Lösung aber nicht... ;-)

Gruß
Lars
FHEM Hauptsystem auf ESXi VM | dblog | 3 rPi für Nebensysteme | 2 Beaglebone Black Test- / Integrationssystem

Markus Bloch

Hallo Lars,

wenn du als User FHEM den Befehl auf der Shell manuell ausführen kannst, ist es möglich, dass es mit FHEM nicht funktioniert, da hier der Pfad "/usr/local/bin" nicht in der PATH-Variable standardmäßig drinn steht. Hier könnte man folgendes Versuchen:

Erzeugen eines Symlinks, welcher hcitool unter /usr/bin bereitstellt.
# ln -s /usr/local/bin/hcitool /usr/bin/hcitool

Dann sollte es auch klappen.

Viele Grüße

Markus
Developer für Module: YAMAHA_AVR, YAMAHA_BD, FB_CALLMONITOR, FB_CALLLIST, PRESENCE, Pushsafer, LGTV_IP12, version

aktives Mitglied des FHEM e.V. (Technik)

Lars

Hi Markus,
genau das war es. Vielen Dank für Deine Hilfe!
Ich bastel gerade noch an einer Toleranz Mimik damit nicht bei jeder fehlgeschlagener Erkennung von einer Abwesenheit ausgegangen wird.
In einem Dummy wird meinen Status übernommen und erst wenn x-Mal PRESENCE einen anderen Status erkannt hat wird der Dummy nachgezogen. Vielleicht auch eine Idee für Dein Modul?
Der BT 4.0 Stick aus den USA funktioniert übrigens prima mit dem iPhone 5. :-)

Gruß
Lars
FHEM Hauptsystem auf ESXi VM | dblog | 3 rPi für Nebensysteme | 2 Beaglebone Black Test- / Integrationssystem

Markus Bloch

Hallo Lars,

genau für diesen Fall gibt es ja den watchdog in FHEM. Ein Beispiel findest du im Wiki-Artikel zu Anwesenheitserkennung:

http://www.fhemwiki.de/wiki/Anwesenheitserkennung#Abschalten_aller_Verbraucher_.28Licht.2C_Musikanlage.29_beim_Verlassen_der_Wohnung

Viele Grüße

Markus
Developer für Module: YAMAHA_AVR, YAMAHA_BD, FB_CALLMONITOR, FB_CALLLIST, PRESENCE, Pushsafer, LGTV_IP12, version

aktives Mitglied des FHEM e.V. (Technik)

Markus

Ich hab mir zwei Raspberry Gekauft und möchte Anwesenheitserkennung über LAN Bluetooth Realisieren leider hab ich problemme dabei den colector zu Installieren.


pi@Agent-Bad ~ $ sudo update-rc.d presenced defaults
update-rc.d: using dependency based boot sequencing
update-rc.d: error: unable to read /etc/init.d/presenced


pi@Agent-Bad ~ $ sudo update-rc.d collectord defaults
update-rc.d: using dependency based boot sequencing
update-rc.d: error: unable to read /etc/init.d/collectord



und für die init.d bekomme ich keine Schreibrechte:-(
ich verwende putty und winSCP
die Lokale Bluetooth Erkennung Funktioniert
meine .cfg schaut so aus

define Markus_Handy PRESENCE local-bluetooth E8:99:C4:FF:A7:1B 10 10
attr Markus_Handy devStateIcon present:power-green absent:power-red
attr Markus_Handy room Anwesend
define Markus_Handy_Bad PRESENCE lan-bluetooth E8:99:C4:FF:A7:1B 192.168.1.17:5111
attr Markus_Handy_Bad room Anwesend

define Markus dummy
attr Markus event-on-change-reading .*
attr Markus group Personen
attr Markus room Anwesend
define FileLog_Markus FileLog ./log/Markus-%Y.log Markus
attr FileLog_Markus logtype text
attr FileLog_Markus room Logs


define Markus_Daheim notify Markus_Handy:present {\
fhem ( "set Markus present ;; delete Markus_Weg ;; define Markus_Weg at +00:04:00 set Markus absent")}

define streamradio StreamRadio /opt/fhem/cfg/WebStreams.txt
attr streamradio room Multimedia
attr streamradio telnetport 7072
attr streamradio volume_command amixer cset numid=1 -- %s%%


define Agent_Bad PRESENCE lan-bluetooth 00:15:83:15:A3:10
attr Agent_Bad room Anwesend


Gruß Markus
Raspberry Pi2 als FHEM-Plattform
HM, FS20, 1-Wire, PanStamp,LW12,Intertechno,ESPEasy,Alexa

Markus Bloch

Hallo Markus,

wie genau hast du denn collectord und presenced installiert?

Hast du die deb-Pakete verwendet?

Gruß
Markus ;-)
Developer für Module: YAMAHA_AVR, YAMAHA_BD, FB_CALLMONITOR, FB_CALLLIST, PRESENCE, Pushsafer, LGTV_IP12, version

aktives Mitglied des FHEM e.V. (Technik)

Markus

Ich hab ihn Putty diese Befehle nach einandereingegeben

sudo wget http://svn.code.sf.net/p/fhem/code/trunk/fhem/contrib/PRESENCE/deb/presenced-rpi-1.3.deb
sudo wget http://svn.code.sf.net/p/fhem/code/trunk/fhem/contrib/PRESENCE/deb/collectord-1.4.deb

pi@Agent-Bad ~ $ sudo wget http://svn.code.sf.net/p/fhem/code/trunk/fhem/contrib/PRESENCE/deb/presenced-rpi-1.3.deb
--2014-02-11 13:00:56--  http://svn.code.sf.net/p/fhem/code/trunk/fhem/contrib/PRESENCE/deb/presenced-rpi-1.3.deb
Resolving svn.code.sf.net (svn.code.sf.net)... 216.34.181.157
Connecting to svn.code.sf.net (svn.code.sf.net)|216.34.181.157|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 6278 (6.1K) [application/octet-stream]
Saving to: `presenced-rpi-1.3.deb.1'

100%[======================================>] 6,278       --.-K/s   in 0s

2014-02-11 13:00:56 (29.5 MB/s) - `presenced-rpi-1.3.deb.1' saved [6278/6278]

pi@Agent-Bad ~ $ sudo wget http://svn.code.sf.net/p/fhem/code/trunk/fhem/contrib/PRESENCE/deb/collectord-1.4.deb
--2014-02-11 13:01:21--  http://svn.code.sf.net/p/fhem/code/trunk/fhem/contrib/PRESENCE/deb/collectord-1.4.deb
Resolving svn.code.sf.net (svn.code.sf.net)... 216.34.181.157
Connecting to svn.code.sf.net (svn.code.sf.net)|216.34.181.157|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 9274 (9.1K) [application/octet-stream]
Saving to: `collectord-1.4.deb.3'

100%[======================================>] 9,274       --.-K/s   in 0.001s

2014-02-11 13:01:21 (12.5 MB/s) - `collectord-1.4.deb.3' saved [9274/9274]

pi@Agent-Bad ~ $


dann hab ich unter winSCP nach dem colektor unter /var/run/collectord.pid) gesucht hier ist er aber nicht vorhanden.

dann hab ich noch diese Befehle eingegeben aber auch ohne Erfolg.

sudo update-rc.d presenced defaults
sudo update-rc.d collectord defaults

pi@Agent-Bad ~ $ sudo update-rc.d presenced defaults
update-rc.d: using dependency based boot sequencing
update-rc.d: error: unable to read /etc/init.d/presenced


pi@Agent-Bad ~ $ sudo update-rc.d collectord defaults
update-rc.d: using dependency based boot sequencing
update-rc.d: error: unable to read /etc/init.d/collectord


das Ganze habe ich auf dem Raspberry unter standard Benutzernahmen pi gemacht

Gruß Markus
Raspberry Pi2 als FHEM-Plattform
HM, FS20, 1-Wire, PanStamp,LW12,Intertechno,ESPEasy,Alexa

Markus Bloch

Hallo Markus,

du hast die .deb-Pakete heruntergeladen. Das ist soweit richtig.

Allerdings musst du die auch installieren, bevor du diese benutzen kannst.

also:

pi@Agent-Bad ~ $ sudo dpkg -i presenced-rpi-1.3.deb

und

pi@Agent-Bad ~ $ sudo dpkg -i collectord-1.4.deb

Dann werden die Dienste jeweils installiert und gestartet.

Die entsprechenden Logfiles werden dann unter /var/log/ erzeugt.

Viele Grüße

Markus
Developer für Module: YAMAHA_AVR, YAMAHA_BD, FB_CALLMONITOR, FB_CALLLIST, PRESENCE, Pushsafer, LGTV_IP12, version

aktives Mitglied des FHEM e.V. (Technik)

Markus

Danke Markus das war´s

Allerdings hatte ich noch ein Problem beim Update.

sudo update-rc.d presenced defaults

sudo update-rc.d collectord defaults


Fehler:nsserv: warning: script 'mathkernel' missing LSB tags and overrides

Hier die Lösung...

sudo nano /etc/init.d/mathkernel

unter
#!/bin/sh

ergänzen:

### BEGIN INIT INFO
# Provides:          mathkernel
# Required-Start:    $local_fs
# Required-Stop:     $local_fs
# Default-Start:     2 3 4 5
# Default-Stop:      0 1 6
# Short-Description: mathkernel
### END INIT INFO


Speichern
und dann klappt auch das Update

sudo update-rc.d presenced defaults

sudo update-rc.d collectord defaults


Gruß Markus
Raspberry Pi2 als FHEM-Plattform
HM, FS20, 1-Wire, PanStamp,LW12,Intertechno,ESPEasy,Alexa

Markus

#71
Hallo Markus

Ich hab da noch ein Problem.
Wenn mein Handy länger absent ist bleibt es auch Absent erst wenn ich den raspberry neu starte Funktioniert es wieder,
bis zum nächsten längeren Absent.

Mit meiner Freisprech Einrichtung verbindet sich das Handy allerdings sofort

Gruß Markus

edit:
Bluetooth ist auch auf der Konsole über PuTTY nicht verfügbar

sudo /etc/init.d/bluetooth restart
sudo service bluetooth restart

aktivieren Bluetooth auch nicht
nur
sudo restart

aktiviert Bluetooth wieder

Hat dazu jemand eine Idee?  :'(
Raspberry Pi2 als FHEM-Plattform
HM, FS20, 1-Wire, PanStamp,LW12,Intertechno,ESPEasy,Alexa

Markus Bloch

Hallo Markus,

ein solches Phänomen ist mir nicht bekannt.  Was ich mit der Zeit festgestellt habe, ist, dass der Bluetooth-Daemon so nach ca. 1,5 Monate durchgängiger Anwesenheitserkennung die arbeit einstellt und nix mehr macht. Da hat bei mir aber immer ein /etc/init.d/bluetooth restart geholfen, weshalb ich das via crontab einmal im Monat automatisch durchführen lasse.

wie sieht denn die Ausgabe auf der Konsole aus, wenn du "hcitool name [Bluetooth-Adresse]" ausführst?

Danke
Gruß
Markus
Developer für Module: YAMAHA_AVR, YAMAHA_BD, FB_CALLMONITOR, FB_CALLLIST, PRESENCE, Pushsafer, LGTV_IP12, version

aktives Mitglied des FHEM e.V. (Technik)

Markus

Danke für deine Geduld...
Hier die Ausgabe der Konsole, und nach Restart Funktionierte es wieder einwandfrei...


Gruss Markus

pi@Agent-Bad ~ $ hcitool name E8:99:C4:FF:A7:1B
Device is not available.
pi@Agent-Bad ~ $ hcitool name E8:99:C4:FF:A7:1B
Device is not available.
pi@Agent-Bad ~ $ sudo /etc/init.d/bluetooth restart
[ ok ] Stopping bluetooth: rfcomm /usr/sbin/bluetoothd.
[ ok ] Starting bluetooth: bluetoothd rfcomm.
pi@Agent-Bad ~ $ hcitool name E8:99:C4:FF:A7:1B
Device is not available.
pi@Agent-Bad ~ $ hcitool name E8:99:C4:FF:A7:1B
Device is not available.
pi@Agent-Bad ~ $ hcitool scan
Device is not available: No such device
pi@Agent-Bad ~ $ sudo service bluetooth restart
[ ok ] Stopping bluetooth: rfcomm /usr/sbin/bluetoothd.
[ ok ] Starting bluetooth: bluetoothd rfcomm.
pi@Agent-Bad ~ $ hcitool name E8:99:C4:FF:A7:1B
Device is not available.
pi@Agent-Bad ~ $ hcitool name E8:99:C4:FF:A7:1B
Device is not available.
pi@Agent-Bad ~ $ hcitool name E8:99:C4:FF:A7:1B
Device is not available.
pi@Agent-Bad ~ $ hcitool name E8:99:C4:FF:A7:1B
Device is not available.
pi@Agent-Bad ~ $ hcitool scan
Device is not available: No such device
pi@Agent-Bad ~ $ hcitool name E8:99:C4:FF:A7:1B
Device is not available.
Raspberry Pi2 als FHEM-Plattform
HM, FS20, 1-Wire, PanStamp,LW12,Intertechno,ESPEasy,Alexa

FHEM_Seb

Hallo Markus,

erstmal vielen dank für Deine Beschreibung, welche schon mal sehr nützlich ist.

Ich brauche allerdings vorerst nochmal Hilfe bei der Hard- und Software Konfiguration:

Ich habe FHEM auf einem RPI laufen. Um die Anwesenheitserkennung mittels Bluetooth zu realisieren habe ich einen Bluetooth Stick an den RPI angeschlossen. Die Anwesenheitserkennung mittels local-bluetooth funktioniert einwandfrei!

Jetzt habe ich mir einen zweiten RPI zugelegt und möchte mittels presenced und collectored beide RPIs mit Bluetooth abfragen!

Nun zur Frage:
Muss auf dem zweiten RPI, der nur der Bluetoothabfrage dient auch FHEM installiert werden oder reicht es aus, dort das presenced Modul zu installieren??
Und:
Auf meinem ersten RPI, worauf auch FHEM läuft, muss da nur das collectored Modul installiert werden oder auch das presenced Modul??

Vielen Dank für Deine Hilfe.

Gruß Sebastian