Binding für Gerät mit Webserver (Steca-Wechselrichter)

Einrichtung der openHAB Umgebung und allgemeine Konfigurationsthemen.

Moderatoren: seppy, udo1toni

starbright
Beiträge: 70
Registriert: 16. Jan 2023 19:27

Binding für Gerät mit Webserver (Steca-Wechselrichter)

Beitrag von starbright »

Würde gern eine Wechselrichter mit ins OpenHAB integrieren. Daten liefert der soweit ich sehen kann als Webserver.
Also im WR ist ein Webserver.
Wie geht man den vor, wenn ich die Daten abgreifen will? Bin jetzt mit "web" nicht so vertraut aber kann ein bisschen C programmieren.
von udo1toni » 21. Feb 2023 23:35
Das ist... ungünstig. (also die Sache mit dem ---)

Man könnte zunächst versuchen, den Wert so zu catchen:

Code: Alles auswählen

.*P AC<\/td><td align='right'> *([0-9\-]+\.?[0-9\-]+?) *<.*
[0-9\-] ist ein Zeichen aus der Zeichengruppe 0 bis 9 und zusätzlich das Zeichen -, also alles was an der Stelle auftreten kann. Das \.? catcht auf einen Punkt, der genau einmal oder keinmal vorkommt und hintenraus halt noch mal die Zahlen/Minus-Gruppe. Man könnte auch bei der hinteren Zahlengruppe einen Stern statt plus setzen, damit auch einstellige Zahlen ohne Dezimalpunkt matchen.

So, das wäre der Wert inclusive --- (auch noch bemerken: bei --- kommt auch hinten noch ein Leerzeichen dazu...). Das müssen wir nun noch in einem zweiten Schritt ersetzen, das könnte man mit einem JavaScript Script erledigen.

Ich bin nicht sonderlich bewandert mit JavaScript, aber vermutlich wäre es sowas:

Code: Alles auswählen

(function(value){
    if(value.includes("---"))
        value=0;
    return value;
})(input)
Nehmen wir an, der Code ist als no2zero.js abgespeichert, und zwar (zwingend) im Ordner $OPENHAB_CONF/transform/, dann sollte es möglich sein, den Output von REGEX als Input für JS zu verwenden. Das sieht dann so aus:

Code: Alles auswählen

stateTransformation: REGEX:.*P AC<\/td><td align='right'> *([0-9\-]+\.?[0-9\-]+?) *<.*∩JS:no2zero.js
Das Zeichen ∩ ist das Zeichen "Intersection" oder auf deutsch "Schnittmenge", was natürlich nicht so ganz stimmt, denn eigentlich ist es eine Chain, aber... so isses nun mal...
Da das Zeichen auf der normalen Tastatur nicht vorkommt, ist es das Einfachste, es aus dem Hilfstext zur stateTransformation zu kopieren, wo es erwähnt ist. In der Zeichentabelle von Windows heißt es fälschlich Durchschnitt :) wo doch jeder noch aus der Schulzeit das Ø als Durchschnitt kennt...
Gehe zur vollständigen Antwort

Benutzeravatar
udo1toni
Beiträge: 13865
Registriert: 11. Apr 2018 18:05
Answers: 222
Wohnort: Darmstadt

Re: Binding für Gerät mit Webserver (Steca-Wechselrichter)

Beitrag von udo1toni »

Gewöhnlich nutzt man dazu das http Binding. Dort gibst Du die URL des Systems an (im Zweifel schaust Du Dir alle abzurufenden URL an und gibst im Thing den Teil an, der sich nicht zwischen den verschiedenen Aufrufen unterscheidet), dann pro Seite, die aufgerufen werden muss, den restlichen Teil der URL. Als Typ für den Channel definierst Du zunächst string, so dass Du sehen kannst, dass die Daten ankommen.
Moderne Geräte unterstützen meist das Auslesen der Daten per JSON, das sollte Dein bevorzugtes Format sein, wenn Du mehrere zur Auswahl hast. xml wäre ebenfalls eine Option (ich stehe damit aber auf Kriegsfuß), oder, falls die Daten nur eingebettet in einer gewöhnlichen html-Seite erreicht werden können, REGEX wäre ebenfalls noch eine Methode, um an die einzelnen Werte heranzukommen.

