# FTP Upload neue Datenstruktur

## Funktion

* Mit einem der nächsten Updates wird die Daten Struktur für die FTP-Upload Funktion verändert
---
<p class="callout danger">Achtung, dies gilt nur für SmartDogs nicht für PowerDogs</p>

* Diese ist nun angelehnt an die Datenstruktur die auch auf dem SmartDog verwendet wird
---
* Es werden nicht mehr alle Textdateien im Hauptordner angelegt, sondern diese werden einzeln in einem Ordner System hinterlegt, das ganze sieht wie folgt aus :

[![](https://anleitung.smart-dog.eu/uploads/images/gallery/2025-04/scaled-1680-/Fwcg2nWasmbxe7Nh-image-1745391619197.png)](https://anleitung.smart-dog.eu/uploads/images/gallery/2025-04/Fwcg2nWasmbxe7Nh-image-1745391619197.png)

### Wechselrichter Tages und Monatsdaten

Die einzelnen Textdateien für die Wechelrichter finden sich im jeweiligen Jahres Ordner

[![](https://anleitung.smart-dog.eu/uploads/images/gallery/2025-04/scaled-1680-/5HNNk8OX3F65Wi9A-image-1745391999920.png)](https://anleitung.smart-dog.eu/uploads/images/gallery/2025-04/5HNNk8OX3F65Wi9A-image-1745391999920.png)

Im jeweilinge Jahresordner finden Sie für jeden Wechselrichter Pro String einen Ordner, hier im Beispiel, sehen Sie dass es einen Wechselrichter gibt, dieser ist auf BUS8 (TCP) angeschlossen und hat die BUS Adresse 1, swowie 2 Strings (S1 / S2)

---
Wenn Sie nun in einen der Ordner gehen sieht das ganze wie folgt aus:

[![](https://anleitung.smart-dog.eu/uploads/images/gallery/2025-04/scaled-1680-/wijmgyeGbRwjQtkx-image-1745392082263.png)](https://anleitung.smart-dog.eu/uploads/images/gallery/2025-04/wijmgyeGbRwjQtkx-image-1745392082263.png)

Hier finden Sie nun die einzelnen Text Dateien für den jeweiligen Wechselrichter String 


<style type="text/css">
.tg  {border-collapse:collapse;border-spacing:0;}
.tg td, .tg th {
  font-family:Arial, sans-serif;
  font-size:14px;
  padding:10px 5px;
  border-style:solid;
  border-width:1px;
  overflow:hidden;
  word-break:normal;
}
.tg th {
  font-weight:bold;
}
</style>

<details>
  <summary>Tages 5 min Kurven</summary>
  <b>Name</b><br>
  <ul>
    <li>global_7_28_2015.txt</li>
  </ul>
  <strong>Das Format wie die Dateien ausgegeben werden entspricht der Codierung in der unteren Zeile</strong><br>
  <strong>Beginnend mit Timestamp, ADRESS, BUS, STRINGS, STRINGID, PAC, PDC, UDC und TEMP</strong>

  <ul>
    <li>1438092331;1;1;1;1;1027;1103;310;0</li>
    <li>1438069201;1;1;1;1;542;586;309;0</li>
    <li>1438079739;1;1;1;1;1214;1302;330;0</li>
    <li>1438063806;1;1;1;1;349;387;314;0</li>
    <li>1438081539;1;1;1;1;1564;1677;340;0</li>
    <li>1438056611;1;1;1;1;9;28;227;0</li>
    <li>1438103128;1;1;1;1;153;183;305;0</li>
    <li>1438085139;1;1;1;1;984;1057;312;0</li>
  </ul>

  <table class="tg">
    <tr><th>Timestamp</th><td>1438092331</td></tr>
    <tr><th>Adress</th><td>1</td></tr>
    <tr><th>BUS</th><td>1</td></tr>
    <tr><th>Strings</th><td>1</td></tr>
    <tr><th>String ID</th><td>1</td></tr>
    <tr><th>PAC</th><td>1027</td></tr>
    <tr><th>PDC</th><td>1103</td></tr>
    <tr><th>UDC</th><td>310</td></tr>
    <tr><th>Temp</th><td>0</td></tr>
  </table>
</details>

<details>
  <summary>Tagesdaten</summary>
  <b>Name</b><br>
  <ul>
    <li>avg_day_7_2015.txt</li>
  </ul>
  <strong>Das Format wie die Dateien ausgegeben werden entspricht der Codierung in der unteren Zeile</strong><br>
  Beginnend mit DAY, MONTH, YEAR, ADRESS(BUS), BUS, STRINGS, STRINGID, PRODUCED_DAY (Wh), PAC_MAX of Day, WhDAY_OFFSET (Wh Counter of inverter at midnight)

  <ul>
    <li>1;7;2015;1;1;1;1;19413;2233;5637532</li>
    <li>2;7;2015;1;1;1;1;18983;2221;5657282</li>
    <li>3;7;2015;1;1;1;1;18473;2222;5676265</li>
    <li>4;7;2015;1;1;1;1;18570;2137;5694738</li>
    <li>26;7;2015;1;1;1;1;19289;2328;6020249</li>
    <li>27;7;2015;1;1;1;1;15255;2509;6039538</li>
    <li>28;7;2015;1;1;1;1;9567;1950;6054793</li>
    <li>29;7;2015;1;1;1;1;9189;2371;6064360</li>
  </ul>

  <table class="tg">
    <tr><th>Day</th><td>1</td></tr>
    <tr><th>Month</th><td>7</td></tr>
    <tr><th>Year</th><td>2015</td></tr>
    <tr><th>ADDRESS (BUS)</th><td>1</td></tr>
    <tr><th>BUS</th><td>1</td></tr>
    <tr><th>STRINGS (Nr of)</th><td>1</td></tr>
    <tr><th>STRING ID</th><td>1</td></tr>
    <tr><th>PRODUCED_DAY (Wh)</th><td>19413</td></tr>
    <tr><th>PAC_MAX of Day</th><td>2233</td></tr>
    <tr><th>WhDAY_OFFSET</th><td>5637532</td></tr>
  </table>
</details>

<details>
  <summary>Monatsdaten</summary>
  <b>Name</b><br>
  <ul>
    <li>avg_month_2015.txt</li>
  </ul>
  <strong>Das Format wie die Dateien ausgegeben werden entspricht der Codierung in der unteren Zeile</strong><br>
  Beginnend mit MONTH, YEAR, ADDRESS, BUS, STRINGS, STRINGID, PRODUCED_MONTH (Wh), DAY_START_MIN, DAY_END_MAX

  <ul>
    <li>1;2015;1;1;1;1;41427;8;17</li>
    <li>2;2015;1;1;1;1;119989;7;18</li>
    <li>3;2015;1;1;1;1;235374;6;20</li>
    <li>4;2015;1;1;1;1;361905;6;21</li>
    <li>5;2015;1;1;1;1;287419;5;21</li>
    <li>6;2015;1;1;1;1;278667;5;22</li>
    <li>7;2015;1;1;1;1;435209;5;21</li>
  </ul>

  <table class="tg">
    <tr><th>MONTH</th><td>1</td></tr>
    <tr><th>YEAR</th><td>2015</td></tr>
    <tr><th>ADDRESS</th><td>1</td></tr>
    <tr><th>BUS</th><td>1</td></tr>
    <tr><th>STRINGS</th><td>1</td></tr>
    <tr><th>STRINGID</th><td>1</td></tr>
    <tr><th>PRODUCED_MONTH (Wh)</th><td>41427</td></tr>
    <tr><th>DAY_START_MIN</th><td>8</td></tr>
    <tr><th>DAY_END_MAX</th><td>17</td></tr>
  </table>
</details>



### Wechselrichter Jahresdaten

Die Jahresdaten der Wechselrichter finden Sie im YEARS Ordner, hier werden auch die einzelnen Wechselrichter mit den einzelnen Strings als Ordner aufgeführt, und dort finden sich dann die Jahreswerte

[![](https://anleitung.smart-dog.eu/uploads/images/gallery/2025-04/scaled-1680-/c8La4znLCrJD0XTo-image-1745393138042.png)](https://anleitung.smart-dog.eu/uploads/images/gallery/2025-04/c8La4znLCrJD0XTo-image-1745393138042.png)


<details>
  <summary>Jahresdaten</summary>
  <b>Name</b><br>
  <ul>
    <li>avg_year.txt</li>
  </ul>
  <strong>Das Format wie die Dateien ausgegeben werden entspricht der Codierung in der unteren Zeile</strong><br>
  <strong>Beginnend mit YEAR, ADDRESS, BUS, STRINGS, STRINGID, PRODUCED_YEAR (Wh)</strong>

  <ul>
    <li>2014;1;1;1;1;354335</li>
    <li>2015;1;1;1;1;1759990</li>
  </ul>

  <table class="tg">
    <tr><th>YEAR</th><td>2014</td></tr>
    <tr><th>ADDRESS</th><td>1</td></tr>
    <tr><th>BUS</th><td>1</td></tr>
    <tr><th>STRINGS</th><td>1</td></tr>
    <tr><th>STRINGID</th><td>1</td></tr>
    <tr><th>PRODUCED_YEAR (Wh)</th><td>354335</td></tr>
  </table>
</details>

### Zählerdaten

Die Zählerdaten finden sich für 5-Minuten Kurven, Tagesdaten und Monatsdaten im jweiligen Jahresordner, für jeden Zähler findet sich ein eigener Ordner

Die Jahresdaten finden sich dann wieder eine Eben höher unter YEARS

[![](https://anleitung.smart-dog.eu/uploads/images/gallery/2025-04/scaled-1680-/iqntvtoLLWzbeCx1-image-1745395170901.png)](https://anleitung.smart-dog.eu/uploads/images/gallery/2025-04/iqntvtoLLWzbeCx1-image-1745395170901.png)

<details>
  <summary>Zählerdaten</summary>

  Der gewünschte Zählertyp (Bezug, Liefern, Eigenverbrauch, Laden, Entladen, SOC …)  
  kann in der Config gefunden werden.  
  Beispiel:
  <blockquote>
    <code>iec1107_1358510114_GlobalType=CTR_power_import</code>  
    → globaler Lieferzähler
  </blockquote>

  <details>
    <summary>Tagesdaten – 5-Minuten-Kurven</summary>

  <strong>Name:</strong><br>
    z. B. <code>iec1107_1358510114_global_5_28_2021.txt</code>

  <ul>
      <li>1622226604;912</li>
      <li>1622226904;916</li>
      <li>622227204;932</li>
      <li>1622229604;823</li>
      <li>1622231104;551</li>
    </ul>

  <strong>Format:</strong> <code>Timestamp; Momentanwert (alle 5 Minuten)</code>
  </details>

  <details>
    <summary>Monatsdaten – Tageswerte</summary>

  <strong>Name:</strong><br>
    z. B. <code>iec1107_1358510181_avg_day_5_2021.txt</code>

  <ul>
      <li>1;6770;40870145</li>
      <li>2;5546;40877188</li>
      <li>3;7429;40882734</li>
      <li>4;0;40897199</li>
      <li>5;0;40900471</li>
      <li>6;0;40917124</li>
      <li>7;3880;40922478</li>
      <li>8;6357;40926615</li>
      <li>9;6084;40933181</li>
      <li>10;8240;40939521</li>
      <li>11;8950;40947992</li>
      <li>12;6380;40957173</li>
      <li>13;6620;40963818</li>
      <li>14;7201;40970650</li>
      <li>15;6208;40978128</li>
      <li>16;5380;40984546</li>
      <li>17;6402;40990174</li>
      <li>18;6848;40996871</li>
      <li>19;5110;41003974</li>
      <li>20;5981;41009309</li>
      <li>21;9788;41015599</li>
      <li>22;7584;41025703</li>
  </ul>

  <strong>Format:</strong> <code>Tag; Wh; Zählerstand</code>
  </details>

  <details>
    <summary>Jahresdaten – Monatswerte</summary>

  <strong>Name:</strong><br>
    z. B. <code>iec1107_1358510114_avg_month_2021.txt</code>

  <ul>
      <li>5;7588036;40844525</li>
      <li>6;176012;40922478</li>
      <li>7;41336;41172125</li>
  </ul>

  <strong>Format:</strong> <code>Monat; Wh; Zählerstand</code>
  </details>

  <details>
    <summary>Gesamtdaten – Jahreswerte</summary>

  <strong>Name:</strong><br>
    z. B. <code>iec1107_1358510181_avg_year.txt</code>

  <ul>
      <li>2021;2562934;28077812</li>
  </ul>

  <strong>Format:</strong> <code>Jahr; Wh; Zählerstand</code>
  </details>

</details>


### Alarme

* Die Alarme werden wie gewohnt im Hauptordner hinterlegt

<details>
  <summary>Alarme (events)</summary>
  <b>Name</q>
  
*  avg_month_2015.txt

**Das Format wie die Dateien ausgegeben werden entspricht der Codierung in der unteren Zeile**

* **Beginnend mit Alarm ID; Timestamp; Adress; Bus; Errortyp; Errorcode; Error-text**




<style type="text/css">
.tg  {border-collapse:collapse;border-spacing:0;}
.tg td{font-family:Arial, sans-serif;font-size:14px;padding:10px 5px;border-style:solid;border-width:1px;overflow:hidden;word-break:normal;}
.tg th{font-family:Arial, sans-serif;font-size:14px;font-weight:normal;padding:10px 5px;border-style:solid;border-width:1px;overflow:hidden;word-break:normal;}
</style>
<table class="tg">
  <tr>
    <td class="tg-031e">Alarm ID</th>
    <td class="tg-031e">interne fortlaufende Nr des Alarmes</th>
  </tr>
  <tr>
    <td class="tg-031e">Timestamp</td>
    <td class="tg-031e">Zeitstempel des Alarms</td>
  </tr>
  <tr>
    <td class="tg-031e">Adress</td>
    <td class="tg-031e">Busadresse des WR (Bei Sensoren etc. steht hier 0)</td>
  </tr>
  <tr>
    <td class="tg-031e">Bus</td>
    <td class="tg-031e">Bus an dem der WR angeschlossen ist (1,2,10)</td>
  </tr>
  <tr>
    <td class="tg-031e">Errortyp</td>
    <td class="tg-031e">10 Status, 20 Störung, 30 Systemalarm</td>
  </tr>
  <tr>
    <td class="tg-031e">Errorcode</td>
    <td class="tg-031e">Code den der WR ausgibt (Bei SMA gibt es einen Offset von 100000 für Bus1 und 200000 für Bus2 sowie 1000 je Bus adresse. D.h. Alarm 10 von WR an Bus2 mit Adr 12 hat dann die Nummer 212010</td>
  </tr>
  <tr>
    <td class="tg-031e">Errortext</td>
    <td class="tg-031e">Text der Alarmmeldung</td>
  </tr>
</table>
<span style='font-size:9px;'></span>



</details>