ich bin noch nicht lange dabei und will mir eine kleine PV Anlage zulegen. Da ich sehr viele HomeMatic Teile schon im Einsatz habe würde ich gern dabei bleiben und solaranzeige nutzen. Unteranderem besitze ich auch die HMIP-PSM "Schalt-Mess-Steckdose", diese können mit der Firmware 2.22.8 jetzt auch negative power messen. https://homematic-forum.de/forum/viewtopic.php?t=74070
Ich habe die hm_geraet.php um die Werte von HMIP-PSM erweitert. Die Werte kann man jetzt auch auswählen aber leider komme ich mit den Summen Berechnungen nicht ganz zurecht. Könnte man den HMIP-PSM analog Sonoff mit aufnehmen?
Code: Alles auswählen
//++++++++++++++++++++++
elseif (substr( $HM_Geraetetyp[$s], 0, 8 ) == "HMIP-PSM") {
if ((string) $doc["device"][0]->channel[$i]->datapoint[$k]["type"] == "POWER") {
$aktuelleDaten["HM_Seriennummer".$s]["AC_Leistung"] = round( (string) $doc["device"][0]->channel[$i]->datapoint[$k]["value"], 1 );
$aktuelleDaten["HM_Seriennummer".$s]["AC_Leistung_Unit"] = "W";
}
if ((string) $doc["device"][0]->channel[$i]->datapoint[$k]["type"] == "VOLTAGE") {
$aktuelleDaten["HM_Seriennummer".$s]["AC_Spannung"] = round( (string) $doc["device"][0]->channel[$i]->datapoint[$k]["value"], 1 );
$aktuelleDaten["HM_Seriennummer".$s]["AC_Spannung_Unit"] = "V";
}
if ((string) $doc["device"][0]->channel[$i]->datapoint[$k]["type"] == "CURRENT") {
$aktuelleDaten["HM_Seriennummer".$s]["AC_Strom"] = (string) $doc["device"][0]->channel[$i]->datapoint[$k]["value"] / 1000;
$aktuelleDaten["HM_Seriennummer".$s]["AC_Strom_Unit"] = "A";
}
if ((string) $doc["device"][0]->channel[$i]->datapoint[$k]["type"] == "FREQUENCY") {
$aktuelleDaten["HM_Seriennummer".$s]["AC_Frequenz"] = round( (string) $doc["device"][0]->channel[$i]->datapoint[$k]["value"], 1 );
$aktuelleDaten["HM_Seriennummer".$s]["AC_Frequenz_Unit"] = "Hz";
}
if ((string) $doc["device"][0]->channel[$i]->datapoint[$k]["type"] == "ENERGY_COUNTER") {
$aktuelleDaten["HM_Seriennummer".$s]["WattstundenGesamt"] = round( (string) $doc["device"][0]->channel[$i]->datapoint[$k]["value"] / 1000, 3 );
$aktuelleDaten["HM_Seriennummer".$s]["WattstundenGesamt_Unit"] = "kWh";
}
}
//++++++++++++++++++++++
Code: Alles auswählen
elseif ($HM_Geraetetyp[$s] == "HM-ES-TX-WM") {
if ((string) $doc["device"][0]->channel[$i]->datapoint[$k]["type"] == "ENERGY_COUNTER") {
$aktuelleDaten["HM_Seriennummer".$s]["AC_Verbrauch"] = round( (string) $doc["device"][0]->channel[$i]->datapoint[$k]["value"] / 10, 0 );
$aktuelleDaten["HM_Seriennummer".$s]["AC_Verbrauch_Unit"] = "kWh";
}
if ((string) $doc["device"][0]->channel[$i]->datapoint[$k]["type"] == "POWER") {
$aktuelleDaten["HM_Seriennummer".$s]["AC_Verbrauch_Leistung"] = (string) $doc["device"][0]->channel[$i]->datapoint[$k]["value"] ;
$aktuelleDaten["HM_Seriennummer".$s]["AC_Verbrauch_Leistung_Unit"] = "W";
}
}