Für jedes der Extraktionsverfahren ;) gibt es ein Transformation Binding, welches genau wie alle anderen Bindings zunächst installiert werden muss. Und dann musst Du halt die passende Konfiguration hinterlegen, um die Daten zu extrahieren.
Falls Du damit Schwierigkeiten hast, wären spezifische Informationen hilfreich: Typ des Wechselrichters, konkrete Adressen, die abgefragt werden können, ein exemplarischer Datenauszug (also die Antwort auf eine passende http Anfrage).
openHAB4.1.2 stable in einem Debian-Container (bookworm) (Proxmox 8.1.5, LXC), mit openHABian eingerichtet

starbright
Beiträge: 70
Registriert: 16. Jan 2023 19:27

Re: Binding für Gerät mit Webserver (Steca-Wechselrichter)

Beitrag von starbright »

Viele Dank, ich werde mich mal einlesen und muss dann vermutlich noch mal darauf zurück kommen. Wichtig ist für mich erst mal, es geht prinzipiell.

Benutzeravatar
udo1toni
Beiträge: 13865
Registriert: 11. Apr 2018 18:05
Answers: 222
Wohnort: Darmstadt

Re: Binding für Gerät mit Webserver (Steca-Wechselrichter)

Beitrag von udo1toni »

Wenn die notwendigen Aufrufe nicht absurd komplex sind, sollte es keine Probleme geben.
openHAB4.1.2 stable in einem Debian-Container (bookworm) (Proxmox 8.1.5, LXC), mit openHABian eingerichtet

oh73
Beiträge: 285
Registriert: 7. Mär 2021 14:49
Answers: 1

Re: Binding für Gerät mit Webserver (Steca-Wechselrichter)

Beitrag von oh73 »

ich hab ein ähnliches Problem,

hab einen SMA Tripower 8.0 Wechselrichter,
den könnte man über den Modbus abfragen.
Aber mein Installateur weigert sich bis jetzt immer noch den Modbus frei zu schalten!

zweite Möglichkeit wäre über die Web-Seite , da wird mir der Ertrag angezeigt was mir fürs erste auch reichen würde.

Bild

die Web-Seite liefert mir im Quelltext einiges, sehe aber keine Möglichkeit da etwas heraus zu filtern.

Code: Alles auswählen

<!doctype html>
<html class="no-js" ng-app="webuiApp">

<head>
	<meta charset="utf-8">
	<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
	<meta name="description" content="">
	<meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=no">
	<meta name="mobile-web-app-capable" content="yes">
	<title ng-bind="(title | translate) + (titleSite?' - ':'') + (titleSite | translate)"></title>
	<div ng-if="titleImage.length !== 0">
		<link id="dynamic-favicon" rel="icon" href="{{titleImage}}" type="image/x-icon">
	</div>
	<link rel="stylesheet" href="styles/vendor.58b34d05.css">
</head>

