Ich habe eine Mobotix T25 Türanlage. Mittels einer URL wie z.B. sinngemäß http://User:PW@mobotix/control/rcontrol?action=sigout&profile=~Door kann man die Tür öffnen. Kann mir bitte eine erklären, wie ich ein Virtuelles Device erstellt, mit dem ich dann diese URL aufrufen kann?
Ich komme damit ehrlich gesagt nicht richtig zurecht.
local IP = User:PW@mobotix/control/rcontrol?action=sigout&profile=~Door'
local PORT = 80
local versuche = 1
local iconOFFLINE = "181" -- ANPASSEN; Gerät ist offline
local iconONLINE = "180" -- ANPASSEN; Gerät ist online
local iconCHECK = "179" -- ANPASSEN; Gerät wird angepingt
if (result == true) then
fibaro:debug(IP.. ':' .. PORT .. ' wurde gefunden.')
fibaro:call(fibaro:getSelfId(), "setProperty", "currentIcon", iconONLINE)
else
fibaro:debug(IP.. ':' .. PORT .. ' wurde nicht gefunden.')
fibaro:call(fibaro:getSelfId(), "setProperty", "currentIcon", iconOFFLINE)
fibaro:call(2, "sendEmail", IP.. " ist derzeit nicht erreichbar")
end
Icons benötige ich nicht. Daher können ja die iconXXX-Zeilen weg.
Aber wie reduziere ich das Skript, damit nur die Seite aufgerufen wird?
local IP = 'www.google.de'
local PORT = 80
local tcpSocket = Net.FTcpSocket(IP, PORT)
tcpSocket:setReadTimeout(250)
fibaro:sleep(250)
local bytes, errorCode = tcpSocket:write('ping')
fibaro:debug(errorCode)
Binde ich das Skript als Lua Code in einem Virtual Device ein und führe ein Debug aus, bekomme ich als Ausgabe “[DEBUG] 22:52:36: 2”.
Erstelle ich eine LUA Szene, kommt aus Ausgabe im Debug-Fenster “22:59:45: line 4: attempt to index global ‘Net’ (a nil value)”. Zeile 4 ist “local tcpSocket = Net.FTcpSocket(IP, PORT)”.
In einer Szene funktioniert das Skript nicht, die Funktion gibt es nur in einem VD. Grundsätzlich ist es egal, welche Form die URL hat, das oben gepostete ist ja nur ein Beispiel. In dem Fall denke ich aber, dass deine URL für das HC2 nicht auflösbar ist…