Hallo zusammen,
hab nun den ganzen beitrag editiert.
Die Instanz wurde nicht grün, da die Baudrate nicht passte.
Hier die EInstellung mit dem CUL:
Zähler wurde anschließend sehr schnell gefunden , AES Key rein uns schon kommen die Daten rein.
Hallo zusammen,
hab nun den ganzen beitrag editiert.
Die Instanz wurde nicht grün, da die Baudrate nicht passte.
Hier die EInstellung mit dem CUL:
Zähler wurde anschließend sehr schnell gefunden , AES Key rein uns schon kommen die Daten rein.
@haus-automatisierung ok danke. Dachte mir doch der wäre dagewesen
Ihr braucht nicht mehr zu Antworten. Fehler gefunden.
Zyklus nicht beendet ich depp....
Hallo zusammen,
habe ein Blockly geschrieben, welches abhängig vom SoC des Batteriespeiechers die Ladeleistung reduzieren soll.
Dazu müssen nach Modbus-Doku des WR (SMA SBS 2.5) alle 6 Register zyklisch geschrieben werden. Nach Erfahrungen anderer User so alle 15-25 sek.
Sonst verfällt der WR in den Automatikmodus.
Das funktioniert auch soweit so gut, WR lässt sich steuern.
Nun ändert aber das Skript einige Sachen von sich aus.
z.b. aktualisiert er die Werte nach einer gewissen zeit auf einmal alle 5 Sekunden , und nach einem Wechsel der Leistung , also z.b. der Sprung von SoC 79 auf 80 (was eine Leistungsänderung haben sollte) schreibt er dann beide Werte , also 2200 W und 1950 W ins Register 40795.
Wo habe ich hier den Fehler, dass sich der Zyklus "aufhängt" ?
Ich danke für eure Hilfe
var my_1, my_2, my_3, my_4;
on({ id: [].concat(['modbus.0.inputRegisters.30845_BAT_SoC']), change: 'ne' }, async (obj) => {
let value = obj.state.val;
let oldValue = obj.oldState.val;
if (((obj.state ? obj.state.val : '') <= 99) && ((obj.state ? obj.state.val : '') >= 98)) {
my_1 = setInterval(async () => {
setStateDelayed('modbus.0.holdingRegisters.40236_CmpBMSOpMod' /* Betriebsart des BMS */, 2424, 250, false);
setStateDelayed('modbus.0.holdingRegisters.40793_BatChaMinW' /* Minimale Batterieladeleistung */, 0, 250, false);
setStateDelayed('modbus.0.holdingRegisters.40795_BatChaMaxW' /* Maximale Batterieladeleistung */, 500, 250, false);
setStateDelayed('modbus.0.holdingRegisters.40797_BatDschMinW' /* Minimale Batterieentladeleistung */, 0, 250, false);
setStateDelayed('modbus.0.holdingRegisters.40799_BatDschMaxW' /* Maximale Batterieentladeleistung */, 2650, 250, false);
setStateDelayed('modbus.0.holdingRegisters.40801_GridWSpt' /* Sollwert der Netzaustauschleistung */, 0, 250, false);
}, 15000);
} else if (((obj.state ? obj.state.val : '') <= 97) && ((obj.state ? obj.state.val : '') >= 90)) {
my_2 = setInterval(async () => {
setStateDelayed('modbus.0.holdingRegisters.40236_CmpBMSOpMod' /* Betriebsart des BMS */, 2424, 250, false);
setStateDelayed('modbus.0.holdingRegisters.40793_BatChaMinW' /* Minimale Batterieladeleistung */, 0, 250, false);
setStateDelayed('modbus.0.holdingRegisters.40795_BatChaMaxW' /* Maximale Batterieladeleistung */, 1650, 250, false);
setStateDelayed('modbus.0.holdingRegisters.40797_BatDschMinW' /* Minimale Batterieentladeleistung */, 0, 250, false);
setStateDelayed('modbus.0.holdingRegisters.40799_BatDschMaxW' /* Maximale Batterieentladeleistung */, 2650, 250, false);
setStateDelayed('modbus.0.holdingRegisters.40801_GridWSpt' /* Sollwert der Netzaustauschleistung */, 0, 250, false);
}, 15000);
} else if (((obj.state ? obj.state.val : '') <= 89) && ((obj.state ? obj.state.val : '') >= 80)) {
my_3 = setInterval(async () => {
setStateDelayed('modbus.0.holdingRegisters.40236_CmpBMSOpMod' /* Betriebsart des BMS */, 2424, 250, false);
setStateDelayed('modbus.0.holdingRegisters.40793_BatChaMinW' /* Minimale Batterieladeleistung */, 0, 250, false);
setStateDelayed('modbus.0.holdingRegisters.40795_BatChaMaxW' /* Maximale Batterieladeleistung */, 1950, 250, false);
setStateDelayed('modbus.0.holdingRegisters.40797_BatDschMinW' /* Minimale Batterieentladeleistung */, 0, 250, false);
setStateDelayed('modbus.0.holdingRegisters.40799_BatDschMaxW' /* Maximale Batterieentladeleistung */, 2650, 250, false);
setStateDelayed('modbus.0.holdingRegisters.40801_GridWSpt' /* Sollwert der Netzaustauschleistung */, 0, 250, false);
}, 15000);
} else if (((obj.state ? obj.state.val : '') <= 79) && ((obj.state ? obj.state.val : '') >= 70)) {
my_4 = setInterval(async () => {
setStateDelayed('modbus.0.holdingRegisters.40236_CmpBMSOpMod' /* Betriebsart des BMS */, 2424, 250, false);
setStateDelayed('modbus.0.holdingRegisters.40793_BatChaMinW' /* Minimale Batterieladeleistung */, 0, 250, false);
setStateDelayed('modbus.0.holdingRegisters.40795_BatChaMaxW' /* Maximale Batterieladeleistung */, 2200, 250, false);
setStateDelayed('modbus.0.holdingRegisters.40797_BatDschMinW' /* Minimale Batterieentladeleistung */, 0, 250, false);
setStateDelayed('modbus.0.holdingRegisters.40799_BatDschMaxW' /* Maximale Batterieentladeleistung */, 2650, 250, false);
setStateDelayed('modbus.0.holdingRegisters.40801_GridWSpt' /* Sollwert der Netzaustauschleistung */, 0, 250, false);
}, 15000);
} else if ((obj.state ? obj.state.val : '') <= 69) {
(() => { if (my_1) { clearInterval(my_1); my_1 = null; }})();
(() => { if (my_2) { clearInterval(my_2); my_2 = null; }})();
(() => { if (my_3) { clearInterval(my_3); my_3 = null; }})();
(() => { if (my_4) { clearInterval(my_4); my_4 = null; }})();
setStateDelayed('modbus.0.holdingRegisters.40236_CmpBMSOpMod' /* Betriebsart des BMS */, 2424, 250, false);
setStateDelayed('modbus.0.holdingRegisters.40793_BatChaMinW' /* Minimale Batterieladeleistung */, 0, 250, false);
setStateDelayed('modbus.0.holdingRegisters.40795_BatChaMaxW' /* Maximale Batterieladeleistung */, 2500, 250, false);
setStateDelayed('modbus.0.holdingRegisters.40797_BatDschMinW' /* Minimale Batterieentladeleistung */, 0, 250, false);
setStateDelayed('modbus.0.holdingRegisters.40799_BatDschMaxW' /* Maximale Batterieentladeleistung */, 2650, 250, false);
setStateDelayed('modbus.0.holdingRegisters.40801_GridWSpt' /* Sollwert der Netzaustauschleistung */, 0, 250, false);
}
});
Ich danke euch
Edit , nun gerad ebei 90% SoC schreibt er tatsächlich beide Werte gleichzeitig.
@haus-automatisierung ok danke. Dachte mir doch der wäre dagewesen
Hallo zusammen,
ist es möglich auf der Oberfläche bzw. Instanz ein Scrip, welches nicht mehr benötigt wird, zu löschen?
Wenn nein, wie funktioniert dies denn?
Danke euch
Zitat STIEBEL Service :
Modbus is one based, kann also sein das alle Register um 1 versetzt sind
Ich revidiere.
Der PC läuft noch (seh ich über Monit) , Debian, SSH, Influy, iobroker , grafana etc. stürzen ab.
Nun bin ich ratlos.....
Kann es an "Berechtigungen" liegen?
ok, so wie es aussieht hat er nur eine erzeugt und vermutlich auch nur vom Bucket iobroker.
Nun hat er auch nach vielen tüfteln offenbar was gemacht, nun stützt beim Laden aber der PC ab.
Vermutlich wegen zu hoher RAM-Auslastung.
Kann man aus dem Backup einzelne Ordner löschen damit es kleiner wird, oder sind da Abhängigkeiten verbaut?
er hat mir nur von einem Bucket (iobroker) , drei hätte ich insgesamt die Measurement Namen geschrieben.
Keine Daten dazu
@marc-berg Habe einen Token zusätzlich erzeugt.
Bei diesem war wohl das Write auf Orgs nicht möglich.
Habe nun Influx nochmals installiert und beim Start den Mastertoken gespeichert und diesen ins Backup eingetragen.
Nun bekomme ich folgende Meldung :
10:27:10.600INFOguistarting Restore...
10:27:10.770DEBUGinfluxDBCreated tmp directory
10:27:10.777DEBUGinfluxDBStart influxDB Restore ...
[EXIT] influxDB restore done
Er macht also keinen Restore. Oder läuft der jetzt im Hintergrund ?
@marc-berg said in Influx Backup nicht möglich:
@chriswitt sagte in Influx Backup nicht möglich:
Es muss doch in Backitup und die Instanz der neue token oder?
Ja, auch wenn die Fehlermeldungen für mich noch kein konsistentes Bild abgeben. Wichtig ist aber, dass das Bucket vor der Wiederherstellung nicht existieren darf. Also die InfluxDB Instanzen stoppen, Bucket löschen und nochmals die Wiederherstellung starten.
Gemacht.
Dann kommt dies :
10:10:24.346INFOguistarting Restore...
10:10:24.430DEBUGinfluxDBCreated tmp directory
10:10:24.432DEBUGinfluxDBStart influxDB Restore ...
10:10:42.903ERRORinfluxDBError: failed to check existence of organization "ID3": 401 Unauthorized: unauthorized access
10:10:42.940DEBUGinfluxDBTry deleting the InfluxDB tmp directory
[EXIT] influxDB restore done
Die Organisation existiert aber def. auf Influx