<body>
	<div id="wrap">
		<div class="container" ng-controller="HeaderCtrl">
			<div class="row">
				<div class="col-md-8 col-sm-6 col-xs-8">
					<h2><strong ng-bind="''+typeTag | translate | uppercase"></strong></h2>
				</div>
				<div class="col-md-4 col-sm-6 col-xs-4"><a ng-if="websiteGlobal.length !== 0"
						href="{{websiteGlobal.link}}"
						target="_blank"><img ng-if="showLogo" ng-src="{{logo.data}}" style="width:{{logo.width}}px;height:{{logo.height}}px" class="pull-right img-responsive"></a>
				</div>
			</div>
		</div>
		<div class="container navbar-container">
			<!--[if !IE]>-->
			<div class="navbar navbar-default" role="navigation" ng-controller="NavigationCtrl">
				<div class="navbar-header">
					<h3 class="hidden-md hidden-lg" style="float: left" ng-bind="navigationTitle | translate"></h3>
					<h3 ng-show="isDashBoard()" style="float: left" ng-bind="namePlateLocation"></h3>
					<button type="button" class="navbar-toggle" ng-click="isCollapsed = !isCollapsed" id="mainNavMobileButton"><span class="sr-only">Toggle navigation</span> <span class="icon-bar"></span> <span class="icon-bar"></span> <span class="icon-bar"></span></button>
				</div>
				<div uib-collapse="isCollapsed" class="navbar-collapse bs-js-navbar-collapse">
					<ul class="nav navbar-nav" id="mainNavigation">
						<li ng-repeat="nav in navigation" data-access-level="accessLevels.{{nav.accessLevel}}"
							ng-class="{ 'active': checkActive('{{nav.state}}') }"><a ui-sref="{{nav.state}}"
								class="separator"
								ng-click="clearNav()"><i class="icon-{{nav.icon}}" ng-if="nav.icon"></i>
								<span ng-if="nav.tag" class="{{ nav.mobileVisibilityClass }}" id="{{nav.buttonId}}" translate="{{nav.tag}}"></span></a>
						</li>
					</ul>
					<ul class="nav navbar-nav navbar-right">
						<li class="dropdown" ng-hide="isDashBoard()"></li>
						<li ng-show="isDashBoard() && !preLogin()"><a ui-sref="bootstrap.login" ng-click="doLogin()"
								id="lLogin" translate="bLogin"></a></li>
						<li ng-show="isDashBoard() && preLogin()"><a ui-sref="bootstrap.smartView" ng-click="doCancel()"
								id="lCancel" translate="bCancel"></a></li>
						<li class="dropdown" ng-hide="isDashBoard()" data-access-level="accessLevels.user"><a href=""
								class="dropdown-toggle separator" data-toggle="dropdown"
								title="{{ 'tUserSettings' | translate }}"
								id="dropdownUser"><i class="icon-user" id="user-icon"></i><span class="hidden-md hidden-lg" translate="lUserSettings"></span>
								<b class="caret"></b></a>
							<ul class="dropdown-menu">
								<li ng-if="platformCfg.hasWizard" data-access-level="accessLevels.installer"><a
										ui-sref="bootstrap.formwizard" ng-click="clearNav(true)"
										id="lRestartSetupWizard" translate="lRestartSetupWizard"></a></li>
								<li ng-if="hasSmartView() && isSystemInit()" data-access-level="accessLevels.user"><a
										ng-click="toggleSmartView()"
										id="lSmartView">{{'lSmartView' | translate}}&nbsp;<i class="icon-info" data-toggle="popover" title="{{ 'lSmartViewInfo' | translate }}"></i>
										<span ng-show="enableSmartView">&#10003;</span></a></li>
								<li ng-if="hasSmartView() && !isSystemInit()" data-access-level="accessLevels.user"><a>
										<ai><span class="disabledLink" style="opacity: .65">{{'lSmartView' | translate}}</span>&nbsp;<i class="icon-info" data-toggle="popover" title="{{ 'lSmartViewInfo' | translate }}"></i>
										</ai>
									</a></li>
								<li ng-if="enabledGridGuardLogin()" data-access-level="accessLevels.installer"><a
										ng-click="openGridGuardLoginModal()" id="lGridGuardLogin"
										translate="lGridGuardLogin"></a></li>
								<li ng-if="platformCfg.hasTimeOfUseSupport && isLoggedIn() && timeOfUseAvailable()"
									data-access-level="accessLevels.user"><a ng-click="openTimeOfUseModal()"
										id="lTimeOfUseModal" translate="lTimeOfUseModal"></a></li>
								<li ng-if="isLoggedIn() && onlineManualAvailable()"
									data-access-level="accessLevels.user"><a ng-click="openOnlineManualLink()"
										id="lOnlineHelp" translate="lOnlineHelp"></a></li>
								<li ng-if="enableSmartView"><a ng-click="doLogout('bootstrap.smartView')"
										id="lLogoutSmartView" translate="lLogout"></a></li>
								<li ng-if="!enableSmartView"><a ng-click="doLogout('bootstrap.login')" id="lLogoutLogin"
										translate="lLogout"></a></li>
							</ul>
						</li>
						<li class="dropdown"><a href="" class="dropdown-toggle" data-toggle="dropdown"
								title="{{ 'tHelp' | translate }}"
								id="dropdownHelp"><i class="icon-hilfe" id="icon-hilfe"></i>
								<span class="hidden-md hidden-lg" translate="lHelp"></span> <b class="caret"></b></a>
							<ul class="dropdown-menu">
								<li><a ng-click="modalShowOpenSourceLicenses()" translate="lOpenSourceLicenses"></a>
								</li>
								<li ng-if="websiteGlobal.length !== 0"><a href="{{websiteGlobal.link}}" target="_blank"
										id="lLinkToGlobalWebsite" ng-bind="websiteGlobal.text"></a></li>
							</ul>
						</li>
					</ul>
				</div>
			</div>
			<!--<![endif]-->
		</div>
		<div class="container">
			<!--[if lte IE 9]><div class="alert alert-warning">
            <p class="browsehappy">You are using an <strong>outdated</strong> browser. Please <a href="http://go.sma.de/smaUpdateBrowser">upgrade
                your browser</a> to improve your experience.</p>
        </div><![endif]-->
			<script type="text/javascript">
				var cookieEnabled=(navigator.cookieEnabled)? true : false

            //if not IE4+ nor NS6+
            if (typeof navigator.cookieEnabled=="undefined" && !cookieEnabled){
                document.cookie="testcookie"
                cookieEnabled=(document.cookie.indexOf("testcookie")!=-1)? true : false
            }

            if (!cookieEnabled){
                document.write("<div class='alert alert-warning'><p translate=\"{{'lCookiesNotActive'}}\"></p><p translate=\"{{'eCookiesDeactivated'}}\"></p></div>");
            }
			</script>
			<div ui-view=""><noscript>
					<div class="alert alert-danger center-block" style="max-width:500px">JavaScript is deactivated in
						the settings of your web
						browser.<br/>For the correct display of the inverter user interface, Java Script is, however, required.<br/>
						<ul>
							<li>Activate JavaScript in the settings of the web browser and reload the inverter user
								interface.<br/>A description how to activate JavaScript in your web browser can be found
								<a href="https://go.sma.de/KIKwz">here.</a></li>
						</ul>
					</div>
				</noscript>
				<div class="row row-signin">
					<div class="row row-signin">
						<div
							class="col-xs-8 col-xs-offset-2 col-sm-6 col-sm-offset-3 col-md-4 col-md-offset-4 col-lg-4 col-lg-offset-4">
							<div style="text-align: center;  padding: 10px; padding-top: 20px">
								<span us-spinner="{ length: 10, width: 5, radius: 15 }"></span></div>
						</div>
					</div>
				</div>
			</div>
		</div>
		<div id="push"></div>
	</div>
	<div id="footer" ng-if="!isDashBoard()">
		<!--[if !IE]>-->
		<div class="container">
			<div class="row" ng-if="isLoggedIn() && isObjMetaInfReady()" ng-controller="FooterCtrl">
				<div class="col-lg-8 col-md-7 col-sm-5 col-xs-6 footer content">
					<span id="serialTxt" class="ng-bind:serialText()|translate"></span>:
					<span id="serialNum" class="ng-bind:serialNum()"></span><br/><span translate="lFwVersion"></span>
					<span valuedir="" values="values" key="pkgRevKey" id="fwversion"></span><br/><span style="display:block; color:#9da0a4" ng-show="!spdwrConnected && getVal(values, 'Spdwr_ActlIp') != '' && getVal(values, 'Spdwr_ActlIp') != null"><span translate="lIpInverterSpeedwire"></span>
					<span valuedir="" values="values" key="SpwrConnStt" id="SpwrConnStts"></span></span>
					<span style="display:block" ng-show="spdwrConnected && getVal(values, 'Spdwr_ActlIp') != '' && getVal(values, 'Spdwr_ActlIp') != null"><span translate="lIpInverterSpeedwire"></span>
					<span valuedir="" values="values" key="actlIpKey" id="SpwactlIp"></span></span>
					<span style="display:block" ng-show="wlConnected"><span translate="lIpInverterWlan"></span>
					<span valuedir="" values="values" key="wlActIpKey" id="WlactlIp"></span></span></div>
				<div class="col-lg-2 col-md-2 col-sm-3 hidden-xs contentWlanStatus footer"
					ng-show="wlConnected || wlSoftAcsIsOn.active">
					<i class="{{(wlSigPwr.value | wlanConnectionStatus).icon}}" ng-show="wlConnected" uib-popover="{{ wlSigPwr.tag | translate }}: {{ (wlSigPwr.value | wlanConnectionStatus).tooltip }}" popover-trigger="mouseenter" popover-placement="top" popover-append-to-body="true"></i>
					<i class="icon-podcast" ng-show="wlSoftAcsIsOn.active" uib-popover="{{ wlSoftAcsIsOn.tag | translate}}" popover-trigger="mouseenter" popover-placement="top" popover-append-to-body="true"></i>
				</div>
				<div id="footerRight" class="col-lg-2 col-md-3 col-sm-4 col-xs-6 content last footer"
					ng-class="addOffset"><span translate="lUsrGrFt"></span>
					<span translate="{{username}}" id="user"></span><br/><span ng-hide="update" translate="lDtTiFt"></span>
					<span ng-hide="update" ng-bind="getDate() | serverDate:'short'" id="datetime"></span>
					<span ng-show="update" style="text-align: center" us-spinner="{ length: 6, width: 1, radius: 3 }"></span>
				</div>
			</div>
		</div>
		<!--<![endif]-->
	</div>
	<script src="scripts/vendor.031ebc6e.js"></script>
	<script src="scripts/scripts.ea0bca8e.js"></script>
