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

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

Vorheriges Thema - Nächstes Thema

blade-of-fire

Ich verstehe nicht, was die ganze Zeit das Problem war, aber als ich eben die Events abgefragt habe, funktionierte es jetzt plötzlich mit beiden Roommates.

Naja, Hauptsache es funktioniert jetzt. Sollte ich noch dahinterkommen, was schlussendlich die Ursache war, melde ich mich wieder :)

Danke schonmal :)
VM mit Ubuntu und FHEM-Instanz (Hauptinstanz)
FHEM2FHEM
Raspberry Pi 3 B+ mit Eigenbau-Platine + Relais-Platine + Cul-Stick + FHEMDuino

Jamo

Hallo alle zusammen,

anbei ein Bild was ich gerne machen möchte, vielleicht kann mir jemand einen Schubs in die richtige Richtung geben.

Ich würde gerne beim "rr_Inoma" Device, als 4-tes Feld/Setter die Weckzeit einstellen können, also etwa so, wie auch im angehängten Bild unter "Nachher"

attr rr_Inoma webCmd state:location:mood:nextRun
wobei "nextRun" dann das nextRun vom rr_Inoma_wakeuptimer1 einstellen würde, damit ich alles für rr_Inoma einer Zeile habe, sonst brauche ich für den Wecker im Frontend eine eigene Zeile.

Hast Jemand eine Idee, wie man das einfach machen kann, ohne alles mit einem Dummy umständlich zu verdoppeln?

Danke und Gruss!
Bullseye auf iNUC, Homematic + HMIP(UART/HMUSB), Debmatic, HUEBridge, Zigbee/ConbeeII, FB, Alexa (fhem-lazy), Livetracking, LaCrosse JeeLink, LoRaWan / TTN / Chirpstack

justme1968

schau dir cmdalias und widgetOverride an. oder readingsGroup.
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

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

Jamo

Hallo Justme,
für "cmdalias und widgetOverride" brauche ich aber das attribut "setList", das gibts im rr_Inoma aber nicht.

Dann nur Readingsgroup, oder?
Bullseye auf iNUC, Homematic + HMIP(UART/HMUSB), Debmatic, HUEBridge, Zigbee/ConbeeII, FB, Alexa (fhem-lazy), Livetracking, LaCrosse JeeLink, LoRaWan / TTN / Chirpstack

justme1968

nein. brauchst du nicht. beides hat nichts mit setList zu otun.
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

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

Jamo

Hallo Andre,
Zitatnein. brauchst du nicht. beides hat nichts mit setList zu otun.
Ich habe jetzt folgendes:
attr rr_Inoma webCmd state:location:mood:nextRun
attr rr_Inoma widgetOverride nextRun:OFF,06:00,06:15,06:30,06:45,07:00,07:15,07:30,07:45,08:00

damit siehts schon so aus wie ich es haben möchte (siehe Bild), allerdings kommt dann beim setzten immer
ZitatUnknown argument nextRun, choose one of state:home,gotosleep,asleep,awoken,absent,gone mood:..........  create:wakeuptimer,locationMap

Wie verknüpfe ich das jetzt mit dem wakeuptimer?
Bullseye auf iNUC, Homematic + HMIP(UART/HMUSB), Debmatic, HUEBridge, Zigbee/ConbeeII, FB, Alexa (fhem-lazy), Livetracking, LaCrosse JeeLink, LoRaWan / TTN / Chirpstack

Jamo

#576
Hallo Andre,
danke! Ich habs jetzt gelöst, wie im unten im Bild. Das funktioniert auch.
Aber, nach einem 'refresh' oder 're-load' der fhem website wird das drop-down vom nextRun menu 'leer' (ich weiss nicht wie ich es anders beschreiben soll).
Kann man das ändern, dass das drop-down menue vom nextRun die eingestellte Zeit behält?

attr rr_Inoma webCmd state:location:mood:nextRun
attr rr_Inoma widgetOverride nextRun:OFF,06:00,06:15,06:30,06:45,07:00,07:15,07:30,07:45,08:00

und das cmdaliasInternals:
   ALIAS      set
   CFGFN
   DEF        set rr_Inoma nextRun .* AS {fhem ("set rr_Inoma_wakeuptimer1 nextRun $EVTPART2")}
   NAME       c_rr_Inoma
   NEWCMD     {fhem ("set rr_Inoma_wakeuptimer1 nextRun $EVTPART2")}
   NR         5237
   PARAM      rr_Inoma nextRun .*
   STATE      defined
   TYPE       cmdalias
