Huawei Wechselrichter (Modbus Fragen)

Hallo, stimmt der Port?

Ja der Port muss stimmen.
openWB läuft (dort kann man keinen Port konfigurieren) und nmap sagt mir, dass der Port offen ist.

Komme leider grad nicht in die Konfiguration des WR, hatte das Installateur-PW dummerweise nicht notiert :man_facepalming:
Muss auf Antwort vom Solarteur warten.

Das einzige, das ich mir jetzt noch vorstellen kann, ist, dass ich den TCP-Zugang beschränkt habe auf eine einzige IP (ich vermute, das kann man machen…?)

Es lag tatsächlich am eingeschränkten Zugriff (IP-Adresse)

Ich bin etwas verwirrt :slight_smile:
Im Script, das ich oben sehe, gibt es diese Variablen nicht. Gibt es eine neuere Variante des Scripts, oder habe ich etwas übersehen?

edit: Hat sich erledigt.
Habe ein neueres Definitions PDF von Huawei gefunden, da sind auch die Register für Storage dabei. Ich erstelle die Devices einfach manuell

Jetzt muss ich doch noch mal Fragen. Habe das Skript angelegt und ausgeführt, alles wird angelegt. Leider werden nur die Daten vom „Am Tag“ und „Gesamtenergieertrag“ angezeigt, alles andere nicht. Habe auch schon mit den Adressen rum gespielt aber das bringt auch nix…

Hallo alle, hallo @drapple ,

danke für die Starthilfe. Will nun auch beginnen, meinen Wechselrichter SUN2000 einzubinden. Leider hat man mir den Modbus TCP Zugang noch nicht freigeschaltet.
Also habe ich mir erstmal das Script geschnappt, die Anpassungen eingefügt und mir eine passende cat in meinem System gesucht und angegeben, zudem einen Client socket (vorbereitend) erstellt.

Nach ausführen des Scriptes werden unter $catname alle dummy Module mit den verlinkten varaiblen sowie unter modbus die device instanzen erstellt.
Werden die Modbus device Instanzen selbsttätig upgedatet? Das Modbus Gateway ist mit der Modbus IO instanz verbunden.

Servus, leider habe ich zur Zeit, nicht die Zeit damit weiter zumachen :frowning: Spiele gerade mit meinen Teslas viel rum :wink: Mein SMartmeter ist immer noch nicht da…

Hallo zusammen,
ich habe seit heute auf die 5KTL Wechselrichter und den Luna Speicher. MODBUS habe ich freischalten lassen. Ich habe das Script hier verwendet:

Das Gateway ist auch verbunden. Im Debug kommt auch diverses rein. Leider bleiben alle Werte auf 0. Hat jemand eine Idee?

lg
Theo

Moin Theo, das war nicht so einfach, die Abfrage ins laufen zu bekommen. Ich habe ziemlich lange probiert, bis es funktionierte. Wenn du das Skript ausführen läßt dann kommt dort eine Fehlermeldung wegen dem Gateway (so war es jedenfalls bei mir) und die dann angelegten Instanzen waren nicht mit dem richtigen Gateway verbunden. Ich hatte zum Schluss erst das Gateway mit dem dazugehörigenSplitter angelegt und die ID dann ins Skript geschrieben und nach dem ausführen funktioniertees bei mir. Dann kamen auch Daten.

Hier das Script inkl. Smartmeter:

<?
$cat=41311 /*[Stromzähler]*/;

#$name="Gesamt Stromverbrauch";

$catname="PV 1";

$modbussplitterid=56137 ;

$catid1=GetorCreatcategory($catname,$cat);
$catid=GetorCreatcategory("modbus",$catid1);
IPS_Sethidden($catid, true);


$ac_spannungen_anzeigen=false;
$dc_spannungen_anzeigen=true;
$ac_strom_anzeigen=false;
$dc_strom_anzeigen=true;
$ac_leistung_anzeigen=true;
$dc_leistung_anzeigen=false;

$zaehlerstand_anzeigen=true;