</body>

</html>
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.
OH 4.0.3 auf HP 26o G1 Dm Mini Pc mit MX_Linux

Benutzeravatar
udo1toni
Beiträge: 13865
Registriert: 11. Apr 2018 18:05
Answers: 222
Wohnort: Darmstadt

Re: Binding für Gerät mit Webserver (Steca-Wechselrichter)

Beitrag von udo1toni »

Kurze Frage: Wem gehört der Wechselrichter?
Weitere Frage: Wer bezahlt den Installateur?
Gibt es in den Betriebsunterlagen von SMA eine Einschränkung, die SMA Rechte an Deinen Daten einräumt?
Falls ja: War Dir diese Regelung vor dem Kauf der Anlage bewusst, bzw. wurde Dir das ausdrücklich vor dem Kauf erklärt?

Ich halte ein solches Gebaren gelinde gesagt für sittenwidrig, wirst Du doch damit ohne Not und ohne rechtliche Grundlage in eine Cloud gezwungen.

Falls die sich stur stellen, sollte man Werbung machen.
Ich habe z.B. eine Fronius Symo (genauen Typ müsste ich nachschauen), ich habe sämtliche Zugangsdaten (auch das Service Passwort), ich habe diese Daten von Anfang an gehabt, und zwar ohne dass ich darum bitten musste. Die Errichterfirma hat mir die Daten einfach direkt in die Hand gedrückt (wie es sich eigentlich auch gehört).
Firmen, die Eigentümer ihrer Geräte zu Datenguellen degradieren, gehören boykottiert.

