Synology-Docker Serial trouble

Solaranzeige und Docker
Alles was mit der Docker Version zu tun hat.

Moderatoren: Ulrich, DeBaschdi

robert65
Beiträge: 27
Registriert: Mi 19. Okt 2022, 23:07
Hat sich bedankt: 3 Mal
Danksagung erhalten: 1 Mal

Synology-Docker Serial trouble

Beitrag von robert65 »

Habe nun versucht das Docker-Image amd64 auf der Synology zu installieren, lt. Anleitung aus dem Forum.
Der Container läuft mit root-rechten um auf den USB-Port zuzugreifen:
ls -la /dev/ttyUSB0
crw-rw-rw- 1 root root 188, 0 Nov 6 11:19 /dev/ttyUSB0

leider wird beim start des Containers der Port nicht initialisiert.
kann auch mit dem script nicht gestartet werden:
/var/www/html/usb_init.php
sh: 1: usb-devices: not found
sh: 1: hwinfo: not found
PHP Notice: Undefined variable: USB_Devices in /var/www/html/usb_init.php on line 13
2
PHP Notice: Undefined variable: USB_Regler in /var/www/html/usb_init.php on line 407
PHP Warning: file_get_contents(/sys/firmware/devicetree/base/model): failed to open
stream: No such file or directory in /var/www/html/usb_init.php on line 921
root@takealug-solaranzeige2:/# ls -la /sys/firmware/
total 0
drwxrwxrwt 2 root root 40 Nov 6 20:41 .
dr-xr-xr-x 12 root root 0 Nov 6 20:41 ..

Ein händisches initialisieren des Ports geht danach kann die Serielle am USB mit 2400 Baud angesprochen werden:
stty -F /dev/ttyUSB0 raw speed 2400 cs8 -iexten -echo -echoe -echok -onlcr -hupcl ignbrk time 5

Was stimmt mit meinem Container nicht ??? :?
Docker Json File:
{
"CapAdd" : [],
"CapDrop" : [],
"cmd" : "",
"cpu_priority" : 10,
"enable_publish_all_ports" : false,
"enable_restart_policy" : false,
"enable_service_portal" : null,
"enabled" : false,
"env_variables" : [
{
"key" : "PATH",
"value" : "/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
},
{
"key" : "USER_ID",
"value" : "1041"
},
{
"key" : "GROUP_ID",
"value" : "100"
},
{
"key" : "TIMEZONE",
"value" : "Europe/Berlin"
},
{
"key" : "UPDATE",
"value" : "yes"
},
{
"key" : "MOSQUITTO",
"value" : "yes"
},
{
"key" : "INFLUXDB",
"value" : "yes"
},
{
"key" : "DEBIAN_FRONTEND",
"value" : "noninteractive"
},
{
"key" : "TERM",
"value" : "xterm"
},
{
"key" : "LANGUAGE",
"value" : "en_US.UTF-8"
},
{
"key" : "LANG",
"value" : "en_US.UTF-8"
},
{
"key" : "LC_ALL",
"value" : "en_US.UTF-8"
},
{
"key" : "CLEANUP",
"value" : "/tmp/* /var/tmp/* /var/log/* /var/lib/apt/lists/* /var/lib/{apt,dpkg,cache,log}/ /var/cache/apt/archives /usr/share/doc/ /usr/share/man/ /usr/share/locale/ "
},
{
"key" : "USBDEVICES",
"value" : "/dev/ttyUSB0"
}
],
"exporting" : false,
"id" : "95593e3e9d4659db64dec86c328824c0130f326c1aee91b6c6ce5849f63148b0",
"image" : "takealug/solaranzeige:amd64",
"is_ddsm" : false,
"is_package" : false,
"links" : [],
"memory_limit" : 4805623808,
"name" : "takealug-solaranzeige1",
"network" : [
{
"driver" : "bridge",
"name" : "bridge"
}
],
"network_mode" : "bridge",
"port_bindings" : [
{
"container_port" : 1883,
"host_port" : 1883,
"type" : "tcp"
},
{
"container_port" : 3000,
"host_port" : 3005,
"type" : "tcp"
},
{
"container_port" : 80,
"host_port" : 8089,
"type" : "tcp"
}
],
"privileged" : true,
"shortcut" : {
"enable_shortcut" : false,
"enable_status_page" : false,
"enable_web_page" : false,
"web_page_url" : ""
},
"use_host_network" : false,
"volume_bindings" : [
{
"host_volume_file" : "/docker/solaranzeige/grafana",
"mount_point" : "/var/lib/grafana",
"type" : "rw"
},
{
"host_volume_file" : "/docker/solaranzeige/influxdb",
"mount_point" : "/var/lib/influxdb",
"type" : "rw"
},
{
"host_volume_file" : "/docker/solaranzeige/pvforecast",
"mount_point" : "/pvforecast",
"type" : "rw"
},
{
"host_volume_file" : "/docker/solaranzeige/solaranzeige",
"mount_point" : "/solaranzeige",
"type" : "rw"
},
{
"host_volume_file" : "/docker/solaranzeige/www",
"mount_point" : "/var/www",
"type" : "rw"
}
]
}

