Webseite vom Smartmeter wird nur unleserlich angezeigt

pitsoft21

Mitglied
Ich habe ein Shelly Pro 3 EM als Smartmeter im Zählerschrank eingebaut. Die Webseite dazu kann ich erreichen. Es werden die Daten der 3 Phasen angezeigt.
Wenn ich diese Webseite mit dem Browser Tool "untersuchen" lasse, kommen auch die üblichen HTML Strukturen.
Wenn ich in Java diese Webseite hole und den Inhalt mit System.out.println ausgebe, kommen nur wirre Zeichen.


Hat der Hardware Hersteller das mit Absicht gemacht ? Wird das über Stylesheets gemacht ? Wie schafft der Browser es das normal anzuzeigen ?Wie kann man das beheben? Oder liegt es an Java. Früher ging das ja immer.

Hier mal der Code:
try {
ep=new JEditorPane("http://192.168.0.223");
String contentType=ep.getContentType();

System.out.println("Content Type="+contentType);
Document doc=ep.getDocument();
try {
String text=doc.getText(1, 520);
System.out.println("Text="+text);

} catch (BadLocationException e) {

e.printStackTrace();
}

} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
 

Anhänge

  • shelly pro 3 em.png
    shelly pro 3 em.png
    59,6 KB · Aufrufe: 0
  • untersuchen.png
    untersuchen.png
    92,5 KB · Aufrufe: 0
  • html_wirrwar.png
    html_wirrwar.png
    9,2 KB · Aufrufe: 0
Zuletzt bearbeitet:

Robert Zenz

Top Contributor
Also meine erste Vermutung (nachdem da ein Dateiname enthalten ist) waere dass das HTML mit GZIP gepackt ist. Das ist sehr gaengige Praxis soweit ich weisz. Also entweder du konfigurierst deinen HTML-Client so dass er dem Server mittteilt dass er nur plane HTML Dateien akzeptiert, oder du entpackst die Antwort, oder du verwendest eine Bibliothek wie jsoup welche das alles von Haus aus kann.
 

pitsoft21

Mitglied
Der Plan war, mit java und über Modbus an die Daten zu kommen. Aus Verbrauch und Solarertrag wollte ich eine Zusatzheizung steuern.
Bisher ist mir allerdings noch kein lauffähiges Modbus Programm gelungen, daher war die Idee, die Daten aus der HTML Seite zu nehmen.
Wenn hier keine Komprimierung vorläge, wäre ich schon fertig. Ich habe mal grob in die jsoup Lib gesehen. Eine Dekomprimierung habe ich aber noch nicht gefunden. Bitte mal sagen welche Klasse und Methode das macht.
Einen HTML Client habe ich nicht ,da ich nur eine URL aufrufe. Da kann ich doch keine ACCEPT Clausel angeben, oder wie soll das gehen?
 

Robert Zenz

Top Contributor
Ich habe mal grob in die jsoup Lib gesehen. Eine Dekomprimierung habe ich aber noch nicht gefunden. Bitte mal sagen welche Klasse und Methode das macht.
Die jsoup Connection Klasse wird das alles handhaben, auf die ein oder andere Weise.

Einen HTML Client habe ich nicht ,da ich nur eine URL aufrufe. Da kann ich doch keine ACCEPT Clausel angeben, oder wie soll das gehen?
Vielleicht dann doch jsoup verwenden? Wuerde auch das zerlegen vom HTML einfacher machen.

Oder halt eine "richtige" API verwenden...da kann man dann auch jsoup dafuer nehmen.
 

Oneixee5

