Modul für Pushover

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

Vorheriges Thema - Nächstes Thema

hanami

Danke Loredo, das war`s.  ;D
Meinst ich hab das vorher gesehen?!  ???

Vielen vielen Dank.

strannik55

Hallo an alle! Habe seit über zwei Jahre meine waschmschiene über eine Homematic steckdose laufen und pushover eingerichtet, da durch bekam ich eine nachricht auf Android gerät(e).
Die medungen bekomme ich ich auch jetzt noch wie auch immer, nur früher spielte auf den gerät(en) noch musik ab und das fehlte mir seit übereinen Monat. Alle meine versuche das rauszufinden scheiterten bis jetzt. Weis vieleicht jemand mir mit Rat wieter zu helfen. In Fhem sind meine einstellungen ohne änderungenm bei Pushover auch, ause das ich noch verschiedene Geräte mitreingenommen habe, um das erstgerät als defekt auszuschliesen.
Danke

peterk_de

#752
Hi Loredo,

Glances klappen nicht im HTML-Mode. Könntest du daher die Prüfung nochmal erweitern, ob Subtext, Title oder Text HTML enthält?
--> Korrekte Lösung im nächsten Post.

Hintergrund ist der, dass ich gerne auf meine Apple Watch 4 eine 3-Zeilige Glance mit Symbolen (Unicode-Emojis per &#x....; )  schicken möchte. Das klappt aber nur im HTML-Mode, im normalen Modus rendert die Pushover-Api einfach den Hex Code ...
FHEM auf Ubuntu-VM / 2xNUC Proxmox Cluster
UI: HomeKit, TabletUI, Grafana
IOdevs: 2xHueBridge, RaspiMatic-CCU, CUL868, 2xHarmonyHub, 6xRaspi-Roomnode mit CO2, VOC und lepresenced
Devices: 107xHomematic(IP), 96xPhilips Hue, 17xTECHEM, 12xBTLE, 8xSONOS, 2xHomeConnect, 1xShelly 3em, 1xNanoleaf ...

peterk_de

#753
Hmm OK das hätte gar nicht geholfen ... ich habe jetzt weiterprobiert und es nach unzähligen Versuchen hinbekommen, eine Glance mit Emoji zu versenden:

- Wenn man in FHEMWeb im Befehl das Emoji im Browser sieht, dann kommt es auch richtig an (am besten also einfach das Emoji und nicht den Code dafür hineinkopieren). Ob das Pushover-Modul HTML erkennt oder nicht, spielt offenbar keine Rolle.
- In dem API-Call muss für Glances noch das Flag html=1 gesetzt sein. Dazu habe ich in den Block if ( $cmd eq "glance" ) { ...

einfach

$values{html} = "1";

eingefügt ... und nun geht es und die Emojis sind auf der Uhr :-)

Klappt übrigens auch mit dem alten Modular-Watchface genau wie mit dem Infograph Modular, sollte also auch mit Apple Watches < 4 gehen!

Edit: Falls die Frage aufkommt, wofür man da eigentlich Emojis braucht, hab ich mal noch 2 Screenshots von beiden Modular-Watchfaces angehängt
FHEM auf Ubuntu-VM / 2xNUC Proxmox Cluster
UI: HomeKit, TabletUI, Grafana
IOdevs: 2xHueBridge, RaspiMatic-CCU, CUL868, 2xHarmonyHub, 6xRaspi-Roomnode mit CO2, VOC und lepresenced
Devices: 107xHomematic(IP), 96xPhilips Hue, 17xTECHEM, 12xBTLE, 8xSONOS, 2xHomeConnect, 1xShelly 3em, 1xNanoleaf ...

nuccleon

Hallo zusammen,

kann es sein, dass das pushover modul mit absoluten Pfaden im attachment pfad überfordert ist? Ich meine ja.
Mir gelingt es nur Bilder über attachment zu verschicken, wenn diese sich relativ zum fhem Pfad befinden.

Also konkret:
set pushmsg msg foobar title=baz attachment=/mnt/nfs/nas/fhem/www/snapshots/vivotek_snapshot.jpg
set pushmsg msg foobar title=baz attachment=./www/snapshots/vivotek_snapshot.jpg

Im Log mit verbose 5 sehe ich:

----msgsgmnt--',
          'code' => '200',
          'conn' => undef,
          'type' => {
                      'retry' => undef,
                      'action' => undef,
                      'message' => 'foobar',
                      'timestamp' => undef,
                      'url_title' => undef,
                      'priority' => undef,
                      'sound' => undef,
                      'attachment' => 'file://.//mnt/nfs/nas/fhem/www/snapshots/vivotek_snapshot.jpg',
                      'title' => 'baz',
                      'expire' => undef,
                      'device' => undef
                    },
          'addr' => 'https://api.pushover.net:443',
          'url' => 'https://api.pushover.net:443/1/messages.json',
          'compress' => 1,
          'timeout' => 3,
          'data' => '----msgsgmnt
Content-Disposition: form-data; name="message"

foobar


Mich macht der Punk vor .//mnt stutzig. Scheit so, als ob eines der beteiligten Module vor den Pfad nen Punkt macht, was natürlich falsch ist.

nuccleon

#755
Übrigens funktioniert auch folgende Kombination nicht:

set pushmsg msg Test-Text title="Test!" priority=2 expire=900 retry=30 url_title="Abbrechen" action="set device reading 1"

Das Logfile behauptet expire wäre nicht angegeben.:


Agent: FHEM-Pushover/1.0.0',
          'loglevel' => 4,
          'service' => 'messages.json',
          'hu_blocking' => 0,
          'noshutdown' => 1,
          'NAME' => '',
          'path' => '/1/messages.json',
          'hu_portSfx' => '',
          'sslargs' => {},
          'addr' => 'https://api.pushover.net:443',
          'type' => {
                      'attachment' => undef,
                      'url' => 'set device reading 1',
                      'title' => 'Test!',
                      'expire' => undef,
                      'device' => undef,
                      'sound' => undef,
                      'action' => 'set device reading 1',
                      'cbNr' => 1550606880,
                      'message' => 'Test-Text',
                      'priority' => 2,
                      'timestamp' => undef,
                      'url_title' => 'Abbrechen',
                      'retry' => 30
                    },


DATA:
$VAR1 = '{"expire":"must be supplied with priority=2","errors":["expire must be supplied with priority=2"],"status":0,"request":"cc645caa-ae9a-4553-9e71-1361986704a9"}';



Könnte einer der Profis mal über die beiden Punkte (absoluter Pfad bei attachments und expire) drüber kucken.
Schonmal Danke !

edit

Die Frage konnte ich mir mittlerweile selbst beantworten: https://forum.fhem.de/index.php/topic,97499.msg913713.html#msg913713

Phiolin

Zitat von: Phiolin am 07 Juni 2018, 13:06:43
Ich habe gerade mal ein bisschen mit Actions getestet und bin dabei auf einen Stolperstein gestoßen:

set pushmsg msg Test-Text device="meinDevice" title="Test!" priority=2 retry=30 expire=900 url_title="Abbrechen" action="set device reading 1"

2018-06-07 13:00:31 Pushover pushmsg apiRemaining: 7444
2018-06-07 13:00:31 Pushover pushmsg lastTitle: Test!
2018-06-07 13:00:31 Pushover pushmsg lastMessage: Test-Text
2018-06-07 13:00:31 Pushover pushmsg lastPriority: 2
2018-06-07 13:00:31 Pushover pushmsg lastAction: set device reading 1
2018-06-07 13:00:31 Pushover pushmsg lastDevice: meinDevice
2018-06-07 13:00:31 Pushover pushmsg lastRequest: e3cd8f35-66be-42b7-a3d4-8d4a50a475c2
2018-06-07 13:00:31 Pushover pushmsg cbTitle_1528370130: Test!
2018-06-07 13:00:31 Pushover pushmsg cbMsg_1528370130: Test-Text
2018-06-07 13:00:31 Pushover pushmsg cbPrio_1528370130: 2
2018-06-07 13:00:31 Pushover pushmsg cbAck_1528370130: 0
2018-06-07 13:00:31 Pushover pushmsg cbDev_1528370130: meinDevice
2018-06-07 13:00:31 Pushover pushmsg cb_1528370130: r1vpmeyruj7yzcso4w1o7wty23fx5j
2018-06-07 13:00:31 Pushover pushmsg cbAct_1528370130: set device reading 1
2018-06-07 13:00:31 Pushover pushmsg lastResult: ok


Wird also ordentlich verschickt und kommt auch auf dem Handy an.
Klicke ich nun auf den Link "Abbrechen" gemäß url_title, bekomme ich aber einen Fehler beim Callback:

NOK unable to find existing receipt 1528370130


Klicke ich dagegen in der Pushover App auf "Acknowledge", kommt der Callback im FHEM sauber an:

2018-06-07 13:01:20 Pushover pushmsg cbAck_1528370130: 1
2018-06-07 13:01:20 Pushover pushmsg cbAckBy_1528370130: ub5d6zeji124hith7wyp23yew2vyoj
2018-06-07 13:01:20 Pushover pushmsg cbAckAt_1528370130: 1528369279
2018-06-07 13:01:20 Pushover pushmsg cbAct_1528370130: executed: set device reading 1


D.h. der Callback funktioniert, aber der Link in der Push-Nachricht irgendwie nicht. Trotzdem ist aber url_title ein Pflichtattribut, sobald ich auch "action" benutze. Mir würde ja das reine Acknowledge ausreichen, aber warum muss ich dann noch url_title angeben, zudem wenn der Link dann auch nicht funktioniert. Das kann ich ja niemandem hier im Haus beibringen, dass da zwar ein Link ist, der aber nicht benutzt werden soll...
Mit Verbose 5 sieht man beim Aufruf des Links aus der Nachricht folgendes im Log:

Pushover pushmsg callback: link='/cbPushover' URI='acknowledged=1&acknowledged_by=ub5d6zeji123hith1wyp97yew2vyoj&FhemCallbackId=1528370658&cbNr=1528370658'


Beim Anklicken von "Acknowledge" wird dagegen folgender Link aufgerufen:

Pushover pushmsg callback: link='/cbPushover' URI='receipt=rumn44kno2jxdbptisjzbhwhybnkqk&acknowledged=1&acknowledged_at=1528369841&acknowledged_by=ub5d6zeji123hith1wyp97yew2vyoj&acknowledged_by_device= meinDevice'


Der springende Punkt im Code ist wohl der hier:

        if ( defined( $webArgs->{receipt} ) ) {
            $receipt = $webArgs->{receipt};
        }
        elsif ( defined( $webArgs->{FhemCallbackId} ) ) {
            $receipt = $webArgs->{FhemCallbackId};
        }
        else {
            return ( "text/plain; charset=utf-8",
                "NOK missing argument receipt or FhemCallbackId" );
        }

        # search for existing receipt
        keys %{ $hash->{READINGS} };
        while ( my ( $key, $value ) = each %{ $hash->{READINGS} } ) {
            $revReadings{ $value->{VAL} } = $1
              if ( defined( $value->{VAL} ) && $key =~ /^cb_(\d+)$/ );
        }

        if ( defined( $revReadings{$receipt} ) ) {


Offenbar wird hier bei übergebener FhemCallbackId Variable das passende Reading nicht gefunden. Übergibt man direkt ein receipt, das ja in cb_<FhemCallbackId> gespeichert ist, klappt das.

Da ich heute danach gefragt wurde: Das ganze funktioniert bis heute nicht korrekt.
Es gibt aber in der Pushover API meines Wissen auch gar keine Pflicht, für eine Action auch einen url_title anzugeben.
Ich habe daher bei mir einfach die entsprechende Abfrage im Pushover Modul gelöscht - Problem zumindest für mich quasi gelöst.

--- 70_Pushover.pm.orig 2019-03-01 13:26:04.956633423 +0100
+++ 70_Pushover.pm      2019-03-01 13:26:15.200670205 +0100
@@ -1104,10 +1104,6 @@
           if ( defined( $values{url_title} )
             && !defined( $values{action} ) );

-        return "parameter action requires parameter url_title"
-          if ( defined( $values{action} )
-            && !defined( $values{url_title} ) );
-
         return "messages containing a URL require parameter expire"
           if ( defined( $values{action} )
             && defined( $values{url_title} )

nuccleon

#757
Bei mir gleiches Verhalten  :-\
set pushmsg msg Test-Text title="Test!" priority=2 retry=30 expire=900 url_title="Abbrechen" action="set device reading 1"
Die message kommt in der Android APP an, ein klick auf Abbrechen wird mit NOK unable to find existing receipt 1551527984 quittiert. Bei klick auf Acknowledge passiert bei mir - im Gegensatz zum Vorredner - genau gar nichts.
Das ist übrigens 1 zu 1 das Beispiel aus der CommandRef.

Gibt es denn irgendjemanden hier, bei dem callbacks funktionieren?

Inhalt des Logfiles

2019.03.02 12:44:44 5: Pushover pushmsg: called function Pushover_SetMessage2()
2019.03.02 12:44:44 5: Pushover pushmsg: Adding emergency callback URL http://192.168.178.22:8083/fhem/pushCallback
2019.03.02 12:44:44 5: Pushover pushmsg: Adding supplementary URL 'Abbrechen' (http://192.168.178.22:8083/fhem/pushCallback?acknowledged=1&acknowledged_by=u5w94jotqcyo44qqaupqe85optgse9&FhemCallbackId=1551527984) with action 'set device reading 1' (expires after 900 => 1551527984)
2019.03.02 12:44:44 5: Pushover pushmsg: called function Pushover_SendCommand()
2019.03.02 12:44:44 4: Pushover pushmsg: REQ messages.json/retry=30&expire=900&cbNr=1551527984&callback=http://192.168.178.22:8083/fhem/pushCallback&title=Test!&message=Test-Text&action=set device reading 1&url_title=Abbrechen&url=http://192.168.178.22:8083/fhem/pushCallback?acknowledged=1&acknowledged_by=u5w94jotqcyo44qqaupqe85optgse9&FhemCallbackId=1551527984&priority=2&user=u5w94jotqcyo44qqaupqe85optgse9&token=aephqegbu1qvi52w7iom9o9w75fq3z
2019.03.02 12:44:44 5: Pushover pushmsg: GET https://api.pushover.net:443/1/messages.json (POST DATA: retry=30&expire=900&cbNr=1551527984&callback=http://192.168.178.22:8083/fhem/pushCallback&title=Test!&message=Test-Text&action=set device reading 1&url_title=Abbrechen&url=http://192.168.178.22:8083/fhem/pushCallback?acknowledged=1&acknowledged_by=u5w94jotqcyo44qqaupqe85optgse9&FhemCallbackId=1551527984&priority=2&user=u5w94jotqcyo44qqaupqe85optgse9&token=aephqegbu1qvi52w7iom9o9w75fq3z, noshutdown=1)
2019.03.02 12:44:45 5: Pushover pushmsg: Received HttpUtils callback:

PARAM:
$VAR1 = {
          'hu_blocking' => 0,
          'service' => 'messages.json',
          'displayurl' => 'https://api.pushover.net:443/1/messages.json',
          'protocol' => 'https',
          'hash' => {
                      'FUUID' => '5c785965-f33f-88d3-8666-f437e2d82fe6ae36',
                      'DEF' => 'aephqegbu1qvi52w7iom9o9w75fq3z u5w94jotqcyo44qqaupqe85optgse9 pushCallback',
                      'TYPE' => 'Pushover',
                      '.FhemMetaInternalss' => 1,
                      'VALIDATION_TIMER' => '1551547939.46311',
                      'helper' => {
                                    'FAILED_USERKEYS' => {}
                                  },
                      'APP_TOKEN' => 'aephqegbu1qvi52w7iom9o9w75fq3z',
                      '.attrminint' => [],
                      'fhem' => {
                                  'infix' => 'pushCallback'
                                },
                      'NR' => 104,
                      'OLDREADINGS' => {},
                      'CFGFN' => '',
                      '.attraggr' => [],
                      'USER_KEY' => 'u5w94jotqcyo44qqaupqe85optgse9',
                      'NAME' => 'pushmsg',
                      'VERSION' => '70_Pushover.pm:v0.0.18690/2019-02-22',
                      'STATE' => 'error',
                      'READINGS' => {}
                    },
          'httpheader' => 'HTTP/1.1 200 OK
Server: nginx
Date: Sat, 02 Mar 2019 11:44:45 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, Authorization
Access-Control-Max-Age: 1728000
X-Limit-App-Limit: 7500
X-Limit-App-Remaining: 7394
X-Limit-App-Reset: 1554094800
ETag: W/"a0f478f43f6e8a2dae90678cc16d2a88"
Cache-Control: max-age=0, private, must-revalidate
X-Request-Id: 9cbbaaad-d18b-41d3-902c-d3a608d71b19
X-Runtime: 0.084167
X-Frame-Options: DENY
Strict-Transport-Security: max-age=31536000',
          'hu_portSfx' => '',
          'auth' => 0,
          'host' => 'api.pushover.net',
          'addr' => 'https://api.pushover.net:443',
          'httpversion' => '1.1',
          'callback' => sub { "DUMMY" },
          'loglevel' => 4,
          'cmd' => 'retry=30&expire=900&cbNr=1551527984&callback=http%3a%2f%2f192%2e168%2e178%2e22%3a8083%2ffhem%2fpushCallback&title=Test%21&message=Test%2dText&action=set%20device%20reading%201&url_title=Abbrechen&url=http%3a%2f%2f192%2e168%2e178%2e22%3a8083%2ffhem%2fpushCallback%3facknowledged%3d1%26acknowledged%5fby%3du5w94jotqcyo44qqaupqe85optgse9%26FhemCallbackId%3d1551527984&priority=2&user=u5w94jotqcyo44qqaupqe85optgse9&token=aephqegbu1qvi52w7iom9o9w75fq3z',
          'timeout' => 3,
          'compress' => 1,
          'noshutdown' => 1,
          'hu_filecount' => 1,
          'path' => '/1/messages.json',
          'type' => {
                      'retry' => 30,
                      'expire' => 900,
                      'cbNr' => 1551527984,
                      'callback' => 'http://192.168.178.22:8083/fhem/pushCallback',
                      'attachment' => undef,
                      'title' => 'Test!',
                      'message' => 'Test-Text',
                      'action' => 'set device reading 1',
                      'device' => undef,
                      'url_title' => 'Abbrechen',
                      'url' => 'http://192.168.178.22:8083/fhem/pushCallback?acknowledged=1&acknowledged_by=u5w94jotqcyo44qqaupqe85optgse9&FhemCallbackId=1551527984',
                      'sound' => undef,
                      'priority' => 2,
                      'timestamp' => undef
                    },
          'redirects' => 0,
          'NAME' => '',
          'code' => '200',
          'conn' => undef,
          'buf' => '',
          'sslargs' => {},
          'hu_port' => '443',
          'data' => 'retry=30&expire=900&cbNr=1551527984&callback=http%3a%2f%2f192%2e168%2e178%2e22%3a8083%2ffhem%2fpushCallback&title=Test%21&message=Test%2dText&action=set%20device%20reading%201&url_title=Abbrechen&url=http%3a%2f%2f192%2e168%2e178%2e22%3a8083%2ffhem%2fpushCallback%3facknowledged%3d1%26acknowledged%5fby%3du5w94jotqcyo44qqaupqe85optgse9%26FhemCallbackId%3d1551527984&priority=2&user=u5w94jotqcyo44qqaupqe85optgse9&token=aephqegbu1qvi52w7iom9o9w75fq3z',
          'url' => 'https://api.pushover.net:443/1/messages.json',
          'header' => 'Accept-Charset: UTF-8
Accept: application/json;charset=UTF-8
User-Agent: FHEM-Pushover/1.0.0
Agent: FHEM-Pushover/1.0.0'
        };


ERROR:
$VAR1 = '';


DATA:
$VAR1 = '{"receipt":"rga6pamxk4n8fkf4otr1obonoo1qzi","status":1,"request":"9cbbaaad-d18b-41d3-902c-d3a608d71b19"}';

2019.03.02 12:44:45 4: Pushover pushmsg: RCV messages.json/retry=30&expire=900&cbNr=1551527984&callback=http://192.168.178.22:8083/fhem/pushCallback&title=Test!&message=Test-Text&action=set device reading 1&url_title=Abbrechen&url=http://192.168.178.22:8083/fhem/pushCallback?acknowledged=1&acknowledged_by=u5w94jotqcyo44qqaupqe85optgse9&FhemCallbackId=1551527984&priority=2&user=u5w94jotqcyo44qqaupqe85optgse9&token=aephqegbu1qvi52w7iom9o9w75fq3z
2019.03.02 12:44:45 5: Pushover pushmsg: RES messages.json/retry=30&expire=900&cbNr=1551527984&callback=http://192.168.178.22:8083/fhem/pushCallback&title=Test!&message=Test-Text&action=set device reading 1&url_title=Abbrechen&url=http://192.168.178.22:8083/fhem/pushCallback?acknowledged=1&acknowledged_by=u5w94jotqcyo44qqaupqe85optgse9&FhemCallbackId=1551527984&priority=2&user=u5w94jotqcyo44qqaupqe85optgse9&token=aephqegbu1qvi52w7iom9o9w75fq3z
{"receipt":"rga6pamxk4n8fkf4otr1obonoo1qzi","status":1,"request":"9cbbaaad-d18b-41d3-902c-d3a608d71b19"}
2019.03.02 12:52:45 4: Pushover pushmsg callback: link='/pushCallback' URI='acknowledged=1&acknowledged_by=u5w94jotqcyo44qqaupqe85optgse9&FhemCallbackId=1551527984'
2019.03.02 12:52:45 4: Pushover pushmsg callback: unable to find existing receipt 1551527984


List von Pushover Device

Internals:
   APP_TOKEN  aephqegbu1qvi52w7iom9o9w75fq3z
   CFGFN     
   DEF        aephqegbu1qvi52w7iom9o9w75fq3z u5w94jotqcyo44qqaupqe85optgse9 pushCallback
   FUUID      5c785965-f33f-88d3-8666-f437e2d82fe6ae36
   NAME       pushmsg
   NR         104
   STATE      connected
   TYPE       Pushover
   USER_KEY   u5w94jotqcyo44qqaupqe85optgse9
   VALIDATION_TIMER 1551548685.41073
   VERSION    70_Pushover.pm:v0.0.18690/2019-02-22
   OLDREADINGS:
   READINGS:
     2019-03-02 12:44:45   apiLimit        7500
     2019-03-02 12:44:45   apiRemaining    7394
     2019-03-02 12:44:45   apiReset        1554094800
     2019-03-02 12:44:45   available       1
     2019-03-02 12:44:45   cbAck_1551527984 0
     2019-03-02 12:44:45   cbAct_1551527984 set device reading 1
     2019-03-02 12:44:45   cbDev_1551527984 all
     2019-03-02 12:44:45   cbMsg_1551527984 Test-Text
     2019-03-02 12:44:45   cbPrio_1551527984 2
     2019-03-02 12:44:45   cbTitle_1551527984 Test!
     2019-03-02 12:44:45   cb_1551527984   rga6pamxk4n8fkf4otr1obonoo1qzi
     2019-03-02 12:44:45   lastAction      set device reading 1
     2019-03-02 12:44:45   lastDevice      all
     2019-03-02 12:44:45   lastMessage     Test-Text
     2019-03-02 12:44:45   lastPriority    2
     2019-03-02 12:44:45   lastRequest     9cbbaaad-d18b-41d3-902c-d3a608d71b19
     2019-03-02 12:44:45   lastResult      ok
     2019-03-02 12:44:45   lastTitle       Test!
     2019-03-02 12:44:45   state           connected
     2019-03-02 12:44:45   tokenState      valid
     2019-03-02 12:44:45   userState       valid
   fhem:
     infix      pushCallback
   helper:
     FAILED_USERKEYS:
Attributes:
   callbackUrl http://192.168.178.22:8083/fhem/pushCallback
   icon       pushover
   verbose    5


Mir ist klar, es handelt sich hier um ein OpenSource Project, in welches viel Freizeit und Engagement der Maintainer fließt. Danke auch dafür.
Aber eine Sache stört micht dann doch ein bischen. Dieses Thema / Problem mit den callbacks ist alles andere als neu und wurde schon mehrfach addressiert - auch schon als PN. Ich erwarte ja nicht, dass die Maintainer alles liegen und stehen lassen und sich sofort auf das Thema stürzen, aber zumindest ein Lebenszeichen oder ein "ich kucke es mir bei Gelegenheit an" wäre schon schön. Auch die Anwender versenken in so ein Thema viel Zeit in Analyse und Fehlersuche etc.  Hier hat sich ein User sogar schon an einem patch versucht: https://forum.fhem.de/index.php?topic=48786.
Im Sand verlaufen...

Also an mangelndem Input kann es nicht liegen, dass sich bei dem Problem nichts bewegt.


Loredo

Zitat von: peterk_de am 18 Februar 2019, 15:44:07
Hmm OK das hätte gar nicht geholfen ... ich habe jetzt weiterprobiert und es nach unzähligen Versuchen hinbekommen, eine Glance mit Emoji zu versenden:


Es gibt ab morgen die Möglichkeit beim Text das Präfix "html:" Vorzuhängen, dann wird der Text als HTML interpretiert. Wenn man HTML Tags wie <b> etc nutzt passiert das jetzt wie bei den normalen Push Nachrichten automatisch.


Zitat von: nuccleon am 19 Februar 2019, 21:02:04
Mich macht der Punk vor .//mnt stutzig. Scheit so, als ob eines der beteiligten Module vor den Pfad nen Punkt macht, was natürlich falsch ist.


Du hast offenbar das Attribut "storage" übersehen, ansonsten wird das globale Attribut "modpath" als Standardpfad verwendet, damit man nicht dauernd einen vollen Pfad angeben muss. Absolute Pfade werden ab morgen jetzt gesondert behandelt.
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

Loredo

Zitat von: nuccleon am 02 März 2019, 13:09:01
Mir ist klar, es handelt sich hier um ein OpenSource Project, in welches viel Freizeit und Engagement der Maintainer fließt.


Dann schreibt doch einfach nicht solch einen Mist. Das ist ja wie "Ich habe nichts gegen Ausländer, ABER ...".
Ist ja schön, wenn du in deinem Leben und deinen Projekten immer nur eine einzelne Baustelle zu beackern hast - chapeau!
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

nuccleon

Zitat von: Loredo am 03 März 2019, 15:47:58
Du hast offenbar das Attribut "storage" übersehen, ansonsten wird das globale Attribut "modpath" als Standardpfad verwendet, damit man nicht dauernd einen vollen Pfad angeben muss. Absolute Pfade werden ab morgen jetzt gesondert behandelt.

Das storage Attribut existiert nur in der CommandRef, keinesfalls in der AttrList.


$hash->{AttrList} =
"disable:0,1 disabledForIntervals do_not_notify:0,1 timestamp:0,1 title sound:pushover,bike,bugle,cashregister,classical,cosmic,falling,gamelan,incoming,intermission,magic,mechanical,pianobar,siren,spacealarm,tugboat,alien,climb,persistent,echo,updown,none device priority:0,1,2,-1,-2 callbackUrl retry expire "
. $readingFnAttributes;


Funktioniert storage wenn man es als userAttribute angibt?


nuccleon

Zitat von: Loredo am 03 März 2019, 15:58:39
Dann schreibt doch einfach nicht solch einen Mist. Das ist ja wie "Ich habe nichts gegen Ausländer, ABER ...".
Ist ja schön, wenn du in deinem Leben und deinen Projekten immer nur eine einzelne Baustelle zu beackern hast - chapeau!
Also bitte Loredo das ist unsachlich. Ich wollte dich hier jetzt nicht persönlich angreifen. Wenn du das so empfindest, dann liegt hier ein Missverständnis vor.

Wie gesagt, es erwartet niemand, dass alles sofort erledigt wird. Bitte nicht persönlich nehmen, ich bin lediglich der Meinung, dass man vom Maintainer nach einigen Wochen - so wie es in der MAINTAINER.txt steht - eine Reaktion erwarten kann. Davon lebt ja auch das Projekt. Ich kann als Anwender des Moduls nur Analysen in Form von Logs usw beisteuern... Und bevor es jetzt total in OffTopic abgleitet, nochmal die Frage nach dem callbackUrl.

Offenbar gibt es damit ein Problem. Und zwar nicht nur bei mir. Ich wäre dir sehr dankbar, wenn du bei Gelegenheit mal einen Blick daruf werfen könntest. Falls du noch mehr Input benötigst, kann ich dir den gerne liefern.

Bootscreen

#762
Moin,

also ich hab die Callbacks, nun bei mir zum laufen gebracht. hier was ich dafür eingestellt habe (zusammenhängendes Farbig markiert, musste leider quote nehmen da code keine Farbe zulässt):
Zitat
DEF: <user> <token> pushcallback
Attribut: callbackUrl "http://<FHEM-IP>:<FHEM-PORT>/fhem/pushcallback"

Aufruf läuft dann über:set <Pushover-Device> msg '<Text>' priority=1 retry=30 expire=7200 url_title='Tu was in FHEM' action='<FHEM Aktion>'

Mit Priority 2 habe ich es nicht getestet da es für meinen Zweck eher störend war die Meldung bestätigen zu müssen.

Das einzige Problem was ich habe das mir mein Firefox aufm Handy nach dem Klick auf den Link sagt das er mit dem Protocol "pushover:/" nichts anfangen kann. Aber damit kann ich leben ^^
Gruß
Oliver

FHEM 5.7 Hardware:
Raspberry PI B+ | HomeMatic USB 2 | 433Mhz Sender (pilight) | nanoCUL (433Mhz)

Nestor

#763
Attached is a small patch that adds an optional quiet argument for msgCancel like:
set <Pushover_device> msgCancel <ID> [quiet]

This avoids filling the log when called from DOIF for example with 'Invalid cancel_id" messages when cancel_id is not set.

Nestor

#764
I'm encountering an issue when sending a message using strings that have the Perl internal UTF-8 flag set in combination with an attachment.

I'm using the Time::Ago package which runs the Encode::decode_utf8() function on all output strings which set the internal UTF-8 flag by default.
https://github.com/mla/time-ago/blob/master/lib/Time/Ago.pm#L20

This appears to break sending a message in combination with an attachment.

Example:
{ my $s = Encode::decode_utf8('less than a minute');; fhem("set Pu_Al msg $s attachment=www/images/default/fhemicon_ios.png") }
Returns: Error 400: message cannot be blank


The solution is to use the utf8::decode() function that removes the internal UTF-8 flag if the string does NOT contain multi-byte UTF-8 characters.

Example:
{ my $s = Encode::decode_utf8('less than a minute');; utf8::decode($s);; fhem("set Pu_Al msg $s attachment=www/images/default/fhemicon_ios.png") }
Returns: 200 ok


Is this expected behaviour that Fhem (Pushover or Httputils) does not work with strings that have internal UTF-8 flag set?