FHEM Forum

FHEM - Hausautomations-Systeme => Sonstige Systeme => Thema gestartet von: Esjay am 27 Oktober 2019, 18:23:36

Titel: [Gelöst]Kurzer Schubs httpMod Abfrage.
Beitrag von: Esjay am 27 Oktober 2019, 18:23:36
Guten Abend,
ich würde gerne ein Blynk Project per httpmod abfragen. Zum Teil funktioniert das schon ganz gut. Zumindest die Set Befehle. Bei den Get Commands habe ich jetzt folgendes "Problem".

List Device:
Internals:
   BUSY       0
   CFGFN     
   DEF        none 0
   FUUID      5db3477b-f33f-a126-8071-6089036160f3658b
   Interval   0
   LASTSEND   1572196375.93425
   MainURL   
   ModuleVersion 3.5.9 - 13.2.2019
   NAME       3dMower
   NOTIFYDEV  global
   NR         351
   NTFY_ORDER 50-3dMower
   STATE      ???
   TRIGGERTIME 0
   TRIGGERTIME_FMT
   TYPE       HTTPMOD
   addr       http://blynk-cloud.com:80
   auth       0
   buf       
   code       200
   compress   1
   conn       
   data       
   displayurl http://blynk-cloud.com/XXXXXXXXXXXX/get/V3
   header     
   host       blynk-cloud.com
   httpbody   ["11.670"]
   httpheader HTTP/1.1 200 OK
content-type: application/json;charset=utf-8
access-control-allow-origin: *
content-length: 10
connection: close
   httpversion 1.0
   hu_blocking 0
   hu_filecount 30
   hu_port    80
   hu_portSfx
   ignoreredirects 0
   loglevel   4
   path       /XXXXXXXXXXXX/get/V3
   protocol   http
   redirects  0
   timeout    2
   url        http://blynk-cloud.com/XXXXXXXXXXXX/get/V3
   value      0
   QUEUE:
   READINGS:
     2019-10-27 18:09:24   Loops           1
     2019-10-27 18:12:55   Volt            1.1
   REQUEST:
     data       
     header     
     ignoreredirects 0
     retryCount 0
     type       get2
     url        http://blynk-cloud.com/XXXXXXXXXXXX/get/V3
     value      0
   defptr:
     readingBase:
       Loops      get
       Volt       get
     readingNum:
       Loops      1
       Volt       2
     readingOutdated:
     requestReadings:
       get1:
         Loops      get 1
       get2:
         Volt       get 2
   sslargs:
Attributes:
   get1Name   Loops
   get1Regex  ([\d]+)
   get1URL    http://blynk-cloud.com/XXXXXXXXXXXX/get/V5
   get2Name   Volt
   get2Poll   1
   get2PollDelay 1800
   get2Regex  ([\d.]+)
   get2URL    http://blynk-cloud.com/XXXXXXXXXXXX/get/V3
   get3Name   Mowing
   get3Poll   1
   get3PollDelay 1800
   get3URL    http://blynk-cloud.com/XXXXXXXXXXXX/get/V7
   get4Name   Parked
   get4Poll   1
   get4PollDelay 1800
   get4URL    http://blynk-cloud.com/XXXXXXXXXXXX/get/V6
   set01Name  PauseStop
   set01NoArg 1
   set01URL   http://blynk-cloud.com/XXXXXXXXXXXX/update/V2?value=1
   set02Name  QuickStart
   set02NoArg 1
   set02URL   http://blynk-cloud.com/XXXXXXXXXXXX/update/V0?value=1
   set03Name  ExitDock
   set03NoArg 1
   set03URL   http://blynk-cloud.com/XXXXXXXXXXXX/update/V10?value=1
   set04Name  GotoDock
   set04NoArg 1
   set04URL   http://blynk-cloud.com/XXXXXXXXXXXX/update/V1?value=1
   set05Name  Vorwärts
   set05NoArg 1
   set05URL   http://blynk-cloud.com/XXXXXXXXXXXX/update/V13?value=1
   set06Name  Rückwärts
   set06NoArg 1
   set06URL   http://blynk-cloud.com/XXXXXXXXXXXX/update/V14?value=1
   set07Name  Links
   set07NoArg 1
   set07URL   http://blynk-cloud.com/XXXXXXXXXXXX/update/V15?value=1
   set08Name  Rechts
   set08NoArg 1
   set08URL   http://blynk-cloud.com/XXXXXXXXXXXX/update/V16?value=1
   set09Name  Rendommodus
   set09NoArg 1
   set09URL   http://blynk-cloud.com/XXXXXXXXXXXX/update/V4?property=1
   set10Name  Spiralmodus
   set10NoArg 1
   set10TextArg 1
   set10URL   http://blynk-cloud.com/XXXXXXXXXXXX/update/V4?property=2
   set11Name  Parallelmodus
   set11NoArg 1
   set11TextArg 1
   set11URL   http://blynk-cloud.com/XXXXXXXXXXXX/update/V4?value=3
   set12Name  Manuel
   set12NoArg 1
   set12TextArg 1
   set12URL   http://blynk-cloud.com/XXXXXXXXXXXX/update/V4?value=4
   showBody   1
   userattr   get01Name get01Regex get1Name get1Poll:0,1 get1PollDelay get1PollDelay:0,1 get1Regex get1URL get2Name get2Poll:0,1 get2PollDelay get2PollDelay:0,1 get2Regex get2URL get3Name get3Poll:0,1 get3PollDelay get3PollDelay:0,1 get3URL get4Name get4Poll:0,1 get4PollDelay get4PollDelay:0,1 get4URL reading01Regex set01Name set01NoArg:0,1 set01URL set02Name set02NoArg:0,1 set02URL set03Name set03NoArg:0,1 set03URL set04Name set04NoArg:0,1 set04URL set05Name set05NoArg:0,1 set05URL set06Name set06NoArg:0,1 set06URL set07Name set07NoArg:0,1 set07URL set08Name set08NoArg:0,1 set08URL set09Name set09NoArg:0,1 set09TextArg:0,1 set09URL set10Name set10NoArg:0,1 set10TextArg:0,1 set10URL set11Name set11NoArg:0,1 set11TextArg:0,1 set11URL set12Name set12NoArg:0,1 set12TextArg:0,1 set12URL
   verbose    0


