Ich erfasse täglich einige Eckdaten zur Energieverbrauchsermittlung des Hauses. Darunter fallen auch Stromverbräuche von Brunnen- und Schwimmbadpumpe. Bisher habe ich die Daten täglich aus der Weboberfläche abgelesen und händisch in Excel eingetragen....
Das tut man nicht!
Nun, Excel kann ja im Hintergrund fast jede Art von Verbindungen initiieren, natürlich auch HTTP. So weit ich mich da schon anderwertig schlau gemacht habe, gehts über die Microsoft MSXML2 Bibliothek recht einfach.
Den notwendigen URL bastle ich mir wie gewohnt mit dem Dummy-EXE und den Objektbezeichnern zusammen.
Ein Holperstein war noch im Hutschienen-Schalter der Unterschied zwischen "Energie-Zähler - Gerät" und "Energie-Zähler - Zentrale". Ersteres bekomme ich mit dem State() des in Klartext benannten Schalters, aber dieser Wert stellt sich nach Hardwarereset und/oder unerwartet zurück. Der "Energie-Zähler - Zentrale" kann über eine automatisch angelegte Systemvariable abgerufen werden.
Zum Glück gibts hier viewtopic.php?t=20945 ein kurzes Script, das die aktuellen Systemvariablen auflistet.
Code: Alles auswählen
Sub Brunnenpumpe()
Dim URL As String
' Dim HTMLDoc As New HTMLDocument
Dim objHTTP As Object
Dim xmlResults, xmlEntry, xmlChild As Object
Dim col, row As Integer
' Define the URL of the Homematic measurement data
URL = "http://192.168.1.30:8181/x.exe?kWh=dom.GetObject(%22svEnergyCounter_23141_TEQ0001244:2%22).State()"
' Create an XMLHTTP object
Set objHTTP = CreateObject("MSXML2.ServerXMLHTTP")
' Open the URL
objHTTP.Open "GET", URL, False
' Send the request
objHTTP.send
' Wait for the data to load
Do While objHTTP.readyState <> 4
DoEvents
Loop
Set xmlResults = objHTTP.responseXML
Set xmlEntry = xmlResults.FirstChild
For Each xmlEntry In xmlResults.ChildNodes
For Each xmlChild In xmlEntry.ChildNodes
If xmlChild.tagName = "kWh" Then 'kWh stammt aus dem Retourwert der obigen URL
ActiveCell.Value = Val(xmlChild.Text) / 1000
End If
Next xmlChild
Next xmlEntry
End Sub
Der Code kann natürlich für andere Komponenten beliebig angepasst werden. Ich habe die URL im Firefox vorher ausprobiert und so das zu erwartende XML schon analysieren können.
Ich habe lang nach einer "Excel greift auf Homematic CCU ohne Umweg eines Webbrowsers" Lösung gesucht.
Wenns jemand brauchen kann....
schönen Sonntag noch
Kris