Multiscrape oder scrape mit senertec bhkw, komme nicht weiter

Hallo,
ich muß hier leider noch mal aktiv nachfragen. Normal komme ich mit euren Vorlagen bzw. Diskussionen hier oft ans Ziel, aber dieses mal scheitere ich und bitte euch um Hinweise oder Lösungen.

Ich habe ein Senertec BHKW mit einem MSR2, den ich bisher im ioBroker abfragen konnte. Nun bin ich seit einiger Zeit auf HA gewechselt, habe aber noch keine Möglichkeit gefunden, die Abfrage auf HA zu portieren. Aktuell sende ich die angefragten Werte per MQTT nach HA, möchte mich nun aber komplett von iobroker trennen und diesen alten Zopf abschneiden.

MultiScrape hab ich installiert über HACS, weiß jedoch nicht, wie ich die Abfrage gestalten soll, um z.B. die Leistung oder Außentemperatur zu erhalten.

Aktuell hab ich es so probiert in der configuration.yaml:

multiscrape:
  - name: BHKW_Sensoren #BHKW Sensoren
    resource: http://user:passwort@192.168.1.xx:8080/getKey?k=Hka_Bd.ulArbeitThermKon&k=Hka_Bd.ulArbeitThermHka&k=Hka_Bd.ulArbeitElektr&k=Hka_Mw1.Temp.sbZS_Warmwasser&k=Hka_Mw1.ulMotorlaufsekunden&k=Hka_Mw1.Temp.sbZS_Vorlauf1&k=Hka_Mw1.Temp.sbZS_Vorlauf2&k=Hka_Mw1.Temp.sbFuehler2&k=Hka_Mw1.Temp.sbVorlauf&k=Hka_Mw1.Temp.sbFuehler1&k=Hka_Mw1.Temp.sbRuecklauf&k=Hka_Mw1.sWirkleistung&k=Hka_Mw1.Temp.sbAussen
    scan_interval: 60
    log_response: true
    sensor:
      - unique_id: leistung
        name: BHKW Leistung
        select: "sWirkleistung="
        value_template: '{{ (value.split(" ")[0]) }}'
        unit_of_measurement: "°C"
        force_update: True
      - unique_id: aussentemp
        name: BHKW Aussentemp
        select: "sbAussen="
        value_template: '{{ (value.split(" ")[0]) }}'
        unit_of_measurement: "°C"
        force_update: True

Als Antwort bekomme ich “unavailable”
Ich hoffe, hier weiß jemand um was es geht und auch nen Weg zur Lösung!

Hallo

schade, dass noch keiner geantwortet hat. Hat denn niemand einen Ansatz zur Lösung oder möchte hier niemand antworten?

Gruß

Du müsstest eventuell mal den Output posten, den man erhält, wenn man den Resource-Link aufruft.

Okay, auch wieder wahr. Folgendes bekomme ich als Ergebnis der Abfrage:
(Ich hoffe, das ist das was du meintest. Alternativ der html-Quelltext der Ausgabe)


Hka_Mw1.Temp.sbAussen=21
Hka_Mw1.sWirkleistung=0.000
Hka_Mw1.Temp.sbRuecklauf=56
Hka_Mw1.Temp.sbFuehler1=56
Hka_Mw1.Temp.sbVorlauf=65
Hka_Mw1.Temp.sbFuehler2=66
Hka_Mw1.Temp.sbZS_Vorlauf2=34
Hka_Mw1.Temp.sbZS_Vorlauf1=33
Hka_Mw1.ulMotorlaufsekunden=1.000
Hka_Mw1.Temp.sbZS_Warmwasser=50
Hka_Bd.ulArbeitElektr=198023.328
Hka_Bd.ulArbeitThermHka=451546.719
Hka_Bd.ulArbeitThermKon=38510.352
<html><head><meta name="color-scheme" content="light dark"></head><body><pre style="word-wrap: break-word; white-space: pre-wrap;">Hka_Mw1.Temp.sbAussen=21
Hka_Mw1.sWirkleistung=0.000
Hka_Mw1.Temp.sbRuecklauf=56
Hka_Mw1.Temp.sbFuehler1=56
Hka_Mw1.Temp.sbVorlauf=65
Hka_Mw1.Temp.sbFuehler2=66
Hka_Mw1.Temp.sbZS_Vorlauf2=34
Hka_Mw1.Temp.sbZS_Vorlauf1=33
Hka_Mw1.ulMotorlaufsekunden=1.000
Hka_Mw1.Temp.sbZS_Warmwasser=50
Hka_Bd.ulArbeitElektr=198023.328
Hka_Bd.ulArbeitThermHka=451546.719
Hka_Bd.ulArbeitThermKon=38510.352
</pre></body></html>

Gruß

Könntest es mal mit dem normalen Scrape versuchen:

scrape:
  - resource: http://user:passwort@192.168.1.xx:8080/getKey?k=Hka_Bd.ulArbeitThermKon&k=Hka_Bd.ulArbeitThermHka&k=Hka_Bd.ulArbeitElektr&k=Hka_Mw1.Temp.sbZS_Warmwasser&k=Hka_Mw1.ulMotorlaufsekunden&k=Hka_Mw1.Temp.sbZS_Vorlauf1&k=Hka_Mw1.Temp.sbZS_Vorlauf2&k=Hka_Mw1.Temp.sbFuehler2&k=Hka_Mw1.Temp.sbVorlauf&k=Hka_Mw1.Temp.sbFuehler1&k=Hka_Mw1.Temp.sbRuecklauf&k=Hka_Mw1.sWirkleistung&k=Hka_Mw1.Temp.sbAussen
    sensor:
      - unique_id: leistung
        name: BHKW Leistung
        select: "body > pre:nth-child(1)"
        value_template: > 
                {% set lines = value.split('\n') %}
                {% for line in lines %}
                  {% if 'sWirkleistung=' in line %}
                    {{ line.split('=')[-1] }}
                  {% endif %}
                {% endfor %}
        unit_of_measurement: "W"

      - unique_id: aussentemp
        name: BHKW Aussentemp
        select: "body > pre:nth-child(1)"
        value_template: > 
                {% set lines = value.split('\n') %}
                {% for line in lines %}
                  {% if 'Temp.sbAussen=' in line %}
                    {{ line.split('=')[-1] }}
                  {% endif %}
                {% endfor %}
        unit_of_measurement: "°C"

Hallo crypton,

hab ich soeben in der configuration.yaml so eingegeben, leider bekomme ich keine Werte zurück. In der Entität steht “unavailable”.

Wie könnte ich mich der Lösung denn noch annähern?

Großen Dank schon mal für deine Geduld.

Hast du HA neu gestartet? Ich hatte exakt deinen HTML-Code genommen, da werden mir Werte geliefert.

ja, hab so ziemlich alles probiert (schnelles Neu-Laden, Neustart, Systemstart) Auch nochmal verschiedene Beispiele aus dem Netz. Es kommt immer “unavailable”.

Hab es mit Scrape probiert, mit Multiscrape, direkt in der configuration.yaml, ausgelagert in ne multiscrape.yaml, die unique_id geändert, nur einen Wert vom MSR2 abgefragt usw.

Komme nicht zu einem Ergebnis :slightly_frowning_face: :person_shrugging:

Was nun? Liegt das vielleicht an der Authentifizierung?

Könnte sein, da es ja extra Optionen für authentication,username und passwordgibt.

Ja wunderbar. Hab die ganze Nacht rumprobiert, 100te Male neu geladen und neu gestartet. Jetzt schau ichs mir nochmal an, und plötzlich steht da ein abgefragter Wert von zweien. Hier der Code, der auch bei mir wohl funktioniert:

  - resource: http://192.168.1.62:8080/getKey?k=Hka_Bd.ulArbeitThermKon&k=Hka_Bd.ulArbeitThermHka&k=Hka_Bd.ulArbeitElektr&k=Hka_Mw1.Temp.sbZS_Warmwasser&k=Hka_Mw1.ulMotorlaufsekunden&k=Hka_Mw1.Temp.sbZS_Vorlauf1&k=Hka_Mw1.Temp.sbZS_Vorlauf2&k=Hka_Mw1.Temp.sbFuehler2&k=Hka_Mw1.Temp.sbVorlauf&k=Hka_Mw1.Temp.sbFuehler1&k=Hka_Mw1.Temp.sbRuecklauf&k=Hka_Mw1.sWirkleistung&k=Hka_Mw1.Temp.sbAussen
    authentication: basic
    username: ***
    password: *********
    scan_interval: 30
    log_response: true
    verify_ssl: false
    sensor:
      - unique_id: bhkwaktleistung
        name: BHKW Leistung
#        select: "body > pre:nth-child(1)"
        value_template: > 
                {% set lines = value.split('\n') %}
                {% for line in lines %}
                  {% if 'sWirkleistung=' in line %}
                    {{ line.split('=')[-1] }}
                  {% endif %}
                {% endfor %}
        unit_of_measurement: "W"
        force_update: true
      - unique_id: bhkwaktaussentemp
        name: BHKW Aussentemp
#        select: "body > pre:nth-child(1)"
        value_template: > 
                {% set lines = value.split('\n') %}
                {% for line in lines %}
                  {% if 'sbAussen=' in line %}
                    {{ line.split('=')[-1] }}
                  {% endif %}
                {% endfor %}
        unit_of_measurement: "°C"
        force_update: true

Die abgefragte BHKW Aussentemp hat mir einen Wert zurückgeliefert. Und dann bin ich drauf gekommen, das hier kein “select: xxxxxx “stehen darf, deshalb ist es im Code oben auskommentiert.

Vielen Dank für Deine Hilfe und Gruß