Willkommen auf unserer neuen Forenplattform für das Bus-Profi Forum

Neue Felder für die persönlichen Daten
Man kann jetzt seine öffentlich einsehbare Daten genau bestimmen. Details findet ihr in in diesem Beitrag.

Durch die neue Forensoftware und die Portierung der Daten konnten die Passwörter aus dem alten Forum nicht übernommen werden, bitte lassen Sie sich ein neues Passwort über die Passwort vergessen Funktion zusenden. Sollte es zu Problemen kommen kontaktieren Sie das Bus-Profi Team per E-Mail.

Rollläden an Ausgängen über Domiq positionieren

Hard- und Softwarefragen rund Domiq-Module fürs LCN-System
Benutzeravatar

Themenersteller
Beleuchtfix
Administrator
Administrator
Beiträge: 5284
Registriert: Mi 10. Jan 2007, 18:49
Hat sich bedankt: 3 Mal
Danksagung erhalten: 15 Mal
Kontaktdaten:

#1 Rollläden an Ausgängen über Domiq positionieren

Beitragvon Beleuchtfix » Fr 29. Mär 2013, 19:35

Im LCN System ist keine Möglichkeit vorgesehen, Rollläden über Ausgänge zu positionieren. Mit folgenden Funktionen und Events ist es möglich, eine Positionierung relativ genau zu steuern.

Inzwischen gibt es ein zweites Modul, dass Rollläden an Relais positioniert.

Die Hauptfunktionen sind universell und können für alle Rollläden gleichzeitig genommen werden. Einige Events und Hilfsfunktionen müssen aber für jeden Rollladen einzeln angelegt werden.

Zunächst bestimmt man Laufzeiten des Rollladens getrennt für auf und ab (Beispielhaft für Modul 91 und 121) und trägt sie in die Datei user.lua (Domiq im Tab Logic)ein. Alle Werte werden in Millisekunden angegeben.

Code: Alles auswählen

-- Laufzeiten der Rollläden
set ('t_auf.91',15000)  --SZ
set ('t_ab.91',14500)

set ('t_auf.121',15900) --Bibl.
set ('t_ab.121',15000)

Das LCN Modul muss als Motorschalter mit Zeitbegrenzung eingestellt sein. Die Endlagen werden immer über auf oder ab Befehl angefahren, wenn der Modulausgang noch 2% ist, ist die Endlage erreicht und der Rollladen definiert in der Endlage. Bei Zwischenpositionen erfolgt nach der errechneten Fahrzeit ein Stop Befehl. Ist die Ausgangslage nicht bekannt (z.B. wurde der Rollladen nicht positioniert sonder von Hand gesteuert) dann wird über Endlage, die der gewünschten Position am nahesten liegt, gefahren. Ist die Position zu ungenau, kann man auch ein Fahren über die Endlagen erzwingen.

Die Position kann z.B. in Remote angezeigt werden.

Der eigentlich Einstieg geht immer über die nachfolgende Funktion, Übergabewerte sind die Modulnummer, die gewünschte Position (0=offen, 100 = geschlossen) und ein Zwangssteuerungswert (0= normal, 1 = Fahrt über die Endlagen)

Code: Alles auswählen

