Texte ausgeben auf dem HmIP-WRCD

Begonnen von tschimi, 27 Juni 2023, 21:04:26

Vorheriges Thema - Nächstes Thema

tschimi

Hi,
ich komm irgendwie nicht weiter und daher mal die Frage an euch. Ich versuche, auf einem HmIP-WRCD auf dem schönen Display was via FHEM auszugeben. Für die Homematicseite hab ich nen Script gefunden, das funktioniert:

string k="testen";
dom.GetObject("HmIP-RF.0xxxxxxxxxx:3.COMBINED_PARAMETER").State("{DDBC=WHITE,DDTC=BLACK,DDA=CENTER,DDS="#k#",DDID=3,DDI=2,DDC=true}");

Jetzt würde ich das gerne direkt aus FHEM aufrufen.
Dazu hab ich folgendes probiert:

set d_ccu hmscript [xmlrpc.PutParamset(dom.GetObject("HmIP-RF.0xxxxxxxxxxxxx:3.COMBINED_PARAMETER").State("{DDBC=WHITE,DDTC=BLACK,DDA=CENTER,DDS="k",DDID=3,DDI=2,DDC=true}"))]

Leider führt das aber nicht zum Erfolg. Weiß jemand zufällig, wo da der Denkfehler ist?

Dankeschön schon mal im Voraus....

tndx

Hi,

ich nutze dieses Feature zwar im Moment nicht, aber vor einiger Zeit hat mir dieser Thread weitergeholfen:
https://forum.fhem.de/index.php?topic=109968.0
Was geht denn bei dir konkret nicht, irgendwelche Fehlermeldungen?

tschimi

Nun, ich denke, das Problem ist die Syntax. Dazu gibt es widersprüchliche Aussagen. Hatte gehofft, das irgend jemand das schon mal ans Laufen bekommen hat und hier einfach den richtigen Aufruf posten kann... ;-)

Lg

tschimi

So, das hat mir keine Ruhe gelassen und nun hab ich ne Lösung gefunden. Vielleicht hilfts ja jemandem.

Zuerst hab ich im Homematic-Server ne Systemvariable angelegt. Die ist vom Typ Zeichenkette und hat keine Kanalzuordnung. Ich hab ihr den Namen WZDisplayTXT gegeben. Nun kann man mit

http://IPdesHOMEMATICservers:8181/alchy.exe?sagt=dom.GetObject('WZDisplayTXT').State('testtxt')

aus jedem Browser einen text in dieser Variable ablegen. Das geht dann später auch aus FHEM mit GetFileFromURL, dazu später.

Nun muss dieser Text in Display geschoben werden. Dazu hab ich im Homematic-Server ein "Programm" unter "Programme und Verknüpfungen" angelegt. Das reagiert jetzt bei jeder Änderung und führt ein Script aus. Dabei wird immer die Variable aus der Systemvariable gelesen und wenn die sich geändert hat, dann wird der neue Txt in das Display geschoben. Ich hab jetzt kein ICON (DDI=0), und nur in der 3ten Zeile (DDID=3) was ausgegeben. Zeilen gehen von 1-5. Nach erfolgter Änderung schreibe ich wieder "abcd" rein, damit das Display nicht unnötig upgedated wird.

Von Fhem aus wurschtel ich nun den Wert im UserReading via GetFileFromURL in die Homematic-Systemvariable. Zusätzlich frag ich auch hier nochmal nach ner Änderung, das sonst zuviel geupdated wurde.

Ist alles noch nicht schön und elegant, läuft aber immerhin bis ich was besseres hab. Eure Vorschläge sind willkommen ;-) Und wenns einfacher geht - umso besser :-)

LG

zap

#4
Was spricht dagegen, einfach den Datenpunkt zu setzen? Du definierst ein Device (z.B. ein HMCCUDEV) für das Gerät. Dann (wenn das Device XY heißt):

set XY datapoint 3.COMBINED_PARAMETER "{DDBC=WHITE,DDTC=BLACK,DDA=CENTER,DDS="#k#",DDID=3,DDI=2,DDC=true}"
Per hmscript Befehl sollte es so funktionieren:

set d_ccu hmscript [dom.GetObject("HmIP-RF.0xxxxxxxxxxxxx:3.COMBINED_PARAMETER").State("{DDBC=WHITE,DDTC=BLACK,DDA=CENTER,DDS="k",DDID=3,DDI=2,DDC=true}")]
2xCCU3 mit ca. 100 Aktoren, Sensoren
Entwicklung: FHEM auf Proxmox Debian VM
Produktiv inzwischen auf Home Assistant gewechselt.
Maintainer: HMCCU, (Fully, AndroidDB)

tschimi

Wow, das sieht nach einer tollen Idee aus. Ich hab versucht, so ein Device im Fhem am CCU anzulegen - das geht aber leider so nicht. Irgend ein Datatype wird nicht akzeptiert. Hast du das mal selber ausprobiert?

zap

Ggf. kennt HMCCU den Typ nicht, dann mit einem klassischen Define:

define myDev HMCCUDEV Geräteadresse

Wenn das nicht geht, noch ein "forcedev" anhängen.
2xCCU3 mit ca. 100 Aktoren, Sensoren
Entwicklung: FHEM auf Proxmox Debian VM
Produktiv inzwischen auf Home Assistant gewechselt.
Maintainer: HMCCU, (Fully, AndroidDB)

megadodopublications

Zitat von: zap am 29 Juni 2023, 21:42:35set XY datapoint 3.COMBINED_PARAMETER "{DDBC=WHITE,DDTC=BLACK,DDA=CENTER,DDS="#k#",DDID=3,DDI=2,DDC=true}"

... funktioniert bei mir nur ohne die Gänsefüßchen.. aber es funktioniert :-) Vielen Dank!

tschimi

Super - jetzt gehts auch bei mir :-) DANKE!!!