Modulfamilie für Bewohner / 10_RESIDENTS 20_ROOMMATE 20_GUEST

Begonnen von Loredo, 19 Januar 2014, 23:12:34

Vorheriges Thema - Nächstes Thema

Loredo

Zitat von: Zephyr am 09 März 2014, 21:42:13
Ist es der fehlende Start des sleep timers bei den Guests? :D
Bei Roommate die Zeilen 400 - 416 und bei Guest fehlt der Teil ab Zeile 405? ;)

Das habe ich nämlich gerade in diesen Minuten bei mir hinzugefügt. Und im Moment funktioniert es erst mal. Aber mal abwarten.


Exakt.
Hat meine Arbeit dir geholfen? ⟹ https://paypal.me/pools/c/8gDLrIWrG9

Maintainer:
FHEM-Docker Image, https://github.com/fhem, Astro(Co-Maintainer), ENIGMA2, GEOFANCY, GUEST, HP1000, Installer, LaMetric2, MSG, msgConfig, npmjs, PET, PHTV, Pushover, RESIDENTS, ROOMMATE, search, THINKINGCLEANER

Zephyr

Oh wow! Und das hast du rausbekommen ohne meine Probleme direkt bei Dir nachvollziehen zu können?
Respekt!  :D

Herzlichen Dank!
FHEM 5.5 auf Fritz!Box 7390 und Beagle Bone black mit RFXtrx433

Loredo

Zitat von: Zephyr am 09 März 2014, 22:34:40
Oh wow! Und das hast du rausbekommen ohne meine Probleme direkt bei Dir nachvollziehen zu können?
Respekt!  :D


Naja, ist ja mein Modul. Da kenn ich mich schon ein wenig aus was da wo an welcher Stelle ist  ;)
Hat meine Arbeit dir geholfen? ⟹ https://paypal.me/pools/c/8gDLrIWrG9

Maintainer:
FHEM-Docker Image, https://github.com/fhem, Astro(Co-Maintainer), ENIGMA2, GEOFANCY, GUEST, HP1000, Installer, LaMetric2, MSG, msgConfig, npmjs, PET, PHTV, Pushover, RESIDENTS, ROOMMATE, search, THINKINGCLEANER

der-Lolo

Hallo Loredo,
danke erstmal für Dein Modul, ich finde es toll und benutze es zur erkennung der anwesenheit mithilfe unsere handys (bluetooth) - ich möchte nun erweitern, im zimmer vom nachwuchs wird ein taster installiert, dieser soll erstmal den state schläft - oder ist wach einstellen... hierüber möchte ich die anrufbeantworter steuern und evtl. Sonos in der lautstärke begrenzen... ein asleep und woke up gibt es so aber ja noch nicht... wie würdest du das integrieren?

eine kleine frage noch - ich kämpfe eh schon mit freeze meldungen vom perfmon <3sek. , wenn aber jemand von uns das haus betritt oder verlässt sind es teilweise >12sek.
hängt das ausschliesslich mit Max zusammen - die heizköroer sind zur zeit das einzige was geschaltet wird in verbindung mit anwesenheit... oder liegt es auch vielleicht am Modul - verarbeitung und loggen der infos..?

Loredo

Zitat von: der-Lolo am 17 März 2014, 12:36:11
ein asleep und woke up gibt es so aber ja noch nicht...


Doch, die Stati gibt es so wie auch in der CommandRef beschrieben!
Sie werden im Webinterface per Default ausgeblendet, können aber trotzdem gesetzt werden. Mit dem Attribut r*_showAllStates kann man im Webinterface auch asleep und awoken einblenden.


Der Hintergrund ist ganz einfach: Normalerweise geht man in einer bestimmten Reihenfolge schlafen ;-)
Und dieser Prozess soll dadurch unterstützt werden, dass nur gotosleep als Start im Webinterface angezeigt wird. Danach kann man mit einem Klick auf das devIcon den jeweils nächsten Status setzen (also asleep > awoken > home).


Das wird aber irrelevant, wenn man den Status ohnehin über einen Taster setzen möchte, so wie du es vor hast.
Ich mache das bei mir auch über einen Taster und kann es daher nur empfehlen.


Zitat von: der-Lolo am 17 März 2014, 12:36:11
eine kleine frage noch - ich kämpfe eh schon mit freeze meldungen vom perfmon <3sek. , wenn aber jemand von uns das haus betritt oder verlässt sind es teilweise >12sek.
hängt das ausschliesslich mit Max zusammen - die heizköroer sind zur zeit das einzige was geschaltet wird in verbindung mit anwesenheit... oder liegt es auch vielleicht am Modul - verarbeitung und loggen der infos..?


Das hängt wohl nur mit deinen Max Devices zusammen. Die RESIDENTS Modulgruppe verbraucht keine nennenswerten Ressourcen. Ich vermute, du hast bei keinem deiner Max Devices bisher das Attribut event-on-change-reading auf ".*" gesetzt. Das würde ich dir unbedingt empfehlen, es mindert die Last bei Trigger Events enorm.




Gruß
Julian
Hat meine Arbeit dir geholfen? ⟹ https://paypal.me/pools/c/8gDLrIWrG9

Maintainer:
FHEM-Docker Image, https://github.com/fhem, Astro(Co-Maintainer), ENIGMA2, GEOFANCY, GUEST, HP1000, Installer, LaMetric2, MSG, msgConfig, npmjs, PET, PHTV, Pushover, RESIDENTS, ROOMMATE, search, THINKINGCLEANER

Kakaomonster

Hallo zusammen,

erstmal ein Dankeschön für das klasse Modul, mir gefällt es sehr gut und wenn ich dies nun noch mit meiner Bluetooth Abfrage verbunden bekomme, dann habe ich fast das was ich gesucht habe :-)

Nun sitze ich jedoch seit Tagen an einem Problem. Ich habe fast alles in eigene XX.cfg s ausgelagert. Nach anlegen der resident.cfg und übernehmen vom Beispielcode im ersten Post ist fhem nach einem rereadconfig.cfg nicht mehr gestartet. Ich bin also hingegangen und habe einen Teilvode irgendwann dann direkt in die fhem.cfg eingetragen um zu schauen was los ist. Erst dachte ich es liegt an der resident.cfg, weil wenn ich das include auskommentiert habe lief alles wieder.

Soeben bemerkte ich das follgender Code mein FHEM "tötet"

# Standalone
define rgr_Bewohner RESIDENTS
attr rgr_Bewohner alias Bewohner
attr rgr_Bewohner devStateIcon .*home:status_available:absent .*absent:status_away_1:home .*gone:status_standby:home .*none:control_building_empty .*gotosleep:status_night:asleep .*asleep:status_night:awoken .*awoken:status_available:home
attr rgr_Bewohner group Home State
attr rgr_Bewohner icon control_building_filled
attr rgr_Bewohner room Residents
attr rgr_Bewohner webCmd state
set rgr_Bewohner addRoommate Ralf
set rgr_Bewohner addRoommate Nina
set rgr_Bewohner addGuest Gast


nehme ich hier nun follgendes RAUS:

set rgr_Bewohner addRoommate Ralf
set rgr_Bewohner addRoommate Nina
set rgr_Bewohner addGuest Gast


kann ich fhem nach einem reboot von meinem BBB (wheezy) wieder starten bzw startet wieder automatisch. Updates sind auf dem aktuellen Stand. Aus der log erhalte ich lediglich als letzten Einträge:

2014.03.20 11:34:17 3: WEBhook: port 8088 opened
2014.03.20 11:34:17 1: Including FHEM/licht.cfg
2014.03.20 11:34:17 1: Including FHEM/light_scene.cfg
2014.03.20 11:34:17 1: Including FHEM/structure.cfg
2014.03.20 11:34:17 1: Including FHEM/bluetooth.cfg
2014.03.20 11:34:17 1: Including FHEM/radio.cfg
2014.03.20 11:34:17 1: Including FHEM/viewControl.cfg
2014.03.20 11:34:17 1: Including FHEM/ttsRec.cfg
2014.03.20 11:34:17 2: RESIDENTS set rgr_Bewohner addRoommate Ralf
2014.03.20 11:40:20 1: Including FHEM/licht.cfg
2014.03.20 11:40:20 1: Including FHEM/light_scene.cfg
2014.03.20 11:40:20 1: Including FHEM/structure.cfg
2014.03.20 11:40:20 1: Including FHEM/bluetooth.cfg
2014.03.20 11:40:21 1: Including FHEM/radio.cfg
2014.03.20 11:40:21 1: Including FHEM/viewControl.cfg
2014.03.20 11:40:21 1: Including FHEM/ttsRec.cfg
2014.03.20 11:40:21 1: Including ./log/fhem.save


