Geräte Parameter ändern

Allgemeines zur HomeMatic Haussteuerung

Moderator: Co-Administratoren

unimatrix
Beiträge: 99
Registriert: 28.02.2011, 15:12
Danksagung erhalten: 1 Mal

Re: Geräte Parameter ändern

Beitrag von unimatrix » 05.02.2012, 15:51

Da bin ich ja schon.

Das Paramset in das man schreiben muss heisst nicht LINK. Da hab ich auch lange gesucht. Wenn man den fest verdrahteten Taster konfigurieren will, heisst das LINK-Paramset genau so wie das Gerät selbst. In deinem Fall müsste also

tclsh /usr/local/setparam.tcl HEQ0359149:1 HEQ0359149:1 SHORT_ON_LEVEL float 1.0

zu einem Ergebnis führen. Ich kann das TCL Script nicht und weiss nicht ob der Begriff "float" notwendig ist. aber das Paramset in dass du schreiben willst heisst dann definitiv HEQ0359149:1.

Das gemeine ist, dass man eben mit getParamset auch Daten bekommt wenn man aus LINK liest, aber da steht immer nur das gleiche drin, das ist ein Dokumentationsfehler...

Liest du z.B. aus dem HEQ0359149:1 aus, dann müsstest du auch solche Veränderungen sehen, die du per WebUI konfigurierst.

Achtung: Schreibt man da mehrmals pro Minute rein gehen die DImmer in einen CONFIG_PENDIG Modus und da hilft nur noch vom Strom trennen....ich hab jedenfalls noch keine andere Lösung. In meinen automatischen SCripten achte ich auf genug zeitlichen Abstand und habe keine Probleme. Ich ändere das Verhalten der Dimmer im Haus nur 2-3 mal Pro tag per Cron-Job (über HMCompanion)

VG

unimatrix
Beiträge: 99
Registriert: 28.02.2011, 15:12
Danksagung erhalten: 1 Mal

Re: Geräte Parameter ändern

Beitrag von unimatrix » 05.02.2012, 15:53

übrigens fällt mir gerade auf dass ich das in dem anderen Thread auch bereits erkläre, wenn man es genau liest :)

unimatrix
Beiträge: 99
Registriert: 28.02.2011, 15:12
Danksagung erhalten: 1 Mal

Re: Geräte Parameter ändern

Beitrag von unimatrix » 05.02.2012, 18:50

damit es anschaulicher wird, hier mein Anwendungsbeispiel für einen Dimmer im Flur (der liegt zwischen Schlaf- und Badezimmer und von dem gehen auch die Kinderzimmer ab). An dem Aktor sind mehrere Taster verdrahtet (alle parallel geschaltet), an jeder Tür zum Flur ist einer.

Das Verhalten dieser Taster ändere ich nun zeitgesteuert in 3 Phasen:

zwischen 6 Uhr und 19 Uhr:
echo "SETPARAM HEQ0358750:1 HEQ0358750:1 SHORT_ON_LEVEL 1.00"|nc localhost 6770
sleep 120
echo "SETPARAM HEQ0358750:1 HEQ0358750:1 SHORT_RAMPOFF_TIME 0.20"|nc localhost 6770
sleep 120
echo "SETPARAM HEQ0358750:1 HEQ0358750:1 SHORT_RAMPON_TIME 0.40"|nc localhost 6770
sleep 120
echo "SETPARAM HEQ0358750:1 HEQ0358750:1 SHORT_ON_TIME 5000.00"|nc localhost 6770

zwischen 19 und 24 Uhr:
echo "SETPARAM HEQ0358750:1 HEQ0358750:1 SHORT_ON_LEVEL 0.70"|nc localhost 6770
sleep 120
echo "SETPARAM HEQ0358750:1 HEQ0358750:1 SHORT_RAMPOFF_TIME 1200.00"|nc localhost 6770
sleep 120
echo "SETPARAM HEQ0358750:1 HEQ0358750:1 SHORT_RAMPON_TIME 1.40"|nc localhost 6770
sleep 120
echo "SETPARAM HEQ0358750:1 HEQ0358750:1 SHORT_ON_TIME 600.00"|nc localhost 6770

zwischen 24 und 6 Uhr
echo "SETPARAM HEQ0358750:1 HEQ0358750:1 SHORT_ON_LEVEL 0.23"|nc localhost 6770
sleep 120
echo "SETPARAM HEQ0358750:1 HEQ0358750:1 SHORT_RAMPOFF_TIME 3.00"|nc localhost 6770
sleep 120
echo "SETPARAM HEQ0358750:1 HEQ0358750:1 SHORT_RAMPON_TIME 3.00"|nc localhost 6770
sleep 120
echo "SETPARAM HEQ0358750:1 HEQ0358750:1 SHORT_ON_TIME 500.00"|nc localhost 6770

