Felix Riesterer: JavaScript

Beitrag lesen

Lieber ROGA,

PVA.Batterie.Status = getSate('sun2000.0.collected.SOC').val;
PVA.Batterie.LadungEntladung = getSate('sun2000.0.collected.chargeDischargePower').val;

aus Sicht von JavaScript greifst Du mit PVA.Batterie auf eine Eigenschaft namens Batterie des in der Variablen PVA gespeicherten Objektes zu. Diese Eigenschaft muss natürlich existieren, weil Du sie in diesem Objekt angelegt hast:

const PVA = new Object();
PVA.Batterie = new Object();
PVA.Batterie.Status = "irgendein Wert von irgendwo her";
PVA.Batterie.LadungEntladung = "irgendein anderer Wert von irgendwo her";

In JavaScript gibt es verschiedene Schreibweisen, wie man ein Objekt definieren kann. Im Vorliegenden Fall braucht es das PVA-Objekt nur einmal. Da lohnt es sich nicht, eine Art Blaupause dafür zu machen, um von dieser Art Objekt mehrere Instanzen zu erzeugen. Oder hast Du vor, damit einmal mehrere Anlagen auf einer Seite zu steuern?

const PVA = {
  // In den geschweiftern Klammern steht das Objekt als Literal notiert.
  Batterie: {
    // das Batterie-Objekt seinerseits als Literal
    Status: null,
    LadungEntladung: null
  },
  // nun eine Methode, also eine Funktion, die dem Objekt PVA „gehört“:
  BatterieEinlesen: function () {
    this.Batterie.Status = getState('sun2000.0.collected.SOC').val;
    this.Batterie.LadungEntladung = getState('sun2000.0.collected.chargeDischargePower').val;
  }
};

console.log(PVA); // die Batterie hat leere Werte (jeweils null)
PVA.BatterieEinlesen();
console.log(PVA); // die Batterie sollte nun die ermittelten Werte haben

Liebe Grüße

Felix Riesterer