NEWS
Neuer Adapter: SMA Wechselrichter mit sbfspot
-
@tottbeck ist das auf dem gleichen PI oder gemountet?
-
Der Adapter läuft auf dem gleichem PI.
Habe den Adapter zwischenzeitlich von 4.3.4 auf 4.4.2 aktualisiert ohne Änderung.scheth1@raspi3:~ $ sqlite3 /home/scheth1/smadata/SBFspot.db SQLite version 3.40.1 2022-12-28 14:03:47 Enter ".help" for usage hints. sqlite> select * from Inverters; 2100080719|SN: 2100080719|SB 5000TL-20|03.01.05.R|1745147704|3844|14097|83460352|65675.3|64404.3|OK|Closed|62.54 sqlite> .quit
-
@tottbeck da klinke ich mich mal ein. Ich habe nämlich exakt dasselbe Problem. Ich habe meinen IObroker von Windows auf ein RPI umziehen lassen. Ich bekomme jetzt die selbe Fehlermeldung. Die Abfrage vom Wechselrichter, wie auch das Schreiben in die Datenbank funktionieren problemlos. Nur das Auslesen aus der DB scheitert. Ich habe auch schon eine komplette Neuinstallation gemacht, mit dem selben Ergebnis.
Hast du eine Lösung gefunden?
-
@vj77 Leider nein.
Ich habe noch SBFspot.db gegen eine ältere kleinere Version (~100kB) getauscht, falls die korrupt geworden wäre. Hat aber auch nichts geändert. -
Hilft euch nicht direkt weiter aber können eure WR mit einen Software Update vielleicht Modbus?
-
Nur zur Vorsichtig: Du hast im iobroker die Instanz schon auf auf SQLite stehen und den Pfad ohne Leerzeichen und in richtiger Groß- und Kleinschreibung etc? z. B.
Wahrscheinlich ein überflüssiger Tipp, aber manchmal übersieht man ja doch irgendwas ...
Hast schon mal testweise versucht die DB in ein anderes Verzeichnis zu legen und dort abzurufen?
-
@Tottbeck @VJ77 Habt ihr die Möglichkeit, in der main.js des Adapters zu editieren?
In Zeile 371 beginnt folgender Teil:
adapter.log.info("start with sqlite"); const path = require("path"); const file_path = adapter.config.sqlite_path; const dbPath = path.resolve(__dirname, file_path.trim()); adapter.log.debug("--- connecting to " + dbPath); const sqlite3 = require("better-sqlite3"); sqlite_db = new sqlite3(dbPath, { fileMustExist: true }); adapter.log.debug("sqlite Database is connected ..."); //DB_GetInverters();
Ihr könntet testweise aus
{ fileMustExist: true }
ein
{ fileMustExist: false }
machen.
Dann wird die Datenbank-Datei neu angelegt. Vielleicht hilft das, zu erkennen, wo better-sqlite3 die Datenbank-Datei erwartet... Natürlich ist dann der Inhalt der neu angelegten Datenbank falsch aber zur Fehlersuche evtl. hilfreich... -
Ich habe mal die Config für die DB verändert auf /home/scheth1/SBFspot.db
Da liegt auch eine Datenbank (die alte als Backup), der Ordner hat aber vermutlich keine ausreichenden Rechte für den Zugriff:scheth1@raspi3:/home $ ls -l total 8 drwxr-xr-x 5 iobroker iobroker 4096 Apr 23 18:00 iobroker drwx------ 11 scheth1 scheth1 4096 Apr 20 13:17 scheth1 scheth1@raspi3:/home $ ls -l scheth1/SBF* -rwxrwxrwx 1 scheth1 scheth1 17821696 Apr 18 14:15 scheth1/SBFspot.db
Dann sieht die Fehlermeldung vom sqlite anders aus.
2025-04-23 20:35:00.884 - info: sbfspot.0 (27279) start with sqlite 2025-04-23 20:35:00.885 - debug: sbfspot.0 (27279) --- connecting to /home/scheth1/SBFspot.db 2025-04-23 20:35:00.890 - error: sbfspot.0 (27279) exception in DB_Connect [SqliteError: unable to open database file] 2025-04-23 20:35:00.891 - debug: sbfspot.0 (27279) disconnect database
vorher war es ja:
[TypeError: Cannot open database because the directory does not exist]
Ist damit ein directory innerhalb der DB gemeint ??Die main.js habe ich geändert. Die Erwartung wäre das woanders ein DB-File angelegt wird ?
-
@tottbeck sagte in Neuer Adapter: SMA Wechselrichter mit sbfspot:
SqliteError: unable to open database file
Wie sehen die Rechte auf /home/scheth1/smadata/ und auf /home/scheth1 aus?
Ich denke immer noch, dass irgendwo Schreibrechte auf einem Ordner fehlen...Die Erwartung wäre das woanders ein DB-File angelegt wird
genau.
-
-
@vj77 hier kann der user iob SBFspot.db zum schreiben öffnen. Sollte da nicht der Eigentümer iobroker sein?
-
Vielleicht nochmal zu meiner Vorgehensweise.
- installation ioBroker nach dieser Anleitung: https://forum.iobroker.net/topic/51869/installation-auf-raspi-einfacher-geht-s-nicht
- Installation SBFspot: https://github.com/SBFspot/sbfspot-config
- Test SBFspot, wie es hier beschrieben steht: (lief problemlos)
- Installation sbfspot Adapter im ioBroker, mit folgenden Einstellungen:
- Resultat:
Einen User Iobroker habe ich gar nicht angelegt. Passiert das automatisch bei der ioBroker Installation? Ich bin leider bisher nicht so bewandert nicht so bewandert was Linux betrifft. Ich komme eher aus der Windows-Welt
(wo die Installation übrigens problemlos geklappt hat....)
Danke für die Hilfe.
-
Es läuft. Ich habe einfach mal den gesamten Pfad /home/iob/smadata/ großzügig mit allen Rechten versehen. Das dürfte zwar nicht im Sinne des Erfinders sein, zeigt aber dass es ein Problem mit den Berechtigungen ist
-
@rene_hm sagte in Neuer Adapter: SMA Wechselrichter mit sbfspot:
Wie sehen die Rechte auf /home/scheth1/smadata/ und auf /home/scheth1 aus?
Ich denke immer noch, dass irgendwo Schreibrechte auf einem Ordner fehlen...Danke, jetzt läuft es bei mir auch.
Meine beschränkten Linux-Kenntnisse waren wohl das Problem.
Ich habe zwar dem Ordner smadata alle Rechte erteilt, aber nicht dem übergeordnetem Ordner. -
@tottbeck Bitte. Ich hab auch kein echtes Fachwissen, was Linux betrifft, Ich hab zwar schon einige Sachen mit einem RPI gemacht, aber im Gunde genommen, habe ich immer alles zusammenkopiert.