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

Re: Synology-Docker Serial trouble

Beitrag von robert65 »

MQTT geht auch nicht in dem Container, am PI geht es.

Also ich habe bei den MQTT-Einstellungen meinen MQTT-Broker eingetragen, am Pi werden Daten zum Broker gesendet.

Vom Docker-Container kommen keine Daten:
/var/www/html/mqtt_prozess.php
PHP Fatal error: Uncaught Mosquitto\Exception: The connection was refused. in /var/www/html/mqtt_prozess.php:115
Stack trace:
#0 /var/www/html/mqtt_prozess.php(115): Mosquitto\Client->loop(100)
#1 {main}
thrown in /var/www/html/mqtt_prozess.php on line 115

/var/www/html# /etc/init.d/mosquitto status
[FAIL] mosquitto is not running ... failed!
root@982cf2f7a3a4:/var/www/html# /etc/init.d/mosquitto start
[ ok ] Starting network daemon:: mosquitto.
root@982cf2f7a3a4:/var/www/html# /etc/init.d/mosquitto status
[FAIL] mosquitto is not running ... failed!

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 »

Möglicherweise muss die Mosquitto Konfigurationsdatei für das Legacy angepasst werden, ich schau morgen mal ob ich was nachstellen kann.
Spuckt Mosquitto sonst irgentwelche Fehlermeldungen aus ?

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 »

Hab ein paar logs gefunden:
/var/www/log# cat mosquitto.log

1668622551: Saving in-memory database to /var/lib/mosquitto//mosquitto.db.
1668624352: Saving in-memory database to /var/lib/mosquitto//mosquitto.db.
1668626153: Saving in-memory database to /var/lib/mosquitto//mosquitto.db.

cat apache2/error.log
[Wed Nov 16 18:43:11.463638 2022] [php7:notice] [pid 140] [client 172.17.0.1:57000] PHP Notice: Undefined index: befehl1 in /var/www/html/befehl.steuerung.php on line 37, referer: http://192.168.58.195:3010/
[Wed Nov 16 18:43:11.463697 2022] [php7:notice] [pid 140] [client 172.17.0.1:57000] PHP Notice: Undefined index: befehl2 in /var/www/html/befehl.steuerung.php on line 37, referer: http://192.168.58.195:3010/

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 »

Moin, ich hab das mal bei mir im legacy Image überprüft,
erstmal die initiale mosquitto.conf die erstellt wird :

Code: Alles auswählen

root@Cloudserver:/# cat /solaranzeige/config/mosquitto/mosquitto.conf 
# Place your local configuration in /etc/mosquitto/conf.d/
#
# A full description of the configuration file is at
# /usr/share/doc/mosquitto/examples/mosquitto.conf.example

listener 1883 0.0.0.0
allow_anonymous true

pid_file /run/mosquitto/mosquitto.pid

persistence true
persistence_location /var/lib/mosquitto/

log_dest file /var/www/log/mosquitto.log

include_dir /etc/mosquitto/conf.d
Mosquitto selbst wird weder über /etc/init.d gestartet, noch mit systemd.
Im Container wird bei Neustart der Befehl https://github.com/DeBaschdi/docker.sol ... rocess#L25 ausgeführt, deshalb kann der status nicht angezeigt werden.

Ein :

Code: Alles auswählen

root@Cloudserver:/# ps ax |grep mosquitto
   55 ?        S      0:00 mosquitto -c /etc/mosquitto/mosquitto.conf
  510 pts/0    S+     0:00 grep mosquitto
Zeigt das Mosquitto läuft.

Ein:

Code: Alles auswählen

root@Cloudserver:/# cat /var/www/log/mosquitto.log 
1668492248: mosquitto version 2.0.12 starting
1668492248: Config loaded from /etc/mosquitto/mosquitto.conf.
1668492248: Opening ipv4 listen socket on port 1883.
1668492248: mosquitto version 2.0.12 running
1668655066: mosquitto version 2.0.12 starting
1668655066: Config loaded from /etc/mosquitto/mosquitto.conf.
1668655066: Opening ipv4 listen socket on port 1883.
1668655066: mosquitto version 2.0.12 running
bestätigt das.

hmm ...