$martmeter_anzeige=true;
$martmeter_strom_anzeige=true;
$martmeter_power_anzeige=true;

/*
#*************************************************************  Modus Splitter anlegen ************************************************************* 

$modbussplitterid=IPS_CreateInstance("{A5F663AB-C400-4FE5-B207-4D67CC030564}");
IPS_SetName($modbussplitterid, "Huawei PV2 Modus"); // Instanz benennen
IPS_SetConfiguration($modbussplitterid, '{"GatewayMode":0,"DeviceID":1,"SwapWords":false,"DelayTimeTCP":10,"DelayTimeRTU":20,"DataBlocks":"[]"}');
IPS_ApplyChanges($modbussplitterid);

$serialportidtemp=IPS_GetInstance($modbussplitterid);
$serialportid=$serialportidtemp['ConnectionID'];


#*************************************************************  Serial Port konfig ************************************************************* 

#$serialportid=IPS_CreateInstance("{6DC3D946-0D31-450F-A8C6-C42DB8D7D4F1}");
IPS_SetName($serialportid, "Stromzaehler Serial Port"); // Instanz benennen
IPS_SetConfiguration($serialportid, '{"Open":true,"Port":"/dev/ttyUSB0","BaudRate":"9600","DataBits":"8","StopBits":"1","Parity":"None"}');
IPS_ApplyChanges($serialportid);
*/


# *********************************  Variable Profil erstellen ***********************
	
	 $vpname="Ampere";
	// Variable Profil erstellen
	if (!IPS_VariableProfileExists($vpname)) // Wenn das Provil noch nicht Exestiert dann lege es an:
	{
	IPS_CreateVariableProfile($vpname, 2); // Variabelprofil erstellen
	#IPS_SetVariableProfileIcon($vpname,"Intensity"); // Variabelprofil Icon zuweisen
	IPS_SetVariableProfileText($vpname,""," A");
	IPS_SetVariableProfileValues($vpname, 0, 0,0 ); //Der Befehl setzt den MinimalWert, MaximalWert und die Schrittweite eines Variablenprofils mit Namen ProfilName.
	IPS_SetVariableProfileDigits($vpname, 3);
} // Variabelprofil anlegen

# *********************************  Variable Profil erstellen ***********************
	
	 $vpname="KWh";
	// Variable Profil erstellen
	if (!IPS_VariableProfileExists($vpname)) // Wenn das Provil noch nicht Exestiert dann lege es an:
	{
	IPS_CreateVariableProfile($vpname, 2); // Variabelprofil erstellen
	#IPS_SetVariableProfileIcon($vpname,"Intensity"); // Variabelprofil Icon zuweisen
	IPS_SetVariableProfileText($vpname,""," KWh");
	IPS_SetVariableProfileValues($vpname, 0, 0,0 ); //Der Befehl setzt den MinimalWert, MaximalWert und die Schrittweite eines Variablenprofils mit Namen ProfilName.
	IPS_SetVariableProfileDigits($vpname, 3);
} // Variabelprofil anlegen

# *************************************************************  Cat anlegen ************************************************************* 
if ($ac_spannungen_anzeigen===true)
{

$spannungl1id=create_modbusdevice("Spannung L1", '{"DataType":2,"ReadFunctionCode":3,"ReadAddress":32069,"WriteFunctionCode":0,"WriteAddress":0,"Length":0,"SwapBytes":false,"Poller":5000,"EmulateStatus":false,"Factor":0.1}',$modbussplitterid, "~Volt.230", $catid,"MQTT_VOLT_L1");

$spannungl2id=create_modbusdevice("Spannung L2", '{"DataType":2,"ReadFunctionCode":3,"ReadAddress":32070,"WriteFunctionCode":0,"WriteAddress":0,"Length":0,"SwapBytes":false,"Poller":5000,"EmulateStatus":false,"Factor":0.1}',$modbussplitterid, "~Volt.230", $catid,"MQTT_VOLT_L2");

$spannungl3id=create_modbusdevice("Spannung L3", '{"DataType":2,"ReadFunctionCode":3,"ReadAddress":32071,"WriteFunctionCode":0,"WriteAddress":0,"Length":0,"SwapBytes":false,"Poller":5000,"EmulateStatus":false,"Factor":0.1}',$modbussplitterid, "~Volt.230", $catid,"MQTT_VOLT_L3");
}

