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.

Herausforderung für die Steuerung der Raffstore nach Sonnenstand

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

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

#11 RE: Herausforderung für die Steuerung der Raffstore nach Sonnenstand

Beitragvon Beleuchtfix » Fr 17. Apr 2015, 10:14

rayb hat geschrieben:Also bleibt die Frage, wo ist der Unterschied zwischen Ressoruce und LOGIC Fenster?

Auf die Idee muss man erst einmal kommen :)
Lua Code im Logic Fenster wird beim Start von Base (oder nach dem Abspeichern) ausgeführt / geladen und steht dann zur Verfügung. Du initialisiert dort z.B. Variablen und schreibst eben deine Scripte.
C.LOGIC.xxxx ruft eben eine Funktion unter Logic auf.

Ich denke, dass die Scripts unter Resource eher Base-intern benötigt werden, damit habe ich mich aber noch nicht genau beschäftigt. Ich habe nur Schaltelemente für die Visu (unter themes) und Hintergründe dort abgespeichert.

Vielleicht kann Piotr genauer erklären, was man damit macht.

Gruß
Florian

Benutzeravatar

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

#12 RE: Herausforderung für die Steuerung der Raffstore nach Sonnenstand

Beitragvon Beleuchtfix » Sa 18. Apr 2015, 11:25

Thomas, deine tolle Antwort habe ich zu dem anderen Beitrag verschoben, er beschreibt aber gut, wofür die Resourcen gut sind.

Gruß
Florian

Benutzeravatar

Thomas
Alleswisser
Alleswisser
Beiträge: 5727
Registriert: Mo 21. Apr 2008, 20:03
Hat sich bedankt: 19 Mal
Danksagung erhalten: 13 Mal

#13 RE: Herausforderung für die Steuerung der Raffstore nach Sonnenstand

Beitragvon Thomas » Sa 18. Apr 2015, 17:44

Hallo Florian,

stimmt, da passt es besser.
Habe noch was gefunden, keine Ahnung ob es noch geht.
Muss bestimmt noch etwas angepasst werden :

Code: Alles auswählen

------------------------------------------------------------------------
--     
--  Sonnenschutz - wird vom Winkel aufgerufen
-- 
l_azi_ein_soll = use 'MEM.so.azi_ein_soll'           -- Sonnenwinkel ein, per Remote einstellbar
l_azi_aus_soll = use 'MEM.so.azi_aus_soll'           -- Sonnenwinkel aus, per Remote einstellbar
l_azi_ein_soll_west = use 'MEM.so.azi_ein_soll_west'
l_azi_aus_soll_west = use 'MEM.so.azi_aus_soll_west'
l_azi_ein_soll_ost = use 'MEM.so.azi_ein_soll_ost'   
l_azi_aus_soll_ost = use 'MEM.so.azi_aus_soll_ost'   

l_sonnenschutz_sued = use 'VAR.sonnesued2'           -- Anzeige der Anforderung
l_sonnenschutz_west = use 'VAR.sonnewest2'
l_sonnenschutz_ost = use 'VAR.sonneost2'

l_azi_ist = use 'SUN.azimuth'                        -- der Sonnenwinkel

l_lux_soll = use 'MEM.so.klux_soll'                  -- (k)Lux Sollwert, , per Remote einstellbar
l_lux_soll_west = use 'MEM.so.klux_soll_west'       
l_lux_soll_ost = use 'MEM.so.klux_soll_ost'         

l_lux_ist = use 'VAR.luxwert_s'                      -- aus Funktion : LCN WIH Wert in Lux umgerechnet oder Modbus.Elsner...
l_lux_ist_west = use 'VAR.luxwert_w'                 
l_lux_ist_ost = use 'VAR.luxwert_0'                 

l_temp_ist = use 'LCN.value.0.27.r1'                 -- die Referenzraum Temperatur
l_temp_soll = use 'MEM.so.temp_sued_soll'            -- Refezenz überschritten - Schutz aktiv, , per Remote einstellbar
l_temp_ist_west = use 'LCN.value.0.70.r1'
l_temp_soll_west = use 'MEM.so.temp_west_soll'
l_temp_ist_ost = use 'LCN.value.0.60.r1'
l_temp_soll_ost = use 'MEM.so.temp_ost_soll'

l_auto_sued = use 'MEM.so.auto_sued'                 -- Hand/Auto Schalter, per Remote einstellbar
l_auto_west = use 'MEM.so.auto_west'
l_auto_ost = use 'MEM.so.auto_ost'

l_zeit_ein = use 'MEM.so_ein'                     -- Zeitverzögerung runter in Minuten , per Remote einstellbar
l_zeit_aus = use 'MEM.so_aus'                    

