Geräte Parameter ändern
Moderator: Co-Administratoren
Re: Geräte Parameter ändern
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
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
Re: Geräte Parameter ändern
übrigens fällt mir gerade auf dass ich das in dem anderen Thread auch bereits erkläre, wenn man es genau liest
Re: Geräte Parameter ändern
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.
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.
Re: Geräte Parameter ändern
@ 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?
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?
-
- Beiträge: 152
- Registriert: 10.03.2011, 00:47
- System: Alternative CCU (auf Basis OCCU)
- Wohnort: Thüringen
Re: Geräte Parameter ändern
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
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:
Auf die Schnelle & ohne es ausprobieren zu können - probier als setparam.tcl mal
Der Aufruf für das TCL-Script ist
Code: Alles auswählen
tclsh getparam <addresse> <MASTER|VALUES|LINK>
tclsh setparam <addresse> <item> <datentyp> <wert>
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:
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, ...
Re: Geräte Parameter ändern
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".
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".
-
- Beiträge: 152
- Registriert: 10.03.2011, 00:47
- System: Alternative CCU (auf Basis OCCU)
- Wohnort: Thüringen
Re: Geräte Parameter ändern
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.
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, ...
Re: Geräte Parameter ändern
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...
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...
Re: Geräte Parameter ändern
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...
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...
Re: Geräte Parameter ändern
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....
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....