Hallo Rainer,
versuch es mal so:
on({id: "smartmeter.0.1-0:16_7_0_255.value", change: "ne"}, function (obj) {
// Ausleseskript Wechselrichter Kostal Piko ab Firmware v05.31 (12.10.2015)
//Variable
//Leistungswerte
ID_DCEingangGesamt = 33556736; // in W
ID_Ausgangsleistung = 67109120; // in W
ID_Eigenverbrauch = 83888128; // in W
//Status
ID_Status = 16780032; // 0:Off
//Statistik - Tag
ID_Ertrag_d = 251658754; // in Wh
ID_Hausverbrauch_d = 251659010; // in Wh
ID_Eigenverbrauch_d = 251659266; // in Wh
ID_Eigenverbrauchsquote_d = 251659278; // in %
ID_Autarkiegrad_d = 251659279; // in %
//Statistik - Gesamt
ID_Ertrag_G = 251658753; // in kWh
ID_Hausverbrauch_G = 251659009; // in kWh
ID_Eigenverbrauch_G = 251659265; // in kWh
ID_Eigenverbrauchsquote_G = 251659280; // in %
ID_Autarkiegrad_G = 251659281; // in %
ID_Betriebszeit = 251658496; // in h
//Momentanwerte - PV Genertor
ID_DC1Spannung = 33555202; // in V
ID_DC1Strom = 33555201; // in A
ID_DC1Leistung = 33555203; // in W
ID_DC2Spannung = 33555458; // in V
ID_DC2Strom = 33555457; // in A
ID_DC2Leistung = 33555459; // in W
//Momentanwerte Haus
ID_HausverbrauchSolar = 83886336; // in W
ID_HausverbrauchBatterie = 83886592; // in W
ID_HausverbrauchNetz = 83886848; // in W
ID_HausverbrauchPhase1 = 83887106; // in W
ID_HausverbrauchPhase2 = 83887362; // in W
ID_HausverbrauchPhase3 = 83887618; // in W
//Netz Netzparameter
ID_NetzAusgangLeistung = 67109120; // in W
ID_NetzFrequenz = 67110400; // in Hz
ID_NetzCosPhi = 67110656;
//Netz Phase 1
ID_P1Spannung = 67109378; // in V
ID_P1Strom = 67109377; // in A
ID_P1Leistung = 67109379; // in W
//Netz Phase 2
ID_P2Spannung = 67109634; // in V
ID_P2Strom = 67109633; // in A
ID_P2Leistung = 67109635; // in W
//Netz Phase 3
ID_P3Spannung = 67109890; // in V
ID_P3Strom = 67109889; // in A
ID_P3Leistung = 67109891; // in W
var IPAnlage = '192.168.138.103/api/dxs.json'; // IP der Photovoltaik-Anlage
createState('Messwerte.0.Solaranlage.Momentanwerte.Leistung_AC_aktuell', 0);
createState('Messwerte.0.Solaranlage.Summenwerte.Autarkiegrad_d',0);
createState('Messwerte.0.Solaranlage.Summenwerte.Autarkiegrad_G',0);
createState('Messwerte.0.Solaranlage.Summenwerte.Betriebszeit',0);
createState('Messwerte.0.Solaranlage.Momentanwerte.Leistung_DC_aktuell',0);
createState('Messwerte.0.Solaranlage.Momentanwerte.Eigenverbrauch',0);
createState('Messwerte.0.Solaranlage.Summenwerte.Eigenverbrauch_d');
createState('Messwerte.0.Solaranlage.Summenwerte.Eigenverbrauch_G', 0);
createState('Messwerte.0.Solaranlage.Summenwerte.Eigenverbrauchsquote_d', 0);
createState('Messwerte.0.Solaranlage.Summenwerte.Eigenverbrauchsquote_G', 0);
createState('Messwerte.0.Solaranlage.Summenwerte.Tagesertrag', 0);
createState('Messwerte.0.Solaranlage.Summenwerte.Gesamtertrag', 0);
createState('Messwerte.0.Solaranlage.Summenwerte.Hausverbrauch_d', 0);
createState('Messwerte.0.Solaranlage.Summenwerte.Hausverbrauch_G', 0);
createState('Messwerte.0.Solaranlage.Momentanwerte.P1Spannung');
createState('Messwerte.0.Solaranlage.Momentanwerte.P2Spannung');
createState('Messwerte.0.Solaranlage.Momentanwerte.P1Strom');
createState('Messwerte.0.Solaranlage.Momentanwerte.P2Strom');
createState('Messwerte.0.Solaranlage.Momentanwerte.P1Leistung');
createState('Messwerte.0.Solaranlage.Momentanwerte.P2Leistung');
var logging = false;
var request = require('request');
function Piko() {
if (logging) log("Piko 5.5 auslesen");
request('http://' + IPAnlage +
'?dxsEntries=' + ID_DCEingangGesamt +
'&dxsEntries=' + ID_Ausgangsleistung +
'&dxsEntries=' + ID_Eigenverbrauch +
'&dxsEntries=' + ID_Eigenverbrauch_d +
'&dxsEntries=' + ID_Eigenverbrauch_G +
'&dxsEntries=' + ID_Eigenverbrauchsquote_d +
'&dxsEntries=' + ID_Eigenverbrauchsquote_G +
'&dxsEntries=' + ID_Ertrag_d +
'&dxsEntries=' + ID_Ertrag_G +
'&dxsEntries=' + ID_Hausverbrauch_d +
'&dxsEntries=' + ID_Hausverbrauch_G +
'&dxsEntries=' + ID_Autarkiegrad_G +
'&dxsEntries=' + ID_Autarkiegrad_d +
'&dxsEntries=' + ID_Betriebszeit +
'&dxsEntries=' + ID_P1Spannung +
'&dxsEntries=' + ID_P2Spannung +
'&dxsEntries=' + ID_P1Strom +
'&dxsEntries=' + ID_P2Strom +
'&dxsEntries=' + ID_P1Leistung +
'&dxsEntries=' + ID_P2Leistung +
'&dxsEntries=' + ID_Status +
'&dxsEntries=' + ID_DC1Leistung +
'&dxsEntries=' + ID_DC2Leistung,
function (error, response, body) {
if(!error && response.statusCode ==200) {
if(logging) log(body);
var result = JSON.parse(body).dxsEntries;
setState('Messwerte.0.Solaranlage.Momentanwerte.Leistung_DC_aktuell', result[0].value || 0, true);
setState('Messwerte.0.Solaranlage.Momentanwerte.Leistung_AC_aktuell', result[1].value || 0, true);
setState('Messwerte.0.Solaranlage.Momentanwerte.Eigenverbrauch', result[2].value || 0, true);
setState('Messwerte.0.Solaranlage.Summenwerte.Eigenverbrauch_d', result[3].value || 0, true);
setState('Messwerte.0.Solaranlage.Summenwerte.Eigenverbrauch_G', result[4].value || 0, true);
setState('Messwerte.0.Solaranlage.Summenwerte.Eigenverbrauchsquote_d', result[5].value || 0, true);
setState('Messwerte.0.Solaranlage.Summenwerte.Eigenverbrauchsquote_G', result[6].value || 0, true);
setState('Messwerte.0.Solaranlage.Summenwerte.Tagesertrag', result[7].value || 0, true);
setState('Messwerte.0.Solaranlage.Summenwerte.Gesamtertrag', result[8].value || 0, true);
setState('Messwerte.0.Solaranlage.Summenwerte.Hausverbrauch_d', result[9].value || 0, true);
setState('Messwerte.0.Solaranlage.Summenwerte.Hausverbrauch_G', result[10].value || 0, true);
setState('Messwerte.0.Solaranlage.Summenwerte.Autarkiegrad_G', result[11].value || 0, true);
setState('Messwerte.0.Solaranlage.Summenwerte.Autarkiegrad_d', result[12].value || 0, true);
setState('Messwerte.0.Solaranlage.Summenwerte.Betriebszeit', result[13].value || 0, true);
setState('Messwerte.0.Solaranlage.Momentanwerte.P1Spannung', result[14].value || 0, true);
setState('Messwerte.0.Solaranlage.Momentanwerte.P2Spannung', result[15].value || 0, true);
setState('Messwerte.0.Solaranlage.Momentanwerte.P1Strom', result[16].value || 0, true);
setState('Messwerte.0.Solaranlage.Momentanwerte.P2Strom', result[17].value || 0, true);
setState('Messwerte.0.Solaranlage.Momentanwerte.P1Leistung', result[18].value || 0, true);
setState('Messwerte.0.Solaranlage.Momentanwerte.P2Leistung', result[19].value || 0, true);
setState('Messwerte.0.Solaranlage.Momentanwerte.Status', result[20].value || 0, true);
setState('Messwerte.0.Solaranlage.Momentanwerte.Leistung_String1', result[21].value || 0, true);
setState('Messwerte.0.Solaranlage.Momentanwerte.Leistung_String2', result[22].value || 0, true);
} else {
log("Fehler: " + error + " bei Abfrage von: " + url, "warn");
}
});
}
});
Wenn der Wert von "smartmeter.0.1-0:16_7_0_255.value" sich ändert und ungleich dem vorherigen Wert ist, wird getriggert.
Viele Grüße
Christian