Mit Scrape Wärmepumpen Webseite auslesen

Hallo zusammen.

Da ich mich neu angemeldet habe möchte ich mich, bzw. mein Projekt im Gesamten, kurz vorstellen.
Ich hab vor vier Jahren neu gebaut und die Chance genutzt,
bzgl. Smart Home alles so gut wie es mir Möglich war, vorzubereiten.

Als Grundlage nutze ich KNX, überwiegend mit MDT Komponenten, die ich bereits alles in HA eingebunden habe. Dazu kommen noch weitere Dinge, wie meine SMA PV Anlage mit BYD Batteriespeicher, einige Reolink Kameras, meinen VW ID.3, openwb Wallbox, usw…

Die ersten Jahre habe ich Openhab genutzt, was auch ganz gut funktioniert hat.
Allerdings finde ich das wesentlich komplizierter, sodass ich den Umstieg nicht bereut habe.
Ich nutze HA überwiegend über einige Alexas, über die offizielle Nabu Casa Schnittstelle.

Ich Selber bin Entwickler im Maschinenbau (leider kein Software Entwickler) sodass mir die Dinge nicht so einfach fallen und ich mir das entsprechend erarbeiten muss.

Vielen Dank an dieser Stelle für diese Möglichkeit und die vielen Videos.
Ohne das, wären Leute wie ich aufgeschmissen.
Ebenso an die Leute, die sich den Probleme anderer annehmen.
Auch das ist heute nicht mehr selbstverständlich.

Nun zu meinem Problem.
Ich würde gerne meine Wärmepumpe Tecalor THZ504 (baugleich Stiebel Eltron LWZ504) in HA integrieren.
Ich nutze die Wärmepumpe mit einem “ISG” was einen lokalen Webserver hat. Dieses ISG kommuniziert direkt mit meinem SMA Sunny Home Manager 2. Die Kommunikation ist sozusagen geschlossen und es gibt keine Möglichkeit die Daten der Wärmepumpe über z. B MQTT abzugreifen (jedenfalls ist mir keine Bekannt).

Nun hab ich mir überlegt, die Daten per scrape Integration abzugreifen.
Dank dem Video von Simon hab ich das auch an einer Stelle hinbekommen.
Allerdings klappt das bei 95% der Daten nicht.

Ich bin auch hier totaler Anfänger. Ich hoffe das eine Fachkundige Person mir vielleicht relativ einfach helfen kann.

Hier mal ein Beispiel von einem Wert, den ich versucht habe auszulesen:


In yaml hab ich folgendes eingetragen:

  • resource: http://192.168.178.33/?s=1,0
    sensor:
    • name: “VOLUMENSTROM”
      unique_id: ‘VOLUMENSTROM’
      select: “#content > div:nth-child(2) > table > tbody > tr:nth-child(10) > td.value.round-rightbottom”

Ich denke das sollte soweit stimmen, da es an anderer Stelle funktioniert.
Vielleicht wichtig zu wissen. Es funktioniert auf der “Home” Seite, aber nicht auf dieser Seite (Info/Anlage).
Es wird mir bei der Entität “sensor.volumenstrom” nur “unavailable” angezeigt.

Hat jemand eine Ahnung, was ich bei “select” eingeben musss, damit das funktioniert.

Vielen Dank im Voraus :slight_smile:

Frei aus der Hüfte geschossen … der tbody ist zu viel

Mal ein Beispiel um das obige mit dem tbody zu erklären:

https://www.wetterzentrale.de/weatherdata_de.php?station=2014&jaar=2023&maand=3&dag=18

da hole ich mir den Wert für die Sonnenstunden, also Sonnenschein: 3,5h
wenn ich mir jetzt den Select anzeigen lasse ist das folgender:

body > div > div.row > div.col-md-6 > div:nth-child(2) > div:nth-child(2) > div > div:nth-child(2) > table:nth-child(1) > tbody > tr:nth-child(2) > td:nth-child(2) > b

was der multiscrape aber als selector haben will ist:

select: ".col-md-6 > div:nth-child(2) > div:nth-child(2) > div > div:nth-child(2) > table:nth-child(1) > tr:nth-child(2) > td:nth-child(2) > b"

