'commands' Attribut: set Befehl mit Slider

Begonnen von huri-kane, 15 April 2019, 15:45:14

Vorheriges Thema - Nächstes Thema

huri-kane

Hallo zusammen,

ich habe mir eine readingsGroup erstellt, welche die Readings eines Device' anzeigt (wer hätte das gedacht  ::)?). Allerdings gibt es in diesem Device keinen dem Reading äquivalenten "set"-Befehl. Nun möchte ich in der readingsGroup den Wert gerne direkt änderbar machen, im konkreten Fall mit einem Slider. Dazu kommt natürlich das commands-Attribut in Frage:


define myRg readingsGroup myDevice:v00091
attr myRg commands
{
  'v00091' => 'v00091:slider,30,15,180'
}


Das Ergebnis sieht erst einmal so aus wie gewollt. Allerdings führt eine Änderung des Sliders zum Befehl:

set myDevice v00091 30


...und den gibt es bei "myDevice" nicht (entsprechend poppt eine Fehlermeldung auf "Unknown argument v00091, choose one of Register"). Korrekt müsste er nämlich lauten:

set myDevice Register v00091=30



Ich habe nun ehrlich gesagt keinerlei Ideen, wie man das gescheit realisieren könnte und erhoffe mir daher von dem einen oder anderen einen kleinen Denkanstoß. Alles über ein Dummy zu realisieren, welches die Werte letztlich nur dupliziert aber dafür direkten "set-Zugriff" bietet, halte ich irgendwie nicht für sinnvoll.

Viele Grüße
André

hugomckinley

Hallo Andre,
ich nehme an du willst etwas in ein Register deiner KWL schreiben ;-)

Zwei Punkte sind dabei zu beachten:
- Du brauchst setreading anstatt set
- Dieses setreading ändert aber an der Anlage nichts. Du musst es per Modbus noch übertragen. Schau dir in meinem Script die Funktion helios_rg($) (ganz hinten im Script) an.
Dort wird das durch helios_reg($$$) erledigt.

In der Readingsgroup ist definiert, wie diese Funktion verwendet wird. Ob das mit einem Slider auch geht, kann ich leider nicht sagen.

Ich hoffe damit geholfen zu haben.

Gruß,
Hugo
----------------------------------------------------
FHEM in TrueNAS-Jail
HMLGW + HM-Komponenten, alexa-fhem, Modbus/TCP, Modbus/RS485, LG-WebOS, Firmata, 1wire, ESP-RGBWW, DaikinAC per WLAN, Shellys, Denon AVR, Fronius WR, Helios Wohnraumlüftung, ...

huri-kane

Hallo Hugo,

danke für Deinen Kommentar.

Zitat
ich nehme an du willst etwas in ein Register deiner KWL schreiben ;-)

Treffer ;) Genau genommen möchte ich den Partymodus gerne via FHEMWEB steuerbar haben -> siehe Bild.

Du hast recht, im Idealfall erledige ich den Modbus-Zugriff über Deine helios_reg()-Funktion*, welche gerne auch über eine Hilfsfunktion gerufen wird (analog zu der Verrenkung mit "helios_rg()" und dessen entsprechendes notify ::)). Allerdings scheitere ich noch immer an der Kombination mit einem Slider bzw. anderen FHEMWEB-Eingabeelementen. Sobald der Eintrag im "commands"-Attribut nur minimal von der "Standard-Notation" (also '<reading>' => '<set-Wert>:slider,a,b,c') abweicht, verschwindet der Slider.

Ist es überhaupt möglich im commands-Attribut mit UI-Elementen Perl-Befehle oder irgend ein FHEM-Befehl abseits von "set" auszuführen? In der commandref ist diesbezüglich nämlich nix erwähnt. Ich tu mich allerdings auch schwer, den Code der ReadingsGroup (33_readingsGroup.pm) zu verstehen, da dieser leider recht wenig kommentiert ist.

Ideen sind also weiterhin willkommen.


Grüße
André

--

* Siehe https://forum.fhem.de/index.php?topic=74788