Top Contributor
Man kann bei der Anfrage an den Server den HTTP-Header "Accept-Encoding: identity" mitgeben, ob Jsoup oder anderweitig ist dabei egal. Das sagt dem Server, er soll ohne Modifikation oder Kompression an den Client senden. Das würde ich erst mal testen.
https://en.wikipedia.org/wiki/List_of_HTTP_header_fields
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
I Erste Schritte Einfache Datenbank-Webseite erstellen als Nicht-IT-lerin Java Basics - Anfänger-Themen 24
B Programm, dass alle 3 Tage eine Webseite öffnet? Java Basics - Anfänger-Themen 20
L Webseite aufrufen (HTTP) Java Basics - Anfänger-Themen 8
B Mit webservice a) String auf Webseite ausgeben b) Weiterleitung auf andere Seite Java Basics - Anfänger-Themen 10
Z Html Element aus der Webseite auslesen Java Basics - Anfänger-Themen 1
G Input/Output Webseite Cache-Control: max-age=3 Öfters Aktualisieren? Java Basics - Anfänger-Themen 1
I Java Server Faces mit Glassfish Webseite veröffentlichen Java Basics - Anfänger-Themen 4
I Prüfen ob Webseite existiert Java Basics - Anfänger-Themen 3
I Authentifizierung einer iCal- Datei auf einer Webseite Java Basics - Anfänger-Themen 1
N Textfeld- und Buttonerkennung einer Webseite Java Basics - Anfänger-Themen 6
W Komplette Webseite runterladen Java Basics - Anfänger-Themen 6
A Webseite einlesen und mit String vergleichen Java Basics - Anfänger-Themen 7
A Webseite in Programm einbinden Java Basics - Anfänger-Themen 5
T Applikation/App/Webseite - Wie fortfahren? Java Basics - Anfänger-Themen 3
C Bestimmte Informationen von Webseite suchen Java Basics - Anfänger-Themen 13
V .jar Programm auf Webseite bringen Java Basics - Anfänger-Themen 7
C Dynamische (AJAX) Inhalte einer Webseite mittels Java auslesen Java Basics - Anfänger-Themen 2
E Anmeldung an Webseite und Abruf einer Datei Java Basics - Anfänger-Themen 3
E Konsolenprogramm in Webseite einbinden Java Basics - Anfänger-Themen 4
O Variablen Variablen Inhalt von Webseite einlesen!? Java Basics - Anfänger-Themen 2
M Webseite komplett laden Java Basics - Anfänger-Themen 4
J Mit JS, Text und Bilder von Webseite verändern... Java Basics - Anfänger-Themen 10
B Webseite einblenden Java Basics - Anfänger-Themen 15
R UTF-8 Webseite Umlaute lesen. Java Basics - Anfänger-Themen 2
7 Webseite aufrufen Java Basics - Anfänger-Themen 3
F Uhrzeit von Webseite Java Basics - Anfänger-Themen 7
B Einfache Applets für Webseite Java Basics - Anfänger-Themen 10
D Webseite zum Herunterladen von Java-Quelltexten? Java Basics - Anfänger-Themen 3
D Advanced - Daten aus der Webseite holen Java Basics - Anfänger-Themen 7
X Webseite auslesen ohne Quellcode zu splitten Java Basics - Anfänger-Themen 3
M Auf Java (Desktop) Applikation mittels Webseite zugreifen Java Basics - Anfänger-Themen 6
S Accordeon bei Webseite geht bei Ie8 nicht Java Basics - Anfänger-Themen 2
Developer_X Webseite im JFrame Java Basics - Anfänger-Themen 4
S Neuladen der Webseite nach Klick im Applet Java Basics - Anfänger-Themen 2
F Webseite erstellen Java Basics - Anfänger-Themen 13
S Applet in Webseite einbinden Java Basics - Anfänger-Themen 2
G Position eines Objekts auf Webseite herausfinden Java Basics - Anfänger-Themen 9
X Via Java auf eine Webseite einloggen. Java Basics - Anfänger-Themen 6
D quellcode in webseite einbinden Java Basics - Anfänger-Themen 7
G Webseite zugriff Java Basics - Anfänger-Themen 6
G JAVA - iMacros - Zahlen aus Webseite auslesen Java Basics - Anfänger-Themen 3
G Webseite aufrufen Java Basics - Anfänger-Themen 9
R JSP: Ausgabe einer entfernten Webseite in Variable einlesen Java Basics - Anfänger-Themen 2
G Häufigkeit der Wörter einer Webseite zählen Java Basics - Anfänger-Themen 7
G Webseite aus Java heraus laden Java Basics - Anfänger-Themen 3
G text von webseite kopieren Java Basics - Anfänger-Themen 9
U Queltext einer Webseite auslesen Java Basics - Anfänger-Themen 6
M webseite auslesen Java Basics - Anfänger-Themen 6
G Buttonklick -> Aufruf einer Webseite Java Basics - Anfänger-Themen 16
L Webseite mit Java erstellen Java Basics - Anfänger-Themen 4
G Webseite aufrufen mit Java (Link artig) Java Basics - Anfänger-Themen 7
B webseite (java applet enthalten) offline ansehen Java Basics - Anfänger-Themen 7
K Webseite einlesen Java Basics - Anfänger-Themen 7
N Inhalt von Webseite auslesen Java Basics - Anfänger-Themen 3
K Warum wird mir auf der Konsole des Servers nicht "xxxx" angezeigt (Server/Client) Java Basics - Anfänger-Themen 4
K Warum wird hier nur etwas in eine txt Datei geschrieben und nicht in alle drei (InputStream/OutputStream/Reader/Writer) Java Basics - Anfänger-Themen 1
I Exception wird gefangen, aber trotzdem in Error Log? Java Basics - Anfänger-Themen 10
H JDK installieren jdk-21 wird nicht erkannt Java Basics - Anfänger-Themen 13
T if-else Bedingung wird ignoriert Java Basics - Anfänger-Themen 4
K Warum wird mir "Empfangen vom Client:" nicht sofort ausgegeben(Server/Client) Java Basics - Anfänger-Themen 3
A Warum wird mein jdk nicht gefunden? Java Basics - Anfänger-Themen 3
J jar Befehl wird nicht erkannt Java Basics - Anfänger-Themen 7
M Anonyme Klassen - Warum wird in der Konsole nichts ausgegeben? Java Basics - Anfänger-Themen 1
T catch(InputMismatchException) wird nicht ausgefürt/erkannt Java Basics - Anfänger-Themen 12
berserkerdq2 Intelij, wie kann ich einstellen, dass die aktuelle Klasse ausgeführt wird, wenn ich aufs Startsymbol drücke, gibts da eine Tastenkombination? Java Basics - Anfänger-Themen 11
M Verständnisfrage: Warum wird die Datei ohne Inhalt übertragen Java Basics - Anfänger-Themen 3
Ostkreuz Wieso wird die Methode nochmal aufgerufen? Java Basics - Anfänger-Themen 5
Oneixee5 Maven Plugin wird 2 mal ausgeführt Java Basics - Anfänger-Themen 10
R Compiler-Fehler Variable wird nicht gefunden bzw. erkannt? Java Basics - Anfänger-Themen 2
D Interface Methode wird ungewollt in der Subklasse überschrieben Java Basics - Anfänger-Themen 5
C Was tun wenn .class erwartet wird ? Java Basics - Anfänger-Themen 6
T Meine Klasse wird nicht gefunden Java Basics - Anfänger-Themen 1
T Wie kann man es machen das ein Objekt nicht übermalt wird Java Basics - Anfänger-Themen 2
K Warum wird mir hier nach dem ersten Durchlauf zwei mal "welchen Datentyp wollen sie übergeben?" ausgegeben ? Java Basics - Anfänger-Themen 1
MiMa Ungültiges Datum wird nicht erkannt ?? Java Basics - Anfänger-Themen 6
schemil053 Multithread - Input verrutscht während etwas ausgegeben wird Java Basics - Anfänger-Themen 6
K REGEX - Rechnungsbetrag wird nicht richtig ausgelesen. Java Basics - Anfänger-Themen 3
_user_q Timer - ScheduledExecutorService wird schon vorher beendet Java Basics - Anfänger-Themen 5
X Erste Schritte Scanner eingabe wird übersprungen Java Basics - Anfänger-Themen 4
H Compiler-Fehler Klasse in einem Package wird nicht gefunden bzw. akzeptiert Java Basics - Anfänger-Themen 12
L Switch-Case Multiplikation wird nicht ausgegeben Java Basics - Anfänger-Themen 1
J In der Ausgabe wird ohne Eingabe in den else Block gesprungen. Java Basics - Anfänger-Themen 0
J In der Ausgabe wird ohne Eingabe in den else Block gesprungen. Java Basics - Anfänger-Themen 5
M Text wird in der Console nicht ausgegeben. Java Basics - Anfänger-Themen 11
I Methoden Wieso wird mein Array "a" verändert und meine Variable "a" nicht? Java Basics - Anfänger-Themen 4
S Datei anlegen Problem! Groß- und Kleinschreibung wird nicht unterschieden Java Basics - Anfänger-Themen 4
sserio Zweidimensionales Array [][] wird untereinander ausgegeben Java Basics - Anfänger-Themen 14
sserio Math. Befehl wird rot markiert Java Basics - Anfänger-Themen 5
M Rechteck wird nicht angezeigt Java Basics - Anfänger-Themen 3
B Bungeecord | ProxiedPlayer wird nicht in ArrayList hinzugefügt Java Basics - Anfänger-Themen 1
U Methode wird genutzt, ohne dass ich die aufrufe? Java Basics - Anfänger-Themen 4
S Methoden Return Rückgabewert wird nicht übergeben Java Basics - Anfänger-Themen 8
M Mein quellcode wird nicht in der Konsole ausgegeben Java Basics - Anfänger-Themen 3
I Code wird nicht ausgeführt Java Basics - Anfänger-Themen 2
M wird der Konstruktor nicht als 1. ausgeführt? Java Basics - Anfänger-Themen 13
G Main Methode wird beim ersten Aufruf nicht richtig ausgeführt Java Basics - Anfänger-Themen 1
K Präzedenregeln in Java sagen, dass +expr und -expr vor + von Addition und - von Addition stehen, warum wird dann z. B. a+b als eine Addition ausgeführ Java Basics - Anfänger-Themen 7
M Was wird hier genau getestet? Java Basics - Anfänger-Themen 9
M Wie schreibe ich eine if-Verzweigung um, so dass ein Bedingungsoperator benutzt wird? Java Basics - Anfänger-Themen 9
I Programm erkennt nicht an das Array zurückgegeben wird trotz Initialisierung *einfach* Java Basics - Anfänger-Themen 9

Ähnliche Java Themen

Neue Themen


Oben