Hallo,
ich habe angefangen, das Homemode Modul einzusetzen und habe dabei dann noch msg installiert. Residents läuft schon lange. Ich setzte sowohl Pushover (nur für mich) als auch TelegramBot (für alle) ein für push-Nachrichten.
Wenn der letzte Resident das Haus verläßt, soll er/sie darüber informiert werden, wenn noch ein Fenster offen steht. Dazu habe ich dann den Vorschlag aus dem Wiki (Beispiel für "HomeCMDmodeAlarm-armaway") weitgehend übernommen:
{
if ("%PREVAMODE%" eq "disarm")
{
# Nachricht zusammensetzen
my $msg;
$msg .= "Die Alarmanlage ist nun scharf geschaltet!" if ("%RESIDENT%" ne "rr_Stephan");
my $is = "%ALARMHR%" =~ /und/ ? "sind" : "ist";
$msg .= " " if ($msg);
$msg .= "ACHTUNG: %ALARMHR% $is noch offen!!!" if (%ALARMCT%);
# Nachricht an ROOMMATE/GUEST senden
fhem "msg \@%RESIDENT% $msg" if ($msg);
}
}
Damit das beim letzten Resident, der das Haus verlässt, ankommt, habe ich folgendes in den ROOMMATES definiert
rr_Stephan
msgContactPush Pushnachricht,TelegramBot
msgRecipientPush 123456789
rr_Birgit
msgContactPush TelegramBot
msgRecipientPush 234567891
msgRecipientPush sind jeweils die IDs aus Telegram.
Allerdings kommt die entsprechende Nachricht nicht bei Birgit an (wenn sie als Letzte das Haus verlässt).
Kann mir jemand dabei helfen? Ich komme da leider nicht weiter.
Stephan
Ich habe ein ähnliches Problem denke ich, dachte immer es liegt an mir...
HomeCMDmode-absent
{
if ($hms le "19:00" && $hms ge "07:00") {
fhem "set sz_nachtbetrieb_rasp3:FILTER=STATE!=off off";
}
fhem "msg homemode absent";
}
HomeCMDmode-home
msg homemode status ist nun home
Bei absent funktionierts, bei home nicht. Auch wenn ich im Perl Format wie in absent schreibe.
Hab jetzt bei der Gelgenheit weiter rumprobiert:
HomeCMDmode-gone: funktioniert
HomeCMDmode-gone-resident: funktioniert, je resident eine nachricht
HomeCMDmode-home-resident: funktioniert, je resident eine nachricht
Und dabei entdeckt:
HomeCMDmodeAlarm-disarm: funktioniert, msg kommt an sobald resident home
Ist das so gewollt? Wozu dient dann HomeCMDmode-home ?
Hallo,
ich habe jetzt im Forum für msg gelesen und Folgendes gefunden:
Zitat von: Loredo am 08 November 2015, 11:49:59
Zusätzlich muss natürlich bei jedem ROOMMATE (oder GUEST) Device, welche ein kommen und gehen auslösen können, ein msgContactPush Attribut vorhanden sein, damit das msg-Kommando weiß wie es den ROOMMATE Bewohner erreichen kann. Bei mir ist das einfach ein Verweis auf ein Pushover Device, da am schicksten auf der Apple Watch darstellbar. Es kann aber auch ein Telegram Kontakt sein (dann muss das Attribut neben dem Devicenamen für den TelegramBot auch noch mit Doppelpunkt getrennt den Empfängernamen im Telegram Format enthalten; also z.B. "Telegram:@@USERNAME").
Die Definition der Adresse muss also mit der Variablen msgContactPush erfolgen. Mein Telegrambot heißt in FHEM TelegramBot ;D ,damit ergibt sich dann:
msgContactPush TelegramBot:@234567891
Das werde ich im heute im Tagesverlauf mal testen.
Bei Pushover ist mir das noch nicht klar. Muss ich für jeden User in FHEM ein eigenes Pushover anlegen (also z. B. Pushover_Stephan, Pushover_Birgit, etc)? Jeweils dann mit dem Userkey und dem API-token?
Bislang habe ich für die anderen User auf deren Handys noch kein Pushover eingerichtet. Vielleicht mache ich ja auch bei mir Pushover (wegen smart watch) und bei den anderen Telegram. Mal sehen...
Viele Grüße
Stephan
Hallo,
wenn man im Forum weit genug ließt, kann man die Lösungen auf meine Pushover-Fragen auch finden:
Zitat von: Loredo am 05 Dezember 2015, 15:05:16
Übrigens noch ein Tipp für die Pushover User:
Bei mehreren Pushover Empfängern muss man nicht mehr für jeden Empfänger ein einzelnes Pushover-Device anlegen. Es genügt auch ein Gerät, man kann die Empfänger dann einfach als Sub-Empfänger ansprechen:
msg push @PushoverDevice:uQiRzpo4DXghDmr9QzzfQu27cmVRsG Dies ist eine Nachricht
Wie man sieht kann man einfach den User-Identifier (oder natürlich Group-Identifier) anhängen und adressiert somit einen alternativen Empfänger. Der im define des Device "PushoverDevice" angegebene User ist dann nur noch der Default-Empfänger.
Man kann auch an ein spezielles Endgerät adressieren:
msg push @PushoverDevice:uQiRzpo4DXghDmr9QzzfQu27cmVRsG:iPhone Dies ist eine Nachricht, die nur an das iPhone geschickt wird.
Natürlich kann man das auch in ein msgContactPush Attribut schreiben...
attr myDevice msgContactPush PushoverDevice:uQiRzpo4DXghDmr9QzzfQu27cmVRsG
...und anschließend so wie gewohnt über die Device-Adressierung verschicken:
msg push @myDevice Nachrichtentext
Sehr interessante Erläuterung, die mir sehr geholfen hat! Das würde sich gut im Wiki machen. ::) Edit: Ich habe das in das Wiki eingetragen.
Jetzt versuche ich nur noch folgendes Problem zu lösen:
msg push |Müll| Heute wird [Muelltonnen:now_text] abgeholt
Wie kriege ich es hin, dass der richtige Text aus meinem Abfallkalender für [Muelltonnen:now_text] in die Meldung eingetragen wird?
Gruß
Stephan
Lösung zu meinem Problem:
Zitat von: DeeSPe am 07 Mai 2017, 00:12:30
HomeCMDmode-home funktioniert nur bei "HomeAutoDaytime 0", da bei aktivierten Tageszeiten mode niemals home annimmt. Statt dessen könnte ich HomeCMDpresence-present empfehlen.
Den Text aus dem Abfallkalender bekommt man in etwa so in die Nachricht:
{
my $muelltonnennowtext = ReadingsVal("Muelltonnen","now_text","");
fhem "msg push \|Müll\| Heute wird $muelltonnennowtext abgeholt";
}
(Mit dem Escapen bin ich mir nicht sicher...)
Hallo sku,
danke für deine Hilfe.
Ich habe es jetzt so umgesetzt:
{
my $msg;
$msg = "Morgen wird ";
$msg .= ReadingsVal("Muelltonnen","now_text","");
$msg .= " abgeholt!";
fhem "msg push @[rgr_Residents:lastActivityByDev] |Müll| $msg"
}
Gruß
Stephan
Da sollte doch auch:
msg push @[rgr_Residents:lastActivityByDev] |Müll| Morgen wird [Muelltonnen:now_text] abgeholt!
reichen.
Gruß
Dan