Gå til innhold
  • Bli medlem
Støtt hjemmeautomasjon.no!

DrLaban

Medlemmer
  • Innlegg

    73
  • Ble med

  • Besøkte siden sist

  • Dager vunnet

    1

Innlegg skrevet av DrLaban

  1. Tror jeg har funnet ut hvorfor scriptet stopper etter en stund. Siden som åpnes har ett passord og jeg har jo vært innlogget via en nettleser under testningen.

    Det finnes en logon-URL som man kan logge på via JSON. Passordet er "admin". Tips til hvordan jeg får inne dette i scriptet?

     

    Har funnet følgende CURL-kommando som utfører logon

     

    curl -H "Content-Type: application/json" -X POST -d "admin" http://xx.xx.xx.xx/gateway/apipublic/logon

     

  2. Hva gjør de linjene der egentlig?

     

    Jeg har ett annet problem. Ser ut som Smappee'en noen ganger ikke svarer kjapt nok og da blir scriptet stående og henge.

    Eneste mulighet å løse det opp er å avslutte HS3 og starte det igjen. Tips til hvordan man kan få scriptet til å kutte hvis den ikke klarer å snakke med Smappee'en?

  3. Fikk revet broder´n bort fra TVen ett øyeblikk og han hjalp meg med å konvertere scriptet til VB.net :)
    Så da får vi se om det hjelper på minnelekkasjen...

     

    Imports System.Text.RegularExpressions
    Public Sub Main(ByVal parm As Object)
        Dim input As String = hs.GetURL("http://xx.xx.xx.xx", "/gateway/apipublic/reportInstantaneousValues", True, 80)
        Dim voltageRegex = New Regex("voltage=(\d+.\d+)")
        Dim match = voltageRegex.Match(input)
        Dim volt As Double = 0
        Double.TryParse(match.Groups(1).Value, System.Globalization.NumberStyles.Any, System.Globalization.CultureInfo.GetCultureInfo("en-us"), volt)
        Dim wattRegex = New Regex(" activePower=(\d+.\d+)")
        Dim matches = wattRegex.Matches(input)
        Dim watt As Double = 0
        For Each m As Match In matches
            Dim w As Double = 0
            Double.TryParse(m.Groups(1).Value, System.Globalization.NumberStyles.Any, System.Globalization.CultureInfo.GetCultureInfo("en-us"), w)
            watt = (watt + w)
        Next
        Dim ampereRegex = New Regex("current=(\d+.\d+)")
        matches = ampereRegex.Matches(input)
        Dim ampere As Double = 0
        For Each m As Match In matches
            Dim a As Double = 0
            Double.TryParse(m.Groups(1).Value, System.Globalization.NumberStyles.Any, System.Globalization.CultureInfo.GetCultureInfo("en-us"), a)
            ampere = (ampere + a)
        Next
        If (volt > 0) Then
            hs.SetDeviceValueByRef(839, volt, True)
        End If
    
        If (ampere > 0) Then
            hs.SetDeviceValueByRef(840, ampere, True)
        End If
    
        If (watt > 0) Then
            hs.SetDeviceValueByRef(841, watt, True)
        End If
    
        Dim kWh_Previous = hs.DeviceValueEx(842)
        Dim Session_kWh = ((0.0166667 * watt) / 1000)
        Dim kWh = (kWh_Previous + Session_kWh)
        If (kWh > 0) Then
            hs.SetDeviceValueByRef(842, kWh, True)
        End If
    End Sub

     

  4. HS3 kræsjet rett over kl.15 i dag og jeg ser da masse "out of memory"-meldinger. Kom så over denne tråden her hvor det kan se ut til at C#-skript forårsaker en minnelekkasje i HS3.

    http://board.homeseer.com/showthread.php?t=181824

     

    Noen som har vært borti noe lignende ved bruk av C# ?

    Har plenty med minne ledig (også når HS3 pakket sammen) så det er ikke fysisk minne det står på.

     

    Her er meldingen:

    jul-02 15:57:32   Error Running script: Exception of type 'System.OutOfMemoryException' was thrown.-> at System.Threading.Thread.StartInternal(IPrincipal principal, StackCrawlMark& stackMark) at System.Threading.Thread.Start(StackCrawlMark& stackMark) at System.Threading.Thread.Start() at A.c1b0f37609f28fb7afed8d440680e6db4.ce86a0a55d3661fa218b566b5ba926ee0(String ceefe476d1f77adc790c7782141798e1f, Boolean ce791fe9d8290e0d18cd0af1e42db139a, Int32 c3fda549ce0b74c9ad9fc210b529b2226, String c0cf6c15fc505ce256a93afdc5f2268a9, Boolean cc5b1dd80b9769b83d5de72520f2500e0, String c18f60d71139b909e1bc745dcca77e3f9, String cc463bfced87bf099c3125a86fe30843e, Int32 c135c28f517be83dec993779636acd860, String cdba5e903fed69597b9572ece7ed2b748, Object c70fb72fe0bbd8641a8134e71b176a648, Int32 caafe238b1576633e332c6c566f5707f4)
    jul-02 15:57:32   Event Running script in background: C:/Program Files (x86)/HomeSeer HS3/scripts/smappee.cs
  5. En liten modifikasjon til skriptet. Siden det kjøres hvert minutt så har jeg fått på plass en beregning av kWh.

    Denne beregningen legger til resultatet på en 4. device som da vil vise forbruket så langt i måneden. Denne blir så resatt til 0 ved månedsskiftet.

     

    Så også at jeg hadde noen 0-verdier i loggingen og fikk da på plass litt logikk som sørger for at den ikke skriver 0-verdier i databasen :)

     

    	if (volt > 0)
    	hs.SetDeviceValueByRef(839, volt, true);
    	
    	if (ampere > 0)
    	hs.SetDeviceValueByRef(840, ampere, true);
    	
    	if (watt > 0)
    	hs.SetDeviceValueByRef(841, watt, true);
       
    	var kWh_Previous = hs.DeviceValueEx(842);
    	var Session_kWh = (0.0166667 *watt)/1000;
    	var kWh = kWh_Previous + Session_kWh;
    	
    	if (kWh > 0)
    	hs.SetDeviceValueByRef(842, kWh, true);

    Som dere ser så stemmer beregningen veldig bra med NorthQ sin faktiske kWh-avlesning :) 

    smappee-kwh.png

    • Like 1
  6. Først en stor takk til @lilfire som hjalp meg med å få dette til å snurre som jeg ville :) 

     

    Resultatet ble følgende script - smappee.cs

    using System.Text.RegularExpressions;
    
    public Object Main(object[] parm)
    {
    	string input = hs.GetURL("http://xx.xx.xx.xx","/gateway/apipublic/reportInstantaneousValues",true,80);
    
    	var voltageRegex = new Regex(@"voltage=(\d+.\d+)");
    	var match = voltageRegex.Match(input);
    	double volt = 0;
                
    		double.TryParse(match.Groups[1].Value, System.Globalization.NumberStyles.Any, System.Globalization.CultureInfo.GetCultureInfo("en-US"), out volt);
    
    	var wattRegex = new Regex(@" activePower=(\d+.\d+)");
    	var matches = wattRegex.Matches(input);
    	double watt = 0;
    	foreach (Match m in matches)
    	{
    		double w = 0;
    		double.TryParse(m.Groups[1].Value,System.Globalization.NumberStyles.Any,System.Globalization.CultureInfo.GetCultureInfo("en-US"),out w);
    		watt += w;
    	}
    
    	var ampereRegex = new Regex(@"current=(\d+.\d+)");
    	matches = ampereRegex.Matches(input);
    	double ampere = 0;
    	foreach (Match m in matches)
    	{
    		double a = 0;
    		double.TryParse(m.Groups[1].Value, System.Globalization.NumberStyles.Any, System.Globalization.CultureInfo.GetCultureInfo("en-US"), out a);
    		ampere += a;
    	}
    
       hs.SetDeviceValueByRef(839, volt, true);
       hs.SetDeviceValueByRef(840, ampere, true);
       hs.SetDeviceValueByRef(841, watt, true);
    	return null;
    }

    Dette oppdaterer da de virtuelle devicene med id 839, 840, 841:

    smappee.png

  7. {"report":"Instantaneous values:<BR>voltage=231.2 Vrms<BR>FFTComponents:<BR>Phase 1:<BR>\tcurrent=15.286 A, activePower=2036.507 W, reactivePower=138.88 var, apparentPower=2041.237 VA, cosfi=99, quadrant=0, phaseshift=0.0, phaseDiff=0.0<BR>\tFFTComponents:<BR>Phase 2:<BR>\tcurrent=10.957 A, activePower=1164.875 W, reactivePower=885.356 var, apparentPower=1463.144 VA, cosfi=79, quadrant=0, phaseshift=0.0, phaseDiff=0.0<BR>\tFFTComponents:<BR>Phase 3:<BR>\tcurrent=6.914 A, activePower=869.43 W, reactivePower=310.927 var, apparentPower=923.355 VA, cosfi=94, quadrant=0, phaseshift=0.0, phaseDiff=0.0<BR>\tFFTComponents:<BR><BR>Load[468128] state[0] power: 0.0 on Fri Jul 01 10:24:01 GMT 2016<BR>Load[451667] state[0] power: 0.0 on Tue Jun 28 20:17:12 GMT 2016<BR>Load[445556] state[0] power: 0.0 on Fri Jul 01 16:19:30 GMT 2016<BR>Load[451672] state[0] power: 0.0 on Fri Jul 01 10:24:01 GMT 2016<BR>Load[514010] state[1] power: 416.7 on Fri Jul 01 16:11:11 GMT 2016<BR>Load[451666] state[0] power: 0.0 on Fri Jul 01 14:26:17 GMT 2016<BR>Load[442153] state[0] power: 0.0 on Fri Jul 01 11:03:37 GMT 2016<BR>Load[515991] state[0] power: 0.0 on Fri Jul 01 16:14:36 GMT 2016<BR>Load[461692] state[0] power: 0.0 on Fri Jul 01 10:24:01 GMT 2016<BR>Load[451669] state[0] power: 0.0 on Fri Jul 01 04:10:55 GMT 2016<BR>Load[514011] state[0] power: 0.0 on Thu Jun 30 15:34:11 GMT 2016<BR>Load[451674] state[0] power: 0.0 on Fri Jul 01 10:24:01 GMT 2016<BR>Load[458603] state[0] power: 0.0 on Fri Jul 01 10:16:42 GMT 2016<BR>Load[451668] state[0] power: 0.0 on Fri Jul 01 13:16:38 GMT 2016<BR>Load[451670] state[0] power: 0.0 on Fri Jul 01 10:24:01 GMT 2016<BR>Load[445557] state[0] power: 0.0 on Fri Jul 01 10:24:01 GMT 2016<BR>Load[457658] state[0] power: 0.0 on Wed Jun 29 06:59:16 GMT 2016<BR>Load[527288] state[0] power: 0.0 on Fri Jul 01 15:14:02 GMT 2016<BR>Load[630149] state[0] power: 0.0 on Fri Jul 01 10:24:01 GMT 2016<BR>Load[451671] state[0] power: 0.0 on Fri Jul 01 10:24:01 GMT 2016<BR>Load[590907] state[0] power: 0.0 on Fri Jul 01 10:24:01 GMT 2016<BR>Load[451673] state[0] power: 0.0 on Fri Jul 01 16:18:35 GMT 2016<BR>Load[514012] state[0] power: 0.0 on Wed Jun 29 16:30:26 GMT 2016<BR>Load[442151] state[0] power: 0.0 on Fri Jul 01 14:13:37 GMT 2016<BR><BR>Phase 1, peak active power 13669.545 W at 02/01/2016 19:41:15<BR>Phase 2, peak active power 9968.87 W at 26/12/2015 19:55:50<BR>Phase 3, peak active power 10276.411 W at 22/12/2015 19:19:10<BR>active energy RMS per phase mapping combination<BR>phase mapping 210=25019.658 kWh [* 1/3]<BR>phase mapping 12=7301.445 kWh [ 1/1]<BR>phase mapping 21=11958.187 kWh [ -1/1]<BR>phase mapping 102=13061.468 kWh [ 1/0]<BR>phase mapping 120=7810.615 kWh [ 1/2]<BR>phase mapping 201=4423.426 kWh [ 1/1]<BR><BR>active energy RMS (solar) per phase mapping combination<BR>phase mapping 210=0.0 kWh [* 1/3]<BR>phase mapping 12=0.0 kWh [ 1/1]<BR>phase mapping 21=0.0 kWh [ -1/1]<BR>phase mapping 102=0.0 kWh [ 1/0]<BR>phase mapping 120=0.0 kWh [ 1/2]<BR>phase mapping 201=0.0 kWh [ 1/1]<BR><BR>"}

     

  8. 6 timer siden, Archos skrev:

    Jeg bruker en virtuell maskin som jeg kjører Pfsense på, som ruter WAN nettet (med Altibox i bridge mode). Her har man en veldig fin OpenVPN plugin, bare litt konfigruering, også gir den deg ferdige installasjon filer med programmet og configen for å koble til servern. Kan anbefale dette på det sterkeste. Også veldig kjekkt hvis man vil lage tidstyrt internett sperring for barna, eller andre ting.

     

    Ellers gir jeg også en stemme til TeamViewer.

    Jeg kjører det samme selv. Har kjørt Pfsense i flere år nå.

    Har dog fjernet altibox-sentralen og "terminerer" linja fra mediakonverteren rett i ESXi-serveren hvor Pfsense kjører.

     

    VPN er helt klart det safeste alternativet.

     

    Når det gjelder teamviewer så hadde jeg styrt unna det nå. De sliter med sikkerheten sin for øyeblikket ?

  9. Satt og kikket på det samme selv i går. Har en del slike bevegelsesensorer fra Fibaro og de har ikke oppdatert statusen på lenge.

    Noen av de har batteristatus på 0% og andre har 100% ?

  10. Jeg har funnet ett PHP-script som henter ut 3 verdier fra min Smappee energimåler.

     

    Er det noen som kunne ha hjulpet meg med å få dette scriptet (eller konvertert det til VB.net) til å oppdatere 3 virtuelle devicer i HS3?

     

    Som dere sikkert ser så henter det ut watt og ampere-verdiene for alle de 3 fasene og legger disse i sammen slik at man får en total watt og total ampere.

     

    Outputen av scriptet er:

    - Volt

    - Total watt

    - Total ampere

     

    Jeg ønsker å oppdatere 3 devicer med respektive verdier hver gang HS3 kjører scriptet.

     

    Anyone?  :)

    <?php
    define("smappee_ip","xx.xx.xx.xx"); // change this to your smappee ip
    
    $alles = file_get_contents("http://".smappee_ip."/gateway/apipublic/reportInstantaneousValues");
    $allesAR = json_decode($alles);
    $unformated = $allesAR->report;
    
    // volt
    preg_match("/voltage=(\\d*.\\d)/", $unformated, $matches);
    $volt = $matches[1];
    
    // watt
    preg_match_all("/ activePower=(\\d*.\\d*)/", $unformated, $matches);
    $p1_watt = $matches[1][0];
    $p2_watt = $matches[1][1];
    $p3_watt = $matches[1][2];
    
    // ampere
    preg_match_all("/current=(\\d*.\\d*)/", $unformated, $matches);
    $p1_amp = $matches[1][0];
    $p2_amp = $matches[1][1];
    $p3_amp = $matches[1][2];
    
    
    // adding the stuff
    $all_watt     = (float)$p1_watt+(float)$p2_watt+(float)$p3_watt;
    $all_ampere = (float)$p1_amp+(float)$p2_amp+(float)$p3_amp;
    
    $all = array("watt"=>$all_watt,"volt"=>$volt,"ampere"=>$all_ampere);
    
    $ausgabe = array("all"=>$all);
    echo json_encode($ausgabe);
    ?>

     

×
×
  • Opprett ny...

Viktig informasjon

Vi har plassert informasjonskapsler/cookies på din enhet for å gjøre denne siden bedre. Du kan justere dine innstillinger for informasjonskapsler, ellers vil vi anta at dette er ok for deg.