Modul für Pushover

Begonnen von Johannes_B, 07 November 2013, 13:28:08

Vorheriges Thema - Nächstes Thema

Loredo

Da ist in der Tat ein Dreher in der Prüfung gewesen. Habe einen Fix eingecheckt.
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

Amenophis86

Ich bin schon verzweifelt, erst klappt msg nicht und dann auch noch das Pushover Modul nicht :D dann werde ich morgen weiter versuchen.

Noch eine Frage die eigentlich zu msg gehört, aber auch zu Pushover. Wenn ich url bzw Action mittels msg übertragen will, wie genau muss es dann geschrieben werden, wie in der Pushover API, oder alles groß? Hab dazu verschiedene Antworten im Forum gefunden. Leider war es im ersten Post von msg nicht dokumentiert. Die Advanced Optionen hatte ich dort gar nicht gesehen.
Aktuell dabei unser neues Haus mit KNX am einrichten. Im nächsten Schritt dann KNX mit FHEM verbinden. Allein zwei Dinge sind dabei selten: Zeit und Geld...

Loredo

Zitat von: Amenophis86 am 02 April 2017, 22:18:13
Noch eine Frage die eigentlich zu msg gehört, aber auch zu Pushover. Wenn ich url bzw Action mittels msg übertragen will, wie genau muss es dann geschrieben werden, wie in der Pushover API, oder alles groß? Hab dazu verschiedene Antworten im Forum gefunden. Leider war es im ersten Post von msg nicht dokumentiert. Die Advanced Optionen hatte ich dort gar nicht gesehen.


Die "Advanced Options" (inzwischen heißen sie "User Parameter") sind experimentell und sollen getestet werden, sie sind bisher noch nicht offizieller Bestandteil.
Bisher aus gutem Grund, denn:


Der msg-Befehl kann seit ein paar Tagen auch die neue parseParams Notation von key=value für erweiterte Optionen wie url_title=Titel und reicht diese dann direkt an nachgelagerte Module wie Pushover durch. Man kann dann direkt alle Befehle so übergeben, wie es das Zielmodul verlangt. Wenn man mehrere Module und Nachrichtentypen bei sich verwendet, kann es dabei aber zu Überlagerungen kommen, wenn Module die selben Parameter haben, diese aber eine unterschiedliche Bedeutung haben. Deshalb kann man den Modulnamen gefolgt von einem Unterstrich als Präfix davor schreiben. Dieses Präfix wird dann entfernt, wenn die Nachricht an das passende Modul übergeben wird. Aus url_title=Titel wird dann also Pushover_url_title=Titel.


Die früheren "Advanced Options" über den Text mittels des JSON am Ende werden noch zur Kompatibilität unterstützt, werden aber nicht mehr empfohlen. Nach einer Übergangszeit werde ich dann wohl auch die Platzhalter wie %Pushover_SOUND% aus dem Standard Schema entfernen, denn durch die Möglichkeit die Parameter direkt durchzureichen braucht es diesen Umweg nicht mehr länger.
Für Module, die parseParams nicht verwenden, bleibt diese Möglichkeit aber grundsätzlich erhalten. Man kann diese Platzhalter auch über die User Parameter ansprechen.
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

Amenophis86

Zum einen hab ich es gerade getestet, das Update hat geholfen.

Zum zweiten vielen Dank für die Erklärung. Noch eine Frage zu Action bei Pushover. Ich habe bei mir einen Revers Proxy mit https im Einsatz. Weiterhin kann aus dem Internet nur ein eine FHEMWEB zugreifen. Aktuell hat diese nur Zugriff auf das device Test und den Befehl set. Wenn ich jetzt mittels action='set Test off' sende, dann passiert nichts. Gebe ich jedoch meine komplette dyndns URL inkl ?cmd=set%20Test%20off dann geht es. Wo ist der Unterschied bzw was genau passiert bei reiner action=TuEtwas. Wie kommt da der Befehl bei FHEM an?
Aktuell dabei unser neues Haus mit KNX am einrichten. Im nächsten Schritt dann KNX mit FHEM verbinden. Allein zwei Dinge sind dabei selten: Zeit und Geld...

Loredo

FHEM Befehle können nur direkt verwendet werden, wenn der Callback richtig konfiguriert wurde.
Der Befehl wird in FHEM gespeichert, die Pushover App bekommt nur einen Link mit einer ID auf den Befehl. Dadurch wird der interne FHEM Befehl nach außen hin nicht bekannt.


