Homematic Dimmer mit putParamset umprogrammieren

Hallo, nach 2 erfolglosen Stunden selbst ausprobieren hoffe ich, dass mir hier jmd weiterhelfen kann.
Ich möchte meinen Dimmer über die xmlRPC umprogrammieren.

Folgendes habe ich gemacht:

Über die Konsole mir die Config des Geräts geholt, einmal den gesuchten Wert über das Homematic Tool geändert und die erneut die Config geholt und verglichen. Folgende 2 Werte muss ich ändern, den Rest habe ich herausgekürzt:

LINK
{
        Channel: 1
        {
                Address: 0x54fbcc
                {
                        Remote channel: 2
                        {
                                ...
                                [SHORT_ON_LEVEL]: 3c
                                ...
                                [LONG_ON_LEVEL]: 3c
                                ...
                        }
                }
        }
}

Dann wollte ich mit putParamset() die Umprogrammierung vornehmen

sudo homegear -e rc '$hg->putParamset(<Geräte ID, bei mir 31>, 1, <hier bin ich mir nicht sicher, hab einiges probiert>, 2, Array("SHORT_ON_LEVEL" => 0x64, "LONG_ON_LEVEL" => 0x64));'

für den Wert 0x64 habe ich auch diverse andere probiert, auch Schreibweisen ohne 0x, Floats etc.

Ich bekomme folgenden Logeintrag:

11/10/17 06:54:22.926 Info: CLI connection accepted. Client number: 57392
11/10/17 06:54:22.945 Script Engine Server: Info: Starting script "/var/lib/homegear/scripts/inline.php" with id 79.
11/10/17 06:54:23.165 Info: Script with id 79 finished with exit code 255
11/10/17 06:54:23.193 Info: Connection to CLI client number 57392 closed.

Ich bin mir sicher dass putParamset() die richtige Funktion ist, da der Homegearlog die Fkt. auch anzeigt, wenn ich den Wert über das Homematic Konfig Tool ändere.

Dürfte hoffentlich nur ne Kleinigkeit sein, die noch fehlt. Bekomme es aber einfach nicht hin.

Danke :slight_smile:

Ok habe es endlich rausgefunden, indem ich das debug level erhöht habe und rausgefunden habe was wirklich gesendet wird.

sudo homegear -e rc '$hg->putParamset("<HM-Adresse>:1", "<HM-Adresse>:2", Array("SHORT_ON_LEVEL" => 0.4, "LONG_ON_LEVEL" => 0.4));'

Hätte aus der Dokumentation nicht herausinterpretiert, dass es so funktioniert :smiley:

Hallo @andirs,

ich habe die Referenz mal etwas angepasst und auch ein Beispiel hinzugefügt. Ich hoffe jetzt ist es verständlicher:

https://ref.homegear.eu/rpc.html#putParamset

Dein Beispiel mit der neuen Syntax:

homegear -e rc '$hg->putParamset(31, 1, <Peer ID des Peers mit Adresse 54fbcc>, 2, array("BURST_RX" => false, BUTTON_LOCK => true));'

Das wäre die neue Syntax. Die Peer ID für die Adresse siehst du im CLI mit:

homegear -r
fs 0
peers list ADDRESS 54fbcc

Viele Grüße

Sathya

1 Like

Hier übrigens ein praktisches Beispiel in einer Openhab rule

If anyone is interested in changing the Parameters of a Homematic Device which has no Datapoint to Openhab, here is how I successfully change one of them:

executeCommandLine("sudo@@/usr/bin/homegear@@-e@@rc@@print_v($hg->putParamset(\"OEQ2698134:1\", \"OEQ2698134:1\", ARRAY(\"SHORT_ON_LEVEL\" => 0.1)))")

Und wieder zum Standardwert:

executeCommandLine("sudo@@/usr/bin/homegear@@-e@@rc@@print_v($hg->putParamset(\"OEQ2698134:1\", \"OEQ2698134:1\", ARRAY(\"SHORT_ON_LEVEL\" => 1.0)))")
2 Likes