Ich bin jetzt auch kein Mosquitto Experte, genaugenommen nutze ich keinen externen Broker, sondern den, der mit dem Image kommt, um meine Tasmota abzufragen.
Und ich meine der Broker ist der Mosquitto Service, wenn du den nicht nutzt, brauchst du ihn doch ohnehin nicht, sondern nur die mosquitto Client funktionalitäten um ausgewählte Daten an einen "anderen" Broker zu senden.

ggf muss der Geräte ident geändert werden, stehen Image und pi beide auf "box1" ?
https://github.com/DeBaschdi/solar_conf ... u.php#L503

das würde dein

Code: Alles auswählen

The connection was refused
erklären.

**edit

ach, und Robert,
hast du den Autostart des usb_init nochmal überprüft ?
Mich wundert das es nach deiner Aussage nur durch händisches triggern geht.

Ich denke wir habens bald geschafft und das "legacy" image wird dann auch stabil :)

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 »

So nun das war jetzt mein Fehler habe das Port für dem mosquitto nicht beim Container konfiguriert.. jetzt starte er und dürfte funktionieren

Nun ich brauche ihn eigentlich nicht da hast du recht, ich möchte eigentlich den von meinem Home-Assistant verwenden.
Also so sieht derzeit meine Ausgabe von der Solaranzeige aus:
|----------------- Start qpi_p30.php ------------------------
17.11. 13:47:03 -230.2 49.9 230.2 49.9 0082 0049 005 367 12.06 000 052 068 00.1 084.3 00.00 00000 00010111 00 00 00013 010 i: 23
17.11. 13:47:03 -Modell: VMII-NXPW5KW
17.11. 13:47:05 -229.6 50.0 229.6 50.0 0085 0053 005 366 12.06 000 052 068 00.1 080.4 00.00 00000 00010111 00 00 00013 010 i: 24
17.11. 13:47:05 -Fehlermeldung: Keine Sonne
17.11. 13:47:05 -Firmware: VERFW:12213.13
17.11. 13:47:05 -MQTT Daten zum [ 192.168.58.206 ] senden.
17.11. 13:47:06 * -Daten zur entfernten InfluxDB [ solaranzeige ] gesendet.
17.11. 13:47:57 -OK. Datenübertragung erfolgreich.
17.11. 13:47:57 -WattstundenGesamtHeute: 323.92
17.11. 13:47:57 |----------------- Stop qpi_p30.php -----------------------

Nach einem Neustart des Containers werden keine Daten übertragen
#########################################################################
# Image Version 0.1.7 legacy Build #
# Running Solaranzeige Software Version 4.8.0f [32Bit] update November 2022 #
#########################################################################

17.11. 13:59:02 |----------------- Start qpi_p30.php ------------------------
17.11. 13:59:26 -Datenübertragung vom Wechselrichter war erfolglos! [Modus]
17.11. 13:59:26 |----------------- Stop qpi_p30.php -----------------------

/var/www/html/usb_init.php
stty: /dev/ttyUSB2: No such file or directory
root@078e53d092f7:/# ls -la /dev/ttyU*
crwxrwxrwx 1 root root 188, 0 Nov 17 14:02 /dev/ttyUSB0
root@078e53d092f7:/# cat /var/www/html/user.config.php |grep ttyUSB
$USBRegler = "/dev/ttyUSB2";
$USBDevice = "/dev/ttyUSB0";
warum jetzt in der Config USB2 steht????
root@078e53d092f7:/# stty -F /dev/ttyUSB0 raw speed 2400 cs8 -iexten -echo -echoe -echok -onlcr -hupcl ignbrk time 5
9600
ab jetzt gehts dann:
root@078e53d092f7:/# tail -f /var/www/log/solaranzeige.log
17.11. 14:05:01 |----------------- Start qpi_p30.php ------------------------
17.11. 14:05:03 -230.3 49.9 230.3 49.9 0084 0052 005 370 12.14 000 054 068 00.3 079.9 00.00 00000 00010111 00 00 00029 010 i: 23
17.11. 14:05:04 -Modell: VMII-NXPW5KW
17.11. 14:05:05 -229.3 50.0 229.3 50.0 0079 0048 005 367 12.37 001 062 069 00.3 079.7 00.00 00000 00010111 00 00 00029 010 i: 24
17.11. 14:05:05 -Fehlermeldung: Keine Sonne
17.11. 14:05:05 -Firmware: VERFW:12213.13
17.11. 14:05:05 -MQTT Daten zum [ 192.168.58.206 ] senden.
17.11. 14:05:06 * -Daten zur entfernten InfluxDB [ solaranzeige ] gesendet.


