New integration for REMKO Heatpump

Hast du die 5138 auch wieder in die remko_regs.py eingetragen?

Ich habe den Fehler gefunden. Mein Studio Code Server hatte eine Änderung seltsamerweise nicht gespeichert. Nachdem ich den Browser Cache gelöscht hatte, konnte ich den Fehler erkennen.

Danke für die geile Arbeit. Die Integration gefällt mir richtig gut. Teile mir privat mal dein Paypal Konto mit. Du wirst zwar nicht reich, aber für 2 Bierkästen wird es reichen.
Mir sind noch ein paar Punkte aufgefallen, falls du noch Bock am Coden hast.

1. In der de.json gibt es in Zeile 9 ein Copy&Paste Fehler.

2. Wäre es nicht besser für die Entität "sensor_el" die Klasse UnitOfPower zu importieren? Ich habe es mal bei mir probiert und es funktioniert. Ein Unterschied ist aber nicht erkennbar.
Zeile 16: from homeassistant.const import UnitOfTemperature, UnitOfPower, PERCENTAGE
ab Zeile 140:
         if (
            vp_type
            in [
                "sensor_el",
            ]
        ):
            self._icon = "mdi:flash"
            self._unit = UnitOfPower.WATT

3. Beim Installieren der Integration funktioniert die Zuordnung nicht vollumfänglich. Einige Entitäten muss man manuell in den gewünschten Bereich holen. Ist eigentlich kein großes Problem. Ich wollte nur vollständig sein.

4. Die keep alive Funktion musste bei mir wieder früher eingefügt werden. Die Verbindung schläft sonst gerne ein. Vielleicht ist es nur bei meiner Version problematisch.

5. Ist die Variable eigentlich für andere Version problematisch? Es geht um const.py Zeile 8  CONF_MQTT_NODE = "V04P26/SMTID" Ich habe den Namen immer manuell geändert. Alle anderen V04P28 habe ich auch auf V04P26 geändert. Vermutlich hast du es beim Programmieren bedacht oder?
1 Like

Ich habe gestern ein paar Anpassungen an meiner Entwicklungsumgebung gemacht um somit Copy & Paste Fehler (hoffentlich) zu umgehen.

Zu 1. Gefunden, angepasst, danke.

Zu 2. Schaue ich mir mal an.

Zu 3. Das Hinzufügen und Entfernen aller Sensoren und Helfer wollte ich mir ohnehin nochmal anschauen, da beim Entfernen nicht alle Helfer entfernt werden. Außerdem möchte ich es so hinbekommen, dass man nach dem Hinzufügen der Integrationen keinen Neustart mehr braucht.

Zu 4. Hast du mal mit der Frequenz gespielt? Eventuell hört bei dir die Heizung schon früher auf Werte zu senden.

Zu 5. Die Variable musst du im Code eigentlich nicht mehr anpassen. Das sollte über das Konfigurationsmenü der Integration ausreichen. Wenn nicht, muss ich den Code noch entsprechend korrigieren.

Food for thoughts:

  • Ich habe überlegt, die Einstellungen für das Warmwasser (Ist, Soll und Modus) über ein Climate Device zu machen.
  • In meinem GitHub Repo habe ich mal den Issue Tracker aktiviert. Sollte dir noch etwas auffallen, kannst du den gerne nutzen. (Ggfs. auch für Feature requests)

Das wäre der nächste logische Schritt mit dem Climate Device. Ich gucke mir das mal an.

Wegen dem Hinweis mit deinem Github Repo…ja, eigentlich müssen wir die Beiträge dort platzieren. Ich bin jetzt aber erstmal sehr zufrieden mit deiner Lösung. Wenn es ein Update gibt, teste ich aber gerne wieder.

Neustes Update:

  • Ordnerstruktur auf ein Level begrenzt (außer translations)
  • Alle Helfer entfernt und mit separaten Entitäten ersetzt (Switch, Select,…)

Danke fürs Updaten. Ich werde es in nächster Zeit erst umfangreich testen können. Unterdessen hatte ich wegen dem Climate Device mal die Zahlenwerte vom Zeitprogramm angeschaut. In meiner Version gibt es bei der Trinkwasser Erwärmung das Zeitprogramm A, B und C. Die dazugehörigen Codes sind A = 1081, B = 1939 und C = 1940. Die Rückgabewerte kann ich noch nicht interpretieren. Erkennst du die Logik dahinter?

