This forum uses cookies
This forum makes use of cookies to store your login information if you are registered, and your last visit if you are not. Cookies are small text documents stored on your computer; the cookies set by this forum can only be used on this website and pose no security risk. Cookies on this forum also track the specific topics you have read and when you last read them. Please confirm that you accept these cookies being set.

Script for changing and adapting the data type of objects
#1
Hello LogicMachine Forum,

i have create a Script that changing and adapting the data types of all objects. Its a great time saver for me, so i want to share it with you. I hope you enjoy it.
The only Problem is, i write this script in german, may you have to change it a little bit.

Please comment if it works for you or if you have suggestions for improvement




Code:
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210
--[[Script zum automatischen Anpassen der Gruppenadressen -- Version 4.3   Der Script wird als zyklischer Script gestartet und deaktiviert sich nach einem Durchlauf selbst.   Datentypen die Angepasst werden sollen   Von: ]] Datentyp1 = 1                 --bool Datentyp2 = 3                 --no Control Datentyp3 = 5                 --1Byte Datentyp4 = 9                 --2Byte --Nach: Datentypneu1 = 1001         --schalten Datentypneu2 = 3007         --dimmen Datentypneu3 = 5001         --prozent Datentypneu4 = 9             --2Byte Gleitkomma ausnahme1 = 'szen'             --Ausnahmen für die Umwandlung (alles was im Namen szen enthält z.B. "Szenennebenstelle") ausnahme2 = 'Szen' ausnahme3 = 'art%s*seq'     --Ausnahmen für die Umwandlung (alles was im Namen art Seq enthält z.B. "Start Sequenz") ausnahme4 = 'art%s*Seq' ausnahme5 = 'etriebs%s*mod' --Ausnahmen für die Umwandlung (alles was im Namen art etriebs mod enthält z.B. "Heizung Betriebsmodus") ausnahme6 = 'etriebs%s*Mod' ausnahme7 = 'modus'            --Ausnahmen für die Umwandlung (alles was im Namen art etriebs modus enthält z.B. "Lüftung - Modus 1") ausnahme8 = 'Modus' ausnahme9 = '%s*mode' ausnahme10 = '%s*Mode' ausnahme11 = 'etrieb'         --Ausnahmen für die Umwandlung (alles was im Namen etrieb  enthält z.B. "Heizung Betriebvorwahl") temp1 = 'temp'                 --Formatanpassung Temperatur (alles was im Namen temp enthält z.B. "Aussentemperatur" wird die Einheit "°C" angefuegt) temp2 = 'Temp'                 --Formatanpassung Temperatur wind1 = 'windgesch'             --Formatanpassung Windgeschwindigkeit (alles was im Namen windgesch enthält z.B. "Windgeschwindigkeit" wird die Einheit "m/s" angefuegt) wind2 = 'Windgesch'         --Formatanpassung Windgeschwindigkeit hell1 = 'helligke'             --Formatanpassung Helligkeit (alles was im Namen helligke enthält z.B. "Helligkeit Aussen" wird die Einheit "lux" angefuegt) hell2 = 'Helligke'             --Formatanpassung Helligkeit --++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -- Ab hier nichts mehr Verändern! -- by Simon Epp --++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ --############################################################################################################## --Datenanpassung --############################################################################################################## angepassteobjekte = 0 durchlauf = 1 --++++++++++++++++++++++++++++++ --Suchen der Objekte --++++++++++++++++++++++++++++++ tabelle1 = grp.dpt(Datentyp1,true) tabelle2 = grp.dpt(Datentyp2,true) tabelle3 = grp.dpt(Datentyp3,true) tabelle4 = grp.dpt(Datentyp4,true) anzahl1 = table.maxn(tabelle1) anzahl2 = table.maxn(tabelle2) anzahl3 = table.maxn(tabelle3) anzahl4 = table.maxn(tabelle4) repeat --Wiederholen bis alle Datentypen angepasst wurden.   --+++++++++++++++++++++++++++++++++++++++++++++++++++++++ --Auswahl der Datentypen die angepasst werden sollen --+++++++++++++++++++++++++++++++++++++++++++++++++++++++   if (anzahl1 > 0) then     tabelleadressen = tabelle1     datentypneu = Datentypneu1     anzahl = anzahl1     anzahl1 = 0     goto Datenformate   else     if (anzahl2 > 0) then       tabelleadressen = tabelle2       datentypneu = Datentypneu2       anzahl = anzahl2       anzahl2 = 0       goto Datenformate     else       if (anzahl3 > 0) then         tabelleadressen = tabelle3         datentypneu = Datentypneu3         anzahl = anzahl3         anzahl3 = 0         goto Datenformate       else         if (anzahl4 > 0) then           tabelleadressen = tabelle4           datentypneu = Datentypneu4           anzahl = anzahl4           anzahl4 = 0           goto Datenformate         else           storage.set('Automatisch_angepasste_Objekte',angepassteobjekte)           durchlauf = 0           goto Endedatenanpassung         end       end     end   end     --+++++++++++++++++++++++++++++++++++++++++++++   --Datenformate   --+++++++++++++++++++++++++++++++++++++++++++++   ::Datenformate::      repeat     alteadresse = tabelleadressen[anzahl].address --Holen der bestehenden Gruppenadressen.       formatstandart = {     datatype = datentypneu,     address = alteadresse,       comment = 'Datentyp automatisch angepasst'   }   formattemperatur = {     datatype = 9001,     address = alteadresse,     units = ' °C',     comment = 'Datentyp automatisch angepasst, Einheit automatisch ergaenzt.'   }   formathelligkeit = {     datatype = datentypneu,     address = alteadresse,     units = ' lux',     comment = 'Datentyp automatisch angepasst, Einheit automatisch ergaenzt.'   }   formatwindgeschwindigkeit = {     datatype = datentypneu,     address = alteadresse,     units = ' m/s',     comment = 'Datentyp automatisch angepasst, Einheit automatisch ergaenzt.'   }     --++++++++++++++++++++++++++++++++++++++++++     --Überprüfen der Ausnahmen     --++++++++++++++++++++++++++++++++++++++++++     a1 = string.find(tabelleadressen[anzahl].name,ausnahme1)     a2 = string.find(tabelleadressen[anzahl].name,ausnahme2)     a3 = string.find(tabelleadressen[anzahl].name,ausnahme3)     a4 = string.find(tabelleadressen[anzahl].name,ausnahme4)     a5 = string.find(tabelleadressen[anzahl].name,ausnahme5)     a6 = string.find(tabelleadressen[anzahl].name,ausnahme6)     a7 = string.find(tabelleadressen[anzahl].name,ausnahme7)     a8 = string.find(tabelleadressen[anzahl].name,ausnahme8)     a9 = string.find(tabelleadressen[anzahl].name,ausnahme9)     a10 = string.find(tabelleadressen[anzahl].name,ausnahme10)     a11 = string.find(tabelleadressen[anzahl].name,ausnahme11)       if ( a1 == nil and a2 == nil and a3 == nil and a4 == nil and a5 == nil and a6 == nil and a7 == nil and a8 == nil and a9 == nil and a10 == nil and a11 == nil )then       anpassung = true     else       anpassung = false     end         --++++++++++++++++++++++++++++++++++++++++++     --Überprüfen der Formate     --++++++++++++++++++++++++++++++++++++++++++     ft1 = string.find(tabelleadressen[anzahl].name,temp1)     ft2 = string.find(tabelleadressen[anzahl].name,temp2)     fh1 = string.find(tabelleadressen[anzahl].name,hell1)     fh2 = string.find(tabelleadressen[anzahl].name,hell2)     fw1 = string.find(tabelleadressen[anzahl].name,wind1)     fw2 = string.find(tabelleadressen[anzahl].name,wind2)         if ((ft1 ~= nil or ft2 ~= nil) and datentypneu == Datentypneu4) then       format = formattemperatur     else       if ((fh1 ~= nil or fh2 ~= nil) and datentypneu == Datentypneu4) then         format = formathelligkeit       else         if ((fw1 ~= nil or fw2 ~= nil) and datentypneu == Datentypneu4) then           format = formatwindgeschwindigkeit         else           format = formatstandart         end       end     end         --++++++++++++++++++++++++++++++++++++++++++++     --Anpassung     --++++++++++++++++++++++++++++++++++++++++++++     if anpassung then             grp.create(format)--Anpassung der Datentypen nach dem gewählten Format.       anzahl = anzahl -1       angepassteobjekte = angepassteobjekte +1     else       anzahl = anzahl -1       angepassteobjekte = angepassteobjekte +1     end         until (anzahl == 0)       ::Endedatenanpassung::   until (durchlauf == 0) --###################################################################################################### --Datenanpassung Ende --###################################################################################################### script.disable(_SCRIPTNAME)

Attached Files
.lua   Automatische anpassung der Datentypen.lua (Size: 7.5 KB / Downloads: 6)
Reply


Forum Jump: