3 Phasen Stromzähler SDM630M DC alle Werte auslesen !!!! Installationssript !

Hallo,

Adapter -----Patchfeld(Kat6) -----10-15m(Kat5)--------HV (Waago-Trennklemmen)------- Zähler ---- 120Ohm

Zur Zeit ist nur ein Zähler angeschlossen.

Andreas

Abend,

ich komme mit der Installation gerade nicht so ganz klar, kann mir jemand 'nen tipp geben, was ich falsch mache ?

Ich habe das Script aus dem Anhang des ersten Posts in meinem IPS angelegt und manuell ausgeführt, bekomme daraufhin ne Menge Notices und die Struktur die ich danach habe sieht nicht so aus, wie sie glaube ich sein soll.


Notice:  Undefined offset: 1 in C:\IP-Symcon\scripts\40921.ips.php on line 527

Notice:  Undefined index: ProfileName in C:\IP-Symcon\scripts\40921.ips.php on line 615

Notice:  Undefined index: ProfileType in C:\IP-Symcon\scripts\40921.ips.php on line 645

Warning:  Profilname darf nicht leer sein in C:\IP-Symcon\scripts\40921.ips.php on line 645

Notice:  Undefined index: Prefix in C:\IP-Symcon\scripts\40921.ips.php on line 647

Notice:  Undefined index: Suffix in C:\IP-Symcon\scripts\40921.ips.php on line 647

Warning:  Variablenprofil # existiert nicht in C:\IP-Symcon\scripts\40921.ips.php on line 647

Notice:  Undefined index: MinValue in C:\IP-Symcon\scripts\40921.ips.php on line 649

Notice:  Undefined index: MaxValue in C:\IP-Symcon\scripts\40921.ips.php on line 649

Notice:  Undefined index: StepSize in C:\IP-Symcon\scripts\40921.ips.php on line 649

Warning:  Variablenprofil # existiert nicht in C:\IP-Symcon\scripts\40921.ips.php on line 649

Notice:  Undefined index: Digits in C:\IP-Symcon\scripts\40921.ips.php on line 651

Warning:  Variablenprofil # existiert nicht in C:\IP-Symcon\scripts\40921.ips.php on line 651

Notice:  Undefined index: Icon in C:\IP-Symcon\scripts\40921.ips.php on line 653

Warning:  Variablenprofil # existiert nicht in C:\IP-Symcon\scripts\40921.ips.php on line 653

Notice:  Undefined variable: Key in C:\IP-Symcon\scripts\40921.ips.php on line 827

Notice:  Undefined index:  in C:\IP-Symcon\scripts\40921.ips.php on line 827

Notice:  Undefined offset: 1 in C:\IP-Symcon\scripts\40921.ips.php on line 839

Notice:  Undefined offset: 1 in C:\IP-Symcon\scripts\40921.ips.php on line 881

Notice:  Undefined index: ObjectID in C:\IP-Symcon\scripts\40921.ips.php on line 887

Notice:  Undefined index: ObjectID in C:\IP-Symcon\scripts\40921.ips.php on line 887

Notice:  Undefined index: ObjectID in C:\IP-Symcon\scripts\40921.ips.php on line 887

Notice:  Undefined index: ObjectID in C:\IP-Symcon\scripts\40921.ips.php on line 887

Notice:  Undefined offset: 1 in C:\IP-Symcon\scripts\40921.ips.php on line 881

Notice:  Undefined index: ObjectID in C:\IP-Symcon\scripts\40921.ips.php on line 887

Notice:  Undefined index: ObjectID in C:\IP-Symcon\scripts\40921.ips.php on line 887

Notice:  Undefined index: ObjectID in C:\IP-Symcon\scripts\40921.ips.php on line 887

Notice:  Undefined offset: 1 in C:\IP-Symcon\scripts\40921.ips.php on line 881

Notice:  Undefined index: ObjectID in C:\IP-Symcon\scripts\40921.ips.php on line 887

Notice:  Undefined index: ObjectID in C:\IP-Symcon\scripts\40921.ips.php on line 887