Nachts habe ich also ein dunkles Licht (wenn mal jemand ins Bad geht)
Abends nutze ich das ganze als Einschlaflicht für die kinder

die 3 o.g. Scripte habe ich in die Crontab eingetragen (auf der fritz.box, die sowieso immer an ist, ich habe dies nicht rein auf der CCU laufen, da ich da System.Exec-Befehle für bräuchte, mit denen ich nur schlechte Erfahrungen mache)

Das ganze ist sehr simpel, natürlich kann man es auch schöner mit der neuen HMRPC FHEM-Anbindung oder ganz anders machen, aber für mich reicht es so und es läuft.

Was eben leider gar nicht geht ist, dass man die fest verdrahteten Taster für etwas anderes nutzt. Das ist echt ein sehr negativer Punkt, da dies hardwaremässig ja total einfach gewesen wäre, hätte man das in der FW der Aktoren vorgesehen und man hat eben sehr viele dieser fest verdrahteten Taster bzw. kann leicht alte Schalter durch diese ersetzen und das sehr kostengünstig. Somit kann man ja auch leider nicht den LONG_PRESS anders auswerten.

SHP
Beiträge: 14
Registriert: 12.08.2011, 21:28

Re: Geräte Parameter ändern

Beitrag von SHP » 07.02.2012, 14:15

@ unimatrix:
Vielen Dank für die verständliche ausführung... jetzt versteh ich auch das Posting im anderen Thread ;)

Das Auslesen der Werte funktioniert bei mir nun so:
tclsh /usr/local/getparam.tcl HEQ0359149:1 HEQ0359149:1

Nur mit dem Schreiben hapert es noch:
tclsh /usr/local/setparam.tcl HEQ0359149:1 HEQ0359149:1 SHORT_ON_LEVEL real 0.50
tclsh /usr/local/setparam.tcl HEQ0359149:1 HEQ0359149:1 SHORT_ON_LEVEL float 0.50
tclsh /usr/local/setparam.tcl HEQ0359149:1 HEQ0359149:1 SHORT_ON_LEVEL 0.50

Keine dieser Varianten klappt bei mir... was ist daran noch falsch?

myoo
Beiträge: 152
Registriert: 10.03.2011, 00:47
System: Alternative CCU (auf Basis OCCU)
Wohnort: Thüringen

Re: Geräte Parameter ändern

Beitrag von myoo » 07.02.2012, 14:41

Die Beispiele von unimatrix sind für die "Middleware" HMCompanion - du nutzt aber ein tcl-Script direkt auf der CCU.

Der Aufruf für das TCL-Script ist

Code: Alles auswählen

tclsh getparam <addresse> <MASTER|VALUES|LINK>
tclsh setparam <addresse> <item> <datentyp> <wert>
AFAIR ist das bei hmcompanion etwas anders - und ich glaube da gabs auch kein GETPARAM.

Edit:
Konkret bedeutet das, daß du mit dem originalen setparam TCL-Script nicht in HEQxxxxxx (dein 2ter Parameter) schreiben kannst, weil ich auf die Schnelle der Meinung bin, das im originalen setparam.tcl-Script der Parameter MASTER fest eingetragen ist. Und da müsste bei dir der zweite Parameter HEQxxxxxx rein.
-> Da muss also erst das setparam.tcl Script etwas angepasst werden, daß man dort einen weiteren Parameter (MASTER,VALUES,LINK,?EQxxxxxx,...) mit übergeben kann.

Edit2: 8)

Auf die Schnelle & ohne es ausprobieren zu können - probier als setparam.tcl mal

Code: Alles auswählen

#
# tclsh setparam <addresse> <mode?> <item> <datentyp> <wert>
# z.B.
# tclsh setparam GEQ004711:2 MASTER MODE_TEMPERATUR_REGULATOR int 1
#
load tclrpc.so
set item [lindex $argv 2]
set datatype [lindex $argv 3]
set val [lindex $argv 4]
set cmd "{$item {$datatype $val}}"
xmlrpc http://127.0.0.1:2001/ putParamset [list string [lindex $argv 0]] [lindex $argv 1] [list struct $cmd]
Raspberry 3B+ mit SSD, PiVCCU2 & ioBroker, CentOS, influxDB, Grafana, ...

SHP
Beiträge: 14
Registriert: 12.08.2011, 21:28

Re: Geräte Parameter ändern

Beitrag von SHP » 07.02.2012, 16:25

Ich habe das Script eingerichtet und aufgerufen.
Er scheint da nun auch irgendwie Zugriff zu haben, jedoch ist der Wert nicht wie erwartet, sondern 0.
Zudem steht nun in der Zentrale, folgende Servicemeldung:
Konfigurationsdaten stehen zur Übertragung an

