Sollog für Würth / SMA/ Diehl / SolarMax / Delta (Solarlogger)

Wie gesagt, das Loggen meiner Delta und Solarmax- Wechselrichter funktioniert einwandfrei.
Jetzt versuche ich meine SMA- Wechselrichter zu loggen. Es sind SMC 7000TL und SMC9000TL.
Ich werde dazu das Hilfsprogramm YASDI von SMA verwenden.
Noch habe ich keinen Kontakt zum WR.
Ich werde es dann in diesem Thread versuchen zu realisieren:
http://www.photovoltaikforum.com/datenlogger-f5/smc-9000-tl-ueberwachen-t72757.html

http://www.photovoltaikforum.com/datenlogger-f5/sma-datenlogger-auf-dockstar-t75099.html
 
Zuletzt bearbeitet:
Auch der Logger für die SMA- Wechselrichter funktioniert.
Ich habe nur einen Fehler in der Zuordnung der Monatswerte, so daß die Jahresdiagramme verkehrte Werte anzeigen.
Aber das ist nicht so wichtig.
Ich möchte nun eine Relaiskarte über den USB- Port ansteuern.
Ich hab da diese Anleitung gefunden:
http://da.finchi.de/2011/11/abacom-usb-relaisboard/
http://www.ebay.de/itm/360253432923...X:IT&_trksid=p3984.m1438.l2649#ht_1578wt_1185

Gibt es da vielleicht vergleichbare Lösungen, die vielleicht nicht so teuer sind. Mir würde ein Relais reichen.

Ich hab mir jetzt dieses USB Relay bestellt:

http://sigma-shop.com/product/67/usb-relay-controller-one-channel-pcb.html

Das USB- Relais funktioniert, aber.....

Ich kann es mit Bash ein und ausschalten:
Code:
echo -e '\xff\x01\x01' > /dev/ttyUSB1
sleep 3
echo -e '\xff\x01\x00' > /dev/ttyUSB1

Wenn ich es vom Programm her mache, geht nur das Einschalten:

Code:
#define REL_off "echo -e '\xff\x01\x00' > /dev/ttyUSB1"
#define REL_on "echo -e '\xff\x01\x01' > /dev/ttyUSB1"

   system (REL_BAUD);
 printf("Relais BAUD\n");
   system (REL_on);   
   printf("Relais Ein\n"); 
sleep (10);
  system (REL_BAUD);
 printf("Relais BAUD\n");
   system (REL_off);   
   printf("Relais Aus\n");

Code:
root@erwin-desktop:/home/yasdi/smalog#  ./smalog /home/yasdi/smalog/smalog.conf
Relais BAUD
Relais Ein
Relais BAUD
sh: Syntax error: Unterminated quoted string
Relais Aus

Ich hab es wie gesagt mehrmals geprüft:
Wenn ich es direkt eingebe funktioniert es, vom Programm her nur das Einschalten.

Was könnte ich noch versuchen oder vielleicht anders machen?

Ich hab die Lösung:

Code:
 if ((fd = open(REL_DEVICE, O_RDWR)) == -1)
   {
    perror("terminal: Can't open device " REL_DEVICE);
 //   return(1);
   }
unsigned char buffer1[4];
	int n1;
	buffer1[0] = 0xff;	// Init
	buffer1[1] = 0x01;	// Adress 1
	buffer1[2] = 0x00;	// 0x00 für aus
	buffer1[3] = buffer1[0] ^ buffer1[1] ^ buffer1[2];
	// berechnung für Fehlerkorrektur

	n1 = write (fd,buffer1,sizeof(buffer1));
	if (n1 < 0)
	{
		fprintf(stderr,"Unable to write  Relais");
//		return 1;
	}

   printf("Relais Aus\n");
 
Zuletzt bearbeitet:
Das schalten des Rlais funktioniert recht schön.

Aber da hab ich noch ein Problem....

Ich verwende ja für meine Überwachung so kleine Minicomputer Dockstar oder Pogoplug.

