[canceled] "verwendete Skript-Variablen zählen" - Skript

Problemlösungen und Hinweise von allgemeinem Interesse zur Haussteuerung mit HomeMatic

Moderator: Co-Administratoren

BadenPower

[canceled] "verwendete Skript-Variablen zählen" - Skript

Beitrag von BadenPower » 26.07.2016, 12:53

.
Skriptvariablenamen-Counter/Info-Skript

Mit diesem Skript, kann man die Anzahl der in Programmen gespeicherten Skripten verwendeten Skriptvariablenamen ermitteln und die Namen ausgeben lassen.

Funktionsumfang ab Version 1.1.1
  • alphabetische Ausgabe der gefundenen Variablenamen
  • Ausgabe, welche Variable von welchem Programm/Skript verwendet wird
  • Ausgabe in welchen Variabletypen eine Variable deklariert wurde
  • sucht nach bedenklichen Variablenamen und gibt diese aus
  • seperate Ausgabe Programm/Skript-Liste mit den darin verwendeten Variablenamen (alphabetisch geordnet)
  • Einstellmöglichkeit zum Durchsuchen von aktiven / inaktiven Programmen
  • Einstellmöglichkeit zum Durchsuchen von internen / normalen Programmen
Einstellmöglichkeiten ab Version 1.1.1
  • lSingleProgName ( Zeile 5 )
    • Hier kann man den Namen eines Programmes angeben, wenn man nur ein Programm durchsuchen will.
  • lChkActiveState ( Zeile 6 )
    • 0 = durchsucht aktive und inaktive Programme
    • 1 = durchsucht nur aktive Programme
    • 2 = durchsucht nur inaktive Programme
  • lChkInternalState ( Zeile 7 )
    • 0 = durchsucht normale und interne Programme
    • 1 = durchsucht nur normale Programme
    • 2 = durchsucht nur interne Programme
  • lPrintVarNames ( Zeile 8 )
    • true = Ausgabe der alphabetisch geordneten Variablenamen
    • false = keine Ausgabe der Variablelisten
  • lPrintVarDeclTypes ( Zeile 9 )
    • true = Ausgabe der Variabletypen als Zusatzinformation
    • false = keine Ausgabe der Variabletypen
  • lPrintPrgUsageInfo ( Zeile 10 )
    • true = Ausgabe der Programmnamen in denen diese Variable verwendet wird als Zusatzinformation
    • false = keine Ausgabe der Programmnamen
  • lPrintVarNamesPerProgram ( Zeile 11 )
    • true = seperate Programmliste mit den jeweils enthaltenen Variablenamen je Programm und Skript
    • false = keine Ausgabe der seperaten Programmliste
Anwendung:
Das Skript einfach in der WebUI unter "Skript testen" per Paste&Copy einfügen und starten.
Es muss nichts installiert werden.

Hinweis:
Das Skript unbedingt bis zur vollständig beendeten Ausgabe durchlaufen lassen, da es ganz am Schluß noch aufräumen und durchwischen muss.
Wenn Ihr alle Programme durchsuchen laßt, dann kann dies schon sehr laaaaaaange dauern.
Im Test mit über 250 Programmen mit ingesamt 87 Skripten (zum Teil jeweils bis 50kb) dauerte ein kompletter Scan 48 Minuten.


ChangeLog:

Version 1.0.1:
BugFix:
Bei der Verwendung mehrerer Leerzeichen zwischen Deklaration und Variablenamen wurde der Name nicht erkannt.

Version 1.0.2:
Kleinere Änderungen um auf fehlerhafte Programme zu reagieren.

Version 1.1.1:
komplett überarbeitete Version mit erhöhtem Funktionsumfang

Version 1.1.2:
Kleinere Änderungen um Programmnamen mit führenden Ziffern zu berücksichtigen.
(Achtung: genereller Hinweis - Bitte niemals Namen mit führenden Ziffern verwenden)
Zuletzt geändert von BadenPower am 21.06.2017, 11:29, insgesamt 12-mal geändert.

fischmir
Beiträge: 972
Registriert: 03.02.2014, 18:04
Wohnort: Münsterland
Hat sich bedankt: 27 Mal
Danksagung erhalten: 8 Mal

Re: "verwendetet Skript-Variabeln zählen" - Skript

Beitrag von fischmir » 26.07.2016, 13:07

Oh man, das wird mir sehr helfen. Allerdings habe ich schon Angst vor der Wahrheit heute Abend...

Eine Frage habe ich allerdings schon jetzt:

Das Script selbst deklariert ja auch Systemvariablen. Was ist mit diesen? Werden diese auch mitgezählt? Ist danach ein Reboot zu empfehlen?

BadenPower

Re: "verwendetet Skript-Variabeln zählen" - Skript

Beitrag von BadenPower » 26.07.2016, 13:23

fischmir hat geschrieben:Das Script selbst deklariert ja auch Systemvariablen. Was ist mit diesen? Werden diese auch mitgezählt? Ist danach ein Reboot zu empfehlen?
Das Skript wird unter dem normalen "Skript testen" ausgeführt.

Skripte, welche unter "Skript testen" ausgeführt werden, verwenden einen eigenen Adressbereich.
Daher spielen die verwendeten Variabeln in diesem Skript keine Rolle und werden dem System auch nicht angelastet.
Somit ist ein Reboot nicht nötig.
.

fischmir
Beiträge: 972
Registriert: 03.02.2014, 18:04
Wohnort: Münsterland
Hat sich bedankt: 27 Mal
Danksagung erhalten: 8 Mal

Re: "verwendetet Skript-Variabeln zählen" - Skript

Beitrag von fischmir » 26.07.2016, 13:38

