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. Tester
  4. Test PV Forecast Adapter

NEWS

  • UPDATE 31.10.: Amazon Alexa - ioBroker Skill läuft aus ?
    apollon77A
    apollon77
    48
    3
    8.5k

  • Monatsrückblick – September 2025
    BluefoxB
    Bluefox
    13
    1
    2.1k

  • Neues Video "KI im Smart Home" - ioBroker plus n8n
    BluefoxB
    Bluefox
    16
    1
    2.7k

Test PV Forecast Adapter

Geplant Angeheftet Gesperrt Verschoben Tester
forecastphotovoltaik
881 Beiträge 114 Kommentatoren 286.5k Aufrufe 108 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 technikaffin

    @bananajoe

    Ja das Wetter wird nachgeführt, also die Daten vom API, das ist mir schon klar. Eine einzelne Wolke lässt die Erzeugung ja einbrechen und so feingranular ist keine Wettervorhersage.

    Das meine ich aber nicht. Nehmen wir mal an die Wettervorhersage wäre 100% korrekt. Dann passt die Vorhersage trotzdem nicht genau zu meinen Paneelen, weil die vielleicht älter sind und die Leistung nachlässt, oder ich den Neigungswinkel oder die Südrichtung nicht genau eingetragen hab, oder meine Paneele besser oder schlechter sind als der Durchschnitt, etc.etc.

    Es gibt also ein Delta zwischen errechneter Leistung (Theorie) und tatsächlicher (Praxis), unabhängig vom Wetter. Dieses Delta ist aber immer gleich (bzw. es wird im Laufe der Zeit mit Alterung der Zellen etwas größer).
    Das will ich statistisch ausrechnen.

    Also im nachhinein, wenn man ganz genau weiss wie das Wetter war und der Theoriewert gut ist, dann vergleichen mit dem tatsächlichen Ertrag.

    BananaJoeB Offline
    BananaJoeB Offline
    BananaJoe
    Most Active
    schrieb am zuletzt editiert von
    #535

    @technikaffin ok, das ist schon eingebaut und habe ich schon mal genutzt: Bei zeigte die vorhersage immer 20% zu wenig an. Also habe ich die Leistung meiner Anlage im Adapter entsprechen zu groß angegeben und schon passte es. Geht natürlich auch mit kleiner.

    Da ich die Werte aber eh einmal in einen SQL-Datenpunkt schreibe addiere ich nun an dieser Stelle was dazu

    ioBroker@Ubuntu 24.04 LTS (VMware) für: >260 Geräte, 5 Switche, 7 AP, 9 IP-Cam, 1 NAS 42TB, 1 ESXi 15TB, 4 Proxmox 1TB, 1 Hyper-V 48TB, 14 x Echo, 5x FireTV, 5 x Tablett/Handy VIS || >=160 Tasmota/Shelly || >=95 ZigBee || PV 8.1kW / Akku 14kWh || 2x USV 750W kaskadiert || Creality CR-10 SE 3D-Drucker

    1 Antwort Letzte Antwort
    0
    • sonnenscheinS Offline
      sonnenscheinS Offline
      sonnenschein
      schrieb am zuletzt editiert von sonnenschein
      #536

      Guten Morgen Zusammen!

      Nach dem mein PVForecast mit dem Blockly Script von Bananajoe bis vor kurzem ohne Probleme lief, will es jetzt nicht mehr so richtig.
      Es gab verschiedene Updates von verschiedenen Adaptern die ich installiert habe. Leider kann ich nicht nach vollziehen ab wann genau das Blockly Script nicht mehr funktioniert.
      Meine Installation ist Iobrker auf Raspberry Pi 4.
      PVForcast Adapter V 2.3.0
      Javascript v 6.0.3
      Admin v 6.2.23
      Daten schreibe ich in sql MariaDB mit SQL Adapter V 2.2.0

      Das Blocly Script liest die json table aus dem Objekten PVForcast
      aktuell pvforecast.1.plants.sonnenschein.JSONTable

      Objekte_PVForcast.png
      Der Adapter schein die Daten auch zu aktualisieren.

      PVForcast Adapter Logging auf ALLES; JavaSkript auch auf ALLES

      Reins chreiben soll das Script in dieses Objekt 0_userdata.0.PVForecast.Sonnenschein

      Das Blockly sieht so aus:
      Blockly.png

      angezeigt als Java script sieht das so aus:

      var x, myVAL, myTS, JSONTable, JSONListe, counter, i, tempDatum, tempLeistung;
      
      // Beschreibe diese Funktion …
      async function ReplaceHyphen(x) {
          return x.replace("/-/g",".");
      }
      
      // Beschreibe diese Funktion …
      async function SendTo_SQL_storeState(myVAL, myTS) {
          // Und wert erstellen wie geplant
          sendTo("sql.0", "storeState", {
              "id": '0_userdata.0.PVForecast.Sonnenschein',
              "state": { 
                  "val": myVAL, 
                  "ts": myTS,
                  "ack": true
              }
          }, async function (result) {
              console.log(result);
          });
      }
      
      // Beschreibe diese Funktion …
      async function SendTo_SQL_deleteAll() {
          // Alles löschen
          sendTo("sql.0", "deleteAll", {
              "id": '0_userdata.0.PVForecast.Sonnenschein',
          }, async function (result) {
                console.log(result);
          });
      
      }
      
      
      // Trigger auf den Datenpunkt JSONTable der
      // gewünschten Anlage
      on({id: [].concat(['pvforecast.1.plants.sonnenschein.JSONTable']), change: "any"}, async function (obj) {
        var value = obj.state.val;
        var oldValue = obj.oldState.val;
        // Den JSON in eine Variable als Objekt holen
        JSONTable = (obj.state ? obj.state.val : "");
        // Den JSON nochmal als Liste
        JSONListe = (obj.state ? obj.state.val : "").split('},{');
        // Zähler für die einzelnen Werte
        counter = -1;
        // Vorherige Werte löschen
        await SendTo_SQL_deleteAll();
        // Kurz warten ...
        await wait(2000);
        // Die Werte abarbeiten:
        for (var i_index in JSONListe) {
          i = JSONListe[i_index];
          // Wird beim ersten mal 0 sein
          counter = (typeof counter == 'number' ? counter : 0) + 1;
          // Wir arbeiten die Liste ab, nutzen aber das Objekt!
          tempDatum = getAttr(JSONTable, (String(counter) + '.Uhrzeit'));
          // Die - in . umwandeln
          tempDatum = await ReplaceHyphen(tempDatum);
          // In ein Datum-Objekt umwandeln
          tempDatum = getDateObject(tempDatum).getTime();
          // Die Leistung holen (hier in Wh statt kWh)
          tempLeistung = parseFloat(getAttr(JSONTable, (String(counter) + '.Leistung'))) * 1000;
          // Und in die Datenbank schreiben
          await SendTo_SQL_storeState(tempLeistung, tempDatum);
        }
      });
      
      //JTNDeG1sJTIweG1sbnMlM0QlMjJodHRwcyUzQSUyRiUyRmRldmVsb3BlcnMuZ29vZ2xlLmNvbSUyRmJsb2NrbHklMkZ4bWwlMjIlM0UlM0N2YXJpYWJsZXMlM0UlM0N2YXJpYWJsZSUyMGlkJTNEJTIyeHIlM0ZDJTI1JTNBJTdERiUyNUhSJTJDJTJCYmFDJTI1VzhuJTIyJTNFeCUzQyUyRnZhcmlhYmxlJTNFJTNDdmFyaWFibGUlMjBpZCUzRCUyMmQlMkYuYk9QJTNEN1ZsQzUlMkYlNUIlMkIlM0Q4ZyUyRnUlMjIlM0VteVZBTCUzQyUyRnZhcmlhYmxlJTNFJTNDdmFyaWFibGUlMjBpZCUzRCUyMlNMJTI0ZDYlMkYlNjBDbE82aXFmZWZoNUxOJTIyJTNFbXlUUyUzQyUyRnZhcmlhYmxlJTNFJTNDdmFyaWFibGUlMjBpZCUzRCUyMkIlMjRuXyU3Q0x0JTNGViUzRmRsdEclMjQxJTNEJTI1VSElMjIlM0VKU09OVGFibGUlM0MlMkZ2YXJpYWJsZSUzRSUzQ3ZhcmlhYmxlJTIwaWQlM0QlMjJ6cVNTdDEubFBCclAhcHJ0SnAlM0ElNUIlMjIlM0VKU09OTGlzdGUlM0MlMkZ2YXJpYWJsZSUzRSUzQ3ZhcmlhYmxlJTIwaWQlM0QlMjIlNUIlMkNub1olMkIhJTIzUiglNUJ2KVZsaSU1QkpBQyUyMiUzRWNvdW50ZXIlM0MlMkZ2YXJpYWJsZSUzRSUzQ3ZhcmlhYmxlJTIwaWQlM0QlMjI5JTVCeFMlM0RzSCkuREtCUzhvR04lNDBjcyUyMiUzRWklM0MlMkZ2YXJpYWJsZSUzRSUzQ3ZhcmlhYmxlJTIwaWQlM0QlMjJ0a0glMjNxY0UlM0RINSUyRl83fk90dFc1KCUyMiUzRXRlbXBEYXR1bSUzQyUyRnZhcmlhYmxlJTNFJTNDdmFyaWFibGUlMjBpZCUzRCUyMmYlM0RNWDVieFhDZSU2MCUyMyU2MCUyNHp+SFhjRyUyMiUzRXRlbXBMZWlzdHVuZyUzQyUyRnZhcmlhYmxlJTNFJTNDJTJGdmFyaWFibGVzJTNFJTNDYmxvY2slMjB0eXBlJTNEJTIycHJvY2VkdXJlc19kZWZjdXN0b21yZXR1cm4lMjIlMjBpZCUzRCUyMmY1JTJCZSUyNGkhJTQwaGRGZFA3JTVCSkExJTVFJTYwJTIyJTIweCUzRCUyMjI4OCUyMiUyMHklM0QlMjItMjEyJTIyJTNFJTNDbXV0YXRpb24lMjBzdGF0ZW1lbnRzJTNEJTIyZmFsc2UlMjIlM0UlM0NhcmclMjBuYW1lJTNEJTIyeCUyMiUyMHZhcmlkJTNEJTIyeHIlM0ZDJTI1JTNBJTdERiUyNUhSJTJDJTJCYmFDJTI1VzhuJTIyJTNFJTNDJTJGYXJnJTNFJTNDJTJGbXV0YXRpb24lM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJOQU1FJTIyJTNFUmVwbGFjZUh5cGhlbiUzQyUyRmZpZWxkJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyU0NSSVBUJTIyJTNFY21WMGRYSnVJSGd1Y21Wd2JHRmpaU2dpTHkwdlp5SXNJaTRpS1RzJTNEJTNDJTJGZmllbGQlM0UlM0Njb21tZW50JTIwcGlubmVkJTNEJTIyZmFsc2UlMjIlMjBoJTNEJTIyODAlMjIlMjB3JTNEJTIyMTYwJTIyJTNFQmVzY2hyZWliZSUyMGRpZXNlJTIwRnVua3Rpb24lMjAlRTIlODAlQTYlM0MlMkZjb21tZW50JTNFJTNDJTJGYmxvY2slM0UlM0NibG9jayUyMHR5cGUlM0QlMjJwcm9jZWR1cmVzX2RlZmN1c3RvbW5vcmV0dXJuJTIyJTIwaWQlM0QlMjJXJTNGQmpUUXMhcGd1V3c0SFB3VClwJTIyJTIweCUzRCUyMjI4NyUyMiUyMHklM0QlMjItMTYyJTIyJTNFJTNDbXV0YXRpb24lMjBzdGF0ZW1lbnRzJTNEJTIyZmFsc2UlMjIlM0UlM0NhcmclMjBuYW1lJTNEJTIybXlWQUwlMjIlMjB2YXJpZCUzRCUyMmQlMkYuYk9QJTNEN1ZsQzUlMkYlNUIlMkIlM0Q4ZyUyRnUlMjIlM0UlM0MlMkZhcmclM0UlM0NhcmclMjBuYW1lJTNEJTIybXlUUyUyMiUyMHZhcmlkJTNEJTIyU0wlMjRkNiUyRiU2MENsTzZpcWZlZmg1TE4lMjIlM0UlM0MlMkZhcmclM0UlM0MlMkZtdXRhdGlvbiUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMk5BTUUlMjIlM0VTZW5kVG9fU1FMX3N0b3JlU3RhdGUlM0MlMkZmaWVsZCUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMlNDUklQVCUyMiUzRUx5OGdWVzVrSUhkbGNuUWdaWEp6ZEdWc2JHVnVJSGRwWlNCblpYQnNZVzUwRFFwelpXNWtWRzhvSW5OeGJDNHdJaXdnSW5OMGIzSmxVM1JoZEdVaUxDQjdEUW9nSUNBZ0ltbGtJam9nSnpCZmRYTmxjbVJoZEdFdU1DNVFWa1p2Y21WallYTjBMbE52Ym01bGJuTmphR1ZwYmljc0RRb2dJQ0FnSW5OMFlYUmxJam9nZXlBTkNpQWdJQ0FnSUNBZ0luWmhiQ0k2SUcxNVZrRk1MQ0FOQ2lBZ0lDQWdJQ0FnSW5Seklqb2diWGxVVXl3TkNpQWdJQ0FnSUNBZ0ltRmpheUk2SUhSeWRXVU5DaUFnSUNCOURRcDlMQ0JoYzNsdVl5Qm1kVzVqZEdsdmJpQW9jbVZ6ZFd4MEtTQjdEUW9nSUNBZ1kyOXVjMjlzWlM1c2IyY29jbVZ6ZFd4MEtUc05DbjBwT3clM0QlM0QlM0MlMkZmaWVsZCUzRSUzQ2NvbW1lbnQlMjBwaW5uZWQlM0QlMjJmYWxzZSUyMiUyMGglM0QlMjI4MCUyMiUyMHclM0QlMjIxNjAlMjIlM0VCZXNjaHJlaWJlJTIwZGllc2UlMjBGdW5rdGlvbiUyMCVFMiU4MCVBNiUzQyUyRmNvbW1lbnQlM0UlM0MlMkZibG9jayUzRSUzQ2Jsb2NrJTIwdHlwZSUzRCUyMnByb2NlZHVyZXNfZGVmY3VzdG9tbm9yZXR1cm4lMjIlMjBpZCUzRCUyMm0uJTVEZDZEUjRoSVIlN0NyaE0lNjBQM0tVJTIyJTIweCUzRCUyMjI4OCUyMiUyMHklM0QlMjItMTEyJTIyJTNFJTNDbXV0YXRpb24lMjBzdGF0ZW1lbnRzJTNEJTIyZmFsc2UlMjIlM0UlM0MlMkZtdXRhdGlvbiUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMk5BTUUlMjIlM0VTZW5kVG9fU1FMX2RlbGV0ZUFsbCUzQyUyRmZpZWxkJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyU0NSSVBUJTIyJTNFTHk4Z1FXeHNaWE1nYk1PMmMyTm9aVzROQ25ObGJtUlVieWdpYzNGc0xqQWlMQ0FpWkdWc1pYUmxRV3hzSWl3Z2V3MEtJQ0FnSUNKcFpDSTZJQ2N3WDNWelpYSmtZWFJoTGpBdVVGWkdiM0psWTJGemRDNVRiMjV1Wlc1elkyaGxhVzRuTEEwS2ZTd2dZWE41Ym1NZ1puVnVZM1JwYjI0Z0tISmxjM1ZzZENrZ2V3MEtJQ0FnSUNBZ1kyOXVjMjlzWlM1c2IyY29jbVZ6ZFd4MEtUc05DbjBwT3cwSyUzQyUyRmZpZWxkJTNFJTNDY29tbWVudCUyMHBpbm5lZCUzRCUyMmZhbHNlJTIyJTIwaCUzRCUyMjgwJTIyJTIwdyUzRCUyMjE2MCUyMiUzRUJlc2NocmVpYmUlMjBkaWVzZSUyMEZ1bmt0aW9uJTIwJUUyJTgwJUE2JTNDJTJGY29tbWVudCUzRSUzQyUyRmJsb2NrJTNFJTNDYmxvY2slMjB0eXBlJTNEJTIyY29tbWVudCUyMiUyMGlkJTNEJTIyZW1GOTBOJTVCeEElNUQudyUzQWUlMjQwYTUlNjBBJTIyJTIweCUzRCUyMjI4OCUyMiUyMHklM0QlMjItNjIlMjIlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJDT01NRU5UJTIyJTNFVHJpZ2dlciUyMGF1ZiUyMGRlbiUyMERhdGVucHVua3QlMjBKU09OVGFibGUlMjBkZXIlM0MlMkZmaWVsZCUzRSUzQ25leHQlM0UlM0NibG9jayUyMHR5cGUlM0QlMjJjb21tZW50JTIyJTIwaWQlM0QlMjJ2JTdDZzVSJTQwUEJTbGZSJTdCJTdEZ3F0V1IxJTIyJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyQ09NTUVOVCUyMiUzRWdldyVDMyVCQ25zY2h0ZW4lMjBBbmxhZ2UlM0MlMkZmaWVsZCUzRSUzQ25leHQlM0UlM0NibG9jayUyMHR5cGUlM0QlMjJvbl9leHQlMjIlMjBpZCUzRCUyMjIlN0Q4MWdOU1BuNDhteHQtQzMyTjMlMjIlM0UlM0NtdXRhdGlvbiUyMHhtbG5zJTNEJTIyaHR0cCUzQSUyRiUyRnd3dy53My5vcmclMkYxOTk5JTJGeGh0bWwlMjIlMjBpdGVtcyUzRCUyMjElMjIlM0UlM0MlMkZtdXRhdGlvbiUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMkNPTkRJVElPTiUyMiUzRWFueSUzQyUyRmZpZWxkJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyQUNLX0NPTkRJVElPTiUyMiUzRSUzQyUyRmZpZWxkJTNFJTNDdmFsdWUlMjBuYW1lJTNEJTIyT0lEMCUyMiUzRSUzQ3NoYWRvdyUyMHR5cGUlM0QlMjJmaWVsZF9vaWQlMjIlMjBpZCUzRCUyMiUyNGZVQyUyRmtnaCU1RTclNUJwQlpqZHMlMkMlNUJOJTIyJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyb2lkJTIyJTNFZGVmYXVsdCUzQyUyRmZpZWxkJTNFJTNDJTJGc2hhZG93JTNFJTNDYmxvY2slMjB0eXBlJTNEJTIydGV4dCUyMiUyMGlkJTNEJTIyUX4lNUJ+TDclNjAlM0ZqZmY5dzAhJTdDJTdCUiF+JTIyJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyVEVYVCUyMiUzRXB2Zm9yZWNhc3QuMS5wbGFudHMuc29ubmVuc2NoZWluLkpTT05UYWJsZSUzQyUyRmZpZWxkJTNFJTNDJTJGYmxvY2slM0UlM0MlMkZ2YWx1ZSUzRSUzQ3N0YXRlbWVudCUyMG5hbWUlM0QlMjJTVEFURU1FTlQlMjIlM0UlM0NibG9jayUyMHR5cGUlM0QlMjJjb21tZW50JTIyJTIwaWQlM0QlMjJ4aXBrJTJDUTRtJTJGJTI0WmJxKDl4UCU1RE4lM0IlMjIlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJDT01NRU5UJTIyJTNFRGVuJTIwSlNPTiUyMGluJTIwZWluZSUyMFZhcmlhYmxlJTIwYWxzJTIwT2JqZWt0JTIwaG9sZW4lM0MlMkZmaWVsZCUzRSUzQ25leHQlM0UlM0NibG9jayUyMHR5cGUlM0QlMjJ2YXJpYWJsZXNfc2V0JTIyJTIwaWQlM0QlMjI5bGU4bkJfJTdERSUyQiU3QiUzRCU1RXpoJTNBRnV0YSUyMiUyMGRpc2FibGVkJTNEJTIydHJ1ZSUyMiUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMlZBUiUyMiUyMGlkJTNEJTIyQiUyNG5fJTdDTHQlM0ZWJTNGZGx0RyUyNDElM0QlMjVVISUyMiUzRUpTT05UYWJsZSUzQyUyRmZpZWxkJTNFJTNDdmFsdWUlMjBuYW1lJTNEJTIyVkFMVUUlMjIlM0UlM0NibG9jayUyMHR5cGUlM0QlMjJjb252ZXJ0X2pzb24yb2JqZWN0JTIyJTIwaWQlM0QlMjJDJTVFJTYwKTZlIVc0YXRkLiElMkIlN0IoaSU2MEQlMjIlM0UlM0N2YWx1ZSUyMG5hbWUlM0QlMjJWQUxVRSUyMiUzRSUzQ2Jsb2NrJTIwdHlwZSUzRCUyMmdldF92YWx1ZV92YXIlMjIlMjBpZCUzRCUyMkNYJTNGcSU1REdjOGolNUJLczJGNC55YyUzRGMlMjIlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJBVFRSJTIyJTNFdmFsJTNDJTJGZmllbGQlM0UlM0N2YWx1ZSUyMG5hbWUlM0QlMjJPSUQlMjIlM0UlM0NzaGFkb3clMjB0eXBlJTNEJTIydGV4dCUyMiUyMGlkJTNEJTIyWSUzQWVleEhjVU5pNWFQJTYwJTNEc2g1XyUzQiUyMiUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMlRFWFQlMjIlM0UlM0MlMkZmaWVsZCUzRSUzQyUyRnNoYWRvdyUzRSUzQ2Jsb2NrJTIwdHlwZSUzRCUyMnRleHQlMjIlMjBpZCUzRCUyMjJ5VjkyJTI1ayU3QmMlNDBhUiUyNHQlNDBGViU3Q1ZLJTIyJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyVEVYVCUyMiUzRXB2Zm9yZWNhc3QuMS5wbGFudHMuc29ubmVuc2NoZWluLkpTT05UYWJsZSUzQyUyRmZpZWxkJTNFJTNDJTJGYmxvY2slM0UlM0MlMkZ2YWx1ZSUzRSUzQyUyRmJsb2NrJTNFJTNDJTJGdmFsdWUlM0UlM0MlMkZibG9jayUzRSUzQyUyRnZhbHVlJTNFJTNDbmV4dCUzRSUzQ2Jsb2NrJTIwdHlwZSUzRCUyMnZhcmlhYmxlc19zZXQlMjIlMjBpZCUzRCUyMnklM0FKJTdDeU9JNjlhS3JfJTVEZSU3RFglN0QpcSUyMiUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMlZBUiUyMiUyMGlkJTNEJTIyQiUyNG5fJTdDTHQlM0ZWJTNGZGx0RyUyNDElM0QlMjVVISUyMiUzRUpTT05UYWJsZSUzQyUyRmZpZWxkJTNFJTNDdmFsdWUlMjBuYW1lJTNEJTIyVkFMVUUlMjIlM0UlM0NibG9jayUyMHR5cGUlM0QlMjJvbl9zb3VyY2UlMjIlMjBpZCUzRCUyMkdEUmR5SiUyNVlVaTRVJTdCUCUzQXhoZSUyNUwlMjIlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJBVFRSJTIyJTNFc3RhdGUudmFsJTNDJTJGZmllbGQlM0UlM0MlMkZibG9jayUzRSUzQyUyRnZhbHVlJTNFJTNDbmV4dCUzRSUzQ2Jsb2NrJTIwdHlwZSUzRCUyMmNvbW1lbnQlMjIlMjBpZCUzRCUyMjc4JTdCJTJGKHElNUV6byUzQVZtMyklN0RZZU1LcyUyMiUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMkNPTU1FTlQlMjIlM0VEZW4lMjBKU09OJTIwbm9jaG1hbCUyMGFscyUyMExpc3RlJTNDJTJGZmllbGQlM0UlM0NuZXh0JTNFJTNDYmxvY2slMjB0eXBlJTNEJTIydmFyaWFibGVzX3NldCUyMiUyMGlkJTNEJTIyJTI0QyUzQSUzQiU3Q0ZfRU5lJTNGS2MlN0JmOUUqdEUlMjIlMjBkaXNhYmxlZCUzRCUyMnRydWUlMjIlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJWQVIlMjIlMjBpZCUzRCUyMnpxU1N0MS5sUEJyUCFwcnRKcCUzQSU1QiUyMiUzRUpTT05MaXN0ZSUzQyUyRmZpZWxkJTNFJTNDdmFsdWUlMjBuYW1lJTNEJTIyVkFMVUUlMjIlM0UlM0NibG9jayUyMHR5cGUlM0QlMjJsaXN0c19zcGxpdCUyMiUyMGlkJTNEJTIyJTNBNCU1QiU1QjlCc1Z3U3UtJTIzU0ZTJTJGcXAlMjMlMjIlM0UlM0NtdXRhdGlvbiUyMG1vZGUlM0QlMjJTUExJVCUyMiUzRSUzQyUyRm11dGF0aW9uJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyTU9ERSUyMiUzRVNQTElUJTNDJTJGZmllbGQlM0UlM0N2YWx1ZSUyMG5hbWUlM0QlMjJJTlBVVCUyMiUzRSUzQ2Jsb2NrJTIwdHlwZSUzRCUyMmdldF92YWx1ZV92YXIlMjIlMjBpZCUzRCUyMmslMjQlN0JfTHhKbFF+SmMlMjUlNUU4bVElM0JKMyUyMiUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMkFUVFIlMjIlM0V2YWwlM0MlMkZmaWVsZCUzRSUzQ3ZhbHVlJTIwbmFtZSUzRCUyMk9JRCUyMiUzRSUzQ3NoYWRvdyUyMHR5cGUlM0QlMjJ0ZXh0JTIyJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyVEVYVCUyMiUzRSUzQyUyRmZpZWxkJTNFJTNDJTJGc2hhZG93JTNFJTNDYmxvY2slMjB0eXBlJTNEJTIydGV4dCUyMiUyMGlkJTNEJTIyJTQwKExMRU85RGNaQ18xMDdQWTdlJTNCJTIyJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyVEVYVCUyMiUzRXB2Zm9yZWNhc3QuMS5wbGFudHMuc29ubmVuc2NoZWluLkpTT05UYWJsZSUzQyUyRmZpZWxkJTNFJTNDJTJGYmxvY2slM0UlM0MlMkZ2YWx1ZSUzRSUzQyUyRmJsb2NrJTNFJTNDJTJGdmFsdWUlM0UlM0N2YWx1ZSUyMG5hbWUlM0QlMjJERUxJTSUyMiUzRSUzQ3NoYWRvdyUyMHR5cGUlM0QlMjJ0ZXh0JTIyJTIwaWQlM0QlMjJfJTNEaXIpLS1DfksuNSElMkMlNDAzISUyNSU0MDQlMjIlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJURVhUJTIyJTNFJTdEJTJDJTNDJTJGZmllbGQlM0UlM0MlMkZzaGFkb3clM0UlM0MlMkZ2YWx1ZSUzRSUzQyUyRmJsb2NrJTNFJTNDJTJGdmFsdWUlM0UlM0NuZXh0JTNFJTNDYmxvY2slMjB0eXBlJTNEJTIydmFyaWFibGVzX3NldCUyMiUyMGlkJTNEJTIyS1RISWFlaiU3Qk1WNVRUeHNlaHUlM0FoJTIyJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyVkFSJTIyJTIwaWQlM0QlMjJ6cVNTdDEubFBCclAhcHJ0SnAlM0ElNUIlMjIlM0VKU09OTGlzdGUlM0MlMkZmaWVsZCUzRSUzQ3ZhbHVlJTIwbmFtZSUzRCUyMlZBTFVFJTIyJTNFJTNDYmxvY2slMjB0eXBlJTNEJTIybGlzdHNfc3BsaXQlMjIlMjBpZCUzRCUyMiU2MCUyMyU1QnRwJTVEOCU1RHkhTCU1RUxFcDhPTClKJTIyJTNFJTNDbXV0YXRpb24lMjBtb2RlJTNEJTIyU1BMSVQlMjIlM0UlM0MlMkZtdXRhdGlvbiUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMk1PREUlMjIlM0VTUExJVCUzQyUyRmZpZWxkJTNFJTNDdmFsdWUlMjBuYW1lJTNEJTIySU5QVVQlMjIlM0UlM0NibG9jayUyMHR5cGUlM0QlMjJvbl9zb3VyY2UlMjIlMjBpZCUzRCUyMmMpJTJDcSU2MCk3ZFp5WClHdFclM0JPZTBZJTIyJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyQVRUUiUyMiUzRXN0YXRlLnZhbCUzQyUyRmZpZWxkJTNFJTNDJTJGYmxvY2slM0UlM0MlMkZ2YWx1ZSUzRSUzQ3ZhbHVlJTIwbmFtZSUzRCUyMkRFTElNJTIyJTNFJTNDc2hhZG93JTIwdHlwZSUzRCUyMnRleHQlMjIlMjBpZCUzRCUyMmtvUEp1QnUlMkZIbSUyRkQ3JTJCJTVCJTI0RFIlMjQlNjAlMjIlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJURVhUJTIyJTNFJTdEJTJDJTdCJTNDJTJGZmllbGQlM0UlM0MlMkZzaGFkb3clM0UlM0MlMkZ2YWx1ZSUzRSUzQyUyRmJsb2NrJTNFJTNDJTJGdmFsdWUlM0UlM0NuZXh0JTNFJTNDYmxvY2slMjB0eXBlJTNEJTIyY29tbWVudCUyMiUyMGlkJTNEJTIyX2REV1J3cW9yaHYlN0NLNHIyMCUyQkNGJTIyJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyQ09NTUVOVCUyMiUzRVolQzMlQTRobGVyJTIwZiVDMyVCQ3IlMjBkaWUlMjBlaW56ZWxuZW4lMjBXZXJ0ZSUzQyUyRmZpZWxkJTNFJTNDbmV4dCUzRSUzQ2Jsb2NrJTIwdHlwZSUzRCUyMnZhcmlhYmxlc19zZXQlMjIlMjBpZCUzRCUyMnclNUJITlFGWihwS0MlM0IoTG9uc3BwRyUyMiUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMlZBUiUyMiUyMGlkJTNEJTIyJTVCJTJDbm9aJTJCISUyM1IoJTVCdilWbGklNUJKQUMlMjIlM0Vjb3VudGVyJTNDJTJGZmllbGQlM0UlM0N2YWx1ZSUyMG5hbWUlM0QlMjJWQUxVRSUyMiUzRSUzQ2Jsb2NrJTIwdHlwZSUzRCUyMm1hdGhfbnVtYmVyJTIyJTIwaWQlM0QlMjIlMjRZRCUyMylaNiU1RC4hMHdVOCUzQSFJRlktJTIyJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyTlVNJTIyJTNFLTElM0MlMkZmaWVsZCUzRSUzQyUyRmJsb2NrJTNFJTNDJTJGdmFsdWUlM0UlM0NuZXh0JTNFJTNDYmxvY2slMjB0eXBlJTNEJTIyY29tbWVudCUyMiUyMGlkJTNEJTIybk9OJTJGLklNKi5YNUw3QlNmcW4uaiUyMiUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMkNPTU1FTlQlMjIlM0VWb3JoZXJpZ2UlMjBXZXJ0ZSUyMGwlQzMlQjZzY2hlbiUzQyUyRmZpZWxkJTNFJTNDbmV4dCUzRSUzQ2Jsb2NrJTIwdHlwZSUzRCUyMnByb2NlZHVyZXNfY2FsbGN1c3RvbW5vcmV0dXJuJTIyJTIwaWQlM0QlMjJNampsQWQlMkMlMjMwMmRIOSUzQiU1QjkxQSUzQWUlMjIlM0UlM0NtdXRhdGlvbiUyMG5hbWUlM0QlMjJTZW5kVG9fU1FMX2RlbGV0ZUFsbCUyMiUzRSUzQyUyRm11dGF0aW9uJTNFJTNDbmV4dCUzRSUzQ2Jsb2NrJTIwdHlwZSUzRCUyMmNvbW1lbnQlMjIlMjBpZCUzRCUyMiUyQlV4UCU1RFVGWCpLKkF5OCU0MCUyQi4zRCglMjIlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJDT01NRU5UJTIyJTNFS3VyeiUyMHdhcnRlbiUyMC4uLiUzQyUyRmZpZWxkJTNFJTNDbmV4dCUzRSUzQ2Jsb2NrJTIwdHlwZSUzRCUyMnRpbWVvdXRzX3dhaXQlMjIlMjBpZCUzRCUyMmIlMjMlNUI1QkNVNCUyM3ZELiUyQiU0MFJJZ3h3ciUyMiUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMkRFTEFZJTIyJTNFMiUzQyUyRmZpZWxkJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyVU5JVCUyMiUzRXNlYyUzQyUyRmZpZWxkJTNFJTNDbmV4dCUzRSUzQ2Jsb2NrJTIwdHlwZSUzRCUyMmNvbW1lbnQlMjIlMjBpZCUzRCUyMiUzRnFsRyU0MGJWMW5qN0slMjVoOCUzRiU2MFMtaCUyMiUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMkNPTU1FTlQlMjIlM0VEaWUlMjBXZXJ0ZSUyMGFiYXJiZWl0ZW4lM0ElM0MlMkZmaWVsZCUzRSUzQ25leHQlM0UlM0NibG9jayUyMHR5cGUlM0QlMjJjb250cm9sc19mb3JFYWNoJTIyJTIwaWQlM0QlMjJzWiUyNU5oTlN4QzEwc0FnJTQwTyU1REt6NiUyMiUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMlZBUiUyMiUyMGlkJTNEJTIyOSU1QnhTJTNEc0gpLkRLQlM4b0dOJTQwY3MlMjIlM0VpJTNDJTJGZmllbGQlM0UlM0N2YWx1ZSUyMG5hbWUlM0QlMjJMSVNUJTIyJTNFJTNDYmxvY2slMjB0eXBlJTNEJTIydmFyaWFibGVzX2dldCUyMiUyMGlkJTNEJTIycHNCM1JRNDJkbUh5JTVCJTNEYUtycyEyJTIyJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyVkFSJTIyJTIwaWQlM0QlMjJ6cVNTdDEubFBCclAhcHJ0SnAlM0ElNUIlMjIlM0VKU09OTGlzdGUlM0MlMkZmaWVsZCUzRSUzQyUyRmJsb2NrJTNFJTNDJTJGdmFsdWUlM0UlM0NzdGF0ZW1lbnQlMjBuYW1lJTNEJTIyRE8lMjIlM0UlM0NibG9jayUyMHR5cGUlM0QlMjJjb21tZW50JTIyJTIwaWQlM0QlMjIwaSUzRlh1MiU0MGhVdiUyQ2c0JTNGJTNCaTVGaGwlMjIlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJDT01NRU5UJTIyJTNFV2lyZCUyMGJlaW0lMjBlcnN0ZW4lMjBtYWwlMjAwJTIwc2VpbiUzQyUyRmZpZWxkJTNFJTNDbmV4dCUzRSUzQ2Jsb2NrJTIwdHlwZSUzRCUyMm1hdGhfY2hhbmdlJTIyJTIwaWQlM0QlMjJsaWV0JTVCNSUyM0wlNDB+JTYwSSU1RHQlN0I4JTNBJTJGRXMlMjIlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJWQVIlMjIlMjBpZCUzRCUyMiU1QiUyQ25vWiUyQiElMjNSKCU1QnYpVmxpJTVCSkFDJTIyJTNFY291bnRlciUzQyUyRmZpZWxkJTNFJTNDdmFsdWUlMjBuYW1lJTNEJTIyREVMVEElMjIlM0UlM0NzaGFkb3clMjB0eXBlJTNEJTIybWF0aF9udW1iZXIlMjIlMjBpZCUzRCUyMjk4NnFMdkNGJTVCSjJWSyU1RW5vMCU0MFJwJTIyJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyTlVNJTIyJTNFMSUzQyUyRmZpZWxkJTNFJTNDJTJGc2hhZG93JTNFJTNDJTJGdmFsdWUlM0UlM0NuZXh0JTNFJTNDYmxvY2slMjB0eXBlJTNEJTIyY29tbWVudCUyMiUyMGlkJTNEJTIyJTdEZlBJJTJGUSUzQmZWdTdWLXVZdVgySSUyQiUyMiUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMkNPTU1FTlQlMjIlM0VXaXIlMjBhcmJlaXRlbiUyMGRpZSUyMExpc3RlJTIwYWIlMkMlMjBudXR6ZW4lMjBhYmVyJTIwZGFzJTIwT2JqZWt0ISUzQyUyRmZpZWxkJTNFJTNDbmV4dCUzRSUzQ2Jsb2NrJTIwdHlwZSUzRCUyMnZhcmlhYmxlc19zZXQlMjIlMjBpZCUzRCUyMiU1RXcpJTNCJTQwaV9rZHRqV1dmJTNGYyU3REJjTyUyMiUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMlZBUiUyMiUyMGlkJTNEJTIydGtIJTIzcWNFJTNESDUlMkZfN35PdHRXNSglMjIlM0V0ZW1wRGF0dW0lM0MlMkZmaWVsZCUzRSUzQ3ZhbHVlJTIwbmFtZSUzRCUyMlZBTFVFJTIyJTNFJTNDYmxvY2slMjB0eXBlJTNEJTIyZ2V0X2F0dHIlMjIlMjBpZCUzRCUyMmpUUmJXXy13STQtJTdELiElMkM1VihWSiUyMiUzRSUzQ3ZhbHVlJTIwbmFtZSUzRCUyMlBBVEglMjIlM0UlM0NzaGFkb3clMjB0eXBlJTNEJTIydGV4dCUyMiUyMGlkJTNEJTIyM3IlNjBXOSUyRn5Ub0VqJTdCQWJ4JTNBKWFneCUyMiUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMlRFWFQlMjIlM0UlM0MlMkZmaWVsZCUzRSUzQyUyRnNoYWRvdyUzRSUzQ2Jsb2NrJTIwdHlwZSUzRCUyMnRleHRfam9pbiUyMiUyMGlkJTNEJTIyeG9GbVNiflklMkJ4bkQlM0Jjdk0lN0NnJTNCLSUyMiUzRSUzQ211dGF0aW9uJTIwaXRlbXMlM0QlMjIyJTIyJTNFJTNDJTJGbXV0YXRpb24lM0UlM0N2YWx1ZSUyMG5hbWUlM0QlMjJBREQwJTIyJTNFJTNDYmxvY2slMjB0eXBlJTNEJTIydmFyaWFibGVzX2dldCUyMiUyMGlkJTNEJTIySzklM0I0TFElMjQxUyUyRiU2MGF0JTIzWVk1Mi5qJTIyJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyVkFSJTIyJTIwaWQlM0QlMjIlNUIlMkNub1olMkIhJTIzUiglNUJ2KVZsaSU1QkpBQyUyMiUzRWNvdW50ZXIlM0MlMkZmaWVsZCUzRSUzQyUyRmJsb2NrJTNFJTNDJTJGdmFsdWUlM0UlM0N2YWx1ZSUyMG5hbWUlM0QlMjJBREQxJTIyJTNFJTNDYmxvY2slMjB0eXBlJTNEJTIydGV4dCUyMiUyMGlkJTNEJTIyS2t0OHFWci55a3B+TlYlM0IlNDAlN0JVYXMlMjIlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJURVhUJTIyJTNFLlVocnplaXQlM0MlMkZmaWVsZCUzRSUzQyUyRmJsb2NrJTNFJTNDJTJGdmFsdWUlM0UlM0MlMkZibG9jayUzRSUzQyUyRnZhbHVlJTNFJTNDdmFsdWUlMjBuYW1lJTNEJTIyT0JKRUNUJTIyJTNFJTNDYmxvY2slMjB0eXBlJTNEJTIydmFyaWFibGVzX2dldCUyMiUyMGlkJTNEJTIyJTYwLXJ3NzRJJTYwa3F5bFVXZ2VIKiUyQiglMjIlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJWQVIlMjIlMjBpZCUzRCUyMkIlMjRuXyU3Q0x0JTNGViUzRmRsdEclMjQxJTNEJTI1VSElMjIlM0VKU09OVGFibGUlM0MlMkZmaWVsZCUzRSUzQyUyRmJsb2NrJTNFJTNDJTJGdmFsdWUlM0UlM0MlMkZibG9jayUzRSUzQyUyRnZhbHVlJTNFJTNDbmV4dCUzRSUzQ2Jsb2NrJTIwdHlwZSUzRCUyMmNvbW1lbnQlMjIlMjBpZCUzRCUyMmIlM0YlNURQJTJCSDlCd3Fma0RSdiUyNCUyRiUzQWooJTIyJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyQ09NTUVOVCUyMiUzRURpZSUyMC0lMjBpbiUyMC4lMjB1bXdhbmRlbG4lM0MlMkZmaWVsZCUzRSUzQ25leHQlM0UlM0NibG9jayUyMHR5cGUlM0QlMjJ2YXJpYWJsZXNfc2V0JTIyJTIwaWQlM0QlMjJrJTQwdjE1QS1jWXBmJTJGdmJwUmElM0JfeiUyMiUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMlZBUiUyMiUyMGlkJTNEJTIydGtIJTIzcWNFJTNESDUlMkZfN35PdHRXNSglMjIlM0V0ZW1wRGF0dW0lM0MlMkZmaWVsZCUzRSUzQ3ZhbHVlJTIwbmFtZSUzRCUyMlZBTFVFJTIyJTNFJTNDYmxvY2slMjB0eXBlJTNEJTIycHJvY2VkdXJlc19jYWxsY3VzdG9tcmV0dXJuJTIyJTIwaWQlM0QlMjJwJTVCa3coJTNCeUkpcFhCamp6RCUyM0QpfiUyMiUzRSUzQ211dGF0aW9uJTIwbmFtZSUzRCUyMlJlcGxhY2VIeXBoZW4lMjIlM0UlM0NhcmclMjBuYW1lJTNEJTIyeCUyMiUzRSUzQyUyRmFyZyUzRSUzQyUyRm11dGF0aW9uJTNFJTNDdmFsdWUlMjBuYW1lJTNEJTIyQVJHMCUyMiUzRSUzQ2Jsb2NrJTIwdHlwZSUzRCUyMnZhcmlhYmxlc19nZXQlMjIlMjBpZCUzRCUyMk4paCUzRCgxVFIlNjAuOSUyMzk2JTNEbSUzRkEwWSUyMiUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMlZBUiUyMiUyMGlkJTNEJTIydGtIJTIzcWNFJTNESDUlMkZfN35PdHRXNSglMjIlM0V0ZW1wRGF0dW0lM0MlMkZmaWVsZCUzRSUzQyUyRmJsb2NrJTNFJTNDJTJGdmFsdWUlM0UlM0MlMkZibG9jayUzRSUzQyUyRnZhbHVlJTNFJTNDbmV4dCUzRSUzQ2Jsb2NrJTIwdHlwZSUzRCUyMmNvbW1lbnQlMjIlMjBpZCUzRCUyMkktNlBqemMyaW41ZlUlN0MlMkZMJTQweExUJTIyJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyQ09NTUVOVCUyMiUzRUluJTIwZWluJTIwRGF0dW0tT2JqZWt0JTIwdW13YW5kZWxuJTNDJTJGZmllbGQlM0UlM0NuZXh0JTNFJTNDYmxvY2slMjB0eXBlJTNEJTIydmFyaWFibGVzX3NldCUyMiUyMGlkJTNEJTIyRnNJTEJPUnNhTHJyYXpCaTFMKUolMjIlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJWQVIlMjIlMjBpZCUzRCUyMnRrSCUyM3FjRSUzREg1JTJGXzd+T3R0VzUoJTIyJTNFdGVtcERhdHVtJTNDJTJGZmllbGQlM0UlM0N2YWx1ZSUyMG5hbWUlM0QlMjJWQUxVRSUyMiUzRSUzQ2Jsb2NrJTIwdHlwZSUzRCUyMmNvbnZlcnRfZnJvbV9kYXRlJTIyJTIwaWQlM0QlMjI0YmJ3JTdEWkpocEhlJTdEZS4qbkowJTYwTSUyMiUzRSUzQ211dGF0aW9uJTIweG1sbnMlM0QlMjJodHRwJTNBJTJGJTJGd3d3LnczLm9yZyUyRjE5OTklMkZ4aHRtbCUyMiUyMGZvcm1hdCUzRCUyMmZhbHNlJTIyJTIwbGFuZ3VhZ2UlM0QlMjJmYWxzZSUyMiUzRSUzQyUyRm11dGF0aW9uJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyT1BUSU9OJTIyJTNFb2JqZWN0JTNDJTJGZmllbGQlM0UlM0N2YWx1ZSUyMG5hbWUlM0QlMjJWQUxVRSUyMiUzRSUzQ2Jsb2NrJTIwdHlwZSUzRCUyMnZhcmlhYmxlc19nZXQlMjIlMjBpZCUzRCUyMlJqQyUzQiUzREFjJTNCblBIRnJIQ050JTI0U0clMjIlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJWQVIlMjIlMjBpZCUzRCUyMnRrSCUyM3FjRSUzREg1JTJGXzd+T3R0VzUoJTIyJTNFdGVtcERhdHVtJTNDJTJGZmllbGQlM0UlM0MlMkZibG9jayUzRSUzQyUyRnZhbHVlJTNFJTNDJTJGYmxvY2slM0UlM0MlMkZ2YWx1ZSUzRSUzQ25leHQlM0UlM0NibG9jayUyMHR5cGUlM0QlMjJjb21tZW50JTIyJTIwaWQlM0QlMjIlM0YlMkYuQWpTJTJCJTdCMTltRV9FaEM2JTNGJTdCJTI1JTIyJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyQ09NTUVOVCUyMiUzRURpZSUyMExlaXN0dW5nJTIwaG9sZW4lMjAoaGllciUyMGluJTIwV2glMjBzdGF0dCUyMGtXaCklM0MlMkZmaWVsZCUzRSUzQ25leHQlM0UlM0NibG9jayUyMHR5cGUlM0QlMjJ2YXJpYWJsZXNfc2V0JTIyJTIwaWQlM0QlMjI3JTI0ZTElM0RaLiU3QyU3Q3R0LSU3RGIlN0QlMjQlNjBRVVglMjIlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJWQVIlMjIlMjBpZCUzRCUyMmYlM0RNWDVieFhDZSU2MCUyMyU2MCUyNHp+SFhjRyUyMiUzRXRlbXBMZWlzdHVuZyUzQyUyRmZpZWxkJTNFJTNDdmFsdWUlMjBuYW1lJTNEJTIyVkFMVUUlMjIlM0UlM0NibG9jayUyMHR5cGUlM0QlMjJtYXRoX2FyaXRobWV0aWMlMjIlMjBpZCUzRCUyMmN6VllFKWQlM0YlNUVoaiUzQnNCOHRRVyUyNWMlMjIlMjBpbmxpbmUlM0QlMjJmYWxzZSUyMiUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMk9QJTIyJTNFTVVMVElQTFklM0MlMkZmaWVsZCUzRSUzQ3ZhbHVlJTIwbmFtZSUzRCUyMkElMjIlM0UlM0NzaGFkb3clMjB0eXBlJTNEJTIybWF0aF9udW1iZXIlMjIlMjBpZCUzRCUyMlFYWEklMjNuYjUxdGhVKGdZdWpPN2wlMjIlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJOVU0lMjIlM0UxJTNDJTJGZmllbGQlM0UlM0MlMkZzaGFkb3clM0UlM0NibG9jayUyMHR5cGUlM0QlMjJnZXRfYXR0ciUyMiUyMGlkJTNEJTIyIXAoUTIlN0IqdSUyRlUlNDAoTGRMYVdPJTNCcyUyMiUzRSUzQ3ZhbHVlJTIwbmFtZSUzRCUyMlBBVEglMjIlM0UlM0NzaGFkb3clMjB0eXBlJTNEJTIydGV4dCUyMiUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMlRFWFQlMjIlM0UlM0MlMkZmaWVsZCUzRSUzQyUyRnNoYWRvdyUzRSUzQ2Jsb2NrJTIwdHlwZSUzRCUyMnRleHRfam9pbiUyMiUyMGlkJTNEJTIyZU8lMkJLYyU0MEolMjM1bmNKZXhnQ2ElM0JYRyUyMiUzRSUzQ211dGF0aW9uJTIwaXRlbXMlM0QlMjIyJTIyJTNFJTNDJTJGbXV0YXRpb24lM0UlM0N2YWx1ZSUyMG5hbWUlM0QlMjJBREQwJTIyJTNFJTNDYmxvY2slMjB0eXBlJTNEJTIydmFyaWFibGVzX2dldCUyMiUyMGlkJTNEJTIyNmglNDAlMkZ3JTNCdiUyQjVmSiUzQTJrJTVFZlJ1JTI0JTYwJTIyJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyVkFSJTIyJTIwaWQlM0QlMjIlNUIlMkNub1olMkIhJTIzUiglNUJ2KVZsaSU1QkpBQyUyMiUzRWNvdW50ZXIlM0MlMkZmaWVsZCUzRSUzQyUyRmJsb2NrJTNFJTNDJTJGdmFsdWUlM0UlM0N2YWx1ZSUyMG5hbWUlM0QlMjJBREQxJTIyJTNFJTNDYmxvY2slMjB0eXBlJTNEJTIydGV4dCUyMiUyMGlkJTNEJTIydSUzQmxXJTJDRU1xMWxvJTNCMHdsJTQwJTVFc35aJTIyJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyVEVYVCUyMiUzRS5MZWlzdHVuZyUzQyUyRmZpZWxkJTNFJTNDJTJGYmxvY2slM0UlM0MlMkZ2YWx1ZSUzRSUzQyUyRmJsb2NrJTNFJTNDJTJGdmFsdWUlM0UlM0N2YWx1ZSUyMG5hbWUlM0QlMjJPQkpFQ1QlMjIlM0UlM0NibG9jayUyMHR5cGUlM0QlMjJ2YXJpYWJsZXNfZ2V0JTIyJTIwaWQlM0QlMjIlM0F3QyUyNW1fKjUlMjNrVW1qU0N0Umh0KiUyMiUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMlZBUiUyMiUyMGlkJTNEJTIyQiUyNG5fJTdDTHQlM0ZWJTNGZGx0RyUyNDElM0QlMjVVISUyMiUzRUpTT05UYWJsZSUzQyUyRmZpZWxkJTNFJTNDJTJGYmxvY2slM0UlM0MlMkZ2YWx1ZSUzRSUzQyUyRmJsb2NrJTNFJTNDJTJGdmFsdWUlM0UlM0N2YWx1ZSUyMG5hbWUlM0QlMjJCJTIyJTNFJTNDc2hhZG93JTIwdHlwZSUzRCUyMm1hdGhfbnVtYmVyJTIyJTIwaWQlM0QlMjIub1VSIUI0eTglM0IlN0RrTFh2M0hZVkQlMjIlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJOVU0lMjIlM0UxMDAwJTNDJTJGZmllbGQlM0UlM0MlMkZzaGFkb3clM0UlM0MlMkZ2YWx1ZSUzRSUzQyUyRmJsb2NrJTNFJTNDJTJGdmFsdWUlM0UlM0NuZXh0JTNFJTNDYmxvY2slMjB0eXBlJTNEJTIyY29tbWVudCUyMiUyMGlkJTNEJTIyLnIlN0RjLjYlMjQlNUJKRGYlM0QuJTdDJTIzMDBwWmolMjIlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJDT01NRU5UJTIyJTNFVW5kJTIwaW4lMjBkaWUlMjBEYXRlbmJhbmslMjBzY2hyZWliZW4lM0MlMkZmaWVsZCUzRSUzQ25leHQlM0UlM0NibG9jayUyMHR5cGUlM0QlMjJwcm9jZWR1cmVzX2NhbGxjdXN0b21ub3JldHVybiUyMiUyMGlkJTNEJTIyQyUyQyUyRl9FbWIwXyUyQ0hYUzAlM0ElM0IwJTNGQ2IlMjIlM0UlM0NtdXRhdGlvbiUyMG5hbWUlM0QlMjJTZW5kVG9fU1FMX3N0b3JlU3RhdGUlMjIlM0UlM0NhcmclMjBuYW1lJTNEJTIybXlWQUwlMjIlM0UlM0MlMkZhcmclM0UlM0NhcmclMjBuYW1lJTNEJTIybXlUUyUyMiUzRSUzQyUyRmFyZyUzRSUzQyUyRm11dGF0aW9uJTNFJTNDdmFsdWUlMjBuYW1lJTNEJTIyQVJHMCUyMiUzRSUzQ2Jsb2NrJTIwdHlwZSUzRCUyMnZhcmlhYmxlc19nZXQlMjIlMjBpZCUzRCUyMlpYJTYwJTYwJTJDMH5xVloqSCUzQmQ3NUlUIVMlMjIlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJWQVIlMjIlMjBpZCUzRCUyMmYlM0RNWDVieFhDZSU2MCUyMyU2MCUyNHp+SFhjRyUyMiUzRXRlbXBMZWlzdHVuZyUzQyUyRmZpZWxkJTNFJTNDJTJGYmxvY2slM0UlM0MlMkZ2YWx1ZSUzRSUzQ3ZhbHVlJTIwbmFtZSUzRCUyMkFSRzElMjIlM0UlM0NibG9jayUyMHR5cGUlM0QlMjJ2YXJpYWJsZXNfZ2V0JTIyJTIwaWQlM0QlMjIyckMlMkNkdkZQZDMqXyUyQzEpRU9ka04lMjIlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJWQVIlMjIlMjBpZCUzRCUyMnRrSCUyM3FjRSUzREg1JTJGXzd+T3R0VzUoJTIyJTNFdGVtcERhdHVtJTNDJTJGZmllbGQlM0UlM0MlMkZibG9jayUzRSUzQyUyRnZhbHVlJTNFJTNDJTJGYmxvY2slM0UlM0MlMkZuZXh0JTNFJTNDJTJGYmxvY2slM0UlM0MlMkZuZXh0JTNFJTNDJTJGYmxvY2slM0UlM0MlMkZuZXh0JTNFJTNDJTJGYmxvY2slM0UlM0MlMkZuZXh0JTNFJTNDJTJGYmxvY2slM0UlM0MlMkZuZXh0JTNFJTNDJTJGYmxvY2slM0UlM0MlMkZuZXh0JTNFJTNDJTJGYmxvY2slM0UlM0MlMkZuZXh0JTNFJTNDJTJGYmxvY2slM0UlM0MlMkZuZXh0JTNFJTNDJTJGYmxvY2slM0UlM0MlMkZuZXh0JTNFJTNDJTJGYmxvY2slM0UlM0MlMkZuZXh0JTNFJTNDJTJGYmxvY2slM0UlM0MlMkZuZXh0JTNFJTNDJTJGYmxvY2slM0UlM0MlMkZzdGF0ZW1lbnQlM0UlM0MlMkZibG9jayUzRSUzQyUyRm5leHQlM0UlM0MlMkZibG9jayUzRSUzQyUyRm5leHQlM0UlM0MlMkZibG9jayUzRSUzQyUyRm5leHQlM0UlM0MlMkZibG9jayUzRSUzQyUyRm5leHQlM0UlM0MlMkZibG9jayUzRSUzQyUyRm5leHQlM0UlM0MlMkZibG9jayUzRSUzQyUyRm5leHQlM0UlM0MlMkZibG9jayUzRSUzQyUyRm5leHQlM0UlM0MlMkZibG9jayUzRSUzQyUyRm5leHQlM0UlM0MlMkZibG9jayUzRSUzQyUyRm5leHQlM0UlM0MlMkZibG9jayUzRSUzQyUyRm5leHQlM0UlM0MlMkZibG9jayUzRSUzQyUyRm5leHQlM0UlM0MlMkZibG9jayUzRSUzQyUyRm5leHQlM0UlM0MlMkZibG9jayUzRSUzQyUyRm5leHQlM0UlM0MlMkZibG9jayUzRSUzQyUyRnN0YXRlbWVudCUzRSUzQyUyRmJsb2NrJTNFJTNDJTJGbmV4dCUzRSUzQyUyRmJsb2NrJTNFJTNDJTJGbmV4dCUzRSUzQyUyRmJsb2NrJTNFJTNDJTJGeG1sJTNF
      

      Jetzt sehe ich aber das das Skript nicht mehr in mein User Objekt schreibt. Wenn ich hier von Hand einen Wert schreibe geht der nach SQL, aber vom Skript wird nicht geschrieben!

      Was ist nun anders oder wo liegt das Problem. Kann hier jemand helfen?
      Ich möchte die PVForecast Daten wieder in die SQL DB schreiben damit ich sie in Garfana wieder darstellen kann.
      Zum Testen des Blockly habe ich den Trigger von
      "wurde geändert" auf "wurde aktualisiert" geändert damit evtl. Infos zum Fehler bekomme.

      09:27:54.855 error javascript.0 (853) script.js.common.115_PVForecast_01: TypeError: Cannot read property 'replace' of undefined
      09:27:54.856 error javascript.0 (853) at ReplaceHyphen (script.js.common.115_PVForecast_01:5:14)
      09:27:54.856 error javascript.0 (853) at Object.<anonymous> (script.js.common.115_PVForecast_01:58:23)

      PlatformBetriebssystem:linux Architektur:arm64 CPUs:4 Geschwindigkeit:1800 MHz Modell:Cortex-A72
      RAM:3.7 GB System-Betriebszeit:00:19:02 Node.js:v20.18.0
      _nodeCurrent:20.18.0
      _npmCurrent:10.8.2
      Operating System: Debian GNU/Linux 12 (bookworm) Kernel: Linux 6.6.57-v8+

      BananaJoeB 1 Antwort Letzte Antwort
      0
      • sonnenscheinS sonnenschein

        Guten Morgen Zusammen!

        Nach dem mein PVForecast mit dem Blockly Script von Bananajoe bis vor kurzem ohne Probleme lief, will es jetzt nicht mehr so richtig.
        Es gab verschiedene Updates von verschiedenen Adaptern die ich installiert habe. Leider kann ich nicht nach vollziehen ab wann genau das Blockly Script nicht mehr funktioniert.
        Meine Installation ist Iobrker auf Raspberry Pi 4.
        PVForcast Adapter V 2.3.0
        Javascript v 6.0.3
        Admin v 6.2.23
        Daten schreibe ich in sql MariaDB mit SQL Adapter V 2.2.0

        Das Blocly Script liest die json table aus dem Objekten PVForcast
        aktuell pvforecast.1.plants.sonnenschein.JSONTable

        Objekte_PVForcast.png
        Der Adapter schein die Daten auch zu aktualisieren.

        PVForcast Adapter Logging auf ALLES; JavaSkript auch auf ALLES

        Reins chreiben soll das Script in dieses Objekt 0_userdata.0.PVForecast.Sonnenschein

        Das Blockly sieht so aus:
        Blockly.png

        angezeigt als Java script sieht das so aus:

        var x, myVAL, myTS, JSONTable, JSONListe, counter, i, tempDatum, tempLeistung;
        
        // Beschreibe diese Funktion …
        async function ReplaceHyphen(x) {
            return x.replace("/-/g",".");
        }
        
        // Beschreibe diese Funktion …
        async function SendTo_SQL_storeState(myVAL, myTS) {
            // Und wert erstellen wie geplant
            sendTo("sql.0", "storeState", {
                "id": '0_userdata.0.PVForecast.Sonnenschein',
                "state": { 
                    "val": myVAL, 
                    "ts": myTS,
                    "ack": true
                }
            }, async function (result) {
                console.log(result);
            });
        }
        
        // Beschreibe diese Funktion …
        async function SendTo_SQL_deleteAll() {
            // Alles löschen
            sendTo("sql.0", "deleteAll", {
                "id": '0_userdata.0.PVForecast.Sonnenschein',
            }, async function (result) {
                  console.log(result);
            });
        
        }
        
        
        // Trigger auf den Datenpunkt JSONTable der
        // gewünschten Anlage
        on({id: [].concat(['pvforecast.1.plants.sonnenschein.JSONTable']), change: "any"}, async function (obj) {
          var value = obj.state.val;
          var oldValue = obj.oldState.val;
          // Den JSON in eine Variable als Objekt holen
          JSONTable = (obj.state ? obj.state.val : "");
          // Den JSON nochmal als Liste
          JSONListe = (obj.state ? obj.state.val : "").split('},{');
          // Zähler für die einzelnen Werte
          counter = -1;
          // Vorherige Werte löschen
          await SendTo_SQL_deleteAll();
          // Kurz warten ...
          await wait(2000);
          // Die Werte abarbeiten:
          for (var i_index in JSONListe) {
            i = JSONListe[i_index];
            // Wird beim ersten mal 0 sein
            counter = (typeof counter == 'number' ? counter : 0) + 1;
            // Wir arbeiten die Liste ab, nutzen aber das Objekt!
            tempDatum = getAttr(JSONTable, (String(counter) + '.Uhrzeit'));
            // Die - in . umwandeln
            tempDatum = await ReplaceHyphen(tempDatum);
            // In ein Datum-Objekt umwandeln
            tempDatum = getDateObject(tempDatum).getTime();
            // Die Leistung holen (hier in Wh statt kWh)
            tempLeistung = parseFloat(getAttr(JSONTable, (String(counter) + '.Leistung'))) * 1000;
            // Und in die Datenbank schreiben
            await SendTo_SQL_storeState(tempLeistung, tempDatum);
          }
        });
        
        //JTNDeG1sJTIweG1sbnMlM0QlMjJodHRwcyUzQSUyRiUyRmRldmVsb3BlcnMuZ29vZ2xlLmNvbSUyRmJsb2NrbHklMkZ4bWwlMjIlM0UlM0N2YXJpYWJsZXMlM0UlM0N2YXJpYWJsZSUyMGlkJTNEJTIyeHIlM0ZDJTI1JTNBJTdERiUyNUhSJTJDJTJCYmFDJTI1VzhuJTIyJTNFeCUzQyUyRnZhcmlhYmxlJTNFJTNDdmFyaWFibGUlMjBpZCUzRCUyMmQlMkYuYk9QJTNEN1ZsQzUlMkYlNUIlMkIlM0Q4ZyUyRnUlMjIlM0VteVZBTCUzQyUyRnZhcmlhYmxlJTNFJTNDdmFyaWFibGUlMjBpZCUzRCUyMlNMJTI0ZDYlMkYlNjBDbE82aXFmZWZoNUxOJTIyJTNFbXlUUyUzQyUyRnZhcmlhYmxlJTNFJTNDdmFyaWFibGUlMjBpZCUzRCUyMkIlMjRuXyU3Q0x0JTNGViUzRmRsdEclMjQxJTNEJTI1VSElMjIlM0VKU09OVGFibGUlM0MlMkZ2YXJpYWJsZSUzRSUzQ3ZhcmlhYmxlJTIwaWQlM0QlMjJ6cVNTdDEubFBCclAhcHJ0SnAlM0ElNUIlMjIlM0VKU09OTGlzdGUlM0MlMkZ2YXJpYWJsZSUzRSUzQ3ZhcmlhYmxlJTIwaWQlM0QlMjIlNUIlMkNub1olMkIhJTIzUiglNUJ2KVZsaSU1QkpBQyUyMiUzRWNvdW50ZXIlM0MlMkZ2YXJpYWJsZSUzRSUzQ3ZhcmlhYmxlJTIwaWQlM0QlMjI5JTVCeFMlM0RzSCkuREtCUzhvR04lNDBjcyUyMiUzRWklM0MlMkZ2YXJpYWJsZSUzRSUzQ3ZhcmlhYmxlJTIwaWQlM0QlMjJ0a0glMjNxY0UlM0RINSUyRl83fk90dFc1KCUyMiUzRXRlbXBEYXR1bSUzQyUyRnZhcmlhYmxlJTNFJTNDdmFyaWFibGUlMjBpZCUzRCUyMmYlM0RNWDVieFhDZSU2MCUyMyU2MCUyNHp+SFhjRyUyMiUzRXRlbXBMZWlzdHVuZyUzQyUyRnZhcmlhYmxlJTNFJTNDJTJGdmFyaWFibGVzJTNFJTNDYmxvY2slMjB0eXBlJTNEJTIycHJvY2VkdXJlc19kZWZjdXN0b21yZXR1cm4lMjIlMjBpZCUzRCUyMmY1JTJCZSUyNGkhJTQwaGRGZFA3JTVCSkExJTVFJTYwJTIyJTIweCUzRCUyMjI4OCUyMiUyMHklM0QlMjItMjEyJTIyJTNFJTNDbXV0YXRpb24lMjBzdGF0ZW1lbnRzJTNEJTIyZmFsc2UlMjIlM0UlM0NhcmclMjBuYW1lJTNEJTIyeCUyMiUyMHZhcmlkJTNEJTIyeHIlM0ZDJTI1JTNBJTdERiUyNUhSJTJDJTJCYmFDJTI1VzhuJTIyJTNFJTNDJTJGYXJnJTNFJTNDJTJGbXV0YXRpb24lM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJOQU1FJTIyJTNFUmVwbGFjZUh5cGhlbiUzQyUyRmZpZWxkJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyU0NSSVBUJTIyJTNFY21WMGRYSnVJSGd1Y21Wd2JHRmpaU2dpTHkwdlp5SXNJaTRpS1RzJTNEJTNDJTJGZmllbGQlM0UlM0Njb21tZW50JTIwcGlubmVkJTNEJTIyZmFsc2UlMjIlMjBoJTNEJTIyODAlMjIlMjB3JTNEJTIyMTYwJTIyJTNFQmVzY2hyZWliZSUyMGRpZXNlJTIwRnVua3Rpb24lMjAlRTIlODAlQTYlM0MlMkZjb21tZW50JTNFJTNDJTJGYmxvY2slM0UlM0NibG9jayUyMHR5cGUlM0QlMjJwcm9jZWR1cmVzX2RlZmN1c3RvbW5vcmV0dXJuJTIyJTIwaWQlM0QlMjJXJTNGQmpUUXMhcGd1V3c0SFB3VClwJTIyJTIweCUzRCUyMjI4NyUyMiUyMHklM0QlMjItMTYyJTIyJTNFJTNDbXV0YXRpb24lMjBzdGF0ZW1lbnRzJTNEJTIyZmFsc2UlMjIlM0UlM0NhcmclMjBuYW1lJTNEJTIybXlWQUwlMjIlMjB2YXJpZCUzRCUyMmQlMkYuYk9QJTNEN1ZsQzUlMkYlNUIlMkIlM0Q4ZyUyRnUlMjIlM0UlM0MlMkZhcmclM0UlM0NhcmclMjBuYW1lJTNEJTIybXlUUyUyMiUyMHZhcmlkJTNEJTIyU0wlMjRkNiUyRiU2MENsTzZpcWZlZmg1TE4lMjIlM0UlM0MlMkZhcmclM0UlM0MlMkZtdXRhdGlvbiUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMk5BTUUlMjIlM0VTZW5kVG9fU1FMX3N0b3JlU3RhdGUlM0MlMkZmaWVsZCUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMlNDUklQVCUyMiUzRUx5OGdWVzVrSUhkbGNuUWdaWEp6ZEdWc2JHVnVJSGRwWlNCblpYQnNZVzUwRFFwelpXNWtWRzhvSW5OeGJDNHdJaXdnSW5OMGIzSmxVM1JoZEdVaUxDQjdEUW9nSUNBZ0ltbGtJam9nSnpCZmRYTmxjbVJoZEdFdU1DNVFWa1p2Y21WallYTjBMbE52Ym01bGJuTmphR1ZwYmljc0RRb2dJQ0FnSW5OMFlYUmxJam9nZXlBTkNpQWdJQ0FnSUNBZ0luWmhiQ0k2SUcxNVZrRk1MQ0FOQ2lBZ0lDQWdJQ0FnSW5Seklqb2diWGxVVXl3TkNpQWdJQ0FnSUNBZ0ltRmpheUk2SUhSeWRXVU5DaUFnSUNCOURRcDlMQ0JoYzNsdVl5Qm1kVzVqZEdsdmJpQW9jbVZ6ZFd4MEtTQjdEUW9nSUNBZ1kyOXVjMjlzWlM1c2IyY29jbVZ6ZFd4MEtUc05DbjBwT3clM0QlM0QlM0MlMkZmaWVsZCUzRSUzQ2NvbW1lbnQlMjBwaW5uZWQlM0QlMjJmYWxzZSUyMiUyMGglM0QlMjI4MCUyMiUyMHclM0QlMjIxNjAlMjIlM0VCZXNjaHJlaWJlJTIwZGllc2UlMjBGdW5rdGlvbiUyMCVFMiU4MCVBNiUzQyUyRmNvbW1lbnQlM0UlM0MlMkZibG9jayUzRSUzQ2Jsb2NrJTIwdHlwZSUzRCUyMnByb2NlZHVyZXNfZGVmY3VzdG9tbm9yZXR1cm4lMjIlMjBpZCUzRCUyMm0uJTVEZDZEUjRoSVIlN0NyaE0lNjBQM0tVJTIyJTIweCUzRCUyMjI4OCUyMiUyMHklM0QlMjItMTEyJTIyJTNFJTNDbXV0YXRpb24lMjBzdGF0ZW1lbnRzJTNEJTIyZmFsc2UlMjIlM0UlM0MlMkZtdXRhdGlvbiUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMk5BTUUlMjIlM0VTZW5kVG9fU1FMX2RlbGV0ZUFsbCUzQyUyRmZpZWxkJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyU0NSSVBUJTIyJTNFTHk4Z1FXeHNaWE1nYk1PMmMyTm9aVzROQ25ObGJtUlVieWdpYzNGc0xqQWlMQ0FpWkdWc1pYUmxRV3hzSWl3Z2V3MEtJQ0FnSUNKcFpDSTZJQ2N3WDNWelpYSmtZWFJoTGpBdVVGWkdiM0psWTJGemRDNVRiMjV1Wlc1elkyaGxhVzRuTEEwS2ZTd2dZWE41Ym1NZ1puVnVZM1JwYjI0Z0tISmxjM1ZzZENrZ2V3MEtJQ0FnSUNBZ1kyOXVjMjlzWlM1c2IyY29jbVZ6ZFd4MEtUc05DbjBwT3cwSyUzQyUyRmZpZWxkJTNFJTNDY29tbWVudCUyMHBpbm5lZCUzRCUyMmZhbHNlJTIyJTIwaCUzRCUyMjgwJTIyJTIwdyUzRCUyMjE2MCUyMiUzRUJlc2NocmVpYmUlMjBkaWVzZSUyMEZ1bmt0aW9uJTIwJUUyJTgwJUE2JTNDJTJGY29tbWVudCUzRSUzQyUyRmJsb2NrJTNFJTNDYmxvY2slMjB0eXBlJTNEJTIyY29tbWVudCUyMiUyMGlkJTNEJTIyZW1GOTBOJTVCeEElNUQudyUzQWUlMjQwYTUlNjBBJTIyJTIweCUzRCUyMjI4OCUyMiUyMHklM0QlMjItNjIlMjIlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJDT01NRU5UJTIyJTNFVHJpZ2dlciUyMGF1ZiUyMGRlbiUyMERhdGVucHVua3QlMjBKU09OVGFibGUlMjBkZXIlM0MlMkZmaWVsZCUzRSUzQ25leHQlM0UlM0NibG9jayUyMHR5cGUlM0QlMjJjb21tZW50JTIyJTIwaWQlM0QlMjJ2JTdDZzVSJTQwUEJTbGZSJTdCJTdEZ3F0V1IxJTIyJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyQ09NTUVOVCUyMiUzRWdldyVDMyVCQ25zY2h0ZW4lMjBBbmxhZ2UlM0MlMkZmaWVsZCUzRSUzQ25leHQlM0UlM0NibG9jayUyMHR5cGUlM0QlMjJvbl9leHQlMjIlMjBpZCUzRCUyMjIlN0Q4MWdOU1BuNDhteHQtQzMyTjMlMjIlM0UlM0NtdXRhdGlvbiUyMHhtbG5zJTNEJTIyaHR0cCUzQSUyRiUyRnd3dy53My5vcmclMkYxOTk5JTJGeGh0bWwlMjIlMjBpdGVtcyUzRCUyMjElMjIlM0UlM0MlMkZtdXRhdGlvbiUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMkNPTkRJVElPTiUyMiUzRWFueSUzQyUyRmZpZWxkJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyQUNLX0NPTkRJVElPTiUyMiUzRSUzQyUyRmZpZWxkJTNFJTNDdmFsdWUlMjBuYW1lJTNEJTIyT0lEMCUyMiUzRSUzQ3NoYWRvdyUyMHR5cGUlM0QlMjJmaWVsZF9vaWQlMjIlMjBpZCUzRCUyMiUyNGZVQyUyRmtnaCU1RTclNUJwQlpqZHMlMkMlNUJOJTIyJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyb2lkJTIyJTNFZGVmYXVsdCUzQyUyRmZpZWxkJTNFJTNDJTJGc2hhZG93JTNFJTNDYmxvY2slMjB0eXBlJTNEJTIydGV4dCUyMiUyMGlkJTNEJTIyUX4lNUJ+TDclNjAlM0ZqZmY5dzAhJTdDJTdCUiF+JTIyJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyVEVYVCUyMiUzRXB2Zm9yZWNhc3QuMS5wbGFudHMuc29ubmVuc2NoZWluLkpTT05UYWJsZSUzQyUyRmZpZWxkJTNFJTNDJTJGYmxvY2slM0UlM0MlMkZ2YWx1ZSUzRSUzQ3N0YXRlbWVudCUyMG5hbWUlM0QlMjJTVEFURU1FTlQlMjIlM0UlM0NibG9jayUyMHR5cGUlM0QlMjJjb21tZW50JTIyJTIwaWQlM0QlMjJ4aXBrJTJDUTRtJTJGJTI0WmJxKDl4UCU1RE4lM0IlMjIlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJDT01NRU5UJTIyJTNFRGVuJTIwSlNPTiUyMGluJTIwZWluZSUyMFZhcmlhYmxlJTIwYWxzJTIwT2JqZWt0JTIwaG9sZW4lM0MlMkZmaWVsZCUzRSUzQ25leHQlM0UlM0NibG9jayUyMHR5cGUlM0QlMjJ2YXJpYWJsZXNfc2V0JTIyJTIwaWQlM0QlMjI5bGU4bkJfJTdERSUyQiU3QiUzRCU1RXpoJTNBRnV0YSUyMiUyMGRpc2FibGVkJTNEJTIydHJ1ZSUyMiUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMlZBUiUyMiUyMGlkJTNEJTIyQiUyNG5fJTdDTHQlM0ZWJTNGZGx0RyUyNDElM0QlMjVVISUyMiUzRUpTT05UYWJsZSUzQyUyRmZpZWxkJTNFJTNDdmFsdWUlMjBuYW1lJTNEJTIyVkFMVUUlMjIlM0UlM0NibG9jayUyMHR5cGUlM0QlMjJjb252ZXJ0X2pzb24yb2JqZWN0JTIyJTIwaWQlM0QlMjJDJTVFJTYwKTZlIVc0YXRkLiElMkIlN0IoaSU2MEQlMjIlM0UlM0N2YWx1ZSUyMG5hbWUlM0QlMjJWQUxVRSUyMiUzRSUzQ2Jsb2NrJTIwdHlwZSUzRCUyMmdldF92YWx1ZV92YXIlMjIlMjBpZCUzRCUyMkNYJTNGcSU1REdjOGolNUJLczJGNC55YyUzRGMlMjIlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJBVFRSJTIyJTNFdmFsJTNDJTJGZmllbGQlM0UlM0N2YWx1ZSUyMG5hbWUlM0QlMjJPSUQlMjIlM0UlM0NzaGFkb3clMjB0eXBlJTNEJTIydGV4dCUyMiUyMGlkJTNEJTIyWSUzQWVleEhjVU5pNWFQJTYwJTNEc2g1XyUzQiUyMiUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMlRFWFQlMjIlM0UlM0MlMkZmaWVsZCUzRSUzQyUyRnNoYWRvdyUzRSUzQ2Jsb2NrJTIwdHlwZSUzRCUyMnRleHQlMjIlMjBpZCUzRCUyMjJ5VjkyJTI1ayU3QmMlNDBhUiUyNHQlNDBGViU3Q1ZLJTIyJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyVEVYVCUyMiUzRXB2Zm9yZWNhc3QuMS5wbGFudHMuc29ubmVuc2NoZWluLkpTT05UYWJsZSUzQyUyRmZpZWxkJTNFJTNDJTJGYmxvY2slM0UlM0MlMkZ2YWx1ZSUzRSUzQyUyRmJsb2NrJTNFJTNDJTJGdmFsdWUlM0UlM0MlMkZibG9jayUzRSUzQyUyRnZhbHVlJTNFJTNDbmV4dCUzRSUzQ2Jsb2NrJTIwdHlwZSUzRCUyMnZhcmlhYmxlc19zZXQlMjIlMjBpZCUzRCUyMnklM0FKJTdDeU9JNjlhS3JfJTVEZSU3RFglN0QpcSUyMiUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMlZBUiUyMiUyMGlkJTNEJTIyQiUyNG5fJTdDTHQlM0ZWJTNGZGx0RyUyNDElM0QlMjVVISUyMiUzRUpTT05UYWJsZSUzQyUyRmZpZWxkJTNFJTNDdmFsdWUlMjBuYW1lJTNEJTIyVkFMVUUlMjIlM0UlM0NibG9jayUyMHR5cGUlM0QlMjJvbl9zb3VyY2UlMjIlMjBpZCUzRCUyMkdEUmR5SiUyNVlVaTRVJTdCUCUzQXhoZSUyNUwlMjIlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJBVFRSJTIyJTNFc3RhdGUudmFsJTNDJTJGZmllbGQlM0UlM0MlMkZibG9jayUzRSUzQyUyRnZhbHVlJTNFJTNDbmV4dCUzRSUzQ2Jsb2NrJTIwdHlwZSUzRCUyMmNvbW1lbnQlMjIlMjBpZCUzRCUyMjc4JTdCJTJGKHElNUV6byUzQVZtMyklN0RZZU1LcyUyMiUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMkNPTU1FTlQlMjIlM0VEZW4lMjBKU09OJTIwbm9jaG1hbCUyMGFscyUyMExpc3RlJTNDJTJGZmllbGQlM0UlM0NuZXh0JTNFJTNDYmxvY2slMjB0eXBlJTNEJTIydmFyaWFibGVzX3NldCUyMiUyMGlkJTNEJTIyJTI0QyUzQSUzQiU3Q0ZfRU5lJTNGS2MlN0JmOUUqdEUlMjIlMjBkaXNhYmxlZCUzRCUyMnRydWUlMjIlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJWQVIlMjIlMjBpZCUzRCUyMnpxU1N0MS5sUEJyUCFwcnRKcCUzQSU1QiUyMiUzRUpTT05MaXN0ZSUzQyUyRmZpZWxkJTNFJTNDdmFsdWUlMjBuYW1lJTNEJTIyVkFMVUUlMjIlM0UlM0NibG9jayUyMHR5cGUlM0QlMjJsaXN0c19zcGxpdCUyMiUyMGlkJTNEJTIyJTNBNCU1QiU1QjlCc1Z3U3UtJTIzU0ZTJTJGcXAlMjMlMjIlM0UlM0NtdXRhdGlvbiUyMG1vZGUlM0QlMjJTUExJVCUyMiUzRSUzQyUyRm11dGF0aW9uJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyTU9ERSUyMiUzRVNQTElUJTNDJTJGZmllbGQlM0UlM0N2YWx1ZSUyMG5hbWUlM0QlMjJJTlBVVCUyMiUzRSUzQ2Jsb2NrJTIwdHlwZSUzRCUyMmdldF92YWx1ZV92YXIlMjIlMjBpZCUzRCUyMmslMjQlN0JfTHhKbFF+SmMlMjUlNUU4bVElM0JKMyUyMiUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMkFUVFIlMjIlM0V2YWwlM0MlMkZmaWVsZCUzRSUzQ3ZhbHVlJTIwbmFtZSUzRCUyMk9JRCUyMiUzRSUzQ3NoYWRvdyUyMHR5cGUlM0QlMjJ0ZXh0JTIyJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyVEVYVCUyMiUzRSUzQyUyRmZpZWxkJTNFJTNDJTJGc2hhZG93JTNFJTNDYmxvY2slMjB0eXBlJTNEJTIydGV4dCUyMiUyMGlkJTNEJTIyJTQwKExMRU85RGNaQ18xMDdQWTdlJTNCJTIyJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyVEVYVCUyMiUzRXB2Zm9yZWNhc3QuMS5wbGFudHMuc29ubmVuc2NoZWluLkpTT05UYWJsZSUzQyUyRmZpZWxkJTNFJTNDJTJGYmxvY2slM0UlM0MlMkZ2YWx1ZSUzRSUzQyUyRmJsb2NrJTNFJTNDJTJGdmFsdWUlM0UlM0N2YWx1ZSUyMG5hbWUlM0QlMjJERUxJTSUyMiUzRSUzQ3NoYWRvdyUyMHR5cGUlM0QlMjJ0ZXh0JTIyJTIwaWQlM0QlMjJfJTNEaXIpLS1DfksuNSElMkMlNDAzISUyNSU0MDQlMjIlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJURVhUJTIyJTNFJTdEJTJDJTNDJTJGZmllbGQlM0UlM0MlMkZzaGFkb3clM0UlM0MlMkZ2YWx1ZSUzRSUzQyUyRmJsb2NrJTNFJTNDJTJGdmFsdWUlM0UlM0NuZXh0JTNFJTNDYmxvY2slMjB0eXBlJTNEJTIydmFyaWFibGVzX3NldCUyMiUyMGlkJTNEJTIyS1RISWFlaiU3Qk1WNVRUeHNlaHUlM0FoJTIyJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyVkFSJTIyJTIwaWQlM0QlMjJ6cVNTdDEubFBCclAhcHJ0SnAlM0ElNUIlMjIlM0VKU09OTGlzdGUlM0MlMkZmaWVsZCUzRSUzQ3ZhbHVlJTIwbmFtZSUzRCUyMlZBTFVFJTIyJTNFJTNDYmxvY2slMjB0eXBlJTNEJTIybGlzdHNfc3BsaXQlMjIlMjBpZCUzRCUyMiU2MCUyMyU1QnRwJTVEOCU1RHkhTCU1RUxFcDhPTClKJTIyJTNFJTNDbXV0YXRpb24lMjBtb2RlJTNEJTIyU1BMSVQlMjIlM0UlM0MlMkZtdXRhdGlvbiUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMk1PREUlMjIlM0VTUExJVCUzQyUyRmZpZWxkJTNFJTNDdmFsdWUlMjBuYW1lJTNEJTIySU5QVVQlMjIlM0UlM0NibG9jayUyMHR5cGUlM0QlMjJvbl9zb3VyY2UlMjIlMjBpZCUzRCUyMmMpJTJDcSU2MCk3ZFp5WClHdFclM0JPZTBZJTIyJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyQVRUUiUyMiUzRXN0YXRlLnZhbCUzQyUyRmZpZWxkJTNFJTNDJTJGYmxvY2slM0UlM0MlMkZ2YWx1ZSUzRSUzQ3ZhbHVlJTIwbmFtZSUzRCUyMkRFTElNJTIyJTNFJTNDc2hhZG93JTIwdHlwZSUzRCUyMnRleHQlMjIlMjBpZCUzRCUyMmtvUEp1QnUlMkZIbSUyRkQ3JTJCJTVCJTI0RFIlMjQlNjAlMjIlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJURVhUJTIyJTNFJTdEJTJDJTdCJTNDJTJGZmllbGQlM0UlM0MlMkZzaGFkb3clM0UlM0MlMkZ2YWx1ZSUzRSUzQyUyRmJsb2NrJTNFJTNDJTJGdmFsdWUlM0UlM0NuZXh0JTNFJTNDYmxvY2slMjB0eXBlJTNEJTIyY29tbWVudCUyMiUyMGlkJTNEJTIyX2REV1J3cW9yaHYlN0NLNHIyMCUyQkNGJTIyJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyQ09NTUVOVCUyMiUzRVolQzMlQTRobGVyJTIwZiVDMyVCQ3IlMjBkaWUlMjBlaW56ZWxuZW4lMjBXZXJ0ZSUzQyUyRmZpZWxkJTNFJTNDbmV4dCUzRSUzQ2Jsb2NrJTIwdHlwZSUzRCUyMnZhcmlhYmxlc19zZXQlMjIlMjBpZCUzRCUyMnclNUJITlFGWihwS0MlM0IoTG9uc3BwRyUyMiUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMlZBUiUyMiUyMGlkJTNEJTIyJTVCJTJDbm9aJTJCISUyM1IoJTVCdilWbGklNUJKQUMlMjIlM0Vjb3VudGVyJTNDJTJGZmllbGQlM0UlM0N2YWx1ZSUyMG5hbWUlM0QlMjJWQUxVRSUyMiUzRSUzQ2Jsb2NrJTIwdHlwZSUzRCUyMm1hdGhfbnVtYmVyJTIyJTIwaWQlM0QlMjIlMjRZRCUyMylaNiU1RC4hMHdVOCUzQSFJRlktJTIyJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyTlVNJTIyJTNFLTElM0MlMkZmaWVsZCUzRSUzQyUyRmJsb2NrJTNFJTNDJTJGdmFsdWUlM0UlM0NuZXh0JTNFJTNDYmxvY2slMjB0eXBlJTNEJTIyY29tbWVudCUyMiUyMGlkJTNEJTIybk9OJTJGLklNKi5YNUw3QlNmcW4uaiUyMiUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMkNPTU1FTlQlMjIlM0VWb3JoZXJpZ2UlMjBXZXJ0ZSUyMGwlQzMlQjZzY2hlbiUzQyUyRmZpZWxkJTNFJTNDbmV4dCUzRSUzQ2Jsb2NrJTIwdHlwZSUzRCUyMnByb2NlZHVyZXNfY2FsbGN1c3RvbW5vcmV0dXJuJTIyJTIwaWQlM0QlMjJNampsQWQlMkMlMjMwMmRIOSUzQiU1QjkxQSUzQWUlMjIlM0UlM0NtdXRhdGlvbiUyMG5hbWUlM0QlMjJTZW5kVG9fU1FMX2RlbGV0ZUFsbCUyMiUzRSUzQyUyRm11dGF0aW9uJTNFJTNDbmV4dCUzRSUzQ2Jsb2NrJTIwdHlwZSUzRCUyMmNvbW1lbnQlMjIlMjBpZCUzRCUyMiUyQlV4UCU1RFVGWCpLKkF5OCU0MCUyQi4zRCglMjIlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJDT01NRU5UJTIyJTNFS3VyeiUyMHdhcnRlbiUyMC4uLiUzQyUyRmZpZWxkJTNFJTNDbmV4dCUzRSUzQ2Jsb2NrJTIwdHlwZSUzRCUyMnRpbWVvdXRzX3dhaXQlMjIlMjBpZCUzRCUyMmIlMjMlNUI1QkNVNCUyM3ZELiUyQiU0MFJJZ3h3ciUyMiUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMkRFTEFZJTIyJTNFMiUzQyUyRmZpZWxkJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyVU5JVCUyMiUzRXNlYyUzQyUyRmZpZWxkJTNFJTNDbmV4dCUzRSUzQ2Jsb2NrJTIwdHlwZSUzRCUyMmNvbW1lbnQlMjIlMjBpZCUzRCUyMiUzRnFsRyU0MGJWMW5qN0slMjVoOCUzRiU2MFMtaCUyMiUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMkNPTU1FTlQlMjIlM0VEaWUlMjBXZXJ0ZSUyMGFiYXJiZWl0ZW4lM0ElM0MlMkZmaWVsZCUzRSUzQ25leHQlM0UlM0NibG9jayUyMHR5cGUlM0QlMjJjb250cm9sc19mb3JFYWNoJTIyJTIwaWQlM0QlMjJzWiUyNU5oTlN4QzEwc0FnJTQwTyU1REt6NiUyMiUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMlZBUiUyMiUyMGlkJTNEJTIyOSU1QnhTJTNEc0gpLkRLQlM4b0dOJTQwY3MlMjIlM0VpJTNDJTJGZmllbGQlM0UlM0N2YWx1ZSUyMG5hbWUlM0QlMjJMSVNUJTIyJTNFJTNDYmxvY2slMjB0eXBlJTNEJTIydmFyaWFibGVzX2dldCUyMiUyMGlkJTNEJTIycHNCM1JRNDJkbUh5JTVCJTNEYUtycyEyJTIyJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyVkFSJTIyJTIwaWQlM0QlMjJ6cVNTdDEubFBCclAhcHJ0SnAlM0ElNUIlMjIlM0VKU09OTGlzdGUlM0MlMkZmaWVsZCUzRSUzQyUyRmJsb2NrJTNFJTNDJTJGdmFsdWUlM0UlM0NzdGF0ZW1lbnQlMjBuYW1lJTNEJTIyRE8lMjIlM0UlM0NibG9jayUyMHR5cGUlM0QlMjJjb21tZW50JTIyJTIwaWQlM0QlMjIwaSUzRlh1MiU0MGhVdiUyQ2c0JTNGJTNCaTVGaGwlMjIlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJDT01NRU5UJTIyJTNFV2lyZCUyMGJlaW0lMjBlcnN0ZW4lMjBtYWwlMjAwJTIwc2VpbiUzQyUyRmZpZWxkJTNFJTNDbmV4dCUzRSUzQ2Jsb2NrJTIwdHlwZSUzRCUyMm1hdGhfY2hhbmdlJTIyJTIwaWQlM0QlMjJsaWV0JTVCNSUyM0wlNDB+JTYwSSU1RHQlN0I4JTNBJTJGRXMlMjIlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJWQVIlMjIlMjBpZCUzRCUyMiU1QiUyQ25vWiUyQiElMjNSKCU1QnYpVmxpJTVCSkFDJTIyJTNFY291bnRlciUzQyUyRmZpZWxkJTNFJTNDdmFsdWUlMjBuYW1lJTNEJTIyREVMVEElMjIlM0UlM0NzaGFkb3clMjB0eXBlJTNEJTIybWF0aF9udW1iZXIlMjIlMjBpZCUzRCUyMjk4NnFMdkNGJTVCSjJWSyU1RW5vMCU0MFJwJTIyJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyTlVNJTIyJTNFMSUzQyUyRmZpZWxkJTNFJTNDJTJGc2hhZG93JTNFJTNDJTJGdmFsdWUlM0UlM0NuZXh0JTNFJTNDYmxvY2slMjB0eXBlJTNEJTIyY29tbWVudCUyMiUyMGlkJTNEJTIyJTdEZlBJJTJGUSUzQmZWdTdWLXVZdVgySSUyQiUyMiUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMkNPTU1FTlQlMjIlM0VXaXIlMjBhcmJlaXRlbiUyMGRpZSUyMExpc3RlJTIwYWIlMkMlMjBudXR6ZW4lMjBhYmVyJTIwZGFzJTIwT2JqZWt0ISUzQyUyRmZpZWxkJTNFJTNDbmV4dCUzRSUzQ2Jsb2NrJTIwdHlwZSUzRCUyMnZhcmlhYmxlc19zZXQlMjIlMjBpZCUzRCUyMiU1RXcpJTNCJTQwaV9rZHRqV1dmJTNGYyU3REJjTyUyMiUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMlZBUiUyMiUyMGlkJTNEJTIydGtIJTIzcWNFJTNESDUlMkZfN35PdHRXNSglMjIlM0V0ZW1wRGF0dW0lM0MlMkZmaWVsZCUzRSUzQ3ZhbHVlJTIwbmFtZSUzRCUyMlZBTFVFJTIyJTNFJTNDYmxvY2slMjB0eXBlJTNEJTIyZ2V0X2F0dHIlMjIlMjBpZCUzRCUyMmpUUmJXXy13STQtJTdELiElMkM1VihWSiUyMiUzRSUzQ3ZhbHVlJTIwbmFtZSUzRCUyMlBBVEglMjIlM0UlM0NzaGFkb3clMjB0eXBlJTNEJTIydGV4dCUyMiUyMGlkJTNEJTIyM3IlNjBXOSUyRn5Ub0VqJTdCQWJ4JTNBKWFneCUyMiUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMlRFWFQlMjIlM0UlM0MlMkZmaWVsZCUzRSUzQyUyRnNoYWRvdyUzRSUzQ2Jsb2NrJTIwdHlwZSUzRCUyMnRleHRfam9pbiUyMiUyMGlkJTNEJTIyeG9GbVNiflklMkJ4bkQlM0Jjdk0lN0NnJTNCLSUyMiUzRSUzQ211dGF0aW9uJTIwaXRlbXMlM0QlMjIyJTIyJTNFJTNDJTJGbXV0YXRpb24lM0UlM0N2YWx1ZSUyMG5hbWUlM0QlMjJBREQwJTIyJTNFJTNDYmxvY2slMjB0eXBlJTNEJTIydmFyaWFibGVzX2dldCUyMiUyMGlkJTNEJTIySzklM0I0TFElMjQxUyUyRiU2MGF0JTIzWVk1Mi5qJTIyJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyVkFSJTIyJTIwaWQlM0QlMjIlNUIlMkNub1olMkIhJTIzUiglNUJ2KVZsaSU1QkpBQyUyMiUzRWNvdW50ZXIlM0MlMkZmaWVsZCUzRSUzQyUyRmJsb2NrJTNFJTNDJTJGdmFsdWUlM0UlM0N2YWx1ZSUyMG5hbWUlM0QlMjJBREQxJTIyJTNFJTNDYmxvY2slMjB0eXBlJTNEJTIydGV4dCUyMiUyMGlkJTNEJTIyS2t0OHFWci55a3B+TlYlM0IlNDAlN0JVYXMlMjIlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJURVhUJTIyJTNFLlVocnplaXQlM0MlMkZmaWVsZCUzRSUzQyUyRmJsb2NrJTNFJTNDJTJGdmFsdWUlM0UlM0MlMkZibG9jayUzRSUzQyUyRnZhbHVlJTNFJTNDdmFsdWUlMjBuYW1lJTNEJTIyT0JKRUNUJTIyJTNFJTNDYmxvY2slMjB0eXBlJTNEJTIydmFyaWFibGVzX2dldCUyMiUyMGlkJTNEJTIyJTYwLXJ3NzRJJTYwa3F5bFVXZ2VIKiUyQiglMjIlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJWQVIlMjIlMjBpZCUzRCUyMkIlMjRuXyU3Q0x0JTNGViUzRmRsdEclMjQxJTNEJTI1VSElMjIlM0VKU09OVGFibGUlM0MlMkZmaWVsZCUzRSUzQyUyRmJsb2NrJTNFJTNDJTJGdmFsdWUlM0UlM0MlMkZibG9jayUzRSUzQyUyRnZhbHVlJTNFJTNDbmV4dCUzRSUzQ2Jsb2NrJTIwdHlwZSUzRCUyMmNvbW1lbnQlMjIlMjBpZCUzRCUyMmIlM0YlNURQJTJCSDlCd3Fma0RSdiUyNCUyRiUzQWooJTIyJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyQ09NTUVOVCUyMiUzRURpZSUyMC0lMjBpbiUyMC4lMjB1bXdhbmRlbG4lM0MlMkZmaWVsZCUzRSUzQ25leHQlM0UlM0NibG9jayUyMHR5cGUlM0QlMjJ2YXJpYWJsZXNfc2V0JTIyJTIwaWQlM0QlMjJrJTQwdjE1QS1jWXBmJTJGdmJwUmElM0JfeiUyMiUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMlZBUiUyMiUyMGlkJTNEJTIydGtIJTIzcWNFJTNESDUlMkZfN35PdHRXNSglMjIlM0V0ZW1wRGF0dW0lM0MlMkZmaWVsZCUzRSUzQ3ZhbHVlJTIwbmFtZSUzRCUyMlZBTFVFJTIyJTNFJTNDYmxvY2slMjB0eXBlJTNEJTIycHJvY2VkdXJlc19jYWxsY3VzdG9tcmV0dXJuJTIyJTIwaWQlM0QlMjJwJTVCa3coJTNCeUkpcFhCamp6RCUyM0QpfiUyMiUzRSUzQ211dGF0aW9uJTIwbmFtZSUzRCUyMlJlcGxhY2VIeXBoZW4lMjIlM0UlM0NhcmclMjBuYW1lJTNEJTIyeCUyMiUzRSUzQyUyRmFyZyUzRSUzQyUyRm11dGF0aW9uJTNFJTNDdmFsdWUlMjBuYW1lJTNEJTIyQVJHMCUyMiUzRSUzQ2Jsb2NrJTIwdHlwZSUzRCUyMnZhcmlhYmxlc19nZXQlMjIlMjBpZCUzRCUyMk4paCUzRCgxVFIlNjAuOSUyMzk2JTNEbSUzRkEwWSUyMiUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMlZBUiUyMiUyMGlkJTNEJTIydGtIJTIzcWNFJTNESDUlMkZfN35PdHRXNSglMjIlM0V0ZW1wRGF0dW0lM0MlMkZmaWVsZCUzRSUzQyUyRmJsb2NrJTNFJTNDJTJGdmFsdWUlM0UlM0MlMkZibG9jayUzRSUzQyUyRnZhbHVlJTNFJTNDbmV4dCUzRSUzQ2Jsb2NrJTIwdHlwZSUzRCUyMmNvbW1lbnQlMjIlMjBpZCUzRCUyMkktNlBqemMyaW41ZlUlN0MlMkZMJTQweExUJTIyJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyQ09NTUVOVCUyMiUzRUluJTIwZWluJTIwRGF0dW0tT2JqZWt0JTIwdW13YW5kZWxuJTNDJTJGZmllbGQlM0UlM0NuZXh0JTNFJTNDYmxvY2slMjB0eXBlJTNEJTIydmFyaWFibGVzX3NldCUyMiUyMGlkJTNEJTIyRnNJTEJPUnNhTHJyYXpCaTFMKUolMjIlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJWQVIlMjIlMjBpZCUzRCUyMnRrSCUyM3FjRSUzREg1JTJGXzd+T3R0VzUoJTIyJTNFdGVtcERhdHVtJTNDJTJGZmllbGQlM0UlM0N2YWx1ZSUyMG5hbWUlM0QlMjJWQUxVRSUyMiUzRSUzQ2Jsb2NrJTIwdHlwZSUzRCUyMmNvbnZlcnRfZnJvbV9kYXRlJTIyJTIwaWQlM0QlMjI0YmJ3JTdEWkpocEhlJTdEZS4qbkowJTYwTSUyMiUzRSUzQ211dGF0aW9uJTIweG1sbnMlM0QlMjJodHRwJTNBJTJGJTJGd3d3LnczLm9yZyUyRjE5OTklMkZ4aHRtbCUyMiUyMGZvcm1hdCUzRCUyMmZhbHNlJTIyJTIwbGFuZ3VhZ2UlM0QlMjJmYWxzZSUyMiUzRSUzQyUyRm11dGF0aW9uJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyT1BUSU9OJTIyJTNFb2JqZWN0JTNDJTJGZmllbGQlM0UlM0N2YWx1ZSUyMG5hbWUlM0QlMjJWQUxVRSUyMiUzRSUzQ2Jsb2NrJTIwdHlwZSUzRCUyMnZhcmlhYmxlc19nZXQlMjIlMjBpZCUzRCUyMlJqQyUzQiUzREFjJTNCblBIRnJIQ050JTI0U0clMjIlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJWQVIlMjIlMjBpZCUzRCUyMnRrSCUyM3FjRSUzREg1JTJGXzd+T3R0VzUoJTIyJTNFdGVtcERhdHVtJTNDJTJGZmllbGQlM0UlM0MlMkZibG9jayUzRSUzQyUyRnZhbHVlJTNFJTNDJTJGYmxvY2slM0UlM0MlMkZ2YWx1ZSUzRSUzQ25leHQlM0UlM0NibG9jayUyMHR5cGUlM0QlMjJjb21tZW50JTIyJTIwaWQlM0QlMjIlM0YlMkYuQWpTJTJCJTdCMTltRV9FaEM2JTNGJTdCJTI1JTIyJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyQ09NTUVOVCUyMiUzRURpZSUyMExlaXN0dW5nJTIwaG9sZW4lMjAoaGllciUyMGluJTIwV2glMjBzdGF0dCUyMGtXaCklM0MlMkZmaWVsZCUzRSUzQ25leHQlM0UlM0NibG9jayUyMHR5cGUlM0QlMjJ2YXJpYWJsZXNfc2V0JTIyJTIwaWQlM0QlMjI3JTI0ZTElM0RaLiU3QyU3Q3R0LSU3RGIlN0QlMjQlNjBRVVglMjIlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJWQVIlMjIlMjBpZCUzRCUyMmYlM0RNWDVieFhDZSU2MCUyMyU2MCUyNHp+SFhjRyUyMiUzRXRlbXBMZWlzdHVuZyUzQyUyRmZpZWxkJTNFJTNDdmFsdWUlMjBuYW1lJTNEJTIyVkFMVUUlMjIlM0UlM0NibG9jayUyMHR5cGUlM0QlMjJtYXRoX2FyaXRobWV0aWMlMjIlMjBpZCUzRCUyMmN6VllFKWQlM0YlNUVoaiUzQnNCOHRRVyUyNWMlMjIlMjBpbmxpbmUlM0QlMjJmYWxzZSUyMiUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMk9QJTIyJTNFTVVMVElQTFklM0MlMkZmaWVsZCUzRSUzQ3ZhbHVlJTIwbmFtZSUzRCUyMkElMjIlM0UlM0NzaGFkb3clMjB0eXBlJTNEJTIybWF0aF9udW1iZXIlMjIlMjBpZCUzRCUyMlFYWEklMjNuYjUxdGhVKGdZdWpPN2wlMjIlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJOVU0lMjIlM0UxJTNDJTJGZmllbGQlM0UlM0MlMkZzaGFkb3clM0UlM0NibG9jayUyMHR5cGUlM0QlMjJnZXRfYXR0ciUyMiUyMGlkJTNEJTIyIXAoUTIlN0IqdSUyRlUlNDAoTGRMYVdPJTNCcyUyMiUzRSUzQ3ZhbHVlJTIwbmFtZSUzRCUyMlBBVEglMjIlM0UlM0NzaGFkb3clMjB0eXBlJTNEJTIydGV4dCUyMiUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMlRFWFQlMjIlM0UlM0MlMkZmaWVsZCUzRSUzQyUyRnNoYWRvdyUzRSUzQ2Jsb2NrJTIwdHlwZSUzRCUyMnRleHRfam9pbiUyMiUyMGlkJTNEJTIyZU8lMkJLYyU0MEolMjM1bmNKZXhnQ2ElM0JYRyUyMiUzRSUzQ211dGF0aW9uJTIwaXRlbXMlM0QlMjIyJTIyJTNFJTNDJTJGbXV0YXRpb24lM0UlM0N2YWx1ZSUyMG5hbWUlM0QlMjJBREQwJTIyJTNFJTNDYmxvY2slMjB0eXBlJTNEJTIydmFyaWFibGVzX2dldCUyMiUyMGlkJTNEJTIyNmglNDAlMkZ3JTNCdiUyQjVmSiUzQTJrJTVFZlJ1JTI0JTYwJTIyJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyVkFSJTIyJTIwaWQlM0QlMjIlNUIlMkNub1olMkIhJTIzUiglNUJ2KVZsaSU1QkpBQyUyMiUzRWNvdW50ZXIlM0MlMkZmaWVsZCUzRSUzQyUyRmJsb2NrJTNFJTNDJTJGdmFsdWUlM0UlM0N2YWx1ZSUyMG5hbWUlM0QlMjJBREQxJTIyJTNFJTNDYmxvY2slMjB0eXBlJTNEJTIydGV4dCUyMiUyMGlkJTNEJTIydSUzQmxXJTJDRU1xMWxvJTNCMHdsJTQwJTVFc35aJTIyJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyVEVYVCUyMiUzRS5MZWlzdHVuZyUzQyUyRmZpZWxkJTNFJTNDJTJGYmxvY2slM0UlM0MlMkZ2YWx1ZSUzRSUzQyUyRmJsb2NrJTNFJTNDJTJGdmFsdWUlM0UlM0N2YWx1ZSUyMG5hbWUlM0QlMjJPQkpFQ1QlMjIlM0UlM0NibG9jayUyMHR5cGUlM0QlMjJ2YXJpYWJsZXNfZ2V0JTIyJTIwaWQlM0QlMjIlM0F3QyUyNW1fKjUlMjNrVW1qU0N0Umh0KiUyMiUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMlZBUiUyMiUyMGlkJTNEJTIyQiUyNG5fJTdDTHQlM0ZWJTNGZGx0RyUyNDElM0QlMjVVISUyMiUzRUpTT05UYWJsZSUzQyUyRmZpZWxkJTNFJTNDJTJGYmxvY2slM0UlM0MlMkZ2YWx1ZSUzRSUzQyUyRmJsb2NrJTNFJTNDJTJGdmFsdWUlM0UlM0N2YWx1ZSUyMG5hbWUlM0QlMjJCJTIyJTNFJTNDc2hhZG93JTIwdHlwZSUzRCUyMm1hdGhfbnVtYmVyJTIyJTIwaWQlM0QlMjIub1VSIUI0eTglM0IlN0RrTFh2M0hZVkQlMjIlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJOVU0lMjIlM0UxMDAwJTNDJTJGZmllbGQlM0UlM0MlMkZzaGFkb3clM0UlM0MlMkZ2YWx1ZSUzRSUzQyUyRmJsb2NrJTNFJTNDJTJGdmFsdWUlM0UlM0NuZXh0JTNFJTNDYmxvY2slMjB0eXBlJTNEJTIyY29tbWVudCUyMiUyMGlkJTNEJTIyLnIlN0RjLjYlMjQlNUJKRGYlM0QuJTdDJTIzMDBwWmolMjIlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJDT01NRU5UJTIyJTNFVW5kJTIwaW4lMjBkaWUlMjBEYXRlbmJhbmslMjBzY2hyZWliZW4lM0MlMkZmaWVsZCUzRSUzQ25leHQlM0UlM0NibG9jayUyMHR5cGUlM0QlMjJwcm9jZWR1cmVzX2NhbGxjdXN0b21ub3JldHVybiUyMiUyMGlkJTNEJTIyQyUyQyUyRl9FbWIwXyUyQ0hYUzAlM0ElM0IwJTNGQ2IlMjIlM0UlM0NtdXRhdGlvbiUyMG5hbWUlM0QlMjJTZW5kVG9fU1FMX3N0b3JlU3RhdGUlMjIlM0UlM0NhcmclMjBuYW1lJTNEJTIybXlWQUwlMjIlM0UlM0MlMkZhcmclM0UlM0NhcmclMjBuYW1lJTNEJTIybXlUUyUyMiUzRSUzQyUyRmFyZyUzRSUzQyUyRm11dGF0aW9uJTNFJTNDdmFsdWUlMjBuYW1lJTNEJTIyQVJHMCUyMiUzRSUzQ2Jsb2NrJTIwdHlwZSUzRCUyMnZhcmlhYmxlc19nZXQlMjIlMjBpZCUzRCUyMlpYJTYwJTYwJTJDMH5xVloqSCUzQmQ3NUlUIVMlMjIlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJWQVIlMjIlMjBpZCUzRCUyMmYlM0RNWDVieFhDZSU2MCUyMyU2MCUyNHp+SFhjRyUyMiUzRXRlbXBMZWlzdHVuZyUzQyUyRmZpZWxkJTNFJTNDJTJGYmxvY2slM0UlM0MlMkZ2YWx1ZSUzRSUzQ3ZhbHVlJTIwbmFtZSUzRCUyMkFSRzElMjIlM0UlM0NibG9jayUyMHR5cGUlM0QlMjJ2YXJpYWJsZXNfZ2V0JTIyJTIwaWQlM0QlMjIyckMlMkNkdkZQZDMqXyUyQzEpRU9ka04lMjIlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJWQVIlMjIlMjBpZCUzRCUyMnRrSCUyM3FjRSUzREg1JTJGXzd+T3R0VzUoJTIyJTNFdGVtcERhdHVtJTNDJTJGZmllbGQlM0UlM0MlMkZibG9jayUzRSUzQyUyRnZhbHVlJTNFJTNDJTJGYmxvY2slM0UlM0MlMkZuZXh0JTNFJTNDJTJGYmxvY2slM0UlM0MlMkZuZXh0JTNFJTNDJTJGYmxvY2slM0UlM0MlMkZuZXh0JTNFJTNDJTJGYmxvY2slM0UlM0MlMkZuZXh0JTNFJTNDJTJGYmxvY2slM0UlM0MlMkZuZXh0JTNFJTNDJTJGYmxvY2slM0UlM0MlMkZuZXh0JTNFJTNDJTJGYmxvY2slM0UlM0MlMkZuZXh0JTNFJTNDJTJGYmxvY2slM0UlM0MlMkZuZXh0JTNFJTNDJTJGYmxvY2slM0UlM0MlMkZuZXh0JTNFJTNDJTJGYmxvY2slM0UlM0MlMkZuZXh0JTNFJTNDJTJGYmxvY2slM0UlM0MlMkZuZXh0JTNFJTNDJTJGYmxvY2slM0UlM0MlMkZzdGF0ZW1lbnQlM0UlM0MlMkZibG9jayUzRSUzQyUyRm5leHQlM0UlM0MlMkZibG9jayUzRSUzQyUyRm5leHQlM0UlM0MlMkZibG9jayUzRSUzQyUyRm5leHQlM0UlM0MlMkZibG9jayUzRSUzQyUyRm5leHQlM0UlM0MlMkZibG9jayUzRSUzQyUyRm5leHQlM0UlM0MlMkZibG9jayUzRSUzQyUyRm5leHQlM0UlM0MlMkZibG9jayUzRSUzQyUyRm5leHQlM0UlM0MlMkZibG9jayUzRSUzQyUyRm5leHQlM0UlM0MlMkZibG9jayUzRSUzQyUyRm5leHQlM0UlM0MlMkZibG9jayUzRSUzQyUyRm5leHQlM0UlM0MlMkZibG9jayUzRSUzQyUyRm5leHQlM0UlM0MlMkZibG9jayUzRSUzQyUyRm5leHQlM0UlM0MlMkZibG9jayUzRSUzQyUyRm5leHQlM0UlM0MlMkZibG9jayUzRSUzQyUyRnN0YXRlbWVudCUzRSUzQyUyRmJsb2NrJTNFJTNDJTJGbmV4dCUzRSUzQyUyRmJsb2NrJTNFJTNDJTJGbmV4dCUzRSUzQyUyRmJsb2NrJTNFJTNDJTJGeG1sJTNF
        

        Jetzt sehe ich aber das das Skript nicht mehr in mein User Objekt schreibt. Wenn ich hier von Hand einen Wert schreibe geht der nach SQL, aber vom Skript wird nicht geschrieben!

        Was ist nun anders oder wo liegt das Problem. Kann hier jemand helfen?
        Ich möchte die PVForecast Daten wieder in die SQL DB schreiben damit ich sie in Garfana wieder darstellen kann.
        Zum Testen des Blockly habe ich den Trigger von
        "wurde geändert" auf "wurde aktualisiert" geändert damit evtl. Infos zum Fehler bekomme.

        09:27:54.855 error javascript.0 (853) script.js.common.115_PVForecast_01: TypeError: Cannot read property 'replace' of undefined
        09:27:54.856 error javascript.0 (853) at ReplaceHyphen (script.js.common.115_PVForecast_01:5:14)
        09:27:54.856 error javascript.0 (853) at Object.<anonymous> (script.js.common.115_PVForecast_01:58:23)

        BananaJoeB Offline
        BananaJoeB Offline
        BananaJoe
        Most Active
        schrieb am zuletzt editiert von BananaJoe
        #537

        @sonnenschein sagte in Test PV Forecast Adapter:

        0_userdata.0.PVForecast.Sonnenschein

        Schick mal die Daten von deinem Datenpunkt 0_userdata.0.PVForecast.Sonnenschein, also den Stift am Ende anklicken und den Inhalt des 2. Reiters. Das ganze bitte in Code-Tags.

        Bei mir funktioniert es noch - ich habe aber inzwischen eine verbesserte Version bei der die Daten nicht mehr vor dem Schreiben gelöscht werden müssen (ich kann also auch die Tage und Wochen vorher sehen) und die mehrere Anlagen berücksichtigt.

        Ich meine das sich der Aufbau des JSON geändert hat.
        Mein aktuelles Blockly ist im Moment aber eine 3-Anlagen Version, ich habe mal versucht das wieder zusammenzustreichen auf eine:

        <xml xmlns="https://developers.google.com/blockly/xml">
          <variables>
            <variable id="RtPM2%k{F`%!q{Rk]|a.">id</variable>
            <variable id=";!)T*gf?`G!J~iZ#4,CG">ts</variable>
            <variable id="epT$}5hcYx3b^`jz:~#d">value</variable>
            <variable id="GAGtL,+-C3?x`s;u1nsR">ack</variable>
            <variable id="rHJp6FCFj,U],$ysF[xX">from</variable>
            <variable id="p~yp5Fejp5Y|*K$i[(u%">q</variable>
            <variable id="xr?C%:}F%HR,+baC%W8n">x</variable>
            <variable id="F^DL7ecjBQr1k@hYE+{=">myId</variable>
            <variable id="d/.bOP=7VlC5/[+=8g/u">myVAL</variable>
            <variable id="SL$d6/`ClO6iqfefh5LN">myTS</variable>
            <variable id="eF:WEr]2Ns:niv]0A2?4">myIdDeleteAll</variable>
            <variable id="!X-*UNPMzEuy~Y#t}/dN">dp_Forecast_600W</variable>
            <variable id="B$n_|Lt?V?dltG$1=%U!">JSONTable</variable>
            <variable id="zqSSt1.lPBrP!prtJp:[">JSONListe</variable>
            <variable id="[,noZ+!#R([v)Vli[JAC">counter</variable>
            <variable id="9[xS=sH).DKBS8oGN@cs">i</variable>
            <variable id="tkH#qcE=H5/_7~OttW5(">tempDatum</variable>
            <variable id="Qc{Jo]quM_J722)2(/*i">tempLeistung600W</variable>
          </variables>
          <block type="procedures_defcustomnoreturn" id="ppt|ajrQncolYtqyk1q1" x="288" y="-337">
            <mutation statements="false">
              <arg name="id" varid="RtPM2%k{F`%!q{Rk]|a."></arg>
              <arg name="ts" varid=";!)T*gf?`G!J~iZ#4,CG"></arg>
              <arg name="value" varid="epT$}5hcYx3b^`jz:~#d"></arg>
              <arg name="ack" varid="GAGtL,+-C3?x`s;u1nsR"></arg>
              <arg name="from" varid="rHJp6FCFj,U],$ysF[xX"></arg>
              <arg name="q" varid="p~yp5Fejp5Y|*K$i[(u%"></arg>
            </mutation>
            <field name="NAME">InsertToHistory</field>
            <field name="SCRIPT">bGV0IHN0YXRlbWVudCA9IGANCiAgICBSRVBMQUNFIElOVE8gaW9icm9rZXIudHNfbnVtYmVyIA0KICAgICAgICAoaWQsIHRzLCB2YWwsIGFjaywgX2Zyb20sIHEpIA0KICAgICAgICBWQUxVRVMgKChTRUxFQ1QgaWQgRlJPTSBpb2Jyb2tlci5kYXRhcG9pbnRzIFdIRVJFIG5hbWUgPSAiJHtpZH0iKSwgJHt0c30sICR7dmFsdWV9LCAke2Fja30sICR7ZnJvbX0sICR7cX0pDQpgDQovL2xvZyhzdGF0ZW1lbnQpDQpzZW5kVG8oInNxbC4wIiwgInF1ZXJ5Iiwgc3RhdGVtZW50LCBlID0+IHsNCiAgICBpZiAoZSAmJiBlLmVycm9yKSB7DQogICAgICAgIGxvZyhlLmVycm9yKQ0KICAgIH0gZWxzZSB7DQogICAgICAgIC8vIGxvZygiRG9uZSEiKQ0KICAgIH0NCn0p</field>
            <comment pinned="false" h="80" w="160">Beschreibe diese Funktion …</comment>
          </block>
          <block type="procedures_defcustomreturn" id="YKZ7]x,bTzIFH|2uVS[r" x="288" y="-312">
            <mutation statements="false">
              <arg name="x" varid="xr?C%:}F%HR,+baC%W8n"></arg>
            </mutation>
            <field name="NAME">ReplaceDot</field>
            <field name="SCRIPT">cmV0dXJuIHgucmVwbGFjZSgiLiIsIiIpOw==</field>
            <comment pinned="false" h="80" w="160">Beschreibe diese Funktion …</comment>
          </block>
          <block type="procedures_defcustomreturn" id="f5+e$i!@hdFdP7[JA1^`" x="288" y="-287">
            <mutation statements="false">
              <arg name="x" varid="xr?C%:}F%HR,+baC%W8n"></arg>
            </mutation>
            <field name="NAME">ReplaceHyphen</field>
            <field name="SCRIPT">cmV0dXJuIHgucmVwbGFjZSgiLy0vZyIsIi4iKTs=</field>
            <comment pinned="false" h="80" w="160">Beschreibe diese Funktion …</comment>
          </block>
          <block type="procedures_defcustomnoreturn" id="W?BjTQs!pguWw4HPwT)p" x="288" y="-262">
            <mutation statements="false">
              <arg name="myId" varid="F^DL7ecjBQr1k@hYE+{="></arg>
              <arg name="myVAL" varid="d/.bOP=7VlC5/[+=8g/u"></arg>
              <arg name="myTS" varid="SL$d6/`ClO6iqfefh5LN"></arg>
            </mutation>
            <field name="NAME">SendTo_SQL_storeState</field>
            <field name="SCRIPT">Ly8gVW5kIHdlcnQgZXJzdGVsbGVuIHdpZSBnZXBsYW50DQpzZW5kVG8oInNxbC4wIiwgInN0b3JlU3RhdGUiLCB7DQovL3NlbmRUbygic3FsLjAiLCAidXBkYXRlIiwgew0KICAgIC8vICJpZCI6ICcwX3VzZXJkYXRhLjAuU29sYXJhbmxhZ2UucHZmb3JlY2FzdCcsDQogICAgImlkIjogbXlJZCwNCiAgICAic3RhdGUiOiB7IA0KICAgICAgICAidmFsIjogbXlWQUwsIA0KICAgICAgICAidHMiOiBteVRTLA0KICAgICAgICAiYWNrIjogdHJ1ZQ0KICAgIH0NCn0sIGFzeW5jIGZ1bmN0aW9uIChyZXN1bHQpIHsNCiAgICAvL2NvbnNvbGUubG9nKHJlc3VsdCk7DQp9KTs=</field>
            <comment pinned="false" h="80" w="160">Beschreibe diese Funktion …</comment>
          </block>
          <block type="procedures_defcustomnoreturn" id="m.]d6DR4hIR|rhM`P3KU" x="288" y="-237">
            <mutation statements="false">
              <arg name="myIdDeleteAll" varid="eF:WEr]2Ns:niv]0A2?4"></arg>
            </mutation>
            <field name="NAME">SendTo_SQL_deleteAll</field>
            <field name="SCRIPT">Ly8gQWxsZXMgbMO2c2NoZW4NCnNlbmRUbygic3FsLjAiLCAiZGVsZXRlQWxsIiwgew0KICAgIC8vICJpZCI6ICcwX3VzZXJkYXRhLjAuU29sYXJhbmxhZ2UucHZmb3JlY2FzdCcsDQogICAgImlkIjogbXlJZERlbGV0ZUFsbCwNCn0sIGFzeW5jIGZ1bmN0aW9uIChyZXN1bHQpIHsNCiAgICAgIC8vY29uc29sZS5sb2cocmVzdWx0KTsNCn0pOw0K</field>
            <comment pinned="false" h="80" w="160">Beschreibe diese Funktion …</comment>
          </block>
          <block type="comment" id="emF90N[xA].w:e$0a5`A" x="288" y="-187">
            <field name="COMMENT">Trigger auf den Datenpunkt JSONTable der</field>
            <next>
              <block type="comment" id="v|g5R@PBSlfR{}gqtWR1">
                <field name="COMMENT">gewünschten Anlage</field>
                <next>
                  <block type="variables_set" id="IK$-$m]~F![8fw3OLm2r">
                    <field name="VAR" id="!X-*UNPMzEuy~Y#t}/dN">dp_Forecast_600W</field>
                    <value name="VALUE">
                      <block type="text" id="-u)LAh^;Kq(U?ig^gOnf">
                        <field name="TEXT">0_userdata.0.Solaranlage.pvforecasts.Forecast_solar.600W</field>
                      </block>
                    </value>
                    <next>
                      <block type="on_ext" id="2}81gNSPn48mxt-C32N3">
                        <mutation xmlns="http://www.w3.org/1999/xhtml" items="1"></mutation>
                        <field name="CONDITION">any</field>
                        <field name="ACK_CONDITION"></field>
                        <value name="OID0">
                          <shadow type="field_oid" id="$fUC/kgh^7[pBZjds,[N">
                            <field name="oid">default</field>
                          </shadow>
                          <block type="text" id="Q~[~L7`?jff9w0!|{R!~">
                            <field name="TEXT">pvforecast.0.summary.JSONTable</field>
                          </block>
                        </value>
                        <statement name="STATEMENT">
                          <block type="comment" id="xipk,Q4m/$Zbq(9xP]N;">
                            <field name="COMMENT">Den JSON in eine Variable als Objekt holen</field>
                            <next>
                              <block type="variables_set" id="9le8nB_}E+{=^zh:Futa">
                                <field name="VAR" id="B$n_|Lt?V?dltG$1=%U!">JSONTable</field>
                                <value name="VALUE">
                                  <block type="convert_json2object" id="C^`)6e!W4atd.!+{(i`D">
                                    <value name="VALUE">
                                      <block type="get_value_var" id="CX?q]Gc8j[Ks2F4.yc=c">
                                        <field name="ATTR">val</field>
                                        <value name="OID">
                                          <shadow type="text" id="Y:eexHcUNi5aP`=sh5_;">
                                            <field name="TEXT"></field>
                                          </shadow>
                                          <block type="text" id="2yV92%k{c@aR$t@FV|VK">
                                            <field name="TEXT">pvforecast.0.summary.JSONTable</field>
                                          </block>
                                        </value>
                                      </block>
                                    </value>
                                  </block>
                                </value>
                                <next>
                                  <block type="comment" id="78{/(q^zo:Vm3)}YeMKs">
                                    <field name="COMMENT">Den JSON nochmal als Liste</field>
                                    <next>
                                      <block type="variables_set" id="$C:;|F_ENe?Kc{f9E*tE">
                                        <field name="VAR" id="zqSSt1.lPBrP!prtJp:[">JSONListe</field>
                                        <value name="VALUE">
                                          <block type="lists_split" id=":4[[9BsVwSu-#SFS/qp#">
                                            <mutation mode="SPLIT"></mutation>
                                            <field name="MODE">SPLIT</field>
                                            <value name="INPUT">
                                              <block type="get_value_var" id="k${_LxJlQ~Jc%^8mQ;J3">
                                                <field name="ATTR">val</field>
                                                <value name="OID">
                                                  <shadow type="text">
                                                    <field name="TEXT"></field>
                                                  </shadow>
                                                  <block type="text" id="@(LLEO9DcZC_107PY7e;">
                                                    <field name="TEXT">pvforecast.0.summary.JSONTable</field>
                                                  </block>
                                                </value>
                                              </block>
                                            </value>
                                            <value name="DELIM">
                                              <shadow type="text" id="_=ir)--C~K.5!,@3!%@4">
                                                <field name="TEXT">},</field>
                                              </shadow>
                                            </value>
                                          </block>
                                        </value>
                                        <next>
                                          <block type="comment" id="_dDWRwqorhv|K4r20+CF">
                                            <field name="COMMENT">Zähler für die einzelnen Werte</field>
                                            <next>
                                              <block type="variables_set" id="w[HNQFZ(pKC;(LonsppG">
                                                <field name="VAR" id="[,noZ+!#R([v)Vli[JAC">counter</field>
                                                <value name="VALUE">
                                                  <block type="math_number" id="$YD#)Z6].!0wU8:!IFY-">
                                                    <field name="NUM">-1</field>
                                                  </block>
                                                </value>
                                                <next>
                                                  <block type="comment" id="+UxP]UFX*K*Ay8@+.3D(">
                                                    <field name="COMMENT">Kurz warten ...</field>
                                                    <next>
                                                      <block type="timeouts_wait" id="b#[5BCU4#vD.+@RIgxwr">
                                                        <field name="DELAY">2</field>
                                                        <field name="UNIT">sec</field>
                                                        <next>
                                                          <block type="comment" id="?qlG@bV1nj7K%h8?`S-h">
                                                            <field name="COMMENT">Die Werte abarbeiten:</field>
                                                            <next>
                                                              <block type="controls_forEach" id="sZ%NhNSxC10sAg@O]Kz6">
                                                                <field name="VAR" id="9[xS=sH).DKBS8oGN@cs">i</field>
                                                                <value name="LIST">
                                                                  <block type="variables_get" id="psB3RQ42dmHy[=aKrs!2">
                                                                    <field name="VAR" id="zqSSt1.lPBrP!prtJp:[">JSONListe</field>
                                                                  </block>
                                                                </value>
                                                                <statement name="DO">
                                                                  <block type="comment" id="0i?Xu2@hUv,g4?;i5Fhl">
                                                                    <field name="COMMENT">Wird beim ersten mal 0 sein</field>
                                                                    <next>
                                                                      <block type="math_change" id="liet[5#L@~`I]t{8:/Es">
                                                                        <field name="VAR" id="[,noZ+!#R([v)Vli[JAC">counter</field>
                                                                        <value name="DELTA">
                                                                          <shadow type="math_number" id="986qLvCF[J2VK^no0@Rp">
                                                                            <field name="NUM">1</field>
                                                                          </shadow>
                                                                        </value>
                                                                        <next>
                                                                          <block type="comment" id="}fPI/Q;fVu7V-uYuX2I+">
                                                                            <field name="COMMENT">Wir arbeiten die Liste ab, nutzen aber das Objekt!</field>
                                                                            <next>
                                                                              <block type="variables_set" id="^w);@i_kdtjWWf?c}BcO">
                                                                                <field name="VAR" id="tkH#qcE=H5/_7~OttW5(">tempDatum</field>
                                                                                <value name="VALUE">
                                                                                  <block type="get_attr" id="jTRbW_-wI4-}.!,5V(VJ">
                                                                                    <value name="PATH">
                                                                                      <shadow type="text" id="3r`W9/~ToEj{Abx:)agx">
                                                                                        <field name="TEXT"></field>
                                                                                      </shadow>
                                                                                      <block type="text_join" id="xoFmSb~Y+xnD;cvM|g;-">
                                                                                        <mutation items="2"></mutation>
                                                                                        <value name="ADD0">
                                                                                          <block type="variables_get" id="K9;4LQ$1S/`at#YY52.j">
                                                                                            <field name="VAR" id="[,noZ+!#R([v)Vli[JAC">counter</field>
                                                                                          </block>
                                                                                        </value>
                                                                                        <value name="ADD1">
                                                                                          <block type="text" id="Kkt8qVr.ykp~NV;@{Uas">
                                                                                            <field name="TEXT">.Time</field>
                                                                                          </block>
                                                                                        </value>
                                                                                      </block>
                                                                                    </value>
                                                                                    <value name="OBJECT">
                                                                                      <block type="variables_get" id="`-rw74I`kqylUWgeH*+(">
                                                                                        <field name="VAR" id="B$n_|Lt?V?dltG$1=%U!">JSONTable</field>
                                                                                      </block>
                                                                                    </value>
                                                                                  </block>
                                                                                </value>
                                                                                <next>
                                                                                  <block type="comment" id="b?]P+H9BwqfkDRv$/:j(">
                                                                                    <field name="COMMENT">Die - in . umwandeln</field>
                                                                                    <next>
                                                                                      <block type="variables_set" id="k@v15A-cYpf/vbpRa;_z">
                                                                                        <field name="VAR" id="tkH#qcE=H5/_7~OttW5(">tempDatum</field>
                                                                                        <value name="VALUE">
                                                                                          <block type="procedures_callcustomreturn" id="p[kw(;yI)pXBjjzD#D)~">
                                                                                            <mutation name="ReplaceHyphen">
                                                                                              <arg name="x"></arg>
                                                                                            </mutation>
                                                                                            <value name="ARG0">
                                                                                              <block type="variables_get" id="N)h=(1TR`.9#96=m?A0Y">
                                                                                                <field name="VAR" id="tkH#qcE=H5/_7~OttW5(">tempDatum</field>
                                                                                              </block>
                                                                                            </value>
                                                                                          </block>
                                                                                        </value>
                                                                                        <next>
                                                                                          <block type="comment" id="I-6Pjzc2in5fU|/L@xLT">
                                                                                            <field name="COMMENT">In ein Datum-Objekt umwandeln</field>
                                                                                            <next>
                                                                                              <block type="variables_set" id="FsILBORsaLrrazBi1L)J">
                                                                                                <field name="VAR" id="tkH#qcE=H5/_7~OttW5(">tempDatum</field>
                                                                                                <value name="VALUE">
                                                                                                  <block type="convert_from_date" id="4bbw}ZJhpHe}e.*nJ0`M">
                                                                                                    <mutation xmlns="http://www.w3.org/1999/xhtml" format="false" language="false"></mutation>
                                                                                                    <field name="OPTION">object</field>
                                                                                                    <value name="VALUE">
                                                                                                      <block type="variables_get" id="RjC;=Ac;nPHFrHCNt$SG">
                                                                                                        <field name="VAR" id="tkH#qcE=H5/_7~OttW5(">tempDatum</field>
                                                                                                      </block>
                                                                                                    </value>
                                                                                                  </block>
                                                                                                </value>
                                                                                                <next>
                                                                                                  <block type="comment" id="?/.AjS+{19mE_EhC6?{%">
                                                                                                    <field name="COMMENT">Leistungswerte holen</field>
                                                                                                    <next>
                                                                                                      <block type="variables_set" id="Bs]rzL5Ou(TgO8/9n(?c">
                                                                                                        <field name="VAR" id="Qc{Jo]quM_J722)2(/*i">tempLeistung600W</field>
                                                                                                        <value name="VALUE">
                                                                                                          <block type="convert_tonumber" id="tMmS$h!@}Ow%t)=ItX0,">
                                                                                                            <value name="VALUE">
                                                                                                              <block type="procedures_callcustomreturn" id="d8ICH/{6V[$h=0#xy+i^">
                                                                                                                <mutation name="ReplaceDot">
                                                                                                                  <arg name="x"></arg>
                                                                                                                </mutation>
                                                                                                                <value name="ARG0">
                                                                                                                  <block type="get_attr" id="]yk~Vja4R|8vn@1,V]/O">
                                                                                                                    <value name="PATH">
                                                                                                                      <shadow type="text" id="S|8FNN7w6)sBHuhiephR">
                                                                                                                        <field name="TEXT"></field>
                                                                                                                      </shadow>
                                                                                                                      <block type="text_join" id="50|S}#qaQ?XsjIlp$eUH">
                                                                                                                        <mutation items="2"></mutation>
                                                                                                                        <value name="ADD0">
                                                                                                                          <block type="variables_get" id="89zd[}sNs{07o$(Q`/Wv">
                                                                                                                            <field name="VAR" id="[,noZ+!#R([v)Vli[JAC">counter</field>
                                                                                                                          </block>
                                                                                                                        </value>
                                                                                                                        <value name="ADD1">
                                                                                                                          <block type="text" id="Q:K|d_%wW60Lz}|pyP,X">
                                                                                                                            <field name="TEXT">.600W</field>
                                                                                                                          </block>
                                                                                                                        </value>
                                                                                                                      </block>
                                                                                                                    </value>
                                                                                                                    <value name="OBJECT">
                                                                                                                      <block type="variables_get" id="en([*{/z)4M*6nR%,jHM">
                                                                                                                        <field name="VAR" id="B$n_|Lt?V?dltG$1=%U!">JSONTable</field>
                                                                                                                      </block>
                                                                                                                    </value>
                                                                                                                  </block>
                                                                                                                </value>
                                                                                                              </block>
                                                                                                            </value>
                                                                                                          </block>
                                                                                                        </value>
                                                                                                        <next>
                                                                                                          <block type="comment" id=".r}c.6$[JDf=.|#00pZj">
                                                                                                            <field name="COMMENT">Und in die Datenbank schreiben</field>
                                                                                                            <next>
                                                                                                              <block type="procedures_callcustomnoreturn" id="M^AAkuV`a@Z.)aHzF*cS" inline="false">
                                                                                                                <mutation name="InsertToHistory">
                                                                                                                  <arg name="id"></arg>
                                                                                                                  <arg name="ts"></arg>
                                                                                                                  <arg name="value"></arg>
                                                                                                                  <arg name="ack"></arg>
                                                                                                                  <arg name="from"></arg>
                                                                                                                  <arg name="q"></arg>
                                                                                                                </mutation>
                                                                                                                <value name="ARG0">
                                                                                                                  <block type="variables_get" id="5);}w+nl3mmT2P1)PfZv">
                                                                                                                    <field name="VAR" id="!X-*UNPMzEuy~Y#t}/dN">dp_Forecast_600W</field>
                                                                                                                  </block>
                                                                                                                </value>
                                                                                                                <value name="ARG1">
                                                                                                                  <block type="variables_get" id="r(_ZS`H9#9L[XZBs,r2o">
                                                                                                                    <field name="VAR" id="tkH#qcE=H5/_7~OttW5(">tempDatum</field>
                                                                                                                  </block>
                                                                                                                </value>
                                                                                                                <value name="ARG2">
                                                                                                                  <block type="variables_get" id="PVq;+vyh]6](gm[cMdG{">
                                                                                                                    <field name="VAR" id="Qc{Jo]quM_J722)2(/*i">tempLeistung600W</field>
                                                                                                                  </block>
                                                                                                                </value>
                                                                                                                <value name="ARG3">
                                                                                                                  <block type="math_number" id="`F,$`peh0`2grx8z0C{I">
                                                                                                                    <field name="NUM">1</field>
                                                                                                                  </block>
                                                                                                                </value>
                                                                                                                <value name="ARG4">
                                                                                                                  <block type="math_number" id="F,vah,1EQo9C4e6~J:(n">
                                                                                                                    <field name="NUM">1</field>
                                                                                                                  </block>
                                                                                                                </value>
                                                                                                                <value name="ARG5">
                                                                                                                  <block type="math_number" id=";,x`))M,iJvBaeR@3UPZ">
                                                                                                                    <field name="NUM">0</field>
                                                                                                                  </block>
                                                                                                                </value>
                                                                                                              </block>
                                                                                                            </next>
                                                                                                          </block>
                                                                                                        </next>
                                                                                                      </block>
                                                                                                    </next>
                                                                                                  </block>
                                                                                                </next>
                                                                                              </block>
                                                                                            </next>
                                                                                          </block>
                                                                                        </next>
                                                                                      </block>
                                                                                    </next>
                                                                                  </block>
                                                                                </next>
                                                                              </block>
                                                                            </next>
                                                                          </block>
                                                                        </next>
                                                                      </block>
                                                                    </next>
                                                                  </block>
                                                                </statement>
                                                              </block>
                                                            </next>
                                                          </block>
                                                        </next>
                                                      </block>
                                                    </next>
                                                  </block>
                                                </next>
                                              </block>
                                            </next>
                                          </block>
                                        </next>
                                      </block>
                                    </next>
                                  </block>
                                </next>
                              </block>
                            </next>
                          </block>
                        </statement>
                      </block>
                    </next>
                  </block>
                </next>
              </block>
            </next>
          </block>
        </xml>
        

        Die Version nutzt den Datenpunkt pvforecast.0.summary.JSONTable, da werden alle vorhandenen Anlagen in einem Datenpunkt bereit gestellt. Den sollte es auch geben wenn du nur eine Anlage hast. Bei Bedarf könnte man das Skript auf mehrere Anlagen erweitern.

        Zum "Setup":

        Da muss dein Zieldatenpunkt rein, also wohin geschrieben werden soll:
        3d909e16-9830-482e-afc2-36a7501a59b3-image.png

        Und hier musst du die .600W durch den Namen deiner Anlage ändern, also den Namen den du gewählt hast. Vermutlich .sonnenschein
        64a0cf07-7bf8-45fc-b072-49dd549124e6-image.png

        Und - wenn es läuft - könntest du in allen Variablen die eine 600W im Namen haben dieses durch Sonnenschein ersetzen.

        ioBroker@Ubuntu 24.04 LTS (VMware) für: >260 Geräte, 5 Switche, 7 AP, 9 IP-Cam, 1 NAS 42TB, 1 ESXi 15TB, 4 Proxmox 1TB, 1 Hyper-V 48TB, 14 x Echo, 5x FireTV, 5 x Tablett/Handy VIS || >=160 Tasmota/Shelly || >=95 ZigBee || PV 8.1kW / Akku 14kWh || 2x USV 750W kaskadiert || Creality CR-10 SE 3D-Drucker

        sonnenscheinS 2 Antworten Letzte Antwort
        0
        • BananaJoeB BananaJoe

          @sonnenschein sagte in Test PV Forecast Adapter:

          0_userdata.0.PVForecast.Sonnenschein

          Schick mal die Daten von deinem Datenpunkt 0_userdata.0.PVForecast.Sonnenschein, also den Stift am Ende anklicken und den Inhalt des 2. Reiters. Das ganze bitte in Code-Tags.

          Bei mir funktioniert es noch - ich habe aber inzwischen eine verbesserte Version bei der die Daten nicht mehr vor dem Schreiben gelöscht werden müssen (ich kann also auch die Tage und Wochen vorher sehen) und die mehrere Anlagen berücksichtigt.

          Ich meine das sich der Aufbau des JSON geändert hat.
          Mein aktuelles Blockly ist im Moment aber eine 3-Anlagen Version, ich habe mal versucht das wieder zusammenzustreichen auf eine:

          <xml xmlns="https://developers.google.com/blockly/xml">
            <variables>
              <variable id="RtPM2%k{F`%!q{Rk]|a.">id</variable>
              <variable id=";!)T*gf?`G!J~iZ#4,CG">ts</variable>
              <variable id="epT$}5hcYx3b^`jz:~#d">value</variable>
              <variable id="GAGtL,+-C3?x`s;u1nsR">ack</variable>
              <variable id="rHJp6FCFj,U],$ysF[xX">from</variable>
              <variable id="p~yp5Fejp5Y|*K$i[(u%">q</variable>
              <variable id="xr?C%:}F%HR,+baC%W8n">x</variable>
              <variable id="F^DL7ecjBQr1k@hYE+{=">myId</variable>
              <variable id="d/.bOP=7VlC5/[+=8g/u">myVAL</variable>
              <variable id="SL$d6/`ClO6iqfefh5LN">myTS</variable>
              <variable id="eF:WEr]2Ns:niv]0A2?4">myIdDeleteAll</variable>
              <variable id="!X-*UNPMzEuy~Y#t}/dN">dp_Forecast_600W</variable>
              <variable id="B$n_|Lt?V?dltG$1=%U!">JSONTable</variable>
              <variable id="zqSSt1.lPBrP!prtJp:[">JSONListe</variable>
              <variable id="[,noZ+!#R([v)Vli[JAC">counter</variable>
              <variable id="9[xS=sH).DKBS8oGN@cs">i</variable>
              <variable id="tkH#qcE=H5/_7~OttW5(">tempDatum</variable>
              <variable id="Qc{Jo]quM_J722)2(/*i">tempLeistung600W</variable>
            </variables>
            <block type="procedures_defcustomnoreturn" id="ppt|ajrQncolYtqyk1q1" x="288" y="-337">
              <mutation statements="false">
                <arg name="id" varid="RtPM2%k{F`%!q{Rk]|a."></arg>
                <arg name="ts" varid=";!)T*gf?`G!J~iZ#4,CG"></arg>
                <arg name="value" varid="epT$}5hcYx3b^`jz:~#d"></arg>
                <arg name="ack" varid="GAGtL,+-C3?x`s;u1nsR"></arg>
                <arg name="from" varid="rHJp6FCFj,U],$ysF[xX"></arg>
                <arg name="q" varid="p~yp5Fejp5Y|*K$i[(u%"></arg>
              </mutation>
              <field name="NAME">InsertToHistory</field>
              <field name="SCRIPT">bGV0IHN0YXRlbWVudCA9IGANCiAgICBSRVBMQUNFIElOVE8gaW9icm9rZXIudHNfbnVtYmVyIA0KICAgICAgICAoaWQsIHRzLCB2YWwsIGFjaywgX2Zyb20sIHEpIA0KICAgICAgICBWQUxVRVMgKChTRUxFQ1QgaWQgRlJPTSBpb2Jyb2tlci5kYXRhcG9pbnRzIFdIRVJFIG5hbWUgPSAiJHtpZH0iKSwgJHt0c30sICR7dmFsdWV9LCAke2Fja30sICR7ZnJvbX0sICR7cX0pDQpgDQovL2xvZyhzdGF0ZW1lbnQpDQpzZW5kVG8oInNxbC4wIiwgInF1ZXJ5Iiwgc3RhdGVtZW50LCBlID0+IHsNCiAgICBpZiAoZSAmJiBlLmVycm9yKSB7DQogICAgICAgIGxvZyhlLmVycm9yKQ0KICAgIH0gZWxzZSB7DQogICAgICAgIC8vIGxvZygiRG9uZSEiKQ0KICAgIH0NCn0p</field>
              <comment pinned="false" h="80" w="160">Beschreibe diese Funktion …</comment>
            </block>
            <block type="procedures_defcustomreturn" id="YKZ7]x,bTzIFH|2uVS[r" x="288" y="-312">
              <mutation statements="false">
                <arg name="x" varid="xr?C%:}F%HR,+baC%W8n"></arg>
              </mutation>
              <field name="NAME">ReplaceDot</field>
              <field name="SCRIPT">cmV0dXJuIHgucmVwbGFjZSgiLiIsIiIpOw==</field>
              <comment pinned="false" h="80" w="160">Beschreibe diese Funktion …</comment>
            </block>
            <block type="procedures_defcustomreturn" id="f5+e$i!@hdFdP7[JA1^`" x="288" y="-287">
              <mutation statements="false">
                <arg name="x" varid="xr?C%:}F%HR,+baC%W8n"></arg>
              </mutation>
              <field name="NAME">ReplaceHyphen</field>
              <field name="SCRIPT">cmV0dXJuIHgucmVwbGFjZSgiLy0vZyIsIi4iKTs=</field>
              <comment pinned="false" h="80" w="160">Beschreibe diese Funktion …</comment>
            </block>
            <block type="procedures_defcustomnoreturn" id="W?BjTQs!pguWw4HPwT)p" x="288" y="-262">
              <mutation statements="false">
                <arg name="myId" varid="F^DL7ecjBQr1k@hYE+{="></arg>
                <arg name="myVAL" varid="d/.bOP=7VlC5/[+=8g/u"></arg>
                <arg name="myTS" varid="SL$d6/`ClO6iqfefh5LN"></arg>
              </mutation>
              <field name="NAME">SendTo_SQL_storeState</field>
              <field name="SCRIPT">Ly8gVW5kIHdlcnQgZXJzdGVsbGVuIHdpZSBnZXBsYW50DQpzZW5kVG8oInNxbC4wIiwgInN0b3JlU3RhdGUiLCB7DQovL3NlbmRUbygic3FsLjAiLCAidXBkYXRlIiwgew0KICAgIC8vICJpZCI6ICcwX3VzZXJkYXRhLjAuU29sYXJhbmxhZ2UucHZmb3JlY2FzdCcsDQogICAgImlkIjogbXlJZCwNCiAgICAic3RhdGUiOiB7IA0KICAgICAgICAidmFsIjogbXlWQUwsIA0KICAgICAgICAidHMiOiBteVRTLA0KICAgICAgICAiYWNrIjogdHJ1ZQ0KICAgIH0NCn0sIGFzeW5jIGZ1bmN0aW9uIChyZXN1bHQpIHsNCiAgICAvL2NvbnNvbGUubG9nKHJlc3VsdCk7DQp9KTs=</field>
              <comment pinned="false" h="80" w="160">Beschreibe diese Funktion …</comment>
            </block>
            <block type="procedures_defcustomnoreturn" id="m.]d6DR4hIR|rhM`P3KU" x="288" y="-237">
              <mutation statements="false">
                <arg name="myIdDeleteAll" varid="eF:WEr]2Ns:niv]0A2?4"></arg>
              </mutation>
              <field name="NAME">SendTo_SQL_deleteAll</field>
              <field name="SCRIPT">Ly8gQWxsZXMgbMO2c2NoZW4NCnNlbmRUbygic3FsLjAiLCAiZGVsZXRlQWxsIiwgew0KICAgIC8vICJpZCI6ICcwX3VzZXJkYXRhLjAuU29sYXJhbmxhZ2UucHZmb3JlY2FzdCcsDQogICAgImlkIjogbXlJZERlbGV0ZUFsbCwNCn0sIGFzeW5jIGZ1bmN0aW9uIChyZXN1bHQpIHsNCiAgICAgIC8vY29uc29sZS5sb2cocmVzdWx0KTsNCn0pOw0K</field>
              <comment pinned="false" h="80" w="160">Beschreibe diese Funktion …</comment>
            </block>
            <block type="comment" id="emF90N[xA].w:e$0a5`A" x="288" y="-187">
              <field name="COMMENT">Trigger auf den Datenpunkt JSONTable der</field>
              <next>
                <block type="comment" id="v|g5R@PBSlfR{}gqtWR1">
                  <field name="COMMENT">gewünschten Anlage</field>
                  <next>
                    <block type="variables_set" id="IK$-$m]~F![8fw3OLm2r">
                      <field name="VAR" id="!X-*UNPMzEuy~Y#t}/dN">dp_Forecast_600W</field>
                      <value name="VALUE">
                        <block type="text" id="-u)LAh^;Kq(U?ig^gOnf">
                          <field name="TEXT">0_userdata.0.Solaranlage.pvforecasts.Forecast_solar.600W</field>
                        </block>
                      </value>
                      <next>
                        <block type="on_ext" id="2}81gNSPn48mxt-C32N3">
                          <mutation xmlns="http://www.w3.org/1999/xhtml" items="1"></mutation>
                          <field name="CONDITION">any</field>
                          <field name="ACK_CONDITION"></field>
                          <value name="OID0">
                            <shadow type="field_oid" id="$fUC/kgh^7[pBZjds,[N">
                              <field name="oid">default</field>
                            </shadow>
                            <block type="text" id="Q~[~L7`?jff9w0!|{R!~">
                              <field name="TEXT">pvforecast.0.summary.JSONTable</field>
                            </block>
                          </value>
                          <statement name="STATEMENT">
                            <block type="comment" id="xipk,Q4m/$Zbq(9xP]N;">
                              <field name="COMMENT">Den JSON in eine Variable als Objekt holen</field>
                              <next>
                                <block type="variables_set" id="9le8nB_}E+{=^zh:Futa">
                                  <field name="VAR" id="B$n_|Lt?V?dltG$1=%U!">JSONTable</field>
                                  <value name="VALUE">
                                    <block type="convert_json2object" id="C^`)6e!W4atd.!+{(i`D">
                                      <value name="VALUE">
                                        <block type="get_value_var" id="CX?q]Gc8j[Ks2F4.yc=c">
                                          <field name="ATTR">val</field>
                                          <value name="OID">
                                            <shadow type="text" id="Y:eexHcUNi5aP`=sh5_;">
                                              <field name="TEXT"></field>
                                            </shadow>
                                            <block type="text" id="2yV92%k{c@aR$t@FV|VK">
                                              <field name="TEXT">pvforecast.0.summary.JSONTable</field>
                                            </block>
                                          </value>
                                        </block>
                                      </value>
                                    </block>
                                  </value>
                                  <next>
                                    <block type="comment" id="78{/(q^zo:Vm3)}YeMKs">
                                      <field name="COMMENT">Den JSON nochmal als Liste</field>
                                      <next>
                                        <block type="variables_set" id="$C:;|F_ENe?Kc{f9E*tE">
                                          <field name="VAR" id="zqSSt1.lPBrP!prtJp:[">JSONListe</field>
                                          <value name="VALUE">
                                            <block type="lists_split" id=":4[[9BsVwSu-#SFS/qp#">
                                              <mutation mode="SPLIT"></mutation>
                                              <field name="MODE">SPLIT</field>
                                              <value name="INPUT">
                                                <block type="get_value_var" id="k${_LxJlQ~Jc%^8mQ;J3">
                                                  <field name="ATTR">val</field>
                                                  <value name="OID">
                                                    <shadow type="text">
                                                      <field name="TEXT"></field>
                                                    </shadow>
                                                    <block type="text" id="@(LLEO9DcZC_107PY7e;">
                                                      <field name="TEXT">pvforecast.0.summary.JSONTable</field>
                                                    </block>
                                                  </value>
                                                </block>
                                              </value>
                                              <value name="DELIM">
                                                <shadow type="text" id="_=ir)--C~K.5!,@3!%@4">
                                                  <field name="TEXT">},</field>
                                                </shadow>
                                              </value>
                                            </block>
                                          </value>
                                          <next>
                                            <block type="comment" id="_dDWRwqorhv|K4r20+CF">
                                              <field name="COMMENT">Zähler für die einzelnen Werte</field>
                                              <next>
                                                <block type="variables_set" id="w[HNQFZ(pKC;(LonsppG">
                                                  <field name="VAR" id="[,noZ+!#R([v)Vli[JAC">counter</field>
                                                  <value name="VALUE">
                                                    <block type="math_number" id="$YD#)Z6].!0wU8:!IFY-">
                                                      <field name="NUM">-1</field>
                                                    </block>
                                                  </value>
                                                  <next>
                                                    <block type="comment" id="+UxP]UFX*K*Ay8@+.3D(">
                                                      <field name="COMMENT">Kurz warten ...</field>
                                                      <next>
                                                        <block type="timeouts_wait" id="b#[5BCU4#vD.+@RIgxwr">
                                                          <field name="DELAY">2</field>
                                                          <field name="UNIT">sec</field>
                                                          <next>
                                                            <block type="comment" id="?qlG@bV1nj7K%h8?`S-h">
                                                              <field name="COMMENT">Die Werte abarbeiten:</field>
                                                              <next>
                                                                <block type="controls_forEach" id="sZ%NhNSxC10sAg@O]Kz6">
                                                                  <field name="VAR" id="9[xS=sH).DKBS8oGN@cs">i</field>
                                                                  <value name="LIST">
                                                                    <block type="variables_get" id="psB3RQ42dmHy[=aKrs!2">
                                                                      <field name="VAR" id="zqSSt1.lPBrP!prtJp:[">JSONListe</field>
                                                                    </block>
                                                                  </value>
                                                                  <statement name="DO">
                                                                    <block type="comment" id="0i?Xu2@hUv,g4?;i5Fhl">
                                                                      <field name="COMMENT">Wird beim ersten mal 0 sein</field>
                                                                      <next>
                                                                        <block type="math_change" id="liet[5#L@~`I]t{8:/Es">
                                                                          <field name="VAR" id="[,noZ+!#R([v)Vli[JAC">counter</field>
                                                                          <value name="DELTA">
                                                                            <shadow type="math_number" id="986qLvCF[J2VK^no0@Rp">
                                                                              <field name="NUM">1</field>
                                                                            </shadow>
                                                                          </value>
                                                                          <next>
                                                                            <block type="comment" id="}fPI/Q;fVu7V-uYuX2I+">
                                                                              <field name="COMMENT">Wir arbeiten die Liste ab, nutzen aber das Objekt!</field>
                                                                              <next>
                                                                                <block type="variables_set" id="^w);@i_kdtjWWf?c}BcO">
                                                                                  <field name="VAR" id="tkH#qcE=H5/_7~OttW5(">tempDatum</field>
                                                                                  <value name="VALUE">
                                                                                    <block type="get_attr" id="jTRbW_-wI4-}.!,5V(VJ">
                                                                                      <value name="PATH">
                                                                                        <shadow type="text" id="3r`W9/~ToEj{Abx:)agx">
                                                                                          <field name="TEXT"></field>
                                                                                        </shadow>
                                                                                        <block type="text_join" id="xoFmSb~Y+xnD;cvM|g;-">
                                                                                          <mutation items="2"></mutation>
                                                                                          <value name="ADD0">
                                                                                            <block type="variables_get" id="K9;4LQ$1S/`at#YY52.j">
                                                                                              <field name="VAR" id="[,noZ+!#R([v)Vli[JAC">counter</field>
                                                                                            </block>
                                                                                          </value>
                                                                                          <value name="ADD1">
                                                                                            <block type="text" id="Kkt8qVr.ykp~NV;@{Uas">
                                                                                              <field name="TEXT">.Time</field>
                                                                                            </block>
                                                                                          </value>
                                                                                        </block>
                                                                                      </value>
                                                                                      <value name="OBJECT">
                                                                                        <block type="variables_get" id="`-rw74I`kqylUWgeH*+(">
                                                                                          <field name="VAR" id="B$n_|Lt?V?dltG$1=%U!">JSONTable</field>
                                                                                        </block>
                                                                                      </value>
                                                                                    </block>
                                                                                  </value>
                                                                                  <next>
                                                                                    <block type="comment" id="b?]P+H9BwqfkDRv$/:j(">
                                                                                      <field name="COMMENT">Die - in . umwandeln</field>
                                                                                      <next>
                                                                                        <block type="variables_set" id="k@v15A-cYpf/vbpRa;_z">
                                                                                          <field name="VAR" id="tkH#qcE=H5/_7~OttW5(">tempDatum</field>
                                                                                          <value name="VALUE">
                                                                                            <block type="procedures_callcustomreturn" id="p[kw(;yI)pXBjjzD#D)~">
                                                                                              <mutation name="ReplaceHyphen">
                                                                                                <arg name="x"></arg>
                                                                                              </mutation>
                                                                                              <value name="ARG0">
                                                                                                <block type="variables_get" id="N)h=(1TR`.9#96=m?A0Y">
                                                                                                  <field name="VAR" id="tkH#qcE=H5/_7~OttW5(">tempDatum</field>
                                                                                                </block>
                                                                                              </value>
                                                                                            </block>
                                                                                          </value>
                                                                                          <next>
                                                                                            <block type="comment" id="I-6Pjzc2in5fU|/L@xLT">
                                                                                              <field name="COMMENT">In ein Datum-Objekt umwandeln</field>
                                                                                              <next>
                                                                                                <block type="variables_set" id="FsILBORsaLrrazBi1L)J">
                                                                                                  <field name="VAR" id="tkH#qcE=H5/_7~OttW5(">tempDatum</field>
                                                                                                  <value name="VALUE">
                                                                                                    <block type="convert_from_date" id="4bbw}ZJhpHe}e.*nJ0`M">
                                                                                                      <mutation xmlns="http://www.w3.org/1999/xhtml" format="false" language="false"></mutation>
                                                                                                      <field name="OPTION">object</field>
                                                                                                      <value name="VALUE">
                                                                                                        <block type="variables_get" id="RjC;=Ac;nPHFrHCNt$SG">
                                                                                                          <field name="VAR" id="tkH#qcE=H5/_7~OttW5(">tempDatum</field>
                                                                                                        </block>
                                                                                                      </value>
                                                                                                    </block>
                                                                                                  </value>
                                                                                                  <next>
                                                                                                    <block type="comment" id="?/.AjS+{19mE_EhC6?{%">
                                                                                                      <field name="COMMENT">Leistungswerte holen</field>
                                                                                                      <next>
                                                                                                        <block type="variables_set" id="Bs]rzL5Ou(TgO8/9n(?c">
                                                                                                          <field name="VAR" id="Qc{Jo]quM_J722)2(/*i">tempLeistung600W</field>
                                                                                                          <value name="VALUE">
                                                                                                            <block type="convert_tonumber" id="tMmS$h!@}Ow%t)=ItX0,">
                                                                                                              <value name="VALUE">
                                                                                                                <block type="procedures_callcustomreturn" id="d8ICH/{6V[$h=0#xy+i^">
                                                                                                                  <mutation name="ReplaceDot">
                                                                                                                    <arg name="x"></arg>
                                                                                                                  </mutation>
                                                                                                                  <value name="ARG0">
                                                                                                                    <block type="get_attr" id="]yk~Vja4R|8vn@1,V]/O">
                                                                                                                      <value name="PATH">
                                                                                                                        <shadow type="text" id="S|8FNN7w6)sBHuhiephR">
                                                                                                                          <field name="TEXT"></field>
                                                                                                                        </shadow>
                                                                                                                        <block type="text_join" id="50|S}#qaQ?XsjIlp$eUH">
                                                                                                                          <mutation items="2"></mutation>
                                                                                                                          <value name="ADD0">
                                                                                                                            <block type="variables_get" id="89zd[}sNs{07o$(Q`/Wv">
                                                                                                                              <field name="VAR" id="[,noZ+!#R([v)Vli[JAC">counter</field>
                                                                                                                            </block>
                                                                                                                          </value>
                                                                                                                          <value name="ADD1">
                                                                                                                            <block type="text" id="Q:K|d_%wW60Lz}|pyP,X">
                                                                                                                              <field name="TEXT">.600W</field>
                                                                                                                            </block>
                                                                                                                          </value>
                                                                                                                        </block>
                                                                                                                      </value>
                                                                                                                      <value name="OBJECT">
                                                                                                                        <block type="variables_get" id="en([*{/z)4M*6nR%,jHM">
                                                                                                                          <field name="VAR" id="B$n_|Lt?V?dltG$1=%U!">JSONTable</field>
                                                                                                                        </block>
                                                                                                                      </value>
                                                                                                                    </block>
                                                                                                                  </value>
                                                                                                                </block>
                                                                                                              </value>
                                                                                                            </block>
                                                                                                          </value>
                                                                                                          <next>
                                                                                                            <block type="comment" id=".r}c.6$[JDf=.|#00pZj">
                                                                                                              <field name="COMMENT">Und in die Datenbank schreiben</field>
                                                                                                              <next>
                                                                                                                <block type="procedures_callcustomnoreturn" id="M^AAkuV`a@Z.)aHzF*cS" inline="false">
                                                                                                                  <mutation name="InsertToHistory">
                                                                                                                    <arg name="id"></arg>
                                                                                                                    <arg name="ts"></arg>
                                                                                                                    <arg name="value"></arg>
                                                                                                                    <arg name="ack"></arg>
                                                                                                                    <arg name="from"></arg>
                                                                                                                    <arg name="q"></arg>
                                                                                                                  </mutation>
                                                                                                                  <value name="ARG0">
                                                                                                                    <block type="variables_get" id="5);}w+nl3mmT2P1)PfZv">
                                                                                                                      <field name="VAR" id="!X-*UNPMzEuy~Y#t}/dN">dp_Forecast_600W</field>
                                                                                                                    </block>
                                                                                                                  </value>
                                                                                                                  <value name="ARG1">
                                                                                                                    <block type="variables_get" id="r(_ZS`H9#9L[XZBs,r2o">
                                                                                                                      <field name="VAR" id="tkH#qcE=H5/_7~OttW5(">tempDatum</field>
                                                                                                                    </block>
                                                                                                                  </value>
                                                                                                                  <value name="ARG2">
                                                                                                                    <block type="variables_get" id="PVq;+vyh]6](gm[cMdG{">
                                                                                                                      <field name="VAR" id="Qc{Jo]quM_J722)2(/*i">tempLeistung600W</field>
                                                                                                                    </block>
                                                                                                                  </value>
                                                                                                                  <value name="ARG3">
                                                                                                                    <block type="math_number" id="`F,$`peh0`2grx8z0C{I">
                                                                                                                      <field name="NUM">1</field>
                                                                                                                    </block>
                                                                                                                  </value>
                                                                                                                  <value name="ARG4">
                                                                                                                    <block type="math_number" id="F,vah,1EQo9C4e6~J:(n">
                                                                                                                      <field name="NUM">1</field>
                                                                                                                    </block>
                                                                                                                  </value>
                                                                                                                  <value name="ARG5">
                                                                                                                    <block type="math_number" id=";,x`))M,iJvBaeR@3UPZ">
                                                                                                                      <field name="NUM">0</field>
                                                                                                                    </block>
                                                                                                                  </value>
                                                                                                                </block>
                                                                                                              </next>
                                                                                                            </block>
                                                                                                          </next>
                                                                                                        </block>
                                                                                                      </next>
                                                                                                    </block>
                                                                                                  </next>
                                                                                                </block>
                                                                                              </next>
                                                                                            </block>
                                                                                          </next>
                                                                                        </block>
                                                                                      </next>
                                                                                    </block>
                                                                                  </next>
                                                                                </block>
                                                                              </next>
                                                                            </block>
                                                                          </next>
                                                                        </block>
                                                                      </next>
                                                                    </block>
                                                                  </statement>
                                                                </block>
                                                              </next>
                                                            </block>
                                                          </next>
                                                        </block>
                                                      </next>
                                                    </block>
                                                  </next>
                                                </block>
                                              </next>
                                            </block>
                                          </next>
                                        </block>
                                      </next>
                                    </block>
                                  </next>
                                </block>
                              </next>
                            </block>
                          </statement>
                        </block>
                      </next>
                    </block>
                  </next>
                </block>
              </next>
            </block>
          </xml>
          

          Die Version nutzt den Datenpunkt pvforecast.0.summary.JSONTable, da werden alle vorhandenen Anlagen in einem Datenpunkt bereit gestellt. Den sollte es auch geben wenn du nur eine Anlage hast. Bei Bedarf könnte man das Skript auf mehrere Anlagen erweitern.

          Zum "Setup":

          Da muss dein Zieldatenpunkt rein, also wohin geschrieben werden soll:
          3d909e16-9830-482e-afc2-36a7501a59b3-image.png

          Und hier musst du die .600W durch den Namen deiner Anlage ändern, also den Namen den du gewählt hast. Vermutlich .sonnenschein
          64a0cf07-7bf8-45fc-b072-49dd549124e6-image.png

          Und - wenn es läuft - könntest du in allen Variablen die eine 600W im Namen haben dieses durch Sonnenschein ersetzen.

          sonnenscheinS Offline
          sonnenscheinS Offline
          sonnenschein
          schrieb am zuletzt editiert von
          #538

          @bananajoe
          Vielen Dank für die Hilfe, das hat geholfen und jetzt werden wieder Daten in die SQL DB geschrieben. Die Verbesserung mit dem NICHT alles löschen finde ich Super.

          VIS_Prognose.png

          ..muß jetzt erst mal weg, schauen nach her noch mal auf die Daten.

          Danke :+1:

          PlatformBetriebssystem:linux Architektur:arm64 CPUs:4 Geschwindigkeit:1800 MHz Modell:Cortex-A72
          RAM:3.7 GB System-Betriebszeit:00:19:02 Node.js:v20.18.0
          _nodeCurrent:20.18.0
          _npmCurrent:10.8.2
          Operating System: Debian GNU/Linux 12 (bookworm) Kernel: Linux 6.6.57-v8+

          1 Antwort Letzte Antwort
          1
          • BananaJoeB BananaJoe

            @sonnenschein sagte in Test PV Forecast Adapter:

            0_userdata.0.PVForecast.Sonnenschein

            Schick mal die Daten von deinem Datenpunkt 0_userdata.0.PVForecast.Sonnenschein, also den Stift am Ende anklicken und den Inhalt des 2. Reiters. Das ganze bitte in Code-Tags.

            Bei mir funktioniert es noch - ich habe aber inzwischen eine verbesserte Version bei der die Daten nicht mehr vor dem Schreiben gelöscht werden müssen (ich kann also auch die Tage und Wochen vorher sehen) und die mehrere Anlagen berücksichtigt.

            Ich meine das sich der Aufbau des JSON geändert hat.
            Mein aktuelles Blockly ist im Moment aber eine 3-Anlagen Version, ich habe mal versucht das wieder zusammenzustreichen auf eine:

            <xml xmlns="https://developers.google.com/blockly/xml">
              <variables>
                <variable id="RtPM2%k{F`%!q{Rk]|a.">id</variable>
                <variable id=";!)T*gf?`G!J~iZ#4,CG">ts</variable>
                <variable id="epT$}5hcYx3b^`jz:~#d">value</variable>
                <variable id="GAGtL,+-C3?x`s;u1nsR">ack</variable>
                <variable id="rHJp6FCFj,U],$ysF[xX">from</variable>
                <variable id="p~yp5Fejp5Y|*K$i[(u%">q</variable>
                <variable id="xr?C%:}F%HR,+baC%W8n">x</variable>
                <variable id="F^DL7ecjBQr1k@hYE+{=">myId</variable>
                <variable id="d/.bOP=7VlC5/[+=8g/u">myVAL</variable>
                <variable id="SL$d6/`ClO6iqfefh5LN">myTS</variable>
                <variable id="eF:WEr]2Ns:niv]0A2?4">myIdDeleteAll</variable>
                <variable id="!X-*UNPMzEuy~Y#t}/dN">dp_Forecast_600W</variable>
                <variable id="B$n_|Lt?V?dltG$1=%U!">JSONTable</variable>
                <variable id="zqSSt1.lPBrP!prtJp:[">JSONListe</variable>
                <variable id="[,noZ+!#R([v)Vli[JAC">counter</variable>
                <variable id="9[xS=sH).DKBS8oGN@cs">i</variable>
                <variable id="tkH#qcE=H5/_7~OttW5(">tempDatum</variable>
                <variable id="Qc{Jo]quM_J722)2(/*i">tempLeistung600W</variable>
              </variables>
              <block type="procedures_defcustomnoreturn" id="ppt|ajrQncolYtqyk1q1" x="288" y="-337">
                <mutation statements="false">
                  <arg name="id" varid="RtPM2%k{F`%!q{Rk]|a."></arg>
                  <arg name="ts" varid=";!)T*gf?`G!J~iZ#4,CG"></arg>
                  <arg name="value" varid="epT$}5hcYx3b^`jz:~#d"></arg>
                  <arg name="ack" varid="GAGtL,+-C3?x`s;u1nsR"></arg>
                  <arg name="from" varid="rHJp6FCFj,U],$ysF[xX"></arg>
                  <arg name="q" varid="p~yp5Fejp5Y|*K$i[(u%"></arg>
                </mutation>
                <field name="NAME">InsertToHistory</field>
                <field name="SCRIPT">bGV0IHN0YXRlbWVudCA9IGANCiAgICBSRVBMQUNFIElOVE8gaW9icm9rZXIudHNfbnVtYmVyIA0KICAgICAgICAoaWQsIHRzLCB2YWwsIGFjaywgX2Zyb20sIHEpIA0KICAgICAgICBWQUxVRVMgKChTRUxFQ1QgaWQgRlJPTSBpb2Jyb2tlci5kYXRhcG9pbnRzIFdIRVJFIG5hbWUgPSAiJHtpZH0iKSwgJHt0c30sICR7dmFsdWV9LCAke2Fja30sICR7ZnJvbX0sICR7cX0pDQpgDQovL2xvZyhzdGF0ZW1lbnQpDQpzZW5kVG8oInNxbC4wIiwgInF1ZXJ5Iiwgc3RhdGVtZW50LCBlID0+IHsNCiAgICBpZiAoZSAmJiBlLmVycm9yKSB7DQogICAgICAgIGxvZyhlLmVycm9yKQ0KICAgIH0gZWxzZSB7DQogICAgICAgIC8vIGxvZygiRG9uZSEiKQ0KICAgIH0NCn0p</field>
                <comment pinned="false" h="80" w="160">Beschreibe diese Funktion …</comment>
              </block>
              <block type="procedures_defcustomreturn" id="YKZ7]x,bTzIFH|2uVS[r" x="288" y="-312">
                <mutation statements="false">
                  <arg name="x" varid="xr?C%:}F%HR,+baC%W8n"></arg>
                </mutation>
                <field name="NAME">ReplaceDot</field>
                <field name="SCRIPT">cmV0dXJuIHgucmVwbGFjZSgiLiIsIiIpOw==</field>
                <comment pinned="false" h="80" w="160">Beschreibe diese Funktion …</comment>
              </block>
              <block type="procedures_defcustomreturn" id="f5+e$i!@hdFdP7[JA1^`" x="288" y="-287">
                <mutation statements="false">
                  <arg name="x" varid="xr?C%:}F%HR,+baC%W8n"></arg>
                </mutation>
                <field name="NAME">ReplaceHyphen</field>
                <field name="SCRIPT">cmV0dXJuIHgucmVwbGFjZSgiLy0vZyIsIi4iKTs=</field>
                <comment pinned="false" h="80" w="160">Beschreibe diese Funktion …</comment>
              </block>
              <block type="procedures_defcustomnoreturn" id="W?BjTQs!pguWw4HPwT)p" x="288" y="-262">
                <mutation statements="false">
                  <arg name="myId" varid="F^DL7ecjBQr1k@hYE+{="></arg>
                  <arg name="myVAL" varid="d/.bOP=7VlC5/[+=8g/u"></arg>
                  <arg name="myTS" varid="SL$d6/`ClO6iqfefh5LN"></arg>
                </mutation>
                <field name="NAME">SendTo_SQL_storeState</field>
                <field name="SCRIPT">Ly8gVW5kIHdlcnQgZXJzdGVsbGVuIHdpZSBnZXBsYW50DQpzZW5kVG8oInNxbC4wIiwgInN0b3JlU3RhdGUiLCB7DQovL3NlbmRUbygic3FsLjAiLCAidXBkYXRlIiwgew0KICAgIC8vICJpZCI6ICcwX3VzZXJkYXRhLjAuU29sYXJhbmxhZ2UucHZmb3JlY2FzdCcsDQogICAgImlkIjogbXlJZCwNCiAgICAic3RhdGUiOiB7IA0KICAgICAgICAidmFsIjogbXlWQUwsIA0KICAgICAgICAidHMiOiBteVRTLA0KICAgICAgICAiYWNrIjogdHJ1ZQ0KICAgIH0NCn0sIGFzeW5jIGZ1bmN0aW9uIChyZXN1bHQpIHsNCiAgICAvL2NvbnNvbGUubG9nKHJlc3VsdCk7DQp9KTs=</field>
                <comment pinned="false" h="80" w="160">Beschreibe diese Funktion …</comment>
              </block>
              <block type="procedures_defcustomnoreturn" id="m.]d6DR4hIR|rhM`P3KU" x="288" y="-237">
                <mutation statements="false">
                  <arg name="myIdDeleteAll" varid="eF:WEr]2Ns:niv]0A2?4"></arg>
                </mutation>
                <field name="NAME">SendTo_SQL_deleteAll</field>
                <field name="SCRIPT">Ly8gQWxsZXMgbMO2c2NoZW4NCnNlbmRUbygic3FsLjAiLCAiZGVsZXRlQWxsIiwgew0KICAgIC8vICJpZCI6ICcwX3VzZXJkYXRhLjAuU29sYXJhbmxhZ2UucHZmb3JlY2FzdCcsDQogICAgImlkIjogbXlJZERlbGV0ZUFsbCwNCn0sIGFzeW5jIGZ1bmN0aW9uIChyZXN1bHQpIHsNCiAgICAgIC8vY29uc29sZS5sb2cocmVzdWx0KTsNCn0pOw0K</field>
                <comment pinned="false" h="80" w="160">Beschreibe diese Funktion …</comment>
              </block>
              <block type="comment" id="emF90N[xA].w:e$0a5`A" x="288" y="-187">
                <field name="COMMENT">Trigger auf den Datenpunkt JSONTable der</field>
                <next>
                  <block type="comment" id="v|g5R@PBSlfR{}gqtWR1">
                    <field name="COMMENT">gewünschten Anlage</field>
                    <next>
                      <block type="variables_set" id="IK$-$m]~F![8fw3OLm2r">
                        <field name="VAR" id="!X-*UNPMzEuy~Y#t}/dN">dp_Forecast_600W</field>
                        <value name="VALUE">
                          <block type="text" id="-u)LAh^;Kq(U?ig^gOnf">
                            <field name="TEXT">0_userdata.0.Solaranlage.pvforecasts.Forecast_solar.600W</field>
                          </block>
                        </value>
                        <next>
                          <block type="on_ext" id="2}81gNSPn48mxt-C32N3">
                            <mutation xmlns="http://www.w3.org/1999/xhtml" items="1"></mutation>
                            <field name="CONDITION">any</field>
                            <field name="ACK_CONDITION"></field>
                            <value name="OID0">
                              <shadow type="field_oid" id="$fUC/kgh^7[pBZjds,[N">
                                <field name="oid">default</field>
                              </shadow>
                              <block type="text" id="Q~[~L7`?jff9w0!|{R!~">
                                <field name="TEXT">pvforecast.0.summary.JSONTable</field>
                              </block>
                            </value>
                            <statement name="STATEMENT">
                              <block type="comment" id="xipk,Q4m/$Zbq(9xP]N;">
                                <field name="COMMENT">Den JSON in eine Variable als Objekt holen</field>
                                <next>
                                  <block type="variables_set" id="9le8nB_}E+{=^zh:Futa">
                                    <field name="VAR" id="B$n_|Lt?V?dltG$1=%U!">JSONTable</field>
                                    <value name="VALUE">
                                      <block type="convert_json2object" id="C^`)6e!W4atd.!+{(i`D">
                                        <value name="VALUE">
                                          <block type="get_value_var" id="CX?q]Gc8j[Ks2F4.yc=c">
                                            <field name="ATTR">val</field>
                                            <value name="OID">
                                              <shadow type="text" id="Y:eexHcUNi5aP`=sh5_;">
                                                <field name="TEXT"></field>
                                              </shadow>
                                              <block type="text" id="2yV92%k{c@aR$t@FV|VK">
                                                <field name="TEXT">pvforecast.0.summary.JSONTable</field>
                                              </block>
                                            </value>
                                          </block>
                                        </value>
                                      </block>
                                    </value>
                                    <next>
                                      <block type="comment" id="78{/(q^zo:Vm3)}YeMKs">
                                        <field name="COMMENT">Den JSON nochmal als Liste</field>
                                        <next>
                                          <block type="variables_set" id="$C:;|F_ENe?Kc{f9E*tE">
                                            <field name="VAR" id="zqSSt1.lPBrP!prtJp:[">JSONListe</field>
                                            <value name="VALUE">
                                              <block type="lists_split" id=":4[[9BsVwSu-#SFS/qp#">
                                                <mutation mode="SPLIT"></mutation>
                                                <field name="MODE">SPLIT</field>
                                                <value name="INPUT">
                                                  <block type="get_value_var" id="k${_LxJlQ~Jc%^8mQ;J3">
                                                    <field name="ATTR">val</field>
                                                    <value name="OID">
                                                      <shadow type="text">
                                                        <field name="TEXT"></field>
                                                      </shadow>
                                                      <block type="text" id="@(LLEO9DcZC_107PY7e;">
                                                        <field name="TEXT">pvforecast.0.summary.JSONTable</field>
                                                      </block>
                                                    </value>
                                                  </block>
                                                </value>
                                                <value name="DELIM">
                                                  <shadow type="text" id="_=ir)--C~K.5!,@3!%@4">
                                                    <field name="TEXT">},</field>
                                                  </shadow>
                                                </value>
                                              </block>
                                            </value>
                                            <next>
                                              <block type="comment" id="_dDWRwqorhv|K4r20+CF">
                                                <field name="COMMENT">Zähler für die einzelnen Werte</field>
                                                <next>
                                                  <block type="variables_set" id="w[HNQFZ(pKC;(LonsppG">
                                                    <field name="VAR" id="[,noZ+!#R([v)Vli[JAC">counter</field>
                                                    <value name="VALUE">
                                                      <block type="math_number" id="$YD#)Z6].!0wU8:!IFY-">
                                                        <field name="NUM">-1</field>
                                                      </block>
                                                    </value>
                                                    <next>
                                                      <block type="comment" id="+UxP]UFX*K*Ay8@+.3D(">
                                                        <field name="COMMENT">Kurz warten ...</field>
                                                        <next>
                                                          <block type="timeouts_wait" id="b#[5BCU4#vD.+@RIgxwr">
                                                            <field name="DELAY">2</field>
                                                            <field name="UNIT">sec</field>
                                                            <next>
                                                              <block type="comment" id="?qlG@bV1nj7K%h8?`S-h">
                                                                <field name="COMMENT">Die Werte abarbeiten:</field>
                                                                <next>
                                                                  <block type="controls_forEach" id="sZ%NhNSxC10sAg@O]Kz6">
                                                                    <field name="VAR" id="9[xS=sH).DKBS8oGN@cs">i</field>
                                                                    <value name="LIST">
                                                                      <block type="variables_get" id="psB3RQ42dmHy[=aKrs!2">
                                                                        <field name="VAR" id="zqSSt1.lPBrP!prtJp:[">JSONListe</field>
                                                                      </block>
                                                                    </value>
                                                                    <statement name="DO">
                                                                      <block type="comment" id="0i?Xu2@hUv,g4?;i5Fhl">
                                                                        <field name="COMMENT">Wird beim ersten mal 0 sein</field>
                                                                        <next>
                                                                          <block type="math_change" id="liet[5#L@~`I]t{8:/Es">
                                                                            <field name="VAR" id="[,noZ+!#R([v)Vli[JAC">counter</field>
                                                                            <value name="DELTA">
                                                                              <shadow type="math_number" id="986qLvCF[J2VK^no0@Rp">
                                                                                <field name="NUM">1</field>
                                                                              </shadow>
                                                                            </value>
                                                                            <next>
                                                                              <block type="comment" id="}fPI/Q;fVu7V-uYuX2I+">
                                                                                <field name="COMMENT">Wir arbeiten die Liste ab, nutzen aber das Objekt!</field>
                                                                                <next>
                                                                                  <block type="variables_set" id="^w);@i_kdtjWWf?c}BcO">
                                                                                    <field name="VAR" id="tkH#qcE=H5/_7~OttW5(">tempDatum</field>
                                                                                    <value name="VALUE">
                                                                                      <block type="get_attr" id="jTRbW_-wI4-}.!,5V(VJ">
                                                                                        <value name="PATH">
                                                                                          <shadow type="text" id="3r`W9/~ToEj{Abx:)agx">
                                                                                            <field name="TEXT"></field>
                                                                                          </shadow>
                                                                                          <block type="text_join" id="xoFmSb~Y+xnD;cvM|g;-">
                                                                                            <mutation items="2"></mutation>
                                                                                            <value name="ADD0">
                                                                                              <block type="variables_get" id="K9;4LQ$1S/`at#YY52.j">
                                                                                                <field name="VAR" id="[,noZ+!#R([v)Vli[JAC">counter</field>
                                                                                              </block>
                                                                                            </value>
                                                                                            <value name="ADD1">
                                                                                              <block type="text" id="Kkt8qVr.ykp~NV;@{Uas">
                                                                                                <field name="TEXT">.Time</field>
                                                                                              </block>
                                                                                            </value>
                                                                                          </block>
                                                                                        </value>
                                                                                        <value name="OBJECT">
                                                                                          <block type="variables_get" id="`-rw74I`kqylUWgeH*+(">
                                                                                            <field name="VAR" id="B$n_|Lt?V?dltG$1=%U!">JSONTable</field>
                                                                                          </block>
                                                                                        </value>
                                                                                      </block>
                                                                                    </value>
                                                                                    <next>
                                                                                      <block type="comment" id="b?]P+H9BwqfkDRv$/:j(">
                                                                                        <field name="COMMENT">Die - in . umwandeln</field>
                                                                                        <next>
                                                                                          <block type="variables_set" id="k@v15A-cYpf/vbpRa;_z">
                                                                                            <field name="VAR" id="tkH#qcE=H5/_7~OttW5(">tempDatum</field>
                                                                                            <value name="VALUE">
                                                                                              <block type="procedures_callcustomreturn" id="p[kw(;yI)pXBjjzD#D)~">
                                                                                                <mutation name="ReplaceHyphen">
                                                                                                  <arg name="x"></arg>
                                                                                                </mutation>
                                                                                                <value name="ARG0">
                                                                                                  <block type="variables_get" id="N)h=(1TR`.9#96=m?A0Y">
                                                                                                    <field name="VAR" id="tkH#qcE=H5/_7~OttW5(">tempDatum</field>
                                                                                                  </block>
                                                                                                </value>
                                                                                              </block>
                                                                                            </value>
                                                                                            <next>
                                                                                              <block type="comment" id="I-6Pjzc2in5fU|/L@xLT">
                                                                                                <field name="COMMENT">In ein Datum-Objekt umwandeln</field>
                                                                                                <next>
                                                                                                  <block type="variables_set" id="FsILBORsaLrrazBi1L)J">
                                                                                                    <field name="VAR" id="tkH#qcE=H5/_7~OttW5(">tempDatum</field>
                                                                                                    <value name="VALUE">
                                                                                                      <block type="convert_from_date" id="4bbw}ZJhpHe}e.*nJ0`M">
                                                                                                        <mutation xmlns="http://www.w3.org/1999/xhtml" format="false" language="false"></mutation>
                                                                                                        <field name="OPTION">object</field>
                                                                                                        <value name="VALUE">
                                                                                                          <block type="variables_get" id="RjC;=Ac;nPHFrHCNt$SG">
                                                                                                            <field name="VAR" id="tkH#qcE=H5/_7~OttW5(">tempDatum</field>
                                                                                                          </block>
                                                                                                        </value>
                                                                                                      </block>
                                                                                                    </value>
                                                                                                    <next>
                                                                                                      <block type="comment" id="?/.AjS+{19mE_EhC6?{%">
                                                                                                        <field name="COMMENT">Leistungswerte holen</field>
                                                                                                        <next>
                                                                                                          <block type="variables_set" id="Bs]rzL5Ou(TgO8/9n(?c">
                                                                                                            <field name="VAR" id="Qc{Jo]quM_J722)2(/*i">tempLeistung600W</field>
                                                                                                            <value name="VALUE">
                                                                                                              <block type="convert_tonumber" id="tMmS$h!@}Ow%t)=ItX0,">
                                                                                                                <value name="VALUE">
                                                                                                                  <block type="procedures_callcustomreturn" id="d8ICH/{6V[$h=0#xy+i^">
                                                                                                                    <mutation name="ReplaceDot">
                                                                                                                      <arg name="x"></arg>
                                                                                                                    </mutation>
                                                                                                                    <value name="ARG0">
                                                                                                                      <block type="get_attr" id="]yk~Vja4R|8vn@1,V]/O">
                                                                                                                        <value name="PATH">
                                                                                                                          <shadow type="text" id="S|8FNN7w6)sBHuhiephR">
                                                                                                                            <field name="TEXT"></field>
                                                                                                                          </shadow>
                                                                                                                          <block type="text_join" id="50|S}#qaQ?XsjIlp$eUH">
                                                                                                                            <mutation items="2"></mutation>
                                                                                                                            <value name="ADD0">
                                                                                                                              <block type="variables_get" id="89zd[}sNs{07o$(Q`/Wv">
                                                                                                                                <field name="VAR" id="[,noZ+!#R([v)Vli[JAC">counter</field>
                                                                                                                              </block>
                                                                                                                            </value>
                                                                                                                            <value name="ADD1">
                                                                                                                              <block type="text" id="Q:K|d_%wW60Lz}|pyP,X">
                                                                                                                                <field name="TEXT">.600W</field>
                                                                                                                              </block>
                                                                                                                            </value>
                                                                                                                          </block>
                                                                                                                        </value>
                                                                                                                        <value name="OBJECT">
                                                                                                                          <block type="variables_get" id="en([*{/z)4M*6nR%,jHM">
                                                                                                                            <field name="VAR" id="B$n_|Lt?V?dltG$1=%U!">JSONTable</field>
                                                                                                                          </block>
                                                                                                                        </value>
                                                                                                                      </block>
                                                                                                                    </value>
                                                                                                                  </block>
                                                                                                                </value>
                                                                                                              </block>
                                                                                                            </value>
                                                                                                            <next>
                                                                                                              <block type="comment" id=".r}c.6$[JDf=.|#00pZj">
                                                                                                                <field name="COMMENT">Und in die Datenbank schreiben</field>
                                                                                                                <next>
                                                                                                                  <block type="procedures_callcustomnoreturn" id="M^AAkuV`a@Z.)aHzF*cS" inline="false">
                                                                                                                    <mutation name="InsertToHistory">
                                                                                                                      <arg name="id"></arg>
                                                                                                                      <arg name="ts"></arg>
                                                                                                                      <arg name="value"></arg>
                                                                                                                      <arg name="ack"></arg>
                                                                                                                      <arg name="from"></arg>
                                                                                                                      <arg name="q"></arg>
                                                                                                                    </mutation>
                                                                                                                    <value name="ARG0">
                                                                                                                      <block type="variables_get" id="5);}w+nl3mmT2P1)PfZv">
                                                                                                                        <field name="VAR" id="!X-*UNPMzEuy~Y#t}/dN">dp_Forecast_600W</field>
                                                                                                                      </block>
                                                                                                                    </value>
                                                                                                                    <value name="ARG1">
                                                                                                                      <block type="variables_get" id="r(_ZS`H9#9L[XZBs,r2o">
                                                                                                                        <field name="VAR" id="tkH#qcE=H5/_7~OttW5(">tempDatum</field>
                                                                                                                      </block>
                                                                                                                    </value>
                                                                                                                    <value name="ARG2">
                                                                                                                      <block type="variables_get" id="PVq;+vyh]6](gm[cMdG{">
                                                                                                                        <field name="VAR" id="Qc{Jo]quM_J722)2(/*i">tempLeistung600W</field>
                                                                                                                      </block>
                                                                                                                    </value>
                                                                                                                    <value name="ARG3">
                                                                                                                      <block type="math_number" id="`F,$`peh0`2grx8z0C{I">
                                                                                                                        <field name="NUM">1</field>
                                                                                                                      </block>
                                                                                                                    </value>
                                                                                                                    <value name="ARG4">
                                                                                                                      <block type="math_number" id="F,vah,1EQo9C4e6~J:(n">
                                                                                                                        <field name="NUM">1</field>
                                                                                                                      </block>
                                                                                                                    </value>
                                                                                                                    <value name="ARG5">
                                                                                                                      <block type="math_number" id=";,x`))M,iJvBaeR@3UPZ">
                                                                                                                        <field name="NUM">0</field>
                                                                                                                      </block>
                                                                                                                    </value>
                                                                                                                  </block>
                                                                                                                </next>
                                                                                                              </block>
                                                                                                            </next>
                                                                                                          </block>
                                                                                                        </next>
                                                                                                      </block>
                                                                                                    </next>
                                                                                                  </block>
                                                                                                </next>
                                                                                              </block>
                                                                                            </next>
                                                                                          </block>
                                                                                        </next>
                                                                                      </block>
                                                                                    </next>
                                                                                  </block>
                                                                                </next>
                                                                              </block>
                                                                            </next>
                                                                          </block>
                                                                        </next>
                                                                      </block>
                                                                    </statement>
                                                                  </block>
                                                                </next>
                                                              </block>
                                                            </next>
                                                          </block>
                                                        </next>
                                                      </block>
                                                    </next>
                                                  </block>
                                                </next>
                                              </block>
                                            </next>
                                          </block>
                                        </next>
                                      </block>
                                    </next>
                                  </block>
                                </next>
                              </block>
                            </statement>
                          </block>
                        </next>
                      </block>
                    </next>
                  </block>
                </next>
              </block>
            </xml>
            

            Die Version nutzt den Datenpunkt pvforecast.0.summary.JSONTable, da werden alle vorhandenen Anlagen in einem Datenpunkt bereit gestellt. Den sollte es auch geben wenn du nur eine Anlage hast. Bei Bedarf könnte man das Skript auf mehrere Anlagen erweitern.

            Zum "Setup":

            Da muss dein Zieldatenpunkt rein, also wohin geschrieben werden soll:
            3d909e16-9830-482e-afc2-36a7501a59b3-image.png

            Und hier musst du die .600W durch den Namen deiner Anlage ändern, also den Namen den du gewählt hast. Vermutlich .sonnenschein
            64a0cf07-7bf8-45fc-b072-49dd549124e6-image.png

            Und - wenn es läuft - könntest du in allen Variablen die eine 600W im Namen haben dieses durch Sonnenschein ersetzen.

            sonnenscheinS Offline
            sonnenscheinS Offline
            sonnenschein
            schrieb am zuletzt editiert von sonnenschein
            #539

            @bananajoe sagte in Test PV Forecast Adapter:

            @sonnenschein sagte in Test PV Forecast Adapter:

            0_userdata.0.PVForecast.Sonnenschein

            Schick mal die Daten von deinem Datenpunkt 0_userdata.0.PVForecast.Sonnenschein, also den Stift am Ende anklicken und den Inhalt des 2. Reiters. Das ganze bitte in Code-Tags.

            Bei mir funktioniert es noch - ich habe aber inzwischen eine verbesserte Version bei der die Daten nicht mehr vor dem Schreiben gelöscht werden müssen (ich kann also auch die Tage und Wochen vorher sehen) und die mehrere Anlagen berücksichtigt.

            Ich meine das sich der Aufbau des JSON geändert hat.
            Mein aktuelles Blockly ist im Moment aber eine 3-Anlagen Version, ich habe mal versucht das wieder zusammenzustreichen auf eine:

            <xml xmlns="https://developers.google.com/blockly/xml">
              <variables>
                <variable id="RtPM2%k{F`%!q{Rk]|a.">id</variable>
                <variable id=";!)T*gf?`G!J~iZ#4,CG">ts</variable>
                <variable id="epT$}5hcYx3b^`jz:~#d">value</variable>
                <variable id="GAGtL,+-C3?x`s;u1nsR">ack</variable>
                <variable id="rHJp6FCFj,U],$ysF[xX">from</variable>
                <variable id="p~yp5Fejp5Y|*K$i[(u%">q</variable>
                <variable id="xr?C%:}F%HR,+baC%W8n">x</variable>
                <variable id="F^DL7ecjBQr1k@hYE+{=">myId</variable>
                <variable id="d/.bOP=7VlC5/[+=8g/u">myVAL</variable>
                <variable id="SL$d6/`ClO6iqfefh5LN">myTS</variable>
                <variable id="eF:WEr]2Ns:niv]0A2?4">myIdDeleteAll</variable>
                <variable id="!X-*UNPMzEuy~Y#t}/dN">dp_Forecast_600W</variable>
                <variable id="B$n_|Lt?V?dltG$1=%U!">JSONTable</variable>
                <variable id="zqSSt1.lPBrP!prtJp:[">JSONListe</variable>
                <variable id="[,noZ+!#R([v)Vli[JAC">counter</variable>
                <variable id="9[xS=sH).DKBS8oGN@cs">i</variable>
                <variable id="tkH#qcE=H5/_7~OttW5(">tempDatum</variable>
                <variable id="Qc{Jo]quM_J722)2(/*i">tempLeistung600W</variable>
              </variables>
              <block type="procedures_defcustomnoreturn" id="ppt|ajrQncolYtqyk1q1" x="288" y="-337">
                <mutation statements="false">
                  <arg name="id" varid="RtPM2%k{F`%!q{Rk]|a."></arg>
                  <arg name="ts" varid=";!)T*gf?`G!J~iZ#4,CG"></arg>
                  <arg name="value" varid="epT$}5hcYx3b^`jz:~#d"></arg>
                  <arg name="ack" varid="GAGtL,+-C3?x`s;u1nsR"></arg>
                  <arg name="from" varid="rHJp6FCFj,U],$ysF[xX"></arg>
                  <arg name="q" varid="p~yp5Fejp5Y|*K$i[(u%"></arg>
                </mutation>
                <field name="NAME">InsertToHistory</field>
                <field name="SCRIPT">bGV0IHN0YXRlbWVudCA9IGANCiAgICBSRVBMQUNFIElOVE8gaW9icm9rZXIudHNfbnVtYmVyIA0KICAgICAgICAoaWQsIHRzLCB2YWwsIGFjaywgX2Zyb20sIHEpIA0KICAgICAgICBWQUxVRVMgKChTRUxFQ1QgaWQgRlJPTSBpb2Jyb2tlci5kYXRhcG9pbnRzIFdIRVJFIG5hbWUgPSAiJHtpZH0iKSwgJHt0c30sICR7dmFsdWV9LCAke2Fja30sICR7ZnJvbX0sICR7cX0pDQpgDQovL2xvZyhzdGF0ZW1lbnQpDQpzZW5kVG8oInNxbC4wIiwgInF1ZXJ5Iiwgc3RhdGVtZW50LCBlID0+IHsNCiAgICBpZiAoZSAmJiBlLmVycm9yKSB7DQogICAgICAgIGxvZyhlLmVycm9yKQ0KICAgIH0gZWxzZSB7DQogICAgICAgIC8vIGxvZygiRG9uZSEiKQ0KICAgIH0NCn0p</field>
                <comment pinned="false" h="80" w="160">Beschreibe diese Funktion …</comment>
              </block>
              <block type="procedures_defcustomreturn" id="YKZ7]x,bTzIFH|2uVS[r" x="288" y="-312">
                <mutation statements="false">
                  <arg name="x" varid="xr?C%:}F%HR,+baC%W8n"></arg>
                </mutation>
                <field name="NAME">ReplaceDot</field>
                <field name="SCRIPT">cmV0dXJuIHgucmVwbGFjZSgiLiIsIiIpOw==</field>
                <comment pinned="false" h="80" w="160">Beschreibe diese Funktion …</comment>
              </block>
              <block type="procedures_defcustomreturn" id="f5+e$i!@hdFdP7[JA1^`" x="288" y="-287">
                <mutation statements="false">
                  <arg name="x" varid="xr?C%:}F%HR,+baC%W8n"></arg>
                </mutation>
                <field name="NAME">ReplaceHyphen</field>
                <field name="SCRIPT">cmV0dXJuIHgucmVwbGFjZSgiLy0vZyIsIi4iKTs=</field>
                <comment pinned="false" h="80" w="160">Beschreibe diese Funktion …</comment>
              </block>
              <block type="procedures_defcustomnoreturn" id="W?BjTQs!pguWw4HPwT)p" x="288" y="-262">
                <mutation statements="false">
                  <arg name="myId" varid="F^DL7ecjBQr1k@hYE+{="></arg>
                  <arg name="myVAL" varid="d/.bOP=7VlC5/[+=8g/u"></arg>
                  <arg name="myTS" varid="SL$d6/`ClO6iqfefh5LN"></arg>
                </mutation>
                <field name="NAME">SendTo_SQL_storeState</field>
                <field name="SCRIPT">Ly8gVW5kIHdlcnQgZXJzdGVsbGVuIHdpZSBnZXBsYW50DQpzZW5kVG8oInNxbC4wIiwgInN0b3JlU3RhdGUiLCB7DQovL3NlbmRUbygic3FsLjAiLCAidXBkYXRlIiwgew0KICAgIC8vICJpZCI6ICcwX3VzZXJkYXRhLjAuU29sYXJhbmxhZ2UucHZmb3JlY2FzdCcsDQogICAgImlkIjogbXlJZCwNCiAgICAic3RhdGUiOiB7IA0KICAgICAgICAidmFsIjogbXlWQUwsIA0KICAgICAgICAidHMiOiBteVRTLA0KICAgICAgICAiYWNrIjogdHJ1ZQ0KICAgIH0NCn0sIGFzeW5jIGZ1bmN0aW9uIChyZXN1bHQpIHsNCiAgICAvL2NvbnNvbGUubG9nKHJlc3VsdCk7DQp9KTs=</field>
                <comment pinned="false" h="80" w="160">Beschreibe diese Funktion …</comment>
              </block>
              <block type="procedures_defcustomnoreturn" id="m.]d6DR4hIR|rhM`P3KU" x="288" y="-237">
                <mutation statements="false">
                  <arg name="myIdDeleteAll" varid="eF:WEr]2Ns:niv]0A2?4"></arg>
                </mutation>
                <field name="NAME">SendTo_SQL_deleteAll</field>
                <field name="SCRIPT">Ly8gQWxsZXMgbMO2c2NoZW4NCnNlbmRUbygic3FsLjAiLCAiZGVsZXRlQWxsIiwgew0KICAgIC8vICJpZCI6ICcwX3VzZXJkYXRhLjAuU29sYXJhbmxhZ2UucHZmb3JlY2FzdCcsDQogICAgImlkIjogbXlJZERlbGV0ZUFsbCwNCn0sIGFzeW5jIGZ1bmN0aW9uIChyZXN1bHQpIHsNCiAgICAgIC8vY29uc29sZS5sb2cocmVzdWx0KTsNCn0pOw0K</field>
                <comment pinned="false" h="80" w="160">Beschreibe diese Funktion …</comment>
              </block>
              <block type="comment" id="emF90N[xA].w:e$0a5`A" x="288" y="-187">
                <field name="COMMENT">Trigger auf den Datenpunkt JSONTable der</field>
                <next>
                  <block type="comment" id="v|g5R@PBSlfR{}gqtWR1">
                    <field name="COMMENT">gewünschten Anlage</field>
                    <next>
                      <block type="variables_set" id="IK$-$m]~F![8fw3OLm2r">
                        <field name="VAR" id="!X-*UNPMzEuy~Y#t}/dN">dp_Forecast_600W</field>
                        <value name="VALUE">
                          <block type="text" id="-u)LAh^;Kq(U?ig^gOnf">
                            <field name="TEXT">0_userdata.0.Solaranlage.pvforecasts.Forecast_solar.600W</field>
                          </block>
                        </value>
                        <next>
                          <block type="on_ext" id="2}81gNSPn48mxt-C32N3">
                            <mutation xmlns="http://www.w3.org/1999/xhtml" items="1"></mutation>
                            <field name="CONDITION">any</field>
                            <field name="ACK_CONDITION"></field>
                            <value name="OID0">
                              <shadow type="field_oid" id="$fUC/kgh^7[pBZjds,[N">
                                <field name="oid">default</field>
                              </shadow>
                              <block type="text" id="Q~[~L7`?jff9w0!|{R!~">
                                <field name="TEXT">pvforecast.0.summary.JSONTable</field>
                              </block>
                            </value>
                            <statement name="STATEMENT">
                              <block type="comment" id="xipk,Q4m/$Zbq(9xP]N;">
                                <field name="COMMENT">Den JSON in eine Variable als Objekt holen</field>
                                <next>
                                  <block type="variables_set" id="9le8nB_}E+{=^zh:Futa">
                                    <field name="VAR" id="B$n_|Lt?V?dltG$1=%U!">JSONTable</field>
                                    <value name="VALUE">
                                      <block type="convert_json2object" id="C^`)6e!W4atd.!+{(i`D">
                                        <value name="VALUE">
                                          <block type="get_value_var" id="CX?q]Gc8j[Ks2F4.yc=c">
                                            <field name="ATTR">val</field>
                                            <value name="OID">
                                              <shadow type="text" id="Y:eexHcUNi5aP`=sh5_;">
                                                <field name="TEXT"></field>
                                              </shadow>
                                              <block type="text" id="2yV92%k{c@aR$t@FV|VK">
                                                <field name="TEXT">pvforecast.0.summary.JSONTable</field>
                                              </block>
                                            </value>
                                          </block>
                                        </value>
                                      </block>
                                    </value>
                                    <next>
                                      <block type="comment" id="78{/(q^zo:Vm3)}YeMKs">
                                        <field name="COMMENT">Den JSON nochmal als Liste</field>
                                        <next>
                                          <block type="variables_set" id="$C:;|F_ENe?Kc{f9E*tE">
                                            <field name="VAR" id="zqSSt1.lPBrP!prtJp:[">JSONListe</field>
                                            <value name="VALUE">
                                              <block type="lists_split" id=":4[[9BsVwSu-#SFS/qp#">
                                                <mutation mode="SPLIT"></mutation>
                                                <field name="MODE">SPLIT</field>
                                                <value name="INPUT">
                                                  <block type="get_value_var" id="k${_LxJlQ~Jc%^8mQ;J3">
                                                    <field name="ATTR">val</field>
                                                    <value name="OID">
                                                      <shadow type="text">
                                                        <field name="TEXT"></field>
                                                      </shadow>
                                                      <block type="text" id="@(LLEO9DcZC_107PY7e;">
                                                        <field name="TEXT">pvforecast.0.summary.JSONTable</field>
                                                      </block>
                                                    </value>
                                                  </block>
                                                </value>
                                                <value name="DELIM">
                                                  <shadow type="text" id="_=ir)--C~K.5!,@3!%@4">
                                                    <field name="TEXT">},</field>
                                                  </shadow>
                                                </value>
                                              </block>
                                            </value>
                                            <next>
                                              <block type="comment" id="_dDWRwqorhv|K4r20+CF">
                                                <field name="COMMENT">Zähler für die einzelnen Werte</field>
                                                <next>
                                                  <block type="variables_set" id="w[HNQFZ(pKC;(LonsppG">
                                                    <field name="VAR" id="[,noZ+!#R([v)Vli[JAC">counter</field>
                                                    <value name="VALUE">
                                                      <block type="math_number" id="$YD#)Z6].!0wU8:!IFY-">
                                                        <field name="NUM">-1</field>
                                                      </block>
                                                    </value>
                                                    <next>
                                                      <block type="comment" id="+UxP]UFX*K*Ay8@+.3D(">
                                                        <field name="COMMENT">Kurz warten ...</field>
                                                        <next>
                                                          <block type="timeouts_wait" id="b#[5BCU4#vD.+@RIgxwr">
                                                            <field name="DELAY">2</field>
                                                            <field name="UNIT">sec</field>
                                                            <next>
                                                              <block type="comment" id="?qlG@bV1nj7K%h8?`S-h">
                                                                <field name="COMMENT">Die Werte abarbeiten:</field>
                                                                <next>
                                                                  <block type="controls_forEach" id="sZ%NhNSxC10sAg@O]Kz6">
                                                                    <field name="VAR" id="9[xS=sH).DKBS8oGN@cs">i</field>
                                                                    <value name="LIST">
                                                                      <block type="variables_get" id="psB3RQ42dmHy[=aKrs!2">
                                                                        <field name="VAR" id="zqSSt1.lPBrP!prtJp:[">JSONListe</field>
                                                                      </block>
                                                                    </value>
                                                                    <statement name="DO">
                                                                      <block type="comment" id="0i?Xu2@hUv,g4?;i5Fhl">
                                                                        <field name="COMMENT">Wird beim ersten mal 0 sein</field>
                                                                        <next>
                                                                          <block type="math_change" id="liet[5#L@~`I]t{8:/Es">
                                                                            <field name="VAR" id="[,noZ+!#R([v)Vli[JAC">counter</field>
                                                                            <value name="DELTA">
                                                                              <shadow type="math_number" id="986qLvCF[J2VK^no0@Rp">
                                                                                <field name="NUM">1</field>
                                                                              </shadow>
                                                                            </value>
                                                                            <next>
                                                                              <block type="comment" id="}fPI/Q;fVu7V-uYuX2I+">
                                                                                <field name="COMMENT">Wir arbeiten die Liste ab, nutzen aber das Objekt!</field>
                                                                                <next>
                                                                                  <block type="variables_set" id="^w);@i_kdtjWWf?c}BcO">
                                                                                    <field name="VAR" id="tkH#qcE=H5/_7~OttW5(">tempDatum</field>
                                                                                    <value name="VALUE">
                                                                                      <block type="get_attr" id="jTRbW_-wI4-}.!,5V(VJ">
                                                                                        <value name="PATH">
                                                                                          <shadow type="text" id="3r`W9/~ToEj{Abx:)agx">
                                                                                            <field name="TEXT"></field>
                                                                                          </shadow>
                                                                                          <block type="text_join" id="xoFmSb~Y+xnD;cvM|g;-">
                                                                                            <mutation items="2"></mutation>
                                                                                            <value name="ADD0">
                                                                                              <block type="variables_get" id="K9;4LQ$1S/`at#YY52.j">
                                                                                                <field name="VAR" id="[,noZ+!#R([v)Vli[JAC">counter</field>
                                                                                              </block>
                                                                                            </value>
                                                                                            <value name="ADD1">
                                                                                              <block type="text" id="Kkt8qVr.ykp~NV;@{Uas">
                                                                                                <field name="TEXT">.Time</field>
                                                                                              </block>
                                                                                            </value>
                                                                                          </block>
                                                                                        </value>
                                                                                        <value name="OBJECT">
                                                                                          <block type="variables_get" id="`-rw74I`kqylUWgeH*+(">
                                                                                            <field name="VAR" id="B$n_|Lt?V?dltG$1=%U!">JSONTable</field>
                                                                                          </block>
                                                                                        </value>
                                                                                      </block>
                                                                                    </value>
                                                                                    <next>
                                                                                      <block type="comment" id="b?]P+H9BwqfkDRv$/:j(">
                                                                                        <field name="COMMENT">Die - in . umwandeln</field>
                                                                                        <next>
                                                                                          <block type="variables_set" id="k@v15A-cYpf/vbpRa;_z">
                                                                                            <field name="VAR" id="tkH#qcE=H5/_7~OttW5(">tempDatum</field>
                                                                                            <value name="VALUE">
                                                                                              <block type="procedures_callcustomreturn" id="p[kw(;yI)pXBjjzD#D)~">
                                                                                                <mutation name="ReplaceHyphen">
                                                                                                  <arg name="x"></arg>
                                                                                                </mutation>
                                                                                                <value name="ARG0">
                                                                                                  <block type="variables_get" id="N)h=(1TR`.9#96=m?A0Y">
                                                                                                    <field name="VAR" id="tkH#qcE=H5/_7~OttW5(">tempDatum</field>
                                                                                                  </block>
                                                                                                </value>
                                                                                              </block>
                                                                                            </value>
                                                                                            <next>
                                                                                              <block type="comment" id="I-6Pjzc2in5fU|/L@xLT">
                                                                                                <field name="COMMENT">In ein Datum-Objekt umwandeln</field>
                                                                                                <next>
                                                                                                  <block type="variables_set" id="FsILBORsaLrrazBi1L)J">
                                                                                                    <field name="VAR" id="tkH#qcE=H5/_7~OttW5(">tempDatum</field>
                                                                                                    <value name="VALUE">
                                                                                                      <block type="convert_from_date" id="4bbw}ZJhpHe}e.*nJ0`M">
                                                                                                        <mutation xmlns="http://www.w3.org/1999/xhtml" format="false" language="false"></mutation>
                                                                                                        <field name="OPTION">object</field>
                                                                                                        <value name="VALUE">
                                                                                                          <block type="variables_get" id="RjC;=Ac;nPHFrHCNt$SG">
                                                                                                            <field name="VAR" id="tkH#qcE=H5/_7~OttW5(">tempDatum</field>
                                                                                                          </block>
                                                                                                        </value>
                                                                                                      </block>
                                                                                                    </value>
                                                                                                    <next>
                                                                                                      <block type="comment" id="?/.AjS+{19mE_EhC6?{%">
                                                                                                        <field name="COMMENT">Leistungswerte holen</field>
                                                                                                        <next>
                                                                                                          <block type="variables_set" id="Bs]rzL5Ou(TgO8/9n(?c">
                                                                                                            <field name="VAR" id="Qc{Jo]quM_J722)2(/*i">tempLeistung600W</field>
                                                                                                            <value name="VALUE">
                                                                                                              <block type="convert_tonumber" id="tMmS$h!@}Ow%t)=ItX0,">
                                                                                                                <value name="VALUE">
                                                                                                                  <block type="procedures_callcustomreturn" id="d8ICH/{6V[$h=0#xy+i^">
                                                                                                                    <mutation name="ReplaceDot">
                                                                                                                      <arg name="x"></arg>
                                                                                                                    </mutation>
                                                                                                                    <value name="ARG0">
                                                                                                                      <block type="get_attr" id="]yk~Vja4R|8vn@1,V]/O">
                                                                                                                        <value name="PATH">
                                                                                                                          <shadow type="text" id="S|8FNN7w6)sBHuhiephR">
                                                                                                                            <field name="TEXT"></field>
                                                                                                                          </shadow>
                                                                                                                          <block type="text_join" id="50|S}#qaQ?XsjIlp$eUH">
                                                                                                                            <mutation items="2"></mutation>
                                                                                                                            <value name="ADD0">
                                                                                                                              <block type="variables_get" id="89zd[}sNs{07o$(Q`/Wv">
                                                                                                                                <field name="VAR" id="[,noZ+!#R([v)Vli[JAC">counter</field>
                                                                                                                              </block>
                                                                                                                            </value>
                                                                                                                            <value name="ADD1">
                                                                                                                              <block type="text" id="Q:K|d_%wW60Lz}|pyP,X">
                                                                                                                                <field name="TEXT">.600W</field>
                                                                                                                              </block>
                                                                                                                            </value>
                                                                                                                          </block>
                                                                                                                        </value>
                                                                                                                        <value name="OBJECT">
                                                                                                                          <block type="variables_get" id="en([*{/z)4M*6nR%,jHM">
                                                                                                                            <field name="VAR" id="B$n_|Lt?V?dltG$1=%U!">JSONTable</field>
                                                                                                                          </block>
                                                                                                                        </value>
                                                                                                                      </block>
                                                                                                                    </value>
                                                                                                                  </block>
                                                                                                                </value>
                                                                                                              </block>
                                                                                                            </value>
                                                                                                            <next>
                                                                                                              <block type="comment" id=".r}c.6$[JDf=.|#00pZj">
                                                                                                                <field name="COMMENT">Und in die Datenbank schreiben</field>
                                                                                                                <next>
                                                                                                                  <block type="procedures_callcustomnoreturn" id="M^AAkuV`a@Z.)aHzF*cS" inline="false">
                                                                                                                    <mutation name="InsertToHistory">
                                                                                                                      <arg name="id"></arg>
                                                                                                                      <arg name="ts"></arg>
                                                                                                                      <arg name="value"></arg>
                                                                                                                      <arg name="ack"></arg>
                                                                                                                      <arg name="from"></arg>
                                                                                                                      <arg name="q"></arg>
                                                                                                                    </mutation>
                                                                                                                    <value name="ARG0">
                                                                                                                      <block type="variables_get" id="5);}w+nl3mmT2P1)PfZv">
                                                                                                                        <field name="VAR" id="!X-*UNPMzEuy~Y#t}/dN">dp_Forecast_600W</field>
                                                                                                                      </block>
                                                                                                                    </value>
                                                                                                                    <value name="ARG1">
                                                                                                                      <block type="variables_get" id="r(_ZS`H9#9L[XZBs,r2o">
                                                                                                                        <field name="VAR" id="tkH#qcE=H5/_7~OttW5(">tempDatum</field>
                                                                                                                      </block>
                                                                                                                    </value>
                                                                                                                    <value name="ARG2">
                                                                                                                      <block type="variables_get" id="PVq;+vyh]6](gm[cMdG{">
                                                                                                                        <field name="VAR" id="Qc{Jo]quM_J722)2(/*i">tempLeistung600W</field>
                                                                                                                      </block>
                                                                                                                    </value>
                                                                                                                    <value name="ARG3">
                                                                                                                      <block type="math_number" id="`F,$`peh0`2grx8z0C{I">
                                                                                                                        <field name="NUM">1</field>
                                                                                                                      </block>
                                                                                                                    </value>
                                                                                                                    <value name="ARG4">
                                                                                                                      <block type="math_number" id="F,vah,1EQo9C4e6~J:(n">
                                                                                                                        <field name="NUM">1</field>
                                                                                                                      </block>
                                                                                                                    </value>
                                                                                                                    <value name="ARG5">
                                                                                                                      <block type="math_number" id=";,x`))M,iJvBaeR@3UPZ">
                                                                                                                        <field name="NUM">0</field>
                                                                                                                      </block>
                                                                                                                    </value>
                                                                                                                  </block>
                                                                                                                </next>
                                                                                                              </block>
                                                                                                            </next>
                                                                                                          </block>
                                                                                                        </next>
                                                                                                      </block>
                                                                                                    </next>
                                                                                                  </block>
                                                                                                </next>
                                                                                              </block>
                                                                                            </next>
                                                                                          </block>
                                                                                        </next>
                                                                                      </block>
                                                                                    </next>
                                                                                  </block>
                                                                                </next>
                                                                              </block>
                                                                            </next>
                                                                          </block>
                                                                        </next>
                                                                      </block>
                                                                    </statement>
                                                                  </block>
                                                                </next>
                                                              </block>
                                                            </next>
                                                          </block>
                                                        </next>
                                                      </block>
                                                    </next>
                                                  </block>
                                                </next>
                                              </block>
                                            </next>
                                          </block>
                                        </next>
                                      </block>
                                    </next>
                                  </block>
                                </next>
                              </block>
                            </statement>
                          </block>
                        </next>
                      </block>
                    </next>
                  </block>
                </next>
              </block>
            </xml>
            

            Die Version nutzt den Datenpunkt pvforecast.0.summary.JSONTable, da werden alle vorhandenen Anlagen in einem Datenpunkt bereit gestellt. Den sollte es auch geben wenn du nur eine Anlage hast. Bei Bedarf könnte man das Skript auf mehrere Anlagen erweitern.

            Zum "Setup":

            Da muss dein Zieldatenpunkt rein, also wohin geschrieben werden soll:
            3d909e16-9830-482e-afc2-36a7501a59b3-image.png

            Und hier musst du die .600W durch den Namen deiner Anlage ändern, also den Namen den du gewählt hast. Vermutlich .sonnenschein
            64a0cf07-7bf8-45fc-b072-49dd549124e6-image.png

            Und - wenn es läuft - könntest du in allen Variablen die eine 600W im Namen haben dieses durch Sonnenschein ersetzen.

            Hallo noch mal:

            Ich habe jetzt noch mal als Datenquelle auf die json Tabelle meiner Anlage im Blockly geändert, dann habe ich sofort wieder den Fehler mit dem Hinweis auf Replace Methode.

            Hier der Inhalt aus json Tabelle Summery

            [{"Time":"2022-10-30 08:07:00","Total":"0","Sonnenschein":"0"},{"Time":"2022-10-30 09:00:00","Total":"2.747","Sonnenschein":"2.747"},{"Time":"2022-10-30 10:00:00","Total":"4.139","Sonnenschein":"4.139"},{"Time":"2022-10-30 11:00:00","Total":"4.964","Sonnenschein":"4.964"},{"Time":"2022-10-30 12:00:00","Total":"5.168","Sonnenschein":"5.168"},{"Time":"2022-10-30 13:00:00","Total":"4.757","Sonnenschein":"4.757"},{"Time":"2022-10-30 14:00:00","Total":"4.102","Sonnenschein":"4.102"},{"Time":"2022-10-30 15:00:00","Total":"3.034","Sonnenschein":"3.034"},{"Time":"2022-10-30 16:00:00","Total":"1.458","Sonnenschein":"1.458"},{"Time":"2022-10-30 17:00:00","Total":"465","Sonnenschein":"465"},{"Time":"2022-10-30 17:54:00","Total":"0","Sonnenschein":"0"},{"Time":"2022-10-31 07:09:00","Total":"0","Sonnenschein":"0"},{"Time":"2022-10-31 08:00:00","Total":"181","Sonnenschein":"181"},{"Time":"2022-10-31 09:00:00","Total":"700","Sonnenschein":"700"},{"Time":"2022-10-31 10:00:00","Total":"1.321","Sonnenschein":"1.321"},{"Time":"2022-10-31 11:00:00","Total":"1.399","Sonnenschein":"1.399"},{"Time":"2022-10-31 12:00:00","Total":"1.269","Sonnenschein":"1.269"},{"Time":"2022-10-31 13:00:00","Total":"925","Sonnenschein":"925"},{"Time":"2022-10-31 14:00:00","Total":"508","Sonnenschein":"508"},{"Time":"2022-10-31 15:00:00","Total":"186","Sonnenschein":"186"},{"Time":"2022-10-31 16:00:00","Total":"35","Sonnenschein":"35"},{"Time":"2022-10-31 16:52:00","Total":"0","Sonnenschein":"0"}]
            

            und hier der Inhalt json Tabelle plant

            [{"Time":"2022-10-30 08:07:00","Power":"0"},{"Time":"2022-10-30 09:00:00","Power":"2.747"},{"Time":"2022-10-30 10:00:00","Power":"4.139"},{"Time":"2022-10-30 11:00:00","Power":"4.964"},{"Time":"2022-10-30 12:00:00","Power":"5.168"},{"Time":"2022-10-30 13:00:00","Power":"4.757"},{"Time":"2022-10-30 14:00:00","Power":"4.102"},{"Time":"2022-10-30 15:00:00","Power":"3.034"},{"Time":"2022-10-30 16:00:00","Power":"1.458"},{"Time":"2022-10-30 17:00:00","Power":"465"},{"Time":"2022-10-30 17:54:00","Power":"0"},{"Time":"2022-10-31 07:09:00","Power":"0"},{"Time":"2022-10-31 08:00:00","Power":"181"},{"Time":"2022-10-31 09:00:00","Power":"700"},{"Time":"2022-10-31 10:00:00","Power":"1.321"},{"Time":"2022-10-31 11:00:00","Power":"1.399"},{"Time":"2022-10-31 12:00:00","Power":"1.269"},{"Time":"2022-10-31 13:00:00","Power":"925"},{"Time":"2022-10-31 14:00:00","Power":"508"},{"Time":"2022-10-31 15:00:00","Power":"186"},{"Time":"2022-10-31 16:00:00","Power":"35"},{"Time":"2022-10-31 16:52:00","Power":"0"}]
            

            Klar die Inhalte sind unterschiedlich, aber ich sehe kein Unterschied im json Aufbau warum die replace Methode nicht funktioniert!?

            Der Pfad zu meinem Anlagen Objekt: pvforecast.1.plants.sonnenschein.JSONTable
            Der Pfad zum Summery Objekt: pvforecast.1.summary.JSONTable

            PlatformBetriebssystem:linux Architektur:arm64 CPUs:4 Geschwindigkeit:1800 MHz Modell:Cortex-A72
            RAM:3.7 GB System-Betriebszeit:00:19:02 Node.js:v20.18.0
            _nodeCurrent:20.18.0
            _npmCurrent:10.8.2
            Operating System: Debian GNU/Linux 12 (bookworm) Kernel: Linux 6.6.57-v8+

            BananaJoeB 1 Antwort Letzte Antwort
            0
            • sonnenscheinS sonnenschein

              @bananajoe sagte in Test PV Forecast Adapter:

              @sonnenschein sagte in Test PV Forecast Adapter:

              0_userdata.0.PVForecast.Sonnenschein

              Schick mal die Daten von deinem Datenpunkt 0_userdata.0.PVForecast.Sonnenschein, also den Stift am Ende anklicken und den Inhalt des 2. Reiters. Das ganze bitte in Code-Tags.

              Bei mir funktioniert es noch - ich habe aber inzwischen eine verbesserte Version bei der die Daten nicht mehr vor dem Schreiben gelöscht werden müssen (ich kann also auch die Tage und Wochen vorher sehen) und die mehrere Anlagen berücksichtigt.

              Ich meine das sich der Aufbau des JSON geändert hat.
              Mein aktuelles Blockly ist im Moment aber eine 3-Anlagen Version, ich habe mal versucht das wieder zusammenzustreichen auf eine:

              <xml xmlns="https://developers.google.com/blockly/xml">
                <variables>
                  <variable id="RtPM2%k{F`%!q{Rk]|a.">id</variable>
                  <variable id=";!)T*gf?`G!J~iZ#4,CG">ts</variable>
                  <variable id="epT$}5hcYx3b^`jz:~#d">value</variable>
                  <variable id="GAGtL,+-C3?x`s;u1nsR">ack</variable>
                  <variable id="rHJp6FCFj,U],$ysF[xX">from</variable>
                  <variable id="p~yp5Fejp5Y|*K$i[(u%">q</variable>
                  <variable id="xr?C%:}F%HR,+baC%W8n">x</variable>
                  <variable id="F^DL7ecjBQr1k@hYE+{=">myId</variable>
                  <variable id="d/.bOP=7VlC5/[+=8g/u">myVAL</variable>
                  <variable id="SL$d6/`ClO6iqfefh5LN">myTS</variable>
                  <variable id="eF:WEr]2Ns:niv]0A2?4">myIdDeleteAll</variable>
                  <variable id="!X-*UNPMzEuy~Y#t}/dN">dp_Forecast_600W</variable>
                  <variable id="B$n_|Lt?V?dltG$1=%U!">JSONTable</variable>
                  <variable id="zqSSt1.lPBrP!prtJp:[">JSONListe</variable>
                  <variable id="[,noZ+!#R([v)Vli[JAC">counter</variable>
                  <variable id="9[xS=sH).DKBS8oGN@cs">i</variable>
                  <variable id="tkH#qcE=H5/_7~OttW5(">tempDatum</variable>
                  <variable id="Qc{Jo]quM_J722)2(/*i">tempLeistung600W</variable>
                </variables>
                <block type="procedures_defcustomnoreturn" id="ppt|ajrQncolYtqyk1q1" x="288" y="-337">
                  <mutation statements="false">
                    <arg name="id" varid="RtPM2%k{F`%!q{Rk]|a."></arg>
                    <arg name="ts" varid=";!)T*gf?`G!J~iZ#4,CG"></arg>
                    <arg name="value" varid="epT$}5hcYx3b^`jz:~#d"></arg>
                    <arg name="ack" varid="GAGtL,+-C3?x`s;u1nsR"></arg>
                    <arg name="from" varid="rHJp6FCFj,U],$ysF[xX"></arg>
                    <arg name="q" varid="p~yp5Fejp5Y|*K$i[(u%"></arg>
                  </mutation>
                  <field name="NAME">InsertToHistory</field>
                  <field name="SCRIPT">bGV0IHN0YXRlbWVudCA9IGANCiAgICBSRVBMQUNFIElOVE8gaW9icm9rZXIudHNfbnVtYmVyIA0KICAgICAgICAoaWQsIHRzLCB2YWwsIGFjaywgX2Zyb20sIHEpIA0KICAgICAgICBWQUxVRVMgKChTRUxFQ1QgaWQgRlJPTSBpb2Jyb2tlci5kYXRhcG9pbnRzIFdIRVJFIG5hbWUgPSAiJHtpZH0iKSwgJHt0c30sICR7dmFsdWV9LCAke2Fja30sICR7ZnJvbX0sICR7cX0pDQpgDQovL2xvZyhzdGF0ZW1lbnQpDQpzZW5kVG8oInNxbC4wIiwgInF1ZXJ5Iiwgc3RhdGVtZW50LCBlID0+IHsNCiAgICBpZiAoZSAmJiBlLmVycm9yKSB7DQogICAgICAgIGxvZyhlLmVycm9yKQ0KICAgIH0gZWxzZSB7DQogICAgICAgIC8vIGxvZygiRG9uZSEiKQ0KICAgIH0NCn0p</field>
                  <comment pinned="false" h="80" w="160">Beschreibe diese Funktion …</comment>
                </block>
                <block type="procedures_defcustomreturn" id="YKZ7]x,bTzIFH|2uVS[r" x="288" y="-312">
                  <mutation statements="false">
                    <arg name="x" varid="xr?C%:}F%HR,+baC%W8n"></arg>
                  </mutation>
                  <field name="NAME">ReplaceDot</field>
                  <field name="SCRIPT">cmV0dXJuIHgucmVwbGFjZSgiLiIsIiIpOw==</field>
                  <comment pinned="false" h="80" w="160">Beschreibe diese Funktion …</comment>
                </block>
                <block type="procedures_defcustomreturn" id="f5+e$i!@hdFdP7[JA1^`" x="288" y="-287">
                  <mutation statements="false">
                    <arg name="x" varid="xr?C%:}F%HR,+baC%W8n"></arg>
                  </mutation>
                  <field name="NAME">ReplaceHyphen</field>
                  <field name="SCRIPT">cmV0dXJuIHgucmVwbGFjZSgiLy0vZyIsIi4iKTs=</field>
                  <comment pinned="false" h="80" w="160">Beschreibe diese Funktion …</comment>
                </block>
                <block type="procedures_defcustomnoreturn" id="W?BjTQs!pguWw4HPwT)p" x="288" y="-262">
                  <mutation statements="false">
                    <arg name="myId" varid="F^DL7ecjBQr1k@hYE+{="></arg>
                    <arg name="myVAL" varid="d/.bOP=7VlC5/[+=8g/u"></arg>
                    <arg name="myTS" varid="SL$d6/`ClO6iqfefh5LN"></arg>
                  </mutation>
                  <field name="NAME">SendTo_SQL_storeState</field>
                  <field name="SCRIPT">Ly8gVW5kIHdlcnQgZXJzdGVsbGVuIHdpZSBnZXBsYW50DQpzZW5kVG8oInNxbC4wIiwgInN0b3JlU3RhdGUiLCB7DQovL3NlbmRUbygic3FsLjAiLCAidXBkYXRlIiwgew0KICAgIC8vICJpZCI6ICcwX3VzZXJkYXRhLjAuU29sYXJhbmxhZ2UucHZmb3JlY2FzdCcsDQogICAgImlkIjogbXlJZCwNCiAgICAic3RhdGUiOiB7IA0KICAgICAgICAidmFsIjogbXlWQUwsIA0KICAgICAgICAidHMiOiBteVRTLA0KICAgICAgICAiYWNrIjogdHJ1ZQ0KICAgIH0NCn0sIGFzeW5jIGZ1bmN0aW9uIChyZXN1bHQpIHsNCiAgICAvL2NvbnNvbGUubG9nKHJlc3VsdCk7DQp9KTs=</field>
                  <comment pinned="false" h="80" w="160">Beschreibe diese Funktion …</comment>
                </block>
                <block type="procedures_defcustomnoreturn" id="m.]d6DR4hIR|rhM`P3KU" x="288" y="-237">
                  <mutation statements="false">
                    <arg name="myIdDeleteAll" varid="eF:WEr]2Ns:niv]0A2?4"></arg>
                  </mutation>
                  <field name="NAME">SendTo_SQL_deleteAll</field>
                  <field name="SCRIPT">Ly8gQWxsZXMgbMO2c2NoZW4NCnNlbmRUbygic3FsLjAiLCAiZGVsZXRlQWxsIiwgew0KICAgIC8vICJpZCI6ICcwX3VzZXJkYXRhLjAuU29sYXJhbmxhZ2UucHZmb3JlY2FzdCcsDQogICAgImlkIjogbXlJZERlbGV0ZUFsbCwNCn0sIGFzeW5jIGZ1bmN0aW9uIChyZXN1bHQpIHsNCiAgICAgIC8vY29uc29sZS5sb2cocmVzdWx0KTsNCn0pOw0K</field>
                  <comment pinned="false" h="80" w="160">Beschreibe diese Funktion …</comment>
                </block>
                <block type="comment" id="emF90N[xA].w:e$0a5`A" x="288" y="-187">
                  <field name="COMMENT">Trigger auf den Datenpunkt JSONTable der</field>
                  <next>
                    <block type="comment" id="v|g5R@PBSlfR{}gqtWR1">
                      <field name="COMMENT">gewünschten Anlage</field>
                      <next>
                        <block type="variables_set" id="IK$-$m]~F![8fw3OLm2r">
                          <field name="VAR" id="!X-*UNPMzEuy~Y#t}/dN">dp_Forecast_600W</field>
                          <value name="VALUE">
                            <block type="text" id="-u)LAh^;Kq(U?ig^gOnf">
                              <field name="TEXT">0_userdata.0.Solaranlage.pvforecasts.Forecast_solar.600W</field>
                            </block>
                          </value>
                          <next>
                            <block type="on_ext" id="2}81gNSPn48mxt-C32N3">
                              <mutation xmlns="http://www.w3.org/1999/xhtml" items="1"></mutation>
                              <field name="CONDITION">any</field>
                              <field name="ACK_CONDITION"></field>
                              <value name="OID0">
                                <shadow type="field_oid" id="$fUC/kgh^7[pBZjds,[N">
                                  <field name="oid">default</field>
                                </shadow>
                                <block type="text" id="Q~[~L7`?jff9w0!|{R!~">
                                  <field name="TEXT">pvforecast.0.summary.JSONTable</field>
                                </block>
                              </value>
                              <statement name="STATEMENT">
                                <block type="comment" id="xipk,Q4m/$Zbq(9xP]N;">
                                  <field name="COMMENT">Den JSON in eine Variable als Objekt holen</field>
                                  <next>
                                    <block type="variables_set" id="9le8nB_}E+{=^zh:Futa">
                                      <field name="VAR" id="B$n_|Lt?V?dltG$1=%U!">JSONTable</field>
                                      <value name="VALUE">
                                        <block type="convert_json2object" id="C^`)6e!W4atd.!+{(i`D">
                                          <value name="VALUE">
                                            <block type="get_value_var" id="CX?q]Gc8j[Ks2F4.yc=c">
                                              <field name="ATTR">val</field>
                                              <value name="OID">
                                                <shadow type="text" id="Y:eexHcUNi5aP`=sh5_;">
                                                  <field name="TEXT"></field>
                                                </shadow>
                                                <block type="text" id="2yV92%k{c@aR$t@FV|VK">
                                                  <field name="TEXT">pvforecast.0.summary.JSONTable</field>
                                                </block>
                                              </value>
                                            </block>
                                          </value>
                                        </block>
                                      </value>
                                      <next>
                                        <block type="comment" id="78{/(q^zo:Vm3)}YeMKs">
                                          <field name="COMMENT">Den JSON nochmal als Liste</field>
                                          <next>
                                            <block type="variables_set" id="$C:;|F_ENe?Kc{f9E*tE">
                                              <field name="VAR" id="zqSSt1.lPBrP!prtJp:[">JSONListe</field>
                                              <value name="VALUE">
                                                <block type="lists_split" id=":4[[9BsVwSu-#SFS/qp#">
                                                  <mutation mode="SPLIT"></mutation>
                                                  <field name="MODE">SPLIT</field>
                                                  <value name="INPUT">
                                                    <block type="get_value_var" id="k${_LxJlQ~Jc%^8mQ;J3">
                                                      <field name="ATTR">val</field>
                                                      <value name="OID">
                                                        <shadow type="text">
                                                          <field name="TEXT"></field>
                                                        </shadow>
                                                        <block type="text" id="@(LLEO9DcZC_107PY7e;">
                                                          <field name="TEXT">pvforecast.0.summary.JSONTable</field>
                                                        </block>
                                                      </value>
                                                    </block>
                                                  </value>
                                                  <value name="DELIM">
                                                    <shadow type="text" id="_=ir)--C~K.5!,@3!%@4">
                                                      <field name="TEXT">},</field>
                                                    </shadow>
                                                  </value>
                                                </block>
                                              </value>
                                              <next>
                                                <block type="comment" id="_dDWRwqorhv|K4r20+CF">
                                                  <field name="COMMENT">Zähler für die einzelnen Werte</field>
                                                  <next>
                                                    <block type="variables_set" id="w[HNQFZ(pKC;(LonsppG">
                                                      <field name="VAR" id="[,noZ+!#R([v)Vli[JAC">counter</field>
                                                      <value name="VALUE">
                                                        <block type="math_number" id="$YD#)Z6].!0wU8:!IFY-">
                                                          <field name="NUM">-1</field>
                                                        </block>
                                                      </value>
                                                      <next>
                                                        <block type="comment" id="+UxP]UFX*K*Ay8@+.3D(">
                                                          <field name="COMMENT">Kurz warten ...</field>
                                                          <next>
                                                            <block type="timeouts_wait" id="b#[5BCU4#vD.+@RIgxwr">
                                                              <field name="DELAY">2</field>
                                                              <field name="UNIT">sec</field>
                                                              <next>
                                                                <block type="comment" id="?qlG@bV1nj7K%h8?`S-h">
                                                                  <field name="COMMENT">Die Werte abarbeiten:</field>
                                                                  <next>
                                                                    <block type="controls_forEach" id="sZ%NhNSxC10sAg@O]Kz6">
                                                                      <field name="VAR" id="9[xS=sH).DKBS8oGN@cs">i</field>
                                                                      <value name="LIST">
                                                                        <block type="variables_get" id="psB3RQ42dmHy[=aKrs!2">
                                                                          <field name="VAR" id="zqSSt1.lPBrP!prtJp:[">JSONListe</field>
                                                                        </block>
                                                                      </value>
                                                                      <statement name="DO">
                                                                        <block type="comment" id="0i?Xu2@hUv,g4?;i5Fhl">
                                                                          <field name="COMMENT">Wird beim ersten mal 0 sein</field>
                                                                          <next>
                                                                            <block type="math_change" id="liet[5#L@~`I]t{8:/Es">
                                                                              <field name="VAR" id="[,noZ+!#R([v)Vli[JAC">counter</field>
                                                                              <value name="DELTA">
                                                                                <shadow type="math_number" id="986qLvCF[J2VK^no0@Rp">
                                                                                  <field name="NUM">1</field>
                                                                                </shadow>
                                                                              </value>
                                                                              <next>
                                                                                <block type="comment" id="}fPI/Q;fVu7V-uYuX2I+">
                                                                                  <field name="COMMENT">Wir arbeiten die Liste ab, nutzen aber das Objekt!</field>
                                                                                  <next>
                                                                                    <block type="variables_set" id="^w);@i_kdtjWWf?c}BcO">
                                                                                      <field name="VAR" id="tkH#qcE=H5/_7~OttW5(">tempDatum</field>
                                                                                      <value name="VALUE">
                                                                                        <block type="get_attr" id="jTRbW_-wI4-}.!,5V(VJ">
                                                                                          <value name="PATH">
                                                                                            <shadow type="text" id="3r`W9/~ToEj{Abx:)agx">
                                                                                              <field name="TEXT"></field>
                                                                                            </shadow>
                                                                                            <block type="text_join" id="xoFmSb~Y+xnD;cvM|g;-">
                                                                                              <mutation items="2"></mutation>
                                                                                              <value name="ADD0">
                                                                                                <block type="variables_get" id="K9;4LQ$1S/`at#YY52.j">
                                                                                                  <field name="VAR" id="[,noZ+!#R([v)Vli[JAC">counter</field>
                                                                                                </block>
                                                                                              </value>
                                                                                              <value name="ADD1">
                                                                                                <block type="text" id="Kkt8qVr.ykp~NV;@{Uas">
                                                                                                  <field name="TEXT">.Time</field>
                                                                                                </block>
                                                                                              </value>
                                                                                            </block>
                                                                                          </value>
                                                                                          <value name="OBJECT">
                                                                                            <block type="variables_get" id="`-rw74I`kqylUWgeH*+(">
                                                                                              <field name="VAR" id="B$n_|Lt?V?dltG$1=%U!">JSONTable</field>
                                                                                            </block>
                                                                                          </value>
                                                                                        </block>
                                                                                      </value>
                                                                                      <next>
                                                                                        <block type="comment" id="b?]P+H9BwqfkDRv$/:j(">
                                                                                          <field name="COMMENT">Die - in . umwandeln</field>
                                                                                          <next>
                                                                                            <block type="variables_set" id="k@v15A-cYpf/vbpRa;_z">
                                                                                              <field name="VAR" id="tkH#qcE=H5/_7~OttW5(">tempDatum</field>
                                                                                              <value name="VALUE">
                                                                                                <block type="procedures_callcustomreturn" id="p[kw(;yI)pXBjjzD#D)~">
                                                                                                  <mutation name="ReplaceHyphen">
                                                                                                    <arg name="x"></arg>
                                                                                                  </mutation>
                                                                                                  <value name="ARG0">
                                                                                                    <block type="variables_get" id="N)h=(1TR`.9#96=m?A0Y">
                                                                                                      <field name="VAR" id="tkH#qcE=H5/_7~OttW5(">tempDatum</field>
                                                                                                    </block>
                                                                                                  </value>
                                                                                                </block>
                                                                                              </value>
                                                                                              <next>
                                                                                                <block type="comment" id="I-6Pjzc2in5fU|/L@xLT">
                                                                                                  <field name="COMMENT">In ein Datum-Objekt umwandeln</field>
                                                                                                  <next>
                                                                                                    <block type="variables_set" id="FsILBORsaLrrazBi1L)J">
                                                                                                      <field name="VAR" id="tkH#qcE=H5/_7~OttW5(">tempDatum</field>
                                                                                                      <value name="VALUE">
                                                                                                        <block type="convert_from_date" id="4bbw}ZJhpHe}e.*nJ0`M">
                                                                                                          <mutation xmlns="http://www.w3.org/1999/xhtml" format="false" language="false"></mutation>
                                                                                                          <field name="OPTION">object</field>
                                                                                                          <value name="VALUE">
                                                                                                            <block type="variables_get" id="RjC;=Ac;nPHFrHCNt$SG">
                                                                                                              <field name="VAR" id="tkH#qcE=H5/_7~OttW5(">tempDatum</field>
                                                                                                            </block>
                                                                                                          </value>
                                                                                                        </block>
                                                                                                      </value>
                                                                                                      <next>
                                                                                                        <block type="comment" id="?/.AjS+{19mE_EhC6?{%">
                                                                                                          <field name="COMMENT">Leistungswerte holen</field>
                                                                                                          <next>
                                                                                                            <block type="variables_set" id="Bs]rzL5Ou(TgO8/9n(?c">
                                                                                                              <field name="VAR" id="Qc{Jo]quM_J722)2(/*i">tempLeistung600W</field>
                                                                                                              <value name="VALUE">
                                                                                                                <block type="convert_tonumber" id="tMmS$h!@}Ow%t)=ItX0,">
                                                                                                                  <value name="VALUE">
                                                                                                                    <block type="procedures_callcustomreturn" id="d8ICH/{6V[$h=0#xy+i^">
                                                                                                                      <mutation name="ReplaceDot">
                                                                                                                        <arg name="x"></arg>
                                                                                                                      </mutation>
                                                                                                                      <value name="ARG0">
                                                                                                                        <block type="get_attr" id="]yk~Vja4R|8vn@1,V]/O">
                                                                                                                          <value name="PATH">
                                                                                                                            <shadow type="text" id="S|8FNN7w6)sBHuhiephR">
                                                                                                                              <field name="TEXT"></field>
                                                                                                                            </shadow>
                                                                                                                            <block type="text_join" id="50|S}#qaQ?XsjIlp$eUH">
                                                                                                                              <mutation items="2"></mutation>
                                                                                                                              <value name="ADD0">
                                                                                                                                <block type="variables_get" id="89zd[}sNs{07o$(Q`/Wv">
                                                                                                                                  <field name="VAR" id="[,noZ+!#R([v)Vli[JAC">counter</field>
                                                                                                                                </block>
                                                                                                                              </value>
                                                                                                                              <value name="ADD1">
                                                                                                                                <block type="text" id="Q:K|d_%wW60Lz}|pyP,X">
                                                                                                                                  <field name="TEXT">.600W</field>
                                                                                                                                </block>
                                                                                                                              </value>
                                                                                                                            </block>
                                                                                                                          </value>
                                                                                                                          <value name="OBJECT">
                                                                                                                            <block type="variables_get" id="en([*{/z)4M*6nR%,jHM">
                                                                                                                              <field name="VAR" id="B$n_|Lt?V?dltG$1=%U!">JSONTable</field>
                                                                                                                            </block>
                                                                                                                          </value>
                                                                                                                        </block>
                                                                                                                      </value>
                                                                                                                    </block>
                                                                                                                  </value>
                                                                                                                </block>
                                                                                                              </value>
                                                                                                              <next>
                                                                                                                <block type="comment" id=".r}c.6$[JDf=.|#00pZj">
                                                                                                                  <field name="COMMENT">Und in die Datenbank schreiben</field>
                                                                                                                  <next>
                                                                                                                    <block type="procedures_callcustomnoreturn" id="M^AAkuV`a@Z.)aHzF*cS" inline="false">
                                                                                                                      <mutation name="InsertToHistory">
                                                                                                                        <arg name="id"></arg>
                                                                                                                        <arg name="ts"></arg>
                                                                                                                        <arg name="value"></arg>
                                                                                                                        <arg name="ack"></arg>
                                                                                                                        <arg name="from"></arg>
                                                                                                                        <arg name="q"></arg>
                                                                                                                      </mutation>
                                                                                                                      <value name="ARG0">
                                                                                                                        <block type="variables_get" id="5);}w+nl3mmT2P1)PfZv">
                                                                                                                          <field name="VAR" id="!X-*UNPMzEuy~Y#t}/dN">dp_Forecast_600W</field>
                                                                                                                        </block>
                                                                                                                      </value>
                                                                                                                      <value name="ARG1">
                                                                                                                        <block type="variables_get" id="r(_ZS`H9#9L[XZBs,r2o">
                                                                                                                          <field name="VAR" id="tkH#qcE=H5/_7~OttW5(">tempDatum</field>
                                                                                                                        </block>
                                                                                                                      </value>
                                                                                                                      <value name="ARG2">
                                                                                                                        <block type="variables_get" id="PVq;+vyh]6](gm[cMdG{">
                                                                                                                          <field name="VAR" id="Qc{Jo]quM_J722)2(/*i">tempLeistung600W</field>
                                                                                                                        </block>
                                                                                                                      </value>
                                                                                                                      <value name="ARG3">
                                                                                                                        <block type="math_number" id="`F,$`peh0`2grx8z0C{I">
                                                                                                                          <field name="NUM">1</field>
                                                                                                                        </block>
                                                                                                                      </value>
                                                                                                                      <value name="ARG4">
                                                                                                                        <block type="math_number" id="F,vah,1EQo9C4e6~J:(n">
                                                                                                                          <field name="NUM">1</field>
                                                                                                                        </block>
                                                                                                                      </value>
                                                                                                                      <value name="ARG5">
                                                                                                                        <block type="math_number" id=";,x`))M,iJvBaeR@3UPZ">
                                                                                                                          <field name="NUM">0</field>
                                                                                                                        </block>
                                                                                                                      </value>
                                                                                                                    </block>
                                                                                                                  </next>
                                                                                                                </block>
                                                                                                              </next>
                                                                                                            </block>
                                                                                                          </next>
                                                                                                        </block>
                                                                                                      </next>
                                                                                                    </block>
                                                                                                  </next>
                                                                                                </block>
                                                                                              </next>
                                                                                            </block>
                                                                                          </next>
                                                                                        </block>
                                                                                      </next>
                                                                                    </block>
                                                                                  </next>
                                                                                </block>
                                                                              </next>
                                                                            </block>
                                                                          </next>
                                                                        </block>
                                                                      </statement>
                                                                    </block>
                                                                  </next>
                                                                </block>
                                                              </next>
                                                            </block>
                                                          </next>
                                                        </block>
                                                      </next>
                                                    </block>
                                                  </next>
                                                </block>
                                              </next>
                                            </block>
                                          </next>
                                        </block>
                                      </next>
                                    </block>
                                  </next>
                                </block>
                              </statement>
                            </block>
                          </next>
                        </block>
                      </next>
                    </block>
                  </next>
                </block>
              </xml>
              

              Die Version nutzt den Datenpunkt pvforecast.0.summary.JSONTable, da werden alle vorhandenen Anlagen in einem Datenpunkt bereit gestellt. Den sollte es auch geben wenn du nur eine Anlage hast. Bei Bedarf könnte man das Skript auf mehrere Anlagen erweitern.

              Zum "Setup":

              Da muss dein Zieldatenpunkt rein, also wohin geschrieben werden soll:
              3d909e16-9830-482e-afc2-36a7501a59b3-image.png

              Und hier musst du die .600W durch den Namen deiner Anlage ändern, also den Namen den du gewählt hast. Vermutlich .sonnenschein
              64a0cf07-7bf8-45fc-b072-49dd549124e6-image.png

              Und - wenn es läuft - könntest du in allen Variablen die eine 600W im Namen haben dieses durch Sonnenschein ersetzen.

              Hallo noch mal:

              Ich habe jetzt noch mal als Datenquelle auf die json Tabelle meiner Anlage im Blockly geändert, dann habe ich sofort wieder den Fehler mit dem Hinweis auf Replace Methode.

              Hier der Inhalt aus json Tabelle Summery

              [{"Time":"2022-10-30 08:07:00","Total":"0","Sonnenschein":"0"},{"Time":"2022-10-30 09:00:00","Total":"2.747","Sonnenschein":"2.747"},{"Time":"2022-10-30 10:00:00","Total":"4.139","Sonnenschein":"4.139"},{"Time":"2022-10-30 11:00:00","Total":"4.964","Sonnenschein":"4.964"},{"Time":"2022-10-30 12:00:00","Total":"5.168","Sonnenschein":"5.168"},{"Time":"2022-10-30 13:00:00","Total":"4.757","Sonnenschein":"4.757"},{"Time":"2022-10-30 14:00:00","Total":"4.102","Sonnenschein":"4.102"},{"Time":"2022-10-30 15:00:00","Total":"3.034","Sonnenschein":"3.034"},{"Time":"2022-10-30 16:00:00","Total":"1.458","Sonnenschein":"1.458"},{"Time":"2022-10-30 17:00:00","Total":"465","Sonnenschein":"465"},{"Time":"2022-10-30 17:54:00","Total":"0","Sonnenschein":"0"},{"Time":"2022-10-31 07:09:00","Total":"0","Sonnenschein":"0"},{"Time":"2022-10-31 08:00:00","Total":"181","Sonnenschein":"181"},{"Time":"2022-10-31 09:00:00","Total":"700","Sonnenschein":"700"},{"Time":"2022-10-31 10:00:00","Total":"1.321","Sonnenschein":"1.321"},{"Time":"2022-10-31 11:00:00","Total":"1.399","Sonnenschein":"1.399"},{"Time":"2022-10-31 12:00:00","Total":"1.269","Sonnenschein":"1.269"},{"Time":"2022-10-31 13:00:00","Total":"925","Sonnenschein":"925"},{"Time":"2022-10-31 14:00:00","Total":"508","Sonnenschein":"508"},{"Time":"2022-10-31 15:00:00","Total":"186","Sonnenschein":"186"},{"Time":"2022-10-31 16:00:00","Total":"35","Sonnenschein":"35"},{"Time":"2022-10-31 16:52:00","Total":"0","Sonnenschein":"0"}]
              

              und hier der Inhalt json Tabelle plant

              [{"Time":"2022-10-30 08:07:00","Power":"0"},{"Time":"2022-10-30 09:00:00","Power":"2.747"},{"Time":"2022-10-30 10:00:00","Power":"4.139"},{"Time":"2022-10-30 11:00:00","Power":"4.964"},{"Time":"2022-10-30 12:00:00","Power":"5.168"},{"Time":"2022-10-30 13:00:00","Power":"4.757"},{"Time":"2022-10-30 14:00:00","Power":"4.102"},{"Time":"2022-10-30 15:00:00","Power":"3.034"},{"Time":"2022-10-30 16:00:00","Power":"1.458"},{"Time":"2022-10-30 17:00:00","Power":"465"},{"Time":"2022-10-30 17:54:00","Power":"0"},{"Time":"2022-10-31 07:09:00","Power":"0"},{"Time":"2022-10-31 08:00:00","Power":"181"},{"Time":"2022-10-31 09:00:00","Power":"700"},{"Time":"2022-10-31 10:00:00","Power":"1.321"},{"Time":"2022-10-31 11:00:00","Power":"1.399"},{"Time":"2022-10-31 12:00:00","Power":"1.269"},{"Time":"2022-10-31 13:00:00","Power":"925"},{"Time":"2022-10-31 14:00:00","Power":"508"},{"Time":"2022-10-31 15:00:00","Power":"186"},{"Time":"2022-10-31 16:00:00","Power":"35"},{"Time":"2022-10-31 16:52:00","Power":"0"}]
              

              Klar die Inhalte sind unterschiedlich, aber ich sehe kein Unterschied im json Aufbau warum die replace Methode nicht funktioniert!?

              Der Pfad zu meinem Anlagen Objekt: pvforecast.1.plants.sonnenschein.JSONTable
              Der Pfad zum Summery Objekt: pvforecast.1.summary.JSONTable

              BananaJoeB Offline
              BananaJoeB Offline
              BananaJoe
              Most Active
              schrieb am zuletzt editiert von
              #540

              @sonnenschein GROß und kleinschreibung passt? die .600 muss .Sonnenschein sein bei Block "setze tempLeistung600W"

              ioBroker@Ubuntu 24.04 LTS (VMware) für: >260 Geräte, 5 Switche, 7 AP, 9 IP-Cam, 1 NAS 42TB, 1 ESXi 15TB, 4 Proxmox 1TB, 1 Hyper-V 48TB, 14 x Echo, 5x FireTV, 5 x Tablett/Handy VIS || >=160 Tasmota/Shelly || >=95 ZigBee || PV 8.1kW / Akku 14kWh || 2x USV 750W kaskadiert || Creality CR-10 SE 3D-Drucker

              sonnenscheinS 1 Antwort Letzte Antwort
              0
              • BananaJoeB BananaJoe

                @sonnenschein GROß und kleinschreibung passt? die .600 muss .Sonnenschein sein bei Block "setze tempLeistung600W"

                sonnenscheinS Offline
                sonnenscheinS Offline
                sonnenschein
                schrieb am zuletzt editiert von sonnenschein
                #541

                @bananajoe sagte in Test PV Forecast Adapter:

                Sollte so passen:
                TeilBlockly.png

                ...und im PVForecastadpater habe ich die Leistung auf W statt kw gestellt. Im alten Blockly war da glaube ich die Umrechnung drin. Weil bei W statt KW kommt dann der Punkt in den Werten zum tragen. Oder, bin mir nicht ganz so sicher. Aber mit dem Summery scheint das ganze ja zu funktionieren.

                PlatformBetriebssystem:linux Architektur:arm64 CPUs:4 Geschwindigkeit:1800 MHz Modell:Cortex-A72
                RAM:3.7 GB System-Betriebszeit:00:19:02 Node.js:v20.18.0
                _nodeCurrent:20.18.0
                _npmCurrent:10.8.2
                Operating System: Debian GNU/Linux 12 (bookworm) Kernel: Linux 6.6.57-v8+

                BananaJoeB 1 Antwort Letzte Antwort
                0
                • sonnenscheinS sonnenschein

                  @bananajoe sagte in Test PV Forecast Adapter:

                  Sollte so passen:
                  TeilBlockly.png

                  ...und im PVForecastadpater habe ich die Leistung auf W statt kw gestellt. Im alten Blockly war da glaube ich die Umrechnung drin. Weil bei W statt KW kommt dann der Punkt in den Werten zum tragen. Oder, bin mir nicht ganz so sicher. Aber mit dem Summery scheint das ganze ja zu funktionieren.

                  BananaJoeB Offline
                  BananaJoeB Offline
                  BananaJoe
                  Most Active
                  schrieb am zuletzt editiert von
                  #542

                  @sonnenschein ob kW oder W kannst du ja im Skript ergänzen - bei meiner kleine Anlage reichen halt W
                  Wenn es gut aussieht passt es :-)

                  ioBroker@Ubuntu 24.04 LTS (VMware) für: >260 Geräte, 5 Switche, 7 AP, 9 IP-Cam, 1 NAS 42TB, 1 ESXi 15TB, 4 Proxmox 1TB, 1 Hyper-V 48TB, 14 x Echo, 5x FireTV, 5 x Tablett/Handy VIS || >=160 Tasmota/Shelly || >=95 ZigBee || PV 8.1kW / Akku 14kWh || 2x USV 750W kaskadiert || Creality CR-10 SE 3D-Drucker

                  sonnenscheinS 1 Antwort Letzte Antwort
                  0
                  • BananaJoeB BananaJoe

                    @sonnenschein ob kW oder W kannst du ja im Skript ergänzen - bei meiner kleine Anlage reichen halt W
                    Wenn es gut aussieht passt es :-)

                    sonnenscheinS Offline
                    sonnenscheinS Offline
                    sonnenschein
                    schrieb am zuletzt editiert von
                    #543

                    @bananajoe
                    ja in die SQL DB werden keine Kommawerte geschrieben, deshalb KW Darstellung ungenügend.
                    Mit den Watt paßt das schon.

                    SQL.png

                    PlatformBetriebssystem:linux Architektur:arm64 CPUs:4 Geschwindigkeit:1800 MHz Modell:Cortex-A72
                    RAM:3.7 GB System-Betriebszeit:00:19:02 Node.js:v20.18.0
                    _nodeCurrent:20.18.0
                    _npmCurrent:10.8.2
                    Operating System: Debian GNU/Linux 12 (bookworm) Kernel: Linux 6.6.57-v8+

                    1 Antwort Letzte Antwort
                    0
                    • sonnenscheinS Offline
                      sonnenscheinS Offline
                      sonnenschein
                      schrieb am zuletzt editiert von sonnenschein
                      #544

                      @sonnenschein sagte in Test PV Forecast Adapter:

                      @bananajoe
                      ja in die SQL DB werden keine Kommawerte geschrieben, deshalb KW Darstellung ungenügend.
                      Mit den Watt paßt das schon.

                      SQL.png

                      Habe im Blockly mal Debug Bausteine eingebaut.
                      Demnach steht eine Kommazahl in json Tabelle aber die Variable Leistungswert holen tempLeistungSonnenschein ist ohne Kommastelle!
                      2022_10_30 19_35_38-Window.png

                      2022_10_30 19_36_40-Window.png

                      Hast da jemand deine Erklärung?

                      Warum die json Tabelle meiner Einzelanlage nicht funktioniert, scheint daran zu liegen das in der Tabelle kein Anlagenname steht! Also in Summery steht der "Sonnenschein" als Anlagenname , in der Tabelle unter plants aber nicht! da steht nur Power! Habe das im Blockly angepaßt und dann kommt auch kein REPLACE Fehler wie oben beschrieben.
                      ac6a3edf-f4e2-4369-b8c8-593831da72da-image.png

                      PlatformBetriebssystem:linux Architektur:arm64 CPUs:4 Geschwindigkeit:1800 MHz Modell:Cortex-A72
                      RAM:3.7 GB System-Betriebszeit:00:19:02 Node.js:v20.18.0
                      _nodeCurrent:20.18.0
                      _npmCurrent:10.8.2
                      Operating System: Debian GNU/Linux 12 (bookworm) Kernel: Linux 6.6.57-v8+

                      BananaJoeB 1 Antwort Letzte Antwort
                      0
                      • sonnenscheinS sonnenschein

                        @sonnenschein sagte in Test PV Forecast Adapter:

                        @bananajoe
                        ja in die SQL DB werden keine Kommawerte geschrieben, deshalb KW Darstellung ungenügend.
                        Mit den Watt paßt das schon.

                        SQL.png

                        Habe im Blockly mal Debug Bausteine eingebaut.
                        Demnach steht eine Kommazahl in json Tabelle aber die Variable Leistungswert holen tempLeistungSonnenschein ist ohne Kommastelle!
                        2022_10_30 19_35_38-Window.png

                        2022_10_30 19_36_40-Window.png

                        Hast da jemand deine Erklärung?

                        Warum die json Tabelle meiner Einzelanlage nicht funktioniert, scheint daran zu liegen das in der Tabelle kein Anlagenname steht! Also in Summery steht der "Sonnenschein" als Anlagenname , in der Tabelle unter plants aber nicht! da steht nur Power! Habe das im Blockly angepaßt und dann kommt auch kein REPLACE Fehler wie oben beschrieben.
                        ac6a3edf-f4e2-4369-b8c8-593831da72da-image.png

                        BananaJoeB Offline
                        BananaJoeB Offline
                        BananaJoe
                        Most Active
                        schrieb am zuletzt editiert von BananaJoe
                        #545

                        @sonnenschein weil SQL das mit Punkt statt Komma haben will?
                        Man müsste noch einen Replace machen, sind ja 2 Beispiele dafür drin (Ich hatte eine extra JavaScript Funktion genommen weil ich die nativen Blockly Wege sehr umständlich fand, in JavaScript ist es ein Einzeiler)

                        Ich hab es nicht richtig gelesen.

                        ioBroker@Ubuntu 24.04 LTS (VMware) für: >260 Geräte, 5 Switche, 7 AP, 9 IP-Cam, 1 NAS 42TB, 1 ESXi 15TB, 4 Proxmox 1TB, 1 Hyper-V 48TB, 14 x Echo, 5x FireTV, 5 x Tablett/Handy VIS || >=160 Tasmota/Shelly || >=95 ZigBee || PV 8.1kW / Akku 14kWh || 2x USV 750W kaskadiert || Creality CR-10 SE 3D-Drucker

                        sonnenscheinS 1 Antwort Letzte Antwort
                        0
                        • BananaJoeB BananaJoe

                          @sonnenschein weil SQL das mit Punkt statt Komma haben will?
                          Man müsste noch einen Replace machen, sind ja 2 Beispiele dafür drin (Ich hatte eine extra JavaScript Funktion genommen weil ich die nativen Blockly Wege sehr umständlich fand, in JavaScript ist es ein Einzeiler)

                          Ich hab es nicht richtig gelesen.

                          sonnenscheinS Offline
                          sonnenscheinS Offline
                          sonnenschein
                          schrieb am zuletzt editiert von sonnenschein
                          #546

                          @bananajoe
                          Hallo BananaJoe!
                          Ich habe meinen Adapter noch mal auf KW statt W umgestellt.

                          Die Werte werden dann als Kommazahl im json dargestellt

                          [{"Time":"2022-11-01 07:11:00","Power":"0,000"},{"Time":"2022-11-01 08:00:00","Power":"0,010"},{"Time":"2022-11-01 09:00:00","Power":"0,065"},{"Time":"2022-11-01 10:00:00","Power":"0,130"},{"Time":"2022-11-01 11:00:00","Power":"2,004"},{"Time":"2022-11-01 12:00:00","Power":"3,986"},{"Time":"2022-11-01 13:00:00","Power":"4,769"},{"Time":"2022-11-01 14:00:00","Power":"4,433"},{"Time":"2022-11-01 15:00:00","Power":"3,079"},{"Time":"2022-11-01 16:00:00","Power":"1,663"},{"Time":"2022-11-01 16:51:00","Power":"0,000"},{"Time":"2022-11-02 07:13:00","Power":"0,000"},{"Time":"2022-11-02 08:00:00","Power":"1,179"},{"Time":"2022-11-02 09:00:00","Power":"3,049"},{"Time":"2022-11-02 10:00:00","Power":"4,314"},{"Time":"2022-11-02 11:00:00","Power":"5,254"},{"Time":"2022-11-02 12:00:00","Power":"5,109"},{"Time":"2022-11-02 13:00:00","Power":"4,829"},{"Time":"2022-11-02 14:00:00","Power":"4,644"},{"Time":"2022-11-02 15:00:00","Power":"3,027"},{"Time":"2022-11-02 16:00:00","Power":"1,493"},{"Time":"2022-11-02 16:49:00","Power":"0,000"}]
                          

                          Ich verstehe aber Deine Blockly Zeile evtl. noch nicht richtig.

                          2022_11_01 18_04_03-Window.png

                          Die Funktion "Replace Dot" wirkt nicht, da es keinen Punkt gibt. OK
                          Wenn ich zwischen "Replace DOT" und "nach Zahl" einen addierer mit 0.001 einbaue, bekomme ich auch eine Kommazahl in meiner Variablen angezeigt. Also scheint doch die Kommastelle oder das Komma aus dem json nicht gelesen zu werden. Oder bin ich auf dem Holzweg?
                          Evtl hast Du hier noch eine Idee?
                          Erst mal lasse ich den Adapter auf Watt stehen damit es erst mal läuft.

                          2022_11_01 18_11_10-Window.png

                          2022_11_01 18_11_39-Window.png

                          PlatformBetriebssystem:linux Architektur:arm64 CPUs:4 Geschwindigkeit:1800 MHz Modell:Cortex-A72
                          RAM:3.7 GB System-Betriebszeit:00:19:02 Node.js:v20.18.0
                          _nodeCurrent:20.18.0
                          _npmCurrent:10.8.2
                          Operating System: Debian GNU/Linux 12 (bookworm) Kernel: Linux 6.6.57-v8+

                          BananaJoeB haus-automatisierungH 2 Antworten Letzte Antwort
                          0
                          • sonnenscheinS sonnenschein

                            @bananajoe
                            Hallo BananaJoe!
                            Ich habe meinen Adapter noch mal auf KW statt W umgestellt.

                            Die Werte werden dann als Kommazahl im json dargestellt

                            [{"Time":"2022-11-01 07:11:00","Power":"0,000"},{"Time":"2022-11-01 08:00:00","Power":"0,010"},{"Time":"2022-11-01 09:00:00","Power":"0,065"},{"Time":"2022-11-01 10:00:00","Power":"0,130"},{"Time":"2022-11-01 11:00:00","Power":"2,004"},{"Time":"2022-11-01 12:00:00","Power":"3,986"},{"Time":"2022-11-01 13:00:00","Power":"4,769"},{"Time":"2022-11-01 14:00:00","Power":"4,433"},{"Time":"2022-11-01 15:00:00","Power":"3,079"},{"Time":"2022-11-01 16:00:00","Power":"1,663"},{"Time":"2022-11-01 16:51:00","Power":"0,000"},{"Time":"2022-11-02 07:13:00","Power":"0,000"},{"Time":"2022-11-02 08:00:00","Power":"1,179"},{"Time":"2022-11-02 09:00:00","Power":"3,049"},{"Time":"2022-11-02 10:00:00","Power":"4,314"},{"Time":"2022-11-02 11:00:00","Power":"5,254"},{"Time":"2022-11-02 12:00:00","Power":"5,109"},{"Time":"2022-11-02 13:00:00","Power":"4,829"},{"Time":"2022-11-02 14:00:00","Power":"4,644"},{"Time":"2022-11-02 15:00:00","Power":"3,027"},{"Time":"2022-11-02 16:00:00","Power":"1,493"},{"Time":"2022-11-02 16:49:00","Power":"0,000"}]
                            

                            Ich verstehe aber Deine Blockly Zeile evtl. noch nicht richtig.

                            2022_11_01 18_04_03-Window.png

                            Die Funktion "Replace Dot" wirkt nicht, da es keinen Punkt gibt. OK
                            Wenn ich zwischen "Replace DOT" und "nach Zahl" einen addierer mit 0.001 einbaue, bekomme ich auch eine Kommazahl in meiner Variablen angezeigt. Also scheint doch die Kommastelle oder das Komma aus dem json nicht gelesen zu werden. Oder bin ich auf dem Holzweg?
                            Evtl hast Du hier noch eine Idee?
                            Erst mal lasse ich den Adapter auf Watt stehen damit es erst mal läuft.

                            2022_11_01 18_11_10-Window.png

                            2022_11_01 18_11_39-Window.png

                            BananaJoeB Offline
                            BananaJoeB Offline
                            BananaJoe
                            Most Active
                            schrieb am zuletzt editiert von
                            #547

                            @sonnenschein ReplaceDot macht ja aus dem Punkt ein "", also nichts .... ich meine das wegen 1.000 Zeichen notwendig.
                            Kann bei dir also raus, schadet aber auch nicht.
                            Wenn du aus dem , einen Punkt brauchts so schau dir die Funktion an:

                            return x.replace(",",".");
                            

                            würde aus Kommas dann Punkte machen.

                            ioBroker@Ubuntu 24.04 LTS (VMware) für: >260 Geräte, 5 Switche, 7 AP, 9 IP-Cam, 1 NAS 42TB, 1 ESXi 15TB, 4 Proxmox 1TB, 1 Hyper-V 48TB, 14 x Echo, 5x FireTV, 5 x Tablett/Handy VIS || >=160 Tasmota/Shelly || >=95 ZigBee || PV 8.1kW / Akku 14kWh || 2x USV 750W kaskadiert || Creality CR-10 SE 3D-Drucker

                            1 Antwort Letzte Antwort
                            0
                            • sonnenscheinS sonnenschein

                              @bananajoe
                              Hallo BananaJoe!
                              Ich habe meinen Adapter noch mal auf KW statt W umgestellt.

                              Die Werte werden dann als Kommazahl im json dargestellt

                              [{"Time":"2022-11-01 07:11:00","Power":"0,000"},{"Time":"2022-11-01 08:00:00","Power":"0,010"},{"Time":"2022-11-01 09:00:00","Power":"0,065"},{"Time":"2022-11-01 10:00:00","Power":"0,130"},{"Time":"2022-11-01 11:00:00","Power":"2,004"},{"Time":"2022-11-01 12:00:00","Power":"3,986"},{"Time":"2022-11-01 13:00:00","Power":"4,769"},{"Time":"2022-11-01 14:00:00","Power":"4,433"},{"Time":"2022-11-01 15:00:00","Power":"3,079"},{"Time":"2022-11-01 16:00:00","Power":"1,663"},{"Time":"2022-11-01 16:51:00","Power":"0,000"},{"Time":"2022-11-02 07:13:00","Power":"0,000"},{"Time":"2022-11-02 08:00:00","Power":"1,179"},{"Time":"2022-11-02 09:00:00","Power":"3,049"},{"Time":"2022-11-02 10:00:00","Power":"4,314"},{"Time":"2022-11-02 11:00:00","Power":"5,254"},{"Time":"2022-11-02 12:00:00","Power":"5,109"},{"Time":"2022-11-02 13:00:00","Power":"4,829"},{"Time":"2022-11-02 14:00:00","Power":"4,644"},{"Time":"2022-11-02 15:00:00","Power":"3,027"},{"Time":"2022-11-02 16:00:00","Power":"1,493"},{"Time":"2022-11-02 16:49:00","Power":"0,000"}]
                              

                              Ich verstehe aber Deine Blockly Zeile evtl. noch nicht richtig.

                              2022_11_01 18_04_03-Window.png

                              Die Funktion "Replace Dot" wirkt nicht, da es keinen Punkt gibt. OK
                              Wenn ich zwischen "Replace DOT" und "nach Zahl" einen addierer mit 0.001 einbaue, bekomme ich auch eine Kommazahl in meiner Variablen angezeigt. Also scheint doch die Kommastelle oder das Komma aus dem json nicht gelesen zu werden. Oder bin ich auf dem Holzweg?
                              Evtl hast Du hier noch eine Idee?
                              Erst mal lasse ich den Adapter auf Watt stehen damit es erst mal läuft.

                              2022_11_01 18_11_10-Window.png

                              2022_11_01 18_11_39-Window.png

                              haus-automatisierungH Online
                              haus-automatisierungH Online
                              haus-automatisierung
                              Developer Most Active
                              schrieb am zuletzt editiert von haus-automatisierung
                              #548

                              @sonnenschein sagte in Test PV Forecast Adapter:

                              Die Werte werden dann als Kommazahl im json dargestellt

                              Das von Dir verwendete JSON (wahrscheinlich pvforecast.0.summary.JSONTable ?) ist gar nicht für die weitere Verarbeitung gedacht! Das ist zur Darstellung in einer (wie der Name vermuten lässt) VIS-Tabelle gedacht.

                              Daher liegen in diesem JSON die Daten formatiert (als String) vor. Und zwar in dem Format, wie es in den Systemeinstellungen hinterlegt ist. So wird aus dem Punkt ein Komma usw. Es wäre totaler Quatsch, das jetzt wieder zurück zu formatieren um es in eine Datenbank zu schreiben!

                              Bitte nutze den Datenpunkt pvforecast.0.summary.JSONData um damit weiter zu rechnen oder die Daten in eine Datenbank zu übertragen.

                              @bananajoe sagte in Test PV Forecast Adapter:

                              ReplaceDot macht ja aus dem Punkt ein "", also nichts .... ich meine das wegen 1.000 Zeichen notwendig.

                              Wenn man mit den Daten aus JSONData arbeitet, dann muss man gar nix ersetzen. Kein Komma, keine Tausender-Trennzeichen.

                              🧑‍🎓 Autor des beliebten ioBroker-Master-Kurses
                              🎥 Tutorials rund um das Thema DIY-Smart-Home: https://haus-automatisierung.com/
                              📚 Meine inoffizielle ioBroker Dokumentation

                              BananaJoeB 1 Antwort Letzte Antwort
                              0
                              • haus-automatisierungH haus-automatisierung

                                @sonnenschein sagte in Test PV Forecast Adapter:

                                Die Werte werden dann als Kommazahl im json dargestellt

                                Das von Dir verwendete JSON (wahrscheinlich pvforecast.0.summary.JSONTable ?) ist gar nicht für die weitere Verarbeitung gedacht! Das ist zur Darstellung in einer (wie der Name vermuten lässt) VIS-Tabelle gedacht.

                                Daher liegen in diesem JSON die Daten formatiert (als String) vor. Und zwar in dem Format, wie es in den Systemeinstellungen hinterlegt ist. So wird aus dem Punkt ein Komma usw. Es wäre totaler Quatsch, das jetzt wieder zurück zu formatieren um es in eine Datenbank zu schreiben!

                                Bitte nutze den Datenpunkt pvforecast.0.summary.JSONData um damit weiter zu rechnen oder die Daten in eine Datenbank zu übertragen.

                                @bananajoe sagte in Test PV Forecast Adapter:

                                ReplaceDot macht ja aus dem Punkt ein "", also nichts .... ich meine das wegen 1.000 Zeichen notwendig.

                                Wenn man mit den Daten aus JSONData arbeitet, dann muss man gar nix ersetzen. Kein Komma, keine Tausender-Trennzeichen.

                                BananaJoeB Offline
                                BananaJoeB Offline
                                BananaJoe
                                Most Active
                                schrieb am zuletzt editiert von
                                #549

                                @haus-automatisierung sagte in Test PV Forecast Adapter:

                                Das von Dir verwendete JSON (wahrscheinlich pvforecast.0.summary.JSONTable ?) ist gar nicht für die weitere Verarbeitung gedacht! Das ist zur Darstellung in einer (wie der Name vermuten lässt) VIS-Tabelle gedacht.

                                Daher liegen in diesem JSON die Daten formatiert (als String) vor. Und zwar in dem Format, wie es in den Systemeinstellungen hinterlegt ist. So wird aus dem Punkt ein Komma usw. Es wäre totaler Quatsch, das jetzt wieder zurück zu formatieren um es in eine Datenbank zu schreiben!

                                Bitte nutze den Datenpunkt pvforecast.0.summary.JSONData um damit weiter zu rechnen oder die Daten in eine Datenbank zu übertragen.

                                Da hast du recht, das der Datenpunkt dafür nicht gedacht ist, ist mir bewusst und aus der Historie gewachsen.
                                Ich schau mir den anderen Datenpunkt einmal an und baue mein Skript dann mal um.

                                ioBroker@Ubuntu 24.04 LTS (VMware) für: >260 Geräte, 5 Switche, 7 AP, 9 IP-Cam, 1 NAS 42TB, 1 ESXi 15TB, 4 Proxmox 1TB, 1 Hyper-V 48TB, 14 x Echo, 5x FireTV, 5 x Tablett/Handy VIS || >=160 Tasmota/Shelly || >=95 ZigBee || PV 8.1kW / Akku 14kWh || 2x USV 750W kaskadiert || Creality CR-10 SE 3D-Drucker

                                haus-automatisierungH 1 Antwort Letzte Antwort
                                0
                                • BananaJoeB BananaJoe

                                  @haus-automatisierung sagte in Test PV Forecast Adapter:

                                  Das von Dir verwendete JSON (wahrscheinlich pvforecast.0.summary.JSONTable ?) ist gar nicht für die weitere Verarbeitung gedacht! Das ist zur Darstellung in einer (wie der Name vermuten lässt) VIS-Tabelle gedacht.

                                  Daher liegen in diesem JSON die Daten formatiert (als String) vor. Und zwar in dem Format, wie es in den Systemeinstellungen hinterlegt ist. So wird aus dem Punkt ein Komma usw. Es wäre totaler Quatsch, das jetzt wieder zurück zu formatieren um es in eine Datenbank zu schreiben!

                                  Bitte nutze den Datenpunkt pvforecast.0.summary.JSONData um damit weiter zu rechnen oder die Daten in eine Datenbank zu übertragen.

                                  Da hast du recht, das der Datenpunkt dafür nicht gedacht ist, ist mir bewusst und aus der Historie gewachsen.
                                  Ich schau mir den anderen Datenpunkt einmal an und baue mein Skript dann mal um.

                                  haus-automatisierungH Online
                                  haus-automatisierungH Online
                                  haus-automatisierung
                                  Developer Most Active
                                  schrieb am zuletzt editiert von
                                  #550

                                  @bananajoe sagte in Test PV Forecast Adapter:

                                  ist mir bewusst und aus der Historie gewachsen.

                                  Dann wäre es schon schön, wenn diese Historie nicht auf einer grünen Wiese bei anderen auch wächst :) Hattest Du Dir nicht sogar den anderen Datenpunkt mit den "RAW-Daten" gewünscht?

                                  🧑‍🎓 Autor des beliebten ioBroker-Master-Kurses
                                  🎥 Tutorials rund um das Thema DIY-Smart-Home: https://haus-automatisierung.com/
                                  📚 Meine inoffizielle ioBroker Dokumentation

                                  BananaJoeB 2 Antworten Letzte Antwort
                                  1
                                  • haus-automatisierungH haus-automatisierung

                                    @bananajoe sagte in Test PV Forecast Adapter:

                                    ist mir bewusst und aus der Historie gewachsen.

                                    Dann wäre es schon schön, wenn diese Historie nicht auf einer grünen Wiese bei anderen auch wächst :) Hattest Du Dir nicht sogar den anderen Datenpunkt mit den "RAW-Daten" gewünscht?

                                    BananaJoeB Offline
                                    BananaJoeB Offline
                                    BananaJoe
                                    Most Active
                                    schrieb am zuletzt editiert von
                                    #551

                                    @haus-automatisierung jepp, aber weil es ja gerade lief noch nicht umgesetzt.

                                    ioBroker@Ubuntu 24.04 LTS (VMware) für: >260 Geräte, 5 Switche, 7 AP, 9 IP-Cam, 1 NAS 42TB, 1 ESXi 15TB, 4 Proxmox 1TB, 1 Hyper-V 48TB, 14 x Echo, 5x FireTV, 5 x Tablett/Handy VIS || >=160 Tasmota/Shelly || >=95 ZigBee || PV 8.1kW / Akku 14kWh || 2x USV 750W kaskadiert || Creality CR-10 SE 3D-Drucker

                                    1 Antwort Letzte Antwort
                                    0
                                    • haus-automatisierungH haus-automatisierung

                                      @bananajoe sagte in Test PV Forecast Adapter:

                                      ist mir bewusst und aus der Historie gewachsen.

                                      Dann wäre es schon schön, wenn diese Historie nicht auf einer grünen Wiese bei anderen auch wächst :) Hattest Du Dir nicht sogar den anderen Datenpunkt mit den "RAW-Daten" gewünscht?

                                      BananaJoeB Offline
                                      BananaJoeB Offline
                                      BananaJoe
                                      Most Active
                                      schrieb am zuletzt editiert von
                                      #552

                                      @haus-automatisierung öhm, ich weis jetzt wieder warum ich die

                                      pvforecast.0.summary.JSONData
                                      

                                      Datenpunkte nicht nutze - weil da nicht genug drin steht ... da steht nur Total drin?

                                      pvforecast.0.summary.JSONData:

                                      [
                                      	{
                                      		"t": 1667456580000,
                                      		"y": 0
                                      	},
                                      	{
                                      		"t": 1667458800000,
                                      		"y": 1
                                      	},
                                      	{
                                      		"t": 1667462400000,
                                      		"y": 5
                                      	},
                                      	{
                                      		"t": 1667466000000,
                                      		"y": 9
                                      	},
                                      

                                      Und in pvforecast.0.summary.JSONTable:

                                      [
                                      	{
                                      		"Time": "2022-11-03 07:23:00",
                                      		"Total": "0",
                                      		"600W": "0",
                                      		"1500W": "0"
                                      	},
                                      	{
                                      		"Time": "2022-11-03 08:00:00",
                                      		"Total": "1",
                                      		"600W": "0",
                                      		"1500W": "1"
                                      	},
                                      	{
                                      		"Time": "2022-11-03 09:00:00",
                                      		"Total": "5",
                                      		"600W": "2",
                                      		"1500W": "3"
                                      	},
                                      	{
                                      		"Time": "2022-11-03 10:00:00",
                                      		"Total": "9",
                                      		"600W": "3",
                                      		"1500W": "6"
                                      	},
                                      

                                      Da kann ich mir halt sämtliche Anlagen aus einem Datenpunkt holen ...
                                      Soll ich einen Request auf GitHub aufmachen?

                                      ioBroker@Ubuntu 24.04 LTS (VMware) für: >260 Geräte, 5 Switche, 7 AP, 9 IP-Cam, 1 NAS 42TB, 1 ESXi 15TB, 4 Proxmox 1TB, 1 Hyper-V 48TB, 14 x Echo, 5x FireTV, 5 x Tablett/Handy VIS || >=160 Tasmota/Shelly || >=95 ZigBee || PV 8.1kW / Akku 14kWh || 2x USV 750W kaskadiert || Creality CR-10 SE 3D-Drucker

                                      haus-automatisierungH 1 Antwort Letzte Antwort
                                      0
                                      • M Offline
                                        M Offline
                                        Maxtor62
                                        schrieb am zuletzt editiert von Maxtor62
                                        #553

                                        Hi Leute,

                                        Ich habe den Adapter schon einige Zeit am Laufen und bin nur zufällig auf diesen Thread gestoßen.
                                        Erst Mal vielen Dank für Euere Arbeit. Jetzt habe ich ein, zwei Fragen zu dem Adapter. Kann aber auch sein, dass ich mich zu doof anstelle.

                                        Ich habe bei den Koordinaten die Werte von den Systemeinstellungen genommen. Leider wird ein Ort in den DP geschrieben, der 6km Luftlinie entfernt ist.

                                        Weiter ist die Vorhersage noch weniger als Circa. Es weicht manchmal um etliche KW/h ab.

                                        pv-vorcast.PNG

                                        Die Version von dem Adapter ist
                                        pv-version.PNG

                                        Sonnst ist mein System auf dem aktuellen Stand.
                                        Grüße

                                        Wer meint er ist was, hat aufgehört was zu werden

                                        BananaJoeB 1 Antwort Letzte Antwort
                                        0
                                        • BananaJoeB BananaJoe

                                          @haus-automatisierung öhm, ich weis jetzt wieder warum ich die

                                          pvforecast.0.summary.JSONData
                                          

                                          Datenpunkte nicht nutze - weil da nicht genug drin steht ... da steht nur Total drin?

                                          pvforecast.0.summary.JSONData:

                                          [
                                          	{
                                          		"t": 1667456580000,
                                          		"y": 0
                                          	},
                                          	{
                                          		"t": 1667458800000,
                                          		"y": 1
                                          	},
                                          	{
                                          		"t": 1667462400000,
                                          		"y": 5
                                          	},
                                          	{
                                          		"t": 1667466000000,
                                          		"y": 9
                                          	},
                                          

                                          Und in pvforecast.0.summary.JSONTable:

                                          [
                                          	{
                                          		"Time": "2022-11-03 07:23:00",
                                          		"Total": "0",
                                          		"600W": "0",
                                          		"1500W": "0"
                                          	},
                                          	{
                                          		"Time": "2022-11-03 08:00:00",
                                          		"Total": "1",
                                          		"600W": "0",
                                          		"1500W": "1"
                                          	},
                                          	{
                                          		"Time": "2022-11-03 09:00:00",
                                          		"Total": "5",
                                          		"600W": "2",
                                          		"1500W": "3"
                                          	},
                                          	{
                                          		"Time": "2022-11-03 10:00:00",
                                          		"Total": "9",
                                          		"600W": "3",
                                          		"1500W": "6"
                                          	},
                                          

                                          Da kann ich mir halt sämtliche Anlagen aus einem Datenpunkt holen ...
                                          Soll ich einen Request auf GitHub aufmachen?

                                          haus-automatisierungH Online
                                          haus-automatisierungH Online
                                          haus-automatisierung
                                          Developer Most Active
                                          schrieb am zuletzt editiert von
                                          #554

                                          @bananajoe Du hast ja pro Plant auch nochmal JSONData. Daher wäre es ja doppelt, das da auch nochmal zu pflegen.

                                          🧑‍🎓 Autor des beliebten ioBroker-Master-Kurses
                                          🎥 Tutorials rund um das Thema DIY-Smart-Home: https://haus-automatisierung.com/
                                          📚 Meine inoffizielle ioBroker Dokumentation

                                          BananaJoeB 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

                                          327

                                          Online

                                          32.4k

                                          Benutzer

                                          81.5k

                                          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