Autor Thema: HTTPMOD Login  (Gelesen 11302 mal)

Offline holzwurm83

  • Sr. Member
  • ****
  • Beiträge: 668
HTTPMOD Login
« am: 28 Oktober 2017, 16:35:28 »
Hallo zusammen,

ich würde gerne meine Wasserenthärtungsanlage per HTTPMOD auslesen. Allerdings scheitere ich schon bereits am Verständnis, wie ich mich auf der Website einlogge.

https://wifi.ecowater.com/Site/Login

Habe auch schon die Beschreibungen gelesen, aber damit komme ich leider nicht weiter.

Ich hoffe ihr könnt mir weiterhelfen?
- Fhem auf einem MacMini Server
- CUL; HMLAN; CUNO2 für FS20; HM-Wired RS485 LAN Gateway
- HMW_Sen_SC_12_FM; HMW_LC_Sw2_DR; HMW_LC_Bl1_DR; HMW_IO_12_Sw7; HMW_IO_12_Sw14_DR; HMW_IO_12_FM; HBW_1W_T10
- HM-TC-IT-WM-W-EU; HM-CC-RT-DN

Offline fiedel

  • Hero Member
  • *****
  • Beiträge: 1733
Antw:HTTPMOD Login
« Antwort #1 am: 29 Oktober 2017, 09:04:41 »
Dieser Thread enthält viele nützliche Infos zum Login. Vielleicht kommst du damit weiter...
FHEM 5.7 FeatureLevel: 5.7 auf Dreamplug/Deb. 7; Perl: v5.14.2
HM: HM-CFG-USB-2 + hmland | SlowRF: CUNO V2.1/CULFW V 1.43 868
OWServer:LinkUSBi | OWDevice:DS18S20|DS2401|DS2406|DS2423

Offline holzwurm83

  • Sr. Member
  • ****
  • Beiträge: 668
Antw:HTTPMOD Login
« Antwort #2 am: 29 Oktober 2017, 18:49:28 »
Danke, das hat mich auf jeden Fall ein Stück weiter gebracht. Ohne eure Hilfe werde ich allerdings nicht an Ziel kommen. Schaffe den Login leider immer noch nicht. Habe es versucht zu verstehen und anzupassen, aber dass ist für mich leider nicht so einfach.

Hier mal ein List was ich bis jetzt habe:

Internals:
   BUSY       0
   CFGFN
   CHANGED
   DEF        https://wifi.ecowater.com/Dashboard/Index/meineMail/AC000W000028486 60
   HTTPCookies ASP.NET_SessionId=kuz312cvgdmpth5b2mtc5dbn; path=/
 
   Interval   60
   LASTSEND   1509299112.62502
   MainURL    https://wifi.ecowater.com/Dashboard/Index/meineMail/AC000W000028486
   ModuleVersion 3.4.0 - 9.9.2017
   NAME       H2O_Anlage
   NR         10453
   STATE      ???
   TRIGGERTIME 1509299172.62435
   TRIGGERTIME_FMT 2017-10-29 18:46:12
   TYPE       HTTPMOD
   addr       https://wifi.ecowater.com:443
   buf
   code       400
   conn
   data
   displayurl https://wifi.ecowater.com/Dashboard/Index/meineMail/AC000W000028486
   header     Cookie: ASP.NET_SessionId=kuz312cvgdmpth5b2mtc5dbn; path=/
 
   host       wifi.ecowater.com
   httpheader HTTP/1.1 400 Bad Request
 
Content-Type: text/html; charset=us-ascii
 
Server: Microsoft-HTTPAPI/2.0
 
Date: Sun, 29 Oct 2017 17:45:11 GMT
 
Connection: close
 
Content-Length: 311
   httpversion 1.0
   hu_blocking 0
   hu_filecount 254
   hu_port    443
   hu_portSfx
   ignoreredirects 0
   loglevel   4
   path       /Dashboard/Index/meineMail/AC000W000028486
   protocol   https
   redirects  0
   timeout    2
   url        https://wifi.ecowater.com/Dashboard/Index/meineMail/AC000W000028486
   value      0
   HTTPCookieHash:
     ASP.NET_SessionId:
       Options    path=/; HttpOnly
 
       Value      kuz312cvgdmpth5b2mtc5dbn
     path:
       Options
       Value      /
 
   QUEUE:
   READINGS:
   REQUEST:
     data
     header
     ignoreredirects 0
     retryCount 0
     type       update
     url        https://wifi.ecowater.com/Dashboard/Index/meineMail/AC000W000028486
     value      0
   sslargs:
Attributes:
   enableCookies 1
   reAuthRegex id="login"|Unauthorized
   reading01Name VerbrauchHeute
   reading01Regex <h1 id="water_today" </h1>[^0-9]
   room       test
   sid01Data  username=meineMail&password=meinPasswort
   sid01URL   https://wifi.ecowater.com/Site/Login
   userattr   reading01Name reading01Regex sid01Data sid01URL
   verbose    5


Hier ist ein Auszug aus dem Log:

2017.10.29 18:27:51 4: H2O_Anlage: GetUpdate called (update)
2017.10.29 18:27:51 4: H2O_Anlage: update timer modified: will call GetUpdate in 60.0 seconds at 2017-10-29 18:28:51
2017.10.29 18:27:51 4: H2O_Anlage: AddToQueue adds update, initial queue len: 0
2017.10.29 18:27:51 5: H2O_Anlage: AddToQueue adds type update to URL https://wifi.ecowater.com/Dashboard/Index/XXXXmeine_MAIL_xxxx/AC000W000028486, no data, no headers, retry 0
2017.10.29 18:27:51 5: H2O_Anlage: HandleSendQueue called, qlen = 1
2017.10.29 18:27:51 5: H2O_Anlage: HandleSendQueue is adding Cookies: ASP.NET_SessionId=kuz312cvgdmpth5b2mtc5dbn; path=/
2017.10.29 18:27:51 4: H2O_Anlage: HandleSendQueue sends request type update to URL https://wifi.ecowater.com/Dashboard/Index/XXXXmeine_MAIL_xxxx/AC000W000028486, No Data,
header: Cookie: ASP.NET_SessionId=kuz312cvgdmpth5b2mtc5dbn; path=/
,
timeout 2
2017.10.29 18:27:51 4: HttpUtils url=https://wifi.ecowater.com/Dashboard/Index/XXXXmeine_MAIL_xxxx/AC000W000028486
2017.10.29 18:27:51 5: HttpUtils request header:
GET /Dashboard/Index/XXXXmeine_MAIL_xxxx/AC000W000028486 HTTP/1.0
Host: wifi.ecowater.com
User-Agent: fhem
Cookie: ASP.NET_SessionId=kuz312cvgdmpth5b2mtc5dbn; path=/

Content-Length: 0
Content-Type: application/x-www-form-urlencoded

2017.10.29 18:27:51 4: https://wifi.ecowater.com/Dashboard/Index/XXXXmeine_MAIL_xxxx/AC000W000028486: HTTP response code 400
2017.10.29 18:27:51 4: HttpUtils https://wifi.ecowater.com/Dashboard/Index/XXXXmeine_MAIL_xxxx/AC000W000028486: Got data, length: 311
2017.10.29 18:27:51 5: HttpUtils response header:
HTTP/1.1 400 Bad Request
Content-Type: text/html; charset=us-ascii
Server: Microsoft-HTTPAPI/2.0
Date: Sun, 29 Oct 2017 17:27:49 GMT
Connection: close
Content-Length: 311
2017.10.29 18:27:51 4: H2O_Anlage: Read callback: request type was update retry 0,
Header: HTTP/1.1 400 Bad Request
Content-Type: text/html; charset=us-ascii
Server: Microsoft-HTTPAPI/2.0
Date: Sun, 29 Oct 2017 17:27:49 GMT
Connection: close
Content-Length: 311,
Body: <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN""http://www.w3.org/TR/html4/strict.dtd">
<HTML><HEAD><TITLE>Bad Request</TITLE>
<META HTTP-EQUIV="Content-Type" Content="text/html; charset=us-ascii"></HEAD>
<BODY><h2>Bad Request</h2>
<hr><p>HTTP Error 400. The request is badly formed.</p>
</BODY></HTML>

2017.10.29 18:27:51 5: H2O_Anlage: looking for Cookies in HTTP/1.1 400 Bad Request
Content-Type: text/html; charset=us-ascii
Server: Microsoft-HTTPAPI/2.0
Date: Sun, 29 Oct 2017 17:27:49 GMT
Connection: close
Content-Length: 311
2017.10.29 18:27:51 5: H2O_Anlage: ExtractSid called, context reading, num
2017.10.29 18:27:51 5: H2O_Anlage: CheckAuth is checking buffer with ReAuthRegex id="login"|Unauthorized
2017.10.29 18:27:51 4: H2O_Anlage: CheckAuth decided no authentication required
2017.10.29 18:27:51 5: H2O_Anlage: Read starts parsing response to update with defined readings: 01
2017.10.29 18:27:51 5: H2O_Anlage: ExtractReading VerbrauchHeute with regex /<h1 id="water_today" </h1>[^0-9]/...
2017.10.29 18:27:51 5: H2O_Anlage: ExtractReading VerbrauchHeute did not match
2017.10.29 18:27:51 3: H2O_Anlage: Read response to update didn't match any Reading
2017.10.29 18:27:51 5: H2O_Anlage: HandleSendQueue called, qlen = 02017.10.29 18:27:54 3: SB_SERVER_Notify(SqueezeBoxServer): mediaserver changed to present presence: present
2017.10.29 18:28:10 3: H2O_Anlage: Defined with URL https://wifi.ecowater.com/Dashboard/Index/XXXXmeine_MAIL_xxxx/AC000W000028486 and interval 60
2017.10.29 18:28:10 4: H2O_Anlage: update timer modified: will call GetUpdate in 2.0 seconds at 2017-10-29 18:28:12
2017.10.29 18:28:10 5: H2O_Anlage: UpdateHintList called
2017.10.29 18:28:10 5: H2O_Anlage: UpdateHintList: setlist =
2017.10.29 18:28:10 5: H2O_Anlage: UpdateHintList: getlist =
2017.10.29 18:28:12 4: H2O_Anlage: GetUpdate called (update)
2017.10.29 18:28:12 4: H2O_Anlage: update timer modified: will call GetUpdate in 60.0 seconds at 2017-10-29 18:29:12
2017.10.29 18:28:12 4: H2O_Anlage: AddToQueue adds update, initial queue len: 0
2017.10.29 18:28:12 5: H2O_Anlage: AddToQueue adds type update to URL https://wifi.ecowater.com/Dashboard/Index/XXXXmeine_MAIL_xxxx/AC000W000028486, no data, no headers, retry 0
2017.10.29 18:28:12 5: H2O_Anlage: HandleSendQueue called, qlen = 1
2017.10.29 18:28:12 5: H2O_Anlage: HandleSendQueue is adding Cookies: ASP.NET_SessionId=kuz312cvgdmpth5b2mtc5dbn; path=/
2017.10.29 18:28:12 4: H2O_Anlage: HandleSendQueue sends request type update to URL https://wifi.ecowater.com/Dashboard/Index/XXXXmeine_MAIL_xxxx/AC000W000028486, No Data,
header: Cookie: ASP.NET_SessionId=kuz312cvgdmpth5b2mtc5dbn; path=/
,
timeout 2
2017.10.29 18:28:12 4: HttpUtils url=https://wifi.ecowater.com/Dashboard/Index/XXXXmeine_MAIL_xxxx/AC000W000028486
2017.10.29 18:28:12 5: HttpUtils request header:
GET /Dashboard/Index/XXXXmeine_MAIL_xxxx/AC000W000028486 HTTP/1.0
Host: wifi.ecowater.com
User-Agent: fhem
Cookie: ASP.NET_SessionId=kuz312cvgdmpth5b2mtc5dbn; path=/

Content-Length: 0
Content-Type: application/x-www-form-urlencoded