function f_sonnenschutz()
 if l_temp_soll.value  l_azi_ein_soll.value and l_azi_ist.value  l_lux_soll.value and l_temp_ist.value > l_temp_soll.value and l_auto_sued.value == 1 then

 if l_sonnenschutz_sued.value == 0 then
    command ("TIMER.sued1." .. l_zeit_ein.value .. "m.C.VAR.sonnesued=1")
    l_sonnenschutz_sued.value = 1
    l_sonnenschutz_sued:set(l_sonnenschutz_sued.value)
--    print ('so süd ein')
 end
else
 if l_sonnenschutz_sued.value == 1 then
    command ("TIMER.sued1." .. l_zeit_aus.value .. "m.C.VAR.sonnesued=0")
    l_sonnenschutz_sued.value = 0
    l_sonnenschutz_sued:set(l_sonnenschutz_sued.value)
--    print ('so süd: aus')
 end
end

------------------
-- Westseite
--
if l_azi_ist.value > l_azi_ein_soll_west.value and l_azi_ist.value  l_lux_soll_west.value and l_temp_ist_west.value > l_temp_soll_west.value and l_auto_west.value == 1 then

 if l_sonnenschutz_west.value == 0 then
    command ("TIMER.west1." .. l_zeit_ein.value .. "m.C.VAR.sonnewest=1")
    l_sonnenschutz_west.value = 1
    l_sonnenschutz_west:set(l_sonnenschutz_west.value)
--    print ('so west ein')
 end
else
 if l_sonnenschutz_west.value == 1 then
    command ("TIMER.west1." .. l_zeit_aus.value .. "m.C.VAR.sonnewest=0")
    l_sonnenschutz_west.value = 0
    l_sonnenschutz_west:set(l_sonnenschutz_west.value)
--    print ('so west: aus')
 end
end
------------------
-- Ostseite
--
if l_azi_ist.value > l_azi_ein_soll_ost.value and l_azi_ist.value  l_lux_soll_ost.value and l_temp_ist_ost.value > l_temp_soll_ost.value and l_auto_ost.value == 1 then

 if l_sonnenschutz_ost.value == 0 then
    command ("TIMER.ost1." .. l_zeit_ein.value .. "m.C.VAR.sonneost=1")
    l_sonnenschutz_ost.value = 1
    l_sonnenschutz_ost:set(l_sonnenschutz_ost.value)
--    print ('so ost ein')
 end
else
 if l_sonnenschutz_ost.value == 1 then
    command ("TIMER.ost1." .. l_zeit_aus.value .. "m.C.VAR.sonneost=0")
    l_sonnenschutz_ost.value = 0
    l_sonnenschutz_ost:set(l_sonnenschutz_ost.value)
--    print ('so ost: aus')
 end
end
--------------------------------------------------------------
-- Debug
-- print('Anforderung Sonne Sued: ' .. l_sonnenschutz_sued.value)
-- print('Anforderung Sonne West: ' .. l_sonnenschutz_west.value)
-- print('Anforderung Sonne Ost: ' .. l_sonnenschutz_ost.value)

-- -----------------------------------------------------------
end
-- ende Funktion

l_azi_ein_soll.onchange = f_sonnenschutz
l_azi_aus_soll.onchange = f_sonnenschutz
l_azi_ein_soll_west.onchange = f_sonnenschutz
l_azi_aus_soll_west.onchange = f_sonnenschutz
l_azi_ein_soll_ost.onchange = f_sonnenschutz
l_azi_aus_soll_ost.onchange = f_sonnenschutz

l_lux_soll.onchange = f_sonnenschutz
l_lux_soll_west.onchange = f_sonnenschutz
l_lux_soll_ost.onchange = f_sonnenschutz

l_azi_ist.onchange = f_sonnenschutz

l_auto_sued.onchange = f_sonnenschutz
l_auto_west.onchange = f_sonnenschutz
l_auto_ost.onchange = f_sonnenschutz

-- Debug, schneller aufrufen, wird nicht gebraucht, da der Winkel tut....
-- l_lux_ist.onchange = f_sonnenschutz
------------------------------------------------------------------------
-- Ende Sonnenschutz
------------------------------------------------------------------------

und Lux WIH:

Code: Alles auswählen

------------------------------------------------------------------------
--     
--  Luxberechnung WIH   
--
luxwih_s = use 'LCN.variable.0.16.9'
lux_var_s = use 'VAR.luxwert_s'
function luxwihs()
    luxwih_s.value=luxwih_s.value/100
   luxwih_s.value= math.exp(luxwih_s.value)
    luxwih_s.value= math.ceil(luxwih_s.value)
    lux_var_s:set(luxwih_s.value)
-- print("Lux WIH s : " .. luxwih_s.value)
end
luxwih_s.onchange = luxwihs