Es macht Sinn das Verbose-Level höher zu setzen um zu sehen, welche Details ein Modul dann über sein Verhalten Preis gibt.
All meine Module sind dafür ausgelegt, dass man sie entsprechend debuggen und verstehen kann, was sie tun.
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

Amenophis86

Zitat von: Loredo am 03 April 2017, 23:24:56
FHEM Befehle können nur direkt verwendet werden, wenn der Callback richtig konfiguriert wurde.

sollte eigentlich sein, werde ich aber nochmal nachsehen.

Zitat
Der Befehl wird in FHEM gespeichert, die Pushover App bekommt nur einen Link mit einer ID auf den Befehl. Dadurch wird der interne FHEM Befehl nach außen hin nicht bekannt.
Ah, alles klar. danke

Zitat
Es macht Sinn das Verbose-Level höher zu setzen um zu sehen, welche Details ein Modul dann über sein Verhalten Preis gibt.
All meine Module sind dafür ausgelegt, dass man sie entsprechend debuggen und verstehen kann, was sie tun.
da bin ich dran und werde heute Abend hoffentlich weiter kommen, wenn ich wieder Zeit finde.

Und nochmals danke, dass du so viel Zeit und Geduld für mich opferst :)
Aktuell dabei unser neues Haus mit KNX am einrichten. Im nächsten Schritt dann KNX mit FHEM verbinden. Allein zwei Dinge sind dabei selten: Zeit und Geld...

Amenophis86

ich habe den Fehler gefunden. "action" muss bei msg zwingend mit "Pushover_action" benannt werden. Es kam sonst anstelle von "set Test on" nur "set " als Befehl an. Sowohl, wenn es mit "" eingeschlossen wurde, als auch mit ''. Warum kann ich nicht sagen, aber nach langem Testen habe ich es mir so erklären können. Soll heißen

msg @rr_Device action="set Test on" url_title="Klick" title="FHEM" expire=3600 retry=0 Klick mich funktioniert nicht richtig. Es kommt als Befehl nur "set " an. Aber
msg @rr_Device Pushover_action="set Test on" url_title="Klick" title="FHEM" expire=3600 retry=0 Klick mich funktioniert.
Aktuell dabei unser neues Haus mit KNX am einrichten. Im nächsten Schritt dann KNX mit FHEM verbinden. Allein zwei Dinge sind dabei selten: Zeit und Geld...

Thyraz

Ich hab mein Problem mit der Apple Watch gelöst.  8)

Hab heute gesehen, dass man sich über die Pushover Homepage Testnachrichten schicken kann.
Dort kann man auch auswählen, ob über "Pushover (Default)" oder die angelegte App für Fhem.

Immer wenn ich Fhem gewählt hab, kam die Nachricht direkt auf dem iPhone an und nicht auf der Watch.
Bei Auswahl von "Pushover (Default)" hat hingegen die Watch vibriert.

Hab dann mal den Namen meiner Pushover App auf "Pushover" geändert und mein Custom Icon gelöscht.
Seitdem geht es problemlos mit den Notifications direkt auf die Watch.

Keine Ahnung was von beidem die Lösung war, oder beides zusammen.
Fhem und MariaDB auf NUC6i5SYH in Proxmox Container (Ubuntu)
Zwave, Conbee II, Hue, Harmony, Solo4k, LaMetric, Echo, Sonos, Roborock S5, Nuki, Prusa Mini, Doorbird, ...

Amenophis86

Ich habe folgendes Problem. Ich lasse meine Batterie Stati überwachen und ein Pushnachricht (Pushover) soll mich informieren, wenn ein neuer Status gemeldet wird. Manchmal kommt die Nachricht an, manchmal kommt sie nicht an und Pushover setzt sich auf disconnected.

Folgende Definitionen liegen vor:

defmod ZE.Battery_Check notify .*:[Bb]attery:.* {
if($EVENT !~ m/ok/ and $NAME ne "WandTablet") { fhem("msg \@rr_Etienne title='Batterie Warnung' Folgende Batterie ist fast leer: $NAME") }
}


