Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. Unterstützung gesucht ($): Entwicklung eines Scripts

    NEWS

    • 15. 05. Wartungsarbeiten am ioBroker Forum

    • Monatsrückblick - April 2025

    • Minor js-controller 7.0.7 Update in latest repo

    Unterstützung gesucht ($): Entwicklung eines Scripts

    This topic has been deleted. Only users with topic management privileges can see it.
    • C
      ChristianF last edited by

      Hallo,

      ich suche jemanden, der ein kleines Script für mich entwickelt.

      Was soll es tun?

      • Es gibt zwei Datenpunkte in der ioBroker Datenbank, die sich regelmäßig ändern. Es handelt sich um zwei Zahlen (Ertrag eines SolarEdge PV-Wechselrichters und entsprechender Skalierungsfaktor dazu). Hier werden zB gerade 3794W produziert:
        455_p1.jpg

      • In Abhängigkeit der erzeugten Energie ändert sich logischerweise der Datenpunkt für den Ertrag. Ändert sich der Ertragswert unter bzw. über einen gewissen Schwellenwert, so ändert sich seine Darstellung im Objekt und gleichzeitig der Skalierungsfaktor. Hier werden zB gerade 2132W produziert:
        455_p2.jpg

      (detaillierte Beschreibung siehe hier: http://forum.iobroker.net/viewtopic.php … 208#p37206 )

      • Das Skript soll in dem Moment, wo die Werte durch den Modbus Adapter aktualisiert werden, prüfen ob der Skalierungsfaktor ungleich 0 ist. <u>Ist er Null</u>, soll der Ertragswert 1:1 in einen Datenpunkt anderes ioBroker Objekt übertragen werden. <u>Ist er nicht 0</u> sondern zB -1, so soll der Ertragswert durch 10 geteilt werden und das Ergebnis in den neuen Datenpunkt geschrieben werden.

      Ich möchte das nicht für umsonst haben, sondern bin gern offen für Angebote, was so ein Script kosten würde. Sofern es einmal fertig ist, stelle ich es gern der Community zur Verfügung.

      Viele Grüße

      Christian

      1 Reply Last reply Reply Quote 0
      • Bluefox
        Bluefox last edited by

        function convertValue(value, factor) {
           if (value === null) return;
           if (factor === null) factor = 0;
           setState('Energie', value * Math.pow(10, factor), true);
        }  
        
        createState('Energie', {
        	name: 'Energiewert',
        	unit: 'W',
        	min:  0,
        	type: 'number',
        	role: 'value.energy'
        }, function () {
        	on('modbus.0.holdingRegisters.40084_CurrentPower-AC', function(obj) {
        		var timeout = setTimeout(function () {
        			clearTimeout(timeout);
        			var factorState = getState('modbus.0.holdingRegisters.40085_ACPF');
        			convertValue(obj.state.val, factorState ? factorState.val : 0);
        		}, 100); 
        	});
        	var factorState = getState('modbus.0.holdingRegisters.40085_ACPF');
        	var valueState = getState('modbus.0.holdingRegisters.40084_CurrentPower-AC');
        	convertValue(valueState ? valueState.val : null, factorState ? factorState.val : 0); 
        });
        
        1 Reply Last reply Reply Quote 0
        • apollon77
          apollon77 last edited by

          Sollte man ein kleines Delay einbauen falls Wert und Skalierungsfaktor nicht "gleichzeitig" aktualisiert werden?

          1 Reply Last reply Reply Quote 0
          • Bluefox
            Bluefox last edited by

            @apollon77:

            Sollte man ein kleines Delay einbauen falls Wert und Skalierungsfaktor nicht "gleichzeitig" aktualisiert werden? `
            Vielleicht. Wird nicht schaden.

            habe ich oben ergänzt.

            1 Reply Last reply Reply Quote 0
            • paul53
              paul53 last edited by

              Alternative Funktion convertValue:

              function convertValue(value, factor) {
                 if (value === null) return;
                 if (factor === null) factor = 0;
                 setState('Energie', value * Math.pow(10, factor), true);
              }   
              
              
              1 Reply Last reply Reply Quote 0
              • C
                ChristianF last edited by

                Wow, vielen Dank ! Das ging ja extrem fix. Bin gespannt ob es morgen funktioniert, bis auf ein Hochkomma zu viel hat die JS-Engine es schonmal geschluckt 🙂 Leider scheint gerade keine Sonne, aber ich probiere es morgen natürlich sofort aus 🙂

                Viele Grüße

                Christan

                1 Reply Last reply Reply Quote 0
                • Homoran
                  Homoran Global Moderator Administrators last edited by

                  und wenn alles läuft kannst du ja mal hier in der Mitte unter dem blauen Header nachsehen:

                  http://www.iobroker.net/?lang=de

                  Gruß

                  Rainer

                  1 Reply Last reply Reply Quote 0
                  • C
                    ChristianF last edited by

                    Danke, ist erledigt 🙂

                    Das Script funktioniert übrigens prima 🙂

                    1 Reply Last reply Reply Quote 0
                    • Homoran
                      Homoran Global Moderator Administrators last edited by

                      @ChristianF:

                      Das Script funktioniert übrigens prima `
                      @ChristianF:

                      eider scheint gerade keine Sonne, aber ich probiere es morgen natürlich sofort aus `

                      Wieso konntest du das denn gestern abend nicht testen. Hast du bei der Planung der Anlage vergessen auch einige Lunarmodule einzubauen?

                      :lol: :lol:

                      Schön das jetzt alles klappt.

                      Gruß

                      Rainer

                      1 Reply Last reply Reply Quote 0
                      • First post
                        Last post

                      Support us

                      ioBroker
                      Community Adapters
                      Donate

                      859
                      Online

                      31.6k
                      Users

                      79.4k
                      Topics

                      1.3m
                      Posts

                      5
                      9
                      1884
                      Loading More Posts
                      • Oldest to Newest
                      • Newest to Oldest
                      • Most Votes
                      Reply
                      • Reply as topic
                      Log in to reply
                      Community
                      Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
                      The ioBroker Community 2014-2023
                      logo