Aufgabe:
Leistung des DECT200 auslesen und im Foorplan darstellen.
Meine Voraussetzungen:
• FHEM auf FB
• Server
• Webdomain
1. Stream auslesen und in temporärer Datei speichern
Set oXMLHTTP = CreateObject("MSXML2.XMLHTTP.3.0")
oXMLHTTP.Open "GET", "http://fritz.box:8083/fhem/FileLog_logWrapper&dev=FileLog_Server&type=text&file=Server-" & year(date) & ".log", False
oXMLHTTP.Send
If oXMLHTTP.Status = 200 Then
Set oStream = CreateObject("ADODB.Stream")
oStream.Open
oStream.Type = 1
oStream.Write oXMLHTTP.responseBody
oStream.SaveToFile DateiName
oStream.Close
End If
2. Datei öffnen und zeilenweise lesen
Set fso = CreateObject("Scripting.FileSystemObject")
Set File = fso.OpenTextFile(DateiName, 1, False)
Do Until File.AtEndOfStream
str_tmp = File.ReadLine
str_tmp = replace(str_tmp," ",";")
if instr(str_tmp,year(date)) > 0 and instr(str_tmp,"<") <> 1 then FHEMFile.WriteLine(str_tmp)
Loop
File.Close
FHEMFile.Close
3. Datei splitten und gewünschten Wert ermitteln
Set FHEMFile3 = fso.OpenTextFile(Dateiname1, 1, false)
Do While FHEMFile3.AtEndOfStream <> True
SZ = Split(FHEMFile3.ReadLine,";")
Loop
FHEMFile3.Close
4. Gewünschten Wert in Datei schreiben
Set FHEMFile2 = fso.CreateTextFile(DateiName2, 1, false)
FHEMFile2.WriteLine(SRV(3))
FHEMFile2.Close
5. Asp-Datei erstellen und Wert rein schreiben
<head><title>Leistung</title></head>
<%
Dateiname = "./fpdb/wetter.csv"
Set fs=Server.CreateObject("Scripting.FileSystemObject")
on error resume next
if (fso.FileExists(DateiName)) then
Set f=fs.OpenTextFile(Server.MapPath(Dateiname), 1)
on error resume next
do while f.AtEndOfStream = false
on error resume next
data = Split(f.ReadLine,";")
loop
end if
%>
<body>
<table border="0" width="100%" cellspacing="32">
<tr>
<td width="100%" align="right"><font color="#FF0000" size="2" face="Verdana"><%response.write(data(15) & " W")%></font></td>
</tr>
<tr>
<td width="100%" align="right"><font color="#FF0000" size="2" face="Verdana"><%response.write(data(16) & " W")%></font></td>
</tr>
<tr>
<td width="100%" align="right"><font color="#FF0000" size="2" face="Verdana"><%response.write(data(17) & " W")%></font></td>
</tr>
<tr>
<td width="100%" align="right"><font color="#FF0000" size="2" face="Verdana"><%response.write(data(18) & " W")%></font></td>
</tr>
</table>
</body>
6. Datei in Foorplan einbinden
# Leistung
define Leistung weblink iframe http://www.DeinServer.de/leistung.asp (http://www.deinserver.de/leistung.asp)
attr Leistung fp_Haus 2,265,0
attr Leistung htmlattr width="160" height="330" frameborder="0" marginheight="0" marginwidth="0"
attr Leistung room Leistung
fertig!!!
Gruß
Lothar
Du weisst aber schon, dass FileLog eine GET Funktion eingebaut hat, mit der Du das Auslesen von Werten aus dem Logfile in einem einzigen Befehl machen kannst?
und eine readingsGroup die statusicon und verbrauch anzeigt macht nicht was du möchtest?
define power readingsGroup TYPE=FBDECT:state,power
attar power valueIcon {state => '%devStateIcon'}
gruss
andre
Hallo,
ich wusste mir nicht anders zu helfen, da ich nicht weis, wie das geht. Bitte mal ein Beispiel machen.
Danke!