2 Presence verbinden für 3. presence ?

Begonnen von ChrisW, 19 August 2017, 13:26:46

Vorheriges Thema - Nächstes Thema

ChrisW

ja klar Danke. Schau mal hier vielleicht gibt es ja noch eine ganz andere lösung ?
https://forum.fhem.de/index.php/topic,40287.msg674156.html#msg674156
Raspberry PI3 mit allem möglichen.

Otto123

Zitat von: ChrisW am 19 August 2017, 15:17:29
na so fitt bin ich leider nicht :(

Also meine idee klappt wohl nicht muss alles gleich sein habe nun 3 absent 1 present = state
undefined :(
Hast Du die Attribute denn ordentlich gesetzt? attr st_Dev1 clientstate_behavior relative 
attr st_Dev1 clientstate_priority present absent
???

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

ChrisW

#17
Danke natürlich nicht Test läuft ;)
Scheint zu klappen wobei er bei Status: "maybe absent" auch schon ein absent macht nicht ganz so schlimm :D
Raspberry PI3 mit allem möglichen.

tiroso

nochmals sorry, bin gestern abend ziemlich schnell eingeschlafen.

Deine Anforderung:
Sobald ein Presence-Device auf "present" geht willst du ein Zentrales Device haben was auch auf Present geht. Sobald ALLE auf "absent" geht möchtest du auch dieses zentrale device auf "absent" haben.

Das Presence Modul mit "event" zu nutzen scheint mir hier unpraktikabel. Eine Struktur zu nutzen kannst du natürlich machen. Ein DOIF zu nutzen finde ich in dem Fall etwas zu groß. Zumal du dann ein weiteres Device anlegen musst oder aber mit den Readings des DOIF arbeiten musst und da weiß ich nicht wie fit du bist.

Mein Vorschlag:
Das Presence Modul mit "function"

Du bearbeitest die "99_myUtils.pm" und fügst folgende Funktion ein:
sub pres_check{
   my @devices = @_;
   foreach my $device (@devices){
      return 1 if(Value($device) eq "present");
   }
   return 0;
}


Anschließend legst du dir ein neues Presence Modul an:
define Presence_Name PRESENCE function { pres_check("Device1","Device2") }

Den Teil pres_check("Device1","Device2") kannst du mit beliebig vielen Presence Devices aufrufen bsp: pres_check("Device1","Device2","Device3","Device4")

Das Ergebnis:
Alle 30 Sekunden wird geprüft ob die von dir angegebenen Devices present sind. Sollte dem nicht bei wenigsten einem Device der Fall sein wird der Status auf absent gesetzt

stebar_

Noch eine weitere Möglichkeit:

Dummy für Benutzer 1
define user_1 dummy
attr user_1 alias Hans
attr user_1 devStateIcon anwesend:status_available abwesend:status_away_1
attr user_1 icon people_sensor
attr user_1 room Anwesenheit
attr user_1 setList anwesend abwesend
attr user_1 webCmd anwesend:abwesend


Dummy für Benutzer 2
define user_2 dummy
attr user_2 alias Lisa
attr user_2 devStateIcon anwesend:status_available abwesend:status_away_1
attr user_2 icon people_sensor
attr user_2 room Anwesenheit
attr user_2 setList anwesend abwesend
attr user_2 webCmd anwesend:abwesend


Dummy für Gemeinsamen Status
define anwesend_zusammen dummy
attr anwesend_zusammen alias Zusammen
attr anwesend_zusammen devStateIcon anwesend:status_available abwesend:status_away_1
attr anwesend_zusammen icon people_sensor
attr anwesend_zusammen room Anwesenheit
attr anwesend_zusammen setList anwesend abwesend
attr anwesend_zusammen webCmd anwesend:abwesend


Notify
define anwesend_zusammen_keiner_da_notify notify (user_1|user_2) {my $u1 = Value("user_1");;my $u2 = Value("user_2");;if ($u1 eq "abwesend" && $u2 eq "abwesend") {fhem ("set anwesend_zusammen abwesend")}else {fhem ("set anwesend_zusammen anwesend")}}

Viele Grüße

Gasmast3r

#20
Hy habe alles mit Strukture gelöst und läuft seit Monaten ohne Fehler

Habe 2 Gtags die mit 2 ZeroPi's gepingt werden.
Somit habe ich 4 Presend Zustände, die zu je einer  Person Strukture zusammen gefügt habe und diese zu einer Bewohner  strukture.
Und es läuft ohne Probleme.


define Sonja_Cam PRESENCE lan-bluetooth 7C:2F:80:96:3D:CE 192.168.178.113:5333 10
attr Sonja_Cam userattr Sonja Sonja_map structexclude
attr Sonja_Cam Sonja structure_Sonja
attr Sonja_Cam event-on-change-reading state
attr Sonja_Cam room Anwesenheit
define Sven_Cam PRESENCE lan-bluetooth 7C:2F:80:AD:C7:ED 192.168.178.113:5333 10
attr Sven_Cam userattr Sven Sven_map structexclude
attr Sven_Cam Sven structure_Sven
attr Sven_Cam event-on-change-reading state
attr Sven_Cam room Anwesenheit
define Sven_Cam1 PRESENCE lan-bluetooth 7C:2F:80:AD:C7:ED 192.168.178.114:5333 10
attr Sven_Cam1 userattr Sven Sven_map structexclude
attr Sven_Cam1 Sven structure_Sven
attr Sven_Cam1 event-on-change-reading state
attr Sven_Cam1 room Anwesenheit
define Sonja_Cam1 PRESENCE lan-bluetooth 7C:2F:80:96:3D:CE 192.168.178.114:5333 10
attr Sonja_Cam1 userattr Sonja Sonja_map structexclude
attr Sonja_Cam1 Sonja structure_Sonja
attr Sonja_Cam1 event-on-change-reading state
attr Sonja_Cam1 room Anwesenheit
define structure_Bewohner structure Bewohner structure_Sven structure_Sonja
attr structure_Bewohner clientstate_behavior relative
attr structure_Bewohner clientstate_priority present|1 absent|0
attr structure_Bewohner event-on-change-reading state
attr structure_Bewohner room Anwesenheit
define structure_Sven structure Sven Sven_Cam Sven_Cam1
attr structure_Sven userattr Bewohner Bewohner_map structexclude
attr structure_Sven Bewohner structure_Bewohner
attr structure_Sven clientstate_behavior relative
attr structure_Sven clientstate_priority present|1 absent|0
attr structure_Sven event-on-change-reading state
attr structure_Sven room Anwesenheit
define structure_Sonja structure Sonja Sonja_Cam Sonja_Cam1
attr structure_Sonja userattr Bewohner Bewohner_map structexclude
attr structure_Sonja Bewohner structure_Bewohner
attr structure_Sonja clientstate_behavior relative
attr structure_Sonja clientstate_priority present|1 absent|0
attr structure_Sonja event-on-change-reading state
attr structure_Sonja room Anwesenheit

Entschuldige das ich DOOF FRAGE aber ich habe Psychische Probleme und Leide an ADHS mit Kognitiver-Hyperaktivität.

tiroso


ChrisW

Danke hab mal die structure Lösung im Test :)
Raspberry PI3 mit allem möglichen.

