IPswitch-SG

Hallo,

meine obige Fragestellung hat sich erledigt.

Ich mache es jetzt so:

<?

switch($_IPS['SENDER'])
{
    case "WebFront":
        SetValue($_IPS['VARIABLE'], $_IPS['VALUE']);
    switch($_IPS['VALUE'])
    {
       case 0: // Wert Assoziation
				file_get_contents("http://192.168.10.100/?Password=&oC1=1", false, NULL, 0,0);
				IPS_Sleep(3000); //5sek warten
				file_get_contents("http://192.168.10.100/?Password=&oC1=0", false, NULL, 0,0);
       break;
       case 1:
        	   file_get_contents("http://192.168.10.100/?Password=&oC1=1", false, NULL, 0,0);
				IPS_Sleep(3000); //5sek warten
				file_get_contents("http://192.168.10.100/?Password=&oC1=0", false, NULL, 0,0);
       break;
     }
    break;
}

?>

Nun aber möchte ich mich an das Thema „Strommessung“ herantasten.

Ich selbst habe „nur“ den IPSwitch SG.1. Daran sind 3 Stromzähler (2 Drehstrom und 1 Wechselstrom) angeschlossen.

Bei mir sieht die CSV.HTML Ausgabe so aus:

IPswitch csv m2-0Cv,0,0,0,0,0,0,0,0,35.0,0.0,0.0,0,0,0,0, 35.0, 0.0, 0.0, 0.0,-96.0,-97.0,-97.0,-97.0,00, 42463,78,16388, 42571,120,16388, 159644,715,16388, 0,0,0, 0,0,0, 0,0,0, 0,0,0,IPSG1,00,00,
su 08-07-12 17:27:39.460

Habe mal versucht anhand der dürftigen Herstellerdokumentation die einzelnen Zellen aufzuteilen (siehe Anhang).

Für mich stellen sich nun die Fragen:

a) wie logge ich den aktuellen Verbrauch mit - in welcher Spalte steht der aktuelle Verbrauch?

b) Wie bekomme ich es hin, dass ich meinen Zählerstand logge?

Das Auslesen der CSV.HTML Seite ist nicht das Problem. Ich habe vielmehr ein Logik-Denk-Porblem :confused:

Wie macht ihr es?

Mein Ziel ist es:

-> den aktuellen Vebrauch je Zähler zu sehen
-> den Zählerstand meines Hauptzählers in IPS darzustellen, welche NICHT an das SG.1 angeschlossen ist!!! Habe wie bereits beschrieben, 3 S0 Zähler geschaltet!

CSV-Format.xls (21.5 KB)

Hallo,

habe nun auch einen IPSwitch add. Habe an Port 16 einen Drehstromzähler, dieser liefert folgende Zeile in der Webgui:

iC16= 0000002748Wh + 00326Wh

Was bedeutet das, ich hätte eine Zahl erwartet. Muss ich die addieren oder ist nur die vordere (2748) interessant?!?

Vermute vorne ist die Gesamtsumme und hinten ist der aktuelle Verbrauch :).

Hallo pleibling,
richtig. Wenn Du dir die Ausgabe aus dem Code anschaust und mit der WebGUI vergleichst siehst Du schnell was wo rauskommt.

$data = @file_get_contents("http://$ip/csv.html");

if ($data == "")
    {Exit;}

$lines = explode(",", strip_tags($data));
print_r($lines); //zeigt in welchen Zeilen was steht.

$iC14_ZaehlerStand =    ($lines[14]+10200)/1000;//B + G WSZ ungeeicht
$iC14_AktVerbr =        $lines[23]/1000;

$iC15_ZaehlerStand =    ($lines[15])/1000;//Eltako WSZ geeicht
$iC15_AktVerbr =        $lines[24]/1000;

$iC16_ZaehlerStand =    ($lines[16]/1000)+('5522,282');//SwissNox DSZ ungeeicht //hier hab ich zum Vergleich den Zählerstand bei Inbetriebnahme addiert
$iC16_AktVerbr =        $lines[25]/1000;

PS: In Post 8 und 10 steht noch ein wenig mehr über das Teil.

Danke für dein Script Wolfgang, konnte mich ein wenig daran bedienen (bei meinem Versuch fehlte das „@“, deswegen kam ich nicht weiter).

Sieht nun bei mir so aus:

$data = @file_get_contents("http://192.168.40.123/csv.html");
if ($data == ""){Exit;}
$temp = explode(',,', $data);
$werte=explode(',',$temp[1]);
setvalue(11111 /*[Energie\Tagesverbrauch aktuell\Wohnen / WC / Diele]*/,((float)$werte[0])/1000);
setvalue(22222 /*[Energie\Tagesverbrauch aktuell\Küche / Licht / Steckdosen]*/,((float)$werte[1])/1000);
setvalue(33333 /*[Energie\Tagesverbrauch aktuell\Geschirrspüler]*/,((float)$werte[2])/1000);
setvalue(44444 /*[Energie\Tagesverbrauch aktuell\E-Herd Sicherung 1]*/,((float)$werte[3])/1000);
setvalue(55555 /*[Energie\Tagesverbrauch aktuell\E-Herd Sicherung 2]*/,((float)$werte[4])/1000);
setvalue(66666 /*[Energie\Tagesverbrauch aktuell\E-Herd Sicherung 3]*/,((float)$werte[5])/1000);
setvalue(77777 /*[Energie\Tagesverbrauch aktuell\Obergeschoß]*/,((float)$werte[6])/1000);
setvalue(88888 /*[Energie\Tagesverbrauch aktuell\Gesamt]*/,((float)$werte[7])/1000);

Ist erstmal nur für den aktuellen Verbrauch, lasse ich jede Minute laufen und habe somit aktuelle Daten. Morgen werde ich dann noch die Scripte für den Tagesverbrauch erstellen. Über das IPS Logging, kann ich dann auf die History zugreifen.

Habe mir heute mal direkt einen zweiten IPSwitch bestellt mit 5 weiteren Wechselstromzählern. Da ich noch 3 S0 Anschlüsse frei habe, liebäugle ich gerade mit 2 Wasserzählern, die ebenfalls S0 Anschlüsse haben :).

Ist wie ne Sucht, wenn man mal mit einem angefangen hat :).

Danke für deine Hilfe :).

Hallo Pleibling,

habe den Anfang Deiner Arbeit für den IPswitch add verfolgt, weil bei mir steht jetzt auch so ein Teil samt 8 S0 Zählern am Tisch. Ich möchte ein optimales Gesamtprojekt daraus machen. Das Rad scheint hier schon erfunden zu sein, aber leider verteilt auf verschiedene Projekte. Dazu habe ich folgende Artikel gelesen bzw mit in Betracht gezogen:

Deinen Artikel und Scriptbeginn hier und die vorigen Seiten dazu - weiters:

und das schöne Projekt:
http://www.raketenschnecke.net/rs-projekte/rs-ips-energy-forecast/

Wie ist Dein Projekt mit Ipswitch add weitergelaufen?
Wie sind Deine Erfahrungen und wie sieht das daraus entwickelte Gesamtkonzept samt Visualisierung aus?
Hast Du den Rest wie zb bei Raketenschnecke samt Grafik Highcharts automatisiert aber eben für IPswitch add?

LG Red Raz

hat eigentlich jemand von euch die Sensor Bus SB-S0 Module im Einsatz?

Grüatzi Freunde,

also ich habe mich jetzt einmal umgesehen und gesehen, dass Ihr hier einen bestimmten IP-Switch einsetzt.
Nämlich den Anfangs erwähnten für 129 Euro.

Ich habe allerdings alternativ dazu diesen gefunden (gleicher Hersteller!):

da ich für die verbleibenden 50 Euro lieber meine Freundin zum Essen einlade, würde ich von euch gerne Wissen (bevor ich den „falschen“ kaufe), ob jemand von euch mit dem günstigeren auch gute Erfahrungen gemacht hat. Bzw. aus der Doku sehen kann ob dieser funktionieren kann / bzw mit dem Skript von euch funktioniert.

Ich plane dazu diesen Zähler zu kaufen:
Drehstromzähler 3x380V mit S0 Impulsausgang

Damit hätte ich nämlich eine Verbrauchsmessung für 110 Euronen - das fände ich schon ganz schön funky :slight_smile:
Danke schonmal im Voraus!
Gruß,

Matthias

PS: Da die Links beim Hersteller sind bzw. dort hin zeigen, denke ich ist es Okay sie zu posten. Soweit mir bekannt sind nur Links erlaubt, welche zum Hersteller „zeigen“.

Habe den IPSwitch Mini nun seit 3 Wochen im Einsatz (1x Gaszähler, 1x Wasserzähler). Bisher lässt er sich absolut problemlos und zuverlässig durch IPS auslesen. Benutze jedoch nur die S0 Counterfunktion, dafür sind dir Scripte hier im Post dann doch etwas oversized :slight_smile:

Bye

gmop

Hallo Gemeinde,

hat jemand schon einmal den 1-Wire USB-Master in IP-Symcon eingebunden ?

Viele Grüße
Georg

Habe jetzt auch den IPswitch-add-Eingänge im Einsatz, Strom und Wasserzähler (600imp/kWh (iC16 und 1imp/Liter iC15). Die Impulse erzeuge ich mir jeweils mit einem Lichttaster auf Ferraris-Scheibe sowie Liter Zeiger, dies funktioniert auch. Die Anzeige der Werte aus den Feldern 15 und 16 in IPS für den Zählerwert funktioniert auch und wird bei Verbrauch korrekt hochgezählt. Nur den Aktuelle Wert (aktueller Verbrauch) aus den Feldern 24 und 25 sind nicht die aktuellen Werte sondern die Werte pro Stunde? habt ihr da in dem Add-E noch etwas eingestellt? Oder habt ihr den Aktuellen Wert in IPS errechnet?

Zähler.png

Mein aktueller Verbrauch ist 0 aber es werden halt die 0,3 L/h angezeigt.

Hallo gmop,

ich überlege auch, den IPSwitch Mini zu beschaffen (http://www.sms-guard.org/downloads/IPswitch-S0-mini-Anleitung.pdf).
Wie sind deine Langzeiterfahrungen, wie genau sind die S0-Zählungen? Ist ja doch nicht ganz billig das Teil.
Kannst du vielleicht dein Skript hier zur Verfügung stellen?

Danke fürs Feedback!

Hallo Peter,

also kurz zwei Dinge:

  1. Der Zähler zählt nur Pulse, wieviele das pro kWh sind hängt von dem angeschlossenen Messgeräten ab. Ich denke hier ist viel mehr Sorge für Ungenauigkeiten zu hegen.

  2. Ich habe am IPSwitch seit ungefähr 2 Jahren einen Zähler von EAC mit 800Imp./kWh, weil ich dachte mein Ferraris-Zähler wäre ein wenig zu gutmütig im Sinne vom Netzbetreiber habe ich messen lassen:
    Ferraris-Zähler = +99% (Also quasi das Doppelte)
    EAC & IPSwitch = quasi zu 100% Deckungsgleich mit dem geeichten Zähler vom Betreiber.
    Update: Das ist das Teil (wenn auch ein anderer Hersteller, gleiches Gerät) B+G E-Tech DRT728D - digitaler Stromzähler Drehstromzähler Wattmeter für DIN Hutschiene 3x20(80)A LCD S0: Amazon.de: Baumarkt

Gruß,
Matthias

Hallo Peter,

ich habe auch den IPSwitch. Allerdings muss ich sagen, habe ich diesen noch nie wirklich zu 100% in IPS in Betrieb genommen. Ich würde gerne das IPS Modul PowerControl für meine Verbrauchsstatistiken verwenden. Im Grund habe ich nur zwei Zähler (Hausstrom und Wärmepumpe). Diese beiden reichen mir für die Statistik.

Ein entsprechendes Script zum interpretieren der CSV.HTML habe ich bereits:

Quelle CSV.HTML:
IPswitch csv m2-0Cv,0,0,0,0,0,0,0,0,32.5,0.0,0.0,0,0,0,0, 32.5, 0.0, 0.0, 0.0, 25.9, 26.3,-96.0,-97.0,00, 443710,1,16388, 635063,162,16388, 2596201,2866,16388, 0,0,0, 0,0,0, 0,0,0, 0,0,0,IPSG1,00,00,
mo 00-00-00 08:04:22.070

Nun kommt aber meine Fragestellung: Was sind nun die nächsten Schritte. Genau hier bin ich immer wieder gescheitert… :banghead:

Hoffe ihr könnt mir helfen…

Hallo,

Ich habe die Daten des Zählers einfach in eine Variable geschrieben und erstelle mir damit Statistiken.

Wie weit bist du mit den Zähler, zählt er seinen Verbrauch schon korrekt?

Also aktuell schreibe ich auch die Werte in Variablen:

/**********************************************************************************************************************
* Stromverbrauch ermitteln
**********************************************************************************************************************/

$data = file_get_contents("http://$ip_ipswitch_sg1/csv.html");
//$data = file_get_contents("http://$ip/csv.html/?Password=Pass&sb.html");

$lines = explode(",", strip_tags($data));
//print_r($lines); //zeigt in welchen Zeilen was steht.

$iT1_ZaehlerStand = (($lines[25])+18261695)/1000; //Wärmepumpe
//print_r($lines[25]);
//Stand 08.12.2014 = 23087

$iT1_AktVerbr = $lines[26];
//print_r($iT1_ZaehlerStand);

$iT2_ZaehlerStand = ($lines[28])/1000; //Wärmepumpe Steuerung
$iT2_AktVerbr = $lines[29];

$iT3_ZaehlerStand = (($lines[31])+19490968)/1000; //Hausstrom
$iT3_AktVerbr = $lines[32];
//print_r($iT3_ZaehlerStand);
//Stand 08.12.2014 = 26437

//Wärmepumpe
SetValue(24476 /*[Verbrauch\Stromverbrauch\Wärmepumpe aktueller Verbrauch]*/ , $iT1_AktVerbr);
SetValue(47400 /*[Verbrauch\Stromverbrauch\Wärmepumpe Zählerstand]*/, $iT1_ZaehlerStand);

//Wärmepumpe Steuerung
SetValue(46718 /*[Verbrauch\Stromverbrauch\WP Steuerung aktueller Verbrauch]*/ , $iT2_AktVerbr);
SetValue(58549 /*[Verbrauch\Stromverbrauch\WP Steuerung Zählerstand]*/ , $iT2_ZaehlerStand);

//Hausstrom
SetValue(49541 /*[Verbrauch\Stromverbrauch\Hausstrom aktueller Verbrauch]*/ , $iT3_AktVerbr);
SetValue(27876 /*[Verbrauch\Stromverbrauch\Hausstrom Zählerstand]*/, $iT3_ZaehlerStand);

//Gesamtverbrauch Strom
$Gesamtverbrauch = ($iT1_AktVerbr + $iT3_AktVerbr)/1000;
SetValue(33458 /*[Verbrauch\Stromverbrauch\Aktueller Stromverbrauch gesamt]*/ , $Gesamtverbrauch);

Wie prüfe ich den Zähler, ob der Verbrauch korrekt gemessen wird?

Könntest du mir mal ein wenig über deine Umgebung zeigen (Auslesen, Verbrauch des Zählers prüfen und deine Skripte zur Anzeige der Statistiken)…

Grüße

Wollte das Thema die Tage nochmal konkret angehen… Wäre super lieb, wenn jemand mir ein paar Tipps geben könnte…

Hallo Frad,

ich mache es nach wie vor so:

<?php
$ip = "192.168.178.20"; 
$data = file_get_contents("http://$ip/csv.html"); 

$lines = explode(",", strip_tags($data)); 

$iS01_ZaehlerStand = ($lines[16])/1000;  //Zähler Wärmepumpe 
$iS01_AktVerbr = $lines[19]; 

$iS02_ZaehlerStand = ($lines[17])/1000;   //Zähler Lüftung
$iS02_AktVerbr = $lines[20]; 

if($iS01_ZaehlerStand > 0)
{
    SetValue(59477, $iS01_AktVerbr); //Aktueller Verbrauch Wärmepumpe und Warmwasser
    SetValue(49736, $iS01_ZaehlerStand); //Aktueller Zählerstand Wärmpepumpe und Warmwasser
}

if($iS02_ZaehlerStand > 0)
{
    SetValue(16638 , $iS02_AktVerbr); //Aktueller Verbrauch Lüftung
    SetValue(53150 , $iS02_ZaehlerStand); //Aktueller Zählerstand Lüftung
}

Funktioniert ganz gut, auch wenn ich inzwischen wohl stattdessen eher einen Shelly dafür einsetzen würde.

Danke - wie hast du die Daten visualisiert und wie hast du die Variablen angelegt bzw mit welchem Profil?

Gesendet von iPhone mit Tapatalk

Ich habe einfach Float-Variablen angelegt und über das Webfront visualisiert.