Attributes:
Bullseye auf iNUC, Homematic + HMIP(UART/HMUSB), Debmatic, HUEBridge, Zigbee/ConbeeII, FB, Alexa (fhem-lazy), Livetracking, LaCrosse JeeLink, LoRaWan / TTN / Chirpstack

ComputerZOO

Moin,
versuch mal das attr readingList auf nextRun zu setzen.

Jamo

Mmmh, das Device rr_Inoma hat kein 'attr readingList'. Oder habe ich das falsch verstanden?
Bullseye auf iNUC, Homematic + HMIP(UART/HMUSB), Debmatic, HUEBridge, Zigbee/ConbeeII, FB, Alexa (fhem-lazy), Livetracking, LaCrosse JeeLink, LoRaWan / TTN / Chirpstack

ComputerZOO


Jamo

#580
So, ist gelöst, wie folgt. Ich habe dem cmdalias noch ein 'setreading rr_Inoma nextRun $EVTPART2' mitgegeben, und dem 'rr_Inoma' ein 'attr userReadings nextRun'. Damit funktionierts!
Mein dank an Andre!!!

attr rr_Inoma userReadings nextRun
attr rr_Inoma webCmd state:location:mood:nextRun
attr rr_Inoma widgetOverride nextRun:OFF,06:00,06:15,06:30,06:45,07:00,07:15,07:30,07:45,08:00

und das cmdaliasInternals:
   ALIAS      set
   CFGFN
   DEF        set rr_Inoma nextRun .* AS {fhem ("set rr_Inoma_wakeuptimer1 nextRun $EVTPART2;setreading rr_Inoma nextRun $EVTPART2")}
   NAME       c_rr_Inoma
   NEWCMD     {fhem ("set rr_Inoma_wakeuptimer1 nextRun $EVTPART2;setreading rr_Inoma nextRun $EVTPART2")}
   NR         5237
   PARAM      rr_Inoma nextRun .*
   STATE      defined
   TYPE       cmdalias
Attributes:
Bullseye auf iNUC, Homematic + HMIP(UART/HMUSB), Debmatic, HUEBridge, Zigbee/ConbeeII, FB, Alexa (fhem-lazy), Livetracking, LaCrosse JeeLink, LoRaWan / TTN / Chirpstack

popy

Hallo.

Danke für das Modul, bin grad am einrichten, aber als Anfänger sehr viele Fragen:

Habe es vor einer Woche nie zusammengebracht dass sich der Status der Roommates ändert.
Nun wieder Zeit, weiter zu experimentieren  ;)
Bei den roommates waren die richtigen Presences hinterlegt: "rr_presenceDevices P_BT_Tobias,P_WIFI_Tobias", diese Presences änderten sich auch, aber nicht der Roommate.
Folgende Fragen habe ich nicht dazu:


  • Muss ich mittels Notify wie in https://wiki.fhem.de/wiki/PRESENCE Beschrieben unter Punkt "Mit Notify und Integration des RESIDENTS-MODUL" das Residents Modul über die Änderungen informieren?
  • Oder sollte das automatisch gehen wenn die rr_presenceDevices zugeordnet sind?
  • Übernimmt das Roommate Modul auch die location automatisch, oder muss das auch mit Notify gemacht werden.
  • Habe jetzt ein "event-on-change-reading state" in den Presences, liege ich Richtig der Annahme dass dies ein Update z.B.: der Location verhindern würde?

Fragen über Fragen :-)

Danke pOpY

Phiolin

#582
Von den unter rr_presenceDevices angegebenen Geräten sollte das Reading "presence" automatisch auf das Roommate Device übernommen werden.
Für den "absent" Status bedeutet das übrigens, dass ALLE angegebenen Geräte "absent" sein müssen, um den Roommate auf "absent" zu setzen. Umgekehrt reicht es für den Status "present" aus, wenn ein Gerät wieder erreichbar ist um den Roommate auch auf "present" zu setzen.
Bezüglich event-on-change-reading, würde ich vermuten, dass du zumindest auch das "presence" Reading dort aufnehmen musst, damit das funktioniert. Bei mir habe ich jeweils state,presence und room im event-on-change-reading bei den Presence Devices.

