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. Zwangsladung mit Sungrow SH10RT

NEWS

  • Jahresrückblick 2025 – unser neuer Blogbeitrag ist online! ✨
    BluefoxB
    Bluefox
    15
    1
    620

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

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    25
    1
    1.9k

Zwangsladung mit Sungrow SH10RT

Geplant Angeheftet Gesperrt Verschoben Skripten / Logik
10 Beiträge 2 Kommentatoren 653 Aufrufe 2 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.
  • D Offline
    D Offline
    Doppellhelix
    schrieb am zuletzt editiert von Doppellhelix
    #1

    Hallo zusammen,

    ich möchte euch gerne meine Scripte zeigen und mir natürlich Tips abholen, was man verbessern kann. In einem Script steckt noch ein kleinrr Fehler, wobei ich noch Hilfe brauche.
    Grundsätzlich sind es drei Scripte die zusammenarbeiten.

    Beschreibung:
    Im Grunde gehts um darum den Batteriespeicher meiner PV Anlage zu bestimmten Zeiten voll zu laden.
    Ich nutze einen dynamischen Stromtarif. Da macht es Sinn, wenn keine Sonne zu erwarten ist, den Speicher zu billligen Stromzeiten zu füllen und ihn dann in teuren Zeiten zu nutzen.

    Ich will keine vollautomatische Lösung. Zumindest noch nicht.
    Wenn ich sehe das der Speicher recht leer ist und auf Grund der Witterung keine Speicherladung zu erwarten ist, will ich mit Hilfe von Telegram eine automatische Aufladung vormerken.
    iobroker schaut dann, wann der billigste Strompreis ist und startet dann die Zwangsladung.

    1. Script (Strompreise sortieren)
      Über den Adapter Awattar kommen um 15 Uhr immer die Strompreise vom nächsten Tag rein.
      Das Script schaut sich die Strompreise an und beschreibt anschließend drei Benutzervariablen:
      0_userdata.0.Strompreis.billigster_Preis -> hier wird der billigste Preis rein kopiert
      0_userdata.0.Strompreis.Zeitpunkt_Strom > hier der Zeitpunkt ab wann der billigste Preis gilt
      0_userdata.0.Strompreis.Datum_Strom -> und hier an welchem Datum (zur Sicherheit)

    Das Script ist komplett mit KI erstellt worden. Da habe ich keine Aktien drin.
    Funktioniert aber:

    // Array für alle Preisdatenpunkte und Startzeit-Datenpunkte der Stunden 24 bis 47
    const preisDatenpunkte = [];
    const startZeitDatenpunkte = [];
    const startDatumDatenpunkte = [];
    
    for (let i = 24; i < 48; i++) {
      preisDatenpunkte.push(`awattar.0.prices.${i}.nettoPriceKwh`);
      startZeitDatenpunkte.push(`awattar.0.prices.${i}.start`);
      startDatumDatenpunkte.push(`awattar.0.prices.${i}.startDate`);
    }
    
    // Funktion zum Finden des minimalen Preises und zugehöriger Startzeit und Datum
    function findeKleinstenPreis() {
      let minPreis = Number.MAX_VALUE;
      let zeitpunkt = null;
      let datum = null;
    
      preisDatenpunkte.forEach((preisDP, index) => {
        const preis = getState(preisDP).val;
        if (preis < minPreis) {
          minPreis = preis;
          zeitpunkt = getState(startZeitDatenpunkte[index]).val;
          datum = getState(startDatumDatenpunkte[index]).val;
        }
      });
    
      setState('0_userdata.0.Strompreis.billigster_Preis', minPreis, true);
      setState('0_userdata.0.Strompreis.Zeitpunkt_Strom', zeitpunkt, true);
      setState('0_userdata.0.Strompreis.Datum_Strom', datum, true); // NEU: Datum speichern
    }
    
    // Überwache alle Preis-Datenpunkte auf Änderung
    preisDatenpunkte.forEach(dp => {
      on({ id: dp, change: 'ne' }, () => {
        findeKleinstenPreis();
      });
    });
    
    // Initialer Aufruf beim Start des Skripts
    findeKleinstenPreis();
    
    
    1. Script (generelle Auslösung der Zwangsladung)
      Dieses Script löst eine Zwangsladung aus, wenn die Variable 0_userdata.0.Netzladung.Ausloesebit_Netzladung wahr ist.
      (In Telegram kann ich somit die Zwangsladung manuell aktivieren oder deaktivieren)

    Wenn das o.g. Bit wahr ist, startet die Zwangsladung sofort.
    Bei false stopt die Zwangsladung sofort und alles setzt sich zurück auf Standartwerte.
    Außerdem wird das Bit zurückgesetzt, nachdem 30 Minuten geladen wurde oder der Speicher voll ist (100%)

    Bildschirmfoto vom 2025-10-09 16-38-13.png

    1. Script die automatische Aufladung.
      Dieses Script ist nur im Grundgerüst fertig, weil ich es noch am testen bin.
      Aktuell sendet es nur Telegramnachrichten. Später soll anstatt eine Nachricht abzusenden, einfach nur das Netzladebit, welches im Script 2 den Auslöser definiert, auf wahr stellen.

    Über Telegram wird ein Bit auf wahr gesetzt: 0_userdata.0.Netzladung.Ausloesebit_Netzladung_auto

    Wenn das Bit wahr ist, wird das Netzladebit auf wahr gesteuert. Und zwar nur dann, wenn das Datum aus 0_userdata.0.Strompreis.Datum_Strom und der Zeitpunkt 0_userdata.0.Strompreis.Zeitpunkt_Strom passt.

    Leider bekomme ich das mit dem Zeitpunkt nicht hin. Aktuell soll ja nur eine Nachricht auf Telegram gesendet werden. Das passiert noch nicht.
    Aktuell habe ich noch einen Timeout drin. Auch zum testen.
    Hier soll später das 0_userdata.0.Netzladung.Ausloesebit_Netzladung_auto Bit wieder zurückgesetzt werden.
    Wann oder zu welchen Bedingungen muss ich mir noch überlegen.

    Bildschirmfoto vom 2025-10-09 16-50-59.png

    So, das wars erstmal.

    Mich würde jetzt interessieren:

    1. Wo sind die Fehler, die ich gemacht habe oder was ließe sich verbessern?
    2. Wie bekomme ich in Script 3 die Auslösung mit dem Zeitpunkt hin?
    3. ne Idee, wann das Auto Bit sich wieder zurücksetzt? (Beim beenden der Zwangsladung? um Mitternancht?)

    Gruß Helix

    paul53P 1 Antwort Letzte Antwort
    0
    • D Doppellhelix

      Hallo zusammen,

      ich möchte euch gerne meine Scripte zeigen und mir natürlich Tips abholen, was man verbessern kann. In einem Script steckt noch ein kleinrr Fehler, wobei ich noch Hilfe brauche.
      Grundsätzlich sind es drei Scripte die zusammenarbeiten.

      Beschreibung:
      Im Grunde gehts um darum den Batteriespeicher meiner PV Anlage zu bestimmten Zeiten voll zu laden.
      Ich nutze einen dynamischen Stromtarif. Da macht es Sinn, wenn keine Sonne zu erwarten ist, den Speicher zu billligen Stromzeiten zu füllen und ihn dann in teuren Zeiten zu nutzen.

      Ich will keine vollautomatische Lösung. Zumindest noch nicht.
      Wenn ich sehe das der Speicher recht leer ist und auf Grund der Witterung keine Speicherladung zu erwarten ist, will ich mit Hilfe von Telegram eine automatische Aufladung vormerken.
      iobroker schaut dann, wann der billigste Strompreis ist und startet dann die Zwangsladung.

      1. Script (Strompreise sortieren)
        Über den Adapter Awattar kommen um 15 Uhr immer die Strompreise vom nächsten Tag rein.
        Das Script schaut sich die Strompreise an und beschreibt anschließend drei Benutzervariablen:
        0_userdata.0.Strompreis.billigster_Preis -> hier wird der billigste Preis rein kopiert
        0_userdata.0.Strompreis.Zeitpunkt_Strom > hier der Zeitpunkt ab wann der billigste Preis gilt
        0_userdata.0.Strompreis.Datum_Strom -> und hier an welchem Datum (zur Sicherheit)

      Das Script ist komplett mit KI erstellt worden. Da habe ich keine Aktien drin.
      Funktioniert aber:

      // Array für alle Preisdatenpunkte und Startzeit-Datenpunkte der Stunden 24 bis 47
      const preisDatenpunkte = [];
      const startZeitDatenpunkte = [];
      const startDatumDatenpunkte = [];
      
      for (let i = 24; i < 48; i++) {
        preisDatenpunkte.push(`awattar.0.prices.${i}.nettoPriceKwh`);
        startZeitDatenpunkte.push(`awattar.0.prices.${i}.start`);
        startDatumDatenpunkte.push(`awattar.0.prices.${i}.startDate`);
      }
      
      // Funktion zum Finden des minimalen Preises und zugehöriger Startzeit und Datum
      function findeKleinstenPreis() {
        let minPreis = Number.MAX_VALUE;
        let zeitpunkt = null;
        let datum = null;
      
        preisDatenpunkte.forEach((preisDP, index) => {
          const preis = getState(preisDP).val;
          if (preis < minPreis) {
            minPreis = preis;
            zeitpunkt = getState(startZeitDatenpunkte[index]).val;
            datum = getState(startDatumDatenpunkte[index]).val;
          }
        });
      
        setState('0_userdata.0.Strompreis.billigster_Preis', minPreis, true);
        setState('0_userdata.0.Strompreis.Zeitpunkt_Strom', zeitpunkt, true);
        setState('0_userdata.0.Strompreis.Datum_Strom', datum, true); // NEU: Datum speichern
      }
      
      // Überwache alle Preis-Datenpunkte auf Änderung
      preisDatenpunkte.forEach(dp => {
        on({ id: dp, change: 'ne' }, () => {
          findeKleinstenPreis();
        });
      });
      
      // Initialer Aufruf beim Start des Skripts
      findeKleinstenPreis();
      
      
      1. Script (generelle Auslösung der Zwangsladung)
        Dieses Script löst eine Zwangsladung aus, wenn die Variable 0_userdata.0.Netzladung.Ausloesebit_Netzladung wahr ist.
        (In Telegram kann ich somit die Zwangsladung manuell aktivieren oder deaktivieren)

      Wenn das o.g. Bit wahr ist, startet die Zwangsladung sofort.
      Bei false stopt die Zwangsladung sofort und alles setzt sich zurück auf Standartwerte.
      Außerdem wird das Bit zurückgesetzt, nachdem 30 Minuten geladen wurde oder der Speicher voll ist (100%)

      Bildschirmfoto vom 2025-10-09 16-38-13.png

      1. Script die automatische Aufladung.
        Dieses Script ist nur im Grundgerüst fertig, weil ich es noch am testen bin.
        Aktuell sendet es nur Telegramnachrichten. Später soll anstatt eine Nachricht abzusenden, einfach nur das Netzladebit, welches im Script 2 den Auslöser definiert, auf wahr stellen.

      Über Telegram wird ein Bit auf wahr gesetzt: 0_userdata.0.Netzladung.Ausloesebit_Netzladung_auto

      Wenn das Bit wahr ist, wird das Netzladebit auf wahr gesteuert. Und zwar nur dann, wenn das Datum aus 0_userdata.0.Strompreis.Datum_Strom und der Zeitpunkt 0_userdata.0.Strompreis.Zeitpunkt_Strom passt.

      Leider bekomme ich das mit dem Zeitpunkt nicht hin. Aktuell soll ja nur eine Nachricht auf Telegram gesendet werden. Das passiert noch nicht.
      Aktuell habe ich noch einen Timeout drin. Auch zum testen.
      Hier soll später das 0_userdata.0.Netzladung.Ausloesebit_Netzladung_auto Bit wieder zurückgesetzt werden.
      Wann oder zu welchen Bedingungen muss ich mir noch überlegen.

      Bildschirmfoto vom 2025-10-09 16-50-59.png

      So, das wars erstmal.

      Mich würde jetzt interessieren:

      1. Wo sind die Fehler, die ich gemacht habe oder was ließe sich verbessern?
      2. Wie bekomme ich in Script 3 die Auslösung mit dem Zeitpunkt hin?
      3. ne Idee, wann das Auto Bit sich wieder zurücksetzt? (Beim beenden der Zwangsladung? um Mitternancht?)

      Gruß Helix

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

      @doppellhelix sagte: Wie bekomme ich in Script 3 die Auslösung mit dem Zeitpunkt hin?

      Blockly_temp.JPG

      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

      D 1 Antwort Letzte Antwort
      0
      • paul53P paul53

        @doppellhelix sagte: Wie bekomme ich in Script 3 die Auslösung mit dem Zeitpunkt hin?

        Blockly_temp.JPG

        D Offline
        D Offline
        Doppellhelix
        schrieb am zuletzt editiert von
        #3

        @paul53
        Hallo,

        erstmal vielen Dank für deine Arbeit.
        Beeindruckend wie man auf sowas kommt.

        Ich habe gerade versucht das nachzubauen.
        Kannst du mir den letzte Block einmal erklären?

        falls Wert von Objekt ID Automatik
        mache Kommentar

        Welche Objekt ID Automatik meinst du genau?
        Ist das der Zeitpunkt, wenn ein neues Datum "reinkommt"?
        und warum dann ein Kommentar?

        Gruß Helix

        paul53P 1 Antwort Letzte Antwort
        0
        • D Doppellhelix

          @paul53
          Hallo,

          erstmal vielen Dank für deine Arbeit.
          Beeindruckend wie man auf sowas kommt.

          Ich habe gerade versucht das nachzubauen.
          Kannst du mir den letzte Block einmal erklären?

          falls Wert von Objekt ID Automatik
          mache Kommentar

          Welche Objekt ID Automatik meinst du genau?
          Ist das der Zeitpunkt, wenn ein neues Datum "reinkommt"?
          und warum dann ein Kommentar?

          Gruß Helix

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

          @doppellhelix sagte: Objekt ID Automatik

          Das ist dein DP "Ausloesebit_Netzladung_auto".

          @doppellhelix sagte in Zwangsladung mit Sungrow SH10RT:

          warum dann ein Kommentar?

          Anstelle des Kommentars füge dort die Aktion(en) ein, die zum Startzeitpunkt erfolgen sollen.

          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

          D 1 Antwort Letzte Antwort
          1
          • paul53P paul53

            @doppellhelix sagte: Objekt ID Automatik

            Das ist dein DP "Ausloesebit_Netzladung_auto".

            @doppellhelix sagte in Zwangsladung mit Sungrow SH10RT:

            warum dann ein Kommentar?

            Anstelle des Kommentars füge dort die Aktion(en) ein, die zum Startzeitpunkt erfolgen sollen.

            D Offline
            D Offline
            Doppellhelix
            schrieb am zuletzt editiert von
            #5

            @paul53
            Ok, habe ich gemacht.

            Bildschirmfoto vom 2025-10-12 15-52-27.png

            Bildschirmfoto vom 2025-10-12 15-52-42.png

            Leider bekomme ich dann diese Fehlermeldung:

            javascript.0	15:53:55.645	error	
            
            TypeError: Cannot read properties of undefined (reading 'toString')
            
            javascript.0	15:53:55.645	error	
            
                at setStart (script.js.PV.Zwangsladung_Auto:8:35)
            
            javascript.0	15:53:55.645	error	
            
                at script.js.PV.Zwangsladung_Auto:33:7
            
            javascript.0	15:53:55.645	error	
            
                at script.js.PV.Zwangsladung_Auto:40:3
            

            Hast du eine Idee, was noch schief läuft?

            paul53P 1 Antwort Letzte Antwort
            0
            • D Doppellhelix

              @paul53
              Ok, habe ich gemacht.

              Bildschirmfoto vom 2025-10-12 15-52-27.png

              Bildschirmfoto vom 2025-10-12 15-52-42.png

              Leider bekomme ich dann diese Fehlermeldung:

              javascript.0	15:53:55.645	error	
              
              TypeError: Cannot read properties of undefined (reading 'toString')
              
              javascript.0	15:53:55.645	error	
              
                  at setStart (script.js.PV.Zwangsladung_Auto:8:35)
              
              javascript.0	15:53:55.645	error	
              
                  at script.js.PV.Zwangsladung_Auto:33:7
              
              javascript.0	15:53:55.645	error	
              
                  at script.js.PV.Zwangsladung_Auto:40:3
              

              Hast du eine Idee, was noch schief läuft?

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

              @doppellhelix sagte: Idee, was noch schief läuft?

              Was ich sehe, ist die falsche Variable für Stunden und Minuten. Richtig:

              Blockly_temp.JPG

              Die Prüfung von Datum und Uhrzeit ist unnötig, da nur zu diesem Zeitpunkt getriggert wird.
              Das führt aber nicht zu der Fehlermeldung. Deshalb poste bitte den erzeugten Javascript-Code ohne die letzte Zeile in Code tags.

              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

              D 1 Antwort Letzte Antwort
              0
              • paul53P paul53

                @doppellhelix sagte: Idee, was noch schief läuft?

                Was ich sehe, ist die falsche Variable für Stunden und Minuten. Richtig:

                Blockly_temp.JPG

                Die Prüfung von Datum und Uhrzeit ist unnötig, da nur zu diesem Zeitpunkt getriggert wird.
                Das führt aber nicht zu der Fehlermeldung. Deshalb poste bitte den erzeugten Javascript-Code ohne die letzte Zeile in Code tags.

                D Offline
                D Offline
                Doppellhelix
                schrieb am zuletzt editiert von
                #7

                @paul53

                Ich hoffe ich habe dich richtig verstanden:

                var datum, uhrzeit, schedule1, timeout;
                
                // Beschreibe diese Funktion …
                async function setStart() {
                  datum = getState('0_userdata.0.Strompreis.Datum_Strom').val.split(',');
                  uhrzeit = getState('0_userdata.0.Strompreis.Zeitpunkt_Strom').val.split(':');
                  schedule1 = schedule((datum[1]).toString().trim() + ' ' + (datum[0]).toString().trim() + ' ' + (datum[0]).toString().trim() + ' ' + (datum[1]).toString().trim() + ' ' + '*'.toString().trim(), async () => {
                    if (getState('0_userdata.0.Netzladung.Ausloesebit_Netzladung_auto').val) {
                      if ((formatDate(new Date(), 'hh:mm:ss') == getState('0_userdata.0.Strompreis.Zeitpunkt_Strom').val) && (formatDate(new Date(), 'DD.MM.YYYY') == getState('0_userdata.0.Strompreis.Datum_Strom').val)) {
                        sendTo('telegram', 'send', {
                          text: 'Test automatisch Netzladen zum billigsten Zeitpunkt',
                        });
                      }
                      timeout = setTimeout(async () => {
                        timeout = null;
                        if (getState('0_userdata.0.Netzladung.Ausloesebit_Netzladung_auto').val == true) {
                          setState('0_userdata.0.Netzladung.Ausloesebit_Netzladung_auto' /* Ausloesebit_Netzladung_auto */, false);
                          sendTo('telegram', 'send', {
                            text: 'Test automatisches Netzladungsbit beendet',
                          });
                        }
                      }, 300000);
                    }
                  });
                }
                
                
                on({ id: [].concat(['0_userdata.0.Strompreis.Datum_Strom']).concat(['0_userdata.0.Strompreis.Zeitpunkt_Strom']), change: 'ne' }, async (obj) => {
                  (() => { if (schedule1) { clearSchedule(schedule1); schedule1 = null; }})();
                  await setStart();
                });
                await setStart();
                
                

                Vllt. noch zur Info:
                die Variable 0_userdata.0.Strompreis.Datum_Strom hat das Format TT.MM.JJJJ
                die Variable 0_userdata.0.Strompreis.Zeitpunkt_Strom hat das Format HH:MM:SS

                paul53P 1 Antwort Letzte Antwort
                0
                • D Doppellhelix

                  @paul53

                  Ich hoffe ich habe dich richtig verstanden:

                  var datum, uhrzeit, schedule1, timeout;
                  
                  // Beschreibe diese Funktion …
                  async function setStart() {
                    datum = getState('0_userdata.0.Strompreis.Datum_Strom').val.split(',');
                    uhrzeit = getState('0_userdata.0.Strompreis.Zeitpunkt_Strom').val.split(':');
                    schedule1 = schedule((datum[1]).toString().trim() + ' ' + (datum[0]).toString().trim() + ' ' + (datum[0]).toString().trim() + ' ' + (datum[1]).toString().trim() + ' ' + '*'.toString().trim(), async () => {
                      if (getState('0_userdata.0.Netzladung.Ausloesebit_Netzladung_auto').val) {
                        if ((formatDate(new Date(), 'hh:mm:ss') == getState('0_userdata.0.Strompreis.Zeitpunkt_Strom').val) && (formatDate(new Date(), 'DD.MM.YYYY') == getState('0_userdata.0.Strompreis.Datum_Strom').val)) {
                          sendTo('telegram', 'send', {
                            text: 'Test automatisch Netzladen zum billigsten Zeitpunkt',
                          });
                        }
                        timeout = setTimeout(async () => {
                          timeout = null;
                          if (getState('0_userdata.0.Netzladung.Ausloesebit_Netzladung_auto').val == true) {
                            setState('0_userdata.0.Netzladung.Ausloesebit_Netzladung_auto' /* Ausloesebit_Netzladung_auto */, false);
                            sendTo('telegram', 'send', {
                              text: 'Test automatisches Netzladungsbit beendet',
                            });
                          }
                        }, 300000);
                      }
                    });
                  }
                  
                  
                  on({ id: [].concat(['0_userdata.0.Strompreis.Datum_Strom']).concat(['0_userdata.0.Strompreis.Zeitpunkt_Strom']), change: 'ne' }, async (obj) => {
                    (() => { if (schedule1) { clearSchedule(schedule1); schedule1 = null; }})();
                    await setStart();
                  });
                  await setStart();
                  
                  

                  Vllt. noch zur Info:
                  die Variable 0_userdata.0.Strompreis.Datum_Strom hat das Format TT.MM.JJJJ
                  die Variable 0_userdata.0.Strompreis.Zeitpunkt_Strom hat das Format HH:MM:SS

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

                  @doppellhelix sagte: die Variable 0_userdata.0.Strompreis.Datum_Strom hat das Format TT.MM.JJJJ

                  Deshalb muss der Punkt als Trennzeichen dienen - nicht das Komma.
                  Andere Fehler kann ich nicht erkennen.

                  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

                  D 1 Antwort Letzte Antwort
                  0
                  • paul53P paul53

                    @doppellhelix sagte: die Variable 0_userdata.0.Strompreis.Datum_Strom hat das Format TT.MM.JJJJ

                    Deshalb muss der Punkt als Trennzeichen dienen - nicht das Komma.
                    Andere Fehler kann ich nicht erkennen.

                    D Offline
                    D Offline
                    Doppellhelix
                    schrieb am zuletzt editiert von
                    #9

                    @paul53

                    Vielen lieben Dank. Ich werde es testen.
                    Also zwei vermeidbare Fehler, die mir hätten auch auffallen können :face_with_rolling_eyes:

                    1 Antwort Letzte Antwort
                    0
                    • D Offline
                      D Offline
                      Doppellhelix
                      schrieb am zuletzt editiert von
                      #10

                      Hier noch der Vollständigkeitshalber das 3. Script.

                      Bildschirmfoto vom 2025-10-14 18-15-40.png

                      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

                      756

                      Online

                      32.6k

                      Benutzer

                      81.9k

                      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