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

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

Vorheriges Thema - Nächstes Thema

DeeSPe

Zitat von: Loredo am 28 Januar 2017, 15:51:10
Jetzt sitze ich vorm Rechner.


Hier der Artikel, wie man generell Devices in Fhem übersetzen kann:
Frontend übersetzen mit widgetOverride und eventMap (am Beispiel ROOMMATE)


msgConfig hat einen Setter "createResidentsDev", der RESIDENTS Devices in Deutsch oder Englisch vorkonfiguriert.

Danke Julian für die nachgereichte Info.
Ich hatte es zwischenzeitlich selbst in msgConfig wieder gefunden.
Irgendwo hatte ich es gesehen, wusste nur nicht mehr wo und fing an an mir selbst zu zweifeln. ::)

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

volschin

Ich habe jetzt mal versucht, das Presence-Device direkt im ROOMMATE einzutragen und nicht mehr über Watchdog zu setzen. Leider funktioniert das nur unzuverlässig, da es immer wieder mal vorkommt, dass für kurze Zeit das Bluetooth-Signal abhanden kommt. Der Watchdog hat das kompensiert. Gibt es etwas ähnliches doch auch im ROOMMATE?
Intel NUC+Ubuntu 22.04+Docker+FHEM6
HomeMatic: HM-MOD-RPI-PCB+HM-USB-CFG2+hmland+diverse, HUE: Hue-Bridge, RaspBee+deCONZ+diverse
Amzn Dash-Buttons, Siro Rollos
4xRPi, 4xCO20, OWL+USB, HarmonyHub, FRITZ!Box 7590, Echo Dots+Show8, Logi Circle 2, HomeBridge
TIG Stack (Telegraf, InfluxDB, Grafana)

DeeSPe

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

volschin

Intel NUC+Ubuntu 22.04+Docker+FHEM6
HomeMatic: HM-MOD-RPI-PCB+HM-USB-CFG2+hmland+diverse, HUE: Hue-Bridge, RaspBee+deCONZ+diverse
Amzn Dash-Buttons, Siro Rollos
4xRPi, 4xCO20, OWL+USB, HarmonyHub, FRITZ!Box 7590, Echo Dots+Show8, Logi Circle 2, HomeBridge
TIG Stack (Telegraf, InfluxDB, Grafana)

DeeSPe

Zitat von: volschin am 03 Februar 2017, 13:12:39
Danke, man muss nur im richtigen Device schauen.  :-[

Macht aber auch nur da Sinn wenn man mal genau drüber nachdenkt. ;)

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

l2r

hallo Julian,

ich habe vorhin versucht mit das Attribut wakeupOffset in meinen WakeupTimern zu ändern. Das ist ja ein Slider
Wenn ich den gewünschten Wert eingestellt habe und auf attr klicke, dann wird anstatt des eingestellten Wertes der String WakeupOffset bei dem Attribut eingetragen.
Kann das sonst noch jemand bestätigen?

über die Kommandozeile habe ich es dann manuell eingetragen.

Bei mir läuft FHEM 5.8

Gruß Michael
Wissen ist Macht.
Ich weiß nix.
Macht nix.

Loredo

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

Loredo

Ich habe gerade ein kleines Update eingecheckt. Damit spielt die Reihenfolge keine Rolle mehr, in der RESIDENT/ROOMMATE/GUEST Devices definiert werden.
Es sollte dabei eigentlich keine Verhaltensänderung auftreten. Falls doch, bitte hier melden.
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

Loredo

Ich habe gleich noch einen weiteren Patch hinterher geschoben:


1. Das globale Attribut "language" wird jetzt berücksichtigt und neu angelegte Devices werden automatisch in deutscher Anzeigesprache vorkonfiguriert, wenn die Sprache entsprechend gesetzt ist
2. Mittels neuem Attribut r*_lang lässt sich die globale Spracheinstellung übersteuern und zwischen deutscher und englischer Anzeigesprache umschalten
3. Das Attribut "disable" wird unterstützt
4. Bei Verwendung der Attribute r*_autoGoneAfter oder r_noDuration wird der interne Timer jetzt gestoppt
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

justme1968

hallo loredo,

könntest du bitte für RESIDENTS die gleichen durTimer.* readings einbauen wie für ROOMMATE?

ich bin gerade dabei in der willkommens nachricht beim tür öffnen mit anzusagen ob schon jemand anders zuhause ist. je nach dem wie schnell sich jemand genähert hat kann es aber sein das er schon im wlan eingebaucht ist und selber auf present springt bevor er die tür auf macht. ein einfacher vergleich auf durTimerPresence  < 15 sekunden direkt auf das RESIDENTS  device wäre deutlich einfacher als von hand alle ROOMMATEs durch zu gehen oder irgendwie anders selber zu zählen.

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

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

