NEWS
[Frage] CUxD iob-homematic Kommunikation
-
Ich habe iob 7.4.10.
Die Instanzen hm-rega.0, hm-rpc.0, hm-rpc.1 und hm-rpc.2 sind installiert und laufen auch. Alles grün.
Im iob sehe ich auch die Datenpunkte meines Cuxd-Geräts, das ist in meinem Fall die 19-Tasten Fernbedienung:Ich würde nun folgendes erwarten: Wenn ich im Datenpunkt SEND_CMD den Wert auf AA01 manuell setze, dass dieses Kommando an homematic weitergereicht wird und damit der "kurze Tastendruck" mit dem Wert AA01 ausgelöst wird. Diese 2 Bytes sollten dann über die funktionierende USB-SS gesendet werden (an ein Gerät mit RS232-SS) und es müsste eine Antwort zurückkommen, die ich dann im iobroker im Datenpunkt RCVS sehen sollte. Da passiert aber nichts!
Im homematic kann ich im Cuxd-Terminal AA01 senden und sehe dann auch die korrekte Antwort des seriellen Geräts.09:50:11 [ttyUSB0] *** connect(9600:8N1) FT232R USB UART 09:50:35 [ttyUSB0] <-T AA01 09:50:35 [ttyUSB0] --> EE2E0040E9ED 09:50:43 [ttyUSB0] <-T AA01 09:50:43 [ttyUSB0] --> 000100F401D007201C0000000000009A36000000000041EE2E0040E9EC
Aber ich bekomme diese Antwort nicht in den iob rein.
Was mache ich denn falsch oder wo ist mein Denkfehler?
-
@norbert999 sagte in [Frage] CUxD iob-homematic Kommunikation:
Ich würde nun folgendes erwarten:
warum?
wenn ich das richtig erkenne ist das der Wert den das Gerät sendet!
Da kann man nur lesen, aber nicht schreiben.Gilt für jeden Taster von HM genauso
wenn ich das missverstanden habe, bitte ich um Korrektur
-
@homoran
Danke für Deine Antwort.
Wenn das so ist, wie kann ich dann erreichen, dass ich etwas senden kann? Wo muss ich denn das reinschreiben? -
@norbert999 sagte in [Frage] CUxD iob-homematic Kommunikation:
Wenn ich im Datenpunkt SEND_CMD den Wert auf AA01 manuell setze,
Der Wert ist im Screenshot rot, d.h. er wird nicht angenommen. Wenn Du mal auf die Eigenschaften gehst, dann wird sich vermutlich das bestätigen, was @Homoran schon geschrieben hat. Der Datenpunkt wird nur lesend (read only) sein. Was aber per se auch erstmal völlig korrekt ist. CUxD-Geräte haben (sofern möglich/vorgesehen) i.d.R. eigene Datenpunkte für das Senden.
-
@norbert999 sagte in [Frage] CUxD iob-homematic Kommunikation:
Wenn das so ist, wie kann ich dann erreichen, dass ich etwas senden kann?
Lt. CUxD-Anleitung bis Du scheinbar doch gar nicht so falsch unterwegs.
-
@norbert999 sagte in [Frage] CUxD iob-homematic Kommunikation:
wie kann ich dann erreichen, dass ich etwas senden kann? Wo muss ich denn das reinschreiben?
wenn es HM wäre müsstest du den Befehl an den Empfänger (Aktor) senden und nicht an den Sender (Taster).
Mit CuxD Geräten kenne ich mich nicht wirklich aus.
Wenn es über das CuxD Interface geht ist es eine Sache.Kannst du denn auch über die CCU WebUI oder über ein CCU Programm senden?
Dann wäre ggf. ein Workaround möglich.Andere Möglichkeit wäre es wenn ein entsprechender REGA Datenpunkt existiert. z.B. von einer geräteinternen Systemvariablen, die für das CuxD Gerät angelegt wurde.
EDIT:
Wie sehen die Objektdaten (Expertenmodus -> Bleistift) des Datenpunktes aus.
m
nach dem letzten Post von @Samson71 könnte doch was möglich sein -
@samson71 Das meine ich auch, denn: wenn ich in homematic in für die Fernbedienung in dem Datenpunkt CMD_SHORT den Wert AA01 eingebe und dann den kurzen Tastendruck auslöse, dann sehe ich im Cuxd-Terminal, dass AA01 gesendet wurde und auch eine Antwort zurückkommt. Aber das sehe ich eben nur im Terminalfenster und nicht in den homematic Dastenpunkten der FB und auch nicht in den iob Datenpunkten des Cuxd.
Habe aber keine Idee, was falsch läuft. -
@norbert999 sagte in [Frage] CUxD iob-homematic Kommunikation:
Habe aber keine Idee, was falsch läuft.
je nachdem was in den Objektdaten steht, hätte ich doch eine
-
Objekt bearbeiten: hm-rpc.2.CUX4000001.1.SEND_CMD { "type": "state", "common": { "name": "CUX4000001:1.SEND_CMD", "role": "", "def": "", "type": "string", "read": false, "write": true }, "native": { "ID": "SEND_CMD", "UNIT": "", "TAB_ORDER": 7, "OPERATIONS": 2, "FLAGS": 1, "TYPE": "STRING", "MIN": "", "MAX": "", "DEFAULT": "" }, "from": "system.adapter.hm-rega.0", "user": "system.user.admin", "ts": 1742205913132, "_id": "hm-rpc.2.CUX4000001.1.SEND_CMD" }
-
@norbert999
Ich denke Du kannst den Datenpunkt SEND_CMD nicht so direkt beschreiben wie Du Dir das vorstellst. Jedenfalls nicht, wenn ich die CUxD-Anleitung richtig verstehe. -
@samson71 Das wäre mein Workaround geworden, weiss nur nicht wie man einen Wert von iob in ein HM Programm oder gar Script bekommt
-
@norbert999 sagte in [Frage] CUxD iob-homematic Kommunikation:
write": true
hattest du den Wert bestätigt oder unbestätigt geschrieben?
-
@homoran Hatte beides ausprobiert, aber ohne Erfolg
-
@norbert999 sagte in [Frage] CUxD iob-homematic Kommunikation:
@homoran Hatte beides ausprobiert, aber ohne Erfolg
ok, unbestätigt wäre richtig gewesen, bestätigt würde die rote Schrift erklären
-
@homoran
Ich kann das nur "ableiten". Das ist glaube ich eine generelle CUxD-Logik.Ich habe im Bad eine Infarot-Zusatzheizung, die ich per Shelly PlugS schalte. Über eine CUxD-Steckdose (ein 28er Gerät) hole ich mir diese incl. Energiewerte in HM und die TinyMatic App. Aus der schalte ich ggf. auch von Hand.
Dazu hat das Gerät auch einen SEND-Datenpunkt in den Einstellungen. Den kann ich aber auch nicht direkt beschreiben, sondern das muss per Skript passieren.
Der Datenpunkt ist auch wie beim 40er Gerät als String ausgelegt.
Den beschreibe ich mit einem String, den ich per Blockly bilde und als Trigger wird der Power-Wert der Shelly Steckdose benutzt.
@norbert999
Ich denke, dass allein der Wert den Du im Datenpunkt SEND_CMD direkt setzt nicht ausreicht, sondern dass das als String analog meinem Beispiel übergeben werden muss. -
@samson71
Ich habe das jetzt mal umgesetzt, was Du beschrieben hast, d.h. ich habe folgendes BLOCKLY erstellt:Jede Minute schreibt das script jetzt AA01 in den CUxD Datenpunkt SEND_CMD. Weiter passiert aber nichts. Ich sehe auch im CUxD-Terminalfenster nicht, dass der AA01 Befehl gesendet wurde.
Ich stehe wirklich auf dem Schlauch und bin am verzweifeln.
-
@norbert999
Ich kann ab hier nur vermuten. Ich gehe davon aus, dass die Syntax nicht passt und das reine Senden von "AA01" nicht das ist was erwartet wird, also der vollständige String. Nur weil Du das im Terminal direkt reinhämmerst, bedeutet das nicht dass das auch im Hintergrund nur so übergeben wird.Wenn ich die Beschreibung von CUxD zum 40er Device richtig verstehe, ist auch als Auslöser zwingend der Taster zu benutzen. Hier scheint es Abhängigkeiten zu geben, was aber bei einer Fernsteuerung auch nicht unlogisch ist.
-
@samson71
Habe es jetzt anders gelöst und jetzt sehe ich im iob unter dem Cuxd-Datenpunkt CUX4000001:1.RCVS die korrekte Antwort:Dazu habe ich in homatic ein script erstellt, welches jede Minute den "kurzen Taster" drückt:
var cmd = dom.GetObject("CUxD.CUX4000001:1.SEND_CMD").State("AA01"); var ret = dom.GetObject("CUxD.CUX4000001:1.RCVS").Value(); dom.GetObject("Status_Judo").State(ret);
Dabei ist der Taster in homematic wie folgt konfiguriert:
-
@norbert999
Also war zumindest der Hinweis mit dem Taster als Trigger nicht verkehrt. Du kannst auch noch versuchen mit einem Blockly den Taster als Trigger zu benutzen und das nicht stumpf per Cronjob zu machen.Sieht nach einer JUDO-Wasseraufbereitung aus.
-
@samson71 Ja, das war schon ein entscheidender Hinweis von Dir. Und Du hast auch Recht, ist ein Judo-Wasserstop, aber eben das alte Modell ohne Wifi, aber dafür mit RS232.
Tausend Dank Dir!