+ Antworten
Seite 2 von 8 ErsteErste 1 2 3 4 ... LetzteLetzte
Ergebnis 11 bis 20 von 76
  1. #11
    Registriert seit
    May 2008
    Ort
    Forstern
    Beiträge
    932

    Zitat Zitat von tango Beitrag anzeigen
    Wie ermittelst Du den Namen Deines Stromzählers bzw. seiner Variablen? Zeile 25 mit "Value"?
    Das ist meine Variable die den realen Verbrauch beinhaltet (im Bild = Stromzähler), welcher die Ident "Value" hat und unterhalb des Scriptes hängt. Kommt über ein Homematic HM-ES-TX-WM rein.

    Zitat Zitat von tango Beitrag anzeigen
    Und der lange String in Zeile 19 "{43192F0B-135B-4CE7-A0A7-1475603F3060}" ist die InstanzID Deiner gesamten Installation? Wo bekomme ich die für mich her?
    Damit ermittele ich die Inctance Id des Archiv Controls, sollte bei Dir die gleiche sein. Schau dir mal die Doku von "IPS_GetModuleList" an.


    Zitat Zitat von tango Beitrag anzeigen
    Wenn ich nun verschiedene Zähler auslesen wollte würde ich für jeden Zähler ein eigenes Skript anlegen? Ich habe separate Zähler für Haus, Auto, Heizung...

    Sorry für die blöden Fragen, aber ich mag die Sachen verstehen, die ich laufen lasse - soweit möglich zumindest.
    Viele Wege führen nach Rom Es kommt drauf an was Du mit den Erkenntnissen machen möchtest.
    Aus dem Bauch heraus würde ich nicht das Script duplizieren, sondern die Aufrufe im Script, also das für die 3 Zähler jeweils Durchlaufen und wegschreiben und zusätzlich die Daten am Ende zusammenaddieren um das große ganze zu sehen. Deine Entscheidung!

    Ciao Pitti
    SERVER: FritzBox 7490, Raspberry Pi 3, CCU2 und IP-Symcon V5.1 (Ninja) | SYSTEME: Amazon ECHOs, Apple TVs, Homematic/HmIP, LevelJet, Logitech Harmony, Pioneer AVR, Philips Hue, Samsung TV's, Somfy RFX, Apple & Android Handys & Tablets | MODULE: IPSymconAwido, IPSymconToolmatic, IPSymconAlmanac, SymconMHC | SKINS: WwxSkin

  2. #12
    Registriert seit
    May 2014
    Ort
    Großraum Stuttgart
    Beiträge
    90

    Sorry, Frage erstmal gelöscht, habe nicht gesehen, dass auf der zweiten Seite noch Antworten sind. Muss das erstmal abarbeiten...
    Geändert von tango (26.01.18 um 18:12 Uhr) Grund: Irrtum
    Gruß tango
    __________________________________________________ _________________
    IPS 5 im virtuellen W2K12R2. Homematic auf Raspimatic. Eisspeicher mit UVR 16x2 und UVR1611.

  3. #13
    Registriert seit
    May 2014
    Ort
    Großraum Stuttgart
    Beiträge
    90

    You made my day! Vielen Dank.

    Habe in Zeile 25 einfach meine Variablennummer eingetragen - gleich hat es funktioniert. Ich habe das Skript jetzt noch für die drei Zähler angelegt und so habe ich eine Liste mit Werten. Ist noch nicht schön aufbereitet, aber die Zahlen sind gut!

    Zwischen Verbrauchszähler (SDM630) und Erzeugung (Kostal Piko 10.1) muss ich noch eine Eigenverbrauchsberechnung schalten und die dann auch mitloggen lassen, dann sieht es schon zu 90% so aus, wie ich es mir wünsche.

    Am Ende möchte ich am liebsten noch "rollierende" Tages-, Monats- und Jahreswerte bekommen. So ein Jahres- oder Monatsanfang ist ja was willkürliches, im Prinzip fängt ja jeden Tag wieder ein neuer Monat und ein neues Jahr an, das man mit dem Monat oder Jahr davor vergelichen kann, da muss man nicht auf Sylvester warten.

    Aber für den Augenblick ist das schon mal um Längen besser als seither.
    Gruß tango
    __________________________________________________ _________________
    IPS 5 im virtuellen W2K12R2. Homematic auf Raspimatic. Eisspeicher mit UVR 16x2 und UVR1611.

  4. #14
    Registriert seit
    Feb 2009
    Ort
    Berlin / Melsungen
    Beiträge
    549

    Hallo pitti,

    meinen herzlichsten Dank. Du hast innerhalb von Minuten die Lösung aller meiner Probleme geschickt. Ich habe seit Wochen probiert, genau diese Werte aus meinem SDM630 zu errechnen. Ich gebe zu, PHP ist nicht mein Freund, aber dank Dir bin ich etwas vertrauter, was die Funktion "function" betrifft. Also nicht nur schneller ans Ergebnis, sondern auch noch etwas gelernt.

    DANKE !!!


    Viele Grüße,

    Burkhard
    OMV 4.1 (Arrakis - NAS auf Odroid C2), HM-HMIP über CCU3 mit piVCCU, Symcon 5.1 und IPSView auf Raspi3, Wandpanels (IPSView), Harmony Hub, Fritzbox, Phillips Hue, KODI Mediaserver

  5. #15
    Registriert seit
    Feb 2009
    Ort
    Berlin / Melsungen
    Beiträge
    549

    Zitat Zitat von pitti Beitrag anzeigen
    Danke, na wenn Euch das so gut gefällt dann gleich das komplette Script
    Hallo pitti,

    jetzt hab ich doch ein Problem, heute morgen um 8:00 Uhr hat mein System die Werte ein letztes mal aktualisiert, danach nicht mehr. Ich weiß nur nicht warum.

    Wollte dann Dein Script durchlaufen lassen und sehen, ob ich irgendwo in meinem nen Fehler habe. Allerdings bricht Dein Script mit folgenden Fehlermeldungen ab:

    Warning: Object with ident Value could not be found in /var/lib/symcon/scripts/18891.ips.php on line 25

    Warning: Logging is not available for this variable in /var/lib/symcon/scripts/18891.ips.php on line 45

    Warning: Invalid argument supplied for foreach() in /var/lib/symcon/scripts/18891.ips.php on line 104

    Warning: Logging is not available for this variable in /var/lib/symcon/scripts/18891.ips.php on line 48

    Warning: Invalid argument supplied for foreach() in /var/lib/symcon/scripts/18891.ips.php on line 104

    Warning: Logging is not available for this variable in /var/lib/symcon/scripts/18891.ips.php on line 51

    Warning: Invalid argument supplied for foreach() in /var/lib/symcon/scripts/18891.ips.php on line 104

    Warning: Logging is not available for this variable in /var/lib/symcon/scripts/18891.ips.php on line 55

    Warning: Invalid argument supplied for foreach() in /var/lib/symcon/scripts/18891.ips.php on line 104

    Warning: Logging is not available for this variable in /var/lib/symcon/scripts/18891.ips.php on line 60
    Abort Processing during exceed of maximal ErrorCount: Invalid argument supplied for foreach()
    Error in Script /var/lib/symcon/scripts/18891.ips.php on Line 104
    Hast Du vielleicht eine Ahnung woran das liegen kann? Habe das Script direkt unter der SDM630 Instanz gesetzt.

    P.S.: Okay, er zeichnet jetzt Werte auf, war ein Fehler in der Hierarchie der IDs. JEtzt mal abwarten, ob er die Werte richtig triggert.

    Viele Grüße,

    Burkhard

    P.S.: Ich sag ja, PHP und ich, dass ist eine reine Hassliebe.
    Geändert von Burki24 (27.01.18 um 22:22 Uhr)
    OMV 4.1 (Arrakis - NAS auf Odroid C2), HM-HMIP über CCU3 mit piVCCU, Symcon 5.1 und IPSView auf Raspi3, Wandpanels (IPSView), Harmony Hub, Fritzbox, Phillips Hue, KODI Mediaserver

  6. #16
    Registriert seit
    May 2008
    Ort
    Forstern
    Beiträge
    932

    Hallo Burkhard,

    sorry, war dienstlich unterwegs und komme jetzt erst zum lesen!

    Vielen herzlichen Dank erstmal für dein nettes Lob. Ich bin immer wieder beeindruckt wie hier im Forum miteinander umgegangen wird. Selbst wenn man mal eine "dumme" Frage stellt wird nur dezent darauf hingewiesen, aber immer geholfen.

    Ich freue mich jedenfalls immer riesig wenn mein dazutun anderen weiter bringt und die Sachen gemeinsam weiterentwickelt werden.

    Zu Deinem Problem: wenn ich es richtig verstehe haste den Fehler selber gefunden. Das Script hat die Variable mit den Ident "Value" unter sich nicht gefunden.

    Schönen Sonntag
    Heiko
    SERVER: FritzBox 7490, Raspberry Pi 3, CCU2 und IP-Symcon V5.1 (Ninja) | SYSTEME: Amazon ECHOs, Apple TVs, Homematic/HmIP, LevelJet, Logitech Harmony, Pioneer AVR, Philips Hue, Samsung TV's, Somfy RFX, Apple & Android Handys & Tablets | MODULE: IPSymconAwido, IPSymconToolmatic, IPSymconAlmanac, SymconMHC | SKINS: WwxSkin

  7. #17
    Registriert seit
    May 2014
    Ort
    Großraum Stuttgart
    Beiträge
    90

    Hallo Heiko,

    das Stichwort "unter sich" (in Bezug auf "Value") war es. Ich hatte die Variablen nicht unter dem Skript angeordnet, sondern das Skript in einer eigenen Kategorie "Energieberechnung". Mit dem Befehl zur Ermittlung der Variablen-ID konnte es bei mir also nicht nicht funktionieren, deshalb und einfachheitshalber habe ich dann in Zeile 25 hinter "=" direkt meine Variablen-ID gesetzt und seither funktioniert es tatal gut.

    Hättest Du vielleicht auch noch Anregungen für die "rollierende Berechnung", also die letzten 24 Stunden, letzten 7 Tage, letzten 30,44 Tage oder 730,5 Stunden (1/12-Jahr) und letzten 365,25 Tage? Bin bin da schon wieder in einer Sackagasse im Excel könnte ich das ausdrücken, aber PHP

    Dank und schönen Sonntag.
    Gruß tango
    __________________________________________________ _________________
    IPS 5 im virtuellen W2K12R2. Homematic auf Raspimatic. Eisspeicher mit UVR 16x2 und UVR1611.

  8. #18
    Registriert seit
    May 2008
    Ort
    Forstern
    Beiträge
    932

    Hi tango,

    das sollte doch nach dem gleichen Schema laufen wie bei den anderen Aufrufen, d.h. der einzige Unterschied ist die richtige Zeitberechnung.

    PHP-Code:
    $now strtotime("now");
    $m24 strtotime("-1 day");

    echo 
    date('l dS \o\f F Y h:i:s A'$now), "\n";
    echo 
    date('l dS \o\f F Y h:i:s A'$m24); 
    Damit haste Du von JETZT minus 1 Tag, also die letzten 24 Stunden!
    Habs nicht ausprobiert,aber ich hätte das jetzt mal getestet:

    PHP-Code:
    $data AC_GetAggregatedValues($archiveID$valueID/* Täglich */strtotime("-1 day"), strtotime("now"), 0);  
    SetValueFloat($lastDayIDCalcConsumption($data)); 
    Und das dann in den entsprechenden Zeitsprüngen (-1 week) ....

    Ciao Pitti
    SERVER: FritzBox 7490, Raspberry Pi 3, CCU2 und IP-Symcon V5.1 (Ninja) | SYSTEME: Amazon ECHOs, Apple TVs, Homematic/HmIP, LevelJet, Logitech Harmony, Pioneer AVR, Philips Hue, Samsung TV's, Somfy RFX, Apple & Android Handys & Tablets | MODULE: IPSymconAwido, IPSymconToolmatic, IPSymconAlmanac, SymconMHC | SKINS: WwxSkin

  9. #19
    Registriert seit
    Feb 2009
    Ort
    Berlin / Melsungen
    Beiträge
    549

    Hallo pitti,

    richtig, ich hatte 2 Fehler eingebaut. Zum Einen hatte ich meiner Variable mit IPS_SetIdent(59017, "Value") keine Ident zugewiesen (war mir irgendiwe entfallen, da ich das sonst nicht nutze)und zum anderen war die Variable nicht unter dem Script einsortiert.

    Jetzt läuft es perfekt. In diesem Sinne, super Unterstützung.

    Viele Grüße,

    Burkhard
    OMV 4.1 (Arrakis - NAS auf Odroid C2), HM-HMIP über CCU3 mit piVCCU, Symcon 5.1 und IPSView auf Raspi3, Wandpanels (IPSView), Harmony Hub, Fritzbox, Phillips Hue, KODI Mediaserver

  10. #20
    Registriert seit
    May 2014
    Ort
    Großraum Stuttgart
    Beiträge
    90

    Ein kleiner Schritt für die Menschheit - ein großer Schritt für einen PHP-Newbie:

    Mein erster eigener Code zur Berechnung des Eigenverbrauchs, des Exports und Imports von Strom.

    Heiko, ich habe Deinen Code als Gerüst genommen - vielen Dank dafür.

    Im Moment berechne ich die jeweilige Leistung. Die Aggregation auf Arbeit kommt noch. Aber meine Freude ist schon mal groß Das Program ist nicht wirklich anspruchsvoll, aber als Programmierübung war es für mich wichtig!

    Die Variante mit der "rollierenden" Berechnung von Wochen-, Monats- und Jahreswert funktioniert übrigens gut.

    PHP-Code:
       <? 
    ################################################################################
    # Scriptbezeichnung: PV.Eigenverbrauch.ips.php
    # Version:    0.1
    # Author:    Stefan Krüger, 
    #             nach Anregungen von Heiko "pitti"
    #
    #            ANZUPASSEN: Zeile 33 und 38 LogdatenID der PV-Anlage und des Hausverbrauchszählers            
    #
    # Berechnung von Eigenverbrauch, Export und Import von Strom in Installationen 
    # mit PV-Anlage, Erzeugungszähler (z.B. über PV-Wechselrichter) und 
    # Haus-Verbrauchszähler.  

    # Ausbaustufe: Simulation eines Batteriespeichers
    #
    # ----------------------------- Konfigruration ---------------------------------
    #
    # Anzahl Nachkommastellen bei Ergebnissen
    $roundTo=2;                //Anzahl Nachkommastellen bei Ergebnissen 
    #
    # ----------------------------------- ID´s -------------------------------------
    #
    $parentID IPS_GetObject($_IPS['SELF']); 
    $parentID $parentID['ParentID']; 
    echo 
    $parentID;
    # ID des ArchiveHandler ermitteln 
    $instances IPS_GetInstanceListByModuleID('{43192F0B-135B-4CE7-A0A7-1475603F3060}'); 
    $archiveID $instances[0]; 
    #
    ################################################################################

    // Erzeugungszähler (15-Sekunden Messwert)
    $P_pvID 35644 /*[Außen\PV-Anlage\AC Leistung\AC-Leistung aktuell]*/
    $P_pv GetValueFloat ($P_pvID);
    echo 
    $P_pv" Erzeugung \n";

    // Verbrauchszähler (15-Sekunden Messwert)
    $P_hvID 39068 /*[Energie\SDM630 Hausverbrauch\SDM630-P-ges\SDM630-P-ges]*/;
    $P_hv GetValueFloat ($P_hvID);
    echo 
    $P_hv" Verbrauch \n";

    // Variablen anlegen bzw. auslesen für Export/Import/Eigenverbrauch als Leistung
    $P_ExportID       CreateVariableByName($parentID"Leistung Export"); 
    $P_ImportID       CreateVariableByName($parentID"Leistung Import"); 
    $P_SelfCID        CreateVariableByName($parentID"Leistung Eigenverbrauch"); 

    // -------------------------- BERECHNUNG Export/Import/Eigenverbrauch ----------
    if ($P_pv >= $P_hv) {
        
    // momentan liegt Stromüberschuss an, der exportiert/verkauft wird
        
    $P_Export round($P_pv $P_hv$roundTo);
        
    $P_SelfC  round($P_hv$roundTo);
        
    $P_Import 0;
        echo 
    $P_Export" Export ""\n"$P_SelfC" Eigenverbrauch";

        } else {
        
    // momentan liegt Strombezug aus dem Netz an, der angekauft wird
        
    $P_Import round($P_hv $P_pv$roundTo);    
        
    $P_SelfC  round($P_pv$roundTo);
        
    $P_Export 0;
        echo 
    $P_Import" Import ""\n"$P_SelfC" Eigenverbrauch";
        }
    SetValueFloat($P_ExportID $P_Export);
    SetValueFloat($P_ImportID $P_Import);
    SetValueFloat($P_SelfCID $P_SelfC);    
      

    // Variablen erstellen falls nicht vorhanden und ID entsprechend zuordnen 
    function CreateVariableByName($id$name

        
    $vid = @IPS_GetVariableIDByName($name$id); 
        if(
    $vid === false) { 
            
    $vid IPS_CreateVariable(2); 
            
    IPS_SetParent($vid$id); 
            
    IPS_SetName($vid$name); 
        } 
        return 
    $vid
    }
     
     
    ?>
    Gruß tango
    __________________________________________________ _________________
    IPS 5 im virtuellen W2K12R2. Homematic auf Raspimatic. Eisspeicher mit UVR 16x2 und UVR1611.