Ähm... vielleicht bin ich etwas impulsiv... ;)
Egal... ich lass das jetzt mal so stehen.

Da die Daten zumindest in der aufgerufenen Seite nicht auftauchen, wirst Du eine andere Seite suchen müssen, z.B. scripts/scripts.ea0bca8e.js wird die verschiedenen Variablen setzen, die in der Seite abgerufen werden.
Ich nehme mal an, dass die von SMA beworbene API ebenfalls ausschließlich über die Cloud erreichbar ist.
openHAB4.1.2 stable in einem Debian-Container (bookworm) (Proxmox 8.1.5, LXC), mit openHABian eingerichtet

oh73
Beiträge: 285
Registriert: 7. Mär 2021 14:49
Answers: 1

Re: Binding für Gerät mit Webserver (Steca-Wechselrichter)

Beitrag von oh73 »

Kurze Frage: Wem gehört der Wechselrichter?
mir!
Weitere Frage: Wer bezahlt den Installateur?
der Installateur ist ein Subunternehmer von dem Verkäufer der PV-Anlage.
habe aber die Rechnung der PV-Anlage noch nicht komplett bezahlt!
Gibt es in den Betriebsunterlagen von SMA eine Einschränkung, die SMA Rechte an Deinen Daten einräumt?
auch ein Grund warum ich noch nicht alles bezahlt habe!
keinerlei Unterlagen bei dem Gerät!
bezweifle langsam ob er mir ein neues Gerät verkauft hat?
Ich halte ein solches Gebaren gelinde gesagt für sittenwidrig, wirst Du doch damit ohne Not und ohne rechtliche Grundlage in eine Cloud gezwungen.
ich schon lange!

hab ihn kurz nach Weihnachten mit einem Anwalt gedroht!
danach hat er mir versprochen er würde den Modbus freischalten, aber das Installateur Passwort bekomme ich nicht!
nur passiert ist wieder nix!
Ähm... vielleicht bin ich etwas impulsiv... ;)
ist doch noch harmlos! wenn ich erst mal richtig böse werde, dann raucht der Schornstein!
Ich nehme mal an, dass die von SMA beworbene API ebenfalls ausschließlich über die Cloud erreichbar ist.
gibt 2 Möglichkeiten um an die Daten zu kommen,
entweder über den Modbus ohne Cloud,
oder über das Sunny Portal mit Cloud, aber da hat er auch was gesperrt, kann mich zwar anmelden, komme aber nicht an die Anlage, nur mit Installateur Passwort und das habe ich ja nicht!
OH 4.0.3 auf HP 26o G1 Dm Mini Pc mit MX_Linux