lux_var_o = use 'VAR.luxwert_0'
luxwih_o = use 'LCN.variable.0.16.8'
function luxwiho()
    luxwih_o.value=luxwih_o.value/100
   luxwih_o.value= math.exp(luxwih_o.value)
    luxwih_o.value= math.ceil(luxwih_o.value)
    lux_var_o:set(luxwih_o.value)
-- print("Lux WIH o : " .. luxwih_o.value)
end
luxwih_o.onchange = luxwiho

luxwih_w = use 'LCN.variable.0.16.10'
lux_var_w = use 'VAR.luxwert_w'
function luxwihw()
    luxwih_w.value=luxwih_w.value/100
   luxwih_w.value= math.exp(luxwih_w.value)
    luxwih_w.value= math.ceil(luxwih_w.value)
    lux_var_w:set(luxwih_w.value)
-- print("Lux WIH w : " .. luxwih_w.value)
end
luxwih_w.onchange = luxwihw

------------------------------------------------------------------------

lg Thomas - war ein Beispiel, konnte das nie real probieren - habe keine Rollos im Haus.

alte Version erwischt, Code ausgetauscht
lg Thomas


Themenersteller
rayb
Schon länger hier...
Schon länger hier...
Beiträge: 51
Registriert: Di 9. Apr 2013, 21:15
Hat sich bedankt: 3 Mal
Kontaktdaten:

#14 RE: Herausforderung für die Steuerung der Raffstore nach Sonnenstand

Beitragvon rayb » So 19. Apr 2015, 20:35

Hi Thomas, hi Floria,
vielen Dank für den Code und die Tipps. Das erspart mir Stunden der Codierung. Ich muss mich ein wenig an die LUA Syntax gewöhnen.

Das mit den Ressourcen klappt noch nicht so wie ich mir das vorstelle. Aber im LOGIC funktionieren die Aufrufe von Folrians Script exemplarisch an einem Rollo. Ich muss jetzt "nur noch", die Umsetzung aus dem Display hinbekommen. Erst danach werde ich mich mit der Automatik aus Thomas Script beschäftigen ;-).

Wenn ich die Funktion am laufen habe, werde ich das fertige Script hier wieder einstellen.

Danke
Ralf
LCN Bus sowie LinHK@PI, OpenHab@PI usw....

Benutzeravatar

Thomas
Alleswisser
Alleswisser
Beiträge: 5727
Registriert: Mo 21. Apr 2008, 20:03
Hat sich bedankt: 19 Mal
Danksagung erhalten: 13 Mal

#15 RE: Herausforderung für die Steuerung der Raffstore nach Sonnenstand

Beitragvon Thomas » So 19. Apr 2015, 22:06

Hi Ralf,

kein Problem.
Bin aber seit einigen Monaten raus, und habe Florian jetzt auch alles zu kommen lassen.
Ich kann nur noch "alte Daten" weitergeben, den Rest müsst Ihr machen.

lg Thomas
lg Thomas


Themenersteller
rayb
Schon länger hier...
Schon länger hier...
Beiträge: 51
Registriert: Di 9. Apr 2013, 21:15
Hat sich bedankt: 3 Mal
Kontaktdaten:

#16 RE: Herausforderung für die Steuerung der Raffstore nach Sonnenstand

Beitragvon rayb » Mi 6. Mai 2015, 09:27

Hallo Zusammen,
ich brauch da noch mal einen Anstoss.

Als blutiger Anfänger ist die Doku zur Base "CM-BL-DE-140307.pdf" nur eingeschränkt zu gebrauchen wenn es darum geht, ein LUA Funktion über - ich denke Ereignis - zu verarbeiten. Das fängt damit an, das die Bezeichnungen der Fensterelemente bei Ereignissen im Browser nicht mit der Doku übereinstimmen. Erst der Tipp von Christian es mit der englischen Doku zu probieren hat mich weiter gebracht. Dort sind die Bezeichnungen in der Doku und im Broswer einheitlicher.

Die Funktionen sind eingespielt. Offenbar funktionieren die auch. Im Monitor kann ich den Status der Variablen sehen - print machts möglich :thumbup:

Im Remote App bzw. im Display bekomme ich mittlerweile die Variablen angezeigt bzw. kann diese setzen. D.h. Winkel, Temperatur etc. welche in den lua Funktionen von Florian benutzt werden. Das Ergebniss sehe ich dann im Monitor.:)

Der nächste Schritt ist aus meiner Sicht, das ich unter bestimmten Voraussetzungen, die Rollos z.B. Herunter fahre.
Beispiel "Südseite - Rollos runter"
Bedingung:
a) MEM.so.temp_sued_soll > 20
b) MEM.so.azi_ein_soll > 135
c) Funktion aktiv -> MEM.so.auto_sued

