Wie erstelle ich eine DIMM-Up / DIMM-Down Funktion für einen Slider?

Begonnen von 16-BitMan, 15 Oktober 2018, 13:46:23

Vorheriges Thema - Nächstes Thema

16-BitMan

Hallo,

dies ist mein erster Post also entschuldige ich mich schon vorweg für evtl. fehlende Angaben ;).

Ich habe folgendes Anliegen:

Ich habe ein Wemos D1 Mini mit ESPEasy und dem DMX-Plugin am laufen. Ich kann über FEHM die entsprechenden Kanäle per Dummy und einer setlist auswählen. Mit einem slider stelle ich dann Werte von 0 bis 255 ein. Ein Notify greift diese Eingabe auf, formatiert sie und löst dann bei dem Device die jeweilige Funktion aus. Soweit so gut... Nun möchte ich aber gerne das Licht langsam auf einen bestimmten Wert hoch dimmen. (am liebsten mit der gleichen Syntax wie bei dem RGB Plugin.

bsp. "set Scheinwerfer_1 100 [Dimmwert] 10 [in Sekunden]
Ich denke dies lässt sich über eine doif Schleife realisieren oder? Allerdings habe ich keine Pearl Kenntnisse und bin auch nach Stundenlangem Probieren nicht auf die richtige Schreibweise gestoßen...

Meine definitionen in Fhem sehen wie folgt aus...

dummy:

defmod DMX_Test dummy
attr DMX_Test eventMap Rot:1 Grün:2 Blau:3 DIMM:4 STROBO:5
attr DMX_Test room DMX
attr DMX_Test setList Off Rot:slider,0,1,255 Grün:slider,0,1,255 Blau:slider,0,1,255 DIMM:slider,0,1,255 STROBO:slider,0,1,255

Notify:
defmod DMX_Test_notify_1 notify DMX_Test:.* set ESPEasy_Multi_Sensor_DMX_IR_IR_Receiver dmx $EVTPART0=$EVTPART1

Das DMX_Plugin im ESPEasy kennt leider keine Dimm Funktion. Hier ein Auszug aus den möglichen Befehlen

// List of DMX params:
// (a) <value>
//     DMX-value (0...255) to write to the next channel address (1...512) starting with 1
// (b) <channel>=<value>
//     DMX-value (0...255) to write to the given channel address (1...512).
// (c) <channel>=<value>,<value>,<value>,...
//     List of DMX-values (0...255) to write beginning with the given channel address (1...512).
// (d) "OFF"
//     Set DMX-values of all channels to 0.
// (e) "ON"
//     Set DMX-values of all channels to 255.
// (f) "LOG"
//     Print DMX-values of all channels to log output.

// Examples:
// DMX,123"   Set channel 1 to value 123
// DMX,123,22,33,44"   Set channel 1 to value 123, channel 2 to 22, channel 3 to33, channel 4 to 44
// DMX,5=123"   Set channel 5 to value 123
// DMX,5=123,22,33,44"   Set channel 5 to value 123, channel 6 to 22, channel 7 to33, channel 8 to 44
// DMX,5=123,8=44"   Set channel 5 to value 123, channel 8 to 44
// DMX,OFF"   Pitch Black

Hat jemand eine Idee für eine Lösung?

LG

16-BitMan

Hallo, hat keiner eine Idee oder einen Tip für mich?


Gesendet von iPhone mit Tapatalk

CoolTux

Dieses langsame Dimmen oder auch Ramp wird entweder von der Hardware oder durch das FHEM Modul für die jeweilige Hardware gelöst.
Wenn Du in ein Notify eine Schleife ein baust und hier mit Perl sleep arbeitest, dann verzögerst Du den FHEM Hauptprozess um genau dieses Sleep und FHEM steht.
Eine Lösung wäre das ganze als kompletten FHEM Befehlsstring mit FHEM sleep zusammen zu setzen oder mit der Fuktion InternalTimer zu arbeiten.
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

Byte09

Ich könnte dir dafür eine mswitch Lösung anbieten , bräuchte aber ein List des zu schaltenden devices.

Gruss Byte09

Gesendet von meinem SM-G900F mit Tapatalk


16-BitMan

Danke für die Vorschläge CoolTux und Byte09. Sorry für die späte Rückmeldung, ich war im Urlaub.

FHEM für die Dimm Zeit zu pausieren möchte ich nicht. Ich denke MSwitch wäre eine Möglichkeit...

Ist das den Praktikabel oder eher umständlich?

LG




Gesendet von iPhone mit Tapatalk

Byte09

Zitat von: 16-BitMan am 29 Oktober 2018, 22:58:57
Danke für die Vorschläge CoolTux und Byte09. Sorry für die späte Rückmeldung, ich war im Urlaub.

FHEM für die Dimm Zeit zu pausieren möchte ich nicht. Ich denke MSwitch wäre eine Möglichkeit...

Ist das den Praktikabel oder eher umständlich?

LG

ich habe lelider die von dir genutzte hardware nicht im einsatz , daher bitte mal ein list des devices.
ich brauche den genauen Befehl, der leztendlich bei deinem device einen best. Dimmwert setzt, sowie ein Reading , das den aktuellen Dimmwert des Devices beinhaltet .

gruss Byte09

gruss Byte09






Gesendet von iPhone mit Tapatalk