Was ich bisher dazu finden konnte, dürfte diese Meldung bei meinem Dimmer eigentlich gar nicht kommen.
Wie bekomm ich das wieder weg?
Möchte ich die Parameter über die Zentrale setzen, kommt die Meldung "Die Übertragung der Daten zum Gerät konnte nicht ordnungsgemäß durchgeführt werden".

myoo
Beiträge: 152
Registriert: 10.03.2011, 00:47
System: Alternative CCU (auf Basis OCCU)
Wohnort: Thüringen

Re: Geräte Parameter ändern

Beitrag von myoo » 07.02.2012, 20:18

Ich weiß nicht, was genau du damit jetzt wo reingeschrieben hast. Aber ich könnte mir vorstellen, daß man z.Bsp. einen verkehrten Datentyp nicht ins das Gerät übertragen kann. Wenn sich das nicht korrekt überschreiben läßt und niemand anderes eine Idee hat, dann heißt der offizielle Weg wohl ein Geräte-Reset.

Und auch folgendes ist ohne Gewähr !
Wenn du Spaß am basteln hast, so sind unter /usr/local/etc/config/rfd/ die xml Konfigurationsdaten der Geräte zu sein. Einträge mit config="dirty" (o.ä.) sind scheinbar Konfigurationsdaten, die zur Übertragung anstehen. Allerdings nützt dir das nicht sehr viel, wenn du nicht weißt, wie die Daten dort vorher ausgesehen haben oder ggf. einen falschen/fehlerhaften Eintrag identifizieren kannst (Backup ?). -> Daher solltest du - meiner Meinung nach - den Geräte-Reset vorziehen.
Raspberry 3B+ mit SSD, PiVCCU2 & ioBroker, CentOS, influxDB, Grafana, ...

SHP
Beiträge: 14
Registriert: 12.08.2011, 21:28

Re: Geräte Parameter ändern

Beitrag von SHP » 10.02.2012, 12:54

Danke erst mal für die Tipps... bin leider heute erst wieder dazu gekommen, mich darum zu kümmern.

Also das Gerät (der DimmerAktor) ist ok soweit. Es war lediglich die Zentrale, die diese Meldung hatte. Am Aktor wurde daruch keinerlei Änderung vorgenoommen, was ja bzgl. der ausstehen den Konfigurationsübertragung von der CCU auch sinn macht.
Habe die CCU neu gestartet und dann ist die Meldung auch weg.

Werde jetzt versuchen noch rauszufinen, wie der tcl Aufruf nun aussehen muss, damit es dann auch richtig in den Aktor übertragen wird.
Werde hoffentlich gleich noch ein paar Ergebnisse posten...

SHP
Beiträge: 14
Registriert: 12.08.2011, 21:28

Re: Geräte Parameter ändern

Beitrag von SHP » 10.02.2012, 14:05

Also per telnet Verbindung habe ich folgende Befehle abgeschickt:

tclsh /usr/local/setparam.tcl HEQ0359149:1 HEQ0359149:1 SHORT_ON_LEVEL real 0.50
tclsh /usr/local/setparam.tcl HEQ0359149:1 HEQ0359149:1 SHORT_ON_LEVEL float 0.50
tclsh /usr/local/setparam.tcl HEQ0359149:1 HEQ0359149:1 SHORT_ON_LEVEL 0.50

Alle sind jedoch ohne Erfolg. In der Konsole kommen keine Fehler und in der Zentrale wird immer nur die Servicemeldung zum Warten auf die Konfigurationsübertragung angegeben.

Was mache ich denn noch falsch? Stimmt tatsächlich keiner der Datentypen? Oder ist es noch ein anderer Fehler?

Edit:
Habe auch folgenden Versucht:
tclsh /usr/local/setparam.tcl HEQ0359149:1 HEQ0359149:1 SHORT_ON_LEVEL int 50

Dieser verhält sich leicht anders. Er sorgt nicht dafür, das die CCU die Meldung anzeigt, jedoch ändern tut sich auch nix...

unimatrix
Beiträge: 99
Registriert: 28.02.2011, 15:12
Danksagung erhalten: 1 Mal

Re: Geräte Parameter ändern

Beitrag von unimatrix » 19.02.2012, 18:21

das mit dem Warten auf Konfigurationsübertragung ist IMHO kein Problem sondern das habe ich ja schonmal geschrieben wenn man es 2-3 mal hintereinander macht, dann kommt das.

ich habe auch keine Ahnung von dem TCL Script und auch nicht von TCL , daher kann ich das nicht anpassen.

Wenn das mit dem Warten kommt habe ich die Erfahrung gemacht, dass es dann eine Frage der Zeit ist (Minuten, Stunden) dass die Daten doch übertragen werden.


Ein Gedanke der mir hier kam ist auch, wie oft man eigentlich in die Geräte schreiben kann denn dort ist ja sicherlich ein EEPROM oder FLash drin und das wird nur so und soviel SChreibzyklen haben....

Antworten

Zurück zu „HomeMatic allgemein“