Notice:  Undefined offset: 1 in C:\IP-Symcon\scripts\40921.ips.php on line 881

Notice:  Undefined index: ObjectID in C:\IP-Symcon\scripts\40921.ips.php on line 887

Notice:  Undefined offset: 1 in C:\IP-Symcon\scripts\40921.ips.php on line 881

Notice:  Undefined offset: 1 in C:\IP-Symcon\scripts\40921.ips.php on line 881

Notice:  Undefined offset: 1 in C:\IP-Symcon\scripts\40921.ips.php on line 881

Notice:  Undefined offset: 1 in C:\IP-Symcon\scripts\40921.ips.php on line 881

Notice:  Undefined offset: 1 in C:\IP-Symcon\scripts\40921.ips.php on line 881

Notice:  Undefined offset: 1 in C:\IP-Symcon\scripts\40921.ips.php on line 881

Notice:  Undefined offset: 1 in C:\IP-Symcon\scripts\40921.ips.php on line 881

Notice:  Undefined offset: 1 in C:\IP-Symcon\scripts\40921.ips.php on line 881

Notice:  Undefined offset: 1 in C:\IP-Symcon\scripts\40921.ips.php on line 881

Notice:  Undefined offset: 1 in C:\IP-Symcon\scripts\40921.ips.php on line 881

Notice:  Undefined offset: 1 in C:\IP-Symcon\scripts\40921.ips.php on line 881

Notice:  Undefined offset: 1 in C:\IP-Symcon\scripts\40921.ips.php on line 881

Notice:  Undefined index: ObjectName in C:\IP-Symcon\scripts\40921.ips.php on line 911

Notice:  Undefined index: ObjectID in C:\IP-Symcon\scripts\40921.ips.php on line 911

Notice:  Undefined index: ObjectInfo in C:\IP-Symcon\scripts\40921.ips.php on line 917

Notice:  Undefined index: ObjectType in C:\IP-Symcon\scripts\40921.ips.php on line 921

Notice:  Undefined index: ObjectName in C:\IP-Symcon\scripts\40921.ips.php on line 967

Notice:  Undefined index: ObjectName in C:\IP-Symcon\scripts\40921.ips.php on line 969

Notice:  Undefined index: ObjectIsHidden in C:\IP-Symcon\scripts\40921.ips.php on line 971

Notice:  Undefined index: ObjectPosition in C:\IP-Symcon\scripts\40921.ips.php on line 973

Notice:  Undefined index: ObjectIcon in C:\IP-Symcon\scripts\40921.ips.php on line 977

Notice:  Undefined index: ObjectName in C:\IP-Symcon\scripts\40921.ips.php on line 981

Notice:  Undefined index: CyclicDateFrom in C:\IP-Symcon\scripts\40921.ips.php on line 1565

Notice:  Undefined index: CyclicDateTo in C:\IP-Symcon\scripts\40921.ips.php on line 1565

Notice:  Undefined index: CyclicTimeFrom in C:\IP-Symcon\scripts\40921.ips.php on line 1569

Notice:  Undefined index: CyclicTimeTo in C:\IP-Symcon\scripts\40921.ips.php on line 1569

Notice:  Undefined index: CyclicDateFrom in C:\IP-Symcon\scripts\40921.ips.php on line 1565

Notice:  Undefined index: CyclicDateTo in C:\IP-Symcon\scripts\40921.ips.php on line 1565

Notice:  Undefined index: CyclicTimeFrom in C:\IP-Symcon\scripts\40921.ips.php on line 1569

Notice:  Undefined index: CyclicTimeTo in C:\IP-Symcon\scripts\40921.ips.php on line 1569

Notice:  Undefined index: CyclicDateFrom in C:\IP-Symcon\scripts\40921.ips.php on line 1565

Notice:  Undefined index: CyclicDateTo in C:\IP-Symcon\scripts\40921.ips.php on line 1565

Notice:  Undefined index: CyclicTimeFrom in C:\IP-Symcon\scripts\40921.ips.php on line 1569

Notice:  Undefined index: CyclicTimeTo in C:\IP-Symcon\scripts\40921.ips.php on line 1569