2017.10.29 18:28:13 4: https://wifi.ecowater.com/Dashboard/Index/XXXXmeine_MAIL_xxxx/AC000W000028486: HTTP response code 400
2017.10.29 18:28:13 4: HttpUtils https://wifi.ecowater.com/Dashboard/Index/XXXXmeine_MAIL_xxxx/AC000W000028486: Got data, length: 311
2017.10.29 18:28:13 5: HttpUtils response header:
HTTP/1.1 400 Bad Request
Content-Type: text/html; charset=us-ascii
Server: Microsoft-HTTPAPI/2.0
Date: Sun, 29 Oct 2017 17:28:11 GMT
Connection: close
Content-Length: 311
2017.10.29 18:28:13 4: H2O_Anlage: Read callback: request type was update retry 0,
Header: HTTP/1.1 400 Bad Request
Content-Type: text/html; charset=us-ascii
Server: Microsoft-HTTPAPI/2.0
Date: Sun, 29 Oct 2017 17:28:11 GMT
Connection: close
Content-Length: 311,
Body: <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN""http://www.w3.org/TR/html4/strict.dtd">
<HTML><HEAD><TITLE>Bad Request</TITLE>
<META HTTP-EQUIV="Content-Type" Content="text/html; charset=us-ascii"></HEAD>
<BODY><h2>Bad Request</h2>
<hr><p>HTTP Error 400. The request is badly formed.</p>
</BODY></HTML>

2017.10.29 18:28:13 5: H2O_Anlage: looking for Cookies in HTTP/1.1 400 Bad Request
Content-Type: text/html; charset=us-ascii
Server: Microsoft-HTTPAPI/2.0
Date: Sun, 29 Oct 2017 17:28:11 GMT
Connection: close
Content-Length: 311
2017.10.29 18:28:13 5: H2O_Anlage: ExtractSid called, context reading, num
2017.10.29 18:28:13 5: H2O_Anlage: CheckAuth is checking buffer with ReAuthRegex id="login"|Unauthorized
2017.10.29 18:28:13 4: H2O_Anlage: CheckAuth decided no authentication required
2017.10.29 18:28:13 5: H2O_Anlage: UpdateReadingList created list of reading.* nums to parse during getUpdate as 01
2017.10.29 18:28:13 5: H2O_Anlage: Read starts parsing response to update with defined readings: 01
2017.10.29 18:28:13 5: H2O_Anlage: ExtractReading VerbrauchHeute with regex /<h1 id="water_today" </h1>[^0-9]/...
2017.10.29 18:28:13 5: H2O_Anlage: ExtractReading VerbrauchHeute did not match
2017.10.29 18:28:13 3: H2O_Anlage: Read response to update didn't match any Reading
2017.10.29 18:28:13 5: H2O_Anlage: HandleSendQueue called, qlen = 0




Ich würde mich freuen wenn ihr euch die Zeit nehmen könnt mir zu helfen?
- Fhem auf einem MacMini Server
- CUL; HMLAN; CUNO2 für FS20; HM-Wired RS485 LAN Gateway
- HMW_Sen_SC_12_FM; HMW_LC_Sw2_DR; HMW_LC_Bl1_DR; HMW_IO_12_Sw7; HMW_IO_12_Sw14_DR; HMW_IO_12_FM; HBW_1W_T10
- HM-TC-IT-WM-W-EU; HM-CC-RT-DN

Offline amenomade

  • Hero Member
  • *****
  • Beiträge: 4360
Antw:HTTPMOD Login
« Antwort #3 am: 01 November 2017, 14:27:59 »
Probier mal mit
attr H2O_Anlage reAuthRegex Please Sign In
attr H2O_Anlage Email=EMAIL&Password=PASSWORT&Remember=false
EMAIL und PASSWORT durch deine eigene ersetzen.

Dann musst Du prüfen, dass die Seite, die Du aufrufst, immer gleich ist: https://wifi.ecowater.com/Dashboard/Index/XXXXmeine_MAIL_xxxx/AC000W000028486
Insbesondere die Nummer am Ende. AC00W00028486. Hat es mit deinem Zähler zu tun, oder ist es irgendwelche dynamische Data?


Poste mal dann wieder die Log mit verbose 5 und ein "list H20_Anlage" (bitte vorher anonymisieren, insb Email und Passwort)
FHEM 5.8 Pi 3, EchoDot, CUL868+Selbstbau 1/2λ-Dipol-Antenne, USB Optolink / Vitotronic, und HM Komponenten, Rademacher Duofern Jalousien, Fritz!Dect Thermostaten

Offline holzwurm83

  • Sr. Member
  • ****
  • Beiträge: 668
Antw:HTTPMOD Login
« Antwort #4 am: 01 November 2017, 17:21:54 »
Hi,

vielen Dank für dein Feedback!!! :)

Die Nummer muss immer gleich sein. Das ist die meiner Anlage.

Hier ist der LIST:
Internals:
   BUSY       0
   CFGFN
   CHANGED
   DEF        https://wifi.ecowater.com/Dashboard/Index/xxxxxmeine_Mailxxxx/AC000W000028486 60
   HTTPCookies ASP.NET_SessionId=egtrn2zewdtlvqunyh1mcsxw; path=/
 
   Interval   60
   LASTSEND   1509552923.81186
   LastAuthTry 2017-11-01 17:07:18
   MainURL    https://wifi.ecowater.com/Dashboard/Index/xxxxxmeine_Mailxxxx/AC000W000028486
   ModuleVersion 3.4.0 - 9.9.2017
   NAME       H2O_Anlage
   NR         10453
   STATE      ???
   TRIGGERTIME 1509552983.81014
   TRIGGERTIME_FMT 2017-11-01 17:16:23
   TYPE       HTTPMOD
   addr       https://wifi.ecowater.com:443
   buf
   code       400
   conn
   data
   displayurl https://wifi.ecowater.com/Dashboard/Index/xxxxxmeine_Mailxxxx/AC000W000028486
   header     Cookie: ASP.NET_SessionId=egtrn2zewdtlvqunyh1mcsxw; path=/
 
   host       wifi.ecowater.com
   httpheader HTTP/1.1 400 Bad Request
 
Content-Type: text/html; charset=us-ascii
 
Server: Microsoft-HTTPAPI/2.0
 
Date: Wed, 01 Nov 2017 16:15:13 GMT
 
Connection: close
 
Content-Length: 311
   httpversion 1.0
   hu_blocking 0
   hu_filecount 253
   hu_port    443
   hu_portSfx
   ignoreredirects 0
   loglevel   4
   path       /Dashboard/Index/xxxxxmeine_Mailxxxx/AC000W000028486
   protocol   https
   redirects  0
   timeout    2
   url        https://wifi.ecowater.com/Dashboard/Index/xxxxxmeine_Mailxxxx/AC000W000028486
   value      0
   HTTPCookieHash:
     ASP.NET_SessionId:
       Options    path=/; HttpOnly
 
       Value      egtrn2zewdtlvqunyh1mcsxw
     path:
       Options
       Value      /
 
   QUEUE:
   READINGS:
   REQUEST:
     data
     header
     ignoreredirects 0
     retryCount 0
     type       update
     url        https://wifi.ecowater.com/Dashboard/Index/xxxxxmeine_Mailxxxx/AC000W000028486
     value      0
   sslargs:
Attributes:
   enableCookies 1
   reAuthRegex Please Sign In
   reading01Name VerbrauchHeute
   reading01Regex <h1 id="water_today" </h1>[^0-9]
   room       test
   sid01Data  attr H2O_Anlage Email=MEINE_MAIL&Password=XXXXXXXXX&Remember=false
   sid01URL   https://wifi.ecowater.com/Site/Login
   userattr   reading01Name reading01Regex sid01Data sid01URL
   verbose    5

Und hier noch der LOG:
2017.11.01 17:10:19 4: H2O_Anlage: GetUpdate called (update)
2017.11.01 17:10:19 4: H2O_Anlage: update timer modified: will call GetUpdate in 60.0 seconds at 2017-11-01 17:11:19
2017.11.01 17:10:19 4: H2O_Anlage: AddToQueue adds update, initial queue len: 0
2017.11.01 17:10:19 5: H2O_Anlage: AddToQueue adds type update to URL https://wifi.ecowater.com/Dashboard/Index/xxxxxmeine_Mailxxxx/AC000W000028486, no data, no headers, retry 0
2017.11.01 17:10:19 5: H2O_Anlage: HandleSendQueue called, qlen = 1
2017.11.01 17:10:19 5: H2O_Anlage: HandleSendQueue is adding Cookies: ASP.NET_SessionId=egtrn2zewdtlvqunyh1mcsxw; path=/
2017.11.01 17:10:19 4: H2O_Anlage: HandleSendQueue sends request type update to URL https://wifi.ecowater.com/Dashboard/Index/xxxxxmeine_Mailxxxx/AC000W000028486, No Data,
header: Cookie: ASP.NET_SessionId=egtrn2zewdtlvqunyh1mcsxw; path=/
,
timeout 2
2017.11.01 17:10:19 4: HttpUtils url=https://wifi.ecowater.com/Dashboard/Index/xxxxxmeine_Mailxxxx/AC000W000028486
2017.11.01 17:10:19 5: HttpUtils request header:
GET /Dashboard/Index/xxxxxmeine_Mailxxxx/AC000W000028486 HTTP/1.0
Host: wifi.ecowater.com
User-Agent: fhem
Cookie: ASP.NET_SessionId=egtrn2zewdtlvqunyh1mcsxw; path=/

Content-Length: 0
Content-Type: application/x-www-form-urlencoded

2017.11.01 17:10:19 4: https://wifi.ecowater.com/Dashboard/Index/xxxxxmeine_Mailxxxx/AC000W000028486: HTTP response code 400
2017.11.01 17:10:19 4: HttpUtils https://wifi.ecowater.com/Dashboard/Index/xxxxxmeine_Mailxxxx/AC000W000028486: Got data, length: 311
2017.11.01 17:10:19 5: HttpUtils response header:
HTTP/1.1 400 Bad Request
Content-Type: text/html; charset=us-ascii
Server: Microsoft-HTTPAPI/2.0
Date: Wed, 01 Nov 2017 16:10:08 GMT
Connection: close
Content-Length: 311
2017.11.01 17:10:19 4: H2O_Anlage: Read callback: request type was update retry 0,
Header: HTTP/1.1 400 Bad Request
Content-Type: text/html; charset=us-ascii
Server: Microsoft-HTTPAPI/2.0
Date: Wed, 01 Nov 2017 16:10:08 GMT
Connection: close
Content-Length: 311,
Body: <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN""http://www.w3.org/TR/html4/strict.dtd">
<HTML><HEAD><TITLE>Bad Request</TITLE>
<META HTTP-EQUIV="Content-Type" Content="text/html; charset=us-ascii"></HEAD>
<BODY><h2>Bad Request</h2>
<hr><p>HTTP Error 400. The request is badly formed.</p>
</BODY></HTML>

2017.11.01 17:10:19 5: H2O_Anlage: looking for Cookies in HTTP/1.1 400 Bad Request
Content-Type: text/html; charset=us-ascii
Server: Microsoft-HTTPAPI/2.0
Date: Wed, 01 Nov 2017 16:10:08 GMT
Connection: close
Content-Length: 311
2017.11.01 17:10:19 5: H2O_Anlage: ExtractSid called, context reading, num
2017.11.01 17:10:19 5: H2O_Anlage: CheckAuth is checking buffer with ReAuthRegex Please Sign In
2017.11.01 17:10:19 4: H2O_Anlage: CheckAuth decided no authentication required
2017.11.01 17:10:19 5: H2O_Anlage: Read starts parsing response to update with defined readings: 01
2017.11.01 17:10:19 5: H2O_Anlage: ExtractReading VerbrauchHeute with regex /<h1 id="water_today" </h1>[^0-9]/...
2017.11.01 17:10:19 5: H2O_Anlage: ExtractReading VerbrauchHeute did not match
2017.11.01 17:10:19 3: H2O_Anlage: Read response to update didn't match any Reading
2017.11.01 17:10:19 5: H2O_Anlage: HandleSendQueue called, qlen = 0
- Fhem auf einem MacMini Server
- CUL; HMLAN; CUNO2 für FS20; HM-Wired RS485 LAN Gateway
- HMW_Sen_SC_12_FM; HMW_LC_Sw2_DR; HMW_LC_Bl1_DR; HMW_IO_12_Sw7; HMW_IO_12_Sw14_DR; HMW_IO_12_FM; HBW_1W_T10
- HM-TC-IT-WM-W-EU; HM-CC-RT-DN

