Beliebige Werte aus Log-Dateien auslesen und im Floorplan darstellen

Begonnen von LotharRappsilber, 01 März 2014, 16:38:16

Vorheriges Thema - Nächstes Thema

LotharRappsilber

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
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
FB 7590, FHEM, 1xCCU2, 6xDECT200, 1xDECT201, 1xHMIP-SWO-PL, 1xHMIP-PS, 1xDECT301,  2xHM-LC-Sw1-PL

betateilchen

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?
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

justme1968

#2
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
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

https://github.com/sponsors/justme-1968

LotharRappsilber

Hallo,

ich wusste mir nicht anders zu helfen, da ich nicht weis, wie das geht. Bitte mal ein Beispiel machen.

Danke!
FB 7590, FHEM, 1xCCU2, 6xDECT200, 1xDECT201, 1xHMIP-SWO-PL, 1xHMIP-PS, 1xDECT301,  2xHM-LC-Sw1-PL