also startend vom “.col-md-6” den das ein unikat auf der Seite also eindeutig
und ein tbody ist wertlos kann als also auch weg.

select: “#content > div:nth-child(2) > table > tbody > tr:nth-child(10) > td.value.round-rightbottom”

ändern in

select: “#content > div:nth-child(2) > table > tr:nth-child(10) > td.value.round-rightbottom”

im ersten Schritt. Sollte das nicht klappen, “multiscrape” installieren, die Zeile “log_response: true” mit einbauen und dann im config/multiscrap/deinscrapernameaus dem YAML/ die diversen debug dateien anschauen, primär die page_response_body.txt

PS: und klar bin ich fachkundig … in dem Bereich in dem du es aber selbst bist. Also erwarte keine Wunder von meinen Vorschlägen, einen Scraper können Bitverwurstler besser erklären warum Dinge da so sind wie sie sind.

Vielen Dank für deine Hilfe.
Ich werde das diese Woche ausprobieren und mich dann nochmal melden :smile:

Super, das war der entscheidende Tipp.
Hat direkt funktioniert!!

Vielen Dank justone

Hallo Schluffi_0815,
mein Tipp: Teste doch mal die Integration von Stiebel-Eltron. Ich denke damit kannst Du dir viel Arbeit ersparen. Die Integration funktioniert wunderbar mit meiner Tecalor WP.
Gruß Alex

Hallo Alex.
Danke dir für den Tipp,
aber ich denke das geht bei mir nicht.
Ich hab zwar ein ISG, aber mit der
“EMI” Software. Diese kommuniziert
direkt mit dem Sunny Home Manager
von SMA. Leider werden hier die Daten nicht über Modbus bereitgestellt, was für die Integration aber notwendig ist.
Siehe auch:

Falls ich mich täusche und es doch eine integration gibt, die hier funktioniert, lasse ich mich gerne belehren.

Was ich überlegt habe, mir die Software ISG KNX, oder ISG mit der Modbus Schnittstelle installieren zu lassen. Allerdings müsste ich mir dann die Automationen selber erstellten, sodass die Wärmepumpe mit der PV Anlage zusammen arbeitet.

Ich hab zwar die meisten Daten der PV Anlage in HA verfügbar, aber nur über Umwege. Ich wüsste nicht, wie ich den Sunny Home Manager in HA einbinde.

Abgesehen davon, funktioniert das so eigentlich ganz gut. Ist genügend PV Strom vorhanden, wird das Haus sowie das Brauchwasser auf eine höhere, einstellbare, Temperatur gefahren.

Gruß Timo

Hallo Zusammen.

ich müsste das Thema nochmal aufgreifen.
Ich hab das Problem, dass ich die entsprechende Einheit nicht hinter den Zahlenwert bekomme. Kann mir jemand helfen?

multiscrape:
  - resource: http://192.168.178.33/?s=1,0
    scan_interval: 200
    sensor:
      - name: "THZ Außentemperatur"
        unique_id: 'THZ Außentemperatur'
        select: "#content > div:nth-child(2) > table > tr:nth-child(2) > td.value"
        value_template: '{{ value.split(" ")[0] }}'
        # bis hierhin funktioniert es (Zahlenwert steht jetzt alleine) 
        unit_of_measurement: "°C"

Wie bekomme ich hier die Einheit dahinter?

Danke im Voraus

Mit folgender Ergänzung:

  unit_of_measurement: "°C"

die Du ja drin hast, sollte die Einheit automatisch angezeigt werden.

Dachte ich auch!

Momentan wird die Entität in den Entwicklerwerkzeugen/Zustände als “unavailable” angezeigt.

Klammer ich die Zeile “#unit_of_measurement” aus,
wird nur der Wert angezeigt.

Einen Neustart oder zumindest neu laden der Template-Entitäten hast Du ja sicherlich gemacht, oder?

Hab ein “Schnelles neu Laden” gemacht, sowie HA kpl. neu gestartet.

Nachtrag:
Ist eigentlich ein “Schnelles neu Laden” immer ausreichend, wenn ich nur die .yaml bearbeite?

