+ Antworten
Seite 3 von 3 ErsteErste 1 2 3
Ergebnis 21 bis 29 von 29
  1. #21
    Registriert seit
    Dec 2015
    Beiträge
    24

    Hallo,

    danke für die Info. Da hat sich beim Ändern der Variablen doch glatt ein Fehler eingeschlichen, sorry. Es fehlte eine ELSE Anweisung, Zeile 20-23.

    PHP-Code:
    <? 

    $Wertzuletzt 
    GetValue(21728 /*Variable für den letzten Zählerstand*/); 
    $WertaktuellGetValue(21797 /*HM-Gaszähler*/); 
    $Zaehlerstand GetValue(44229 /*Variable für den Gesamtzählerstand*/); 
    $letzteAktualisierung GetValue(14663 /*Variable für den Zeitpunkt der letzten Aktualisierung*/); 


    if(
    $Wertaktuell $Wertzuletzt/* Wenn der aktuelle Zählerstand kleiner als der letzte ist */ 

     if(
    $Wertzuletzt 8388600/* Wenn der Zählerstand grösser als 8388600 ist, wurde der maximale Zählerwert überschritten */ 
     

      
    $Delta $Wertheute+8388608-$Wertzuletzt/* den Zählerstand nach dem Überschreiten des Maximalwertes berechnen */ 
     

     else 
     { 
      
    $Dealta $Wertheute/* Wenn der aktuelle Zählerstand kleiner als der letzte ist und das zurücksetzen vor 8388600 war, wurde der Zähler z.B. durch einen Batterietausch zurückgesetzt */ 
     


    else
    {
    $Delta $Wertaktuell-$Wertzuletzt;
    }

    $Zaehlerstand=$Zaehlerstand+$Delta

    /* Berechnung der Zeit zwischen den letzten beiden Aktualisierungen */ 
    $Variable=IPS_GetVariable(21797 /*HM-Gaszähler*/); 
    $Aktualisierung=$Variable["VariableUpdated"]; 
    $DeltaTime=$Aktualisierung-$letzteAktualisierung

    /* aktuellen Verbauch berechnen */ 
    $Verbrauch=3600*$Delta/$DeltaTime

    /* Werte in die Variablen schreiben */ 
    SetValue(44229 /*Variable für den Gesamtzählerstand*/,$Zaehlerstand); 
    SetValue(21728 /*Variable für den letzten Zählerstand*/,$Wertheute); 
    SetValue(14663 /*Variable für den Zeitpunkt der letzten Aktualisierung*/,$Aktualisierung); 
    SetValue(28672 /*Variable für den aktuellen Verbrauch*/,$Verbrauch); 
    ?>
    lg, Andy

  2. #22
    Registriert seit
    Jan 2012
    Ort
    Neu-Isenburg
    Beiträge
    182

    Vielen Dank für deine Antwort, der Fehler mit der Undefinierten Variable "Delta" ist jetzt weg. Doch wird mir immer noch der Fehler ausgespuckt das Variable "Wertheute" undefiniert sei. Auch ist des derzeit so das der komplette Energie_Counter Wert auf den Gesamtzähler addiert wird. Die Variable Zählerstand wird jedesmal auf Null gesetzt. Auch kommt beim aktuellen Verbrauch ein falscher Wert zustande!
    Ich häng mal 2 Screenshots an wo man erkennen kann das der Gesamtzählerstand mit dem Energy-Counter addiert wird.

    Klicken Sie auf die Grafik für eine größere Ansicht 

Name:	Bildschirmfoto 2017-06-21 um 16.29.33.jpg 
Hits:	45 
Größe:	96.9 KB 
ID:	39539
    Klicken Sie auf die Grafik für eine größere Ansicht 

Name:	Bildschirmfoto 2017-06-21 um 16.30.55.jpg 
Hits:	53 
Größe:	101.1 KB 
ID:	39540
    Irgendetwas scheint noch nicht richtig zu sein und meine PHP Kenntnisse reichen nicht aus um den Fehler selbstständig zu finden.

  3. #23
    Registriert seit
    Jun 2012
    Ort
    House of Dragons @ Lübeck
    Beiträge
    9,002

    Dann nimm doch lieber das PHP-Modul. Ist vielleicht einfacher:
    [Modul] Homematic Extended (Systemvariablen, Programme, Powermeter, u.v.m.)
    Michael
    on Win7VM (ESXi): I5, 24GB RAM, HW-RAID5, 3xSat | HW: CCU + 123 Geräte (506ch), EM1000, CUL, 1Wire, XBee, ELRO 433MHz, FritzBox Cable, Android Phone + Tablet, Samsung C-Serie TV +SamyGo-Ext, Onkyo NR| SW: IPS, Apache2(mod_ssl/PHP), MySQL, hMailServer, PRTG, Rising AV, Piwik, RoundCube, Wordpress, WinLIRC, WHS2011, MediaPortal, XBMC

  4. #24
    Registriert seit
    Jan 2012
    Ort
    Neu-Isenburg
    Beiträge
    182

    Das würde ich sofort machen nur macht der Energie Zähler der CCU2 nicht das was er soll, ich bisher 3 mal die Batterien Tauschen müssen am Sender (weil leer), und 2 mal ist es vorgekommen das der Zähler der CCU2 nicht weiter gezählt hat. Erst gestern als ich die Batterien wieder getauscht hatte, Zählte er weiter. Auch stört es mich hier das ich hier nicht den Aktuellen realen Wert des Stromzählers setzten kann, auf den dann hochgerechnet werden kann.

    Das Script hier wäre schon eine coole Lösung!

  5. #25
    Registriert seit
    Dec 2015
    Beiträge
    24

    Hallo,

    so ich hoffe, diesmal hab ich beim Anpassen der Variablen nichts übersehen (mal sollte das halt auch nicht schnell so neben der Arbeit machen ;-) )

    PHP-Code:
    <?  

    $Wertzuletzt 
    GetValue(21728 /*Variable für den letzten Zählerstand*/);  
    $Wertaktuell GetValue(21797 /*HM-Gaszähler*/);  
    $Zaehlerstand GetValue(44229 /*Variable für den Gesamtzählerstand*/);  
    $letzteAktualisierung GetValue(14663 /*Variable für den Zeitpunkt der letzten Aktualisierung*/);  


    if(
    $Wertaktuell $Wertzuletzt/* Wenn der aktuelle Zählerstand kleiner als der letzte ist */  
    {  
     if(
    $Wertzuletzt 8388600/* Wenn der Zählerstand grösser als 8388600 ist, wurde der maximale Zählerwert überschritten */  
     
    {  
      
    $Delta $Wertaktuell+8388608-$Wertzuletzt/* den Zählerstand nach dem Überschreiten des Maximalwertes berechnen */  
     
    }  
     else  
     {  
      
    $Dealta $Wertaktuell/* Wenn der aktuelle Zählerstand kleiner als der letzte ist und das zurücksetzen vor 8388600 war, wurde der Zähler z.B. durch einen Batterietausch zurückgesetzt */  
     
    }  
    }  
    else 

    $Delta $Wertaktuell-$Wertzuletzt


    $Zaehlerstand=$Zaehlerstand+$Delta;  

    /* Berechnung der Zeit zwischen den letzten beiden Aktualisierungen */  
    $Variable=IPS_GetVariable(21797 /*HM-Gaszähler*/);  
    $Aktualisierung=$Variable["VariableUpdated"];  
    $DeltaTime=$Aktualisierung-$letzteAktualisierung;  

    /* aktuellen Verbauch berechnen */  
    $Verbrauch=3600*$Delta/$DeltaTime;  

    /* Werte in die Variablen schreiben */  
    SetValue(44229 /*Variable für den Gesamtzählerstand*/,$Zaehlerstand);  
    SetValue(21728 /*Variable für den letzten Zählerstand*/,$Wertaktuell);  
    SetValue(14663 /*Variable für den Zeitpunkt der letzten Aktualisierung*/,$Aktualisierung);  
    SetValue(28672 /*Variable für den aktuellen Verbrauch*/,$Verbrauch);  
    ?>
    lg, Andy

  6. #26
    Registriert seit
    Sep 2016
    Ort
    Bochum
    Beiträge
    35

    Auf die schnelle geguckt: wo definierst Du "$Wertheute"?
    Evtl. läuft auch die erste IF-Abfrage ins Leere - dann wird $Delta nicht erzeugt. Vielleicht am Anfang $Delta = 0 hinzufügen. Dann gibt es die Variable zumindest. Wenn $Delta dann 0 bleibt, greift die erste If-Abfrage nicht - die hat keinen "else"-Teil.

    Gruß,

    Uwe

  7. #27
    Registriert seit
    Dec 2015
    Beiträge
    24

    Hallo,

    $Wertheute sollte eigentlich $Wertaktuell heissen, hatte nur ein altes Script in der Fa. und beim Ersetzen hab ich scheinbar ein paar Variablen übersehen.

    lg, Andy

  8. #28
    Registriert seit
    Dec 2015
    Beiträge
    24

    PS: das mit if stimmt, aber in der aktuellen Version ist ein else drinnen die das Abfängt.

  9. #29
    Registriert seit
    Mar 2013
    Beiträge
    61

    Hallo zusammen, könnte ich evtl.als unerfahrener USer eine exakte Schritt für Schritt anleitung bekommen, um den Gaszähler vernünfitig anzeigen zu lassen? Eigentlich möchte ich ja nur den bisherigen Wert des Verbrauchs dem ab jetzt gezählen Wert zu addieren. Quasi, Wert XXXXX + dem ab jetzt gezählten, steigenden Wert

    VG
    Heuser

Ähnliche Themen

  1. Gaszähler und EKM
    Von Carnage im Forum IPS-868 / ProJET, XBee, ZigBee, XPort
    Antworten: 3
    Letzter Beitrag: 09.12.11, 18:01
  2. Impulse Gaszähler abgreifen
    Von tinus im Forum Bastel-Ecke
    Antworten: 36
    Letzter Beitrag: 07.01.11, 13:23
  3. Gaszähler loggen
    Von DeejayT im Forum IP-Symcon WIIPS
    Antworten: 3
    Letzter Beitrag: 25.03.09, 18:44
  4. Gaszähler anbinden?
    Von Ferengi-Master im Forum 1-Wire, M-BUS
    Antworten: 8
    Letzter Beitrag: 24.07.08, 21:40
  5. Gaszähler ablesen
    Von Hausautomation im Forum Haustechnik
    Antworten: 1
    Letzter Beitrag: 05.06.08, 18:51