Änderungen

Wechseln zu: Navigation, Suche

HM-ES-TX-WM/Strom-Script01

2.380 Byte hinzugefügt, 16:21, 12. Feb. 2015
Es werden folgende Systemvariablen benötigt:
Name &nbsp;: eCountToday Typ: Zahl Einheit kWh<br/>Name &nbsp;: eCountYesterday Typ: Zahl Einheit kWh<br/>Name &nbsp;: eCostToday Typ: Zahl Einheit: EUR<br/>Name &nbsp;: eCostYesterday Typ: Zahl Einheit &nbsp;: EUR<br/>Name &nbsp;: eEXMemory Typ: Zeichenkette Einheit &nbsp;: WH (Einheit is egal is nur Show)
<br/>var serialCounter = "XXXXX"; in jedem der Scripts mit der Seriennummer des eigenen Aktors füllen.
Script 1 darf nur einmal am Tag (um 0 Uhr zweckmässigerweise) laufen und ermittelt den gestrigen Verbrauch und speichert den Zählerstand.
<div style="background:#eee; border:1px solid #ccc; padding:5px 10px">
:<code>!! Energy Costs Part 1&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<br/>!!<br/>!! Berechnet die verbrauchten kWh seit dem letzten Aufruf + Preis<br/>!! sollte einmal tgl. um 0 Uhr laufen<br/>!! 02/15&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<br/>!! (c) by thkl<br/>!!<br/>!! Benötigte SystemVariablen:<br/>!! Name : eCountYesterday Typ: Zahl Einheit kWh<br/>!! Name : eCostYesterday Typ: Zahl Einheit : EUR<br/>!! Name : eEXMemory Typ: Zeichenkette<br/>!!<br/>!! Verbrauchte Energie wird nach Scriptlauf in eCountYesterday in kWh gespeichert Kosten in eCostYesterday<br/><br/>!! serialCounter mit Seriennummer des HM Zählers füllen<br/><br/>var serialCounter = "XXXXX";<br/>var dpname = "ENERGY_COUNTER";<br/>var priceKey = "curPrice";<br/><br/>var eEXMemory = dom.GetObject("eEXMemory");<br/>var svCountYesterday = dom.GetObject("eCountYesterday");<br/>var svCostYesterday = dom.GetObject("eCostYesterday");<br/>object devEnergyDP = dom.GetObject("BidCos-RF."#serialCounter#":1."#dpname);<br/>string tmpSVal = eEXMemory.State();<br/>real devcount = devEnergyDP.State();<br/>real statelast = tmpSVal.ToFloat();<br/>real cnyday = devcount-statelast;<br/><br/>string stdout;string stderr;<br/>string cmd = "/bin/sh -c 'cat /etc/config/energyPrice|sed -r \"s/\\"//g\"'";<br/>system.Exec(cmd, &stdout, &stderr);<br/>string sep = "\n";<br/>string part;<br/>string strCur;<br/>real price;<br/><br/>foreach(part,stdout.Split(sep)) {<br/>&nbsp; string key = part.StrValueByIndex(":",0);<br/>&nbsp; string val = part.StrValueByIndex(":",1);<br/>&nbsp; if (key==priceKey){<br/>&nbsp; &nbsp; price = val.ToFloat();<br/>&nbsp; }<br/>&nbsp; if (key=="currency") {<br/>&nbsp; &nbsp; strCur=val;<br/>&nbsp; }<br/>}<br/><br/>eEXMemory.State(devcount.ToString());<br/><br/>integer kwf = 1;<br/><br/>if (priceKey=="curPrice") {<br/>&nbsp; kwf = 1000;<br/>}<br/><br/>real costyed = price * (cnyday/kwf);<br/>svCountYesterday.State((cnyday/kwf));<br/>svCostYesterday.State(costyed);</code><br/>
</div>
250
Bearbeitungen