da ich hier von einem Denkfehler bei mir ausgehe, hoffe ich auf Hilfe, denn so fit bin ich immer noch nicht mit fhem und so langsam auch am verzweifeln :-(

Hoffe doch das an so einem Sonnigen Tag jemand hier rein schaut :-)

Grüsse, Ralf
FHEM auf Raspi m.12cm Antenne, BBB als Server für Zusatz (apache,php,sql)
1 USB CUL/RAW (ReadAnswer):  V 1.61
2 MAX Thermostate, 1 MAX Wanthermostast
1 FHT8V Thermostat, Schaltaktoren,Bewegungsmelder, Wandtatser Elro & IT
1 HMT 360, 4 7"Tablets, FB 7490

Loredo

Zitat von: Kakaomonster am 20 März 2014, 11:43:05nehme ich hier nun follgendes RAUS:set rgr_Bewohner addRoommate Ralfset rgr_Bewohner addRoommate Ninaset rgr_Bewohner addGuest Gast


Set-Befehle gehören niemals direkt in eine cfg-Datei. Die Befehle müssen nur einmalig über das Web-Frontend ausgeführt werden und erzeugen dann die eigentlichen Objekte, die bei einem "save" auch ordnungsgemäß in der fhem.cfg abgespeichert werden. Natürlich kannst du sie anschließend von dort auch in deine gesonderte Datei verschieben. Wichtig dabei ist nur, dass die Reihenfolge der Objekte so bestehen bleibt (erst RESIDENTS Objekt, dann ROOMMATE und GUEST Objekte).

Das wäre dir nicht passiert, wenn du die Config-Dateien nicht manuell editiert hättest. Dabei muss man schon genau wissen, was man tut. Ansonsten lautet die Empfehlung, alles ausschließlich über das Web-Frontend zu machen.


Gruß
Julian
Hat meine Arbeit dir geholfen? ⟹ https://paypal.me/pools/c/8gDLrIWrG9

Maintainer:
FHEM-Docker Image, https://github.com/fhem, Astro(Co-Maintainer), ENIGMA2, GEOFANCY, GUEST, HP1000, Installer, LaMetric2, MSG, msgConfig, npmjs, PET, PHTV, Pushover, RESIDENTS, ROOMMATE, search, THINKINGCLEANER

Kakaomonster

Hallo Julian,

danke für die schnelle Hilfe... UND...

MAAAANNNNN wie dumm kann man sein. Ist ja logisch  :o ich glaube das wäre mir in den nächsten Tagen genau so wenig aufgefallen wie jetzt das ich die set Befehle drinnen hatte wo sie nicht hingehören :-( *grrrrrr*

Danke erst mal. Nun kann ich mir wieder an mein Bluetooth dran geben, damit dadurch der Status geändert wird :-)
Ich wünsche Dir noch einen schönen Tag,

Grüsse, Ralf
FHEM auf Raspi m.12cm Antenne, BBB als Server für Zusatz (apache,php,sql)
1 USB CUL/RAW (ReadAnswer):  V 1.61
2 MAX Thermostate, 1 MAX Wanthermostast
1 FHT8V Thermostat, Schaltaktoren,Bewegungsmelder, Wandtatser Elro & IT
1 HMT 360, 4 7"Tablets, FB 7490

Kakaomonster

Hallo zusammen,

nach meinem dummen Fehler von oben komme ich nun auch weiter und natürlich, wie soll es anders sein hänge ich da auch wieder. Aber naja, learning by doing, so kam ich wenigstens zum aktuellen stand :-)

Vielleicht kann mir hier auch jemand schnell behilflich sein.

Aktuell ist es so, wenn mein BT nicht mehr erreichbar ist, geht mein Status auf "gone", wenn es daheim ist dann auf "Home", dass klappt auch super, auch wenn die Anzeige leider nicht automatisch aktualisiert, so klappt es jedenfalls.

Dies habe ich mit diesem Code hinbekommen:

define BT_abwesend notify BT_Anwesenheit:0 set rr_Ralf state gone;; set androidTablet ttsSay Ralf ist Abwesend, Licht wurde ausgeschaltet. Bitte manuelle Schaltung übernehmen!
define BT_anwesend notify BT_Anwesenheit:1 set rr_Ralf state home;; set androidTablet ttsSay Hallo Ralf, willkommen zurück


