Hallo Zusammen,
ich würde gerne mit den HttpUtils.pm ein par Daten vom Piko 10 BA auslesen (Neues Webmodul).
Leider bekomme ich immer als Inhalt
Sorry, the requested file does not exist on this server.
Die URL ist
http://192.168.2.85/#/home
im Browser wird mir die Seite angezeigt, mit dem BlockingGet kommt nur die Meldung.
Mein Code in Fhem (nur zum Testen).
D_KOSTAL_READ:klick {
fhem("set D_KOSTAL_READ nix");
my $param = {url => "http://192.168.2.85/#/home", timeout => 60};
my @WERT = HttpUtils_BlockingGet($param);
fhem("set D_KOSTAL_READ_ERROR ".@WERT[0]);
fhem("set D_KOSTAL_READ_AUSGABE ".@WERT[1]);
}
Wenn ich im Browser "http://192.168.2.85/home" eingebe bekomme ich auch angezeigt das die Datei nicht auf dem Server existiert.
Darum vermute ich das es an der # liegt.
Leider weiß ich hier nicht mehr weiter, würde mich über Unterstützung freuen, danke :)
Gruß
Max
Schon mal HTTPMOD Modul angeschaut?
Gruß
du musst das # als %23 schreiben.
such mal bei google nach urlencode
es gibt zeichen die müssen in einer url besonders codiert werden. die browser machen das zum teil automatisch. in fhem muss du es selber genau vorgeben.
Hallo,
HTTPMOD habe ich noch nicht angeschaut, werde ich gleich mal machen.
das mit %23 habe ich versucht, ging leider auch nicht :(
Gruß
HTTPMOD bringt mir das gleiche, der Server meldet das die Datei nicht verfügbar ist und das bekomme ich dann als ausgabe zurück.
Leider finde ich auch nix ob es einene URL ohne # gibt.
schau mal ob es mit wget geht. die original url und mit debug schauen was genau geholt wird.
So, HttpUtils mit Loglevel 1, bei beiden Varianten ob mit # oder %23 das gleiche.
Aber die # ist in der URL drin
2017.08.28 09:23:08 1: HttpUtils url=http://192.168.2.85/#/home
2017.08.28 09:23:08 2: HttpUtils request header:
WGET /#/home HTTP/1.0
Host: 192.168.2.85
User-Agent: fhem
2017.08.28 09:23:08 1: http://192.168.2.85/#/home: HTTP response code 200
2017.08.28 09:23:08 1: HttpUtils http://192.168.2.85/#/home: Got data, length: 173
2017.08.28 09:23:08 2: HttpUtils response header:
HTTP/1.0 200 OK
Content-Type: text/html
Expires: Sun, 02 Jan 2000 11:11:11 GMT
2017.08.28 09:27:05 1: HttpUtils url=http://192.168.2.85/%23/home
2017.08.28 09:27:05 2: HttpUtils request header:
WGET /%23/home HTTP/1.0
Host: 192.168.2.85
User-Agent: fhem
2017.08.28 09:27:05 1: http://192.168.2.85/%23/home: HTTP response code 200
2017.08.28 09:27:05 1: HttpUtils http://192.168.2.85/%23/home: Got data, length: 173
2017.08.28 09:27:05 2: HttpUtils response header:
HTTP/1.0 200 OK
Content-Type: text/html
Expires: Sun, 02 Jan 2000 11:11:11 GMT
Ich habe was.
http://192.168.2.85/api/dxs.json?dxsEntries=33556736
{"dxsEntries":[{"dxsId":33556736,"value":4926.920898}],"session":{"sessionId":0,"roleId":0},"status":{"code":0}}
Da bekomme ich die Aktuelle PV Leistung.
http://192.168.2.85/api/dxs.json?dxsEntries=33556736&dxsEntries=67109120&dxsEntries=83888128&dxsEntries=33556229&dxsEntries=16780032
Bringt mir dann:
{"dxsEntries":[{"dxsId":33556736,"value":4850.602051},{"dxsId":67109120,"value":1106.510010},{"dxsId":83888128,"value":1074.247559},{"dxsId":33556229,"value":32.000000},{"dxsId":16780032,"value":3}],"session":{"sessionId":0,"roleId":0},"status":{"code":0}}
Also:
DC-Eingang Gesamt
Ausgangsleistung
Eigenverbrauch
Batterie Ladezustand
Betriebsstatus
Jetzt muss ich mir nur noch die IDs für die Parameter die Interessant sind raussuchen und Fertig :)
Rausbekommen habe ich das über die Netzwerkanalyse mit Firefox, da sieht man wo das JS so drauf zugreift.
Also ist mir das mit der # auch egal.
Aber Danke für die Hilfe. Dann werde ich mal schauen das ich mein erstes Modul baue.
Gruß
Max
Zur Info.
//Leistungswerte
ID_DCEingangGesamt = 33556736; // in W
ID_Ausgangsleistung = 67109120; // in W
ID_Eigenverbrauch = 83888128; // in W
//Status
ID_Status = 16780032; // 0:Off
//Statistik - Tag
ID_Ertrag_d = 251658754; // in Wh
ID_Hausverbrauch_d = 251659010; // in Wh
ID_Eigenverbrauch_d = 251659266; // in Wh
ID_Eigenverbrauchsquote_d = 251659278; // in %
ID_Autarkiegrad_d = 251659279; // in %
//Statistik - Gesamt
ID_Ertrag_G = 251658753; // in kWh
ID_Hausverbrauch_G = 251659009; // in kWh
ID_Eigenverbrauch_G = 251659265; // in kWh
ID_Eigenverbrauchsquote_G = 251659280; // in %
ID_Autarkiegrad_G = 251659281; // in %
ID_Betriebszeit = 251658496; // in h
//Momentanwerte - PV Genertor
ID_DC1Spannung = 33555202; // in V
ID_DC1Strom = 33555201; // in A
ID_DC1Leistung = 33555203; // in W
ID_DC2Spannung = 33555458; // in V
ID_DC2Strom = 33555457; // in A
ID_DC2Leistung = 33555459; // in W
//Momentanwerte Haus
ID_HausverbrauchSolar = 83886336; // in W
ID_HausverbrauchBatterie = 83886592; // in W
ID_HausverbrauchNetz = 83886848; // in W
ID_HausverbrauchPhase1 = 83887106; // in W
ID_HausverbrauchPhase2 = 83887362; // in W
ID_HausverbrauchPhase3 = 83887618; // in W
//Netz Netzparameter
ID_NetzAusgangLeistung = 67109120; // in W
ID_NetzFrequenz = 67110400; // in Hz
ID_NetzCosPhi = 67110656;
//Netz Phase 1
ID_P1Spannung = 67109378; // in V
ID_P1Strom = 67109377; // in A
ID_P1Leistung = 67109379; // in W
//Netz Phase 2
ID_P2Spannung = 67109634; // in V
ID_P2Strom = 67109633; // in A
ID_P2Leistung = 67109635; // in W
//Netz Phase 3
ID_P3Spannung = 67109890; // in V
ID_P3Strom = 67109889; // in A
ID_P3Leistung = 67109891; // in W
HTTPMOD und jsonreadings sollte dir weiter helfen.
Funktioniert mit HTTPMOD und der oben angegebenen URL hervorragend.