Die weißen Geräte funktionieren nach Doozans Modifikationen und stellen das USB- Device ttyUSB0 zur Verfügung.

Dann habe ich noch eine schwarze Pogoplug Pro. Die ist auch mit einem Debian versehen. Leider stellt sie kein ttyUSB0 zur Verfügung.

Sie arbeitet mit einer etwas anderen Technik wie die weissen Geräte. Ich habe jetzt schon stundenlang gegoogelt und es scheint keine verfügbare Lösung zu geben.

Weis da wer vielleicht wie man den ftdi_sio draufbringen kann oder wo man nachfragen kann wie man das machen könnte?
 
Ich bin jetzt dabei meine Überwachung auch für den Diehl- Wechselrichter zu machen.

Ich habe über einen USB / RS485 - Wandler Verbindung zum Wechselrichter. Siehe hier:

http://www.photovoltaikforum.com/da...erten-und-ueberwachen-t64097-s20.html#p786671

Aber leider hänge ich beim Aussenden des Datenstrings zum Wechselrichter.

Nach dem 9. Hexwort wird überflüssiger weise ein 0D eingefügt.

Hier wird die Schnittstelle vorbereitet:

Code:
# define TERM_DEVICE "/dev/ttyUSB0"    /* = COM1 / USB */
# define TERM_SPEED B19200        /* Bit/Sek */
..........

  if ((fd = open(TERM_DEVICE, O_RDWR)) == -1)
   {
    perror("terminal: Can't open device " TERM_DEVICE);
    return(1);
   }
            /* RS232 konfigurieren */

  if (tcgetattr(fd, &term_attr) != 0)
   {
    perror("terminal: tcgetattr() failed");
    return(1);
   }
  term_attr.c_cflag = TERM_SPEED | CS8 | CLOCAL | CREAD;
  term_attr.c_iflag = 0;
  term_attr.c_oflag = OPOST | ONLCR;
  term_attr.c_lflag = 0;
  if (tcsetattr(fd, TCSAFLUSH, &term_attr) != 0)
    perror("terminal: tcsetattr() failed");

            /* Std.-Eingabe anpassen */

 tcgetattr(STDIN_FILENO, &term_attr) ;
   
   
            /* alte Einst. sichern */

    old_flags = term_attr.c_lflag;
    term_attr.c_lflag &= ~(ICANON | ECHO);
    tcsetattr(STDIN_FILENO, TCSAFLUSH, &term_attr) ;

Hier werden die Daten ausgesendet:

Code:
message_power[0] = 0x16;
message_power[1] = 0x10;
message_power[2] = 0x02; // 
message_power[3] = 0x10;
message_power[4] = 0x10; // 
message_power[5] = 0x4A; // 
message_power[6] = 0xA6; // 
message_power[7] = 0x9C; // 
message_power[8] = 0x40;
message_power[9] = 0x0A;
message_power[10] = 0xA7;
message_power[11] = 0x81; // 
message_power[12] = 0xF2;
message_power[13] = 0x00; // 
message_power[14] = 0x00; // 
message_power[15] = 0x28; // 
message_power[16] = 0x00; // 
message_power[17] = 0x08;
message_power[18] = 0x00;
message_power[19] = 0x11;
message_power[20] = 0x00; // 
message_power[21] = 0x14;
message_power[22] = 0x00; // 
message_power[23] = 0x17; // 
message_power[24] = 0x00; // 
message_power[25] = 0x1A; // 
message_power[26] = 0x00;
message_power[27] = 0x1D;
message_power[28] = 0x00;
message_power[29] = 0x20; // 
message_power[30] = 0x00;
message_power[31] = 0x24; // 
message_power[32] = 0x00; // 
message_power[33] = 0x25; // 
message_power[34] = 0x10; // 
message_power[35] = 0x03;
message_power[36] = 0x51;
message_power[37] = 0x22;


n = write(fd,message_power,38);
if (n < 0) {
   close(fd);
   error_retry("ERROR sending TCP packet");
   break;
}
         if (DEBUG)
           printf("\nWR= message gesendet: %s\n", message_power);

            sleep (1) ;

