[Gelöst] Homemode: Begrüßung?

Begonnen von Stephan1965, 18 April 2018, 20:41:14

Vorheriges Thema - Nächstes Thema

Stephan1965

Hallo,
ich benutze Homemode und richte es immer mehr ein. Jetzt habe ich folgendes Problem:
Basierend auf dem Wiki-Beispiel zur Begrüßung, wenn HomeCMDcontactDoormainClosed ausgelöst wird, wollte ich das weitgehend übernehmen. Da ich (noch) keine Audioausgabegerät habe, wollt ich der/dem Ankommenenden eine push-Nachricht schicken:

{
  # 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 NRW ist
    $msg .= "%NRW%-" if ("%NRW%");

    # Tageszeit einfügen
    $msg .= "%DAYTIME% ";

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

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

    # Begrüßung per Pushnachricht bei Abwesenheit über 50 min
     fhem "msg push \@lastActivityByResident $msg" if (%DURABSENCELAST% > 50);
  }
}


Aber das funktioniert so leider nicht. Weiß jemand, woran es hakt und kann mir helfen?

Viele Grüße

Stephan


DeeSPe

Ich würde denken dass "@lastActivityByResident" kein gültiger Empfänger ist.

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

Stephan1965

Hallo,
ich möchte gerne die Meldung an den nach Hause Kommenden schicken. Ich hatte mir gedacht, dass das dann der lastActivityByResident aus dem Resident-Modul wäre, da bei diesem ja sich zuletzt was geändert hat. Kann mir jemand helfen und einen besseren Ansatz nennen?

Wenn ich %ARRIVERS% richtig verstanden habe, sind dort bei Ankunft die Aliasnamen der Residents enthalten. Und wenn mehrere gleichzeitig ankommen, dann sind dort auch mehrere Namen drin, oder? Wenn dort nur einer ist, könnte ich doch aus dem Namen per Stringaddition (?) dann das "rr_" voranstellen. Damit könnte ich vielleicht einen gültigen Empfänger bekommenr? Aber wenn dann wieder mehrere kommen, funktioniert das auch wieder nicht.

Mal eine Anfängerfrage: Kann ich mir den Inhalt der Variablen (z. B.%ARRIVERS%) irgendwie ansehen?

Viele Grüße

Stephan

Stephan1965

Hallo,
ich versuche es jetzt mit %RESIDENT%. Das hatte ich bis jetzt übersehen.

Gruß

Stephan

DeeSPe

In "HomeCMDpresence-present-resident" kannst Du jedem einzeln mittels %RESIDENT% eine Nachricht schicken sofern in "fhemMsgPushGw" der Kontakt hinterlegt ist.

Gruß
Dan

P.S. Siehe Wiki dazu.
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

Stephan1965

Hallo Dan,
ich habe den Begrüßungsbefehl jetzt für jeden einzelnen Resident angelegt mit dem Homemode-Attribut, z. B.  für "HomeCMDpresence-present-rr_Stephan". Für die einzelnen Residents, z. B. rr_Stephan habe ich das dortige Attribut "msgContactPush" entsprechend eingerichtet. Das beobachte ich jetzt weiter.

Danke für den Hinweis,

Stephan