Senden von Temperaturwert an Homematic CUXD Gerät

Begonnen von guitarhead, 02 Oktober 2020, 16:06:41

Vorheriges Thema - Nächstes Thema

guitarhead

Liebe Forenmitglieder,
nach tagelangem Probieren möchte ich Euch um Euren Rat bitten.
Folgender Befehl, direkt in der Kommandozeile eingegeben schreibt einen Temperaturwert in ein CUxD-Wrapper auf der Homematic.

"wget http://192.168.2.201:8181/alchy.exe?sagt=dom.GetObject\(\"CUxD.CUX9002001:1.SET_TEMPERATURE\"\).State\(\"10.3\"\)"

Nach dieser Anleitung angelegt: https://homematic-forum.de/forum/viewtopic.php?f=19&t=33038&start=10#p312656

Versuche ich nun den Temperaturwert per Variable in die o. g. Url zu übergeben scheitere ich.

{my $temp=ReadingsVal("HWR_Funk","temperature","");; "wget http://192.168.2.119:8181/alchy.exe?sagt=dom.GetObject\(\"CUxD.CUX9002001:1.SET_TEMPERATURE\"\).State\(\"$temp\"\)"}

Gibt dann lediglich das aus:
wget http://192.168.2.119:8181/alchy.exe?sagt=dom.GetObject("CUxD.CUX9002001:1.SET_TEMPERATURE").State("19.9")

Die Temperatur ist korrekt befüllt worden nur schreibt FHEM den Befehl einfach aus, statt ihn auszuführen.

Hat da wer eine Idee?
In dem o. g. Post hat jemand es so gelöst, nur EVTPART1 liefert nicht den Wert, den ich brauche. Auch nützt mir State nichts, da dort Temperatur und Luftfeuchtigkeit angegben werden. Die Were möchte ich aber einzeln übergeben. Also wie mit ReadingsVal ausgeführt.

define tempcheck notify Badezimmer.unten.Thermostat:temperature.* "wget http://IP-DEINER-CCU:8181/alchy.exe?sagt=dom.GetObject\(\"CUxD.CUX9002001:1.SET_TEMPERATURE\"\).State\(\"$EVTPART1\"\)"

Erneut, habt Ihr eine Idee?

Danke und viele Grüße
guitarhead

guitarhead

Habe es hinbekommen. Hier für die Nachwelt:
{ my $v=ReadingsVal("HWR_Funk","temperature",""); GetFileFromURL "http://192.168.2.209:8181/alchy.exe?sagt=dom.GetObject\(\"CUxD.CUX9002001:1.SET_TEMPERATURE\"\).State\(\"$v\"\)"}

kuwagei

Hallo guitarhead,

vielen Dank für den Code, ich habe ihn für meine Zwecke folgendermaßen angepasst:
{ my $v=ReadingsVal("Fitnesskellerklima","temperature","");; GetFileFromURL "http://192.168.15.30:8181/alchy.exe?sagt=dom.GetObject\(\"CUxD.CUX9002001:1.SET_TEMPERATURE\"\).State\(\"$v\"\)" }
Leider führt er bei mir zu der Meldung "/alchy.exeUser-Agent: fhemfalse" und im Wrapper-Device ändert sich nichts, die Beispiele mit Zahlenwerteingabe funktionieren jedoch.

Das Device "Fitnesskellerklima" funktioniert und ist folgendermaßen definiert:
defmod Fitnesskellerklima FBDECT fb1:13979_0736484 avmButton,tempSensor
attr Fitnesskellerklima event-min-interval power:120
attr Fitnesskellerklima group Heizungssteuerung
attr Fitnesskellerklima icon temperature_humidity
attr Fitnesskellerklima room F0->Fitnesskeller,SYS->FBDECT
attr Fitnesskellerklima stateFormat Temperatur: [$name:temperature:d] °C,  rel. Feuchte: [$name:rel_humidity:d] %

Kann mir jemand sagen, was die Meldung zu bedeuten hat bzw. was ich falsch mache?
Fritz: Box5590, Rep.1200AX+2400, SmartGW, 2xPL546E, 3xDECT200, 3x302, 3x440, RolloTronDECT,
Raspberrymatic-, FHEM-, deConz-Docker auf Raspi3B, HB-Docker auf Tinkerboard, div. Zigbee-Geräte
3xHM-LC-Sw1-FM,3xHM-LC-Sw1PBU-FM,3xHM-LC-Sw2-FM,2xHM-CC-RT-DN, HM-LC-Sw1PBU-FM,HM-Sec-...
DUOFERN+9x Rollotron

kuwagei

Die Meldung bedeutet hier offenbar, dass die GetObject Methode nicht erfolgreich war, da sie eine numerischen Wert erwartet. Ich habe ReadingsVal durch ReadingsNum ersetzt, dann funkioniert es.

Falls es jemanden interessiert, hier meine Anwendung zum Übertragen des vom Fritz!Dect400 gelieferten Temperaturwertes an ein CuxD Wrapper Device:

defmod fk_notifytemp notify Fitnesskellerklima:temperature:.* \
{ my $h=InternalVal("d_ccu","ccuip","");;;; my $v=ReadingsNum("Fitnesskellerklima","temperature",0);;;; GetFileFromURL "http://$h:8181/alchy.exe?sagt=dom.GetObject\(\"CUxD.CUX9002001:1.SET_TEMPERATURE\"\).State\(\"$v\"\)" }
attr fk_notifytemp comment Am Fritz!Dect440 gemessenen Temperaturwert auf virtuelles CUxD- Gerät übertragen.
attr fk_notifytemp icon HomeMatic_Schrift
attr fk_notifytemp room F0->Fitnesskeller
Fritz: Box5590, Rep.1200AX+2400, SmartGW, 2xPL546E, 3xDECT200, 3x302, 3x440, RolloTronDECT,
Raspberrymatic-, FHEM-, deConz-Docker auf Raspi3B, HB-Docker auf Tinkerboard, div. Zigbee-Geräte
3xHM-LC-Sw1-FM,3xHM-LC-Sw1PBU-FM,3xHM-LC-Sw2-FM,2xHM-CC-RT-DN, HM-LC-Sw1PBU-FM,HM-Sec-...
DUOFERN+9x Rollotron