KNX MDT Rolladen

Begonnen von Iceman1983, 23 Januar 2018, 17:00:10

Vorheriges Thema - Nächstes Thema

Iceman1983

Hallo Bin glaub ich zu blöd um das hin zu bekommen! Hab einen MDT Jalousieaktor der mit dem Fhem verbunden ist! rauf und runter fahren ist kein problem aber ich bekomm die absolut position einfach nicht zu sehen!!

define RolloBuro KNX 1/0/0:dpt1.008 1/0/1:dpt5.001:wert
attr RolloBuro IODev KNX
attr RolloBuro eventMap /on:runter/off:rauf
attr RolloBuro icon fts_shutter
attr RolloBuro stateCmd {$state = sprintf("%s", ReadingsVal($name,"getG2",""))}

es werden immer nur 50% angezeigt! in der ETS5 seh ich aber den Wert von 1/0/1 schön in prozent! ist ein dpt5.001
kann mir da jemand helfen?

KernSani

Hi,

Wahrscheinlich kann die eher jemand im KNX/EIB Unterforum weiter helfen (Verschieben Button ganz unten links) und: Bitte code tags verwenden (das # oben über den Smilies) und am Besten ein "list" des Devices.

Grüße,

Oli
RasPi: RFXTRX, HM, zigbee2mqtt, mySensors, JeeLink, miLight, squeezbox, Alexa, Siri, ...

Iceman1983

Das mit dem Sollwert hab ich jetzt gelöst! aber gibt es jetzt die möglichkeit je nach wert ein icon anzuzeigen?

Thomas B

Ich habs über einen Slider gelöst. Sind zwar MDT Glastaster mit integriertem Aktor, aber sollte gleich sein.


DEF 2/3/2:dpt5.001:absolutePos 2/4/2:dpt5.001:aktuellePos
DEVNAME EG_Bur_Rol_1_Pos
IODev KNX
KNX_MSGCNT  7
KNX_RAWMSG C0220cw0240220
KNX_TIME 2018-01-25 15:39:50
LASTInputDev KNX
MSGCNT 7
NAME EG_Bur_Rol_1_Pos
NR 57
NTFY_ORDER 50-EG_Bur_Rol_1_Pos
STATE 13 %
TYPE KNX


als Attribute noch den Slider angelegt


IODev KNX deleteattr
room EG_Buero deleteattr
slider 0,1,100 deleteattr
webCmd value deleteattr


Geht sicher noch zu verbessern aber reicht mir eigentlich, da ich das ganze nur als Brücke zur SmartVISU nutze.
Da siehts dann so aus (siehe Anhang)
Runter. Hoch, links unten eine fest im Aktor eingestellte Position als Sonnenschutz (60% bei mir) und rechts unten hab ich eine Sperre, welche sich gleichzeitig als Stop nutzen lässt. Der Slider rechts läuft über das oben gepostete Device aus FHEM. Die anderen Funktionen haben jeweils ein extra Device im FHEM.


docm

Du kannst es auch über stateDevIcon realisieren. Dabei brauchst du nur eine Transformation von deinem %-Wert auf einen diskreten Wert.
Das geht mit devStateIcon der zweiten Art also in etwa so:


attr RolloBuro devStateIcon { my $wert = 10* int(0.1*ReadingsNum($name,'wert-get',0)+0.5);; ".*:fts_shutter_1w_$wert:noFhemwebLink" } 


Ich hoffe, der Code ist so korrekt. Musste "trockenschwimmen", da ich gerade nicht vor dem FHEM sitze.

Die erste Codezeile my $wert = ... sorgt dafür, dass der Readingswert von 0..100 auf die Werte 0, 10, 20, ..., 90, 100 transformiert wird.
Die Variable $name enthält standardmäßig den Namen des aktuellen Devices. Besser als ein hardcodierter Name, falls du dein Device mal umbenennst, kopierst usw. Dann musst du hier nichts ändern.
Die zweite Codezeile baut einen String der Form (Beispiel für $wert=40): ".*:fts_shutter_1w_40:noFhemwebLink"
Für alle Werte (.*) von STATE wird das Logo fts_shutter_1w_40 angezeigt.
Das Pseudokommando noFhemwebLink sorgt dafür, dass das Icon nicht klickbar ist.
-> CommandRef

Dann brauchst du das stateCmd natürlich nicht mehr, denn es wird ja jetzt das Icon gezeigt und nicht der Prozentwert.

Wenn du %Wert und Icon beides angezeigt haben willst, kenne ich einen Weg, dass du den Text über stateCmd machst und dir für das Icon ein userreading definierst, darauf dann ein widgetoverride mit Widget iconLabel anwendest und es mit webCmd anzeigst.
-> CommandRef für userreading und für widgetoverride

Viele Grüße
Andreas

moellerj

{ my $wert = 10* int(0.1*ReadingsNum($name,'state',0)+0.5);; ".*:fts_shutter_1w_".$wert.":noFhemwebLink"}