Can someone confirm this can be used with remko wifi sticks and https://smartweb.remko.media ?
I am still not getting any MQTT messages ![]()
Can someone confirm this can be used with remko wifi sticks and https://smartweb.remko.media ?
I am still not getting any MQTT messages ![]()
@metabubble your post is confusing me. there is no connection between smartweb.remko.media and your mqtt broker. smartweb is a web service. you can access your remko from anywhere with a browser. sure there will be a way to get data over this portal but this way isn’t instructed by this thread. try to gather informations locally. there will be no big difference between a wlan or lan connection on your remko.
Hi Haemmerl. Hast du weitere Sensoren in den HA eingebunden bekommen? Ich besitze ebenfalls die Version 4.28 und würde gerne weitere Sensoren integrieren. Könntest du mir da weiterhelfen? Auch in Bezug was ich genau zu tun habe! VG und vielen Dank vorweg.
No need to be so condescending.
Now here is the thing. If I go with the wifi sticks, I won’t be able to do anything locally. They don’t expose a single port and only communicate with remko.smartweb.media. If you follow the guide of this integration on remko.smartweb.media, and you put a “similar enough” Client ID in MQTT broker, you are in fact able to connect to mqtt://smartweb.remko.media:1883, but you will not get any topics. So I hope you understand my confusion why I didn’t get any information through it even though I managed to connect.
Now that being said, maybe someone is reading here that was in the same situation and figured out what to do to make the smartweb.remo.media mqtt server talk, because I bet my butt it is using the exact same backend, just with more “security”
You wrote “there will be no big difference between a wlan or lan connection on your remko”. That makes me think you don’t even know what product I am talking about. Just to be on the safe side: https://www.remko.de/artikel/smarte-steuerung-fuer-remko-klimageraete-einfach-nachruesten/
I don’t wanna hurt your feelings…sorry <3
Your wifi stick must be connected to your wlan router. Did you find out the ip adress of the stick? If yes, what will happen when you try to open a browser and enter this ip adress?
Nothing happens. I also scanned all ports with nmap. No open ports on it. Wireshark shows it connecting to remko and that’s it.
I can only control it through smartweb. No local control. ![]()
It seems to be an absolute trash product.
Hallo buma153,
ich habe folgendes in der configuration.yaml:
mqtt:
sensor:
- state_topic: "V04P28/SMTID/HOST2CLIENT"
name: RemkoTemperaturPufferspeicher
value_template: '{{ value_json["values"]["5039"] | int(base=16) / 10 }}'
unit_of_measurement: °C
- state_topic: "V04P28/SMTID/HOST2CLIENT"
name: RemkoTemperaturHeizkreis
value_template: '{{ value_json["values"]["5034"] | int(base=16) / 10 }}'
unit_of_measurement: °C
- state_topic: "V04P28/SMTID/HOST2CLIENT"
name: RemkoArbeitsmodus
value_template: >
{% set mode = value_json["values"]["5001"] | int(base=16) %}
{% if mode == 1 %} Störung
{% elif mode == 2 %} Abtauen
{% elif mode == 3 %} Abtaupuffer
{% elif mode == 4 %} WW Puffer
{% elif mode == 5 %} Speicherenergie
{% elif mode == 6 %} Heizen
{% elif mode == 7 %} Kühlen
{% elif mode == 8 %} Pool
{% elif mode == 9 %} Umwälzung
{% elif mode == 10 %} Standby
{% elif mode == 11 %} Estrichtrockung
{% elif mode == 12 %} Frostschutz
{% elif mode == 13 %} Prüfbetrieb
{% elif mode == 14 %} Sperrsignal
{% elif mode == 15 %} Hygienefunktion
{% elif mode == 16 %} Silent Modus
{% else %} Unbekannter Modus
{% endif %}
- state_topic: "V04P28/SMTID/HOST2CLIENT"
name: RemkoPufferspeicherWWSoll
value_template: '{{ value_json["values"]["1082"] | int(base=16) / 10 }}'
unit_of_measurement: °C
- state_topic: "V04P28/SMTID/HOST2CLIENT"
name: RemkoVorlaufInPuffer
value_template: '{{ value_json["values"]["5132"] | int(base=16) / 10 }}'
unit_of_measurement: °C
- state_topic: "V04P28/SMTID/HOST2CLIENT"
name: RemkoRuecklaufAusPuffer
value_template: '{{ value_json["values"]["5581"] | int(base=16) / 10 }}'
unit_of_measurement: °C
- state_topic: "V04P28/SMTID/HOST2CLIENT"
name: RemkoGemischteAussentemperatur
value_template: '{{ value_json["values"]["5055"] | int(base=16) }}'
unit_of_measurement: °C
- state_topic: "V04P28/SMTID/HOST2CLIENT"
name: RemkoZusatzwaermeerzeugerGrundaktivierung
value_template: '{{ value_json["values"]["1020"] | int(base=16) }}'
# - state_topic: "V04P28/SMTID/HOST2CLIENT"
# name: Zusatzwärmeerzeuger Stufe
# value_template: '{{ value_json["values"]["5008"] | int(base=16) }}'
- state_topic: "V04P28/SMTID/HOST2CLIENT"
name: RemkoZustandWaermepumpe
value_template: '{{ value_json["values"]["1003"] | int(base=16) }}'
- state_topic: "V04P28/SMTID/HOST2CLIENT"
name: RemkoZustandTrinkwassererwaermung
value_template: >
{% set mode = value_json["values"]["1079"] | int(base=16) %}
{% if mode == 0 %} Automatik Komfort
{% elif mode == 1 %} Automatik Eco
{% elif mode == 2 %} nur Solar / PV
{% elif mode == 3 %} Aus
{% else %} Unbekannter Modus
{% endif %}
- state_topic: "V04P28/SMTID/HOST2CLIENT"
name: RemkoZustandHeizmodus
value_template: >
{% set mode = value_json["values"]["1951"] | int(base=16) %}
{% if mode == 1 %} Automatik
{% elif mode == 2 %} Heizen
{% elif mode == 3 %} Standby
{% else %} Unbekannter Modus
{% endif %}
- state_topic: "V04P28/SMTID/HOST2CLIENT"
name: RemkoAbwesenheitsmodus
value_template: '{{ value_json["values"]["1893"] | int(base=16) }}'
- state_topic: "V04P28/SMTID/HOST2CLIENT"
name: RemkoPartymodus
value_template: '{{ value_json["values"]["1894"] | int(base=16) }}'
- state_topic: "V04P28/SMTID/HOST2CLIENT"
name: RemkoVolumenstrom
value_template: '{{ value_json["values"]["5582"] | int(base=16) / 10 }}'
unit_of_measurement: l/m
- state_topic: "V04P28/SMTID/HOST2CLIENT"
name: RemkoLaufzeitMinuten
value_template: '{{ value_json["values"]["5823"] | int(base=16) / 10 }}'
unit_of_measurement: Min
- state_topic: "V04P28/SMTID/HOST2CLIENT"
name: RemkoLaufzeitStunden
value_template: '{{ value_json["values"]["5824"] | int(base=16) }}'
unit_of_measurement: Hrs
- state_topic: "V04P28/SMTID/HOST2CLIENT"
name: RemkoLeistungElektrisch
value_template: '{{ (value_json["values"]["5320"] | int(base=16) / 10) }}'
unit_of_measurement: kW
- state_topic: "V04P28/SMTID/HOST2CLIENT"
name: RemkoFluessigkeitstemperatur
value_template: '{{ value_json["values"]["5139"] | int(base=16) }}'
unit_of_measurement: °C
- state_topic: "V04P28/SMTID/HOST2CLIENT"
name: RemkoLufttemperaturAussenmodul
value_template: '{{ value_json["values"]["5145"] | int(base=16) }}'
unit_of_measurement: °C
- state_topic: "V04P28/SMTID/HOST2CLIENT"
name: RemkoHeissgastemperatur
value_template: '{{ value_json["values"]["5146"] | int(base=16) / 10 }}'
unit_of_measurement: °C
- state_topic: "V04P28/SMTID/HOST2CLIENT"
name: RemkoRegistertemperatur
value_template: '{{ value_json["values"]["5200"] | int(base=16) }}'
unit_of_measurement: °C
- state_topic: "V04P28/SMTID/HOST2CLIENT"
name: RemkoVerdichterfrequenz
value_template: '{{ value_json["values"]["5205"] | int(base=16) }}'
unit_of_measurement: Hz
- state_topic: "V04P28/SMTID/HOST2CLIENT"
name: RemkoSauggastemperatur
value_template: '{{ value_json["values"]["5612"] | int(base=16) }}'
unit_of_measurement: °C
- state_topic: "V04P28/SMTID/HOST2CLIENT"
name: RemkoExpansionsventil
value_template: '{{ value_json["values"]["5615"] | int(base=16) }}'
unit_of_measurement: "%"
- state_topic: "V04P28/SMTID/HOST2CLIENT"
name: RemkoLeistungThermisch
value_template: '{{ value_json["values"]["5321"] | int(base=16) / 10 }}'
unit_of_measurement: kW
- state_topic: "V04P28/SMTID/HOST2CLIENT"
name: RemkoWaermerKaelterOhneVorzeichen
value_template: '{{ value_json["values"]["1946"] | int(base=16) }}'
unit_of_measurement: °C
Für die Temperaturwerte, die negativ werden können hab ich über Helfer noch je ein Sensor-Template angelegt.
Zum Beispiel so:
{% if states('sensor.remkolufttemperaturaussenmodul') | int >= 32768 %}
{{ ( states('sensor.remkolufttemperaturaussenmodul') | float - 65536 ) * 0.1 }}
{% else %}
{{ ( states('sensor.remkolufttemperaturaussenmodul') | float ) * 0.1 }}
{% endif %}
Wenn Du Fragen hast, meld Dich gern.
wenn man die negativen Werte direkt im “value_template” richtig verarbeiten möchte, wäre es beispielhaft über den folgenden Code möglich.
- state_topic: "V04P26/SMTID/HOST2CLIENT"
name: Außentemperatur
unique_id: Aussentemperatur
value_template: >
{% set hex_value = value_json["values"]["5055"] | int(base=16) %}
{% if hex_value > 32767 %}
{% set signed_value = hex_value - 65536 %}
{% else %}
{% set signed_value = hex_value %}
{% endif %}
{{ signed_value / 10 }}
state_class: measurement
device_class: temperature
icon: mdi:home-thermometer-outline
unit_of_measurement: °C
Das wäre die “all in one” Lösung.
VG Oliver
Hi @metabubble,
sorry to hear that there is no local way to grab data. If you are still interested in solving the problem, try grab the data from the smartweb portal. It should be possible too but this way won’t be easy. My thoughts…try to code it with AppDeamon. It is a Python App bases Add-on. You can emulate a headless browser with a selenium python package und than you need a chromium-chromdriver and a chromium system package at least.
import appdaemon.plugins.hass.hassapi as hass
import logging
import time
from selenium import webdriver
from selenium.webdriver.chrome.options import Options
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.common.action_chains import ActionChains
class remko_wp(hass.Hass):
def initialize(self):
self.run_every(self.run_every_minute, "now+10", 60)
def run_every_minute(self, kwargs):
chrome_options = Options()
chrome_options.add_argument('--headless')
chrome_options.add_argument('--no-sandbox')
chrome_options.add_argument('--disable-gpu')
chrome_options.add_argument('--disable-dev-shm-usage')
driver = webdriver.Chrome('chromedriver', options=chrome_options)
driver.get("https://smartweb.remko.media/")
...
After you passed the login you can grab the data too. You need to analyse every step that you do manually in the browser. Remember that everything you can access manually with a browser you can grab with a script too. It should be possible.
I dunno if a python sensor would work which you can add direct in the configuration.yaml. This way could be a little bit easier but Im not sure if this will work.
command_line:
- sensor:
name: remko_json
command: 'python3 /config/python_scripts/remko_wp/remko_wp.py'
unique_id: remko_wp
json_attributes:
- abc
- def
scan_interval: 30
#!/usr/bin/python3
import requests
with requests.Session() as s:
response = s.get("https://smartweb.remko.media/")
...
die Idee ist gut. Ich habe es versucht mit dem Außensensor, bekomme dann aber keine Werte angezeigt.
- state_topic: "V04P28/SMTID/HOST2CLIENT"
name: RemkoLufttemperaturAussenmodul
value_template: >
{% set hex_value = value_json["values"]["5154"] | int(base=16) %}
{% if hex_value > 32767 %}
{% set signed_value = hex_value - 65536 %}
{% else %}
{% set signed_value = hex_value %}
{% endif %}
{{ signed_value / 10 }}
state_class: measurement
device_class: temperature
icon: mdi:home-thermometer-outline
unit_of_measurement: °C
unique_id: RemkoLufttemperaturAussenmodul
Die Zeile {{ signed_value / 10 }} soll dann eigentlich die Ausgabe sein oder fehlt da noch was?
Ja die Zeile {{ signed_value / 10 }} ist die Ausgabe. Dein Code sieht sonst ok aus. Funktioniert denn die Ausgabe des Registers 5154 ohne den zusätzlichen Code?
value_template: '{{ value_json["values"]["5154"] | int(base=16) / 10 }}'
ja die funktioniert …
- state_topic: "V04P28/SMTID/HOST2CLIENT"
name: RemkoLufttemperaturAussenmodul
value_template: '{{ value_json["values"]["5145"] | int(base=16) / 10 }}'
unit_of_measurement: °C
unique_id: RemkoLufttemperaturAussenmodul
- state_topic: "V04P28/SMTID/HOST2CLIENT"
name: RemkoLufttemperaturAussenmodul_2
value_template: >
{% set hex_value = value_json["values"]["5154"] | int(base=16) %}
{% if hex_value > 32767 %}
{% set signed_value = hex_value - 65536 %}
{% else %}
{% set signed_value = hex_value %}
{% endif %}
{{ signed_value / 10 }}
state_class: measurement
device_class: temperature
icon: mdi:home-thermometer-outline
unit_of_measurement: °C
unique_id: RemkoLufttemperaturAussenmodul_2
Außenmodul zeigt einen Wert an, Außenmodul_2 nicht
Den Fehler sehe ich nicht. Was ist wenn du auf https://dein-home-assistant/developer-tools/template gehst und dann den Code prüfst?
Hier ein Beispiel
{% set hex_value = 0xf0 | int(base=16) %}
{% if hex_value > 32767 %}
{% set signed_value = hex_value - 65536 %}
{% else %}
{% set signed_value = hex_value %}
{% endif %}
{{ signed_value / 10 }}
Und nun versuchen wir einen negativen Wert
{% set hex_value = 0xFFF6 | int(base=16) %}
{% if hex_value > 32767 %}
{% set signed_value = hex_value - 65536 %}
{% else %}
{% set signed_value = hex_value %}
{% endif %}
{{ signed_value / 10 }}
Im ersten Script müsste der Wert 24 angezeigt werden und im zweiten Script müsste der Wert -1 angezeigt werden.
Has anyone here tried to transmit the current feed-in / grid consumption to the Remko via mqtt? In other words, to emulate the meter constant S29 / meter constant S26?
//
Hat sich hier schon jemand daran versucht die momentane Einspeisung / Netzbezug per mqtt an die Remko zu übermitteln? Also quasi die Zählerkonstante S29 / Zählerkonstante S26 zu emulieren?
Das wäre schön, wenn es über MQTT gehen würde. Soweit ich weiß, kannst du die Informationen nur über Impulse (500imp je kWh) übertragen. Es gibt dazu auch Workaround Ansätze z.B. mit Shelly Ansteuerung Heizstab einer Remko Wärmepumpe mit Zählerimplusen eines SMA Tripower - #21 von mrgonso - Allgemeine Elektrik - Akkudoktor Forum
Ich habe heute morgen gesehen, dass der Heizstab bei -10°C
Außentemperatur angesprungen ist. Natürlich habe ich den Status über MQTT gecheckt und meine YAML korrigiert.
- state_topic: "V04P26/SMTID/HOST2CLIENT"
name: Zusatzwärmeerzeuger Stufe
unique_id: Zusatzwaermeerzeuger_Stufe
value_template: >
{% set mode = value_json["values"]["5008"] | int(base=16) %}
{% if mode == 0 %} Aus
{% elif mode == 3 %} An (3-phasig)
{% else %} Unbekannter Modus
{% endif %}
icon: mdi:heating-coil
Die Leistungsaufnahme lässt sich leider nicht via MQTT ermitteln. Weder Register 5138 noch 5320 teilte mir korrekte Ergebnisse mit. Ich habe unterdessen ein Shelly 3M im Einsatz, den ich noch übrig hatte, und logge darüber die Verbräuche mit. Man könnte aber auch ohne Shelly 3M stumpf die maximale Leistungsaufnahme des Heizstabs dazu addieren, wenn das Register 5008 den Wert 3 liefert. Das ist zwar nur grob, aber hätte bei mir zu 95% gepasst.
Hallo, erstmal vielen Dank für eure Mühe bisher… Ein Kunde hat mich auf die Integration aufmerksam gemacht.
Ich bin neu hier und hätte da eine Tabelle mit den ID-Zuordnungen beizutragen. Aber wie kann ich die hier “publizieren”?
Außerdem habe ich mit den Geräten seit ein paar Jahren beruflich zu tun.
Verzeiht mir bitte vorerst deshalb auch meine Anonymität.
Hallo Ronny,
schön, dass du Dich einbringen möchtest.
Eine Tabelle gibt es bereits.
Guck Dir mal unter dem folgenden Link die Datei “Remko Codes.xlsx” an: GitHub - Altrec/remko_mqtt-ha: Home Assistant integration for Remko heatpumps using MQTT
Hier hat Altrec seine Integration veröffentlich. Ich muss dazu sagen, dass es je nach Firmware Version anscheinend unterschiedliche Verhaltensweisen bei der MQTT Abfrage gibt. Ich benutze die Lösung die @Thorbeen beschreibt in Kombination mit V4.26
Hallo o-live-r,
ok, die Tabelle hatte ich übersehen.
Ich mache mal einen Testaufbau mit der 4.26 und der aktuellsten 4.28.3.
Die 4.26 ist für die “alten Drehregler” das maximum, für die “Touchregler” ist im Moment die 4.28.3 das Maximum. Es soll nach der ISH irgendwann eine 4.30 rauskommen, die aber m.E. keine gravierenden Unterschiede zur 4.28.3 aufweist.
Achso, die 4.28.3 kann in Ausnahmefällen auch mit dem Drehregler verwendet werden, wenn man z.B. SG-ready (S1 und S2) Schnittstellen nutzen möchte…
Hallo R744,
Was meinst Du mit Drehrwgler?
Gehört hier vielleicht nicht hin, aber wenn ich Dich richtig verstehe nutzt Du SG Ready?
Ich hab mir die Kontakte von meinem Heizungsbauer raus legen lassen, aber es funktioniert nicht.
Vielleicht kannst Dj mir mal per PM schleichen, wie Du die ansteuert.
Danke!