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 !
Hallo,
das müsste eigenlich mit doif funktionieren.
Gruß rolf
structure ist dein freund
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
Hallo,
https://fhem.de/commandref_DE.html#structure
wenn ich das richtig verstehe ja. Wenn alle off dann ist die structure off.
Gruß Rolf
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
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
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.
Halte ich so direkt nicht für sinnvoll. Ich habe das so gemacht -> https://heinz-otto.blogspot.de/2016/01/anwesenheitserkennung.html
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?
Benutze doch das Presence Modul mit Function...
Dann kannst du es dir GENAU so zusammenbauen wie du es brauchst
Gruß
Tim
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 :(
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.
hmmm
The command contains a pipe ( | ) symbol, which is not allowed. Unknown command return, try help. Unknown command }, try help.
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.
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
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
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
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
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
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
Viele Wege führen nach Rom ;)
Danke hab mal die structure Lösung im Test :)
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.
gtags?? Hast du den Code zufällig für die Schaltung mit dem nachhausekommen wenn dunkel ?
define nty_HausLicht notify Person:present {if (!isday("REAL") and Value ("Licht") eq "off") {fhem "set Licht on-for-timer 300"}}
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
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
@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...