function roll_pos(mod,pos,force) -- position 100 = geschlossen, 0 = offen, modul , Zwangssteuerung über Endlage
   local t_auf = get('t_auf.'..mod)
   local t_ab = get('t_auf.'..mod)
   local position = get ('VAR.roll_position.'..mod)
   local oben = get('LCN.output.0.'..mod..'.1')
   local unten = get('LCN.output.0.'..mod..'.2')
   local position_alt = get ('VAR.roll_position.'..mod)
   local b = type(position_alt)
   if (b ~= 'number' or force > 0) then
      position_alt = 'n/a'
   end
   if (oben == 2 ) then
      position_alt = 0
      roll_pos_absolut(mod,pos)
      set ('VAR.roll_position.'..mod,pos)
   elseif unten == 2 then
      position_alt = 100
      roll_pos_absolut(mod,pos)
      set ('VAR.roll_position.'..mod,pos)
   elseif position_alt == "n/a" then
      roll_pos_absolut(mod,pos)
   else -- Zwischenposition direkt anfahren
      relpos = pos - position_alt
      if relpos >0 then
         delay_ab = ((t_ab/100)*(relpos))   
         command ('C.LCN.output.0.'..mod..'.2=100')
         command ('DELAY.'..delay_ab..'ms.C.LCN.output.0.'..mod..'.2=0')
         set ('VAR.roll_position.'..mod,pos)         
      elseif relpos = 96 then
      command ('C.LCN.output.0.'..mod..'.2=100')
   elseif pos =40 then
      -- über unteren Stop
      command ('C.LCN.output.0.'..mod..'.2=100')
      command ('DELAY.'..(t_ab+1000)..'ms.C.LCN.output.0.'..mod..'.1=100') -- unten
      command ('DELAY.'..(t_ab+1000+delay_auf)..'ms.C.LCN.output.0.'..mod..'.1=0')
   else -- über oberen Stop
      command ('C.LCN.output.0.'..mod..'.1=100')
      command ('DELAY.'..(t_auf+1000)..'ms.C.LCN.output.0.'..mod..'.2=100') -- unten
      command ('DELAY.'..(t_auf+1000+delay_ab)..'ms.C.LCN.output.0.'..mod..'.2=0')
   end
   command ('DELAY.'..(t_auf*1.5)..'ms.C.LOGIC=roll_set_value('..mod..','..pos..')')
end


Funktion gibt die Position aus und schreibt sie in eine Variable.

Code: Alles auswählen

function roll_set_value(mod,pos)
   set ('VAR.roll_position.'..mod,pos)
   local textvalue = tostring(pos)..'%'
   set ('VAR.roll_position.text.'..mod,textvalue)
end


Folgende Funktion ist für jeden Rollladen notwendig, da sie automatisch durch einen Event aufgerufen wird.

Code: Alles auswählen

function roll_91_flag:onchange(new) --SZ
   if (new == 'n/a') then
      set ('VAR.roll_posflag.91',1)
   else
      set ('VAR.roll_posflag.91',0)
   end
end

function roll_121_flag:onchange(new) -- Bibl
   if (new == 'n/a') then
      set ('VAR.roll_posflag.121',1)
   else
      set ('VAR.roll_posflag.121',0)
   end
end

Funktion die aufgerufen wird, wenn sich der Rollladen bewegt und damit die Position ungewiss ist.

Code: Alles auswählen

function roll_na(mod,motor) -- Position + Text speichern,
   local x = get('LCN.output.0.'..mod..'.'..motor)
   local value
   local textvalue
--   print ('Modul: '..mod..' Pos: '..x..' Motor: '..motor)
   if motor == 1 then -- auf
      if x == 2 then
         value = 0
         textvalue = 'oben'
      else
         value = 'n/a'
         textvalue = 'n/a'
      end
   else -- motor 2 ab
      if x == 2 then
         value = 100
         textvalue = 'unten'
      else
         value = 'n/a'
         textvalue = 'n/a'         
      end
   end
   -- speichern und Umwandlung Text
   set ('VAR.roll_position.'..mod,value)
   set ('VAR.roll_position.text.'..mod,textvalue)
   
end

Jetzt brauchen wir noch für jeden Rollladen 2 Events, die feststellen, ob der Motor in Betrieb ist.

Code: Alles auswählen

Beschreibung: SZ.Position1
Kanal: E.LCN.output.0.91.1
Befehl:
   Name: C.LOGIC
   Wert: roll_na(91,1)

Beschreibung: SZ.Position2
Kanal: E.LCN.output.0.91.2
Befehl:
   Name: C.LOGIC
   Wert: roll_na(91,2)