Wahrscheinlich hab ich die Schnittstelle nicht richtig konfiguriert.

Aber wo hab ich meinen Fehler?
 
Das Loggen meines Diehls funktioniert dank Deines Tips, Ralf.

http://erwinruhl.dyndns.info:94/diehl/solarertrag.php?wr=1

Ich habe aber noch ein Problem.

Bei der Antwort des Wechselrichters kommt es vor, wenn ein Zeichen dezimal 16 empfangen wird, noch ein 16 eingefügt wird, so daß ich den String ignorieren muss und in meiner Grafik eine kleine Lücke entsteht.

Ich habe schon einen anderen USB/485- Wandler verwendet, so daß ich wieder an einen Softwarefehler denke.

Vielleicht muss ich aber die Verbindung terminieren. Bisher habe ich nichts terminiert.

Auch bei meinem Delta habe ich das Verhalten, daß zwischendurch Datenmüll kommt.

Hier die betreffenden Programmteile:

Code:
  if ((fd = open(TERM_DEVICE, O_RDWR)) == -1)
   {
    perror("terminal: Can't open device " TERM_DEVICE);
    return(1);
   }
            /* RS232 konfigurieren */

  if (tcgetattr(fd, &term_attr) != 0)
   {
    perror("terminal: tcgetattr() failed");
    return(1);
   }
  term_attr.c_cflag = TERM_SPEED | CS8 | CLOCAL | CREAD;
  term_attr.c_iflag = 0;
  term_attr.c_oflag = 0;
  term_attr.c_lflag = 0;
  if (tcsetattr(fd, TCSAFLUSH, &term_attr) != 0)
    perror("terminal: tcsetattr() failed");

            /* Std.-Eingabe anpassen */

 tcgetattr(STDIN_FILENO, &term_attr) ;
   
    
            /* alte Einst. sichern */

    old_flags = term_attr.c_lflag;
    term_attr.c_lflag &= ~(ICANON | ECHO);
    tcsetattr(STDIN_FILENO, TCSAFLUSH, &term_attr) ;
  

.........................................


// Read answer
bzero(buffer, 256);
n = read(fd, buffer, 255);
for (counter = 0; counter < 100 && n < 0; counter++) {
   if (DEBUG)
      debug_entry("Socket contains no data, trying to read again later");
   usleep(10000);
   n = read(fd, buffer, 255);
}

if (n < 0) {
   close(fd);
   error_retry("ERROR receiving TCP packet");
   break;
}

Vielleicht bekomme ich einen Tip .

Es würde mich auch interessieren wo ich nachlesen kann um die COM- Schnittstelle richtig zu konfigurieren und anzusprechen.
 
Ja Ralf, das sind noch Reste von Zagibus Solarmax- Logger. Der fragt seine Daten über die Ethernetnet- Schnittstelle ab.
Ich hab mir halt die Abfrage der Com- Schnittstelle aus dem Internet zusammengesucht und hatte keine richtige Anleitung.

Vielleicht kannst Du mir ein Beispiel geben wie ich es richtig mache.

Es funktioniert ja. Halt mit sprodischen Fehlern.
Ich bin auch nicht sicher, ob es vom Programm oder von der Leitung oder dem USB/RS485- Wandler her rührt.

Jedenfalls freue ich mich, daß ich dem Diehl- Wechselrichter seine Daten abfragen kann. :cool:

JETZT HAB ICH DIESE Anleitung gefunden:

http://www.mikrocontroller.net/articles/Ports_benutzen_(GCC)

Ich habe jetzt auch gesehen, wenn ich den Logger über den Watchdog laufen lasse, startet er nach einer Minute neu, wenn keine ordentlichen Daten kommen.

Ist also kein Beinbruch, wenn mal ein String ignoriert wird.

http://forum.ubuntuusers.de/topic/bidirectional-communication-via-rs232/#post-4673917
 
Zuletzt bearbeitet:
Passiert das denn grundsätzlich, dass der Wert 16 doppelt kommt?