Benutzeravatar
udo1toni
Beiträge: 13865
Registriert: 11. Apr 2018 18:05
Answers: 222
Wohnort: Darmstadt

Re: Binding für Gerät mit Webserver (Steca-Wechselrichter)

Beitrag von udo1toni »

Technische Unterlagen zu der Anlage sind nicht optional, die gehören dazu - streng genommen eine komplette technische Dokumentation, dazu gehört z.B. auch ein Prüfprotokoll, Isolationsspannung, Innenwiderstand, sowas halt.
Ähm, für jedes Modul. Einzeln. Und im Verbund. Nachweis der statischen Sicherheit der Befestigung der PV-Module gehört auch dazu (habe noch nie gesehen, dass sowas tatsächlich mit eingeheftet gewesen wäre, dabei sind die entsprechenden Nachweise von den Herstellern der Befestigungssysteme immer verfügbar, heutzutage sogar kostenlos im Internet)
Letztlich macht die Dokumentation gerne einen deutlich zweistelligen prozentualen Anteil an so einem Auftrag, aber wo kein Kläger, da kein Richter.

Ein Anwalt ist aber sicher ein gangbarer Weg, zumal man gleich noch eine Kostennote mit anhängen kann. Oder ein Anruf beim Verkäufer, der kommt dabei auch nicht gut weg, wenn er seinen Subunternehmer nicht im Griff hat. Ist halt alles sehr lästig (und ich schrecke auch immer davor zurück, Anwalt ist quasi ultima ratio, obwohl das eigentlich die erste (oder meinetwegen zweite) Eskalationsstufe ist.
openHAB4.1.2 stable in einem Debian-Container (bookworm) (Proxmox 8.1.5, LXC), mit openHABian eingerichtet

violine21
Beiträge: 589
Registriert: 20. Sep 2019 05:49
Answers: 7

Re: Binding für Gerät mit Webserver (Steca-Wechselrichter)

Beitrag von violine21 »

die Web-Seite liefert mir im Quelltext einiges, sehe aber keine Möglichkeit da etwas heraus zu filtern.
Ich nutze bei Mozilla Firefox gern die Funktion: rechte Maus -> untersuchen
Damit kann man sich an die Quelle der Daten zumindesten herrantasten. Fahre mit der Maus über den Quelltext im Inspektor-Fenster.
Da siehst du, an welcher Stelle was steht. Zwischendrin sind immer kleine Symbole, meist mit 3 Punkten. Die kannst du per Klick öffnen
und gelangst immer tiefer in das Dokument.
bezweifle langsam ob er mir ein neues Gerät verkauft hat?
Das soll jetzt keine Unterstellung sein, aber SMA und Fronius sind schon seit einer Weile wegen Chipmangels nicht lieferbar.
Es gibt im Moment fast nur noch asiatische Modelle.
Ein Anwalt ist aber sicher ein gangbarer Weg, zumal man gleich noch eine Kostennote mit anhängen kann
Wenn du eine Rechtsschutzversicherung hast, solltest du nicht zögern.

oh73
Beiträge: 285
Registriert: 7. Mär 2021 14:49
Answers: 1

Re: Binding für Gerät mit Webserver (Steca-Wechselrichter)

Beitrag von oh73 »

Ich nutze bei Mozilla Firefox gern die Funktion: rechte Maus -> untersuchen
Damit kann man sich an die Quelle der Daten zumindesten herrantasten. Fahre mit der Maus über den Quelltext im Inspektor-Fenster.
Da siehst du, an welcher Stelle was steht. Zwischendrin sind immer kleine Symbole, meist mit 3 Punkten. Die kannst du per Klick öffnen
und gelangst immer tiefer in das Dokument.
mache ich ja auch so,
nur komme ich da nicht weiter weil da Java Scripts drin sind.

wenn ich mich mit Java was besser auskennen würde, könnte man da sicher was machen.
OH 4.0.3 auf HP 26o G1 Dm Mini Pc mit MX_Linux

Antworten