Notice:  Undefined index: ObjectType in C:\IP-Symcon\scripts\40921.ips.php on line 1729

Notice:  Undefined index: ObjectType in C:\IP-Symcon\scripts\40921.ips.php on line 1751

Notice:  Undefined index: ObjectType in C:\IP-Symcon\scripts\40921.ips.php on line 1767

Notice:  Undefined index: ObjectType in C:\IP-Symcon\scripts\40921.ips.php on line 1799

Notice:  Undefined index: ObjectName in C:\IP-Symcon\scripts\40921.ips.php on line 2325
// +++ Installationsprotokoll vom 19.03.2014, 21:56:33 ++++++++++++++++++++++++++++++++++++++++++++

/** +++++++++++++++++ Installationsparameter +++++++++++++++++++++++++++++++++++++++++++++++++++++++
	Update: 									0
	Variablenprofile installieren: 	1
	benamste Scripte ¸berschreiben:	0
	WFC-Items ¸berschreiben:			1
+++++++++++++++++++++ Installationsparameter Ende ++++++++++++++++++++++++++++++++++++++++++++++++++

+++++++++++++++++++++ Installations-Infos ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
   #1001 Quell-ObjektInventory geladen
   #1002 VariablenProfile-ObjektInventory geladen
   #1003 WFC-ObjektInventory geladen
   #1010 Install-Script: Install-Script und -Protokoll NICHT verschoben (kein Config-Ordner im Zielprojekt gefunden)
+++++++++++++++++++++ Installations-Infos Ende +++++++++++++++++++++++++++++++++++++++++++++++++++++

++++++++++++++++++++ Objekt-Installation +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
		--- OK-Meldungen --------------------------------------------------------------------------
   	#3011 Objekt , altID # zur Anlage ¸bernommen
   	#3022 Kategorie-Objekt , neuID #38979 angelegt
   	#3025 Kategorie-Objekt , ID #38979 neu konfiguriert
   	#3011 Objekt Unbenanntes Objekt (ID: 43845), altID #43845 zur Anlage ¸bernommen
   	#3062 Event-Objekt Unbenanntes Objekt (ID: 43845), neuID #23280 angelegt
   	#3011 Objekt Unbenanntes Objekt (ID: 43845), altID #43845 zur Anlage ¸bernommen
   	#3062 Event-Objekt Unbenanntes Objekt (ID: 43845), neuID #18846 angelegt
   	#3011 Objekt Unbenanntes Objekt (ID: 43845), altID #43845 zur Anlage ¸bernommen
   	#3062 Event-Objekt Unbenanntes Objekt (ID: 43845), neuID #49523 angelegt
		--- OK-Meldungen Ende ---------------------------------------------------------------------

		--- Kontrolle durch User erforderlich -----------------------------------------------------
   	#3066 Event-Objekt Unbenanntes Objekt (ID: 43845), neuID #23280 neu konfiguriert, NICHT aktiviert
   	#3066 Event-Objekt Unbenanntes Objekt (ID: 43845), neuID #18846 neu konfiguriert, NICHT aktiviert
   	#3066 Event-Objekt Unbenanntes Objekt (ID: 43845), neuID #49523 neu konfiguriert, NICHT aktiviert
		--- Kontrolle durch User erforderlich Ende-------------------------------------------------

		--- Fehlermeldungen -----------------------------------------------------------------------
		--- Fehlermeldungen Ende-------------------------------------------------------------------

	+++++++++++++++++ WFC-Objekte installieren und verlinken ++++++++++++++++++++++++++++++++++++++++
		--- OK-Meldungen --------------------------------------------------------------------------
   	#6001 lade WFC-Objektbaum
		--- OK-Meldungen Ende ---------------------------------------------------------------------

		--- Kontrolle durch User erforderlich -----------------------------------------------------
   	#6000 WFCObjektbaum: keine Installation mˆglich (kein Quell-Inventory oder kein Ziel-WFE gefunden)
		--- Kontrolle durch User erforderlich Ende-------------------------------------------------

		--- Fehlermeldungen -----------------------------------------------------------------------
		--- Fehlermeldungen Ende-------------------------------------------------------------------

	+++++++++++++++++ ID Austausch in Scripts ++++++++++++++++++++++++++++++++++++++++++++++++++++++
		--- OK-Meldungen --------------------------------------------------------------------------
		--- OK-Meldungen Ende ---------------------------------------------------------------------

		--- Kontrolle durch User erforderlich -----------------------------------------------------
		--- Kontrolle durch User erforderlich Ende-------------------------------------------------

		--- Fehlermeldungen -----------------------------------------------------------------------
		--- Fehlermeldungen Ende-------------------------------------------------------------------

	+++++++++++++++++ Objekte neu verlinken ++++++++++++++++++++++++++++++++++++++++++++++++++++++
		--- OK-Meldungen --------------------------------------------------------------------------
		--- OK-Meldungen Ende ---------------------------------------------------------------------

		--- Kontrolle durch User erforderlich -----------------------------------------------------
		--- Kontrolle durch User erforderlich Ende-------------------------------------------------

		--- Fehlermeldungen -----------------------------------------------------------------------
		--- Fehlermeldungen Ende-------------------------------------------------------------------

	+++++++++++++++++ Installation externe Files +++++++++++++++++++++++++++++++++++++++++++++++++
		--- OK-Meldungen --------------------------------------------------------------------------
		--- OK-Meldungen Ende ---------------------------------------------------------------------

		--- Fehlermeldungen -----------------------------------------------------------------------
		--- Fehlermeldungen Ende-------------------------------------------------------------------

**/