Schau Dir bei "man tcgetattr" auch die Bedeutung von MIN und TIME an.
 
Oder hier: http://www.unixwiz.net/techtips/termios-vmin-vtime.html

Wenn du blockierend einlesen willst, dann kannst du vmin auf einen Wert > 1 setzen. vtime ist dann als inter-character timeout zu sehen...

Code:
term_attr.c_cc[VTIME] = 5;
term_attr.c_cc[VMIN] = 10;
Mindestens zehn Zeichen abwarten und warte zwischen den Zeichen maximal 0,5 Sekunden...

Falls das nicht ausreicht kannst du noch select versuchen. (http://linux.die.net/man/2/select)

Gruß
Oliver
 
Passiert das denn grundsätzlich, dass der Wert 16 doppelt kommt?

.

Ja, immer wenn die 16 kommt, kommt danach nochmal die 16.

Ich werde das mit MIN und TIME versuchen.

Danke auch für die Links.

Ich habe jetzt beide Variablen gesetzt. Keine Veränderung!

Ich könnte es ja mit meinem Terminal- Programm mal versuchen.

Mal schaun.

Ich habe es jetzt mit dem Terminalprogramm von meinem 2. PC getestet.

Da kommen die Daten ordentlich an.

Muss also an meiner Leitung zum Wechselrichter liegen.

Muss dann vielleicht terminieren.

Das Stecken des Terminationssteckers hat auch nichts gebracht.

Naja, muss den String halt ignorieren.

Vertausch mal die USB/485- Wandler, mal schaun.
 
Zuletzt bearbeitet von einem Moderator:
Ich werde das mit MIN und TIME versuchen.
Ich habe jetzt beide Variablen gesetzt. Keine Veränderung!
Welche Werte hast Du gesetzt, und wobei kam keine Veränderung?
Meine Vermutung ist, dass der Wert 16 schon auf der Leitung doppelt kommt.

Ich gehe mal davon aus, dass Du einen Block von n Bytes bekommst. Wenn der Wert 16 gesendet wird, kommt der doppelt, also empfängst Du sicherheitshalber 2*n Bytes. Bei einer bestimmten Geschwindigkeit gibt es eine bestimmte Zeit zwischen zwei Zeichen. Diese setzt Du für TIME. Für Min setzt Du 1 oder die Block-Größe n. Genau genommen sollte TIME=1 reichen für alle Geschwindigkeiten über 100 Bit/s. Wenn Du einen Block gelesen hast, entfernst Du die doppelten Werte 16 und hast das gewünschte Ergebnis.
 
So ganz grundsätzlich tritt der Fehler nicht auf. Am Anfang und Ende werden auch 16 gesendet, wobei hier der Fehler nicht auftritt.

Hier mal meine Fehler:
Code:
Received answer b0: 22
Received answer b1: 16
Received answer b2: 2
Received answer b3: 64
Received answer b4: 10
Received answer b5: -89
Received answer b6: -127
Received answer b7: 16
Received answer b8: 16         kein Fehler
Received answer b9: 74
Received answer b10: -90
Received answer b11: -100
Received answer b12: 114
Received answer b13: 0
Received answer b14: 18
Received answer b15: 80
Received answer b16: 86
Received answer b17: 45
Received answer b18: 83
Received answer b19: 89
Received answer b20: 83
Received answer b21: 84
Received answer b22: 69
Received answer b23: 77
Received answer b24: 32
Received answer b25: 32
Received answer b26: 32
Received answer b27: 32
Received answer b28: 32
Received answer b29: 32
Received answer b30: 32
Received answer b31: 32
Received answer b32: 32
Received answer b33: 80
Received answer b34: 114
Received answer b35: 115
Received answer b36: 50
Received answer b37: 1
Received answer b38: -64
Received answer b39: 0
Received answer b40: 8
Received answer b41: 1
Received answer b42: 125
Received answer b43: 0
Received answer b44: -28
Received answer b45: 0
Received answer b46: 16
Received answer b47: 16  >>>>>>>>>>>>>>> Fehler
Received answer b48: 1
Received answer b49: 110
Received answer b50: 0
Received answer b51: 0
Received answer b52: 0
Received answer b53: 77
Received answer b54: 0
Received answer b55: 32
Received answer b56: -92
Received answer b57: -104
Received answer b58: 16
Received answer b59: 3
Received answer b60: -116
Received answer b37: 1
Received answer b38: 192
Received answer udc: 448
Received answer b39: 0
Received answer b40: 8
Received answer idc: 8
Received answer b41: 1
Received answer b42: 125
Received answer pdc: 381
Received answer b43: 0
Received answer b44: 228
Received answer ul1: 228
Received answer b45: 0
Received answer b46: 16
Received answer il1: 16
Received answer b47: 16  >>>>>>>>>>>>>>> Fehler
Received answer b48: 1
Received answer pac: 4097
Received answer b49: 110
Received answer b50: 0
Received answer b51: 0
Received answer b52: 0
Received answer kdy: 7208960
Received answer b53: 77
Received answer b54: 0
Received answer b55: 32
Received answer b56: 164
Received answer kt0: 5054628
dataok ==..............: 1
Received answer pdc 381
Received answer pac 4097
Received answer prl.................: 10753
dataok ==..............: 0


Received answer : @
��J��r
Received answer b0: 22
Received answer b1: 16         kein Fehler
Received answer b2: 2
Received answer b3: 64
Received answer b4: 10
Received answer b5: -89
Received answer b6: -127
Received answer b7: 16
Received answer b8: 16         kein Fehler
Received answer b9: 74
Received answer b10: -90
Received answer b11: -100
Received answer b12: 114
Received answer b13: 0
Received answer b14: 18
Received answer b15: 80
Received answer b16: 86
Received answer b17: 45
Received answer b18: 83
Received answer b19: 89
Received answer b20: 83
Received answer b21: 84
Received answer b22: 69
Received answer b23: 77
Received answer b24: 32
Received answer b25: 32
Received answer b26: 32
Received answer b27: 32
Received answer b28: 32
Received answer b29: 32
Received answer b30: 32
Received answer b31: 32
Received answer b32: 32
Received answer b33: 80
Received answer b34: 114
Received answer b35: 116
Received answer b36: -102
Received answer b37: 1
Received answer b38: -69
Received answer b39: 0
Received answer b40: 9
Received answer b41: 1
Received answer b42: -111
Received answer b43: 0
Received answer b44: -27
Received answer b45: 0
Received answer b46: 16
Received answer b47: 16  >>>>>>>>>>>>>>> Fehler
Received answer b48: 1
Received answer b49: -126
Received answer b50: 0
Received answer b51: 0
Received answer b52: 0
Received answer b53: 118
Received answer b54: 0
Received answer b55: 32
Received answer b56: -92
Received answer b57: -62
Received answer b58: 16         kein Fehler
Received answer b59: 3
Received answer b60: -7
Received answer b37: 1
Received answer b38: 187
Received answer udc: 443
Received answer b39: 0
Received answer b40: 9
Received answer idc: 9
Received answer b41: 1
Received answer b42: 145
Received answer pdc: 401
Received answer b43: 0
Received answer b44: 229
Received answer ul1: 229
Received answer b45: 0
Received answer b46: 16
Received answer il1: 16
Received answer b47: 16  >>>>>>>>>>>>>>> Fehler
Received answer b48: 1
Received answer pac: 4097
Received answer b49: 130
Received answer b50: 0
Received answer b51: 0
Received answer b52: 0
Received answer kdy: 8519680
Received answer b53: 118
Received answer b54: 0
Received answer b55: 32
Received answer b56: 164
Received answer kt0: 7741604
dataok ==..............: 1
Received answer pdc 401
Received answer pac 4097
Received answer prl.................: 10216
dataok ==..............: 0

Received answer b37: 1
Received answer b38: 200
Received answer udc: 456
Received answer b39: 0
Received answer b40: 17
Received answer idc: 17
Received answer b41: 3
Received answer b42: 38
Received answer pdc: 806
Received answer b43: 0
Received answer b44: 228
Received answer ul1: 228
Received answer b45: 0
Received answer b46: 34
Received answer il1: 34
Received answer b47: 3
Received answer b48: 16
Received answer pac: 784
Received answer b49: 16  >>>>>>>>>>>>>>> Fehler
Received answer b50: 0
Received answer b51: 0
Received answer b52: 2
Received answer kdy: 1048578
Received answer b53: 187
Received answer b54: 0
Received answer b55: 32
Received answer b56: 167
Received answer kt0: 12263591
dataok ==..............: 1

Received answer : @
��J��r
Received answer b0: 22
Received answer b1: 16
Received answer b2: 2
Received answer b3: 64
Received answer b4: 10
Received answer b5: -89
Received answer b6: -127
Received answer b7: 16
Received answer b8: 16
Received answer b9: 74
Received answer b10: -90
Received answer b11: -100
Received answer b12: 114
Received answer b13: 0
Received answer b14: 18
Received answer b15: 80
Received answer b16: 86
Received answer b17: 45
Received answer b18: 83
Received answer b19: 89
Received answer b20: 83
Received answer b21: 84
Received answer b22: 69
Received answer b23: 77
Received answer b24: 32
Received answer b25: 32
Received answer b26: 32
Received answer b27: 32
Received answer b28: 32
Received answer b29: 32
Received answer b30: 32
Received answer b31: 32
Received answer b32: 32
Received answer b33: 80
Received answer b34: 114
Received answer b35: -122
Received answer b36: 19
Received answer b37: 1
Received answer b38: -53
Received answer b39: 0
Received answer b40: 16
Received answer b41: 16  >>>>>>>>>>>>>>> Fehler
Received answer b42: 2
Received answer b43: -20
Received answer b44: 0
Received answer b45: -28
Received answer b46: 0
Received answer b47: 31
Received answer b48: 2
Received answer b49: -42
Received answer b50: 0
Received answer b51: 0
Received answer b52: 2
Received answer b53: -43
Received answer b54: 0
Received answer b55: 32
Received answer b56: -89
Received answer b57: 30
Received answer b58: 16
Received answer b59: 3
Received answer b60: 82
Received answer b37: 1
Received answer b38: 203
Received answer udc: 459
Received answer b39: 0
Received answer b40: 16
Received answer idc: 16
Received answer b41: 16  >>>>>>>>>>>>>>> Fehler
Received answer b42: 2
Received answer pdc: 4098

Ich habe jetzt den Stick ausgewechselt und werde mal beobachten.

Der USB / 485- Wandler kommt ja aus China und ich hab bei den Dingern eine Ausfallquote von 50 % wenn ich sie neu kaufe.

Ich hatte gedacht, die 2 Variablen bewirken eine Blockierung des Ports bis alle Zeichen angekommen sind und die Blockierung wird nach time wieder aufgehoben.

Ich arbeite mit 19200 Bd.
Es werden 61 Zeichen gesendet.

Meine Einstellung war:
Code:
 // term_attr.c_cc[VTIME] = 10;
 // term_attr.c_cc[VMIN] = 61;

Aber wahrscheinlich hab ich die Steuerung noch nicht richtig begriffen.

Ich habe auch meinen chinesischen Stick in Verdacht und hoffe, daß der andere besser geht.

Ich hatte gerade den Fehler wieder. Bei einem höheren Byte.

Code:
Received answer b51: 16
Received answer b52: 16
Received answer kdy: 4112
Received answer b53: 234
Received answer b54: 0
Received answer b55: 32
Received answer b56: 181
Received answer kt0: 153437

merkwürdig.

Ich komme zu der Überzeugung, der Wechselrichter schickt mir, wenn er die 16 in einem Messwert schickt, das Zeichen doppelt.

Bei den Zeichen am Anfang und Ende des Strings tritt der Fehler ja nicht auf.

Ich werde dann die Werte zwishenspeichern und einfach die alten Werte nehmen.
 
Zuletzt bearbeitet:
Ich vermute auch, dass der Wert schon vom Wandler doppelt gesendet wird. Der Wert 16 entspricht Ctrl-P, und mir ist keine spezielle Bedeutung für Ctrl-P bekannt, die dazu führen würde, dass der Wert zweimal gelesen würde. Es wäre auch seltsam, wenn ein defekter Adapter gerade nur den Wert doppelt übergeben würde.
 
Ich habe meine Logger ja auf so Minicomputern Seagate Dockstar und Pogoplug laufen.
Das Programm befindet sich da ja auf einem USB- Stick.
Da sich die USB- Sticks vereinzelt verabschieden, erwäge ich nun mir kleine Raspberry Pi anzuschaffen.
Hier befindet sich das Betriebssystem auf einer SD- Karte.
Sind hier weniger Ausfälle zu erwarten?
Ich weis nicht recht, ob es was bringen würde, da man die SD- Karten mit Kartenlesern / Adaptern auch am USB- Bus anschliessen kann.
Die Raspberry Pi sind zwar etwas langsamer. Sie haben aber immerhin 512 MB RAM. Der Stromverbrauch ist auch geringer.
Sie werden meist ohne Gehäuse und ohne Netzteil angeboten. Die Pogoplugs und Dockstars sind komplett.
Ich denke schon wegen des geringeren Stromverbrauchs sollte ich mal einen Raspberry Pi ausprobieren.
Was meint Ihr?
 
Ich bin jetzt momentan vom Raspberry Pi abgekommen. Ob nun SD- Karte oder USB- Stick, die Technik wird ziemlich gleich sein und dann gehen halt die SD- Karten kaputt.
Ich bleibe also bei meinen Pogoplugs.
Da habe ich ein Programm gefunden, das den Stick ziemlich als read only mountet und das Programm würde ziemlich im RAM laufen.
Aber so genau blicke ich nicht durch.
Ich habe also folgendes Programm installiert:
http://www.spinifex.com.au/plugs/flashybrid.html
Im Dokument /etc/flashybrid/ramstore muss man noch /var/www hinzufügen, damit die Grafik angezeigt wird.
So weit so gut.
Bei einem Neustart des Systems werden allerdings die Daten verloren.
Habt Ihr vielleicht eine Idee, was ich machen könnte, damit die Daten erhalten bleiben?

Ich hab nochmal nachgelesen:
Das könnte die Lösung sein:

To sync the ram store with the rootfs:
# fh-sync

Mein nächstes Projekt wird die Überwachung von Voltwerk / Conergy Wechselrichtern sein.
Den CAN / USB- Adapter hab ich bestellt.
 
Zuletzt bearbeitet:
... Habt Ihr vielleicht eine Idee, was ich machen könnte, damit die Daten erhalten bleiben? ...

Eventuell stündlich via Cron-job sichern:
Ich habe mein rrdstats jahrelang so laufen lassen: Loggen der Daten in den Ram, stündliches sichern der Log-Daten via cron, beim geplanten herunterfahren Daten ebenfalls sichern, beim Systemstart die zulezt gesicherten Log-Daten in den RAM zurückschreiben. Das hat mein USB-Stick (Marke KingKong/ Noname) problemlos über mehrere Jahre mitgemacht. Im schlimmsten Fall (z.B. Stromausfall) fehlen Dir maximal die Log-Daten der letzten Stunde.
 
Zuletzt bearbeitet:
Holen Sie sich 3CX - völlig kostenlos!
Verbinden Sie Ihr Team und Ihre Kunden Telefonie Livechat Videokonferenzen

Gehostet oder selbst-verwaltet. Für bis zu 10 Nutzer dauerhaft kostenlos. Keine Kreditkartendetails erforderlich. Ohne Risiko testen.

3CX
Für diese E-Mail-Adresse besteht bereits ein 3CX-Konto. Sie werden zum Kundenportal weitergeleitet, wo Sie sich anmelden oder Ihr Passwort zurücksetzen können, falls Sie dieses vergessen haben.