robert65
Beiträge: 27
Registriert: Mi 19. Okt 2022, 23:07
Hat sich bedankt: 3 Mal
Danksagung erhalten: 1 Mal

Re: Synology-Docker Serial trouble

Beitrag von robert65 »

Hallo also die Serielle Schnittstelle kann man am Host initialisieren dann geht sie auch im Container mit 2400 ist als Work around sicher praktikabel.

Leider scheint der Container mit PHP nicht kompatible mit Synology DSM 7.1.1-42962 Update 1:
Kernel:
Linux filer-2 3.10.108 #42962 SMP Wed Sep 21 10:54:35 CST 2022 x86_64 GNU/Linux synology_avoton_415+
Docker:solaranzeige# docker version
Client:
Version: 20.10.3
API version: 1.41
Go version: go1.17.1
Git commit: 55f0773
Built: Thu Jul 21 10:23:46 2022
OS/Arch: linux/amd64
Context: default
Experimental: true

Server:
Engine:
Version: 20.10.3
API version: 1.41 (minimum version 1.12)
Go version: go1.17.1
Git commit: b487c8f
Built: Thu Jul 21 10:21:56 2022
OS/Arch: linux/amd64
Experimental: false
containerd:
Version: v1.4.3
GitCommit: 3fa00912415f3e9c6f82dd72119179d599efd13b
runc:
Version: v1.0.0-rc93
GitCommit: 31cc25f16f5eba4d0f53e35374532873744f4b31
docker-init:
Version: 0.19.0
GitCommit: ed96d00

schon nach der Installation und dem Setup kommt die erste Fehlermeldung:
PHP Notice: Undefined index: Fehlermeldung in /var/www/html/phpinc/funktionen.inc.php on line 801
PHP Notice: Undefined index: Fehlermeldung in /var/www/html/phpinc/funktionen.inc.php on line 801
PHP Notice: Undefined index: Fehlermeldung in /var/www/html/phpinc/funktionen.inc.php on line 801
PHP Notice: Undefined index: Fehlermeldung in /var/www/html/phpinc/funktionen.inc.php on line 801

Beim hochfahren kommt dann vom Apache die Meldung:
Setup Crontab...

Output of config test was:
[Thu Nov 10 13:08:48.561796 2022] [:crit] [pid 118] (38)Function not implemented: AH00141: Could not initialize random number generator
Action 'configtest' failed.
The Apache error log may have more information.

Im Container eingeloggt sieht man das Apache nicht läuft und auch nicht restartet werden kann:
/etc/init.d/apache2 status
apache2 is not running ... failed!
/etc/init.d/apache2 restart
Restarting Apache httpd web server: apache2 failed!
The apache2 configtest failed. ... (warning).
Output of config test was:
[Thu Nov 10 19:41:55.467122 2022] [:crit] [pid 196] (38)Function not implemented: AH00141: Could not initialize random number generator
Action 'configtest' failed.
The Apache error log may have more information.


Wer kann mir da weiter helfen?? Bin am Ende mit meinem Latein[/br] :?:

Geht der Container auf der Version nicht??? Was muss man machen damit er geht??

Ich denke das die PHP-Scripte nicht richtig funktionieren:

auch das usb_init.php kann ja die Schnittstelle nicht initialisieren.
Der Regler wird auch nicht richtig eingetragen obwohl die env Variable da ist: USBDEVICE=/dev/ttyUSB0
erst wenn man in der Config : $USBDevice = "/dev/ttyUSB0"; einträgt wird die USB-Serial angesprochen.

Ich finde die Solaranzeige echt cool, möchte aber nur ungern einen eigen PI 24 Stunden am Tag dafür laufen lassen wenn mein NAS eh schon läuft und punkto Speicher doch um einiges besser ist.

solarfanenrico
Beiträge: 655
Registriert: Mi 20. Jan 2021, 19:49
Hat sich bedankt: 40 Mal
Danksagung erhalten: 53 Mal

Re: Synology-Docker Serial trouble

Beitrag von solarfanenrico »