Gasmast3r

Das sollte problemlos klappen, nur die Handys können das Problem werden Standby, Flugmodus usw.

Kann die GTag's nur empfehlen

Steuere damit meine Geräte beim verlassen und beim nach Hause komme.
Es geht alles aus wenn keiner mehr da ist und im Eingangsbereich geht das Licht an wenn es dunkel ist und einer nach Hause kommt.
Entschuldige das ich DOOF FRAGE aber ich habe Psychische Probleme und Leide an ADHS mit Kognitiver-Hyperaktivität.

ChrisW

gtags?? Hast du den Code zufällig für die Schaltung mit dem nachhausekommen wenn dunkel ?
Raspberry PI3 mit allem möglichen.

Otto123

define nty_HausLicht notify Person:present {if (!isday("REAL") and Value ("Licht") eq "off") {fhem "set Licht on-for-timer 300"}}
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

Gasmast3r

#26
Dafür must du Twilight definieren


define Licht_AN DOIF ([?Lichtsteuerung:light] < 5 and [structure_Bewohner] eq "present") (set HUEGroup3 pct 90)

aus mache ich das licht per HUE Switch

Einfach mal bei Amazon eingeben Link klappt per Tapatalk irgendwie nicht
Entschuldige das ich DOOF FRAGE aber ich habe Psychische Probleme und Leide an ADHS mit Kognitiver-Hyperaktivität.

DeeSPe

Eine weitere Möglichkeit wäre die Verwendung der Module RESIDENTS/ROOMMATE/GUEST + PRESENCE + HOMEMODE.
In HOMEMODE lassen sich die jeweiligen PRESENCE Devices sehr leicht mit den ROOMMATE/GUEST Devices verknüpfen. Auch kann man einstellen wie viele der PRESENCE Devices pro ROOMMATE/GUEST als present bzw. absent gelten sollen.

Gruß
Dan
MAINTAINER: 22_HOMEMODE, 98_Hyperion, 98_FileLogConvert, 98_serviced

Als kleine Unterstützung für meine Programmierungen könnt ihr mir gerne einen Kaffee spendieren: https://buymeacoff.ee/DeeSPe

tiroso

@ChrisW
Gtags sind kleine LE BT ... Tags  ;D
sind halt in einer Größe das man die noch an den Schlüsselanhänger hängen kann.
Du hast die ganze Zeit ein Bluetooth Signal und kannst eine Präsenzerkennung damit basteln. Funktioniert ganz gut. Bei uns sende ich damit z.B. ein Text über Telegram wenn die Türe zu lange aufsteht..also je nachdem wie viele Leute anwesend sind mit unterschiedlichen Timern...es kann ja auch gewollt sein das die Türe offen steht. Oder oder...