Wie man sieht, wird im Body folgendes ausgegeben:  httpbody   ["11.670"]. Mein Regex ([\d.]+) erfasst also 11.670. Als reading Volt, bekomme ich allerdings nur eine 1.1

Log.

2019.10.27 18:19:27 1:  Logfile gelöscht
2019.10.27 18:19:59 5:  3dMower: get called with Volt
2019.10.27 18:19:59 5:  3dMower: get found option Volt in attribute get2Name
2019.10.27 18:19:59 4:  3dMower: get will now request Volt, no optional value
2019.10.27 18:19:59 4:  3dMower: AddToQueue adds get2, initial queue len: 0
2019.10.27 18:19:59 5:  3dMower: AddToQueue adds type get2 to URL http://blynk-cloud.com/XXXXXXXXXXXX/get/V3, no data, no headers, retry 0
2019.10.27 18:19:59 5:  3dMower: HandleSendQueue called, qlen = 1
2019.10.27 18:19:59 4:  3dMower: HandleSendQueue sends request type get2 to URL http://blynk-cloud.com/XXXXXXXXXXXX/get/V3, No Data, No Header
timeout 2
2019.10.27 18:19:59 5:  HttpUtils url=http://blynk-cloud.com/XXXXXXXXXXXX/get/V3
2019.10.27 18:19:59 4:  IP: blynk-cloud.com -> 139.59.206.133
2019.10.27 18:19:59 5:  HttpUtils request header:
GET /XXXXXXXXXXXX/get/V3 HTTP/1.0
Host: blynk-cloud.com
User-Agent: fhem
Accept-Encoding: gzip,deflate

2019.10.27 18:19:59 4:  http://blynk-cloud.com/XXXXXXXXXXXX/get/V3: HTTP response code 200
2019.10.27 18:19:59 5:  HttpUtils http://blynk-cloud.com/XXXXXXXXXXXX/get/V3: Got data, length: 10
2019.10.27 18:19:59 5:  HttpUtils response header:
HTTP/1.1 200 OK
content-type: application/json;charset=utf-8
access-control-allow-origin: *
content-length: 10
connection: close
2019.10.27 18:19:59 4:  3dMower: Read callback: request type was get2 retry 0,
Body: ["11.670"]
2019.10.27 18:19:59 5:  3dMower: ExtractSid called, context get, num 2
2019.10.27 18:19:59 4:  3dMower: CheckAuth decided no authentication required
2019.10.27 18:19:59 5:  3dMower: ExtractReading Volt with regex /([\d.]+)/...
2019.10.27 18:19:59 5:  3dMower: 1 capture group(s), matchlist = 1.1
2019.10.27 18:19:59 4:  3dMower: ExtractReading for get2-1 sets Volt to 1.1
2019.10.27 18:19:59 5:  3dMower: UpdateReadingList created list of reading.* nums to parse during getUpdate as
2019.10.27 18:19:59 4:  3dMower: Read response to get2 matched Reading(s) Volt
2019.10.27 18:19:59 5:  3dMower: HandleSendQueue called, qlen = 0



Sieht jemand mein Fehler?

Schönen Abend noch!
Titel: Antw:Kurzer Schubs httpMod Abfrage.
Beitrag von: amenomade am 27 Oktober 2019, 18:28:57
Das 1.1 kommt wahrscheinlich vom Header
HTTP/1.1


Mach lieber
\["([\d.]+)
Titel: Antw:Kurzer Schubs httpMod Abfrage.
Beitrag von: Esjay am 27 Oktober 2019, 18:33:46
Danke dir.
Wenn ich die url im Browser aufrufe, sehe ich den Header ja nicht, daher habe ich mich wohl täuschen lassen.

Immer nur Ärger, mit Sachen die man nicht sieht.


LG
Titel: Antw:Kurzer Schubs httpMod Abfrage.
Beitrag von: amenomade am 27 Oktober 2019, 18:34:43
Das sieht man aber ;)
Zitat2019.10.27 18:19:59 5:  HttpUtils response header:
HTTP/1.1 200 OK
content-type: application/json;charset=utf-8
access-control-allow-origin: *
content-length: 10
connection: close