Die Location des Roommate Devices musst du selber z.B. über ein Notify setzen. Das bringt dir auch entsprechende Flexibilität, z.B. wenn ein Presence Device eine höhere Priorität bei der Location haben soll als ein anderes.
Ich hatte bei mir z.B. die Apple Watch entsprechend höher priorisiert als das iPhone, da es wahrscheinlicher ist, dass ich mit der Uhr durch das Haus laufe, als mit dem Handy. Lasse ich also mein Handy irgendwo liegen, wird meine Location primär basierend auf der Location der Uhr gesetzt. Ist die Uhr nicht erreichbar, wird die Location vom Handy genommen. Hier musst du also etwas für dich passendes selber programmieren.

popy

#583
Zitat von: Phiolin am 31 Oktober 2017, 16:42:35
Von den unter rr_presenceDevices angegebenen Geräten sollte das Reading "presence" automatisch auf das Roommate Device übernommen werden.
Für den "absent" Status bedeutet das übrigens, dass ALLE angegebenen Geräte "absent" sein müssen, um den Roommate auf "absent" zu setzen. Umgekehrt reicht es für den Status "present" aus, wenn ein Gerät wieder erreichbar ist um den Roommate auch auf "present" zu setzen.
Bezüglich event-on-change-reading, würde ich vermuten, dass du zumindest auch das "presence" Reading dort aufnehmen musst, damit das funktioniert. Bei mir habe ich jeweils state,presence und room im event-on-change-reading bei den Presence Devices.

Die Location des Roommate Devices musst du selber z.B. über ein Notify setzen. Das bringt dir auch entsprechende Flexibilität, z.B. wenn ein Presence Device eine höhere Priorität bei der Location haben soll als ein anderes.
Ich hatte bei mir z.B. die Apple Watch entsprechend höher priorisiert als das iPhone, da es wahrscheinlicher ist, dass ich mit der Uhr durch das Haus laufe, als mit dem Handy. Lasse ich also mein Handy irgendwo liegen, wird meine Location primär basierend auf der Location der Uhr gesetzt. Ist die Uhr nicht erreichbar, wird die Location vom Handy genommen. Hier musst du also etwas für dich passendes selber programmieren.

Danke für deine Hilfe, nun wird absent und home/present der ROOMMATES von je 2x PRESENCES übertragen. Der Clou war dass ich zuerst mal selbst jeden ROOMMATE auf absent setzten musste, ansonsten wurde der Status nicht übernommen. Durch das richtige setzen von event-on-change-reading auf "state, presence, room"veringere ich nun auch die umherschirrenden events, Danke Vielmals für Deine Hilfe.

Wie du schon sagtest wird der room nicht automatisch auf die location übernommen und muss ich noch selbst per notify machen.
Könntest du mir Bitte ein Beispiel Notify von deinem System posten?

Ziel wäre es mit einem notify jeweils den rr_ zu setzen.
Meine Bluetooth presences wo ich den room nun mitbekomme heissen alle "P_BT_<NAME>" und meine ROOMMATES "rr_<NAME>".
Bin leider nicht so fit mit Perl und RegEx, vermute das geht irgendwie?

Danke Vielmals
pOpY

Phiolin

Ich verwende wie gesagt hauptsächlich DOIF, deshalb kann ich spontan auch nur ein DOIF Beispiel geben.
Als Presence Device wird hier ein "MyName_iPhone" angenommen, dass zum Bewohner rr_MyName gehört.

Was das macht:
Wenn das Presence Device "present" ist und ein Event generiert, bei dem sich das "room" Reading ändert, wird der neue Wert des "room" Readings als Location für den Bewohner gesetzt. Damit nicht unnötig Daten geändert werden, wird das Location Reading zudem auch nur dann gesetzt, wenn sich der neue Raum vom vorherigen Raum unterscheidet.

(
  [MyName_iPhone:presence] eq "present"
  and ["^MyName_iPhone$:room"]
) (
  set rr_MyName:FILTER=location!=[MyName_iPhone:room] location [MyName_iPhone:room]
) DOELSEIF (
  [MyName_iPhone:room] ne ""
  and [MyName_iPhone:presence] eq "present"
) (
  set rr_MyName:FILTER=location!=[MyName_iPhone:room] location [MyName_iPhone:room]
)


Und die Attribute vom DOIF:
Attributes:
   checkReadingEvent 1
   checkall   event
   do         always