1081 =[0,0,0,0,254,255,255,255,255,255,0,0,0,0,0,0,254,255,255,255,255,255,0,0,0,0,0,0,254,255,255,255,255,255,0,0,0,0,0,0,254,255,255,255,255,255,0,0,0,0,0,0,254,255,255,255,255,255,0,0,0,0,0,0,254,255,255,255,255,255,0,0,0,0,0,0,254,255,255,255,255,255,0,0]

Grds. ja, wobei man noch ein wenig mehr testen müsste.
Es sind 84 Werte. Verteilt auf eine Woche (7 Tage) sind es 12 Werte pro Tag. Das heißt jeder Wert ist für die Einstellung von einem 2h Zeitslot zuständig.
0 ist “aus”, 255 ist “an”, jeweils für den Slot.

In der neuen Version sind es 24 Werte pro Tag und ich habe hier die Zuordnung auch schon herausgefunden, habe aber noch keine gute Möglichkeit gefunden das auch in HA anzuzeigen. Die Granularität sind jeweils 15 Minuten Blöcke. Interessant hierbei ist, dass man bspw. 00:00 - 00:15 und 00:30 - 00:45 eingeben kann und dies (bei mir) mit einem Wert angegeben wird. Wenn es bei dir auch 15 Minutenblöcke sind müssten mehr Kombinationen möglich sein.

Hier mal auszugsweise von meinem Softwarestand:
image

PS: Die Reihenfolge der Wochentage ist bei mir übrigens Sa, Fr, Di, Mi, Do, Mo, So. (Total logisch…)

PPS: Die Adressen für die Zeitprogramme (A-C) sind bei mir die gleichen.

Kannst du noch ein paar mehr Informationen zu deinem Setup geben? Welche HA Variante nutzt du? (OS, Core, etc.)
Was hast du jetzt wo konfiguriert?

Moin @o-live-r,

meine Wärmepumpe “WKF 120 (C)” läuft ebenfalls auf 4.26. Ein update auf eine neuere Version ist laut Remko Service leider nicht möglich, da mein Modell von 2014 ist und damals eine andere/ältere Platine verbaut wurde.

Wäre es evtl. möglich, dass du deinen angepassten Code zur Verfügung stellst?

Grüße, Simon

Da würde ich mich anschließen wollen…

Hallo Altrec,
heute bei Regenwetter mal eien neuen Anlauf genommen Deine Integration zum Laufen zu bekommen.
HA neu installiert, HACS und Mosquito installiert.
Einen HA-User mit den Zugangsdaten meiner WP angelegt.
Jetzt kommt der Teil wo Deine Anleitung auf Github wichtig wird. Vielleicht steckt da mein Fehler.
“Copy the content from the custom_components folder into Home Assistant and restart Home Assistant.”
Was meinst Du damit genau?
Ich gehe im HACS unter Integrationen auf die drei Punkte und auf Benutzerdefinierte Repositories und füge da den Link zu Deiner Github-Seite ein.
Dann lade ich das Repository herunter und starte neu.
Dann gehe ich unter Geräte und Dienste und füge Remko-MQTT hinzu. Dann wieder neu Starten.
Stimmt das so weit?
Was meinst Du mit “Make sure you see proper mqtt messages from the Remko-MQTT in MQTT-Explorer before setting up HA.”?
Wenn ich im MQTT-Explorer die IP der WP eingebe, kommt was an.


Unter Remko_MQTT kommt nichts an.

Mag ja sein das ich mich doof anstelle, aber bis jetzt hab ich noch alles zum Laufen bekommen.
Wo ist mein Denkfehler?
Wäre super wenn Du mir noch mal einen Tipp geben könntest.
Danke!

Hi,

thank you for all the work. I’m kinda new to this MQTT stuff, so it took a bit of time to learn. I choose to use a local (on HA running) broker (because I want to use other MQTT devices as well) and setup a bridge to the Remko, as I didnt want all data to be exchange I limted the topic, but that got me set back for some time. This is the bridge config which made it work for me:

connection remko
address 10.0.0.xxx:1883
topic # both 2 V04P28/ V04P28/
remote_username 0000000000000000
remote_password xxxxxxxxxxxxxxxxxx
try_private false
allow_anonymous true

