Skip to content
  • Home
  • Aktuell
  • Tags
  • 0 Ungelesen 0
  • Kategorien
  • Unreplied
  • Beliebt
  • GitHub
  • Docu
  • Hilfe
Skins
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Standard: (Kein Skin)
  • Kein Skin
Einklappen
ioBroker Logo

Community Forum

donate donate
  1. ioBroker Community Home
  2. Deutsch
  3. Skripten / Logik
  4. Datenpunkte sollen bei Ereignis geändert werden

NEWS

  • Jahresrückblick 2025 – unser neuer Blogbeitrag ist online! ✨
    BluefoxB
    Bluefox
    17
    1
    2.5k

  • Neuer Blogbeitrag: Monatsrückblick - Dezember 2025 🎄
    BluefoxB
    Bluefox
    13
    1
    991

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    25
    1
    2.3k

Datenpunkte sollen bei Ereignis geändert werden

Geplant Angeheftet Gesperrt Verschoben Skripten / Logik
6 Beiträge 2 Kommentatoren 522 Aufrufe 3 Watching
  • Älteste zuerst
  • Neuste zuerst
  • Meiste Stimmen
Antworten
  • In einem neuen Thema antworten
Anmelden zum Antworten
Dieses Thema wurde gelöscht. Nur Nutzer mit entsprechenden Rechten können es sehen.
  • J Offline
    J Offline
    jones88
    schrieb am zuletzt editiert von
    #1

    Hallo Zusammen,

    ich habe einen Solaredge Wechselrichter. Ich habe für meine VIS diesbezüglich 3 Datenpunkte angelegt. Diese sollen bei Änderung der Werte im Solardedge Verzeichnis aktualisiert werden. Leider ändern sich zwar die Solaredge Werte, aber meine Datenpunkte werden nicht geschrieben.
    Ich finde den Fehler nicht.

    solaredge2.jpg solaredge1.jpg
    solaredge3.jpg

    on({ id: [].concat(['solaredge.1.2881352.currentPower']), change: 'ne' }, async (obj) => {
      let value = obj.state.val;
      let oldValue = obj.oldState.val;
      setState('0_userdata.0.Solaredge.Aktuelle_Produktion' /* Aktuelle Produktion */, (getObject('solaredge.0.2881352.currentPower') / 1000), true);
    });
    on({ id: [].concat(['solaredge.1.2881352.lastDayData']), change: 'ne' }, async (obj) => {
      let value = obj.state.val;
      let oldValue = obj.oldState.val;
      setState('0_userdata.0.Solaredge.Tagesproduktion' /* Tagesproduktion */, (getObject('solaredge.0.2881352.lastDayData') / 1000), true);
    });
    on({ id: [].concat(['solaredge.1.2881352.lastMonthData']), change: 'ne' }, async (obj) => {
      let value = obj.state.val;
      let oldValue = obj.oldState.val;
      setState('0_userdata.0.Solaredge.Produktion_Monat' /* Produktion Monat */, (getObject('solaredge.0.2881352.lastMonthData') / 1000), true);
    });
    
    CodierknechtC 1 Antwort Letzte Antwort
    0
    • J jones88

      Hallo Zusammen,

      ich habe einen Solaredge Wechselrichter. Ich habe für meine VIS diesbezüglich 3 Datenpunkte angelegt. Diese sollen bei Änderung der Werte im Solardedge Verzeichnis aktualisiert werden. Leider ändern sich zwar die Solaredge Werte, aber meine Datenpunkte werden nicht geschrieben.
      Ich finde den Fehler nicht.

      solaredge2.jpg solaredge1.jpg
      solaredge3.jpg

      on({ id: [].concat(['solaredge.1.2881352.currentPower']), change: 'ne' }, async (obj) => {
        let value = obj.state.val;
        let oldValue = obj.oldState.val;
        setState('0_userdata.0.Solaredge.Aktuelle_Produktion' /* Aktuelle Produktion */, (getObject('solaredge.0.2881352.currentPower') / 1000), true);
      });
      on({ id: [].concat(['solaredge.1.2881352.lastDayData']), change: 'ne' }, async (obj) => {
        let value = obj.state.val;
        let oldValue = obj.oldState.val;
        setState('0_userdata.0.Solaredge.Tagesproduktion' /* Tagesproduktion */, (getObject('solaredge.0.2881352.lastDayData') / 1000), true);
      });
      on({ id: [].concat(['solaredge.1.2881352.lastMonthData']), change: 'ne' }, async (obj) => {
        let value = obj.state.val;
        let oldValue = obj.oldState.val;
        setState('0_userdata.0.Solaredge.Produktion_Monat' /* Produktion Monat */, (getObject('solaredge.0.2881352.lastMonthData') / 1000), true);
      });
      
      CodierknechtC Offline
      CodierknechtC Offline
      Codierknecht
      Developer Most Active
      schrieb am zuletzt editiert von Codierknecht
      #2

      @jones88
      Sowas geht viel einfacher mit einem Alias.
      Du legst Dir im Baum 3 Aliase an, lässt die auf die entsprechenden DP gucken und trägst als Konvertierungsfunktion (lesend) ein:

      val / 1000
      

      Nur der Vollständigkeit halber: Du musst den Wert lesen -- nicht das Objekt!

      on({ id: 'solaredge.1.2881352.lastMonthData', change: 'ne' }, async (obj) => {
        setState('0_userdata.0.Solaredge.Produktion_Monat', getState('solaredge.0.2881352.lastMonthData').val / 1000), true);
      });
      

      "Any fool can write code that a computer can understand. Good programmers write code that humans can understand." (Martin Fowler, "Refactoring")

      Proxmox 9.1.1 LXC|8 GB|Core i7-6700
      HmIP|ZigBee|Tasmota|Unifi
      Zabbix Certified Specialist
      Konnte ich Dir helfen? Dann benutze bitte das Voting unten rechts im Beitrag

      J 1 Antwort Letzte Antwort
      0
      • CodierknechtC Codierknecht

        @jones88
        Sowas geht viel einfacher mit einem Alias.
        Du legst Dir im Baum 3 Aliase an, lässt die auf die entsprechenden DP gucken und trägst als Konvertierungsfunktion (lesend) ein:

        val / 1000
        

        Nur der Vollständigkeit halber: Du musst den Wert lesen -- nicht das Objekt!

        on({ id: 'solaredge.1.2881352.lastMonthData', change: 'ne' }, async (obj) => {
          setState('0_userdata.0.Solaredge.Produktion_Monat', getState('solaredge.0.2881352.lastMonthData').val / 1000), true);
        });
        
        J Offline
        J Offline
        jones88
        schrieb am zuletzt editiert von jones88
        #3

        @codierknecht

        Okay das mit dem Alias Manager muss ich mir anschauen. Habe ich bislang nicht gemacht.

        Aber nochmal zu meinem Beispiel, wie müsste ich denn meine Zeile ändern um den Wert zu lesen und nicht das Objekt? Könntest du mir das kurz erklären oder meinen Code beispielhaft editieren?

        CodierknechtC 1 Antwort Letzte Antwort
        0
        • J jones88

          @codierknecht

          Okay das mit dem Alias Manager muss ich mir anschauen. Habe ich bislang nicht gemacht.

          Aber nochmal zu meinem Beispiel, wie müsste ich denn meine Zeile ändern um den Wert zu lesen und nicht das Objekt? Könntest du mir das kurz erklären oder meinen Code beispielhaft editieren?

          CodierknechtC Offline
          CodierknechtC Offline
          Codierknecht
          Developer Most Active
          schrieb am zuletzt editiert von
          #4

          @jones88 sagte in Datenpunkte sollen bei Ereignis geändert werden:

          das mit dem Alias Manager

          Nix "Alias Manager". Direkt im Baum
          30eb4aeb-5c01-4d7d-a84e-40cb5b136c79-image.png

          @jones88 sagte in Datenpunkte sollen bei Ereignis geändert werden:

          Aber nochmal zu meinem Beispiel, wie müsste ich denn meine Zeile ändern um den Wert zu lesen und nicht das Objekt? Könntest du mir das kurz erklären oder meinen Code beispielhaft editieren?

          Habe ich doch bereits - siehe mein Beispiel.

          "Any fool can write code that a computer can understand. Good programmers write code that humans can understand." (Martin Fowler, "Refactoring")

          Proxmox 9.1.1 LXC|8 GB|Core i7-6700
          HmIP|ZigBee|Tasmota|Unifi
          Zabbix Certified Specialist
          Konnte ich Dir helfen? Dann benutze bitte das Voting unten rechts im Beitrag

          J 1 Antwort Letzte Antwort
          0
          • CodierknechtC Codierknecht

            @jones88 sagte in Datenpunkte sollen bei Ereignis geändert werden:

            das mit dem Alias Manager

            Nix "Alias Manager". Direkt im Baum
            30eb4aeb-5c01-4d7d-a84e-40cb5b136c79-image.png

            @jones88 sagte in Datenpunkte sollen bei Ereignis geändert werden:

            Aber nochmal zu meinem Beispiel, wie müsste ich denn meine Zeile ändern um den Wert zu lesen und nicht das Objekt? Könntest du mir das kurz erklären oder meinen Code beispielhaft editieren?

            Habe ich doch bereits - siehe mein Beispiel.

            J Offline
            J Offline
            jones88
            schrieb am zuletzt editiert von
            #5

            @codierknecht

            Sorry, bin unterwegs. Jetzt habe ich deine Änderung gesehen. Alles klar, vielen Dank.
            Werde das heute Abend umsetzen.

            Das Thema mit den Alias muss ich mir ebenso heute Abend anschauen. Verstehe aktuell nicht wie ich einen Datenpunkt auf einen anderen schauen lassen kann. Du meinst per Java-Script oder wie?

            CodierknechtC 1 Antwort Letzte Antwort
            0
            • J jones88

              @codierknecht

              Sorry, bin unterwegs. Jetzt habe ich deine Änderung gesehen. Alles klar, vielen Dank.
              Werde das heute Abend umsetzen.

              Das Thema mit den Alias muss ich mir ebenso heute Abend anschauen. Verstehe aktuell nicht wie ich einen Datenpunkt auf einen anderen schauen lassen kann. Du meinst per Java-Script oder wie?

              CodierknechtC Offline
              CodierknechtC Offline
              Codierknecht
              Developer Most Active
              schrieb am zuletzt editiert von
              #6

              @jones88 sagte in Datenpunkte sollen bei Ereignis geändert werden:

              Verstehe aktuell nicht wie ich einen Datenpunkt auf einen anderen schauen lassen kann. Du meinst per Java-Script oder wie?

              Nein. Kein Script.
              Du hast ja benutzerdefinierte DP in 0_userdata.0 angelegt, in die Du per Script Werte aus anderen DP schreiben willst.
              Das brauchst Du nicht.
              Statt der eigenen DP in 0_userdata.0 legst Du welche in alias.0 an und trägst bei denen die Konvertierungsfunktion ein. Die sind also quasi der Ersatz für Deine per Script aktualisierten DP. In der Vis nimmst Du dann die Alias-DP.

              "Any fool can write code that a computer can understand. Good programmers write code that humans can understand." (Martin Fowler, "Refactoring")

              Proxmox 9.1.1 LXC|8 GB|Core i7-6700
              HmIP|ZigBee|Tasmota|Unifi
              Zabbix Certified Specialist
              Konnte ich Dir helfen? Dann benutze bitte das Voting unten rechts im Beitrag

              1 Antwort Letzte Antwort
              0
              Antworten
              • In einem neuen Thema antworten
              Anmelden zum Antworten
              • Älteste zuerst
              • Neuste zuerst
              • Meiste Stimmen


              Support us

              ioBroker
              Community Adapters
              Donate

              614

              Online

              32.6k

              Benutzer

              82.3k

              Themen

              1.3m

              Beiträge
              Community
              Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen | Einwilligungseinstellungen
              ioBroker Community 2014-2025
              logo
              • Anmelden

              • Du hast noch kein Konto? Registrieren

              • Anmelden oder registrieren, um zu suchen
              • Erster Beitrag
                Letzter Beitrag
              0
              • Home
              • Aktuell
              • Tags
              • Ungelesen 0
              • Kategorien
              • Unreplied
              • Beliebt
              • GitHub
              • Docu
              • Hilfe