Lua – die meistgelesenen Beiträge

FritzBox DECT-SmartHome per Bash-Script - Unerwartetes Dateiende?

Moinsen, kann mir evtl jemand sagen, warum ich den Fehler: "Unerwartetes Dateiende" bekomme, wenn ich das Script von dieser Seite ausführe?

smart_fritz_terminal.sh

Sehe da keinen Fehler. Bin aber auch kein Bash-Skript Profi.
Weiß nicht immer genau was wo zu beachten ist.
Hoffe mir kann jemand helfen den Fehler zu finden.

Falls der Link nicht geht oder sich die Datei irgendwie ändern sollte, hier nochmal zusätzlich der Quelltext direkt.

#!/bin/bash
# Die Adresse der Fritzbox
# Beispiele:
# fbox="https://192.168.178.1:444" # SSL-Verschlüsselt, Port 444
# fbox="http://192.168.178.1" # http normal, Port 80
# fbox="abcdef28kk6oabcdef.myfritz.net:444" # myfritz-Adresse, SSL, Port 444
# fbox="https://[2001:a00:12b7:c300:a00:a000:feed:921c]:444" # IPv6-Adresse, SSL, Port 444

#################
# Konfiguration #
fbox="http://192....." # Bitte Adresse eintragen
# Bei https, Ausnahme für selbst signiertes Zertifikat, sonst leer lassen
INSECURE= 
#INSECURE="--insecure" 

# Vollständige Anzeige: full, leer lassen für schnellere Ergebnisse
VIEW="full"
# das bei der Fritzbox konfigurierte Passwort
# unter System->FRITZ!Box-Benutzer->Anmeldung im Heimnetz
# Ist die Option "Anmeldung mit dem FRITZ!Box-Kennwort" aktiv
# genügt das Passwort für die Anmeldung

PASSWD="geheim"
# Der Benutzernamen für die Fritzbox
# Dieser lässt sich unter "System -> FRITZ!Box-Benutzer" erstellen.
# Dann kann man die Option
# "Anmeldung mit FRITZ!Box-Benutzernamen und Kennwort" aktivieren

USER="MeinName" 
#################
if [ "$fbox" = "" ]; then
if [ "$fbox" = "" ]; then
echo Bitte Fritzbox Adresse im Script eintragen
exit 1
fi

RED='\033[0;31m'
GREEN='\033[0;32m'
CYAN='\033[0;36m' 
YELLOW='\033[0;33m'
NC='\033[0m'
CURL=$(which curl) 
MD5SUM=$(which md5sum)
ICONV=$(which iconv)
AWK=$(which awk)

# Die SmartHome-Seite der Fritzbox
CURLCMD="$CURL $INSECURE -s $fbox/webservices/homeautoswitch.lua"

# Funktion zum Ermitteln der SID / Anmeldung bei der Fritzbox
get_sid() {
SID=$($CURL $INSECURE -s $fbox/login_sid.lua | sed 's/.*<SID>\(.*\)<\/SID>.*/\1/')
if [ "$SID" = "0000000000000000" ]; then
challenge=$($CURL $INSECURE -s $fbox/login_sid.lua |  grep -o "<Challenge>[a-z0-9]\{8\}" | cut -d'>' -f 2)
echo challenge: $challenge
CPSTR="$challenge-$PASSWD"
hash=`echo -n $CPSTR | $ICONV -f ISO8859-1 -t UTF-16LE | $MD5SUM -b | $AWK '{print substr($0,1,32)}'`
echo MD5: $hash
RESPONSE="$challenge-$hash"
POSTDATA="?username=$USER&response=$RESPONSE"
SID=$($CURL $INSECURE --data "$POSTDATA" -s $fbox/login_sid.lua | sed 's/.*<SID>\(.*\)<\/SID>.*/\1/')
fi
echo SID: $SID
}

# Funktion zum Ermitteln von Werten
get_value() {
RESULT=""
if [ "$2" = "" ]; then
RESULT=$($CURLCMD"?sid=$SID&switchcmd=$1")
else
RESULT=$($CURLCMD"?sid=$SID&ain=$2&switchcmd=$1")
fi
}

get_sid # SID holen
if [ "$SID" = "0000000000000000" ]; then
echo -e  "${RED}Anmeldung fehlgeschlagen ${NC}"
exit 1
fi
if [ "$SID" = "" ]; then
echo -e  "${RED}Anmeldung fehlgeschlagen ${NC}"
exit 1
fi

echo -e  "${GREEN}Anmeldung erfolgreich ${NC}"
echo

# Liste der Schalter ermitteln
get_value getswitchlist
COUNTER=0
IFS=', ' read -r -a array <<< "$RESULT"

# Werte der Schalter holen
for AIN in "${array[@]}"
do
let COUNTER=COUNTER+1 
echo -e  "${YELLOW}Actor #$COUNTER ${NC}"
switchpresent=0
get_value getswitchname $AIN
echo -e  "${CYAN}Name: $RESULT ${NC}"
get_value getswitchpresent $AIN
echo AIN: $AIN
echo Connected: $RESULT
if [ "$RESULT" = "1" ]; then
# bei aktiven Schaltern 
# Parameter verarbeiten, etwa: 1 on
if [ "$1" = "$COUNTER" ]; then
  if [ "$2" = "on" ]; then
    get_value setswitchon $AIN
	echo "set #$COUNTER on"
  fi	
    if [ "$2" = "off" ]; then
      get_value setswitchoff $AIN
	  echo "set #$COUNTER off"
    fi	
    if [ "$2" = "toggle" ]; then
      get_value setswitchtoggle $AIN
	  echo "set #$COUNTER toggle"
    fi	