Gut, danke!

BadenPower

Re: "verwendetet Skript-Variabeln zählen" - Skript

Beitrag von BadenPower » 26.07.2016, 14:11

Achtung:
BugFix
geänderte Version online.


ChangeLog:
Version 1.0.1:
BugFix:
Bei der Verwendung mehrerer Leerzeichen zwischen Deklaration und Variablenamen wurde der Name nicht erkannt.

Benutzeravatar
papi
Beiträge: 371
Registriert: 18.12.2013, 08:40
Wohnort: Willich, NRW
Hat sich bedankt: 2 Mal
Danksagung erhalten: 5 Mal

Re: "verwendetet Skript-Variabeln zählen" - Skript

Beitrag von papi » 26.07.2016, 14:47

Super, Dankeschön!!!

Benutzeravatar
metaxa
Beiträge: 649
Registriert: 01.10.2011, 00:03
Wohnort: südliches Wien
Hat sich bedankt: 3 Mal

Re: "verwendetet Skript-Variabeln zählen" - Skript

Beitrag von metaxa » 26.07.2016, 16:53

Hallo BadenPower!

Wunschgemäß von http://homematic-forum.de/forum/viewtop ... 20#p297097 hierher übersiedelt:
Dein Script zählt bei mir aktuell 227 Scriptvariablen.
Ja, ich habe inaktive Programme, darin sind 8 Systemvariable. Wären dann aber immer noch über der magischen 200er Grenze.
Dein Script ist im "Script Executer" in 15 Sekunden durchgelaufen, das volle Ergebnis als txt im Anhang. Mag deinenThread hier nicht vollmüllen.

(LXCCU auf PI2)

LG, mxa
Dateianhänge
Scriptvariablen zählen Ergebnis LXCCU 2607161645.txt
(2.74 KiB) 440-mal heruntergeladen

Philip.Hanebeck
Beiträge: 19
Registriert: 07.05.2012, 20:16

Re: "verwendetet Skript-Variabeln zählen" - Skript

Beitrag von Philip.Hanebeck » 26.07.2016, 18:48

Prima, das Script funktioniert einwandfrei und lief bei mir gerade mal 10 Minuten bis folgendes Ergebnis geliefert wurde:
durchsuchte Programme: 306
gefundene Skripte: 145
gefundene Deklariationen: 802
.
. (die Liste der Variablen habe ich hier weg gelassen)
.
.
gefundene Variabelnamen: 202

BadenPower

Re: "verwendetet Skript-Variabeln zählen" - Skript

Beitrag von BadenPower » 26.07.2016, 19:11

Philip.Hanebeck hat geschrieben: gefundene Deklariationen: 802
Hups, das sollte eigentlich Deklarationen heißen. :D

Man möge mir verzeihen, wenn ich deswegen keinen BugFix herausgeben. :mrgreen:
.

fischmir
Beiträge: 972
Registriert: 03.02.2014, 18:04
Wohnort: Münsterland
Hat sich bedankt: 27 Mal
Danksagung erhalten: 8 Mal

Re: "verwendetet Skript-Variabeln zählen" - Skript

Beitrag von fischmir » 26.07.2016, 20:25

gefundene Variabelnamen: 153

Puh... :D

@BadenPower: Tolle Arbeit!

Code: Alles auswählen

durchsuchte Programme: 131
gefundene Skripte: 72
gefundene Deklariationen: 390

Liste aller verwendeten Skriptvariabel-Namen:

tmpX
tmpZ
message
tmpB
tmpC
tmpD
tmpE
tmpF
tmpG
tmpA
tmpH
tmpK
tmpL
tmpM
photo
camurl
photo2
camurl2
tmpC1
tmpD1
tmpE1
tmpQ2
tmpR2
tmpI1
tmpJ1
tmpK1
tmpL1
tmpM1
tmpN1
tmpO1
tmpP1
tmpQ1
tmpR1
tmpS1
tmpA1
tmpY
tmpF1
tmpG1
tmpH1
tmpT1
tmpU1
tmpV1
tmpW1
tmpX1
tmpY1
tmpZ1
tmpA2
tmpB2
tmpC2
tmpI
tmpJ
tmpN
tmpB1
tmpD2
tmpE2
tmpF2
tmpG2
tmpH2
tmpI2
tmpJ2
tmpK2
tmpL2
tmpM2
tmpN2
tmpO2
tmpO
tmpP
tmpQ
tmpR
tmpS
tmpT
tmpU
tmpV
tmpW
tmpP2
tmpS2
sysvarname
autoconfirm
divider
blockdevice
debug
cr2016
cr2032
lr14x2
lr44x2
lr6x2
lr6x3
lr6x4
lr3x1
lr3x2
lr3x3
lr3x3a
block9
index
slist
otmp
trigdp
ch
sdev
ival
sdesc
stime
serial
batlink
url
sec
i
list
item
dev
state
token
msg
sTime
sendmsg
msgpart
para
chn
oBoot
oEnergyCounter
oSysVarEnergyCounter
oSysVarEnergyCounterOldVal
bootFlag
devVal
devValMax
oldDevVal
diffVal
sysVarVal
tmp_devVal
tmp_oldDevVal
plus180
command
lTriggerSysVarName
lLogik
lVerzoegerung
Temperatur
lTmpObj1
lTmpObj2
lTmpObj3
lTmpObj4
stdout
tmpPosStart
tmpPosEnd
stderr
wetter_xml
laenge
wort_position
word
word_laenge
word_position
daten
zahl
anfangsbuchstabe

gefundene Variabelnamen: 153

---Auswertung beendet---

Gesperrt

Zurück zu „HomeMatic Tipps & Tricks - keine Fragen!“