Hallo,
ich habe ein Problem mit dem Setzen eines bestimmten datapoints.
Kurze Hintergrunderklärung vorab:Ich hatte bisher noch nie etwas mit Homematic zu tun und kenne mich damit NULL aus.
Ich möchte den Fußbodenheizungsaktor
HmIP-FALMOT-C12 zur Steuerung meiner FB-Heizkreise einsetzen. Mein erster Gedanke war diesen einfach mit den in FHEM vorhandenen Temp. Soll- und Ist-Werten zu versorgen. Das ist dann daran gescheitert, daß man offensichtlich diese Werte von "Außen" nicht beschreiben kann, sondern sie zwingend von einem HmIP-Thermostaten (
HmIP-STH, HmIP-STHD,HmIP-WHT-2) kommen müssen. Also habe ich mir zum Testen mal je einen HmIP-STH und HmIP-STHD bestellt. Die Idee war die Einstellungen der Thermostate dann durch FHEM vorzunehmen.
Unter Anderen gibt es dafür 2 datapoints (
SET_POINT_TEMPERATURE und
TEMPERATURE_OFFSET). Mit dem 1. stellt man den Sollwert ein und mit dem 2. kann man den aktuellen Meßwert zumindest beeinflussen, der Meßwert selbst kann leider nicht überschrieben werden).
Nach Einrichten des HMCCU-Moduls und Anlegen der Devices begann ich mit den Tests.
Ich habe zwar immer noch das Eine oder Andere Verständnisproblem im Zusammenspiel zwischen HM und FHEM, aber grundsätzlich klappt der Datenaustausch.
Jetzt zu meinem Problem:
- Mit z.B. "set datapoint 1.SET_POINT_TEMPERATURE 19.5" kann ich den Temp.-Sollwert im HmIP-STH bzw. HmIP-STHD ändern. Der Wert wird problemlos vom Thermostat übernommen
- Der Befehl "set datapoint 1.TEMPERATURE_OFFSET 2.5" funktioniert allerdings nicht sondern führt in FHEM zur Fehlermeldung "HMCCUDEV: HmIP_STH_xxxxxxxxx Invalid datapoint"
Ich versuche schon seit 2 Tagen die Ursache herauszufinden. Bisher leider erfolglos. In der"HmIP_Device_Documentation.pdf" ist für beide datapoints als Access "read/write" angegeben. Was mache ich falsch?
Machst Du bitte mal ein "get deviceinfo" für das Gerät in FHEM und postest den Output hier?
Ich habe schon eine Vermutung
Bitteschön,
Falls Du darin den Datenpunkt suchen willst, dann kann ich Dir jetzt schon sagen: Den gibt es da nicht.
CHN 000E5A49A14059:0 HmIP-STH 000E5A49A14059:0
DPT {b} HmIP-RF.000E5A49A14059:0.CONFIG_PENDING = false [RE]
DPT {b} HmIP-RF.000E5A49A14059:0.DUTY_CYCLE = false [RE]
DPT {b} HmIP-RF.000E5A49A14059:0.INSTALL_TEST = true [RW]
DPT {b} HmIP-RF.000E5A49A14059:0.LOW_BAT = false [RE]
DPT {f} HmIP-RF.000E5A49A14059:0.OPERATING_VOLTAGE = 3.000000 [RE]
DPT {i} HmIP-RF.000E5A49A14059:0.OPERATING_VOLTAGE_STATUS = 0 [RE]
DPT {n} HmIP-RF.000E5A49A14059:0.RSSI_DEVICE = 173 [RE]
DPT {n} HmIP-RF.000E5A49A14059:0.RSSI_PEER = 185 [RE]
DPT {b} HmIP-RF.000E5A49A14059:0.UNREACH = false [RE]
DPT {b} HmIP-RF.000E5A49A14059:0.UPDATE_PENDING = false [RE]
CHN 000E5A49A14059:1 HmIP-STH 000E5A49A14059:1
DPT {i} HmIP-RF.000E5A49A14059:1.ACTIVE_PROFILE = 1 [RWE]
DPT {f} HmIP-RF.000E5A49A14059:1.ACTUAL_TEMPERATURE = 24.200000 [RE]
DPT {i} HmIP-RF.000E5A49A14059:1.ACTUAL_TEMPERATURE_STATUS = 0 [RE]
DPT {b} HmIP-RF.000E5A49A14059:1.BOOST_MODE = false [WE]
DPT {i} HmIP-RF.000E5A49A14059:1.BOOST_TIME = 0 [RE]
DPT {f} HmIP-RF.000E5A49A14059:1.CONTROL_DIFFERENTIAL_TEMPERATURE = [W]
DPT {i} HmIP-RF.000E5A49A14059:1.CONTROL_MODE = [W]
DPT {i} HmIP-RF.000E5A49A14059:1.DURATION_UNIT = [W]
DPT {i} HmIP-RF.000E5A49A14059:1.DURATION_VALUE = [W]
DPT {b} HmIP-RF.000E5A49A14059:1.FROST_PROTECTION = false [RE]
DPT {i} HmIP-RF.000E5A49A14059:1.HEATING_COOLING = 0 [RWE]
DPT {i} HmIP-RF.000E5A49A14059:1.HUMIDITY = 30 [RE]
DPT {i} HmIP-RF.000E5A49A14059:1.HUMIDITY_STATUS = 0 [RE]
DPT {b} HmIP-RF.000E5A49A14059:1.PARTY_MODE = false [RE]
DPT {f} HmIP-RF.000E5A49A14059:1.PARTY_SET_POINT_TEMPERATURE = 0.000000 [RE]
DPT {s} HmIP-RF.000E5A49A14059:1.PARTY_TIME_END = [RWE]
DPT {s} HmIP-RF.000E5A49A14059:1.PARTY_TIME_START = [RWE]
DPT {i} HmIP-RF.000E5A49A14059:1.QUICK_VETO_TIME = 0 [RE]
DPT {i} HmIP-RF.000E5A49A14059:1.SET_POINT_MODE = 0 [RWE]
DPT {f} HmIP-RF.000E5A49A14059:1.SET_POINT_TEMPERATURE = 20.000000 [RWE]
DPT {b} HmIP-RF.000E5A49A14059:1.SWITCH_POINT_OCCURED = false [RE]
DPT {i} HmIP-RF.000E5A49A14059:1.WINDOW_STATE = 0 [RWE]
Ja, das ist die Bestätigung für meine Vermutung, daher
set xy config 1 TEMPERATURE_OFFSET=2.5
Bitte beachten: Kein . zwischen 1 und Parameter.
Erklärung: Es gibt Datenpunkte und Konfigurationsparameter. Letztere sind die, die Du in der CCU unter Einstellungen -> Geräteeinstellungen findest, wenn Du bei dem jeweiligen Gerät den Button "Einstellen" drückst.
Datenpunkte setzt Du mit "set datapoint", Parameter mit "set config".
Wichtig zu wissen: Nur Datenpunkte werden von der CCU automatisch aktualisiert. Parameter hingegen nicht. Die muss man mit "get config" explizit auslesen.
Hallo,
vielen Dank. Gut, also war "ich doch zu blöd", aber da muß man erstmal drauf kommen.
Es ist mir mit dem richtigen Befehl jetzt gelungen den Wert in der CCU zu schreiben, allerdings:
- mit der FHEM-Fehlermeldung "HMCCUDEV: HmIP_STH_000E5A49A14059 Execution of CCU script or command failed"
- bekomme ich in der WebUI dann eine "Servicemeldung" mit dem Hinweis "Konfigurationsdaten stehen zur Übertragung an" die sich aber nicht bestätigen läßt
- steht das reading "0.CONFIG_PENDING" steht jetzt auf "1"
- zeigt ein get config 1 TEMPERATURE_OFFSET keine Wirkung
Kann ich auch Parameter als reading anlegen?
Nochmal zur Syntax:Muß jetzt also ein set datapoint als "1.xxx" und ein set config als "1 xxx" eingegeben werden?
Kommt die Fehlermeldung beim "set config" Befehl?
Die Servicemeldung ist ok. Die CCU überträgt Konfigurationsparameter u.U. nicht sofort.
Wenn "get config" keine Wirkung zeigt, versuche mal nur
get xy config 1
Falls das auch nichts bringt: wie sieht das Attribut ccureadingfilter aus?
Wie gesagt: Datenpunkte setzen mit set datapoint. Zwischen Datenpunkt und Wert ist ein Leerzeichen.
Parameter setzen mit set config. Zwischen Parameter und Wert ist ein =. Der Kanal (hier 1) wird davor separat angegeben.
Hallo,
das "get xy config 1" hat funktioniert.
Die Syntax ist allerdings schon sehr undurchsichtig. Gibt es denn irgendwo eine allgemeine Beschreibung der HM-Syntax?
Das attr ccureadingfilter ist bei mir bisher nicht gesetzt. Ich hatte es so verstanden, daß das zum Einschränken der Anzahl/Typen der readings vorgesehen ist, oder? Da ich aber zum Testen erstmal Alles sehen wollte habe ich das noch nicht genutzt.
Jetz habe ich noch eine kleine andere Frage:Ich habe meine CCU-Geräte ja mit "get d_pivccu devicelist create ^H[M|m].* t=dev f=%n defattr save room=Homematic" angelegt. Das hat ja auch prinzipiell funktioniert, aber aus irgendeinem Grund legt FHEM den Fußbodenheizungsaktor HmIP-FALMOT-C12 nicht an. Ich bekomme nach Ausführung des Befehls zwar gemeldet "6 Geräte gefunden", es werden aber nur 4 angelegt.
An Geräten sind in der CCU die folgenden vorhanden:
- HM-RCV-50 (automatisch generiertes virtuelles Device), BidCoS-RF
- HmIP-RCV-50 (automatisch generiertes virtuelles Device), HmIP-RF
- HmIP-STH (Raumthermostat), HmIP-RF
- HmIP-STHD (Raumthermostat), HmIP-RF
- HmIP-FALMOT-C12 (Fußbodenheizungsaktor), HmIP-RF
- HM-TC-IT-WM-W-EU (virtueller Raumthermostat), CUxD
In FHEM angelegt wurden aber nur die Devices 1, 2, 3,4
Woran könnte das liegen? Gerade die Daten vom Fußbodenheizungsaktor HmIP-FALMOT-C12 brauch ich natürlich. Irgendetwas muß ich falsch/anders gemacht haben als bei der ersten Installation. Da war der Aktor nämlich angelegt/verbunden.
Vielen Dank für die bisherige Unterstützung
Bernd
Hi!
Was liefert denn ein
get d_pivccu devicelist dump
?
LG,
Stephan.
Hallo Stephan,
mit dem Dump-Befehl werden alle (inzwischen 7) angezeigt, z.B. auch der Fußbodenheizungsaktor:
Device "Regler FB-Hzg.OG" [001B9A49A8B2D8] Type=HmIP-FALMOT-C12
Channel 0 "Regler FB-Hzg.OG:0" [001B9A49A8B2D8:0]
Channel 1 "HmIP-FALMOT-C12 001B9A49A8B2D8:1" [001B9A49A8B2D8:1]
Channel 2 "HmIP-FALMOT-C12 001B9A49A8B2D8:10" [001B9A49A8B2D8:10]
Channel 3 "HmIP-FALMOT-C12 001B9A49A8B2D8:11" [001B9A49A8B2D8:11]
Channel 4 "HmIP-FALMOT-C12 001B9A49A8B2D8:12" [001B9A49A8B2D8:12]
Channel 5 "HmIP-FALMOT-C12 001B9A49A8B2D8:13" [001B9A49A8B2D8:13]
Channel 6 "HmIP-FALMOT-C12 001B9A49A8B2D8:14" [001B9A49A8B2D8:14]
Channel 7 "HmIP-FALMOT-C12 001B9A49A8B2D8:15" [001B9A49A8B2D8:15]
Channel 8 "HmIP-FALMOT-C12 001B9A49A8B2D8:16" [001B9A49A8B2D8:16]
Channel 9 "HmIP-FALMOT-C12 001B9A49A8B2D8:2" [001B9A49A8B2D8:2]
Channel 10 "HmIP-FALMOT-C12 001B9A49A8B2D8:3" [001B9A49A8B2D8:3]
Channel 11 "HmIP-FALMOT-C12 001B9A49A8B2D8:4" [001B9A49A8B2D8:4]
Channel 12 "HmIP-FALMOT-C12 001B9A49A8B2D8:5" [001B9A49A8B2D8:5]
Channel 13 "HmIP-FALMOT-C12 001B9A49A8B2D8:6" [001B9A49A8B2D8:6]
Channel 14 "HmIP-FALMOT-C12 001B9A49A8B2D8:7" [001B9A49A8B2D8:7]
Channel 15 "HmIP-FALMOT-C12 001B9A49A8B2D8:8" [001B9A49A8B2D8:8]
Channel 16 "HmIP-FALMOT-C12 001B9A49A8B2D8:9" [001B9A49A8B2D8:9]
Wie kann ich denn dieses Device sichtbar machen?
Danke schonmal für die Info.
Bernd
Der reguläre Ausdruck beim Befehl "get devicelist" bezieht sich auf den Namen in der CCU, nicht den Gerätetyp. Um den FB-Heizungsregler zu erwischen, musst Du also folgendes eingeben:
get d_pivccu devicelist create ^Regler.* t=dev f=%n defattr save room=Homematic"
oder
get d_pivccu devicelist create FB-Hzg.OG t=dev f=%n defattr save room=Homematic"
Du kannst natürlich jederzeit die Devices auch manuell anlegen. get devicelist ist v.a. für große Gerätemengen gedacht, funktioniert aber auch für einzelne Geräte.
Beispiel:
define xy HMCCUDEV "Regler FB-Hzg.OG"
Ich kenne den Regler nicht. Wenn aber über die einzelnen Kanäle verschiedene Heizkreise gesteuert werden, könnte es sinnvoll sein, statt einem HMCCUDEV für jeden dieser Kanäle ein HMCCUCHN anzulegen.
Hallo,
Super, das hat jetzt geklappt. Ich glaube daß ich nun auch den Grund für das Verhalten verstanden habe. Ich hatte bisher alle HM-Geräte mit "^Hm.*" angelegt und die dann nachträglich in der CCU umbenannt. Da steht dann jetzt als ID "HmIP-xxxx" und als CCU-Name z.B. "Thermostatxxxx"), aber der FHEM-Name lautet trotzdem noch "HmIP-xxxx". Bei dem Regler habe ich wahrscheinlich den Name in der CCU vor Ausführen des FHEM devicelist geändert und dann konnte er ihn mit "^Hm.*" natürlich nicht mehr finden.
Vielen Dank und Grüße
Bernd