Offline amenomade

  • Hero Member
  • *****
  • Beiträge: 4360
Antw:HTTPMOD Login
« Antwort #5 am: 02 November 2017, 00:02:33 »
Sorry
attr H2O_Anlage sid01Data Email=MEINE_MAIL&Password=XXXXXXXXX&Remember=false
FHEM 5.8 Pi 3, EchoDot, CUL868+Selbstbau 1/2λ-Dipol-Antenne, USB Optolink / Vitotronic, und HM Komponenten, Rademacher Duofern Jalousien, Fritz!Dect Thermostaten

Offline amenomade

  • Hero Member
  • *****
  • Beiträge: 4360
Antw:HTTPMOD Login
« Antwort #6 am: 02 November 2017, 07:53:10 »
Also... ich habe mir ein Konto bei ecowater.com angelegt, und ein bisschen rumgespielt.
Ich befürchte, es wird nicht funktionieren: das Loginverfahren ist 2-stufig, und es werden zwei Cookies an unterschiedene Momente gelegt.

=> Get Loginseite (noch ohne Cookie) => OK, Antwort: Set-Cookie: ASP.NET_SessionId=edemr1ebflmclaa4oalcqok5
=> Post Logindata (mit oberem Cookie) => OK, Antwort: Set-Cookie: .ASPXAUTH=A306AE16640B4BC17A4365F60C04C173D6DC0usw...

Dieses 2. Cookie wird aber von HTTPMOD nicht mehr gesetzt, und bei nachfolgenden Gets nicht mitgegeben. Deswegen vermutlich die systematische Antwort: HTTP 400 Bad Request. Leider ändert sich .ASPXAUTH bei jedem neuen Login, so dass man es nicht "fest" mitgeben kann.

Vielleicht wird Stefan eine Idee haben:
Zitat
FHEM/98_HTTPMOD.pm           stefanstrobel        Sonstiges
aber m.A. wird es nur mit Perl lösbar.
« Letzte Änderung: 02 November 2017, 07:55:52 von amenomade »
FHEM 5.8 Pi 3, EchoDot, CUL868+Selbstbau 1/2λ-Dipol-Antenne, USB Optolink / Vitotronic, und HM Komponenten, Rademacher Duofern Jalousien, Fritz!Dect Thermostaten

Offline amenomade

  • Hero Member
  • *****
  • Beiträge: 4360
Antw:HTTPMOD Login
« Antwort #7 am: 02 November 2017, 08:47:29 »
So schaffe ich mit CURL das Login (da ich selbst kein ecowater Gerät habe, kann ich am Ende nur die Seite erreichen, wo man ein Gerät anlegen kann, sprich /Customer/Connect):

curl -v https://wifi.ecowater.com/Site/LoginAus der Antwort nehme ich das SessionId, dann:
curl -v -b ASP.NET_SessionId=0ma3mjbvjwwofh1s31ibrbdv -d Email=meinEmail&Password=meinpasswort https://wifi.ecowater.com/Site/LoginAus der Antwort nehme ich das XAUTH, dann:
curl -v -b "ASP.NET_SessionId=0ma3mjbvjwwofh1s31ibrbdv;.ASPXAUTH=2083AE0FF1FA76667F893FD98F7usw..." https://wifi.ecowater.com/Customer/Connect/meinEmail
Und schon kommen die Daten.

Vielleicht ist doch was mit HTTPMOD (und die "replacement" Attribute) möglich. Ich muss noch spielen.
FHEM 5.8 Pi 3, EchoDot, CUL868+Selbstbau 1/2λ-Dipol-Antenne, USB Optolink / Vitotronic, und HM Komponenten, Rademacher Duofern Jalousien, Fritz!Dect Thermostaten

Offline amenomade

  • Hero Member
  • *****
  • Beiträge: 4360
Antw:HTTPMOD Login
« Antwort #8 am: 02 November 2017, 11:39:15 »
Also: so funktioniert es bei mir... wie gesagt: ich kann nur die Seite /Customer/Connect abfragen. Vielleicht sind noch einige Anpassungen nötig

defmod ecowater HTTPMOD https://wifi.ecowater.com/Customer/Connect/meineEmail 60
attr ecowater userattr requestHeader1 requestHeader2 sid01Data sid01Header1 sid01IdRegex sid01IgnoreRedirects:0,1 sid01URL sid02Data sid02Header1 sid02IdRegex sid02URL sidURL
attr ecowater clearSIdBeforeAuth 1
attr ecowater disable 0
attr ecowater reAuthRegex (class="login-item"|Bad Request)
attr ecowater requestHeader1 Cookie: $sid
attr ecowater room ecowater
attr ecowater sid01IdRegex (ASP.NET_SessionId[^;;\n]+)
attr ecowater sid02Data Email=meineEmail&Password=meinPasswort&Remember=false
attr ecowater sid02Header1 Cookie: $sid
attr ecowater sid02IdRegex Cookie: ([^\n]+)
attr ecowater sidURL https://wifi.ecowater.com/Site/Login
attr ecowater verbose 5
FHEM 5.8 Pi 3, EchoDot, CUL868+Selbstbau 1/2λ-Dipol-Antenne, USB Optolink / Vitotronic, und HM Komponenten, Rademacher Duofern Jalousien, Fritz!Dect Thermostaten

Offline holzwurm83

  • Sr. Member
  • ****
  • Beiträge: 668
Antw:HTTPMOD Login
« Antwort #9 am: 02 November 2017, 20:51:14 »
Also ich habe das jetzt mal so eingetragen nur mit meiner URL. Es tut sich auf jeden Fall einiges nur blicke ich da nicht durch. Sieht aber nicht so aus als ob das funktioniert.

Hier mal der Log:
2017.11.02 20:26:40 4: H2O_Anlage: GetUpdate called (update)
2017.11.02 20:26:40 4: H2O_Anlage: update timer modified: will call GetUpdate in 60.0 seconds at 2017-11-02 20:27:40
2017.11.02 20:26:40 4: H2O_Anlage: AddToQueue adds update, initial queue len: 0
2017.11.02 20:26:40 5: H2O_Anlage: AddToQueue adds type update to URL https://wifi.ecowater.com/Dashboard/Index/xxxxmeineMailxxxx/AC000W000028486, no data, header Cookie: $sid, retry 0
2017.11.02 20:26:40 5: H2O_Anlage: HandleSendQueue called, qlen = 1
2017.11.02 20:26:40 4: H2O_Anlage: HandleSendQueue sends request type update to URL https://wifi.ecowater.com/Dashboard/Index/xxxxmeineMailxxxx/AC000W000028486, No Data,
header: Cookie: DC_SESSION_DATA=; path=/
,
timeout 2
2017.11.02 20:26:40 4: HttpUtils url=https://wifi.ecowater.com/Dashboard/Index/xxxxmeineMailxxxx/AC000W000028486
2017.11.02 20:26:40 5: HttpUtils request header:
GET /Dashboard/Index/xxxxmeineMailxxxx/AC000W000028486 HTTP/1.0
Host: wifi.ecowater.com
User-Agent: fhem
Cookie: DC_SESSION_DATA=; path=/

Content-Length: 0
Content-Type: application/x-www-form-urlencoded

2017.11.02 20:26:40 4: https://wifi.ecowater.com/Dashboard/Index/xxxxmeineMailxxxx/AC000W000028486: HTTP response code 400
2017.11.02 20:26:40 4: HttpUtils https://wifi.ecowater.com/Dashboard/Index/xxxxmeineMailxxxx/AC000W000028486: Got data, length: 311
2017.11.02 20:26:40 5: HttpUtils response header:
HTTP/1.1 400 Bad Request
Content-Type: text/html; charset=us-ascii
Server: Microsoft-HTTPAPI/2.0
Date: Thu, 02 Nov 2017 19:26:26 GMT
Connection: close
Content-Length: 311
2017.11.02 20:26:40 4: H2O_Anlage: Read callback: request type was update retry 0,
Header: HTTP/1.1 400 Bad Request
Content-Type: text/html; charset=us-ascii
Server: Microsoft-HTTPAPI/2.0
Date: Thu, 02 Nov 2017 19:26:26 GMT
Connection: close
Content-Length: 311,
Body: <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN""http://www.w3.org/TR/html4/strict.dtd">
<HTML><HEAD><TITLE>Bad Request</TITLE>
<META HTTP-EQUIV="Content-Type" Content="text/html; charset=us-ascii"></HEAD>
<BODY><h2>Bad Request</h2>
<hr><p>HTTP Error 400. The request is badly formed.</p>
</BODY></HTML>

2017.11.02 20:26:40 5: H2O_Anlage: ExtractSid called, context reading, num
2017.11.02 20:26:40 5: H2O_Anlage: CheckAuth is checking buffer with ReAuthRegex (class="login-item"|Bad Request)
2017.11.02 20:26:40 4: H2O_Anlage: CheckAuth decided new authentication required
2017.11.02 20:26:40 4: H2O_Anlage: Auth called with Steps: 01 02
2017.11.02 20:26:40 4: H2O_Anlage: AddToQueue adds auth02, initial queue len: 0, prio
2017.11.02 20:26:40 5: H2O_Anlage: AddToQueue prepends type auth02 to URL https://wifi.ecowater.com/Dashboard/Index/xxxxmeineMailxxxx/AC000W000028486, no data, header Cookie: $sid, retry 0
2017.11.02 20:26:40 4: H2O_Anlage: AddToQueue adds auth01, initial queue len: 1, prio
2017.11.02 20:26:40 5: H2O_Anlage: AddToQueue prepends type auth01 to URL https://wifi.ecowater.com/Site/Login, data Email=xxxxmeineMailxxxx&Password=xxxxxxxx&Remember=false, no headers, retry 0
2017.11.02 20:26:40 5: H2O_Anlage: HandleSendQueue called, qlen = 2
2017.11.02 20:26:40 4: H2O_Anlage: HandleSendQueue sends request type auth01 to URL https://wifi.ecowater.com/Site/Login,
data: Email=xxxxmeineMailxxxx&Password=xxxxxxxx&Remember=false, No Header,
timeout 2
2017.11.02 20:26:40 4: HttpUtils url=https://wifi.ecowater.com/Site/Login
2017.11.02 20:26:40 4: H2O_Anlage: AddToQueue adds update, initial queue len: 1
2017.11.02 20:26:40 5: H2O_Anlage: AddToQueue adds type update to URL https://wifi.ecowater.com/Dashboard/Index/xxxxmeineMailxxxx/AC000W000028486, no data, header Cookie: $sid, retry 1
2017.11.02 20:26:40 5: H2O_Anlage: HandleSendQueue called, qlen = 2
2017.11.02 20:26:40 5: H2O_Anlage: HandleSendQueue - still waiting for reply to last request, delay sending from queue
2017.11.02 20:26:40 4: H2O_Anlage: CheckAuth requeued request update after auth, retryCount 0 ...
2017.11.02 20:26:40 5: HttpUtils request header:
POST /Site/Login HTTP/1.0
Host: wifi.ecowater.com
User-Agent: fhem
Content-Length: 67
Content-Type: application/x-www-form-urlencoded

