hdering / homematic_verbrauchszaehler

Mittels ioBroker Javascript Stromzähler protokollieren
18 stars 7 forks source link

error: sql.0 Cannot delete DELETE FROM iobroker.undefined WHERE #15

Open Scrounger opened 5 years ago

Scrounger commented 5 years ago

Wer den folgenden Fehler im log hat: error: sql.0 Cannot delete DELETE FROM iobroker.undefined WHERE ....

kann das verhindern in dem ihr die Funktion enableHistory wie folget ändert:

function enableHistory(geraet, zeitraum) {

    if (instance_history !== '') {

        let kostenObj = getObject(instanz + pfad + geraet + '.Kosten.' + zeitraum);
        if (!kostenObj || !kostenObj.common || !kostenObj.common.custom || !kostenObj.common.custom[instance_history]) {
            sendTo(instance_history, 'enableHistory', {
                id: instanz + pfad + geraet + '.Kosten.' + zeitraum,
                options: {
                    changesOnly: true,
                    debounce: 0,
                    retention: 31536000,
                    changesRelogInterval: 0,
                    changesMinDelta: 0,
                    storageType: "Number"
                }
            }, function (result) {
                if (result.error) {
                    if (logging) log("Fehler beim Aktivieren von History: " + result.error);
                }
            });
        }

        let verbrauchObj = getObject(instanz + pfad + geraet + '.Verbrauch.' + zeitraum);
        if (!verbrauchObj || !verbrauchObj.common || !verbrauchObj.common.custom || !verbrauchObj.common.custom[instance_history]) {
            sendTo(instance_history, 'enableHistory', {
                id: instanz + pfad + geraet + '.Verbrauch.' + zeitraum,
                options: {
                    changesOnly: true,
                    debounce: 0,
                    retention: 31536000,
                    changesRelogInterval: 0,
                    changesMinDelta: 0,
                    storageType: "Number"
                }
            }, function (result) {
                if (result.error) {
                    if (logging) log("Fehler beim Aktivieren von History: " + result.error);
                }
            });
        }

        let zaehlerstandObj = getObject(instanz + pfad + geraet + '.Zaehlerstand.' + zeitraum);
        if (!zaehlerstandObj || !zaehlerstandObj.common || !zaehlerstandObj.common.custom || !zaehlerstandObj.common.custom[instance_history]) {
            sendTo(instance_history, 'enableHistory', {
                id: instanz + pfad + geraet + '.Zaehlerstand.' + zeitraum,
                options: {
                    changesOnly: true,
                    debounce: 0,
                    retention: 31536000,
                    changesRelogInterval: 0,
                    changesMinDelta: 0,
                    storageType: "Number"
                }
            }, function (result) {
                if (result.error) {
                    if (logging) log("Fehler beim Aktivieren von History: " + result.error);
                }
            });
        }
    }
}

Damit wird sql nur aktiviert, sofern der Datenpunkt noch nicht aktiviert ist und somit kommt auch die fehlermeldung nicht mehr

Ticket beim Adapter Sql