Bluetoothanwesenheit erkennen von Räumen Hilfeeeeee!!!!!!!!

Begonnen von kevkolb, 28 Januar 2015, 15:08:15

Vorheriges Thema - Nächstes Thema

kevkolb

Hi,
bin ein Greenhorn in Sachen FHEM. Ich habe folgendes Problem:

Momentan besitze ich 2 Raspberry Pi's. Auf dem ersten läuft FHEM und collectord auf dem anderen läuft presenced.

Soweit so gut (anbei ein Screenshot wie es bei mir im FHEM aussieht)
(http://bildschirmfoto%202015-01-28%20um%2015.00.24.png)

Der Aufenthaltsort wird wie gewünscht geändert jedoch nicht wenn man das Haus verlässt. Ich möchte dann anstatt "Wohnzimmer" "unterwegs" anzeigen lassen.
Wie kann ich das bewerkstelligen??

Anbei noch mein verwendeter code:
#Bluetooth-Anwesenheit iPhone1
define iPhone1 PRESENCE lan-bluetooth xx:xx:xx:xx:xx:xx 192.168.2.11:5222
attr iPhone1 alias Kevin's iPhone

define iPhone readingsGroup iPhone(1|2):room
attr iPhone alias Wo sind unsere iPhone's?
attr iPhone group iPhone,
attr iPhone mapping {'iPhone1.room' => 'Kevin iPhone', 'iPhone2.room' => 'Franzi iPhone'}
attr iPhone nameStyle style="text-align:left"
attr iPhone notime 1
attr iPhone room Haus

#d_iPhone1 definieren
define d_iPhone1 dummy
attr d_iPhone1 alias Kevin's iPhone
attr d_iPhone1 eventMap 1
define FileLog_d_iPhone1 FileLog ./log/d_iPhone1-%Y-%m.log d_iPhone1
attr FileLog_d_iPhone1 logtype text

define iPhone1On notify iPhone1:present {if (Value("d_iPhone1") ne "on"){ fhem ("setstate watchdog_d_iPhone1 defined")  }}
#d_iPhone1 auf off setzen nach 2 Min Abwesenheit
define watchdog_d_iPhone1 watchdog iPhone1:absent 00:02 iPhone1:present set d_iPhone1 off
attr watchdog_d_iPhone1 regexp1WontReactivate 1


Bitte um Unterstützung

Otto123

Guten Abend,

Du musst etwas bauen, wenn Du in keinem der Zimmer bist, bist Du weg.

Das sieht man leider nicht in deinem Codeschnipsel. Das Watchdog scheint ok, sagst Du ja auch.

Gruß Otto
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

kevkolb

Genau das ist mein Problem. Ich habe keine Ahnung wie ich das anstellen soll!!! :'(

Wenn du noch mehr Infos benötigst, ich stelle alles zur Verfügung!!!
Bitte um beistand!!! 8)

Otto123

Erstmal brauche ich nicht ganz so viele Ausrufezeichen :)

Du musst eine structure machen, du findest dazu einiges an Beispielen z.B. hier
http://forum.fhem.de/index.php?topic=13102.0

Also Deine Räume in einer structure zusammenfassen und dann bekommst Du für die structure present oder absent.

Ich habe bei mir die Handy auf diese Art zusammengefasst und werte aus wenn keiner zu Hause ist.

Gruß Otto
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

Otto123

hier noch ein aktuelles Beispiel, auch mit Hinweisen auf andere Module.
http://forum.fhem.de/index.php/topic,31741.msg253239/topicseen.html#msg253239

Die vielen Wege nach Rom :)

Gruß Otto
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

kevkolb

Danke für die Hilfestellungen! ;D