if ($ac_strom_anzeigen===true)
{
$stroml1id=create_modbusdevice("Strom L1", '{"DataType":6,"ReadFunctionCode":3,"ReadAddress":32072,"WriteFunctionCode":0,"WriteAddress":0,"Length":0,"SwapBytes":false,"Poller":5000,"EmulateStatus":false,"Factor":0.001}',$modbussplitterid, "Ampere",$catid,"MQTT_AMPERE_L1");

$stroml2id=create_modbusdevice("Strom L2", '{"DataType":6,"ReadFunctionCode":3,"ReadAddress":32074,"WriteFunctionCode":0,"WriteAddress":0,"Length":0,"SwapBytes":false,"Poller":5000,"EmulateStatus":false,"Factor":0.001}',$modbussplitterid, "Ampere",$catid,"MQTT_AMPERE_L2");

$stroml3id=create_modbusdevice("Strom L3", '{"DataType":6,"ReadFunctionCode":3,"ReadAddress":32076,"WriteFunctionCode":0,"WriteAddress":0,"Length":0,"SwapBytes":false,"Poller":5000,"EmulateStatus":false,"Factor":0.001}',$modbussplitterid, "Ampere",$catid,"MQTT_AMPERE_L3");
}



if ($dc_spannungen_anzeigen===true)
{

$pv_volt1=create_modbusdevice("PV 1", '{"DataType":2,"ReadFunctionCode":3,"ReadAddress":32016,"WriteFunctionCode":0,"WriteAddress":0,"Length":0,"SwapBytes":false,"Poller":5000,"EmulateStatus":false,"Factor":0.1}',$modbussplitterid, "~Volt.230", $catid,"MQTT_VOLT_L1");

$pv_volt2=create_modbusdevice("PV 2", '{"DataType":2,"ReadFunctionCode":3,"ReadAddress":32018,"WriteFunctionCode":0,"WriteAddress":0,"Length":0,"SwapBytes":false,"Poller":5000,"EmulateStatus":false,"Factor":0.1}',$modbussplitterid, "~Volt.230", $catid,"MQTT_VOLT_L3");
}

if ($dc_strom_anzeigen===true)
{
$pv_strom1=create_modbusdevice("PV Strom 1", '{"DataType":2,"ReadFunctionCode":3,"ReadAddress":32017,"WriteFunctionCode":0,"WriteAddress":0,"Length":0,"SwapBytes":false,"Poller":5000,"EmulateStatus":false,"Factor":0.01}',$modbussplitterid, "Ampere",$catid,"MQTT_AMPERE_L1");

$pv_strom2=create_modbusdevice("PV Strom 2", '{"DataType":2,"ReadFunctionCode":3,"ReadAddress":32019,"WriteFunctionCode":0,"WriteAddress":0,"Length":0,"SwapBytes":false,"Poller":5000,"EmulateStatus":false,"Factor":0.01}',$modbussplitterid, "Ampere",$catid,"MQTT_AMPERE_L3");
}



if ($ac_leistung_anzeigen===true)
{
$ac_gesamtleistung=create_modbusdevice("Gesamtleistung", '{"DataType":6,"ReadFunctionCode":3,"ReadAddress":32080,"WriteFunctionCode":0,"WriteAddress":0,"Length":0,"SwapBytes":false,"Poller":5000,"EmulateStatus":false,"Factor":0.001}',$modbussplitterid, "KWh",$catid,"MQTT_WATT_L3");
}

if ($dc_leistung_anzeigen===true)
{
$dc_gesamtleistung=create_modbusdevice("PV Gesamtleistung", '{"DataType":6,"ReadFunctionCode":3,"ReadAddress":32064,"WriteFunctionCode":0,"WriteAddress":0,"Length":0,"SwapBytes":false,"Poller":5000,"EmulateStatus":false,"Factor":0.001}',$modbussplitterid, "KWh",$catid,"MQTT_WATT_L3");
}


