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. JavaScript
  5. Javascript Hausverbrauch berechnen und anzeigen

NEWS

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

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

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    25
    1
    2.2k

Javascript Hausverbrauch berechnen und anzeigen

Geplant Angeheftet Gesperrt Verschoben JavaScript
6 Beiträge 2 Kommentatoren 619 Aufrufe 1 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.
  • T Offline
    T Offline
    txixmxo
    schrieb am zuletzt editiert von txixmxo
    #1

    Hallo zusammen,

    ich bin leider absoluter Neuling in Sachen Javascript und finde meinen Fehler nicht.

    Ausgangslage:
    Ich habe eine PV-Anlage auf dem Dach, bei der ich über den Modbusadapter die Werte abgreife und eine Micro-PV Anlage wo die Auswertung "Low Budget" über einen Sonoff mit Tasmota realisiert habe.
    Zusätzlich habe ich noch einen Modbus Energiezähler.

    Nun möchte ich kontinuierlich meinen Hausstromverbrauch (Ohne PV Anlagen) in einem Wert anzeigen lassen.

    Bedeutet PV Anlage1 + PV Anlage 2 - Stromzähler = "benötigter Wert"

    ich habe dieses Javascript geschrieben, was leider nicht funktioniert.

    const idSolar = 'javascript.0.Solar.Wechselrichter.PVLeistungAktuell';
    const idSolarMicro = 'sonoff.0.Micro PV Anlage.ENERGY_Power';
    const idEinspeisung = 'javascript.0.Solar.Wechselrichter.ACTotalRealPower';
    const idHausverbrauch = 'javascript.0.Solar.Hausverbrauch'; 
     
    var Solar = getState(idSolar).val;
    var SolarMicro = getState(idSolarMicro).val;
    var Einspeisung = getState(idEinspeisung).val;
     
    if(!existsState(idHausverbrauch)) createState(idHausverbrauch, Solar + SolarMicro - Einspeisung, {type: 'number', unit: 'W'}); 
     
    function Hausverbrauch() {
        setState(idHausverbrauch, Solar + SolarMicro - Einspeisung, true);
    }
     
    on(idSolar, function(dp) {
       Solar = dp.state.val;
       summe();
    });
    on(idSolarMicro, function(dp) {
       idSolarMicro = dp.state.val;
       summe();
    });
    on(idEinspeisung, function(dp) {
       Einspeisung = dp.state.val;
       summe();
    });
    

    Kann mir wer sagen, was ich falsch mache? (Hab mein funktionierendes Script, bei dem ich die beiden PV Anlagen einfach addiert habe umgeschrieben und gehofft, dass ich einfach einen weiteren Wert und eine Subtraktion hinzufügen kann.)

    Vielen Dank schonmal und Grüße!

    Timo

    paul53P 1 Antwort Letzte Antwort
    0
    • T txixmxo

      Hallo zusammen,

      ich bin leider absoluter Neuling in Sachen Javascript und finde meinen Fehler nicht.

      Ausgangslage:
      Ich habe eine PV-Anlage auf dem Dach, bei der ich über den Modbusadapter die Werte abgreife und eine Micro-PV Anlage wo die Auswertung "Low Budget" über einen Sonoff mit Tasmota realisiert habe.
      Zusätzlich habe ich noch einen Modbus Energiezähler.

      Nun möchte ich kontinuierlich meinen Hausstromverbrauch (Ohne PV Anlagen) in einem Wert anzeigen lassen.

      Bedeutet PV Anlage1 + PV Anlage 2 - Stromzähler = "benötigter Wert"

      ich habe dieses Javascript geschrieben, was leider nicht funktioniert.

      const idSolar = 'javascript.0.Solar.Wechselrichter.PVLeistungAktuell';
      const idSolarMicro = 'sonoff.0.Micro PV Anlage.ENERGY_Power';
      const idEinspeisung = 'javascript.0.Solar.Wechselrichter.ACTotalRealPower';
      const idHausverbrauch = 'javascript.0.Solar.Hausverbrauch'; 
       
      var Solar = getState(idSolar).val;
      var SolarMicro = getState(idSolarMicro).val;
      var Einspeisung = getState(idEinspeisung).val;
       
      if(!existsState(idHausverbrauch)) createState(idHausverbrauch, Solar + SolarMicro - Einspeisung, {type: 'number', unit: 'W'}); 
       
      function Hausverbrauch() {
          setState(idHausverbrauch, Solar + SolarMicro - Einspeisung, true);
      }
       
      on(idSolar, function(dp) {
         Solar = dp.state.val;
         summe();
      });
      on(idSolarMicro, function(dp) {
         idSolarMicro = dp.state.val;
         summe();
      });
      on(idEinspeisung, function(dp) {
         Einspeisung = dp.state.val;
         summe();
      });
      

      Kann mir wer sagen, was ich falsch mache? (Hab mein funktionierendes Script, bei dem ich die beiden PV Anlagen einfach addiert habe umgeschrieben und gehofft, dass ich einfach einen weiteren Wert und eine Subtraktion hinzufügen kann.)

      Vielen Dank schonmal und Grüße!

      Timo

      paul53P Offline
      paul53P Offline
      paul53
      schrieb am zuletzt editiert von
      #2

      @txixmxo
      Ändere Zeile 12

      function summe() {
      

      und Zeile 21

         SolarMicro = dp.state.val;
      

      Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
      Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

      T 2 Antworten Letzte Antwort
      0
      • paul53P paul53

        @txixmxo
        Ändere Zeile 12

        function summe() {
        

        und Zeile 21

           SolarMicro = dp.state.val;
        
        T Offline
        T Offline
        txixmxo
        schrieb am zuletzt editiert von
        #3

        @paul53

        Das war es schon ... vielen lieben Dank!!!!

        1 Antwort Letzte Antwort
        0
        • paul53P paul53

          @txixmxo
          Ändere Zeile 12

          function summe() {
          

          und Zeile 21

             SolarMicro = dp.state.val;
          
          T Offline
          T Offline
          txixmxo
          schrieb am zuletzt editiert von txixmxo
          #4

          @paul53

          Hallo zusammen. Hab jetzt doch noch einen Fehler gefunden.

          Der Wert für die MicroPV Anlage aktualisiert sich nur einmal bei Start des Scripts. Danach passt die Berechnung nicht mehr. (Er nimmt immer den Wert von 2 Watt, der zu beginn aktuell war. Das habe ich erst nicht gesehen.

          Ich habe schon versucht den Wert aus dem Sonoff heraus zu nehmen und in die gleiche Ordnerstruktur einzubinden, doch leider ohne Erfolg:

          Hier mal der Screenshot dazu: (grün + grün sollte eigl. rot umrandet ergeben.

          Unbenannt.png

          Hier noch einmal das Skript:

          const idSolar = 'javascript.0.Solar.Wechselrichter.PVLeistungAktuell';
          const idSolarMicro = 'javascript.0.Solar.AC-Leistung_Micro';
          const idSumme = 'javascript.0.Solar.Summe'; 
           
          var Solar = getState(idSolar).val;
          var SolarMicro = getState(idSolarMicro).val;
           
          if(!existsState(idSumme)) createState(idSumme, Solar + SolarMicro, {type: 'number', unit: 'W'}); 
           
          function summe() {
              setState(idSumme, Solar + SolarMicro, true);
          }
           
          on(idSolar, function(dp) {
             Solar = dp.state.val;
             summe();
          });
          on(idSolarMicro, function(dp) {
             idSolarMicro = dp.state.val;
             summe();
          });
          

          Vielen Dank schonmal im voraus für eure Hilfe!!!

          Beste Grüße
          Timo

          paul53P 1 Antwort Letzte Antwort
          0
          • T txixmxo

            @paul53

            Hallo zusammen. Hab jetzt doch noch einen Fehler gefunden.

            Der Wert für die MicroPV Anlage aktualisiert sich nur einmal bei Start des Scripts. Danach passt die Berechnung nicht mehr. (Er nimmt immer den Wert von 2 Watt, der zu beginn aktuell war. Das habe ich erst nicht gesehen.

            Ich habe schon versucht den Wert aus dem Sonoff heraus zu nehmen und in die gleiche Ordnerstruktur einzubinden, doch leider ohne Erfolg:

            Hier mal der Screenshot dazu: (grün + grün sollte eigl. rot umrandet ergeben.

            Unbenannt.png

            Hier noch einmal das Skript:

            const idSolar = 'javascript.0.Solar.Wechselrichter.PVLeistungAktuell';
            const idSolarMicro = 'javascript.0.Solar.AC-Leistung_Micro';
            const idSumme = 'javascript.0.Solar.Summe'; 
             
            var Solar = getState(idSolar).val;
            var SolarMicro = getState(idSolarMicro).val;
             
            if(!existsState(idSumme)) createState(idSumme, Solar + SolarMicro, {type: 'number', unit: 'W'}); 
             
            function summe() {
                setState(idSumme, Solar + SolarMicro, true);
            }
             
            on(idSolar, function(dp) {
               Solar = dp.state.val;
               summe();
            });
            on(idSolarMicro, function(dp) {
               idSolarMicro = dp.state.val;
               summe();
            });
            

            Vielen Dank schonmal im voraus für eure Hilfe!!!

            Beste Grüße
            Timo

            paul53P Offline
            paul53P Offline
            paul53
            schrieb am zuletzt editiert von paul53
            #5

            @txixmxo
            Ändere Zeile 19 in

               SolarMicro = dp.state.val;
            

            ohne id vornweg. Habe ich oben schon mal geschrieben.

            Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
            Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

            T 1 Antwort Letzte Antwort
            0
            • paul53P paul53

              @txixmxo
              Ändere Zeile 19 in

                 SolarMicro = dp.state.val;
              

              ohne id vornweg. Habe ich oben schon mal geschrieben.

              T Offline
              T Offline
              txixmxo
              schrieb am zuletzt editiert von
              #6

              @paul53

              Oh man ... sorry ... habs bei einem geändert und bei diesem hier noch nicht ...

              VIELEN DANK!!!

              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

              684

              Online

              32.6k

              Benutzer

              82.2k

              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