fi
  
  # Alle Werte ermitteln/ausgeben (langsamer)
  if [ "$VIEW" = "full" ]; then
   get_value getswitchstate $AIN
   echo State: $RESULT
   get_value getswitchpower $AIN
   switchpower=`awk "BEGIN {printf \"%.2f\n\", $RESULT/1000}"`
   echo Power: $switchpower W
   get_value getswitchenergy $AIN
   echo Energy: $RESULT Wh
   get_value gettemperature $AIN
   temperature=`awk "BEGIN {printf \"%.1f\n\", $RESULT/10}"`
   echo Temperature: $temperature °C
   echo
  fi 
fi

done
exit 0
  
Bash, DECT, FRITZ!Box, lua, Script, Shell, Terminal, sh, Smart Home

Roblox Studio Scripts funktionieren nicht?

Hallo, Ich wollte damit beginnen Roblox spiele zu machen. Ich habe Roblox Studio schon ein bisschen gelernt und weiß zum beispiel schon wie man parts erstellt, decals erstellt oder wie man ein seil zwischen zwei parts erstellen kann.

Also wollte Ich mal damit beginnen Scripten zu lernen. Ich weiß schon was Variablen sind, wie man if und else benutzt usw. Jetzt beginne ich gerade damit diese dinge in roblox studio anzuwenden.

Leider funktionieren meine scripts aber nicht, es sind aber keine Errors. Ich habe sogar mal scripte von tutorials einfach genau gleich geschrieben aber es hat nicht funktioniert. Außerdem funktioniert das printen für den output schon und jetzt frage ich mich was das problem ist.

Ob ich vielleicht das script falsch schreibe oder ob ich irgendwas einstellen muss , ich weiß es nicht. Ich habe schon mehrmals im Internet nach Lösungen gesucht aber ich habe nichts gefunden. Ich bin mittlerweile schon ziemlich verzweifelt und werde jetzt ein paar fotos zeigen damit man es besser versteht.

  1. Foto: Also man sieht das script was ich gemacht habe und ich habe versucht die farbe eines Parts mit dem namen "Test" zu ändern. ich habe nach jeder zeile ein wort geprintet wo man dann in Foto 2 sieht dass es funktioniert hat. (man sieht es zwar nicht aber es hatte keine errors)
  2. Foto: Man sieht dass die farbe sich nicht geändert hat aber die wörter aus dem script wurden geprintet.

Ich danke jedem der mir hilft eine Lösung zu finden :)

Ich hoffe jemand kann mir helfen

Bild zum Beitrag
programmieren, lua, Script, verzweifelt, Funktioniert nicht, Robloxstudio

Roblox Studio Script funktioniert nicht!Was kann ich tun?

Hallo : - )

Ich bin gerade dabei bei Roblox studio ein Tycoon zu programmieren aber ich komme nicht weiter.

Also, ich habe einen Dropper gebaut , der auch funktioniert .

Jetzt habe ich noch eine BooleanValue erstellt , mit der man den Dropper an und aus schalten können soll.

Also hab ich den Script vom Dropper noch in einer if loop verpackt.

Aber der Script bemerkt nicht wenn ich die Variable verändere.

Wenn ich Variable auf true stelle und dann einen Testlauf starte, dann ist der Dropper aktiv, aber wenn ich dann während des Testes die Variable auf false stelle , dann hört der Dropper nicht auf sondern macht einfach weiter.

Anderstherum ist es genauso:

Wenn ich die Variable auf false stelle und dann einen Testlauf starte , dann ist der dropper wie geplant nicht aktiv, aber wenn ich dan währen des Testlaufes die Variable auf true stelle, dann fängt der Dropper nicht an sondern bleibt einfach inaktiv.

Hier ist der Script von meinem Dropper:

___________________________________________________________________________________

wait(3)

while true do

if script.Parent.Value.Value == true then

wait(3)

print('true detected')

local droppart = Instance.new('Part',game.Workspace)

droppart.Size = Vector3.new(1,1,1)

droppart.Position = script.Parent.Orientation.Position

droppart.Name = 'DesktopCoin1'

droppart.Material = Enum.Material.Neon

droppart.BrickColor = BrickColor.new('CGA brown')

else

if script.Parent.Value.Value == false then

print('false detected')

end

end

end

________________________

Vielen Dank im Vorraus : )

Ps: ich versuche noch einen Screenshot vom Explorer hinzuzufügen:

Der Script vom Dropper heißt PartValue, und untendrunter das ist die BooleanValue

_____

Hier noch ein Screenshot vom Script:

_________

Vielen Dank fürs lesen XD

Bild zum Beitrag
Spiele, Computer, lua, Roblox, Script, Variablen, Roblox Studio, Spiele und Gaming