if ($zaehlerstand_anzeigen===true) 
{ 
    $day=create_modbusdevice("Am Tag", '{"DataType":6,"ReadFunctionCode":3,"ReadAddress":32114,"WriteFunctionCode":0,"WriteAddress":0,"Length":0,"SwapBytes":false,"Poller":5000,"EmulateStatus":false,"Factor":0.01}',$modbussplitterid, "KWh", $catid,"MQTT_KWH");
    $total=create_modbusdevice("Gesamtenergieertrag (seit 13.10.22)", '{"DataType":6,"ReadFunctionCode":3,"ReadAddress":32106,"WriteFunctionCode":0,"WriteAddress":0,"Length":0,"SwapBytes":false,"Poller":5000,"EmulateStatus":false,"Factor":0.01}',$modbussplitterid, "KWh", $catid,"MQTT_KWH");

}


#************************************************************* Verlinkungen ************************************************************* 
if ($ac_spannungen_anzeigen===true)
{
$spannungen_instanceid=GetOrCreateInstanz("Spannungen" , "dummy",$catid1 ); 
IPS_SetPosition($spannungen_instanceid,0);
GetorCreateLink("L1",$spannungen_instanceid,IPS_GetVariableIDByName("Spannung L1", $spannungl1id), 0);
GetorCreateLink("L2",$spannungen_instanceid,IPS_GetVariableIDByName("Spannung L2", $spannungl2id), 1);
GetorCreateLink("L3",$spannungen_instanceid,IPS_GetVariableIDByName("Spannung L3", $spannungl3id), 2);
}

if ($ac_strom_anzeigen===true)
{
$strom_instanceid=GetOrCreateInstanz("Strom" , "dummy",$catid1 ); 
IPS_SetPosition($strom_instanceid,1);
#GetorCreateLink("Gesamter Stromverbrauch",$strom_instanceid,IPS_GetVariableIDByName("Gesamter Stromverbrauch", $gstromverbrauchid), 4);
GetorCreateLink("L1",$strom_instanceid,IPS_GetVariableIDByName("Strom L1", $stroml1id), 0);
GetorCreateLink("L2",$strom_instanceid,IPS_GetVariableIDByName("Strom L2", $stroml2id), 1);
GetorCreateLink("L3",$strom_instanceid,IPS_GetVariableIDByName("Strom L3", $stroml3id), 2);
}

if ($ac_leistung_anzeigen===true)
{
$ac_gesamtleistung_instance_id=GetOrCreateInstanz("Leistung" , "dummy",$catid1 ); 
IPS_SetPosition($ac_gesamtleistung_instance_id,2);
GetorCreateLink("Gesamtleistung ",$ac_gesamtleistung_instance_id,IPS_GetVariableIDByName("Gesamtleistung", $ac_gesamtleistung), 0);
}


if ($dc_spannungen_anzeigen===true)
{
$pv_spannungen_instanceid=GetOrCreateInstanz("PV Sapnnungen" , "dummy",$catid1 ); 
IPS_SetPosition($pv_spannungen_instanceid,3);
GetorCreateLink("PV 1",$pv_spannungen_instanceid,IPS_GetVariableIDByName("PV 1", $pv_volt1), 0);
GetorCreateLink("PV 2",$pv_spannungen_instanceid,IPS_GetVariableIDByName("PV 2", $pv_volt2), 1);
}



if ($dc_strom_anzeigen===true)
{
$dc_strom_instanceid=GetOrCreateInstanz("PV Strom" , "dummy",$catid1 ); 
IPS_SetPosition($dc_strom_instanceid,4);
#GetorCreateLink("Gesamter Stromverbrauch",$strom_instanceid,IPS_GetVariableIDByName("Gesamter Stromverbrauch", $gstromverbrauchid), 4);
GetorCreateLink("L1",$dc_strom_instanceid,IPS_GetVariableIDByName("PV Strom 1", $pv_strom1), 0);
GetorCreateLink("L2",$dc_strom_instanceid,IPS_GetVariableIDByName("PV Strom 2", $pv_strom2), 1);
}

if ($dc_leistung_anzeigen===true)
{
$dc_gesamtleistung_instance_id=GetOrCreateInstanz("PV Leistung" , "dummy",$catid1 ); 
IPS_SetPosition($dc_gesamtleistung_instance_id,5);
GetorCreateLink("Gesamtleistung ",$dc_gesamtleistung_instance_id,IPS_GetVariableIDByName("PV Gesamtleistung", $dc_gesamtleistung), 0);
}



if ($zaehlerstand_anzeigen===true) 
{
    $erzeugnis_id=GetOrCreateInstanz("Energieertrag" , "dummy",$catid1 ); 
    IPS_SetPosition($erzeugnis_id,6);
    GetorCreateLink("Am Tag ",$erzeugnis_id,IPS_GetVariableIDByName("Am Tag", $day), 0);
    GetorCreateLink("Gesamtenergieertrag (seit 13.10.22)",$erzeugnis_id,IPS_GetVariableIDByName("Gesamtenergieertrag (seit 13.10.22)", $total), 1);
}

if ($martmeter_anzeige===true)
{
$catname="Smartmeter";
$catid1=GetorCreatcategory($catname,$cat);

if ($martmeter_strom_anzeige===true)
{
$stroml1id=create_modbusdevice("SmartMeter Strom L1", '{"DataType":6,"ReadFunctionCode":3,"ReadAddress":37107,"WriteFunctionCode":0,"WriteAddress":0,"Length":0,"SwapBytes":false,"Poller":5000,"EmulateStatus":false,"Factor":0.01}',$modbussplitterid, "Ampere",$catid,"MQTT_AMPERE_L1");
$stroml2id=create_modbusdevice("SmartMeter Strom L2", '{"DataType":6,"ReadFunctionCode":3,"ReadAddress":37109,"WriteFunctionCode":0,"WriteAddress":0,"Length":0,"SwapBytes":false,"Poller":5000,"EmulateStatus":false,"Factor":0.01}',$modbussplitterid, "Ampere",$catid,"MQTT_AMPERE_L2");
$stroml3id=create_modbusdevice("SmartMeter Strom L3", '{"DataType":6,"ReadFunctionCode":3,"ReadAddress":37111,"WriteFunctionCode":0,"WriteAddress":0,"Length":0,"SwapBytes":false,"Poller":5000,"EmulateStatus":false,"Factor":0.01}',$modbussplitterid, "Ampere",$catid,"MQTT_AMPERE_L3");

$strom_instanceid=GetOrCreateInstanz("Strom" , "dummy",$catid1 ); 
IPS_SetPosition($strom_instanceid,1);
#GetorCreateLink("Gesamter Stromverbrauch",$strom_instanceid,IPS_GetVariableIDByName("Gesamter Stromverbrauch", $gstromverbrauchid), 4);
GetorCreateLink("L1",$strom_instanceid,IPS_GetVariableIDByName("SmartMeter Strom L1", $stroml1id), 0);
GetorCreateLink("L2",$strom_instanceid,IPS_GetVariableIDByName("SmartMeter Strom L2", $stroml2id), 1);
GetorCreateLink("L3",$strom_instanceid,IPS_GetVariableIDByName("SmartMeter Strom L3", $stroml3id), 2);
}
if ($martmeter_power_anzeige===true)
{
$powerl1id=create_modbusdevice("SmartMeter active Power", '{"DataType":6,"ReadFunctionCode":3,"ReadAddress":37113,"WriteFunctionCode":0,"WriteAddress":0,"Length":0,"SwapBytes":false,"Poller":5000,"EmulateStatus":false,"Factor":0.00}',$modbussplitterid, "~Watt",$catid,"MQTT_ACTIVE_POWER");
$powerl2id=create_modbusdevice("SmartMeter Positive active Power", '{"DataType":6,"ReadFunctionCode":3,"ReadAddress":37119,"WriteFunctionCode":0,"WriteAddress":0,"Length":0,"SwapBytes":false,"Poller":5000,"EmulateStatus":false,"Factor":0.01}',$modbussplitterid, "KWh",$catid,"MQTT_POSITIVE_ACTIVE_POWER");
$powerl3id=create_modbusdevice("SmartMeter reverse active Power", '{"DataType":6,"ReadFunctionCode":3,"ReadAddress":37121,"WriteFunctionCode":0,"WriteAddress":0,"Length":0,"SwapBytes":false,"Poller":5000,"EmulateStatus":false,"Factor":0.01}',$modbussplitterid, "KWh",$catid,"MQTT_REVERSE_ACTIVE_POWER");
$powerl4id=create_modbusdevice("SmartMeter reactive Power", '{"DataType":6,"ReadFunctionCode":3,"ReadAddress":37115,"WriteFunctionCode":0,"WriteAddress":0,"Length":0,"SwapBytes":false,"Poller":5000,"EmulateStatus":false,"Factor":0.01}',$modbussplitterid, "KWh",$catid,"MQTT_REACTIVE_POWER");

$power_instanceid=GetOrCreateInstanz("Power" , "dummy",$catid1 ); 
IPS_SetPosition($power_instanceid,1);
GetorCreateLink("active Power",$power_instanceid,IPS_GetVariableIDByName("SmartMeter active Power", $powerl1id), 0);
GetorCreateLink("positive active Power",$power_instanceid,IPS_GetVariableIDByName("SmartMeter Positive active Power", $powerl2id), 1);
GetorCreateLink("reverse active Power",$power_instanceid,IPS_GetVariableIDByName("SmartMeter reverse active Power", $powerl3id), 2);
GetorCreateLink("reactive Power",$power_instanceid,IPS_GetVariableIDByName("SmartMeter reactive Power", $powerl4id), 3);
}

}

function GetOrCreateInstanz($name , $ityp, $parent ) // erstellt eine Variable, wenn es noch nicht exestiert
// Erstellt eine Variable, Wert 1 = Name , Wert 2 ist der Typ der Variable, Wert 3, Variabel-Ident, Wert 4 Provil, Wert 5 ScriptID , Wert 6 ist die Übergeordnete Instanz, wo die Variable angelegt werden soll
{
    $ObjId = @IPS_GetObjectIDByName($name , $parent);
    if ($ObjId === false)
    {

    if ($ityp=="dummy") $ityp='{485D0419-BE97-4548-AA9C-C083EB82E61E}';

	     $ObjId = IPS_CreateInstance($ityp);
        IPS_SetName($ObjId, $name); // Namer vergeben

        IPS_SetParent($ObjId,$parent ); //  Variable unter die Instantz verschieben
		  }
     $position=instance_pos($name);
     IPS_SetPosition($ObjId,$position);     
    return $ObjId;
} //Ende der Funktion GetOrCreateInstanz

function GetorCreateLink($name,$parent,$id, $position)
{
$LinkID = @IPS_GetObjectIDByName($name , $parent);
$linkziel=@IPS_GetLink($LinkID);
$linkzielid=@$linkziel[TargetID];
$exziel=IPS_ObjectExists($id);
#IPS_SetPosition($LinkID,$position); //Position festlegen
if (@$linkzielid != $id or  $exziel===false )  @IPS_DeleteLink(@$LinkID);

if ($linkzielid != $id && $exziel===true ) 
 {
$LinkID = IPS_CreateLink();             // Link anlegen
IPS_SetName($LinkID, $name); // Link benennen
IPS_SetParent($LinkID, $parent); // Link einsortieren unter dem Objekt mit der ID "12345"
IPS_SetLinkTargetID($LinkID, $id);    // Link verknüpfen
IPS_SetPosition($LinkID,$position); //Position festlegen
}
IPS_SetPosition($LinkID,$position); //Position festlegen
return $LinkID;
}

function GetorCreatcategory($name,$parent, $position=0, $hidden=false)
{
$LinkID = @IPS_GetObjectIDByName($name , $parent);
    if ($LinkID === false)
    {
$LinkID = IPS_CreateCategory();             // Link anlegen
IPS_SetName($LinkID, $name); // Link benennen
IPS_SetParent($LinkID, $parent); // Link einsortieren unter dem Objekt mit der ID "12345"
if ($hidden ===true) IPS_SetHidden($LinkID,true);
$position=room_pos($name);
IPS_SetPosition($LinkID,$position); //Position festlegen
}
$position=room_pos($name);
IPS_SetPosition($LinkID,$position);
return $LinkID;
}


function create_modbusdevice($name, $config,$modbussplitterid, $profil, $catid,$ident)
{
$modbusdevice='{CB197E50-273D-4535-8C91-BB35273E3CA5}';
$modbusinstanceid=IPS_CreateInstance($modbusdevice);
IPS_SetName($modbusinstanceid,$name);
IPS_SetConfiguration($modbusinstanceid, $config);
IPS_SetParent($modbusinstanceid, $catid);
IPS_ApplyChanges($modbusinstanceid);
$valueid=IPS_GetVariableIDByName("Wert",$modbusinstanceid);
IPS_SetName($valueid,$name);
IPS_SetVariableCustomProfile($valueid,$profil);
IPS_DisconnectInstance($modbusinstanceid);
IPS_ConnectInstance($modbusinstanceid,$modbussplitterid);
#IPS_SetIdent($valueid,$ident);
// Archive Control ID herrausfinden
foreach(IPS_GetInstanceList ( ) as $m_id)// Durchsucht alle Instanzen und gibt die INstanzid an $i_id weiter
{
$typ=IPS_GetInstance($m_id)['ModuleInfo']['ModuleName']; // Fragt die Instanzen nach den Modulnamen ab....
if ($typ=="Archive Control") $modul_id=$m_id; // Wenn die INstanz den Modulnamen "Archive Control" hat, dann schreibe die ID in $modul_id
}

AC_SetLoggingStatus($modul_id,$valueid,true);
AC_SetAggregationType($modul_id,$valueid,1);
AC_ReAggregateVariable($modul_id,$valueid);
return $modbusinstanceid;
}

Irgendwie stimmen die Werte nicht aus dem Smartmeter :frowning:

Welche Modbus Adressen verwendet Ihr, um die Leistung in Watt oder kW vom Smartmeter auszulesen, also was gerade verbraucht wird…

Ich lese 37113 aus.
>0: Stromexport/Überschuss
<0: Stromimport/Bezug

scheint bei mir zu passen, mir ist nichts aufgefallen.

hab ich da was falsch gemacht es kommt diese Meldung beim Ausführen?

Danke :slight_smile: Alex

Hm komisch das Ding zeigt mir gerade -150W an und mein SMD360 zeigt mir aber 350W an ? Wie kann es so einen krassen unterschied geben ? Klar das eine wird per Magnetfeld gemessen und der SMD360 misst es genauer, ka wie,…

Sorry ich muss da nochmals ran :frowning: das es auch bei euch läuft… Habe auch den Akku vergessen…

Ich kriege auch die Meldung von Zonex. Ich bin gespannt auf die Version mit Akku :slight_smile:

kann ich dir sagen wenn´s läuft, lese den Smart Meter vom Netzbetreiber via IR aus dann sollte ja bei mir auch der unterschied zusehen sein.

1 „Gefällt mir“

Ich habe bei mir die _pos funktionen einfach mal durch 1 oder 2 ersetzt damit das Script durchläuft. Kriege aber überall weiterhin 0er Ausgaben außer bei Reactive und Reverse Active (-327 kwh) sowie „Am Tag“ (40623kwh) und „Gesamtenergieertrag“ (275906kwh). Aber alles keine sinnvollen Werte.


So sieht das bei mir aus (Bezug vom Netz). Ich hatte auch so meine Probleme nach der Installation beim ersten auslesen funktionierte das auch nicht. Es kamen auch nur einzelne Daten…

Einspeisung ins Netz