l2r

hi Loredo,

ich hab eine kleine Frage zu deinem DOIF. Und zwar verwendest du bei manchen msg-Befehlen ein ! hinter dem Empfänger msg push @rgr_Residents! -1 |Anwesenheit| Längere Abwesenheit aller Bewohner registriert. Erweitere Sicherheitsprotokolle wurden etabliert.
Was bewirkt das ! ?

Gruß Michael

Zitat von: Loredo am 14 November 2015, 15:32:17
Ich habe gerade folgendes DOIF bei mir im Test, welches auch zwischen Bewohnern und Gästen unterscheidet:




## ROOMMATE arrives at home
(
my $devType=InternalVal([rgr_Residents:lastActivityByDev],"TYPE","NONE");
my $lastState=ReadingsVal([rgr_Residents:lastActivityByDev],"lastState","none");
[rgr_Residents:?lastActivity] and
$devType eq "ROOMMATE" and
($lastState eq "absent" or $lastState eq "gone")
)
(
(msg push @[rgr_Residents:lastActivityByDev] |Anwesenheit| [rgr_Residents:residentsTotalPresent] Bewohner zuhause: [rgr_Residents:residentsTotalPresentNames])
)


## ROOMMATE leaves home but residents are still present
DOELSEIF
(
my $devType=InternalVal([rgr_Residents:lastActivityByDev],"TYPE","NONE");
[rgr_Residents:?lastActivity] and
[?rgr_Residents:lastActivity] eq "absent" and
[?rgr_Residents:presence] eq "present" and
$devType eq "ROOMMATE"
)
(
(msg push @[rgr_Residents:lastActivityByDev] |Anwesenheit| [rgr_Residents:lastActivityBy] abgemeldet. [rgr_Residents:residentsTotalPresent] Bewohner verblieben: [rgr_Residents:residentsTotalPresentNames])
)


## ROOMMATE is absent for longer period but others are still nearby
DOELSEIF
(
[rgr_Residents:?lastActivity] and
[?rgr_Residents:lastActivity] eq "gone" and
[?rgr_Residents:state] ne "gone"
)
(
(msg push @[rgr_Residents:lastActivityByDev]! -2 |Anwesenheit| Längere Abwesenheit für [rgr_Residents:lastActivityBy] wurde vermerkt.)
)


## all residents are absent for longer period
DOELSEIF
(
[rgr_Residents:?state] and
[?rgr_Residents:state] eq "gone"
)
(
(msg push @rgr_Residents! -1 |Anwesenheit| Längere Abwesenheit aller Bewohner registriert. Erweitere Sicherheitsprotokolle wurden etabliert.)
)


## ROOMMATE leaves home and all residents are absent now
DOELSEIF
(
my $devType=InternalVal([rgr_Residents:lastActivityByDev],"TYPE","NONE");
[rgr_Residents:?lastActivity] and
[?rgr_Residents:lastActivity] eq "absent" and
[?rgr_Residents:state] eq "absent" and
$devType eq "ROOMMATE"
)
(
(msg push @[rgr_Residents:lastActivityByDev] |Anwesenheit| [rgr_Residents:lastActivityBy] abgemeldet. Alle Bewohner sind abwesend, Sicherheitsprotokolle wurden etabliert.)
)


## GUEST control enabled
DOELSEIF
(
my $devType=InternalVal([rgr_Residents:lastActivityByDev],"TYPE","NONE");
my $lastState=ReadingsVal([rgr_Residents:lastActivityByDev],"lastState","none");
[rgr_Residents:?lastActivity] and
(([?rgr_Residents:lastActivity] ne "absent" and [?rgr_Residents:residentsHome] > 1) or ([?rgr_Residents:lastActivity] eq "absent" and [?rgr_Residents:residentsHome] == 0)) and
$devType eq "GUEST" and
$lastState eq "none"
)
(
(msg push @rgr_Residents -1 |Anwesenheit| Steuerung für [rgr_Residents:lastActivityBy] wurde aktiviert)
)


## GUEST control enabled while no resident present (EXCEPTION!)
DOELSEIF
(
my $devType=InternalVal([rgr_Residents:lastActivityByDev],"TYPE","NONE");
my $lastState=ReadingsVal([rgr_Residents:lastActivityByDev],"lastState","none");
[rgr_Residents:?lastActivity] and
[?rgr_Residents:lastActivity] ne "absent" and
[?rgr_Residents:residentsHome] == 1 and
$devType eq "GUEST" and
$lastState eq "none"
)
(
(msg push @rgr_Residents! 2 |Anwesenheit| Steuerung für [rgr_Residents:lastActivityBy] wurde aktiviert, obwohl kein Bewohner zuhause ist!)
)


## GUEST control was disabled
DOELSEIF
(
[rgr_Residents:?lastActivity] and
[?rgr_Residents:lastActivity] eq "none" and
[?rgr_Residents:state] ne "gone"
)
(
(msg push @rgr_Residents -1 |Anwesenheit| Steuerung für [rgr_Residents:lastActivityBy] wurde deaktiviert)
)


## GUEST arrives at home while residents are present
DOELSEIF
(
my $devType=InternalVal([rgr_Residents:lastActivityByDev],"TYPE","NONE");
my $lastState=ReadingsVal([rgr_Residents:lastActivityByDev],"lastState","none");
[rgr_Residents:?lastActivity] and
[?rgr_Residents:residentsHome] > 1 and
$devType eq "GUEST" and
$lastState eq "absent"
)
(
(msg push @rgr_Residents -2 |Anwesenheit| [rgr_Residents:lastActivityBy] ist jetzt zuhause. Anwesende Bewohner: [rgr_Residents:residentsTotalPresentNames])
)


## GUEST arrives at home while he is the only one (EXCEPTION!)
DOELSEIF
(
my $devType=InternalVal([rgr_Residents:lastActivityByDev],"TYPE","NONE");
my $lastState=ReadingsVal([rgr_Residents:lastActivityByDev],"lastState","none");
[rgr_Residents:?lastActivity] and
[?rgr_Residents:residentsHome] == 1 and
$devType eq "GUEST" and
$lastState eq "absent"
)
(
(msg push @rgr_Residents! 2 |Anwesenheit| [rgr_Residents:lastActivityBy] ist jetzt alleine zuhause!)
)


## GUEST leaves home while others are still at home
DOELSEIF
(
my $devType=InternalVal([rgr_Residents:lastActivityByDev],"TYPE","NONE");
[rgr_Residents:?lastActivity] and
[?rgr_Residents:lastActivity] eq "absent" and
[?rgr_Residents:presence] eq "present" and
$devType eq "GUEST"
)
(
(msg push @rgr_Residents -2 |Anwesenheit| [rgr_Residents:lastActivityBy] abgemeldet. [rgr_Residents:residentsTotalPresent] Bewohner verblieben: [rgr_Residents:residentsTotalPresentNames])
)


## GUEST leaves home after all residents
DOELSEIF
(
my $devType=InternalVal([rgr_Residents:lastActivityByDev],"TYPE","NONE");
[rgr_Residents:?lastActivity] and
[?rgr_Residents:lastActivity] eq "absent" and
[?rgr_Residents:presence] eq "absent" and
$devType eq "GUEST"
)
(
(msg push @rgr_Residents! |Anwesenheit| [rgr_Residents:lastActivityBy] abgemeldet. Alle Bewohner sind jetzt abwesend, Sicherheitsprotokolle werden etabliert.)
)

Wissen ist Macht.
Ich weiß nix.
Macht nix.

acw81

Ich habe an dem Attribut rr_presenceDevices meines ROOMATE eine PRESENCE Gerät verknüpft das über Events meines AccessPoints getriggert wird. Leider kommen die Änderungen vom PRESENCE Geräte nicht beim ROOMATE Geräte an. Liegt es daran das ich das PRESENCE über Events aktualisiere?

mumpitzstuff

Zitat von: acw81 am 23 März 2017, 12:27:48
Ich habe an dem Attribut rr_presenceDevices meines ROOMATE eine PRESENCE Gerät verknüpft das über Events meines AccessPoints getriggert wird. Leider kommen die Änderungen vom PRESENCE Geräte nicht beim ROOMATE Geräte an. Liegt es daran das ich das PRESENCE über Events aktualisiere?

Bei mir funktioniert das in die andere Richtung. Ich habe ROOMMATES definiert, die durch Sensoren einen bestimmten Status erhalten (Tags, Bewegung, Strom usw.) und den Gesamtstatus der sich daraus ergibt, finde ich im PRESENCE. Nur wenn alle ROOMMATES auf absent geschaltet sind, dann springt PRESENCE auf absent, ansonsten steht es auf present.

KernSani

Zitat von: mumpitzstuff am 24 März 2017, 15:46:07
Bei mir funktioniert das in die andere Richtung. Ich habe ROOMMATES definiert, die durch Sensoren einen bestimmten Status erhalten (Tags, Bewegung, Strom usw.) und den Gesamtstatus der sich daraus ergibt, finde ich im PRESENCE. Nur wenn alle ROOMMATES auf absent geschaltet sind, dann springt PRESENCE auf absent, ansonsten steht es auf present.
Verwechselst du PRESENCE und RESIDENTS?
RasPi: RFXTRX, HM, zigbee2mqtt, mySensors, JeeLink, miLight, squeezbox, Alexa, Siri, ...

mumpitzstuff