In Remote erzeugt man nun eine Taste mit z.B. folgendem Befehl:

Code: Alles auswählen

Label: Lüften
Befehl:
   Name: C.LOGIC
   Wert: roll_pos(91,80,0) -- Fährt den Rollladen des Moduls 91 auf Position 80%


Zur Anzeige der Position erzeugt man ein Textfeld

Code: Alles auswählen

Kanal: VAR.roll_position.text.91


Jetzt viel Spaß mit euren Rollläden :)
[edit]Link zu Rollläden an Relais[/edit]


Franky
Fingerwundschreiber
Fingerwundschreiber
Beiträge: 215
Registriert: Sa 2. Jan 2010, 19:35

#2 RE: Rollläden an Ausgängen über Domiq positionieren

Beitragvon Franky » Sa 30. Mär 2013, 14:43

Das ist perfekt! Super umgesetzt Florian. :thumbup:

Cool wäre es noch, hiermit Rolläden an Relaisausgängen ohne BS4 zu positionieren. :)

Benutzeravatar

Themenersteller
Beleuchtfix
Administrator
Administrator
Beiträge: 5284
Registriert: Mi 10. Jan 2007, 18:49
Hat sich bedankt: 3 Mal
Danksagung erhalten: 15 Mal
Kontaktdaten:

#3 RE: Rollläden an Ausgängen über Domiq positionieren

Beitragvon Beleuchtfix » Sa 30. Mär 2013, 15:26

Darüber habe ich auch schon nachgedacht, ich habe aber nur einen einzigen Rollladen an einem Relais, der auch noch wenig benutzt wird. Dazu gibt es ein BS4, was ich inzwischen gegen eine LinHK Positionierung ausgetauscht habe. Also richtigen Druck habe ich momentan nicht. Ich lass das mal in meinem Kopf arbeiten, vielleicht kommt dann plötzlich eine Geistesblitz.

Gruß
Florian


Matthias_@_Home
Fingerwundschreiber
Fingerwundschreiber
Beiträge: 129
Registriert: Sa 9. Feb 2008, 13:58

#4 RE: Rollläden an Ausgängen über Domiq positionieren

Beitragvon Matthias_@_Home » So 31. Mär 2013, 11:12

Genial :thumbup:

mit etwas Glück werde ich nächste Woche die frisch eingetroffene Wetterstation montieren und dann versuchen die Rolladenpositionierung für die Verschattung zu nutzen (ich hoffe, diese Funktion gibt es schon....)

Da in den Kinderzimmern (Mittagsschalf) ein manuell geschlossenes Rollo zwingend unten bleiben soll, kann man den o.g. Status doch sicher dazu nutzen ein Rollo von der Verschattung auszugrenzen oder?

Rollo geschlossen = keine Verschattung
Rollo offen oder in einer Position = Verschattung ....


Mfg
Matthias


norden
Fleißiges Mitglied
Fleißiges Mitglied
Beiträge: 269
Registriert: Do 20. Nov 2008, 07:46

#5 RE: Rollläden an Ausgängen über Domiq positionieren

Beitragvon norden » So 31. Mär 2013, 12:48

Hallo Florian,

:thumbup: sieht klasse aus. Habe leider keine Rollläden, hätte das aber sonst sicher genutzt.

Österliche Grüße
Dieter

Benutzeravatar

Themenersteller
Beleuchtfix
Administrator
Administrator
Beiträge: 5284
Registriert: Mi 10. Jan 2007, 18:49
Hat sich bedankt: 3 Mal
Danksagung erhalten: 15 Mal
Kontaktdaten:

#6 RE: Rollläden an Ausgängen über Domiq positionieren

Beitragvon Beleuchtfix » So 31. Mär 2013, 14:06

ich benutze für so etwas entweder dynamische Gruppen und Tastensperren.

Gruß
Florian


Zurück zu „Domiq-Module - DOMIQ Sp. z o.o.“

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 8 Gäste