HOMEMODE: cmd bei resident absent wird nicht ausgeführt

Begonnen von trinitywhm, 15 Februar 2018, 08:23:12

Vorheriges Thema - Nächstes Thema

DeeSPe

Ich denke ich habe eine gute Lösung gefunden.
Werde noch etwas testen und die Version hier heute Abend zur Verfügung stellen.

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

DeeSPe

#16
Bitte teste die angehängte Version 1.4.3 ob damit Deine Probleme behoben sind.
In meinem Testsystem läuft nun alles rund, egal ob bei RESIDENTS/ROOMMATE/GUEST "eventMap" gesetzt ist oder nicht.

EDIT: Es ist irgendwie noch verzwickter! Muss doch noch weiter testen.
Irgendwas ist komisch. "state" scheint von "eventMap" nicht betroffen zu sein.

Nebenbei habe ich noch ein kleines Problem gefixt, welches auftrat wenn man nur ein einzelnes Device als "HomeSensorsPowerEnergy" hinzufügt.

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

trinitywhm

Ich hatte zudem auch das Attribut widgetOverride gesetzt:
state:zuhause,bettfertig,schläft,aufgestanden,abwesend,verreist mood:ruhig,schläfrig

Ist das von Belangen?

Derzeit habe ich eventMap und widgetOverride bei meinen ROOMMATEs entfernt und es funktioniert.

DeeSPe

#18
Hmm, es ist eigenartig.
Alle Events außer "state" sind von "eventMap" betroffen.
Ich muss mal ergründen ob das generell so ist, oder nur eine Eigenart von RESIDENTS/ROOMMATE/GUEST.

Wie auch immer es sich verhält, ich habe das nun noch tiefer ergründet und einen "Workaround" eingebaut.
Bitte teste mal die angehängte Version 1.4.3.
Bitte achte auf die "presence" Wechsel und prüfe auch ob alle anderen "state" (bettfertig, schläft, ...) weiterhin von HOMEMODE erkannt werden.

Gruß
Dan

EDIT: Dateianhang entfernt.
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

trinitywhm

Bisher sieht es gut aus. Ich habe mit meiner Testperson mehrfach presence-Wechsel getestet und auch die anderen states werden weiterhin erkannt von Homemode.
Vielen Dank für deine Mühe und die Behebung dieses Problems. Finde das Modul echt klasse und finde es super dass es nun auch an der Stelle wie gewünscht funktioniert.
Danke und Gruß
Vera

DeeSPe

Freut mich dass Dir das Modul gefällt und es Dank Deine Mithilfe wieder ein klein Wenig besser geworden ist.

Soeben habe ich die Version 1.4.3 in SVN eingecheckt.

Ich denke damit ist dieses Thema hier beendet und Du kannst es auf "[gelöst]" setzen.
Danke für das Aufdecken des Problems.

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

trinitywhm

Hallo Dan,

sorry dass ich das Thema nochmal aufgreife. Ich habe in HOMEMODE das Attribut HomeAutoArrival gesetzt (Wert 10). Seit der letzten Änderung funktioniert nun der CMD für HomeCMDcontactDoormainClosed nicht mehr korrekt. Ich habe da deinen Beispielcode aus dem Wiki genommen und ein wenig abgewandelt. Aber dort wird auf ARRIVERS geprüft und das scheint nicht zu funktionieren. Im Roommate wird nämlich auch tatsächlich die location nicht auf arrival gesetzt beim ankommen einer Person.

Jetzt hatte ich mich an das letzte Problem erinnert und eventMap und widgetOverride entfernt. Und siehe da, es funktioniert wieder. Grundsätzlich hat das vor deiner letzten Änderung korrekt funktioniert, also scheint mit der letzten Anpassung was reingekommen zu sein, damit das mit dem  automatischen arrival nicht mehr funktioniert.

HomeCMDcontactDoormainClosed
{
# Wenn es Ankommende gibt
  if ("%ARRIVERS%")
  {
    # Zusammenstellen der Begrüßung
    my $msg = "Gute";

# "n" anhängen wenn Tageszeit nicht Nacht ist
    $msg .= "n" if ("%DAYTIME%" ne "Nacht");

    # Leerzeichen einfügen
    $msg .= " ";

    # den Feiertag der Tageszeit voranstellen wenn ein Feiertag im Kalender BW ist
    $msg .= "%bw%-" if ("%bw%");

    # Tageszeit einfügen
    $msg .= "%DAYTIME% " if ("%DAYTIME%" eq "Morgen");
$msg .= "Tag " if ("%DAYTIME%" eq "Vormittag" || "%DAYTIME%" eq "Mittagsruhe" || "%DAYTIME%" eq "Nachmittag");
$msg .= "Abend " if ("%DAYTIME%" =~ /bend/);

    # bei ROOMMATE "zu Hause" in Begrüßung einfügen
    $msg .= "zu Hause " if ("%RESIDENT%" =~ /^rr_/);

    # Ankommende einfügen
    $msg .= "%ARRIVERS%";

    # Begrüßung am Sonos im Essbereich ausgeben bei Abwesenheit über 20 min
    fhem ("msg audio $msg!") if (%DURABSENCELAST% > 20);
fhem ("msg audio Wir haben heute " . "%de_social%") if ("%de_social%");
  }
}


Brauchst du noch was anderes zum nachvollziehen???

DeeSPe

Schaue ich mir die Tage an und stelle Dir dann hier wieder eine Version zum Testen bereit.

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

DeeSPe

#23
Sorry, es hat krankheitsbedingt leider etwas länger gedauert.

Bitte teste die angehängte Version 1.4.5.

Habe heute damit reichlich getestet und keine Probleme mehr feststellen können.

Gruß
Dan

EDIT: Dateianhang entfernt.
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

binford6000

Hallo Dan,
hab mit der 1.4.5 auch keine Probleme festgestellt.
VG Sebastian

trinitywhm

Zitat von: DeeSPe am 17 April 2018, 18:47:39
Sorry, es hat krankheitsbedingt leider etwas länger gedauert.

Bitte teste die angehängte Version 1.4.5.

Habe heute damit reichlich getestet und keine Probleme mehr feststellen können.

Gruß
Dan
Hi Dan,
sorry konnte auch nicht sofort testen. Aber jep, ich kann bestätigen es funktioniert wieder mit der angehängten Version. Hab bei den residents wieder eventMap und widgetOverrride reingeschrieben (wie vorher) und die CMD in Homemode funktionieren trotzdem noch.
Danke

DeeSPe

Danke für Eure positiven Rückmeldungen.
Habe die v1.4.5 soeben in SVN eingecheckt.

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