Sicherlich nicht die beste Lösung so wie ich bisher lesen konnte, aber anders konnte ich es aus eigener Kraft noch (NOCH) nicht umsetzen :-)

Nun möchte ich aber, dass von Status "Home" erstmal auf "Absent" gesetzt wird. Bin ich dann x Minuten später immer noch absent, dann soll es auf "gone" gesetzt werden. Ich bin der Meinung das schon gesehen zu haben, aber ich habe das Forum nun 2 mal hoch und runter gesucht, ich finde es nicht mehr.

Jemand einen schnellen Tip? Mit sleep geht es wohl scheinbar nicht (sleep und erneut prüfen) Habe auch diverse schnippsel aus der Anwesenheitserkennung versucht "umzubasteln" aber auch da komme ich nicht weiter.

Grüsse, Ralf
FHEM auf Raspi m.12cm Antenne, BBB als Server für Zusatz (apache,php,sql)
1 USB CUL/RAW (ReadAnswer):  V 1.61
2 MAX Thermostate, 1 MAX Wanthermostast
1 FHT8V Thermostat, Schaltaktoren,Bewegungsmelder, Wandtatser Elro & IT
1 HMT 360, 4 7"Tablets, FB 7490

Alex_E

Hallo zusammen,

ich hab da mal ne Frage zum Roommate Modul.. Generell funktioniert das Modul ziemlich gut bei mir, der Status wird über Geofency aktualisiert und ich hab ein Reading gesetzt, was auf die Änderung in Status auf Home eine Lampe einschaltet. Soweit, so gut. Was ich aber gerne zusätzlich integrieren würde ist eine weitere Bedingung welche das Licht nur dann schaltet, wenn es dunkel ist.
Sprich: Wenn Home UND Dunkel dann an.
Was hätten wir auf Verfügung:
- das Twilight Modul mit den einzelnen Statu
- einen Dummy der dunkel bzw. hell ausgibt und auf 2 weitere Dummys referenziert welche aufgrund von sunrise / sunset die Ausgabe des Dummy´s auf Hell/dunkel stellt
Leider will das Roommate Modul aber leider keine Bedingung akzeptieren und weigert sich, die 2.te Bedingung neben dem Home status zu akzeptieren..

Jemand eine Idee wie ich das umsetzen kann bzw. ob das Roommate Modul das vllt. einfach garnicht kann?


Kakaomonster

#115
Hallo Alex,

vielleicht hilft Dir hier mein Code weiter. Erklärung darunter.

define BT_Anwesenheit dummy
attr BT_Anwesenheit room BT_Anwesenheit
define BT_Anwesendcheck at +*00:00:01 {\
\
    if (Value("BT_iPhone5") eq "absent" && Value("BT_iPhone5") eq "absent") {\
    fhem("set BT_Anwesenheit 0") if (Value("BT_Anwesenheit") ne "0")\
    }\
    else {\
    fhem ("set BT_Anwesenheit 1") if (Value("BT_Anwesenheit") eq "0");;;;\
    }\
    }
attr BT_Anwesendcheck room BT_Anwesenheit

#define BT_abwesend notify BT_Anwesenheit:0 set rr_Ralf state gone;; set androidTablet ttsSay Ralf ist Abwesend, Licht wurde ausgeschaltet. Bitte manuelle Schaltung übernehmen!

# Schaltung auf Abwesend und Anwesend WENN Tag oder Nacht mit Sprachnaricht

define BT_abwesend_Say_Tag notify BT_Anwesenheit:0 { if (isday()) { fhem("set androidTablet ttsSay Ralf ist verschwunden.") }}
define BT_abwesend_Say_Abend notify BT_Anwesenheit:0 { if (!isday()) { fhem("set androidTablet ttsSay Ralf ist weg.Licht wird ausgeschaltet.") }}
define BT_abwesend_liAus notify BT_Anwesenheit:0 set rr_Ralf state gone ;; set ambiEG_Wohnzimmer off

define BT_anwesend_Say_Tag notify BT_Anwesenheit:1 { if (isday()) { fhem("set androidTablet ttsSay Willkommen Ralf.Guten Tag.") }}
define BT_anwesend_Say_Abend notify BT_Anwesenheit:1 { if (!isday()) { fhem("set androidTablet ttsSay Willkommen Ralf.Guten Abend. Ambiente Licht eingeschaltet.") }}
define BT_anwesend_liAus notify BT_Anwesenheit:1  { if (!isday()) { fhem("set ambiEG_Wohnzimmer on") }}
define BT_anwesend_BTda notify BT_Anwesenheit:1 set rr_Ralf state home


