Vorstellung meiner Anwesenheitserkennung mit Bluetooth

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

Vorheriges Thema - Nächstes Thema

Markus Bloch

Hallo Andre,

tut mir leid, aber das währen jetzt zu große Änderungen, als das ich das bis morgen schaffen würde.

Allerdings würde ich in deinem Falle eh vorschlagen 2 Definitionen zu machen.


# von deinem FHEM Server aus via PING in der ganzen Wohnung
define <name> PRESENCE lan-ping 192.168.0.3 30  


define <name>_Arbeitszimmer PRESENCE lan-bluetooth A4:F6:BD:C9:20:15 192.168.0.5:5111 30
attr <name> room Arbeitszimmer


Ist auch einfacher dies vom Code her zu verarbeiten. Denn durch die Vermischung von Wohnung und Arbeitszimmer musst du ja einmal angeben dass, die Anwesenheit im Arbeitszimmer vor der Anwesenheit in der Wohnung gilt, damit du das ja quasi auch unterscheiden kannst. Generell bin ich kein Fan von langen Einzeilern in der Konfiguration. Du hast 2 Zeilen und kannst es einfacher mit notify's verarbeiten. etc.

Tut mir leid, aber dadurch würde das Modul sehr viel komplexer in der Definition werden, was ich gerne vermeiden möchte. Auch wenn man das über Attribute machen würde, währe das genauso unübersichtlich.

Ich hoffe du verstehst das.

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)

justme1968

hallo markus,

natürlich verstehe ich das. es ist dein modul.

aber das argument mir den langen einzeilern greift nicht. die komplexität wird nur woanders hin verlagert. und manches wird sehr schwer lösbar. die probleme fangen schon an das die geräte ja unterschiedlichen heißen und dann im notiy oder an jeder stelle an der der status abgefragt wird verknüpft werden müßen. das ist wenn es mehr als ein gerät ist und mehr als ein oder zwei präsenz arten sehr sehr viel schlechter handhabbar als eine lange konfigurationszeile. bei zwei oder drei geräte mal zwei oder drei stockwerke mit bluetooth und jeweils ein mal wlan ist die eine lange Zeile nichts mehr gegenüber der komplexität das hinterher wieder unter einen hut zu bekommen.

eine möglichkeit wäre eine structure aber da kann ich nur den status auswerten und zusammenfassen. den raum nicht.

der raum macht übrigens noch ein anderes problem. das reading wird nicht gelöscht oder zurückgesetzt. d.h. ich muss nicht nur den anwesend/abwesend status auswerten sondern noch den zeitpunkt der einzelen readings und dann noch mit dem zeitpunkt des readings für den raum vergleichen. und das an jeder stelle.

aber genug der vielen worte. dein modul ist ja erst mal so eingecheckt. es wäre aber schön die offenen punkte nicht einfach zu vergessen sondern in einer späteren version wieder aufzugreifen.

gruss
  andre
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

https://github.com/sponsors/justme-1968

Markus Bloch

Hallo Andre,

werd ich mir im Hinterkopf bewahren.

Als kleiner Tip:

für solche großen Setups wo mehrere Stockwerke usw. vorhanden sind, ist der collectord ja gedacht. Dort kannst du dann sämtliche Räume definieren in denen ein Raspberry Pi oder ähnliches mit einem laufenden presenced steht (Modus: lan-bluetooth). Dieser aggregiert dann alles zusammen zu einem Ergebnis und sagt dir in welchen Raum (evtl. ink. Stockwerksbezeichnung) sich dein Gerät aufhält.

Was man machen könnte ist, das man unter den vorhanden Modi's mehrere koppeln kann, allerdings ist es FHEM-architekturbedingt, das nur eine Verbindung zu einem presenced oder collectord aufgenommen werden kann. D.h. man könnte mehrere LAN-Pings durchführen (um evtl. mehrere Personen zusammenzufassen), genauso könnte man auch mehrere lokale Bluetooth-Pings durchführen (um evtl. mehrere Personen zusammenzufassen).

Aber es ist nicht möglich mehrere einzelne presenced Verbindungen aufzubauen, daher habe ich den collectord geschrieben. Mit dem kann man dann mehrere Räume einzeln überwachen und zu einem Ergebnis zusammenführen.

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)

MartinMuc

funktioniert klasse in den lokalen Versionen :) Danke Markus
Cubietruck mit CUL und HM USB

Markus Bloch

Vielen Dank.

Ich hab soeben den Wiki Artikel Anwesenheitserkennung verfasst.

