Wie Register setzen mit HMCCU?

Begonnen von Prof. Dr. Peter Henning, 30 Januar 2023, 10:25:00

Vorheriges Thema - Nächstes Thema

Prof. Dr. Peter Henning

Ich habe diverse HM-Schaltaktoren vom Typ HM-LC-Sw1-Ba-PCB in Betrieb (Funkschalter mit Batteriebetrieb, 5-15V Spannung).

Wenn ich die Schwelle für die "battery low"-Meldung von standardmäßig 10,5 V auf 5 V heruntersetzen will, geht das mit den "alten" Interfaces per
set <device> regSet lowBatLimitBA 5.0

Mit einer HMCCU, die das Device in FHEM anlegt als HM_LC_Sw1_Ba_PCB_NEQ0602382, erhalte ich bei
get HM_LC_Sw1_Ba_PCB_NEQ0602382 config
ZitatDevice NEQ0602382
  Channel 1 [MASTER]
    AES_ACTIVE = 0
  Channel d [MASTER]
    DEVICE_LED_MODE = 1
    LOW_BAT_LIMIT = 10.5

Das Kommando
get <device> paramsetDesc liefert
ZitatDevice
  Paramset MASTER
    DEVICE_LED_MODE: ENUM [R,W] [Visible,Sticky] RANGE=0...1 DFLT=0 VALUES=OFF,ON
    LOW_BAT_LIMIT: FLOAT [R,W] [Visible,Sticky] RANGE=5...15 DFLT=10.5 UNIT=V
Channel 0
...

Also gebe ich ein
set HM_LC_Sw1_Ba_PCB_NEQ0602382 LOW_BAT_LIMIT=5.0
und erhalte aber nur die Fehlermeldung
ZitatHMCCUCHN: HM_LC_Sw1_Ba_PCB_NEQ0602382 Invalid parameter specified

Ich habe schon alle möglichen Kombinationen ausprobiert, auch mit angehängtem":FLOAT", mit und ohne Einheit "V". Bisher kein Ergebnis.

Vlt. könnte mir jemand auf die Sprünge helfen, weder in der CommandRef, noch im Wiki, noch in irgendeiner anderen Hilfeanleitung habe ich etwas dazu gefunden.

Na, und natürlich stellt sich die Frage, ob (und wenn ja wie) man das ggf. direkt in der Weboberfläche einer RaspberryMatic einstellen kann.

LG

pah

juemuc

Hallo pah,

ich nutze die pivccu. Diese stellt auch eine CCU3-Oerfläche bereit. Hier kann ich die Werte über "Einstellen/Geräte/Einstellen" verändern.

Viele Grüße
Jürgen
3x Sonos Play 1, 1x Sonos Arc + Sub, 1 Sonos-One, 1x Sonos Playbar
FB6690 + FB7490 mit 4x Dect 200 und 3 Dect-ULE-Thermostate,  raspberry3B+, HM Funkmodul HM-MOD-RPI-PCB, HM Klingelsensor HM-Sen-DB-PCB, HM (IP) Fensterkontakte und  Amazon Echo Dot,  piVCCU, pi OS (bookworm).

Prof. Dr. Peter Henning

Das sollte auch in der RaspberryMatic so gehen - und siehe da, nach längerem Suchen habe ich die Checkbox gefunden, die standardmäßig voreingestellt ist auf "DevConfig Knopf verbergen".

Damit geht es also, das löst aber immer noch nicht das Problem mit dem HMCCU-Modul.

LG

pah

zap

#3
Du musst HMCCU bzw. HMCCUCHN sagen, ob ein Config-Parameter oder ein Datenpunkt gesetzt werden soll. Die entsprechenden Befehle lauten "set datapoint" und "set config". LOW_BAT_LIMIT ist ein Config-Parameter. Außerdem gehört er zum Device, nicht zu einem Kanal.

Bei einem HMCCUCHN Device lautet der Befehl:

set HM_LC_Sw1_Ba_PCB_NEQ0602382 config device LOW_BAT_LIMIT=5.0

Man muss hier HMCCUCHN sagen, dass es ein Geräteparameter ist. Per Default bezieht sich der "set config" Befehl bei HMCCUCHN auf den Kanal, den das HMCCUCHN Device repräsentiert.

Bei einem HMCCUDEV Device würde der Befehl so aussehen:

set HM_LC_Sw1_Ba_PCB_NEQ0602382 config LOW_BAT_LIMIT=5.0

Hier entfällt "device", da bei HMCCUDEV Devices bei Kanalparametern die Kanalnummer angegeben werden muss, d.h. Default ist hier die Zuordnung des Parameters zum Gerät.

Bei gerätebezogenen Parametern ist die Syntax bei HMCCUDEV also etwas einfacher, da das "device" entfällt. Dafür sind die Befehle bei kanalbezogenen Parametern bei HMCCUCHN einfacher, denn HMCCUCHN definiert ja schon den Kanal, also z.B.

set myHMCCUCHNDev config PAR=Val

und (für einen Parameter in einem HMCCUDEV in Kanal 5):

set myHMCCUDEVdev config 5 PAR=val
2xCCU3, Fenster, Rollläden, Themostate, Stromzähler, Steckdosen ...)
Entwicklung: FHEM auf AMD NUC (Ubuntu)
Produktiv inzwischen auf Home Assistant gewechselt.
Maintainer: FULLY, Meteohub, HMCCU, AndroidDB

Prof. Dr. Peter Henning

OK, danke für die ausführliche Antwort. Damit verstehe ich auch den CommandRef-Eintrag, das passt soweit und funktioniert auch.

Nun bilde ich mir ein, nicht ganz ungeübt zu sein. Schlussfolgerung: Wenn ich das nicht kapiere, wird das sicher anderen auch so gehen. Mein Vorschlag daher: Erstens den CommandRef-Eintrag so überarbeiten, dass er etwas einfacher zu lesen ist. Beispielsweise aus der ersten Zeile drei machen
Zitatset <name> config <parameter>=<value>[:<type>] for channel parameters[...]
set <name> config device  <parameter>=<value>[:<type>] for device parameters[...]
set <name> config <receiver>  <parameter>=<value>[:<type>] [...] for receiver parameters

Zweitens: Die ausführliche Erklärung aus dem vorigen Post ins Wiki stellen.

LG

pah