Wie schon gesagt, werde ich wohl ein Ereignis definieren müssen. Hier komme ich nicht weiter :confused: . Kann mir mal jemand einen Bild für eine solche "Lösung" zeigen, wo eine solche oder änliche Funktion abgebildet wird.

Vielen Dank
Ralf
LCN Bus sowie LinHK@PI, OpenHab@PI usw....

Benutzeravatar

Thomas
Alleswisser
Alleswisser
Beiträge: 5727
Registriert: Mo 21. Apr 2008, 20:03
Hat sich bedankt: 19 Mal
Danksagung erhalten: 13 Mal

#17 RE: Herausforderung für die Steuerung der Raffstore nach Sonnenstand

Beitragvon Thomas » Mi 6. Mai 2015, 09:44

Ich kann dir nur ein Event Beispiel für mein Skript geben :

Code: Alles auswählen

 
   
     
   
   
     
     
   
   
     
     
   
   
     
     
   
   
     
   
   
     
   
   
     
   
   
     
   
 

Da sollte alles drin sein.

lg Thomas
lg Thomas


Themenersteller
rayb
Schon länger hier...
Schon länger hier...
Beiträge: 51
Registriert: Di 9. Apr 2013, 21:15
Hat sich bedankt: 3 Mal
Kontaktdaten:

#18 RE: Herausforderung für die Steuerung der Raffstore nach Sonnenstand

Beitragvon rayb » Fr 15. Mai 2015, 23:42

Hallo Zusammen,
ich habe die Steuerung seit einigen Tagen am laufen. Sprich über die Winkel, Temperatur und Schalter kann ich die Aktivierung steuern.

Frage 1
Was jetzt auffällt, ist das mit dem Wechsel von Sonnenschein und Wolken (Helligkeit), zu oft die Rollo hoch und runter fahren. Auch ist mir nicht klar, wie das Zusammenspiel der

Code: Alles auswählen

l_zeit_ein/l_zeit_aus

sowie die Command Zeilen mit dem Timer befehl sind.

Code: Alles auswählen

command ("TIMER.sued1." .. l_zeit_ein.value .. "m.C.VAR.sonnesued=1")


Ich stelle mir vor, das ich die Zeit einstelle, wo noch nicht die Umschaltung erfolgt.

Frage 2
Die WIH speichert die Werte für Temperatur als LCN Wert. Wie kann ich diesen Umrechnen, das er als normale Temperatur angezeit werden kann für die VISU.

Gruß
Ralf
Dateianhänge

[Die Dateierweiterung txt wurde deaktiviert und kann nicht länger angezeigt werden.]

LCN Bus sowie LinHK@PI, OpenHab@PI usw....

Benutzeravatar

Thomas
Alleswisser
Alleswisser
Beiträge: 5727
Registriert: Mo 21. Apr 2008, 20:03
Hat sich bedankt: 19 Mal
Danksagung erhalten: 13 Mal

#19 RE: Herausforderung für die Steuerung der Raffstore nach Sonnenstand

Beitragvon Thomas » Sa 16. Mai 2015, 14:53

Hatte im "Remote" eine Verstellung der 'MEM.so_ein' und 'MEM.so_aus' gemacht, war für Minuten.

Dieses wird dann in der LOGIG da geholt :

Code: Alles auswählen

l_zeit_ein = use  'MEM.so_ein'                   -- Zeitverzoegerung runter in Minuten , per Remote einstellbar
l_zeit_aus = use 'MEM.so_aus'                    


lg Thomas
lg Thomas


Themenersteller
rayb
Schon länger hier...
Schon länger hier...
Beiträge: 51
Registriert: Di 9. Apr 2013, 21:15
Hat sich bedankt: 3 Mal
Kontaktdaten:

#20 RE: Herausforderung für die Steuerung der Raffstore nach Sonnenstand

Beitragvon rayb » Mi 20. Mai 2015, 22:08

Hallo Thomas,

danke für die Info. Leider kann ich nicht erkennen, das die Einstellung sich auswirkt. Dazu folgende Frage:

Der Wert wird ja über folgende Zeile(n) genutzt.
command ("TIMER.nord1." .. l_zeit_aus.value .. "m.C.VAR.sonnenord=0")
Ich verstehe das so, das nach der gegebenen Zeit die Variable "VAR.sonnenord" auf 0 gesetzt wird.

Wie kann ich mir den aktuellen Stand des Timers anschauen?

Ich habe das Script von Florian erweitert und hier in "meiner" aktuellen Version abgelegt.
Dazu gekommen ist die Nordseite sowie einige Kommentare und Formatierungen ;-)

Gruß
Ralf
Dateianhänge

[Die Dateierweiterung txt wurde deaktiviert und kann nicht länger angezeigt werden.]

LCN Bus sowie LinHK@PI, OpenHab@PI usw....


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

Wer ist online?

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