Evtl. wollt ihr hier die ein oder anderen Sachen ergänzen.

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)

IROC_KNX

Hallo Markus,

die Abwesenheitserkennung funktioniert wunderbar.
Ich habe hierzu allerdings noch zwei Fragen.
1. MUSS ich bei define Handy immer die IP Adresse angeben, oder funktioniert das auch mit der MAC Adresse des Handys?

2. Ich möchte gern, dass zwei oder drei Handys überwacht werden.
   Kann ich diese in die Befehlzeile irgendwie aufnehmen (durch Komma getrennt etc.)
   oder muss ich den kompletten watchdog Befehl mehrmals darstellen/schreiben?

Gruß
Fabi
FHEM 5.8 auf RaspberryPi mit knxd

MartinMuc

macadresse geht nicht aber du kannst, wenn es dein Router unterstüzt den Namen des Handys nehmen.

Mein iPhone heist z.B iPhone. Und ich habe statt der ip adresse nur iPhone drin stehen, das geht mit meiner Fritzbox super

Cubietruck mit CUL und HM USB

IROC_KNX

Gute Idee mit der Namensvergebung.
Jetzt benötige ich nur noch einen Tip für meine zweite Frage
FHEM 5.8 auf RaspberryPi mit knxd

Markus Bloch

Zitat von: IROC_KNX schrieb am Sa, 02 Februar 2013 20:07Hallo Markus,

2. Ich möchte gern, dass zwei oder drei Handys überwacht werden.
   Kann ich diese in die Befehlzeile irgendwie aufnehmen (durch Komma getrennt etc.)
   oder muss ich den kompletten watchdog Befehl mehrmals darstellen/schreiben?

Hallo Fabi,

aktuell musst du den Befehl mehrmals darstellen, es ist bisher noch nicht möglich mehrere Devices anzugeben.

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

Hallo Markus,
der BT4.0 Stick ist angekommen und nach einem ersten Vergleichstest zwischen iPhone 4S und iPhone 5 gehe ich davon aus, dass die von Dir genutzte Mimik mit hcitool name auch im LE Modus funktioniert. Mit dem iPhone 5 bekomme ich eine deutlich höhere Reichweite.
Leider funktioniert das PRESENCE Modul bei mir aber noch nicht. Ich habe es per updatefhem installiert. Bluez 5.2 ist ebenfalls installiert, auf der Konsole kann ich hcitool ohne Fehler nutzen. Ich habe ein Gerät per local-bluetooth definiert. Beim Start von FHEM wird folgendes ins Log geschrieben:

>>2013.02.20 20:44:39 2: PRESENCE: error while processing device lsc - no hcitool                               binary found. Please check that the bluez-package is properly installed


Wenn ich das richtig sehe wird dieser Fehlermeldung nur ausgegeben, wenn "which hcitool" nichts findet.
Wenn ich diesen Befehl auf der Komandozeile ausführe erhalte ich den korrekten Pfad zum binary.

>>/usr/local/bin/hcitool

Any ideas?

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

Lars

Weitere Erkenntnis: Weder qx, noch "Backticks" liefert mir einen Output. Der Befehl wird zwar ausgeführt, die Rückgabe des Befehls ist aber immer "". Scheint also ein Problem von meiner Perl Installation oder dem rPi zu sein.
Merkwürdiger Fehler.
FHEM Hauptsystem auf ESXi VM | dblog | 3 rPi für Nebensysteme | 2 Beaglebone Black Test- / Integrationssystem

Markus Bloch

Hallo Lars,

konnte ich bei mir ebenfalls nachstellen. Ich hab die hcitool Erkennung etwas geändert. Bitte führ morgen ein update durch und starte FHEM einmal neu. Dann sollte es laufen.

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

Hallo Markus,

danke für Deine schnelle Reaktion. Hast du auch den Aufruf vom hcitool geändert? Wenn ich die Erkennung umgehe scheitert das Programm ein paar Zeilen später ebenfalls. ;-)

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

Markus Bloch

Hallo Lars,

wo genau scheitert es denn? Hast du eine Fehlermeldung im Log?

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)

Lars

$devname = qx(hcitool name $device);

$devname ist immer leer. Erst dachte ich, dass qx() einfach nur nicht den Output returniert. Mittlerweile bin ich mir da nicht so sicher. Habe schon absolute Pfade verwendet um die Umgebungsvariablen auszuschließen...
FHEM Hauptsystem auf ESXi VM | dblog | 3 rPi für Nebensysteme | 2 Beaglebone Black Test- / Integrationssystem