Ich konnte bis jetzt nicht mit der Hilfe einen Erfolg erzielen. :-[
Ich habe eine Screenshot angehängt! unter Readings habe ich Wohnzimmer markiert. Um diesen Status geht es mir.
Wenn das iPhone das Haus verlässt ändert sich dieser Wert nicht. Und ich verstehe nicht wie ich dies ändern kann! :-\

Anbei noch mein kompletter Code:
#Pushbullet Dienst
define push Pushbullet HxEQuQdbagagagawegegwsgwGwg

#Bluetooth-Anwesenheit iPhone1
define iPhone1 PRESENCE lan-bluetooth xx:xx:xx:xx:xx:xx 192.168.2.11:5222
attr iPhone1 userattr home_structure home_structure_map structexclude
attr iPhone1 alias Kevin's iPhone
attr iPhone1 event-on-change-reading state
attr iPhone1 home_structure Home
attr iPhone1 sortby 6

define iPhone readingsGroup iPhone(1|2):room
attr iPhone alias Wo sind unsere iPhone's?
attr iPhone group iPhone,
attr iPhone mapping {'iPhone1.room' => 'Kevin iPhone', 'iPhone2.room' => 'Franzi iPhone'}
attr iPhone nameStyle style="text-align:left"
attr iPhone notime 1
attr iPhone room Haus

#d_iPhone1 definieren
define d_iPhone1 dummy
attr d_iPhone1 alias Kevin's iPhone
attr d_iPhone1 eventMap 1
define FileLog_d_iPhone1 FileLog ./log/d_iPhone1-%Y-%m.log d_iPhone1
attr FileLog_d_iPhone1 logtype text

define iPhone1On notify iPhone1:present {if (Value("d_iPhone1") ne "on"){ fhem("set d_iPhone1 on;;set push message Kevin ist am $mday.$month.$year  um $hms ins ".ReadingsVal("iPhone1","room","")." gekommen|Kevin ist ins ".ReadingsVal("iPhone1","room","")." gekommen|iPhone1;; setstate watchdog_d_iPhone1 defined")  }}
#d_iPhone1 auf off setzen nach 2 Min Abwesenheit
define watchdog_d_iPhone1 watchdog iPhone1:absent 00:01 iPhone1:present set d_iPhone1 off
attr watchdog_d_iPhone1 regexp1WontReactivate 1

define Home structure home_structure  iPhone1 iPhone2 PreseceState
attr Home clientstate_behavior relative
attr Home clientstate_priority present absent
attr Home devStateIcon present:status_available:home absent:control_building_empty:home
attr Home group .Home Status
attr Home icon system_fhem
attr Home room Residents
attr Home sortby 6

#Bluetooth-Anwesenheit iPhone2
define iPhone2 PRESENCE lan-bluetooth yy:yy:yy:yy:yy:yy 192.168.2.11:5222
attr iPhone2 userattr home_structure home_structure_map structexclude
attr iPhone2 alias Franzi's iPhone
attr iPhone2 event-on-change-reading state

#d_iPhone2 definieren
define d_iPhone2 dummy
attr d_iPhone2 alias Franzi's iPhone
attr d_iPhone2 eventMap 1
define FileLog_d_iPhone2 FileLog ./log/d_iPhone2-%Y-%m.log d_iPhone2
attr FileLog_d_iPhone2 logtype text

#d_iPhone2 auf on setzen bei Anwesenheit
define iPhone2On notify iPhone2:present { fhem ("set d_iPhone2 on;;set push message Franzi ist nach Hause gekommen|Franzi ist Zuhause|iPhone1;; setstate watchdog_d_iPhone2 defined") if (Value("d_iPhone2") ne "on") }

#d_iPhone2 auf off setzen nach 2 Min Abwesenheit
define watchdog_d_iPhone2 watchdog iPhone2:absent 00:02 iPhone2:present set d_iPhone2 off
attr watchdog_d_iPhone2 regexp1WontReactivate 1

define anyViews Dashboard
attr anyViews dashboard_tab1groups iPhone, iPad, iPod
attr anyViews dashboard_tab1sorting t0c0,iPhone,true,255,95:t0c0,iPod,true,255,95:t0c0,iPad,true,255,95:
attr anyViews dashboard_tabcount 1
attr anyViews dashboard_width 80%
define anyViews_weblink weblink htmlCode {DashboardAsHtml("anyViews")}
attr anyViews_weblink room DashboardRoom
define HomeStatus LightScene DL_Kueche DL_Esszimmer DL_Wohnzimmer


Es ist bestimmt ganz einfach aber ich steige einfach nicht dahinter!

strauch

#6
Du müsstest mit dem watchdog, der schaut ob überhaupt noch jemand da ist, das Reading überschreiben.

setreading iPhone1 room ausmhaus

Oder draußen nen Bluetoothteil aufhängen.

Gesamt:

define watchdog_d_iPhone1 watchdog iPhone1:absent 00:01 iPhone1:present set d_iPhone1 off;setreading iPhone1 room ausmhaus;setstate watchdog_d_iPhone1 defined

und dein Watchdog wieder scharfschalten......
FHEM 5.6 VMware mit Debian. 1 CUL für FS20 und HMLAN für Homematic, HM-CC-RT-DN, HM-LC_Sw1PBU-FM, HM-LC-Bl1PBU-FM,  HM-SEC-SC, HM-SEC-SC-2, HM-LC-Sw1-Pl2, HM-Sec-RHS, ASH2200, FHT80B, S20KSE, Sonos, XBMC, FB_Callmonitor, SMLUSB, Arduino Firmata, uvm.

Otto123

Sorry, ich verstehe Deine Vorgehensweise nicht so richtig. Ich werde aus dem Screenshot und dem Code nicht schlau.
Ich versuche mal einen verbalen Ansatz
Du hast zwei Iphones und zwei Räume
Du willst primär wissen, wenn EIN iphone das Haus verlässt, also in keinem Zimmer ist.

Vorschlag:
Du machst eine structure mit beiden Zimmern
Das Ergebnis wird sein, die structure ist present wenn DAS iphone in einem der beiden Zimmer ist, egal in welchem.
Die structure wird absent sein wenn DAS  iphone in keinem Zimmer ist - also außer Haus.

Ob da in dem reading Wohnzimmer bei room drinsteht (das verstehe ich eigentlich nicht) wäre aus meiner Sicht egal. room steht bei FHEM irgendwie für das Attribute room als Ordnungskriterium. Ich würde das nur so verwenden.

Du kannst noch eine structure über beide structuren mach (ich glaube das geht) - dann weißt Du wenn keiner im Haus ist. Aber das hattest Du gar nicht als Aufgabe gestellt, ich entnehme das aber Deinem codeschnipsel :)

