Neuer FHEM Befehl "msg" für Benachrichtigungen (Push,Mail,Audio,Light,Screen)

Begonnen von Loredo, 13 August 2015, 19:31:07

Vorheriges Thema - Nächstes Thema

l2r

deine Argumentation kann ich gut verstehen und ich muss gestehen mir ist es mit msg am Anfang auch so ähnlich gegangen.

Mir ging es so, dass ich die volle Mächtigkeit dieses Befehls erst erkannt habe, als ich auch das RESIDENTS- bzw. ROOMMATE-Modul integriert haben und auch die locations-Readings der ROOMMATES nutze. Und auch dann hat es ein bisschen gedauert, bis ich mich dort reingefuchst und ich hab den ersten Post bestimmt schon 15 mal gelesen...

Trotzdem kann ich Loredo auch verstehen und wenn man sich den ersten Post mal durchliest und damit meine ich durchlesen und jeden einzelnen Schritt versucht nachzuvollziehen und nicht überfliegt, so wie man das heute sehr oft macht, dann macht es auch klick. Es ist alles gesagt, was man zur erfolgreichen Einbindung benötigt.
Ist halt ein Modul wo man n bisschen nachdenken muss und was man mal nicht so eben "nebenbei" einbinden kann.

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

DeeSPe

Ich gebe zu dass wirklich eigentlich alles im ersten Beitrag gesagt ist. Wenn man sich erst einmal komplett durch das Modul und alle Seiten hier durchgekämpft hat, macht auch alles Sinn!!!!
Leider fehlen für einen halbwegs schnellen Einstieg die entsprechenden Beispiele die man sich dann über alle Seiten dieses Beitrags mühsam erarbeiten muss. Ich habe z.B. mind. eine Stunde gebraucht um überhaupt die erste Push Nachricht verschicken zu können. Erst nach viel Lesen und "Trial & Error" habe ich begriffen dass man TelegramBot mit "<NameTelegramBot>:@<TelegramId>" adressieren muss.
Dann wollte ich natürlich auch noch den Sinn aller übrigen Attribute begreifen und das hat mich dann bis zum Ende dieses Beitrag gebracht.

Wir sollten wirklich zusammen einen Wiki Eintrag mit entsprechenden Beispielen dafür anlegen!!!

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

so ich hab mich dann mal ran gesetzt und den Ersten Post ins Wiki übertragen und am Ende ein einfaches Beispiel hinzugefügt. Weiter folgen in den nächsten Tagen.

http://www.fhemwiki.de/wiki/Msg

Diskussion zum WIKI-Eintrag hier:
https://forum.fhem.de/index.php/topic,61033.0.html

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

CoolTux

Vielen Dank Michael. So stellt man es sich vor. Klotzen statt Kleckern. Da vergibt man gerne einen Daumen Hoch.
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

Loredo

Ich sehe in dem Wiki Eintrag jetzt keinen Vorteil (derzeit Copy&Paste meiner Beschreibung). Aber okay, wem es hilft und solange ihn jemand anderes pflegt. Ich bin da kein Fan von Dopplungen.

Der Roommate Hinweis ist nur halb richtig, denn die Attribute kann man _jedem_ FHEM Device zuweisen.


Gruß

Julian
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

l2r

Da hast du schon Recht. ich bin auch kein Fan von Dopplungen. Ich habe diesen Wiki-Eintrag in erster Linie angelegt um eine Zentrale Anlaufstelle für Beispiele zu schaffen und diese stetig auszubauen. Wurde hier im Thread ja auch schon mehrfach angesprochen.

Hätte ich deine Ausführungen aus dem ersten Post weggelassen, wäre es für mich nicht richtig Vollständig gewesen und hätte bei unerfahrenen User vllt. nur noch mehr Fragen aufgeworfen.

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

Viktor

Hallo Julian,

ich glaube es hat sich ein kleiner Fehler in der Schema DB für Pushover eingeschlichen, der es verhindert die Nachricht an ein bestimmtes Gerät zu schicken.
Derzeit steht im Schema das:
set %DEVICE% msg '%TITLE%' '%MSG%' '%RECIPIENT%:%TERMINAL%' %PRIORITY% '%Pushover_SOUND%' %RETRY% %EXPIRE% %URLTITLE% %ACTION%

Das ":%TERMINAL%" hinter Recipient ist wohl zu viel (vorher war es ja nicht drin)?! Dadurch wird hinter dem Gerätenamen immer noch ein ":" angehängt, da es so eins nicht gibt geht die Nachricht einfach an alle :)
Das Log sagt dazu:
msg Handy: push route command (fhem): set PO msg 'Test' 'Test Nachricht' 'Galaxy-S6:' 0

Da ich heute mal ausprobieren wollte wie man eine Nachricht gezielt an ein Gerät schickt und es aber das nie gemacht hat, hat mich das den ganzen Nachmittag gekostet  ::)

PS: Danke für das tolle Modul/Befehl! So was in der Art wollte ich mir auch schon selbst schreiben (natürlich nicht so umfangreich  ;D ), wird definitiv gebraucht. Aber ich muss den anderen Recht geben, ich hätte auch ein paar Beispiele gebraucht um den Einstig besser hinzubekommen. Ich hab den Thread 30 mal rauf und runtergelesen und mir waren die zusammenhänge wohl nicht so klar wie dir (als Entwickler)  ;D

Loredo