:crayon:by HarryP: Zusammenführung Doppelpost.

Nach meiner Erfahrung nicht.
Bei Groups und Templates ja, sonst klappt es oft nicht.

Hat keiner eine Idee, warum das nicht funktioniert.
Gibt es vielleicht einen anderen Weg, wie man eine Einheit dahinter bekommt?

Nachtrag:
Ich bin nicht so der experte, aber ich habe “Status setzen” einfach mal "unit_of_measurement: “°C” hinzugefügt und “Status setzen” / aktualisieren gedrückt.


Dann scheint es zu funktionieren.
Allerdings bleibt die Einheit nicht erhalten. :sob:

:crayon:by HarryP: Zusammenführung Doppelpost.

Kannst du mir bitte sagen welches Video von Simon42 das Thema behandelt?
Ich habe die LWZ504 und das ISG WEB, aber ohne Portal Anmeldung. Die Frage ist, ob ich ohne zu Zahlen auf den ModBus zugreifen kann oder nicht. Leider baut die StiebelEltron Intergration keine Verbindung zum ISG auf.

Hallo Alex,

ich habe gerade in einem anderen Beitrag geschrieben, dass ich auf meine Stiebel Anlage per modbus und über den Umweg ioBroker zugreife, da ich bei die Stiebel Integration nicht zum Rennen gebracht habe. Kannst Du mal Deinen Weg erläutern und was Du genau dafür gemacht hats. Ich hoffe einfach mal, dass ich irgendwas in der Doku falsch interpretiert habe und nur zu … bin die Integration zum Rennen zu bringen. Kannst Du mal den Ausschnitt Deiner configuration.yaml oder des Packages hier posten?

CU
Bernd

Nachtrag:

guckst Du hier: Mit Home Assistant Webseiten-Daten auslesen & in Entitäten sichern

:crayon:by HarryP: Zusammenführung Doppelpost.

Hallo Hubertus,
das war das Video:

Hat aber nicht direkt was mit Stiebel Eltron zu tun.
Gruß Timo

Hallo Bernd,
ich hatte mir anfangs die ganze Steuerung via “modbus” selbst zusammen gefummelt. Dafür hatte ich diverse Seiten im Internet durchforstet und das ganze per “try & error” zusammen geschrieben. Das funktionierte aber alles nicht so richtig rund, obwohl ich Stunden damit verbracht habe, das ganze zu optimieren.
Dann habe ich diese “Stiebel Eltron” Integration entdeckt: Stiebel Eltron ISG-Integration
Meine Einstellungen dazu: KEINE manuellen Einträge für modbus o.ä. in der configuration.yaml oder sonst wo.
Ich habe im Grunde nur die IP-Adresse und einen (frei wählbaren) Namen in der o.a. Integration angegeben:

Im ISG habe ich diese Einstellungen:

Einen Benutzernamen und Passwort habe ich im ISG NICHT vergeben.

Viel Erfolg und Gruß!
Alex

Hallo Alex, danke für die Info. Hab einfach die falsche Integration versucht zum Laufen zu bringen. Im HA gibt es eine native Stiebel Eltron Integration, die auch nur über yaml (ohne Frontend) zu aktivieren ist. Die hier aus dem HACS heißt Stiebel Eltron ISG. Da konnte ich es lange versuchen. Aber jetzt funzt es. Danke noch mal.
CU
Bernd

Ah du hast auch den Button SG Ready Eingang, den hatte ich vorher nicht und finde dazu auch nichts in der Bedienungsanleitung - ich habe den auch auf ISG Plus stehen, da meine LWZ mit dem E3DC via SG Ready verbunden ist. Gehe ich recht in der Annahme das ich den auf Modbus umstellen müsste, falls ich das Energiemanagment über HA irgendwie verwirklichen wollte?

Das kann ich dir ehrlich gesagt nicht beantworten. Ich habe es mit diesem Teil hier mit Zigbee gelöst:MHCOZY 1 Kanal 12V ZigBee Smart Relay Schalter.
Sobald genug Überschuss von unserer PV-Anlage erzeugt wird, wird SG-ready eingeschaltet.
Gruß Alex