Erklärung:
Ich komme nach Hause, per Bluetooth wird festgestellt das ich anwesend bin. Der Status wird auf HOME gesetzt, Sprachansage begrüsst mich je nach Tageszeit, ebenso wird Ambiente Licht eingeschaltet, aber nur wenn es dunkel ist. Umgestzt mit isday und !isday.

Ebenso wird beim verlassen eine Ansage durchgeführt und alles wird ausgeschaltet, egal ob Tag oder Nacht, da man ja ab und an auch am Tage Licht an macht und es vergisst auszumachen. Der Status wechselt auf GONE

Was mir fehlt ist, dass der Status ERSTMAl für x Minuten auf ABSENT wechselt und danach dann wenn ich nicht zurück komme auf gone.

Es wurde halt mit presence BT und isday bzw !isday umgesetzt. mit Sunrise/Twighlight bin ich noch dran, dass hat bei mir noch nicht so geklappt wie es soll.

Ich hoffe es ist das was Du meinst und es hilft ein wenig.
Grüsse, Ralf

PS: Das der Code nicht der schönste ist, weiß ich. Auch sicherlich nicht der Sinnvollste, aber erstmal funktioniert es. Vielleicht erbarmt sich ja einer der developer das in Kurzform SINNVOLL zu ändern :-)

Da fällt mir ein, wäre es nicht sogar eine möglichkeit sowas in ein eigenes Modul zu packen, indem man sowas als ungeübter per Dropdown lösen könnte? Ich habe mich mal daran versucht, es jedoch schnell wieder verworfen, da ich davon noch mehr als nur lichtjahre entfernt bin. Als Idee fände ich dies jedoch ganz gut, denn ich denke auch nicht coder sollten fhem doch in Zukunft einsetzen können. Dies ist im moment ja fast unmöglich. Also für jemanden der code noch niemals gesehen hat oder soll fhem auf dieser Basis auch in Zukunft laufen?

Das wäre eine Sinnvolle Frage an rudolf ob da schon was in Planung ist, wie es später weiter geht oder ob ich hier viel zu weit denke.
FHEM auf Raspi m.12cm Antenne, BBB als Server für Zusatz (apache,php,sql)
1 USB CUL/RAW (ReadAnswer):  V 1.61
2 MAX Thermostate, 1 MAX Wanthermostast
1 FHT8V Thermostat, Schaltaktoren,Bewegungsmelder, Wandtatser Elro & IT
1 HMT 360, 4 7"Tablets, FB 7490

Alex_E

Oha, das ist irgendwie deutlich mehr als ich eigentlich möchte. Und um ehrlich zu sein ist der Code fast nicht umschreibbar da einfach zu viele Dinge enthalten sind, die bei mir nicht so umgesetzt sind.


aktuell sieht mein Code so aus:


rr_Alex:home set ku_Lampe_gross on-for-timer 576
[/size]
Das Thema ist halt die zweite Prüfung mit einzubauen, also z.B. Tageslicht:dunkel

Kakaomonster

Hallo Alex,

ok, ich habe grade wenig Zeit um es selbst durchzuspielen.

Da ich aktuell auch noch nicht so erfahren bin, würde ich es nun auf 2 Abfragen referenzieren, einmal das Du daheim bist mit Geaofancy Status auf Home setzen und dann dieses hier, wenn Status home UND NICHT TAG, dann lampe an. Keine Garantie!!!

define rr_Alex_home HomeStatus:home  { if (!isday()) { fhem("set ku_Lampe_gross on-for-timer 576") }}

Ein Versuch ist es evtl,. Wert
Viel Glück, Ralf
FHEM auf Raspi m.12cm Antenne, BBB als Server für Zusatz (apache,php,sql)
1 USB CUL/RAW (ReadAnswer):  V 1.61
2 MAX Thermostate, 1 MAX Wanthermostast
1 FHT8V Thermostat, Schaltaktoren,Bewegungsmelder, Wandtatser Elro & IT
1 HMT 360, 4 7"Tablets, FB 7490

der-Lolo

@Alex : als alternative zur oft irre führenden syntax kannst du dir mal hier im forum unter automatisierung das IF-modul anschauen.

Alex_E