Zitat von: Viktor am 20 November 2016, 19:40:06
ich glaube es hat sich ein kleiner Fehler in der Schema DB für Pushover eingeschlichen


Das ist schon richtig so, das Pushover Modul habe ich entsprechend erweitert gehabt. Es ist seit jeher Standard beim Pushover Modul, dass Nachrichten an alle Devices gehen, wenn man kein spezifisches Device angibt. Das macht die API schon von ganz alleine. Der Doppelpunkt kann stehen bleiben, denn das Pushover Modul berücksichtigt das entsprechend.


Wer über den msg-Befehl an ein bestimmtes Pushover-Gerät schicken möchte, der muss sich dabei (wie überall) an die richtige Notation des Pushover Moduls halten, wenn er das im msgContactPush Attribut hinterlegen möchte. Konkret kann man nicht einfach den Pushover FHEM-Gerätenamen gefolgt vom Endgerät (iPhone o.ä.) angeben; es fehlt die Angabe des Pushover Users selbst. Richtig lauten muss es also:



MeinZentralesFHEMPushoverDevice:u2USERTOKEN:MeinPushoverGeraeteName



%RECIPIENT% wird dabei dann durch u2USERTOKEN ersetzt und %TERMINAL% durch MeinPushoverGeraeteName. Das entspricht der erwarteten Pushover Notation und hat mit dem msg-Befehl wenig zu tun. Es ist die Pushover Funktion nicht für jeden Adressaten ein separates Device in FHEM anlegen zu müssen und den Usertoken stattdessen in den msgContactPush Attributen zu pflegen.




Edit:
Ich habe im Pushover Device auch noch einen Fix vorgenommen, damit es dort mit dem Doppelpunkt klarkommt. Man kann dann auch ohne die Angabe eines User-Token ein Device adressieren, wenn man den Usertoken aus dem Pushover-Device verwenden möchte.
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

Viktor

Alles klar, dann wollte ich mir das zu einfach machen  ;D
Danke für den Fix, so wollte ich das gleich verwenden, da ich nur einen Account habe. (dafür hatte ich mir die cmd auf das alte Format, also ohne TERMINAL, umgeschrieben und es hat auch funktioniert)

l2r

hi,

bei Pushover scheint der jetzt die Priorität nicht mehr richtig zu verwenden:

bei Verwendung von:
msg @rr_Michael -1 |WASCHRAUM| Trockner fertig.
steht das im Log:
2016.11.22 10:11:32 3: msg rr_Michael: ID=XXXX.XXX TYPE=push ROUTE=PushMichael STATUS=OK PRIORITY=-1(Low) TITLE='WASCHRAUM' MSG='Trockner fertig.'
es kommt aber folgende Nachricht mit Priorität 0 an:

Trockner fertig. : -1

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

kumue

Zitat von: l2r am 22 November 2016, 11:19:13
hi,

bei Pushover scheint der jetzt die Priorität nicht mehr richtig zu verwenden:

Kann ich bestätigen seit dem gestrigen Update des Moduls.

l2r

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

hartenthaler

Zitat von: Loredo am 13 August 2015, 19:31:07
Follow-Me Funktion
...
Über das Attribut "msgLocationDevs" können Devices mit Komma getrennt angegeben werden, welche dann für je einen Raum stehen und welche dann dort die msgContact* Attribute hinterlegt haben (Delegationen mittels msgRecipient* funktionieren dort auch).
Am einfachsten ist es also pro Raum ein Dummy-Device anzulegen und dieses dann unter dem globalen Attribut "msgLocationDevs" mit aufzuführen.
...
Beide Devices sind als globales Attribut verlinkt:


attr global msgLocationDevs msgRoom_Living,msgRoom_Bedroom


Was ich nicht verstehe: warum ist msgLocationDevs ein Attribut von global und nicht von globalMsg? Das wäre für mich naheliegender. Um es als Attribut von global anzulegen, muss ich zuvor auch noch das global userattr msgLocationDevs anlegen. Absicht oder Fehler in der Dokumentation?
fhem 5.8 auf RaspberryPi 3 mit HMLAN und CCU2, ZWave, JeeLink, FHZ1000 für FS20, HMS, Fritz!Box, Fritz!DECT200, Harmony, Sonos, hue, netatmo, SSCam, Wetter- und Verkehrsmodule, Chat-Bot mit RiveScript/Telegram, IFTTT, pushover, ...

l2r

Fehler in der Doku. Ist ein Attribut von globalMsg.


Gesendet von iPhone mit Tapatalk
Wissen ist Macht.
Ich weiß nix.
Macht nix.

Loredo

Zitat von: hartenthaler am 23 November 2016, 18:24:30
Was ich nicht verstehe: warum ist msgLocationDevs ein Attribut von global und nicht von globalMsg? Das wäre für mich naheliegender. Um es als Attribut von global anzulegen, muss ich zuvor auch noch das global userattr msgLocationDevs anlegen. Absicht oder Fehler in der Dokumentation?


Das liegt daran, dass Rudi eine klare Trennung des normalen global Devices haben wollte und dort keine Attribute von Modulen zulassen möchte.
Deshalb gibt es das Hilfsmodul msgConfig, dessen automatisch angelegtes Device per Default "globalMsg" heißt, jedoch auch komplett anders benannt werden kann, da es pro FHEM Installation immer nur ein Device vom TYPE msgConfig geben kann.
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