2017.11.02 20:26:41 4: https://wifi.ecowater.com/Site/Login: HTTP response code 302
2017.11.02 20:26:41 4: HttpUtils https://wifi.ecowater.com/Site/Login: Redirect to https://wifi.ecowater.com:443/Site/Index
2017.11.02 20:26:41 4: HttpUtils url=https://wifi.ecowater.com:443/Site/Index
2017.11.02 20:26:41 5: HttpUtils request header:
POST /Site/Index HTTP/1.0
Host: wifi.ecowater.com
User-Agent: fhem
Content-Length: 67
Content-Type: application/x-www-form-urlencoded

2017.11.02 20:26:41 5: H2O_Anlage: HandleSendQueue called, qlen = 2
2017.11.02 20:26:41 5: H2O_Anlage: HandleSendQueue - still waiting for reply to last request, delay sending from queue
2017.11.02 20:26:41 4: https://wifi.ecowater.com:443/Site/Index: HTTP response code 200
2017.11.02 20:26:41 4: HttpUtils https://wifi.ecowater.com:443/Site/Index: Got data, length: 2686
2017.11.02 20:26:41 5: HttpUtils response header:
HTTP/1.1 200 OK
Cache-Control: private
Content-Type: text/html; charset=utf-8
Server: Microsoft-IIS/8.5
Set-Cookie: ASP.NET_SessionId=egwpd1dzcmyu3b3d0ixffbia; path=/; HttpOnly
X-AspNetMvc-Version: 5.2
X-AspNet-Version: 4.0.30319
X-Powered-By: ASP.NET
Date: Thu, 02 Nov 2017 19:26:27 GMT
Connection: close
Content-Length: 2686
2017.11.02 20:26:41 4: H2O_Anlage: Read callback: request type was auth01 retry 0,
Header: HTTP/1.1 200 OK
Cache-Control: private
Content-Type: text/html; charset=utf-8
Server: Microsoft-IIS/8.5
Set-Cookie: ASP.NET_SessionId=egwpd1dzcmyu3b3d0ixffbia; path=/; HttpOnly
X-AspNetMvc-Version: 5.2
X-AspNet-Version: 4.0.30319
X-Powered-By: ASP.NET
Date: Thu, 02 Nov 2017 19:26:27 GMT
Connection: close
Content-Length: 2686,
Body: <p><h3>Object reference not set to an instance of an object.</h3><br/><b>https://wifi.ecowater.com/Site/Index<br/>/Site/Index</b><h3>51 Query String Params</h3><ul><li>Email = xxxxmeineMailxxxx</li><li>Password = xxxxxxxx</li><li>Remember = false</li><li>ASP.NET_SessionId = egwpd1dzcmyu3b3d0ixffbia</li><li>ALL_HTTP = HTTP_CONTENT_LENGTH:67
HTTP_CONTENT_TYPE:application/x-www-form-urlencoded
HTTP_HOST:wifi.ecowater.com
HTTP_USER_AGENT:fhem
</li><li>ALL_RAW = Content-Length: 67
Content-Type: application/x-www-form-urlencoded
Host: wifi.ecowater.com
User-Agent: fhem
</li><li>APPL_MD_PATH = /LM/W3SVC/10/ROOT</li><li>APPL_PHYSICAL_PATH = C:\inetpub\wwwroot\ecowater_wifi_site\</li><li>CERT_KEYSIZE = 256</li><li>CERT_SECRETKEYSIZE = 2048</li><li>CERT_SERVER_ISSUER = C=US, S=Arizona, L=Scottsdale, O="GoDaddy.com, Inc.", OU=http://certs.godaddy.com/repository/, CN=Go Daddy Secure Certificate Authority - G2</li><li>CERT_SERVER_SUBJECT = OU=Domain Control Validated, CN=mail.chipsunlimited.com</li><li>CONTENT_LENGTH = 67</li><li>CONTENT_TYPE = application/x-www-form-urlencoded</li><li>GATEWAY_INTERFACE = CGI/1.1</li><li>HTTPS = on</li><li>HTTPS_KEYSIZE = 256</li><li>HTTPS_SECRETKEYSIZE = 2048</li><li>HTTPS_SERVER_ISSUER = C=US, S=Arizona, L=Scottsdale, O="GoDaddy.com, Inc.", OU=http://certs.godaddy.com/repository/, CN=Go Daddy Secure Certificate Authority - G2</li><li>HTTPS_SERVER_SUBJECT = OU=Domain Control Validated, CN=mail.chipsunlimited.com</li><li>INSTANCE_ID = 10</li><li>INSTANCE_META_PATH = /LM/W3SVC/10</li><li>LOCAL_ADDR = 172.31.23.189</li><li>PATH_INFO = /Site/Index</li><li>PATH_TRANSLATED = C:\inetpub\wwwroot\ecowater_wifi_site\Site\Index</li><li>REMOTE_ADDR = 193.159.63.77</li><li>REMOTE_HOST = 193.159.63.77</li><li>REMOTE_PORT = 53643</li><li>REQUEST_METHOD = POST</li><li>SCRIPT_NAME = /Site/Index</li><li>SERVER_NAME = wifi.ecowater.com</li><li>SERVER_PORT = 443</li><li>SERVER_PORT_SECURE = 1</li><li>SERVER_PROTOCOL = HTTP/1.0</li><li>SERVER_SOFTWARE = Microsoft-IIS/8.5</li><li>URL = /Site/Index</li><li>HTTP_CONTENT_LENGTH = 67</li><li>HTTP_CONTENT_TYPE = application/x-www-form-urlencoded</li><li>HTTP_HOST = wifi.ecowater.com</li><li>HTTP_USER_AGENT = fhem</li></ul><br/><h3>Stack Trace</h3>   at DCWebLib.Infrastructure.DCAuthorizeAttribute.HandleUnauthorizedRequest(AuthorizationContext filterContext)
<br/>   at System.Web.Mvc.ControllerActionInvoker.InvokeAuthorizationFilters(ControllerContext controllerContext, IList`1 filters, ActionDescriptor actionDescriptor)
<br/>   at System.Web.Mvc.Async.AsyncControllerActionInvoker.<>c__DisplayClass21.<BeginInvokeAction>b__19(AsyncCallback asyncCallback, Object asyncState)</p>
2017.11.02 20:26:41 5: H2O_Anlage: ExtractSid called, context sid, num 01
2017.11.02 20:26:41 4: H2O_Anlage: ExtractSid set sid to ASP.NET_SessionId=egwpd1dzcmyu3b3d0ixffbia
2017.11.02 20:26:42 5: H2O_Anlage: HandleSendQueue called, qlen = 2
2017.11.02 20:26:42 4: H2O_Anlage: HandleSendQueue sends request type auth02 to URL https://wifi.ecowater.com/Dashboard/Index/xxxxmeineMailxxxx/AC000W000028486, No Data,
header: Cookie: ASP.NET_SessionId=egwpd1dzcmyu3b3d0ixffbia,
timeout 2
2017.11.02 20:26:42 4: HttpUtils url=https://wifi.ecowater.com/Dashboard/Index/xxxxmeineMailxxxx/AC000W000028486
2017.11.02 20:26:43 5: HttpUtils request header:
GET /Dashboard/Index/xxxxmeineMailxxxx/AC000W000028486 HTTP/1.0
Host: wifi.ecowater.com
User-Agent: fhem
Cookie: ASP.NET_SessionId=egwpd1dzcmyu3b3d0ixffbia
Content-Length: 0
Content-Type: application/x-www-form-urlencoded

2017.11.02 20:26:43 4: https://wifi.ecowater.com/Dashboard/Index/xxxxmeineMailxxxx/AC000W000028486: HTTP response code 302
2017.11.02 20:26:43 4: HttpUtils https://wifi.ecowater.com/Dashboard/Index/xxxxmeineMailxxxx/AC000W000028486: Redirect to https://wifi.ecowater.com:443/Site/Login?returnUrl=%2FDashboard%2FIndex%2FxxxxmeineMailxxxx%2FAC000W000028486&status=NotLoggedIn
2017.11.02 20:26:43 4: HttpUtils url=https://wifi.ecowater.com:443/Site/Login?returnUrl=%2FDashboard%2FIndex%2FxxxxmeineMailxxxx%2FAC000W000028486&status=NotLoggedIn
2017.11.02 20:26:43 5: HttpUtils request header:
GET /Site/Login?returnUrl=%2FDashboard%2FIndex%2FxxxxmeineMailxxxx%2FAC000W000028486&status=NotLoggedIn HTTP/1.0
Host: wifi.ecowater.com
User-Agent: fhem
Cookie: ASP.NET_SessionId=egwpd1dzcmyu3b3d0ixffbia
Content-Length: 0
Content-Type: application/x-www-form-urlencoded

2017.11.02 20:26:43 5: H2O_Anlage: HandleSendQueue called, qlen = 1
2017.11.02 20:26:43 5: H2O_Anlage: HandleSendQueue - still waiting for reply to last request, delay sending from queue
2017.11.02 20:26:43 4: https://wifi.ecowater.com:443/Site/Login?returnUrl=%2FDashboard%2FIndex%2FxxxxmeineMailxxxx%2FAC000W000028486&status=NotLoggedIn: HTTP response code 200
2017.11.02 20:26:43 4: HttpUtils https://wifi.ecowater.com:443/Site/Login?returnUrl=%2FDashboard%2FIndex%2FxxxxmeineMailxxxx%2FAC000W000028486&status=NotLoggedIn: Got data, length: 8101
2017.11.02 20:26:43 5: HttpUtils response header:
HTTP/1.1 200 OK
Cache-Control: private
Content-Type: text/html; charset=utf-8
Server: Microsoft-IIS/8.5
X-AspNetMvc-Version: 5.2
X-AspNet-Version: 4.0.30319
Set-Cookie: DC_SESSION_DATA=; path=/
X-Powered-By: ASP.NET
Date: Thu, 02 Nov 2017 19:26:29 GMT
Connection: close
Content-Length: 8101
2017.11.02 20:26:43 4: H2O_Anlage: Read callback: request type was auth02 retry 0,
Header: HTTP/1.1 200 OK
Cache-Control: private
Content-Type: text/html; charset=utf-8
Server: Microsoft-IIS/8.5
X-AspNetMvc-Version: 5.2
X-AspNet-Version: 4.0.30319
Set-Cookie: DC_SESSION_DATA=; path=/
X-Powered-By: ASP.NET
Date: Thu, 02 Nov 2017 19:26:29 GMT
Connection: close
Content-Length: 8101,
Body: <!DOCTYPE html>

<html>
<head>
    <title>Login</title>
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <link rel='shortcut icon' href='img/favicon.ico' type='image/x-icon'/>

<!--CSS STYLES-->
   
    <link href='https://fonts.googleapis.com/css?family=Open+Sans:400,300,600,700' rel='stylesheet' type='text/css'>
    <link href="/Content/css/jquery-ui-1.91.custom.css" rel="stylesheet" type="text/css">
    <link href="/Content/css/chosen.min.css" rel="stylesheet" type="text/css">
    <link href="/Content/css/datepicker3.css" rel="stylesheet" type="text/css">
    <link href="/Content/css/main.css?11.8.2016" rel="stylesheet" type="text/css">
   

<!--JAVASCRIPT-->
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
    <script src="/Scripts/modernizr-2.6.2-respond-1.1.0.min.js"></script>
    <script src="/Scripts/chosen.jquery.min.js"></script>
    <script src="/Scripts/ion.rangeSlider.min.js"></script>
    <script src="/Scripts/Chart.min.js"></script>
    <script src="/Scripts/bootstrap.min.js"></script>
    <script src="/Scripts/bootstrap-datepicker.js"></script>
    <script src="/Scripts/main.js"></script>

</head>
<body>

<!--TOP FIXED NAVIGATION-->
    <div id="header" class="navbar navbar-default navbar-fixed-top public-page" role="navigation">
        <div class="nav-container">
            <div class="navbar-header">
                <button type="button" class="navbar-toggle" data-toggle="offcanvas" data-target=".sidebar-offcanvas" data-canvas="body">
                    <span class="sr-only">Toggle navigation</span>
                    <span class="icon-bar"></span>
                    <span class="icon-bar"></span>
                    <span class="icon-bar"></span>
                </button>
                <a class="navbar-logo" href="http://www.ecowater.com">
                    <img src="/Content/img/mobile_logo.png" />
                </a>
            </div>
            <div id="language" class="language-lg">
                <select onchange="setCulture($(this).val());">
        <option value="en" selected>English</option>
        <option value="fr-CA" >français (Canada)</option>
        <option value="bg" >български</option>
        <option value="cs" >čeština</option>
        <option value="de" >Deutsch</option>
        <option value="es" >español</option>
        <option value="fr" >français</option>
        <option value="hr" >hrvatski</option>
        <option value="hu" >magyar</option>
        <option value="it" >italiano</option>
        <option value="lt" >lietuvių</option>
        <option value="nl" >Nederlands</option>
        <option value="pl" >polski</option>
        <option value="ro" >română</option>
        <option value="ru" >русский</option>
        <option value="sk" >slovenčina</option>
        <option value="sr" >srpski</option>
</select>
            </div>
        </div>
        <div id="global" class="global-lg">
            <ul class="nav navbar-nav navbar-right navbar-custom">
                <li id="global-ecowater"><a href="http://www.ecowater.com">EcoWater.com</a></li>
            </ul>
        </div>
    </div>
<!--END TOP FIXED NAVIGATION-->

    <div id="wrapper" class="row row-offcanvas row-offcanvas-left">
       
    <!--OFF CANVAS MENU-->
        <div id="navigation-sm" class="sidebar-offcanvas">
            <div id="language" class="language-sm">
                <select onchange="setCulture($(this).val());">
        <option value="en" selected>English</option>
        <option value="fr-CA" >français (Canada)</option>
        <option value="bg" >български</option>
        <option value="cs" >čeština</option>
        <option value="de" >Deutsch</option>
        <option value="es" >español</option>
        <option value="fr" >français</option>
        <option value="hr" >hrvatski</option>
        <option value="hu" >magyar</option>
        <option value="it" >italiano</option>
        <option value="lt" >lietuvių</option>
        <option value="nl" >Nederlands</option>
        <option value="pl" >polski</option>
        <option value="ro" >română</option>
        <option value="ru" >русский</option>
        <option value="sk" >slovenčina</option>
        <option value="sr" >srpski</option>
</select>
            </div>

            <h4 id="global-title">My Account</h4>
            <div id="global">
                <ul>
                    <li id="global-ecowater"><a href="http://www.ecowater.com">EcoWater.com</a></li>
                  </ul>
            </div>
        </div>
    <!--END OFF CANVAS MENU-->

       

<div id="intro-page" class="container">
    <div class=" col-xs-12 col-lg-10 col-lg-offset-1">
        <div class="intro-column1">
            <img src="/Content/img/EcoWater_Logo.png"/>
            <h1 class="intro">Welcome!</h1>
            <p>Congratulations on purchasing your new HydroLink Plus<sup>®</sup> Water Treatment System. Click the Create Account button to get started with setup and registration.</p>
            <a href="/Customer/Create" class="btn-submit">New Account</a>
        </div>
        <div class="intro-column2">
<form action="/Site/Login?returnUrl=%2FDashboard%2FIndex%2FxxxxmeineMailxxxx%2FAC000W000028486&status=NotLoggedIn" method="post">                <h2>Please Sign In</h2>

        <div class="alert alert-info" role="alert">
            <button type="button" class="close" data-dismiss="alert" aria-label="Close"><span aria-hidden="true">×</span></button>
            Your session has expired. Please log in to continue.
        </div>
                <div class="login-item">
                    <label for="username">
                        <img src="/Content/img/icon_user.png"/>
                    </label>
                    <input data-val="true" data-val-required="The Email field is required." id="username" name="Email" placeholder="username" type="text" value="" />
                    <label for="username">
                        <img src="/Content/img/icon_password.png"/>
                    </label>
                    <input data-val="true" data-val-required="The Password field is required." id="password" name="Password" placeholder="password" type="password" />
                </div>
                <div class="col-xs-6 no-margin">
                    <input type="submit" class="btn-login" value="Login" />
                </div>
                <div class="col-xs-6">
                    <div class="row">
                        <input class="col-xs-1" data-val="true" data-val-required="The Remember Me? field is required." id="remember" name="Remember" type="checkbox" value="true" /><input name="Remember" type="hidden" value="false" />
                        <p id="remember" class="col-xs-11">Remember me</p>
                    </div>
                    <a class="special forgotten" href="/Site/Forgot">Forgotten Password?</a>
                </div>
</form>        </div>
    </div>
</div>

    <!--////////////////// BACKGROUND ////////////////-->

        <div id="background" class="background-index">
            <img id="background-left" src="/Content/img/ecowater_background_left.png" />
            <img id="background-right" src="/Content/img/ecowater_background_right.png" />
        </div>

    <!--////////////////// FOOTER ////////////////-->

        <div class="subfooter">
            <p>©2014 EcoWater Systems LLC | 1-800-86WATER | <a class="special" href="http://www.ecowater.com">ecowater.com</a> | <a class="special" href="http://www.ecowater-europe.com">ecowater-europe.com</a></p>
        </div>

    </div>

    <script type="text/javascript">
        function setCulture(culture) {
            window.location = '/Site/SetCulture' + '?name=' + culture;
        }
    </script>
   

</body>
</html>
2017.11.02 20:26:43 5: H2O_Anlage: ExtractSid called, context sid, num 02
2017.11.02 20:26:43 4: H2O_Anlage: ExtractSid set sid to DC_SESSION_DATA=; path=/
2017.11.02 20:26:44 5: H2O_Anlage: HandleSendQueue called, qlen = 1
2017.11.02 20:26:44 4: H2O_Anlage: HandleSendQueue sends request type update to URL https://wifi.ecowater.com/Dashboard/Index/xxxxmeineMailxxxx/AC000W000028486, No Data,
header: Cookie: DC_SESSION_DATA=; path=/
,
timeout 2
2017.11.02 20:26:44 4: HttpUtils url=https://wifi.ecowater.com/Dashboard/Index/xxxxmeineMailxxxx/AC000W000028486
2017.11.02 20:26:45 5: HttpUtils request header:
GET /Dashboard/Index/xxxxmeineMailxxxx/AC000W000028486 HTTP/1.0
Host: wifi.ecowater.com
User-Agent: fhem
Cookie: DC_SESSION_DATA=; path=/

Content-Length: 0
Content-Type: application/x-www-form-urlencoded

2017.11.02 20:26:45 4: https://wifi.ecowater.com/Dashboard/Index/xxxxmeineMailxxxx/AC000W000028486: HTTP response code 400
2017.11.02 20:26:45 4: HttpUtils https://wifi.ecowater.com/Dashboard/Index/xxxxmeineMailxxxx/AC000W000028486: Got data, length: 311
2017.11.02 20:26:45 5: HttpUtils response header:
HTTP/1.1 400 Bad Request
Content-Type: text/html; charset=us-ascii
Server: Microsoft-HTTPAPI/2.0
Date: Thu, 02 Nov 2017 19:26:30 GMT
Connection: close
Content-Length: 311
2017.11.02 20:26:45 4: H2O_Anlage: Read callback: request type was update retry 1,
Header: HTTP/1.1 400 Bad Request
Content-Type: text/html; charset=us-ascii
Server: Microsoft-HTTPAPI/2.0
Date: Thu, 02 Nov 2017 19:26:30 GMT
Connection: close
Content-Length: 311,
Body: <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN""http://www.w3.org/TR/html4/strict.dtd">
<HTML><HEAD><TITLE>Bad Request</TITLE>
<META HTTP-EQUIV="Content-Type" Content="text/html; charset=us-ascii"></HEAD>
<BODY><h2>Bad Request</h2>
<hr><p>HTTP Error 400. The request is badly formed.</p>
</BODY></HTML>

2017.11.02 20:26:45 5: H2O_Anlage: ExtractSid called, context reading, num
2017.11.02 20:26:45 5: H2O_Anlage: CheckAuth is checking buffer with ReAuthRegex (class="login-item"|Bad Request)
2017.11.02 20:26:45 4: H2O_Anlage: CheckAuth decided new authentication required
2017.11.02 20:26:45 4: H2O_Anlage: Authentication still required but no retries left - did last authentication fail?
2017.11.02 20:26:45 5: H2O_Anlage: Read starts parsing response to update with defined readings: 01
2017.11.02 20:26:45 5: H2O_Anlage: ExtractReading VerbrauchHeute with regex /<h1 id="water_today" </h1>[^0-9]/...
2017.11.02 20:26:45 5: H2O_Anlage: ExtractReading VerbrauchHeute did not match
2017.11.02 20:26:45 3: H2O_Anlage: Read response to update didn't match any Reading
2017.11.02 20:26:45 5: H2O_Anlage: HandleSendQueue called, qlen = 0


Hier auch noch ein List:
Internals:
   BUSY       0
   CFGFN
   CHANGED
   DEF        https://wifi.ecowater.com/Dashboard/Index/xxxxmeineMailxxxx/AC000W000028486 60
   Interval   60
   LASTSEND   1509651838.77531
   LastAuthTry 2017-11-02 20:43:52
   MainURL    https://wifi.ecowater.com/Dashboard/Index/xxxxmeineMailxxxx/AC000W000028486
   ModuleVersion 3.4.0 - 9.9.2017
   NAME       H2O_Anlage
   NR         10453
   STATE      ???
   TRIGGERTIME 1509651891.52597
   TRIGGERTIME_FMT 2017-11-02 20:44:51
   TYPE       HTTPMOD
   addr       https://wifi.ecowater.com:443
   buf
   code       400
   conn
   data
   displayurl https://wifi.ecowater.com/Dashboard/Index/xxxxmeineMailxxxx/AC000W000028486
   header     Cookie: DC_SESSION_DATA=; path=/
 
   host       wifi.ecowater.com
   httpheader HTTP/1.1 400 Bad Request
 
Content-Type: text/html; charset=us-ascii
 
Server: Microsoft-HTTPAPI/2.0
 
Date: Thu, 02 Nov 2017 19:43:45 GMT
 
Connection: close
 
Content-Length: 311
   httpversion 1.0
   hu_blocking 0
   hu_filecount 165
   hu_port    443
   hu_portSfx
   ignoreredirects 0
   loglevel   4
   path       /Dashboard/Index/xxxxmeineMailxxxx/AC000W000028486
   protocol   https
   redirects  0
   sid        DC_SESSION_DATA=; path=/
 
   timeout    2
   url        https://wifi.ecowater.com/Dashboard/Index/xxxxmeineMailxxxx/AC000W000028486
   value      0
   QUEUE:
   READINGS:
   REQUEST:
     data
     header     Cookie: $sid
     ignoreredirects 0
     retryCount 1
     type       update
     url        https://wifi.ecowater.com/Dashboard/Index/xxxxmeineMailxxxx/AC000W000028486
     value      0
   sslargs:
Attributes:
   clearSIdBeforeAuth 1
   disable    0
   reAuthRegex (class="login-item"|Bad Request)
   reading01Name VerbrauchHeute
   reading01Regex <h1 id="water_today" </h1>[^0-9]
   requestHeader1 Cookie: $sid
   room       test
   sid01Data  Email=xxxxmeineMailxxxx&Password=xxxxxxxx&Remember=false
   sid01IdRegex (ASP.NET_SessionId[^;;\n]+)
   sid01URL   https://wifi.ecowater.com/Site/Login
   sid02Header1 Cookie: $sid
   sid02IdRegex Cookie: ([^\n]+)
   userattr   requestHeader1 requestHeader2 sid01Data sid01Header1 sid01IdRegex sid01IgnoreRedirects:0,1 sid01URL sid02Data sid02Header1 sid02IdRegex sid02URL sidURL
   verbose    5


Ich habe jetzt auch noch mal 1:1 deine config ausprobiert. Da steht allerdings am ende auch das es nicht erfolgreich war, wenn ich das richtig verstehe.
2017.11.02 20:47:19 5: ecowater: ExtractSid called, context reading, num
2017.11.02 20:47:19 5: ecowater: CheckAuth is checking buffer with ReAuthRegex (class="login-item"|Bad Request)
2017.11.02 20:47:19 4: ecowater: CheckAuth decided no authentication required
2017.11.02 20:47:19 5: ecowater: Read starts parsing response to update with defined readings:
2017.11.02 20:47:19 3: ecowater: Read response to update didn't match any Reading
2017.11.02 20:47:19 5: ecowater: HandleSendQueue called, qlen = 0

Kann dir dazu auch gerne nochmal alles schicken, wenn im ersten Log nichts zu sehen ist.

Vielen Dank schon mal
- Fhem auf einem MacMini Server
- CUL; HMLAN; CUNO2 für FS20; HM-Wired RS485 LAN Gateway
- HMW_Sen_SC_12_FM; HMW_LC_Sw2_DR; HMW_LC_Bl1_DR; HMW_IO_12_Sw7; HMW_IO_12_Sw14_DR; HMW_IO_12_FM; HBW_1W_T10
- HM-TC-IT-WM-W-EU; HM-CC-RT-DN

Offline amenomade

  • Hero Member
  • *****
  • Beiträge: 4360
Antw:HTTPMOD Login
« Antwort #10 am: 02 November 2017, 22:00:04 »
Zitat
sid01Data  Email=xxxxmeineMailxxxx&Password=xxxxxxxx&Remember=false

Das ist falsch. Das muss sid02Data sein. Beim ersten Vorgang (01) muss man nichts schicken, das ist nur um den ASPNET sid zu kriegen. Lösch den sid01Data Attribute, und kreiere den sid02Data

Zitat
sid01URL   https://wifi.ecowater.com/Site/Login
Das ist auch falsch. Es muss sidURL sein (ohne Zahlen): damit wird die URL für beide Vorgänge (01 und 02) benutzt.

Dann wieder die Log und das "list" bitte.
FHEM 5.8 Pi 3, EchoDot, CUL868+Selbstbau 1/2λ-Dipol-Antenne, USB Optolink / Vitotronic, und HM Komponenten, Rademacher Duofern Jalousien, Fritz!Dect Thermostaten

Offline holzwurm83

  • Sr. Member
  • ****
  • Beiträge: 668
Antw:HTTPMOD Login
« Antwort #11 am: 02 November 2017, 23:09:31 »
Sorry! Jetzt nochmal! Sieht aber schon mal gut aus. Im Log ist die Seite komplett geladen, so wie ich das sehe. Es passt nur nicht der Export der Daten die ich haben möchte, wenn ich das richtig verstehe.


Hier List:

Internals:
   BUSY       0
   CFGFN
   CHANGED
   DEF        https://wifi.ecowater.com/Dashboard/Index/xxxxmeineMailxxxx/AC000W000028486 60
   Interval   60
   LASTSEND   1509659636.00995
   LastAuthTry 2017-11-02 22:52:56
   MainURL    https://wifi.ecowater.com/Dashboard/Index/xxxxmeineMailxxxx/AC000W000028486
   ModuleVersion 3.4.0 - 9.9.2017
   NAME       H2O_Anlage
   NR         10453
   STATE      ???
   TRIGGERTIME 1509659696.00928
   TRIGGERTIME_FMT 2017-11-02 22:54:56
   TYPE       HTTPMOD
   addr       https://wifi.ecowater.com:443
   buf
   code       200
   conn
   data
   displayurl https://wifi.ecowater.com/Dashboard/Index/xxxxmeineMailxxxx/AC000W000028486
   header     Cookie: ASP.NET_SessionId=xvx3sdezzldu2pyucqau51ta
   host       wifi.ecowater.com
   httpheader HTTP/1.1 200 OK
 
Cache-Control: private, s-maxage=0
 
Content-Type: text/html; charset=utf-8
 
Server: Microsoft-IIS/8.5
 
X-AspNetMvc-Version: 5.2
 
X-AspNet-Version: 4.0.30319
 
X-Powered-By: ASP.NET
 
Date: Thu, 02 Nov 2017 21:53:42 GMT
 
Connection: close
 
Content-Length: 31702
   httpversion 1.0
   hu_blocking 0
   hu_filecount 930
   hu_port    443
   hu_portSfx
   ignoreredirects 0
   loglevel   4
   path       /Dashboard/Index/xxxxmeineMailxxxx/AC000W000028486
   protocol   https
   redirects  0
   sid        ASP.NET_SessionId=xvx3sdezzldu2pyucqau51ta
   timeout    2
   url        https://wifi.ecowater.com/Dashboard/Index/xxxxmeineMailxxxx/AC000W000028486
   value      0
   QUEUE:
   READINGS:
   REQUEST:
     data
     header     Cookie: $sid
     ignoreredirects 0
     retryCount 0
     type       update
     url        https://wifi.ecowater.com/Dashboard/Index/xxxxmeineMailxxxx/AC000W000028486
     value      0
   sslargs:
Attributes:
   clearSIdBeforeAuth 1
   disable    0
   reAuthRegex (class="login-item"|Bad Request)
   reading01Name VerbrauchHeute
   reading01Regex <h1 id="water_today" </h1>[^0-9]
   requestHeader1 Cookie: $sid
   room       test
   sid01IdRegex (ASP.NET_SessionId[^;;\n]+)
   sid02Data  Email=xxxxmeineMailxxxx&Password=xxxxxxxx&Remember=false
   sid02Header1 Cookie: $sid
   sid02IdRegex Cookie: ([^\n]+)
   sidURL     https://wifi.ecowater.com/Site/Login
   userattr   requestHeader1 requestHeader2 sid01Data sid01Header1 sid01IdRegex sid01IgnoreRedirects:0,1 sid01URL sid02Data sid02Header1 sid02IdRegex sid02URL sidURL
   verbose    5

Und hier auch noch der Log:

[code]2017.11.02 22:53:56 4: H2O_Anlage: GetUpdate called (update)
2017.11.02 22:53:56 4: H2O_Anlage: update timer modified: will call GetUpdate in 60.0 seconds at 2017-11-02 22:54:56
2017.11.02 22:53:56 4: H2O_Anlage: AddToQueue adds update, initial queue len: 0
2017.11.02 22:53:56 5: H2O_Anlage: AddToQueue adds type update to URL https://wifi.ecowater.com/Dashboard/Index/xxxxmeineMailxxxx/AC000W000028486, no data, header Cookie: $sid, retry 0
2017.11.02 22:53:56 5: H2O_Anlage: HandleSendQueue called, qlen = 1
2017.11.02 22:53:56 4: H2O_Anlage: HandleSendQueue sends request type update to URL https://wifi.ecowater.com/Dashboard/Index/xxxxmeineMailxxxx/AC000W000028486, No Data,
header: Cookie: ASP.NET_SessionId=xvx3sdezzldu2pyucqau51ta,
timeout 2
2017.11.02 22:53:56 4: HttpUtils url=https://wifi.ecowater.com/Dashboard/Index/xxxxmeineMailxxxx/AC000W000028486
2017.11.02 22:53:56 5: HttpUtils request header:
GET /Dashboard/Index/xxxxmeineMailxxxx/AC000W000028486 HTTP/1.0
Host: wifi.ecowater.com
User-Agent: fhem
Cookie: ASP.NET_SessionId=xvx3sdezzldu2pyucqau51ta
Content-Length: 0
Content-Type: application/x-www-form-urlencoded

2017.11.02 22:53:57 4: https://wifi.ecowater.com/Dashboard/Index/xxxxmeineMailxxxx/AC000W000028486: HTTP response code 200
2017.11.02 22:53:57 4: HttpUtils https://wifi.ecowater.com/Dashboard/Index/xxxxmeineMailxxxx/AC000W000028486: Got data, length: 31702
2017.11.02 22:53:57 5: HttpUtils response header:
HTTP/1.1 200 OK
Cache-Control: private, s-maxage=0
Content-Type: text/html; charset=utf-8
Server: Microsoft-IIS/8.5
X-AspNetMvc-Version: 5.2
X-AspNet-Version: 4.0.30319
X-Powered-By: ASP.NET
Date: Thu, 02 Nov 2017 21:53:42 GMT
Connection: close
Content-Length: 31702
2017.11.02 22:53:57 4: H2O_Anlage: Read callback: request type was update retry 0,
Header: HTTP/1.1 200 OK
Cache-Control: private, s-maxage=0
Content-Type: text/html; charset=utf-8
Server: Microsoft-IIS/8.5
X-AspNetMvc-Version: 5.2
X-AspNet-Version: 4.0.30319
X-Powered-By: ASP.NET
Date: Thu, 02 Nov 2017 21:53:42 GMT
Connection: close
Content-Length: 31702,
Body:
<!DOCTYPE html>

<html>
<head>
    <title>Dashboard</title>
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <link rel='shortcut icon' href="/Content/img/favicon.ico" type='image/x-icon'/>

<!--CSS STYLES-->
   
    <link href='https://fonts.googleapis.com/css?family=Open+Sans:400,300,600,700' rel='stylesheet' type='text/css'>
    <link href="/Content/css/jquery-ui-1.91.custom.css" rel="stylesheet" type="text/css">
    <link href="/Content/css/chosen.min.css" rel="stylesheet" type="text/css">
    <link href="/Content/css/datepicker3.css" rel="stylesheet" type="text/css">
    <link href="/Content/css/main.min.css?8.23.2017.3" rel="stylesheet" type="text/css">
   

<!--JAVASCRIPT-->
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.2.4/jquery.min.js"></script>
    <script src="/Scripts/modernizr-2.6.2-respond-1.1.0.min.js"></script>
    <script src="/Scripts/chosen.jquery.min.js"></script>
    <script src="/Scripts/ion.rangeSlider.min.js"></script>
    <script src="/Scripts/Chart.min.js"></script>
    <script src="/Scripts/bootstrap.min.js"></script>
    <script src="/Scripts/bootstrap-datepicker.js"></script>
    <script src="/Scripts/main.js"></script>

   

</head>
<body>



<!--TOP FIXED NAVIGATION-->
    <div id="header" class="navbar navbar-default navbar-fixed-top system-page-unshared" role="navigation">
        <div class="nav-container">
            <div class="navbar-header">
                <button type="button" class="navbar-toggle" data-toggle="offcanvas" data-target=".sidebar-offcanvas" data-canvas="body">
                    <span class="sr-only">Toggle navigation</span>
                    <span class="icon-bar"></span>
                    <span class="icon-bar"></span>
                    <span class="icon-bar"></span>
                </button>
                <a class="navbar-logo" href="/Customer/List">
                    <img src="/Content/img/mobile_logo.png" />
                </a>
                <a class="navbar-home" href="/Dashboard/Index/xxxxmeineMailxxxx/AC000W000028486">
                    <img src="/Content/img/mobile_home.png" />
                </a>
            </div>
            <div id="language" class="language-lg">
                <select onchange="setCulture($(this).val());">
        <option value="en" selected>English</option>
        <option value="fr-CA" >français (Canada)</option>
        <option value="bg" >български</option>
        <option value="cs" >čeština</option>
        <option value="de" >Deutsch</option>
        <option value="es" >español</option>
        <option value="fr" >français</option>
        <option value="hr" >hrvatski</option>
        <option value="hu" >magyar</option>
        <option value="it" >italiano</option>
        <option value="lt" >lietuvių</option>
        <option value="nl" >Nederlands</option>
        <option value="pl" >polski</option>
        <option value="ro" >română</option>
        <option value="ru" >русский</option>
        <option value="sk" >slovenčina</option>
        <option value="sr" >srpski</option>
</select>
            </div>
        </div>
        <div id="global" class="global-lg">
            <ul class="nav navbar-nav navbar-right navbar-custom">
                <li id="global-ecowater"><a href="http://www.ecowater.com">EcoWater.com</a></li>
                <li id="global-account" ><a href="/Customer/Account/xxxxmeineMailxxxx">xxxxmeineMailxxxx</a></li>
                <li id="global-logout"><a class="logout-btn" href="/Site/Logout">Logout</a></li>
            </ul>
        </div>
    </div>
<!--END TOP FIXED NAVIGATION-->

    <div id="wrapper" class="row row-offcanvas row-offcanvas-left">
       
    <!--OFF CANVAS MENU-->
        <div id="navigation-sm" class="sidebar-offcanvas">
            <div id="language" class="language-sm">
                <select onchange="setCulture($(this).val());">
        <option value="en" selected>English</option>
        <option value="fr-CA" >français (Canada)</option>
        <option value="bg" >български</option>
        <option value="cs" >čeština</option>
        <option value="de" >Deutsch</option>
        <option value="es" >español</option>
        <option value="fr" >français</option>
        <option value="hr" >hrvatski</option>
        <option value="hu" >magyar</option>
        <option value="it" >italiano</option>
        <option value="lt" >lietuvių</option>
        <option value="nl" >Nederlands</option>
        <option value="pl" >polski</option>
        <option value="ro" >română</option>
        <option value="ru" >русский</option>
        <option value="sk" >slovenčina</option>
        <option value="sr" >srpski</option>
</select>
            </div>
            <h4 id="global-title">My Account</h4>
            <div id="global">
                <ul>
                    <li id="global-ecowater"><a href="http://www.ecowater.com">EcoWater.com</a></li>
                    <li id="global-account" ><a href="/Customer/Account/xxxxmeineMailxxxx/AC000W000028486">xxxxmeineMailxxxx</a></li>
                    <li id="global-logout"><a class="logout-btn" href="/Site/Logout">Logout</a></li>
                </ul>
            </div>
                    <h4 id="device-title">Customer's Account</h4>
            <div id="device" class="device-sm">
                <ul>
                    <li><a id="customer-id-name" href="/Customer/Account/xxxxmeineMailxxxx/AC000W000028486">Waldemar  Preis </a></li>
                    <li id="device-select">
                        <span id="device-id-nickname">Select a system</span>
                    </li>
                    <li>
                        <ul id="device-list">
                            <li class="title">
                                ———   Systems   ———
                            </li>
                                <li class="shared" onclick="window.location = '/Dashboard/Index/xxxxmeineMailxxxx/AC000W000028486';">
                                    <span id="AC000W000028486-nickname">ho2-Rimpar</span>
                                    <span id="AC000W000028486-dsn">AC000W000028486</span>
                                </li>
                        </ul>
                    </li>
                    <li  class="device-page"><a id="device-support" href="/Support/Index/xxxxmeineMailxxxx/AC000W000028486">
                        <img src="/Content/img/device_support.png">Support</a>
                    </li>
                    <li class="device-page"><a id="device-settings" href="/Settings/Basic/xxxxmeineMailxxxx/AC000W000028486">
                        <img src="/Content/img/device_settings.png">Settings</a>
                    </li>
                    <li class="device-page"><a id="device-alerts" href="/Alerts/Index/xxxxmeineMailxxxx/AC000W000028486">
                        <img src="/Content/img/device_alert.png">Alerts</a>
                    </li>
                    <li class="device-page"><a id="device-home" href="/Dashboard/Index/xxxxmeineMailxxxx/AC000W000028486">
                        <img src="/Content/img/device_home.png">Dashboard</a>
                    </li>
                </ul>
            </div>
        </div>
    <!--END OFF CANVAS MENU-->

        <div id="page" class="container system-page-unshared">

            <img id="page-logo" src="/Content/img/EcoWater_Logo.png" /><br><br>
            <h2 id="page-title">
                    <span id="device-id-nickname">ho2-Rimpar</span>
                    <span id="device-id-dsn">AC000W000028486</span>
               
            </h2>

           

           


            <div class="content-wrapper">


<div id="navigation-lg">
    <div id="device" class="device-lg">
        <ul>
            <li>
                <a id="customer-id-name" href="/Customer/Account/xxxxmeineMailxxxx/AC000W000028486">Waldemar  Preis </a>
            </li>
                <li id="device-select">
                    <span class="device-nickname">Select a system</span>
                    <ul id="device-list">
                        <li class="title">
                            ———   Systems   ———
                        </li>
                        <li class="shared" onclick="window.location = '/Dashboard/Index/xxxxmeineMailxxxx/AC000W000028486';">
                            <span id="device-id-nickname">ho2-Rimpar</span>
                            <span id="device-id-dsn">AC000W000028486</span>
                        </li>
                    </ul>
                </li>
                    <li  class="device-page"><a id="device-support" href="/Support/Index/xxxxmeineMailxxxx/AC000W000028486">
                <img src="/Content/img/device_support.png">Support</a>
            </li>
                    <li class="device-page"><a id="device-settings" href="/Settings/Basic/xxxxmeineMailxxxx/AC000W000028486">
                <img src="/Content/img/device_settings.png">Settings</a>
            </li>
                    <li class="device-page"><a id="device-alerts" href="/Alerts/Index/xxxxmeineMailxxxx/AC000W000028486">
                <img src="/Content/img/device_alert.png">Alerts</a>
            </li>
                    <li class="device-page"><a id="device-home" href="/Dashboard/Index/xxxxmeineMailxxxx/AC000W000028486">
                <img src="/Content/img/device_home.png">Dashboard</a>
            </li>
        </ul>
    </div>
</div>
               

<div id="section" class="dashboard">
    <div id="section-navigation">
        <div id="recharge-disabled-message" class="alert alert-danger hidden">Regeneration on this system has been disabled. Please contact your dealer to have regenerations enabled.</div>
        <ul class="dashboard">
           


<li class="recharge ">
    <a data-toggle="modal" data-target="#modal-rechargeNow"><img src="/Content/img/icon_refresh.png"/>Recharge Now</a>
</li>
   
<li>
    <script type="text/javascript">
        $('#device-info-lastRecharge').html('Yesterday');
    </script>

        <script type="text/javascript">$('#device-info-nextRecharge').html('Not Scheduled');</script>

        <script type="text/javascript">$('#recharge-disabled-message').addClass('hidden');</script>

</li>

<li class="recharge ">
    <a data-toggle="modal" data-target="#modal-rechargeSchedule"><img src="/Content/img/icon_timer.png"/>Schedule Recharge</a>
</li>



        </ul>
        <ul class="info-block">
            <li>
                <h2 id="#device-id-nickname">ho2-Rimpar</h2>
            </li>
            <li>DSN: <span id="device-id-d=sn">AC000W000028486</span></li>
            <li><strong>Model: <span id="device-id-model">GREENLINE 110</span></strong></li>
            <li>Status: <span id="device-info-status">Online</span></li>

                <li>Out of Salt Date: <span id="device-info-saltDate">19/02/2018</span></li>

            <li>Last Recharge: <span id="device-info-lastRecharge">Yesterday</span></li>

                <li>Scheduled Recharge: <span id="device-info-nextRecharge">Not Scheduled</span></li>
        </ul>
                <div class="salt-level">
                    <label for="salt-level">Current Salt Level</label>
                    <input id="SaltLevelCurrent" name="SaltLevelCurrent" type="hidden" value="4" />
                    <input data-val="true" data-val-number="The field SaltLevel must be a number." data-val-required="The SaltLevel field is required." id="SaltLevel" name="SaltLevel" type="hidden" value="4" />
                    <script type="text/javascript">
                        $("#SaltLevel").ionRangeSlider({
                            min: '0',
                            max: '8',
                            from: '4',
                            onStart: function () { $('#SaltLevel').data('adjusting', true); },
                            onFinish: function () { $('#SaltLevel').data('adjusting', false); $('#modal-saltChange').modal('show'); }
                        });
                    </script>
                </div>
    </div>

    <div id="section-content">

        <div id="section-title">
    <h1>Dashboard</h1>
    <h5>
        <span id="device-id-nickname">ho2-Rimpar</span>
        <span id="device-id-dsn">AC000W000028486</span>
        <span id="device-id-model">GREENLINE 110</span>
    </h5>
</div>

        <div id="system_offline" class="alert alert-danger dashboard-alert">
            <button type="button" class="close" onclick="$(this).parent().removeClass('show');"><span aria-hidden="true">×</span></button>
            This system is currently offline.
        </div>
        <div id="refresh_paused" class="alert alert-info dashboard-alert">
            Refresh paused
            <a class="btn-primary" onclick="updateFrequentData();" aria-label="Resume">Resume</a>
        </div>
        <div id="metrics" class="metrics">
            <ul>
                <li class="metrics-column">
                    <h1 id="water_today" class="less">238</h1>
                    <h2 class="volume">Liters</h2>
                    <h3>Used Today</h3>
                </li>
                <li class="metrics-column">
                    <h1 id="water_avg">367</h1>
                    <h2 class="volume">Liters</h2>
                    <h3>Daily Average</h3>
                </li>
                <li class="metrics-column">
                        <h1 id="water_avail">1851</h1>
                        <h2 class="volume">Liters</h2>
                        <h3>Available</h3>
                </li>
            </ul>
        </div>
        <div id="canvas-holder1">
            <ul class="canvas-items">
                <li class="canvas-label">
                    <select id="chart-title" onchange="updateGraph();">
                        <option value="usage">Water Usage</option>
                        <option value="flow">Water Flow</option>
                    </select>
                </li>
                <li class="canvas-label">
                    <select id="graph_by" onchange="updateGraph();">
                        <option value="day">By Day</option>
                        <option value="week" selected="selected">By Week</option>
                        <option value="month">By Month</option>
                        <option value="year">By Year</option>
                    </select>
                </li>
                <li class="canvas-label">
                    <div class="input-daterange input-group" id="datepicker">
                        <span class="input-group-addon">For</span>
                        <input type="text" id="startDate" class="form-control" />
                       
                    </div>
                </li>
                <li>
                    <ul class="pagination">
                        <li id="graph_prev" onclick="adjustGraph(false);"><a aria-label="Previous"><span aria-hidden="true">«</span></a></li>
                        <li id="graph_next" onclick="adjustGraph(true);"><a aria-label="Next"><span aria-hidden="true">»</span></a></li>
                        <li id="graph_update" class="page-submit" onclick="updateGraph();">
                            <a aria-label="Load"><span aria-hidden="true">Go</span></a>
                            <img class="loading-spinner hidden" src="/Content/img/spinner.gif" />
                        </li>
                    </ul>
                </li>
            </ul>
            <div id="graph">
                <div class="usage">Liters</div>
                <div class="flow">LPM</div>
                <canvas id="canvas"></canvas>
            </div>
        </div>
    </div>
</div>

<!--////////////////// MODALS ////////////////-->

<div class="modal fade" id="modal-saltChange" tabindex="-1" role="dialog" aria-labelledby="modal-saltChange" aria-hidden="true">
    <div class="modal-dialog">
        <form class="modal-content">
            <div class="modal-header">
                <h2>Are you sure you want to change the salt level?</h2>
            </div>
            <div class="modal-footer">
                <button type="button" class="btn-default btn-left" data-dismiss="modal" onclick="resetSaltLevel();">No</button>
                <button type="button" class="btn-primary btn-right" onclick="setSaltLevel();">Yes</button>
            </div>
        </form>
    </div>
</div>

<div class="modal fade" id="modal-rechargeNow" tabindex="-1" role="dialog" aria-labelledby="modal-rechargeNow" aria-hidden="true">
    <div class="modal-dialog">
        <form class="modal-content">
            <div class="modal-header">
                <h2>Are you sure you want to recharge now?</h2>
            </div>
            <div class="modal-body">This action can not be cancelled.</div>
            <div class="modal-footer">
                <button type="button" class="btn-default btn-left" data-dismiss="modal">No</button>
                <button type="button" class="btn-primary btn-right" onclick="rechargeNow();">Yes</button>
            </div>
        </form>
    </div>
</div>

<div class="modal fade" id="modal-cancelRecharge" tabindex="-1" role="dialog" aria-labelledby="modal-rechargeNow" aria-hidden="true">
    <div class="modal-dialog">
        <form class="modal-content">
            <div class="modal-header">
                <h2>Are you sure you want to cancel this recharge?</h2>
            </div>
            <div class="modal-footer">
                <button type="button" class="btn-default btn-left" data-dismiss="modal">No</button>
                <button type="button" class="btn-primary btn-right" onclick="cancelRecharge();">Yes</button>
            </div>
        </form>
    </div>
</div>

<div class="modal fade" id="modal-rechargeSchedule" tabindex="-1" role="dialog" aria-labelledby="modal-rechargeSchedule" aria-hidden="true">
    <div class="modal-dialog">
        <form class="modal-content">
            <div class="modal-header">
                <h2>Are you sure you want to schedule a recharge for later?</h2>
            </div>
            <div class="modal-body">The time of this recharge is set by your device settings.</div>
            <div class="modal-footer">
                <button type="button" class="btn-default btn-left" data-dismiss="modal">No</button>
                <button type="button" class="btn-primary btn-right" onclick="scheduleRecharge();">Yes</button>
            </div>
        </form>
    </div>
</div>

<div class="modal fade" id="modal-alert" tabindex="-1" role="dialog" aria-labelledby="modal-alert" aria-hidden="true">
    <div class="modal-dialog">
        <form class="modal-content">
            <div class="modal-header">
                <h2 id="modal-alert-title"></h2>
            </div>
            <div id="modal-alert-message" class="modal-body"></div>
            <div class="modal-footer">
                <button type="button" class="btn-default" data-dismiss="modal">Ok</button>
            </div>
        </form>
    </div>
</div>





            </div>

        </div>

    <!--////////////////// BACKGROUND ////////////////-->

        <div id="background">
            <img id="background-left" src="/Content/img/ecowater_background_left.png" />
            <img id="background-right" src="/Content/img/ecowater_background_right.png" />
        </div>

    <!--////////////////// FOOTER ////////////////-->

        <div class="subfooter">
            <p>©2014 EcoWater Systems LLC | 1-800-86WATER | <a class="special" href="http://www.ecowater.com">ecowater.com</a> | <a class="special" href="http://www.ecowater-europe.com">ecowater-europe.com</a></p>
        </div>

    </div>

    <script type="text/javascript">
        $(".device-sm #device-select").click(function () {
            $(".device-sm #device-list").slideToggle('fast');
        });
        $(".device-lg #device-select").click(function () {
            $(".device-lg #device-list").slideToggle('fast');
        });
        $("#section select, .chosen").chosen({
            disable_search_threshold: 10,
            search_contains: true
        });
        function setCulture(culture) {
            window.location = '/Site/SetCulture' + '?name=' + culture;
        }
    </script>

   

    <!--////////////////// GRAPH ////////////////-->
    <script type="text/javascript">
        $('#datepicker #startDate').datepicker({
            format: 'dd/mm/yyyy',
            todayBtn: 'linked',
            autoclose: true
        }).on('changeDate', function () {
            updateGraph($(this).datepicker('getDate'));
        });

        function adjustGraph(inc) {
            var date = $('#datepicker #startDate').datepicker('getDate');
            var graph_by = $('#graph_by').val();
            switch (graph_by) {
                case "day": date.setDate(date.getDate() + (inc ? 1 : -1)); break;
                case "week": date.setDate(date.getDate() + (inc ? 7 : -7)); break;
                case "month": date.setMonth(date.getMonth() + (inc ? 1 : -1)); break;
                case "year": date.setFullYear(date.getFullYear() + (inc ? 1 : -1)); break;
            }
            $('#datepicker #startDate').datepicker('setDate', date);
        }
        function newGraph(labels, data) {
            if (window.lineGraph != null) {
                window.lineGraph.destroy();
                window.lineGraph = null;
            }
            if (window.lineGraph == null) {
                var chartData = {
                    labels: labels,
                    datasets: [{
                        label: $('#chart-title').val(),
                        fillColor: "rgba(151,187,205,0.2)",
                        strokeColor: "rgba(151,187,205,1)",
                        pointColor: "rgba(151,187,205,1)",
                        pointStrokeColor: "#fff",
                        pointHighlightFill: "#fff",
                        pointHighlightStroke: "rgba(220,220,220,1)",
                        data: data
                    }]
                };
                var ctx = document.getElementById("canvas").getContext("2d");
                window.lineGraph = new Chart(ctx).Line(chartData, { responsive: true, animationSteps: 30, scaleBeginAtZero: true });
            }
        }
        function addGraphPoint(label, value) {
            if (window.lineGraph == null || window.lineGraph.datasets[0].label != $('#chart-title').val()) {
                newGraph(['', '', '', '', '', '', '', '', '', '', ''], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]);
                window.lineGraph.last_label = null;
            }
            if (label == window.lineGraph.last_label) {
                label = "";
            } else {
                window.lineGraph.last_label = label;
            }
            window.lineGraph.removeData();
            window.lineGraph.addData([value], label);
        }
        function updateGraph(date) {
            var url = null;
            var data = null;
            var graph_type = $('#chart-title').val();
            $('#graph div').hide().filter('.' + graph_type).show();
            if (graph_type == "flow") {
                $('#graph_by_chosen, #datepicker, #graph_prev, #graph_next, #graph_update').css({ 'pointer-events': 'none', 'opacity': 0.5 });
                addGraphPoint("", 0);
            } else {
                $('#canvas-holder1 .loading-spinner').removeClass('hidden');
                $('#graph_by_chosen, #datepicker, #graph_prev, #graph_next, #graph_update').css({ 'pointer-events': 'all', 'opacity': 1 });
                if (date == null) date = $('#datepicker #startDate').datepicker('getDate');
                var graph_by = $('#graph_by').val();
                url = '/Dashboard/GraphBy';
                data = { by: graph_by, date: date.getFullYear() + '-' + (date.getMonth() + 1) + '-' + date.getDate(), dsn: 'AC000W000028486' };
            }
            if (url != null) {
                $.ajax({
                    url: url,
                    data: data,
                    success: function (result) {
                        if (result.success != false) {
                            newGraph(result.labels, result.data);
                        }
                    },
                    complete: function () {
                        $('#canvas-holder1 .loading-spinner').addClass('hidden');
                    }
                });
            }
        }
        $(function () {
            var now = new Date();
            now.setHours(0);
            now.setMinutes(0);
            now.setSeconds(0);
            now.setMilliseconds(0);
            $('#datepicker #startDate').datepicker('setDate', now);
        });
    </script>

    <script type="text/javascript">

        function showAlertModal(title, message) {
            $('#modal-alert-title').html(title);
            $('#modal-alert-message').html(message);
            $('#modal-alert').modal('show');
        }
        function doRechargeAction(action, modal) {
            $.ajax({
                type: 'POST',
                url: action,
                data: { dsn: 'AC000W000028486' },
                success: function (result) {
                    if (result.success == false) {
                        //an error ocurred
                    } else {
                        $('#section-navigation .dashboard li:not(.access)').detach();
                        $('#section-navigation .dashboard').prepend(result);
                        $('#' + modal).modal('hide');
                    }
                },
                error: function (result) {
                    $('#' + modal).modal('hide');
                    showAlertModal('Unable to communicate with EcoWater services.', '');
                }
            });
        }
        function rechargeNow() {
            doRechargeAction('/Dashboard/RechargeNow', 'modal-rechargeNow');
        }
        function scheduleRecharge() {
            doRechargeAction('/Dashboard/ScheduleRecharge', 'modal-rechargeSchedule');
        }
        function cancelRecharge() {
            doRechargeAction('/Dashboard/CancelRecharge', 'modal-cancelRecharge');
        }
        function resetSaltLevel() {
            $('#SaltLevel').data("ionRangeSlider").update({ from: $('#SaltLevelCurrent').val() });
        }
        function setSaltLevel() {
            var level = $("#SaltLevel").val();
            $('#device-info-saltDate').append('<img class="loading-spinner" src="/Content/img/spinner_dashboard.gif" />');
            $('#modal-saltChange').modal('hide');
            $.ajax({
                type: 'POST',
                url: '/Dashboard/SetSaltLevel',
                data: { level: level, dsn: 'AC000W000028486' },
                success: function (result) {
                    $('#SaltLevelCurrent').val(result.salt_level);
                    $('#SaltLevel').data("ionRangeSlider").update({ from: result.salt_level });
                    $('#device-info-saltDate').html(result.out_of_salt);
                },
                error: function () {
                    $('#device-info-saltDate img').detach();
                    $('#SaltLevel').data("ionRangeSlider").update({ from: level });
                    showAlertModal('Unable to communicate with EcoWater services.', '');
                }
            });
        }

        function updateFrequentData() {
            var spinners = $('#metrics .loading-spinner').removeClass('hidden');
            $('#refresh_paused').removeClass('show');
            $('#system_offline').removeClass('show');
            clearTimeout(window.next_freq_data);
            if (window.update_freq_data == null) {
                window.update_freq_data = $.ajax({
                    type: 'POST',
                    url: '/Dashboard/UpdateFrequentData',
                    data: { dsn: 'AC000W000028486' },
                    success: function (result) {
                        window.update_freq_data = null;
                        if (result.success == false) {
                            $('#refresh_paused').addClass('show');
                            spinners.addClass('hidden');
                            window.begin_freq_data = null;
                        } else {
                            $('#system_offline').toggleClass('show', !result.online);
                            $('#device-info-status').html(result.online ? 'Online' : 'Offline');
  &n
- Fhem auf einem MacMini Server
- CUL; HMLAN; CUNO2 für FS20; HM-Wired RS485 LAN Gateway
- HMW_Sen_SC_12_FM; HMW_LC_Sw2_DR; HMW_LC_Bl1_DR; HMW_IO_12_Sw7; HMW_IO_12_Sw14_DR; HMW_IO_12_FM; HBW_1W_T10
- HM-TC-IT-WM-W-EU; HM-CC-RT-DN

Offline amenomade

  • Hero Member
  • *****
  • Beiträge: 4360
Antw:HTTPMOD Login
« Antwort #12 am: 02 November 2017, 23:15:03 »
Ouch! Bitte die Log auch in code tags! ;)
FHEM 5.8 Pi 3, EchoDot, CUL868+Selbstbau 1/2λ-Dipol-Antenne, USB Optolink / Vitotronic, und HM Komponenten, Rademacher Duofern Jalousien, Fritz!Dect Thermostaten

Offline amenomade

  • Hero Member
  • *****
  • Beiträge: 4360
Antw:HTTPMOD Login
« Antwort #13 am: 02 November 2017, 23:18:03 »
Deine Regex geht nicht. Teste mal auf https://regex101.com
FHEM 5.8 Pi 3, EchoDot, CUL868+Selbstbau 1/2λ-Dipol-Antenne, USB Optolink / Vitotronic, und HM Komponenten, Rademacher Duofern Jalousien, Fritz!Dect Thermostaten

Offline amenomade

  • Hero Member
  • *****
  • Beiträge: 4360
Antw:HTTPMOD Login
« Antwort #14 am: 02 November 2017, 23:20:50 »
Probier mal mit water_today".*?>([\d]+)
« Letzte Änderung: 03 November 2017, 00:06:21 von amenomade »
FHEM 5.8 Pi 3, EchoDot, CUL868+Selbstbau 1/2λ-Dipol-Antenne, USB Optolink / Vitotronic, und HM Komponenten, Rademacher Duofern Jalousien, Fritz!Dect Thermostaten