Leider werden die Daten nicht zu meinem MQTT-Server gesendet. (tcpdump am MQTT-Server)
der Fehler tritt immer noch auf.

/var/www/html/mqtt_prozess.php
PHP Fatal error: Uncaught Mosquitto\Exception: The connection was refused. in /var/www/html/mqtt_prozess.php:115
Stack trace:
#0 /var/www/html/mqtt_prozess.php(115): Mosquitto\Client->loop(100)
#1 {main}
thrown in /var/www/html/mqtt_prozess.php on line 115

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 »

Haloäo Robert, hast du denn die Geräte Ident geändert?
Wenn dein pi, und das image unter der gleichen Ident funken kommt vermutlich Connection refused, wie in deinem Log zu sehen.
Das ein ttyusb nicht immer 0 sein muss gibt es, es gibt diesbezüglich tricks über udev rules, ob die bei einer syno greifen ist mir nicht bekannt...

Wenn es trotzdem 0 ist, nur falsch erkannt, kannst du das usb_init auch im crontab auskommentieren, stattdessen dein init befehl verwenden, so als Workaround.

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 DeBaschdi,
den PI hab ich nicht mehr in Betrieb, da der Container zumindest die Abfragen vom WR schafft wenn ich die Serielle händisch initialisiere.
Grundsätzlich sollte aber der mqtt-client zumindest etwas zum MQTT-Server schicken, aber es kommt nicht mal ein einziges IP-Paket dort an.

das mit udev und so ist mir sehr wohl bewusst, jedoch bei der Abfrage im Container
gibt es nur den USB0 wie im vorigen Beitrag beschrieben. jedoch erkennen die PHP-Scripts USB2***

Am Host gibt es sehr wohl einen USB2 also keine Ahnung wie das geht.
HOST:
root@filer-2:~# ls -la /dev/ttyU*
crwxrwxrwx 1 root root 188, 0 Nov 15 07:03 /dev/ttyUSB0
crw------- 1 root root 188, 2 Nov 16 21:32 /dev/ttyUSB2
root@filer-2:~# docker exec -ti solaranzeige /bin/bash
Container
root@078e53d092f7:/# ls -la /dev/ttyU*
crwxrwxrwx 1 root root 188, 0 Nov 18 10:09 /dev/ttyUSB0
root@078e53d092f7:/#

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 »

Info zu dem Problem mit dem USB-Port im legacy Docker-Container:

Ausgabe der User-Config vor dem Aufruf von "usb_init" nur device ttyUSB0 ist vorhanden
root@078e53d092f7:/var/www/html# ls /dev/ttyU*
/dev/ttyUSB0
root@078e53d092f7:/var/www/html#

In der Config ist USB0 ist konfiguriert:
root@078e53d092f7:/var/www/html# cat user.config.php |grep ttyUSB
$USBRegler = "/dev/ttyUSB0";
$USBDevice = "/dev/ttyUSB0";

USB_init wird aufgerufen und ändert die Konfiguration auf USB1
root@078e53d092f7:/var/www/html# /var/www/html/usb_init.php
stty: /dev/ttyUSB1: No such file or directory
root@078e53d092f7:/var/www/html# cat user.config.php |grep ttyUSB
$USBRegler = "/dev/ttyUSB1";
$USBDevice = "/dev/ttyUSB0";

Obwohl es keinen USB1 im Docker-Container gibt, nur am Host gibt es USB1
root@078e53d092f7:/var/www/html# ls /dev/ttyU*
/dev/ttyUSB0

Wenn es dafür keine Lösung gibt kann ich gut damit leben den Init-Befehl in einem Crontab-script als Workaround aufzurufen.
Für das Problem mit dem MQTT-Client eröffne ich einen neuen Beitrag

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 hab dafür zumindest keine andere Lösung ^^
Mir ist nicht klar wieso die automatische Erkennung nicht funktioniert.

Antworten