Was für ein Synology ist es.
Ich habe ein DS120j. Hier weiß ich daß die USB-Ports nur Laufwerke, USB Sticks usw., jedoch keine /dev/ttyUSB akzeptieren.

Kann man auch nicht mit Software überlisten.

Näheres findet man sicher auf der Hersteller-Seite, welch Syno's funktionieren.
Enrico

DeBaschdi
Beiträge: 228
Registriert: Mo 10. Aug 2020, 08:13
Hat sich bedankt: 12 Mal
Danksagung erhalten: 40 Mal

Re: Synology-Docker Serial trouble

Beitrag von DeBaschdi »

Ich kann dazu leider nichts sagen, außer das ich viel negatives , bzw beschneidungen seitens fertig nases wie z.b einer synology gelesen habe.
Das ist uralt Hardware mit uralt Kernel *grusel* .

Traut sich denn keiner mehr ein Selbstbau- Nas aus "alter x86" Hardware mit Unraid als OS zu bauen ? :)
https://www.elefacts.de/test-123-unraid ... em_im_test

robert65
Beiträge: 27
Registriert: Mi 19. Okt 2022, 23:07
Hat sich bedankt: 3 Mal
Danksagung erhalten: 1 Mal

Re: Synology-Docker Serial trouble

Beitrag von robert65 »

Es ist eine Synology ds415+ und das Synology keine USB außer Datenträger unterstützt ist richtig.

Es ist jedoch sehr wohl möglich USB-Ports an virtuelle Maschinen oder an Docker-Container durchzureichen.
Bei Virtuelle Maschinen geht das ohne weiteres in der GUI. Bei Docker-Container nur mit commands und wird in der GUI nicht unterstützt.
Ich habe mein Home Assistant und einem Zwave-USB-Dongle in Betrieb.

Synology.. alte Hardware... Ja meine Synology ist auch schon etwas älter.
Leider ist der Kernel etwas älter.... und somit nicht mit dem Apache von Solaranzeige-Container kompatible.
Hersteller wie Synology und Qnap u.s.w. müssen ihre Produkte halt gut durchtesten damit alle Funktionen auf sämtlicher von ihnen angebotener Hardware läuft das benötigt Zeit und somit hinken sie immer hinterher. Ich kenne das da ich mal in einer R&D Abteilung einer Software-Entwicklungsfirma gearbeitet habe.

Zu Unraid, ich hatte vor meiner Synology mal einen eigenen Server betrieben. Das ist mir jedoch zu aufwendig.
Man muss sich ein eigenes kleines Mainboard kaufen... also Mini-ITX...Gehäuse dazu mit vielen Laufwerksschächten...Hotswap? Mehr als 4 SATA onboard.
Eher schwierig, aber ich habe mir die Software Unraid mal angeschaut und ist sehr vielversprechend und sicher für viele eine gute alternative wenn auch etwas langsam aber es gibt ja auch noch proxmox wäre auch eine alternative.
Also es gibt sicher viele alternativen, jedoch ist mir das zu aufwendig. Es ist halt mit fertigen NAS recht einfach. Den Würfel kaufen bisschen konfigurieren und fertig ist das Ding mit sehr vielen Funktionen an Board. Leider hängt die Software immer hinterher.
Ich hatte früher meinen HomeAssistant immer im Docker laufen, bis dieser nicht mehr kompatibel mit Docker 19 war. Worauf ich ihn in eine VM verbannen musste ebenfalls auf der Synology laufend. Leider sind jetzt die Ressourcen auf der Synology etwas knapp und ich kann nicht alles in eine VM verbannen. Docker ist da etwas Ressourcen schonender. Ich hab 4 Docker Container und 2 VMs auf meinem NAS laufen.
Influxdb und Grafana laufen bei mir schon jeweils in einem eigenen Container.

Also ich brauch einen Container der die Solaranzeige und einen Webserver für die Steuerung des Wechselrichters.

Ich bin auch bereit hier selbst etwas beizutragen und diesen Container mit eurer Hilfe zu erstellen und der Community zu Verfügung zu stellen.

Meine Frage ist wie haben das einige hier hinbekommen damit es auf der Synology läuft? Ältere DSM-Version? Wechselrichter Steuerung wird nicht verwendet?

Lg.
Robert

solarfanenrico
Beiträge: 655
Registriert: Mi 20. Jan 2021, 19:49
Hat sich bedankt: 40 Mal
Danksagung erhalten: 53 Mal

Re: Synology-Docker Serial trouble

Beitrag von solarfanenrico »

