HomeMatic HMIP-PSM
Verfasst: Mi 15. Jun 2022, 10:36
Hallo,
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?
Und noch ein zweites den HM-ES-TX-WM kann man als Strom- und Gaszähler verwenden, könnte der HM-ES-TX-WM für Stromzähler erweitert werden?
Gruß Paul
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";
}
}