Aber ehrlich, ich habe es so mit Räumen bisher nicht realisiert. Ich teste nur ob mindestens einer im Haus oder alle weg.

Gruß Otto 
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

strauch

Zitat von: Otto123 am 29 Januar 2015, 17:24:07
Ob da in dem reading Wohnzimmer bei room drinsteht (das verstehe ich eigentlich nicht) wäre aus meiner Sicht egal. room steht bei FHEM irgendwie für das Attribute room als Ordnungskriterium. Ich würde das nur so verwenden.

Das liegt daran, das er per Bluetoothgruppe schaut wo das Gerät ist. Siehe http://fhem.de/commandref.html#PRESENCE unter lan-bluetooth und dann bekommt das Presence Device als Reading den Namen des Raumes in dem per Bluetooth festgestellt wurde, das dort das Gerät ist.
Wenn nun das Gerät absent ist, bleibt dort der letzte Raum stehen und er möchte da etwas anderes stehen haben.

Vielleicht gibts ja auch ne Funktion in Presence was dort auftauchen soll. wenn Presence auf "absent" steht.
FHEM 5.6 VMware mit Debian. 1 CUL für FS20 und HMLAN für Homematic, HM-CC-RT-DN, HM-LC_Sw1PBU-FM, HM-LC-Bl1PBU-FM,  HM-SEC-SC, HM-SEC-SC-2, HM-LC-Sw1-Pl2, HM-Sec-RHS, ASH2200, FHT80B, S20KSE, Sonos, XBMC, FB_Callmonitor, SMLUSB, Arduino Firmata, uvm.

Otto123

Zitat von: strauch am 29 Januar 2015, 17:28:02
Das liegt daran, das er per Bluetoothgruppe schaut wo das Gerät ist. Siehe http://fhem.de/commandref.html#PRESENCE unter lan-bluetooth und dann bekommt das Presence Device als Reading den Namen des Raumes in dem per Bluetooth festgestellt wurde, das dort das Gerät ist.
Wenn nun das Gerät absent ist, bleibt dort der letzte Raum stehen und er möchte da etwas anderes stehen haben.

Vielleicht gibts ja auch ne Funktion in Presence was dort auftauchen soll. wenn Presence auf "absent" steht.
Das erklärt es, danke! Ich mache es nicht über Bluetooth, ich habe ein richtiges Handy :) das kann Wlan. Ne war nur Spass, Zimmer Erkennung wäre für mich auch mal noch interessant, aber bis dahin gibt es noch wichtigere Ideen.

Gruß Otto
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

kevkolb

Danke an alle letztendlich hat der Lösungsvorschlag von Strauch den gewünschten Erfolg gebracht! :D

Danke an Alle und wünsche noch nen schönen Abend