CUxD Parameter per Script verändern für Ansteuerung von TP-LINK Komponenten

Anbindung von FS20-Komponenten, ELV-Wetterstationen, EnOcean und DMX an HomeMatic

Moderator: Co-Administratoren

Antworten
letsgowesti
Beiträge: 8
Registriert: 03.05.2020, 13:45
System: CCU

CUxD Parameter per Script verändern für Ansteuerung von TP-LINK Komponenten

Beitrag von letsgowesti » 03.05.2020, 14:59

Hallo,

ich habe auf einer CCU3 den CUx-Daemon installiert und einen Switch CUX2801003 für die Ansteuerung von TP-Link Komponenten eingerichtet. Für jede einzelne Komponente habe ich einen entsprechenden Kanal für die Steuerung AN/AUS eingerichtet. Über ein Skript lese ich zunächst die TP-Link Device-List aus und generiere anschließend die Einträge für CMD_SHORT und CMD_LONG. Die Ansteuerung funktioniert, wenn ich den kompletten String per CMD_SETS bzw. CMD_SETL setze.

Code: Alles auswählen

CMD_SHORT:    $_P1$ -d '{ 'method' : 'passthrough', 'params' : { 'deviceId' : '<device-id>', 'requestData' : "{ \"system\" : { \"set_relay_state\" : { \"state\" : 0}}}"}}' https://eu-wap.tplinkcloud.com?token=<token>
CMD_LONG:    $_P1$ -d '{ 'method' : 'passthrough', 'params' : { 'deviceId' : '<device-id>', 'requestData' : "{ \"system\" : { \"set_relay_state\" : { \"state\" : 1}}}"}}' https://eu-wap.tplinkcloud.com?token=<token>
PARAM1           /usr/local/addons/cuxd/curl -X POST -H 'Content-Type: application/json'
Ich würde nun gerne den String auf statische Einträge begrenzen und den Parameter CH_PARAM1 für den dynamischen Wert "Device-ID" und den übergeordneten Parameter PARAM2 für den Token, der täglich neu abgefragt werden muss, benutzten:

Code: Alles auswählen

CMD_SHORT:    $_P1$ -d '{ 'method' : 'passthrough', 'params' : { 'deviceId' : '$_C1$', 'requestData' : "{ \"system\" : { \"set_relay_state\" : { \"state\" : 0}}}"}}' https://eu-wap.tplinkcloud.com?token=$_P2$
CH_PARAM1    <device-id>
PARAM2          <token>
Vorteil ist, dass ich CH_PARAM1 für die jeweilige <device-id> nur einmal initial oder bei Änderung generieren muss und die tägliche Generierung auf den PARAM2 (<token>) beschränken kann.

Leider habe ich keine funktionierende Lösung gefunden, um PARAM2 und CH_PARAM1 per Skript dynamisch zusetzen.

PARAM1 und CH_PARAM1 sind als Datenpunkte nicht zu finden. Die Datenpunkte PARAMETER_S_1 und PARAMETER_S_2 lassen sich zwar per Script setzen, werden aber bei Tastendruck nicht berücksichtigt und somit ist der Schalter nicht funktionsfähig.
CMD_SHORT:

Code: Alles auswählen

$_P1$ -d '{ 'method' : 'passthrough', 'params' : { 'deviceId' : '$_1$', 'requestData' : "{ \"system\" : { \"set_relay_state\" : { \"state\" : 0}}}"}}' https://eu-wap.tplinkcloud.com?token=$_2$
PARAMETER_S_1    <device-id>
PARAMETER_S_2    <token>
Eine weitere Alternative über xmlrpc.PutParamset verändert ebenfalls nicht die Werte

Code: Alles auswählen

xmlrpc.PutParamset("CUxD","CUX2801003:3","MASTER","CH_PARAM1","<device-id>")
xmlrpc.PutParamset("CUxD","CUX2801003","MASTER","PARAM2","<token>")
Über xmlrpc.GetParamset("CUxD","CUX2801003:3","MASTER") werden die per WEB-UI definierten Werte korrekt angezeigt, aber nicht die Änderungen über PutParamset .

Hat jemand einen Tip?
Gruß
Zuletzt geändert von alchy am 03.05.2020, 20:26, insgesamt 1-mal geändert.
Grund: Code in Codetags posten

Benutzeravatar
uwe111
Beiträge: 4819
Registriert: 26.02.2011, 22:22
Hat sich bedankt: 3 Mal
Danksagung erhalten: 245 Mal
Kontaktdaten:

Re: CUxD Parameter per Script verändern für Ansteuerung von TP-LINK Komponenten

Beitrag von uwe111 » 05.05.2020, 15:09

letsgowesti hat geschrieben:
03.05.2020, 14:59
Eine weitere Alternative über xmlrpc.PutParamset verändert ebenfalls nicht die Werte

Code: Alles auswählen

xmlrpc.PutParamset("CUxD","CUX2801003:3","MASTER","CH_PARAM1","<device-id>")
xmlrpc.PutParamset("CUxD","CUX2801003","MASTER","PARAM2","<token>")
Hat jemand einen Tip?
Die Übergabewerte müssen in doppelten Anführungszeichen stehen. So sollte es funktionieren:

Code: Alles auswählen

object i1 = dom.GetObject("CUxD");
xmlrpc.PutParamset(i1,"CUX2801003:3","MASTER","CH_PARAM1","\"<device-id>\"");
xmlrpc.PutParamset(i1,"CUX2801003","MASTER","PARAM2","\"<token>\"");
Viele Grüße

Uwe
Alle sagten: Das geht nicht. Dann kam einer, der wußte das nicht und hat's einfach gemacht.
SPENDEN :wink: Download: CUxD 2.11, SSH KeyDir

letsgowesti
Beiträge: 8
Registriert: 03.05.2020, 13:45
System: CCU

Re: CUxD Parameter per Script verändern für Ansteuerung von TP-LINK Komponenten

Beitrag von letsgowesti » 07.05.2020, 11:15

Vielen Dank Uwe.

Der Tip hat mein Problem gelöst :D

Gruß
Ulli

Antworten

Zurück zu „CUxD“