Im not sure if the try_private should be set to false or the allow_anonymous to true. But the topic is what it started making to work me (I got “Client disconnected due to protocol error.”)

Now for some question:
I’ve got a Remko WKF 130 and it is reporting a lot of data. (almost 7K of data, and it updates every couple of seconds). If I understand correctly then each number stands for some field of the device, but only a few of them are currently mapped. What would be the easiest way to figure out what number means what?
Is it by examining the web page?
Some mapping was made, how was that done?

regards,
Hante

found the list from the web gui. Now I can add the entries I need. Questions on the mapping have been answered I think.

Hallo zusammen,

danke für die tolle Arbeit Altrec!
@o-live-r
könnstes du eventuell noch die anderen Änderungen am Code, die du gemacht hast, posten? Ich haette gerne auch den Heizstab Sensor etc integriert. Habe die reg_ids angepasst. Aber es erscheinen weiterhin nur 9 entities. Wie bekomme ich denn die Sensoren auch ins HA? Muss dazu die sensor.py angepasst werden?

Hi all,
after one year I tried again to find an integration for Remko and thanks for this awesome integration.

My issue is, that I don´t receive all 9 entities and the most important thing for me is to monitor to water_temp. But it comes back with 300,00 … I would like to troubleshoot it myself and wondering if somebody can guide me how to read the MQTT Explorer Results and compare it to the Webinterface. Example: Water Temp is currently 25,0. So how to find the right number with the matching value in the output from MQTT?

Thanks a lot for a hint

Just found the integration by fortune - nice to see there is progress with Remko…

I started manually to grab and write all my WKF120 controls via MQTT like two years ago.

If you guys need anything in particular for software version 4.26 - let me know…

Would one of you be so kind and read the MQTT identifier for the “Außenfühler S10” Value for me as I don’t have one in place ? Thanks a lot in advance

Greetings from Germany

Thorben

Hi Thorben,
Which id you used for the Pufferspeicher temp? I still get 300 Celsius all the time…

Hallo Thorben,
da ich leider die Integration von Altrec nicht zum laufen bekomme, wäre es super, wenn Du mal genauer beschreiben könntest, wie Du an die Werte kommst.
Vielen Dank!

The ID is 5039 - needs to be converted though

'{{ value_json["values"]["5039"] | int(base=16) / 10 }}'

Hi Haemmerl,

besteht bereits eine MQTT Verbindung zwischen deinem Home Assistant und der Remko?
Ich hole mir alle Werte ganz trivial über die MQTT Integration - eingebunden in die configuration.yaml nach folgendem Schema.

mqtt:
  sensor:
    - state_topic: V04P26/SMTID/HOST2CLIENT
      name: Temperatur Pufferspeicher
      value_template: "{{ value_json["values"]["5039"] | int(base=16) / 10_}}"
      unit_of_measurement: °C

    - state_topic: "V04P26/SMTID/HOST2CLIENT"
      name:  Volumenstrom
      value_template: '{{ value_json["values"]["5582"] | int(base=16) / 10 }}'
      unit_of_measurement: l/m
      

Viele Sensorwerte kommen im Hexadezimalformat an und werden wie oben direkt umgerechnet und um den Faktor 10 geteilt.

Andere Werte - zumeist Zustände - müssen nicht durch 10 geteilt werden - müssen jedoch auch auf integer umgerechnet werden.
Siehe hier:


    - state_topic: "V04P26/SMTID/HOST2CLIENT"
      name: Zustand Trinkwassererwärmung
      value_template: '{{ value_json["values"]["1079"] | int(base=16) }}'

Diese Werte bereite ich daraufhin mit einem Template Sensor auf


  - platform: template
    sensors:
      trinkwassererwaermung:
        value_template: >-
          {% if is_state('sensor.zustand_trinkwassererwarmung', '0') %}
            Automatik Komfort
          {% elif is_state('sensor.zustand_trinkwassererwarmung', '1') %}
            Automatik Eco
          {% elif is_state('sensor.zustand_trinkwassererwarmung', '2') %}
            Nur Solar / PV
          {% elif is_state('sensor.zustand_trinkwassererwarmung', '3') %}
            Deaktiviert
          {% endif %}