Hallo,
Habe meine erste Logic fertig und möchte die für andere bereitstellen.
Ist nur ein einfacher RGB Fader der solang das watch_item aktiv ist die drei Grundfarben durchfadet.
Bin Python Anfänger und beruflich komm ich aus der SPS welt, deshalb hätte ich gern Feedback ob das so passt.
logic.conf
über die Parameter stepping und Timedelta kann man die Länge eines Fadevorganges einstellen und mit next_step nach wievielen Sekunden der nächste startet
sequencer.py
item.conf (Einrückungen Passen nicht)
Funktioniert bis jetzt in meiner Testumgebung sehr gut nur hätte ich gern eine Meinung von den Erfahrenen Programmierern dazu.
Danke und lg
Rudi
Habe meine erste Logic fertig und möchte die für andere bereitstellen.
Ist nur ein einfacher RGB Fader der solang das watch_item aktiv ist die drei Grundfarben durchfadet.
Bin Python Anfänger und beruflich komm ich aus der SPS welt, deshalb hätte ich gern Feedback ob das so passt.
logic.conf
Code:
[seq1] filename = sequencer.py watch_item = tb.licht.seq1 channel_items = tb.licht.rgb.r, tb.licht.rgb.g, tb.licht.rgb.b stepping = 2 timedelta = 0.02 next_step = 6
sequencer.py
Code:
#!/usr/bin/env python # step = trigger['value'] on = 255 off = 0 stepping = int(logic.stepping) timedelta = float(logic.timedelta) next_step = int(logic.next_step) id = logic.name next_time = sh.now() + dateutil.relativedelta.relativedelta(seconds=next_step) items = logic.channel_items if sh.return_item(logic.watch_item[0])() : #wenn watch_item gesetzt ist startet Ablauf (1-2-3-4-2-3-4-2-3-4-.....) if step == 1: sh.return_item(items[0]).fade(on,stepping,timedelta) step = 2 elif step == 2: sh.return_item(items[1]).fade(on,stepping,timedelta) sh.return_item(items[0]).fade(off,stepping,timedelta) step = 3 elif step == 3: sh.return_item(items[2]).fade(on,stepping,timedelta) sh.return_item(items[1]).fade(off,stepping,timedelta) step = 4 elif step == 4: sh.return_item(items[0]).fade(on,stepping,timedelta) sh.return_item(items[2]).fade(off,stepping,timedelta) step = 2 sh.scheduler.change(id, next=next_time, value=step) #nächsten Aufruf setzen else: for i in items: sh.return_item(i)(off)
Code:
[[[rgb]]] name = Ambiant Light type = bool visu = yes sv_widget = " {{ basic.colordisc('item', 'item.r', 'item.g', 'item.b') }} {{ basic.checkbox('tb.licht.seq1', 'tb.licht.seq1','sequenz1') }} " [[[[r]]]] type = num visu = yes dmx_ch = 0 [[[[g]]]] type = num visu = yes dmx_ch = 1 [[[[b]]]] type = num visu = yes dmx_ch = 2 [[[seq1]]] type = num visu = yes
Danke und lg
Rudi
Kommentar