Hallo Robert,
mein Programmierfreund hatte auch solaranzeige auf einen Docker in Syno, wie Deine. Er wollte damals eigentlich seinen Schüco-WR über Solaranzeige auslesen. Das wurde wohl nich implementiert, so hat er sich selbst damit auseinander gesetzt. Es ist ihm auch gelungen. Inzwischen haben wir hierfür den
"solarreader". Der ist Plattformunabhängig, und man kann auf einen zusätzlichen Pi verzichten. Falls dein WR noch nicht dabei ist, würde der sicher kurzfristig eingebunden werden können. Schau mal rein https://github.com/Schnippsche/solarreader

Enrico

Benutzeravatar
Ulrich
Administrator
Beiträge: 3784
Registriert: Sa 7. Nov 2015, 10:33
Wohnort: Essen
Hat sich bedankt: 80 Mal
Danksagung erhalten: 459 Mal
Kontaktdaten:

Re: Synology-Docker Serial trouble

Beitrag von Ulrich »

Hallo Enrico,

es ist nicht fair, auf meinem Server Werbung für dein eigenes Projekt, was besser, größer, schöner sein soll, zu machen. Bitte lasse das. Alle weiteren Links zu deinem Projekt werden in der Zukunft gelöscht. Es macht mehr Sinn, den Erfolg selber zu erarbeiten als auf den Zug mit aufzuspringen.
--------------------------------------
Ulrich [Admin]

solarfanenrico
Beiträge: 655
Registriert: Mi 20. Jan 2021, 19:49
Hat sich bedankt: 40 Mal
Danksagung erhalten: 53 Mal

Re: Synology-Docker Serial trouble

Beitrag von solarfanenrico »

Ulrich hat geschrieben:
Fr 11. Nov 2022, 11:20
Hallo Enrico,

es ist nicht fair, auf meinem Server Werbung für dein eigenes Projekt, was besser, größer, schöner sein soll, zu machen. Bitte lasse das. Alle weiteren Links zu deinem Projekt werden in der Zukunft gelöscht. Es macht mehr Sinn, den Erfolg selber zu erarbeiten als auf den Zug mit aufzuspringen.
Hallo Ulrich,
es betrifft Dich doch gar nicht.
Unfair, wäre es, wenn ich mich in ein Problem einschalte, welches Du lösen kannst.
Wenn Du das Problem lösen könntest, würdest Du es doch auch machen.
Hier ist ein sog. OpenSource und es geht um Fortschritt, und nicht um Behinderung. Im Übrigen bringe ich auch nützliche Beiträge für die solaranzeige, ohne auf unser Projekt hinzuweisen. Das wir jedoch den Webinstaller wieder entfernt haben, hatte ja bekanntlich andere Ursachen.
Ob diese Links im Text des Postes erscheinen oder als PN versendet werden, macht auch keinen Unterschied.
Nebebei bemerkt, es ist nicht größer und schöner, es ist zu 100% kompatibel, jedoch nur ca 50MB groß. Dagegen könnte man 1 GB aus Deinem /var/www/html löschen. Und es ist dennoch über den Browser, ohne installiertem Apache konfigurierbar. Man sollte sich neuen Wegen nicht verschließen, sonst hinkt man hinterher.


Verstoße bitte nicht gegen Deine eigenen Forumsregeln, bzw. gegen die GNU General Public License.
Enrico

solarfanenrico
Beiträge: 655
Registriert: Mi 20. Jan 2021, 19:49
Hat sich bedankt: 40 Mal
Danksagung erhalten: 53 Mal

Re: Synology-Docker Serial trouble

Beitrag von solarfanenrico »

Hallo Robert,
ich danke Dir auch.
Kannst Dich ja mal melden, ob mein Beitrag die erforderliche Hilfe gebracht hat.

Ich hatte mich bereits früher schonmal aus dem Forum zurückgezogen, damals war es freiwillig. Auf Drängen einiger Nutzer, die dies als Verlust sahen, hatte ich dann wieder begonnen. Aber nun scheint es vorbei zu sein, mit Hilfestllungen, da mir die wesentlichen Rechte entzogen wurden.

Enrico

DeBaschdi
Beiträge: 228
Registriert: Mo 10. Aug 2020, 08:13
Hat sich bedankt: 12 Mal
Danksagung erhalten: 40 Mal

Re: Synology-Docker Serial trouble

Beitrag von DeBaschdi »

Wenn der Bedarf so groß für Synology-oldtimer User ist, könnte ich ein Legacy Docker Image bereitstellen, eines mit älteren Bibliotheken auf denen noch Apache über den alten Hostkernel funktioniert, dann klappts auch mit der Steuerung.

Antworten