Folgender Fehler wird ausgegeben, obwohl die Nachricht richtig ankommt. Der Fehler erscheint auch NUR auf der Pushover Detail ansicht des Moduls, sonst nirgendwo. Diese hatte ich beim Senden immer offen. :
jquery.min.js line 2:
Uncaught Error: Syntax error, unrecognized expression: [informId='Pushover-msg title='' device='HA_Etienne:' priority=0 url_title="" message='Folgende Batterie ist fast leer-ts']


Im Log Selbst wird kein Fehler ausgegeben. Ausgelöst habe ich das ganze mittels setreading Test Battery low
Ich dachte erst, dass es daran liegt, das ich title mit '' gesetzt habe, aber auch, wenn ich es mit \"\" setze kommt der Fehler. Die SuFu hat mich leider nicht weiter gebracht. Daher stelle ich mal hier die Frage.

Es geht sogar soweit, dass Pushover plötzlich disconnected ist und ich es neu initialisieren muss.

Hier mal ein verbose 5 zur Pushover Nachricht vom Pushover Modul:

2017.04.12 11:15:07 5: Pushover Pushover: Received HttpUtils callback:

PARAM:
$VAR1 = {
          'httpheader' => 'HTTP/1.1 200 OK
Date: Wed, 12 Apr 2017 09:15:05 GMT
Content-Type: application/json; charset=utf-8
Transfer-Encoding: chunked
Connection: close
X-Frame-Options: SAMEORIGIN
X-XSS-Protection: 1; mode=block
X-Content-Type-Options: nosniff
Access-Control-Allow-Origin: *
Access-Control-Allow-Methods: POST, OPTIONS
Access-Control-Allow-Headers: X-Requested-With, X-Prototype-Version, Origin, Accept, Content-Type, X-CSRF-Token, X-Pushover-App
Access-Control-Max-Age: 1728000
X-Limit-App-Limit: 7500
X-Limit-App-Remaining: 7205
X-Limit-App-Reset: 1493614800
ETag: W/"b1ff591b6a39c8bf04df8ec1cce47023"
Cache-Control: max-age=0, private, must-revalidate
X-Request-Id: 24d9a845-3718-4a4c-b0ce-6cd6c96aae7d
X-Runtime: 0.026469
X-Frame-Options: DENY
Strict-Transport-Security: max-age=31536000',
          'cmd' => 'title=Batterie%20Warnung&message=Folgende%20Batterie%20ist%20fast%20leer%3a%20Test&device=HA_Etienne&token=ag4pvZivE2eDdDP8zhQn6GjozTi8Zq&user=u3BN2ABSXtzZX72V5eVC4rDpwz4maf',
          'code' => '200',
          'service' => 'messages.json',
          'NAME' => '',
          'conn' => undef,
          'loglevel' => 4,
          'path' => '/1/messages.json',
          'hu_filecount' => 1,
          'protocol' => 'https',
          'hu_blocking' => 0,
          'header' => 'Accept: application/json;charset=UTF-8
User-Agent: FHEM-Pushover/1.0.0
Agent: FHEM-Pushover/1.0.0
Accept-Charset: UTF-8',
          'displayurl' => 'https://api.pushover.net:443/1/messages.json',
          'host' => 'api.pushover.net',
          'noshutdown' => 1,
          'addr' => 'https://api.pushover.net:443',
          'sslargs' => {},
          'redirects' => 0,
          'hu_portSfx' => '',
          'httpversion' => '1.1',
          'buf' => '',
          'data' => 'title=Batterie%20Warnung&message=Folgende%20Batterie%20ist%20fast%20leer%3a%20Test&device=HA_Etienne&token=ag4pvZivE2eDdDP8zhQn6GjozTi8Zq&user=u3BN2ABSXtzZX72V5eVC4rDpwz4maf',
          'hash' => {
                      'DEF' => 'ag4pvZivE2eDdDP8zhQn6GjozTi8Zq u3BN2ABSXtzZX72V5eVC4rDpwz4maf pushCallback',
                      'NR' => 161,
                      'helper' => {
                                    'bm' => {
                                              'Pushover_Set' => {
                                                                  'mAr' => [
                                                                             $VAR1->{'hash'},
                                                                             'Pushover',
                                                                             'msg',
                                                                             'title=\'\'',
                                                                             'device=\'HA_Etienne:\'',
                                                                             'priority=0',
                                                                             'url_title=""',
                                                                             'message=\'Folgende',
                                                                             'Batterie',
                                                                             'ist',
                                                                             'fast',
                                                                             'leer:',
                                                                             'Test\'',
                                                                             'title=\'Batterie',
                                                                             'Warnung\''
                                                                           ],
                                                                  'max' => 13,
                                                                  'dmx' => 0,
                                                                  'tot' => 35,
                                                                  'cnt' => 38
                                                                },
                                              'Pushover_Define' => {
                                                                     'dmx' => 0,
                                                                     'mAr' => [
                                                                                $VAR1->{'hash'},
                                                                                'Pushover Pushover ag4pvZivE2eDdDP8zhQn6GjozTi8Zq u3BN2ABSXtzZX72V5eVC4rDpwz4maf pushCallback'
                                                                              ],
                                                                     'max' => 2,
                                                                     'cnt' => 1,
                                                                     'tot' => 2
                                                                   }
                                            }
                                  },
                      'APP_TOKEN' => 'ag4pvZivE2eDdDP8zhQn6GjozTi8Zq',
                      'NAME' => 'Pushover',
                      'READINGS' => {
                                      'apiReset' => {
                                                      'TIME' => '2017-04-11 18:52:39',
                                                      'VAL' => '1493614800
'
                                                    },
                                      'tokenState' => {
                                                        'VAL' => 'valid',
                                                        'TIME' => '2017-04-02 12:15:55'
                                                      },
                                      'devices' => {
                                                     'VAL' => 'HA_Anja,HA_Etienne,Tab_Ede',
                                                     'TIME' => '2017-04-11 03:35:47'
                                                   },
                                      'apiLimit' => {
                                                      'VAL' => '7500
',
                                                      'TIME' => '2017-04-11 18:52:39'
                                                    },
                                      'lastResult' => {
                                                        'VAL' => 'ok',
                                                        'TIME' => '2017-04-12 11:08:47'
                                                      },
                                      'lastAction' => {
                                                        'TIME' => '2017-04-12 11:08:47',
                                                        'VAL' => '-'
                                                      },
                                      'apiRemaining' => {
                                                          'TIME' => '2017-04-12 11:08:47',
                                                          'VAL' => '7206
'
                                                        },
                                      'lastTitle' => {
                                                       'VAL' => 'Batterie Warnung',
                                                       'TIME' => '2017-04-12 11:08:47'
                                                     },
                                      'available' => {
                                                       'TIME' => '2017-04-12 11:04:44',
                                                       'VAL' => 1
                                                     },
                                      'lastMessage' => {
                                                         'VAL' => 'Folgende Batterie ist fast leer: Test',
                                                         'TIME' => '2017-04-12 11:08:47'
                                                       },
                                      'lastRequest' => {
                                                         'VAL' => '9bfbb839-b420-4f30-b0c1-af7cfcb03954',
                                                         'TIME' => '2017-04-12 11:08:47'
                                                       },
                                      'lastDevice' => {
                                                        'VAL' => 'HA_Etienne',
                                                        'TIME' => '2017-04-12 11:08:47'
                                                      },
                                      'lastText' => {
                                                      'TIME' => '2017-04-04 20:54:40',
                                                      'VAL' => 'TestNachricht'
                                                    },
                                      'group' => {
                                                   'TIME' => '2017-04-02 12:15:55',
                                                   'VAL' => '0'
                                                 },
                                      'userState' => {
                                                       'TIME' => '2017-04-02 12:15:55',
                                                       'VAL' => 'valid'
                                                     },
                                      'lastPriority' => {
                                                          'VAL' => '0',
                                                          'TIME' => '2017-04-02 20:16:22'
                                                        },
                                      'state' => {
                                                   'TIME' => '2017-04-12 11:04:44',
                                                   'VAL' => 'connected'
                                                 }
                                    },
                      'fhem' => {
                                  'infix' => 'pushCallback'
                                },
                      'TYPE' => 'Pushover',
                      'VALIDATION_TIMER' => '1492009727.93609',
                      'USER_KEY' => 'u3BN2ABSXtzZX72V5eVC4rDpwz4maf',
                      'STATE' => 'connected'
                    },
          'url' => 'https://api.pushover.net:443/1/messages.json',
          'type' => {
                      'device' => 'HA_Etienne',
                      'timestamp' => undef,
                      'url_title' => undef,
                      'action' => undef,
                      'message' => 'Folgende%20Batterie%20ist%20fast%20leer%3a%20Test',
                      'title' => 'Batterie Warnung',
                      'retry' => undef,
                      'sound' => undef,
                      'priority' => undef,
                      'expire' => undef
                    },
          'callback' => sub { "DUMMY" },
          'timeout' => 3
        };


ERROR:
$VAR1 = '';


DATA:
$VAR1 = '{"status":1,"request":"24d9a845-3718-4a4c-b0ce-6cd6c96aae7d"}';

2017.04.12 11:15:07 4: Pushover Pushover: RCV messages.json/title=Batterie Warnung&message=Folgende Batterie ist fast leer: Test&device=HA_Etienne&token=ag4pvZivE2eDdDP8zhQn6GjozTi8Zq&user=u3BN2ABSXtzZX72V5eVC4rDpwz4maf
2017.04.12 11:15:07 5: Pushover Pushover: RES messages.json/title=Batterie Warnung&message=Folgende Batterie ist fast leer: Test&device=HA_Etienne&token=ag4pvZivE2eDdDP8zhQn6GjozTi8Zq&user=u3BN2ABSXtzZX72V5eVC4rDpwz4maf
{"status":1,"request":"24d9a845-3718-4a4c-b0ce-6cd6c96aae7d"}
Aktuell dabei unser neues Haus mit KNX am einrichten. Im nächsten Schritt dann KNX mit FHEM verbinden. Allein zwei Dinge sind dabei selten: Zeit und Geld...

Loredo

Zitat von: Amenophis86 am 12 April 2017, 11:20:29
Folgender Fehler wird ausgegeben, obwohl die Nachricht richtig ankommt. Der Fehler erscheint auch NUR auf der Pushover Detail ansicht des Moduls, sonst nirgendwo. Diese hatte ich beim Senden immer offen. :
jquery.min.js line 2:
Uncaught Error: Syntax error, unrecognized expression: [informId='Pushover-msg title='' device='HA_Etienne:' priority=0 url_title="" message='Folgende Batterie ist fast leer-ts']



Diese Meldung wird vom Longpoll von FHEMWEB generiert, dessen Javascript offenbar nicht mit dem Nachrichteninhalt umgehen kann, um die Darstellung zu aktualisieren.
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

Amenophis86

ok heißt das, dass ich irgendwas besser ändern sollte an der Nachricht, oder, dass dich damit leben muss?
Aktuell dabei unser neues Haus mit KNX am einrichten. Im nächsten Schritt dann KNX mit FHEM verbinden. Allein zwei Dinge sind dabei selten: Zeit und Geld...

Loredo

Entweder lebst du damit oder du machst Rudi als Maintainer für FHEMWEB darauf aufmerksam.
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

Amenophis86

zweiteres hört sich gut an. Wobei ich es jetzt erst Mal umgestellt habe. Aber werde es Rudi trotzdem schreiben ;)
Aktuell dabei unser neues Haus mit KNX am einrichten. Im nächsten Schritt dann KNX mit FHEM verbinden. Allein zwei Dinge sind dabei selten: Zeit und Geld...

SachaB

Hi.

Ich habe das Problem, dass bei Pushover Nachrichten mit FHEM Befehl action="set device irgendwas" keine Aktion ausgelöst wird, sondern nur, wenn ich einen FHEM URL dort eintrage.
Ist das zuvor beschriebene Problem von Anfang April noch immer aktuell oder sollte das eigentlich funktionieren?

Sacha

Loredo

Zitat von: SachaB am 29 April 2017, 15:03:47
Ich habe das Problem, dass bei Pushover Nachrichten mit FHEM Befehl action="set device irgendwas" keine Aktion ausgelöst wird, sondern nur, wenn ich einen FHEM URL dort eintrage.


Hast du denn die callbackUrl richtig eingerichtet? FHEM Befehle werden im Modul zwischengespeichert und es wird eine alternative URL generiert, die an das Endgerät geschickt wird. Das kann aber nur gemacht werden, wenn die nach außen erreichbare callbackUrl richtig konfiguriert ist und auch der Infix dazu passend vergeben wurde. Bei beiden kann die URI (nicht URL, also der Pfad) unterschiedlich sein, wenn ein Reverse Proxy sich entsprechend darum kümmert.
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