Auslesen einer Variablen von einer Website

Hallo zusammen,
ich bräuchte eure Hilfe. Ich möchte gerne eine Variable von der Website:
https://portal.comworks.de/de/token/3zdZhF2v8jn-uNDYaGHiTMS5zLVmcQOs/dashboard
auslesen.
wenn man sich die Site anschaut, kommt bei Zeile 88
data-sensor-level=“80”
Diesen Wert würde ich gerne auslesen und in einer Variablen speichern.
Ich vermute, dass ich sowas in der Art machen muss:
image

Aber was genau muss ich beim Parsen eintragen.

Vielen Dank im Voraus

Das Ergebkis der URL ist eine HTML-Seite, kein JSON. Das kannst du nicht auswerten mit dieser JSON-Karte.
Das wird nur gehen in HomeyScript (parsen des HTML-Strings mit JavaScript).

Hättest du dafür einen link für eine schritt für schritt Anleitung?

Nein, nicht wirklich.
Zu Homeyscript und Parameterübergabe gibt es einige Threads. Das übergebene Element ist als Variable args[0] verfügbar.

Im Script kann man mit String-Operationen versuchen, den gewünschten Teil auszulesen.

Wenn du Starg und Ende eindeutig identifizieren kannst, dann könntest du danach suche. und dann über den Index und Länge den Text auslesen.

Alternativ auch mit einem RegEx-Ausdruck. Aber dafür fehlt mir auch die Übung und passende Beispiele.

Hab mal Zauberlehrlingmässig mir die Lösung für Homeyscript zusammengesucht:

HomeyScript dazu:

// My Code

let start = args[0].search("data-sensor-level=") +19 ;
let ende = args[0].indexOf('"', start )
console.log(start, ende);
let ergebnis = args[0].substring(start,ende)
console.log (ergebnis) ;
return parseFloat(ergebnis) ;

Es fehlen nur noch Fehlerabfragen, falls keine Werte gefunden werden.

3 Likes

@Michael_Justus : vielen Dank, funktioniert wunderbar. Wo sehe ich die Console?

Beim testlauf im unteren Bereich

Habe das Ganze noch für 3 Sensoren optimiert:
https://portal.comworks.de/de/token/BAweCjKS_aiPp1um20DJUPgRfiVgEcCa/dashboard

// Womo_Wasser

let index = args[0].search(“1198”)-60;
let start = args[0].indexOf(“data-sensor-level=”,index)+19
let ende = args[0].indexOf(‘"’, start )
console.log(start, ende);
let ergebnis = args[0].substring(start,ende)
console.log (ergebnis) ;
return parseFloat(ergebnis*1.4) ;

// Womo_Gas1

let index = args[0].search(“1215”)-60;
let start = args[0].indexOf(“data-sensor-level=”,index)+19
let ende = args[0].indexOf(‘"’, start )
console.log(start, ende);
let ergebnis = args[0].substring(start,ende)
console.log (ergebnis) ;
return parseFloat(ergebnis) ;

// Womo_Gas2

let index = args[0].search(“1216”)-60;
let start = args[0].indexOf(“data-sensor-level=”,index)+19
let ende = args[0].indexOf(‘"’, start )
console.log(start, ende);
let ergebnis = args[0].substring(start,ende)
console.log (ergebnis) ;
return parseFloat(ergebnis) ;

Und dann mit advanced Device Capabilities noch die Darstellung eingerichtet:
image

Die 179% sind noch ein Fehler des Herstellers :slight_smile:

Hintergrund: In meinem Wohnmobil habe ich 3 Sensoren der Firma Comworks verbaut. Einmal Frischwassertank und 2x Tankgasflaschen. Ein Android Tablet frägt die Sensoren per Bluetooth ab und lädt die Daten hoch. Dort kann ich sie wieder auslesen.

1 Like