Notice:  Undefined index: ObjectID in C:\IP-Symcon\scripts\40921.ips.php on line 2741
Protokollname: auslesen (Quell-ID: 46859) 2014_02_15-22_08, Ziel-ID: 38979 InstallProtocolInstallationsprotokoll-Script "auslesen (Quell-ID: 46859) 2014_02_15-22_08, Ziel-ID: 38979 InstallProtocol" ID #45693 angelegt

Das Auslesescript in dem Screenshot ist das Installationsscript, dass sich selbst so umbenannt hat, aber noch den selben inhalt hat.

Kann da jemand etwas mit anfangen ?

Gruß

Julian

Nachrichtenbild(1137393723).png

Nachrichtenbild(1324801480).png

Hallo,

ich versuche mich gerade an deinem Beispiel damit ich weitere Parameter auslesen kann

$cmd = chr(0x01).chr(0x04).chr(0x00).chr(0x00).chr(0x00).chr(0x02).chr(0x71).chr(0xCB); // Volt 1

Volt L1 = 00 00

  1. chr(0x01) Zähler Adresse
  2. chr(0x04) Modus Function Code 04 wird bei jedem Parameter benutzt
  3. chr(0x00) Start Adresse Hi Byte 00
  4. chr(0x00) Start Adresse Lo Byte 00

leider raffe ich den Rest nicht :confused:

Kannst du mir das mal bitte an Hand von dem Bespiel erklären?

Danke.

VG

Andreas

Hi kannst du mir das mal erklären :wink:

Wie sehen die Modbos Adressen aus ?

Ich habe nur die, wo in der Doku stehen und das sind Hex Zahlen ?

Doku Seite 26, Spalte Adress ( Register )

Fand das hier ganz Hilfreich bei der Einrichtung :

http://www.ip-symcon.de/forum/threads/24150-Wechselstromz�hler-Saia-Burgess-ALD1D5F10-mit-Modbus-Schnittstelle-(RTU)

Hi so habe die Fehler behoben, versuche es mit dem neuem Script V2 auf Seite 1 :wink:

So bei mir läuft das Ganze nach einigen Hilfen von drapple jetzt auch (dafür konnte er bei mir testen, warum das Installationsscript nicht lief :)) und ich bin doch überrascht wie viel Leistung da so im Leerlauf verbraucht wird. Da hab ich jetzt eine gute Basis um dem mal entgegen zu wirken.

Übrigens für alle die gefragt haben „Warum denn kein S0 Gerät“, damit kann man weder der Strom aller Phasen noch die aktuell verbrauchte Leistung sehen sondern nur den Verbrauch in kWh was aber nicht wirklich viel bringt.

