2 Presence verbinden für 3. presence ?

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

Vorheriges Thema - Nächstes Thema

ChrisW

Hallo,
habe 2 Presence laufen 1x status vom Handy welches in der Fritzbox verbunden ist
und 1x status wenn Handy mit dem unifi access point verbunden ist.

Nun möchte ich aus beiden ein Presence erstellen was dies zusammenfast
Also nur wenn eins de rbeiden present ist ? present.
Bei absent müssen beide absent haben !
Raspberry PI3 mit allem möglichen.

Rolfg

Hallo,

das müsste eigenlich mit doif funktionieren.

Gruß rolf

justme1968

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

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

ChrisW

och ne da shatte ich gerade hinter mir mit structure :D
Aber kan ich damit es auch so schalten ?
prenset present = present
absent present = present
absent absent = absent
Raspberry PI3 mit allem möglichen.

Rolfg

Hallo,

https://fhem.de/commandref_DE.html#structure

wenn ich das richtig verstehe ja. Wenn alle off dann ist die structure off.

Gruß Rolf

Otto123

Zum Üben :)
define Dev11 dummy 
attr Dev11 event-on-change-reading state 
attr Dev11 eventMap 0:absent 1:present 
attr Dev11 room Status 
attr Dev11 webCmd present:absent 
define Dev12 dummy 
attr Dev12 event-on-change-reading state 
attr Dev12 eventMap 0:absent 1:present 
attr Dev12 room Status 
attr Dev12 webCmd present:absent 
define st_Dev1 structure bewohner Dev11 Dev12 
attr st_Dev1 clientstate_behavior relative 
attr st_Dev1 clientstate_priority present|1 absent|0 
attr st_Dev1 event-on-change-reading state 
attr st_Dev1 room Status 


Macht genau was Du willst und lässt sich beliebig erweitern.

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

Zitat von: Rolfg am 19 August 2017, 13:52:15
Hallo,

https://fhem.de/commandref_DE.html#structure

wenn ich das richtig verstehe ja. Wenn alle off dann ist die structure off.

Gruß Rolf

Funktioniert Super Danke
Raspberry PI3 mit allem möglichen.

ChrisW

Kann man eine structure von einer structure machen ?
Da ich nun das ganze für mein Handy gelöst habe habe ich noch das Handy von meiner Frau.
Dort werden ebenfalls dann 2 presence zu einer structure zusammengeasst.

Diese beiden structuren sollen nun zu "einerda" zusammengefasst werden.
Raspberry PI3 mit allem möglichen.

Otto123

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

Danke les ich mir mal durch.
Habe nun die Idee eine structure für alle 4 presence zu machen.
So hätte ich sobald einer da ist den status present.
Wenn dann alles absent ist habe ich absent.
Genau so will ich das ja haben.
Sobald einer da ist einerda= present
und sobald alles absent ist = absent :=)

Sollte doch klappen?
Raspberry PI3 mit allem möglichen.

tiroso

Benutze doch das Presence Modul mit Function...

Dann kannst du es dir GENAU so zusammenbauen wie du es brauchst

Gruß
Tim

ChrisW

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 :(
Raspberry PI3 mit allem möglichen.

tiroso

define pres2 PRESENCE function { return 0 if(Value('PRESDEV1') eq 'absent' || Value('PRESDEV2') eq 'absent'); return 1; }

Probier mal etwas in die Richtung. Zur Erklärung. Wenn device 1 oder 2 absent ist gibt die Funktion 0 also absent zurück. Wenn keiner den Status absent hat...gibt die 1 zurück...also present. Ich glaube der Status kann nur absent oder present sein, alsokönnte es so klappen.

ChrisW

hmmm
The command contains a pipe ( | ) symbol, which is not allowed. Unknown command return, try help. Unknown command }, try help.
Raspberry PI3 mit allem möglichen.

tiroso

Oh sorry.

Man muss die funktion in z.b myutils hinterlegen und dort aufrufen. Wenn du mir noch etwas zeit gibts schicke ich sie dirheute abend.

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


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.

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

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...