Autor Thema: Jalousiesteuerung im vollen Umfang  (Gelesen 2520 mal)

Offline JoeALLb

  • Hero Member
  • *****
  • Beiträge: 1544
Antw:Jalousiesteuerung im vollen Umfang
« Antwort #15 am: 06 Mai 2019, 14:35:42 »
nachtrag:

Ein
set EG.Essz.Jalousie.TerrasseLinks.Position Pos.Absolute50 sollte funktionieren...
FHEM-Server auf IntelAtom+Debian (8.1 Watt), KNX,
RasPi-2 Sonos-FHEM per FHEM2FHEM,RasPi-3 Versuchs-RasPi für WLAN-Tests
Gateways: DuoFern Stick, CUL866 PCA301, CUL HM, HMLan, JeeLink, LaCrosse,VCO2
Synology. Ardurino UNO für 1-Wire Tests, FB7270

Offline superverbleit

  • New Member
  • *
  • Beiträge: 5
Antw:Jalousiesteuerung im vollen Umfang
« Antwort #16 am: 15 Mai 2019, 20:58:02 »
Hallo Zusammen,

nach längerem hin und her habe ich es jetzt folgendermaßen gelöst.

Device für die Position inklusive Slider:
define EG.Essz.Jalousie.TerrasseLinks.Position KNX 2/1/109:dpt5.001:Pos.Status 2/4/102:dpt5.001:Pos.Absolute:nosuffix
attr EG.Essz.Jalousie.TerrasseLinks.Position group Jalousien
attr EG.Essz.Jalousie.TerrasseLinks.Position room Wohnbereich
attr EG.Essz.Jalousie.TerrasseLinks.Position webCmd Pos.Absolute
attr EG.Essz.Jalousie.TerrasseLinks.Position widgetOverride Pos.Absolute:slider,0,1,100
attr EG.Essz.Jalousie.TerrasseLinks.Position icon fts_shutter_updown

Dann gibt es ein zusätzliches Device, das ich nur für mein notify brauche und somit einfach dem Raum hidden zugewiesen:
define EG.Essz.Jalousie.TerrasseLinks.PosStatus KNX 2/1/109:dpt5.001:Pos.Status
attr EG.Essz.Jalousie.TerrasseLinks.PosStatus room hidden

Dieses Device wird nach jeder Fahrt vom Aktor aktualisiert.

Damit jetzt auch eine Änderung des Sliders über ein Wandtaster funktioniert, habe ich mir folgendes notify gebaut:
define x_EG.Essz.Jalousie.TerrasseLinks.Position notify EG.Essz.Jalousie.TerrasseLinks.Position {
   my $i=Value("EG.Essz.Jalousie.TerrasseLinks.Position");
   if(Value("EG.Essz.Jalousie.TerrasseLinks.Position_T")) {fhem("delete EG.Essz.Jalousie.TerrasseLinks.Position_T")};
   fhem("define EG.Essz.Jalousie.TerrasseLinks.Position_T at +00:00:01 setreading EG.Essz.Jalousie.TerrasseLinks.Position Pos.Absolute $i")
}
Mit jeder Statusänderung wird der Statuswert ausgelesen und übe setreading EG.Essz.Jalousie.TerrasseLinks.Position Pos.Absolute zugewiesen.
Setreading aktualisert nur den Wert des Sliders und sendet keine aktionen an den Bus.
Damit der Slider auch im Browser aktualisiert wird, wird einfach ein Dummy define angelegt. Hab ich mal so in einem anderen Beispiel abgeschaut.
Andernfalls wird nur der State aktualisiert und nicht der Slider.
Da gibts vermutlich auch bessere Lösungen, hab aber leider keine gefunden. Vielleicht kann mir da einer einen alternativen Weg zeigen.

Vielen Dank dann mal für eure Unterstützung.

Gruß Stefan

 

Offline JoeALLb

  • Hero Member
  • *****
  • Beiträge: 1544
Antw:Jalousiesteuerung im vollen Umfang
« Antwort #17 am: 16 Mai 2019, 08:54:57 »
Servus!
Ich würde immer noch denken, dass es einfacher wäre wenn du am Wandtaster statt "Hoch" einfach "position 0%" sendest.
(Also an die andere GA).
Dadurch würde automatisch auch das Reading "position" den richtigen Wert erhalten!!

Denoch: Das hier müsste das selbe ergebnis liefern wie dein code:, nur weniger kompliziert und mit nur einem device statt 2 + zusätzlichem AT-Device...
attr EG.Essz.Jalousie.TerrasseLinks.Position stateCmd {\
  fhem("sleep 0.1;;setreading $name Pos.Absolute ".ReadingsVal($name,"Pos.Status",""));;\
}

sG
Joe
FHEM-Server auf IntelAtom+Debian (8.1 Watt), KNX,
RasPi-2 Sonos-FHEM per FHEM2FHEM,RasPi-3 Versuchs-RasPi für WLAN-Tests
Gateways: DuoFern Stick, CUL866 PCA301, CUL HM, HMLan, JeeLink, LaCrosse,VCO2
Synology. Ardurino UNO für 1-Wire Tests, FB7270