Ein Problem hab ich aber noch, ich verwende einen RS485 - LAN Umsetzer der mir via LAN einen virtuellen Com Port liefert aber so wie es aussieht nur wenn jemand am Server angemeldet ist, das Teil scheint nicht als Dienst zu laufen. Da muss ich noch mal beim Hersteller ran.

Von wem ist der Lan2RS485 Umsetzter ?

Mach mal ein Bild :wink:

Das kann man so natürlich nicht stehen lassen, denn das ist definitiv falsch.

@drapple
Das Teil heißt CSE-H55N und wird in Deutschland von Elmicro vertrieben und die wollen sich drum kümmern. Ich befürchte aber, dass das nicht gehen wird laut Forum des Herstellers (Sollae Systems).

Wie ist das denn mit dem USB Adapter? Funktioniert der ohne dass jemand angemeldet ist?

Ich hab grad noch einen interessanten, gar nicht so teuren gefunden Heißt EX-9132. Da hab ich gleich mal ne Anfrage Admost gestellt. Vielleicht geht es ja bei deren Treiber.

@Boui
Wenn ich das richtig sehe liefert ein Zähler mit S0 immer nur x Impulse pro kWh. Wie soll man darüber die aktuelle Leistung, Scheinleistung, Blindleistung, Strom, Spannung, Frequenz usw. auslesen können? Und was passiert wenn (aus welchem Grund auch immer) Impulse nicht in IPS ankommen? Dann stimmen alle Werte nicht mehr!

Ach herrje, da schmeißt Du ja noch mehr durcheinander.

Ich schrieb erstens nix von Schein-, Blind und was weiß ich noch alles gar nix. Meine ganz private Meinung dazu: Dieser ganze Kram und das sag ich als jemand, der mal das Handwerk erlernt hatt, ist was für Leute, die sonst nix zu tun haben .
Wetten, dass Du da vielleicht ein oder zweimal im Jahr draufschaust, wenn überhaupt.

Zweitens gibt es neben IPS noch sinnvolle Auswerteelektroniken, denen ein Ausfall von IPS oder einer Spannungsversorgung relativ egal sind. Die zeigen Dir neben den Zählerständen dann auch die aktuelle Leistung (Wirkleistung) an und übertragen die nach IPS.
Und da gibt es sicher mehr Beispiele. Ferner kann ich auch 3 Einphasenzähler einsetzen und hab auch den Verbrauch je Phase.

Ich habe ein paar Einphasenzähler, einen geeichten Drehstromzähler und ein paar Steckdosenzähler. Jeweils nur für echte Verbraucher und nicht für Spielkram. Dennoch schau ich meist nur auf den Gesamtverbrauch und mir fehlt keine Blind-, Schein-, Unnützleistung, die sowieso keinen Einfluss auf die Stromrechnung hat. :slight_smile:

Mir geht es aber nicht um Kritik an anderen Zählern. Es ist nur einfach nicht wahr, dass man bei S0 keine Wirkleistung bekommt.

Das mag sein aber mit dem hier eingesetzten Zähler bekommt man alles und auf bequeme weise und der aktuelle Stromverbrauch ist für mich sehr aufschlussreich da ich wohl noch ein bisschen optimieren kann bei uns wie ich jetzt festgestellt habe.

Ja doch. :smiley:
Ich verstehe das ja. Ich würde mir auch nicht vorschreiben lassen, was ich mir kaufe.

So ich hab jetzt auch noch mal was experimentiert und das Ganze über die ModBus Anbindung von IPS realisiert, wie es auch schon in dem Link zu den Wechselstromzählern erläutert ist. Für mich hat das den super Vorteil, dass ich den virtuellen Com Port nicht mehr benötige da man in der Splitterinstanz „Modbus RTU over TCP“ einstellen kann und einfach einen Client Socket mit den TCP Daten des LAN Adapters einstellt. Damit kann ich mich am Server auch wieder abmelden :loveips:

Wer einen Com Port nutzt stellt einfach „Modbus RTU“ ein.

Nachteil:
pro abzufragendem Wert wird eine ModBus Instanz angelegt und darunter eine Variable zusätzlich zu den Float Variablen, die auch in der Lösung mit der Registervariablen angelegt wurden.

Vorteil:
das Ganze geht viel schneller, weil die Wartezeit die in dem alten Script stand weg fällt.

Leider kann man die Werte nicht direkt verwenden sonst könnte man pro Gerät ein Intervall einstellen und man wäre fertig. So passiert die Aufbereitung der Daten fast genau so wie bisher. Als Intervall wird dann 0 eingestellt und ein Skript jede Minute gestartet.

Für die Abfrage der Werte muss man die Register kennen und die stehen im Handbuch unter Punkt 1.2.1 und es werden die „Modbus Protocol Start Address“ benötigt. Man muss aber den Hex wert noch in Int umrechnen, da die ModBus Geräte von IPS nur Integer Werte kennen. „Nur-Lesen“ muss auch angehakt sein sonst schickt IPS den falschen Code! Im Bild unten steht die Adresse Int 52 und entspricht Hex 34. Laut Handbuch „Total System Power“.

ModBus1.jpg

Der Code zum Auslesen sieht dann so aus:

	//**********************************************Spannung L1 auslesen****************************************
	$successful = ModBus_RequestRead(IPS_GetParent($mbvl1));
	if($successful) {
	 $data = GetValueInteger($mbvl1);
	 $ergebnis = GetFloatValue($data);
	 SetValueFloat($vl1,$ergebnis);
	}

$mbvl1 ist dabei die Variable unterhalb des ModBus Gerätes, die automatisch erzeugt wird.

Hier noch der leicht modifizierte Code zum Umwandeln der ModBus Daten in Float Werte den drapple schon gezeigt hatte:

	function GetFloatValue($data)
	{
		$value = dechex($data);

		$wert1=hexdec(substr($value, 0, 2));
		$wert2=hexdec(substr($value, 2, 2));
		$wert3=hexdec(substr($value, 4, 2));
		$wert4=hexdec(substr($value, 6, 2));

		$sign = $wert1 >> 7;
		$exponent = (($wert1 & 0x7F) << 1) + (($wert2 & 0x80) >> 7) - 127;
		$mantisse = (($wert2 | 0x80) << 16) + ($wert3 << 8) + $wert4;
		$zaehler= 0;
		if ($sign == 0) {
			# exponent is positive
		   //$zaehler= $mantisse / (0x7FFFFF >> $exponent);
		   $teiler = 0x7FFFFF / pow(2, $exponent);
			$zaehler = $mantisse / $teiler;
		}
		else
		{
			$teiler = 0x7FFFFF * pow(2, $exponent);
			$zaehler = $mantisse / $teiler;
		}

		return($zaehler);
	}

Ich hoffe ihr könnt was damit anfangen.

Hallo drapple.

Habe nun den Zähler eingebaut und er zählt auch fleißig. Habe ausser an der ID (sie ist jetzt am Zähler selbst auf 02 gesetzt) nichts geändert - Standard von Werk.

$cmd = chr(0x02).chr(0x04).chr(0x00).chr(0x00).chr(0x00).chr(0x02).chr(0x71).chr(0xF8); // Volt 1 020400000002

Irgendwas geht auch mit deinen Scripten, einmal hatte ich sogar einen praxistausglichen Wert (223,5). In allen anderen Fällen allerdings erhalte ich Werte, die dann völlig daneben liegen. Und immer anders: mal 5stellgi, dann 12 stellig mit einer Nachkommastelle (s. Screenshot). Bei jedem Ausführen des Scriptes andere Konstellationen. Die Werte sollten doch schon um die 220 V sein, oder?

Hallo mws,

auch mit deinem Vorschlag läuft es bei mir nicht.

Warning:  Unknown ModBus write error in C:\IP-Symcon\scripts\36793.ips.php on line 7

Habe das Script so zusammengebaut. Ist möglicherweise da der Fehler?

<?
$id_modbus = 19755 /*[Strom\PV-Anlage\SDM630M DC\Total Power]*/;
$id_value_tsp = 18999 /*[Strom\PV-Anlage\SDM630M DC\Total Power\Value]*/;
$id_tsp = 34354 /*[Strom\PV-Anlage\SDM630M DC\TSP in Watt]*/;

    //********************************************** Total System Power ****************************************
    $successful = ModBus_RequestRead($id_modbus);
//    $successful = ModBus_RequestRead(IPS_GetParent($id_value_tsp));
    if($successful) {
     $data = GetValueInteger($id_value_tsp);
     $ergebnis = GetFloatValue($data);
     SetValueFloat($id_tsp,$ergebnis);
    }
    
    
        function GetFloatValue($data)
    {
        $value = dechex($data);

        $wert1=hexdec(substr($value, 0, 2));
        $wert2=hexdec(substr($value, 2, 2));
        $wert3=hexdec(substr($value, 4, 2));
        $wert4=hexdec(substr($value, 6, 2));

        $sign = $wert1 >> 7;
        $exponent = (($wert1 & 0x7F) << 1) + (($wert2 & 0x80) >> 7) - 127;
        $mantisse = (($wert2 | 0x80) << 16) + ($wert3 << 8) + $wert4;
        $zaehler= 0;
        if ($sign == 0) {
            # exponent is positive
           //$zaehler= $mantisse / (0x7FFFFF >> $exponent);
           $teiler = 0x7FFFFF / pow(2, $exponent);
            $zaehler = $mantisse / $teiler;
        }
        else
        {
            $teiler = 0x7FFFFF * pow(2, $exponent);
            $zaehler = $mantisse / $teiler;
        }

        return($zaehler);
    }


?>

Kontrolliert mal die Einstellungen der seriellen Schnittstellen. Das sieht aus als wären die unterschiedlich.

Gesendet von meinem Nexus 4 mit Tapatalk

ICH HAB’S!!! (vorerst:))

Nun läuft der Kram. Vermutlich doch irgendwas mit den COM-Port-Einstellungen. Habe einiges durchprobiert (immer gleich bei Zähler, Gerätemanager in Windows und im IPS). Mit 9600/8/N/2 geht es nun. Saubere Rückgabewerte als HEX im Debug der RegVar. Umrechnung ergibt jeweils praxistaugliche Werte.

Nur einige Werte passen irgendwie noch nicht ganz zusammen: z.B. Gesamtleistung ist immer gleich der Leistung von L3, obwohl P1 und P2 ungleich 0 sind. (es werden aber unterschiedliche Register ausgelesen.) Für mein Verständnis ist das doch (annähernd) die Summe aus L1+L2+L3, oder? Möglicherweise sind auch die Auslesezeitpunkte dran schuld, die ja zueinander ein wenig verschoben sind (ca. 2sek.). Ich habe zu den üblichen Verdächtigen wie Kühl- und Gefrierschränke, Solarpumpe, EDV-Komponenten etc. gerade 2 Rechner laufen. Und alles in Summe nur 82,5 W? Wären ja Spargeräte - glaube ich also nicht. Aber dafür gibt es auch eine Erklärung und eine Lösung.

Möglicherweise ist die PV-Anlage auch mit schuld. Allerding hängt die nur L1, somit sollte die Pges mal mindest P2+P3 sein, oder? Lässt sich der Zähler auf nur Bezug umstellen? Am Gerät kann ich einen negativen Wert für die P1 ablesen, wenn die Sonne scheint.

Danke mal zwischendurch an alle.:slight_smile:

Das ist doch schon mal was. Du solltest jetzt aber ModBus Geräte erzeugen und über die das Auslesen erledigen. Das geht viel schneller als mit dem ersten Skript und ist sicherer. Ich hatte mit dem Skript auch nicht immer richtige Werte. Seit ich auf direktes Auslesen via ModBus umgestellt habe läuft alles sehr gut un die Werte stimmen immer!

HI ich kann MVS nur zustimmen !!! Mache es so wie er geschrieben hat und du kannst die Werte alle 10s abfragen :slight_smile: