MQTT Client geht im Legacy Container nicht
Moderatoren: Ulrich, DeBaschdi
-
- Beiträge: 20
- Registriert: Mi 19. Okt 2022, 23:07
- Hat sich bedankt: 3 Mal
- Danksagung erhalten: 1 Mal
MQTT Client geht im Legacy Container nicht
Meine MQTT Konfiguration:
cat /var/www/html/user.config.php |grep "MQTT" |grep "="
$MQTT = true;
$MQTTBroker = "192.168.58.206";
$MQTTPort = 1883;
$MQTTBenutzer = "";
$MQTTKennwort = "";
$MQTTSSL = false;
$MQTTKeepAlive = 60;
$MQTTGeraet = "box1";
MQTT-Server ist auf Port 1883 erreichbar:
telnet 192.168.58.206 1883
Trying 192.168.58.206...
Connected to 192.168.58.206.
Escape character is '^]'.
Fehlermeldung bei Aufruf des PHP-Scripts vom Crontab:
/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
cat /var/www/html/user.config.php |grep "MQTT" |grep "="
$MQTT = true;
$MQTTBroker = "192.168.58.206";
$MQTTPort = 1883;
$MQTTBenutzer = "";
$MQTTKennwort = "";
$MQTTSSL = false;
$MQTTKeepAlive = 60;
$MQTTGeraet = "box1";
MQTT-Server ist auf Port 1883 erreichbar:
telnet 192.168.58.206 1883
Trying 192.168.58.206...
Connected to 192.168.58.206.
Escape character is '^]'.
Fehlermeldung bei Aufruf des PHP-Scripts vom Crontab:
/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
-
- Beiträge: 304
- Registriert: Mo 10. Aug 2020, 08:13
- Hat sich bedankt: 14 Mal
- Danksagung erhalten: 58 Mal
Re: MQTT Client geht im Legacy Container nicht
Hallo Robert,
ich selbst bin noch nicht dazu gekommen um den Broker bei mir mit "http://www.mqtt-dashboard.com/#" zu testen, kannst du das übernehmen ?
ich möchte lediglich ausschließen ob es ein "generelles" Problem ist.
ich selbst bin noch nicht dazu gekommen um den Broker bei mir mit "http://www.mqtt-dashboard.com/#" zu testen, kannst du das übernehmen ?
ich möchte lediglich ausschließen ob es ein "generelles" Problem ist.
-
- Beiträge: 20
- Registriert: Mi 19. Okt 2022, 23:07
- Hat sich bedankt: 3 Mal
- Danksagung erhalten: 1 Mal
Re: MQTT Client geht im Legacy Container nicht
Hallo DeBaschdi,
Ich habe meinen Brocker mit meinem PI(solaranzeige/box2) getestet und der kann eine Verbindung mit meinem Broker aufbauen und ich sehe auf meinem Broker die Nachricht:
Nachricht 50 empfangen auf solaranzeige/box2/marketprice_hour_11 um 11:16:
128.91
Beim PI kommt auch keine Fehlermeldung beim Aufruf von: /var/www/html/mqtt_prozess.php
Also ich denke irgendwas passt bei dem Container nicht ich habe schon versucht im Container mit "apt-get reinstall" die PHP und mosquitto PAkete erneut zu installieren.
Leider kein Erfolg... Ich denke ein erneuter Test mit einem externen Broker wird auch nicht viel helfen.
Lg.
Robert
Ich habe meinen Brocker mit meinem PI(solaranzeige/box2) getestet und der kann eine Verbindung mit meinem Broker aufbauen und ich sehe auf meinem Broker die Nachricht:
Nachricht 50 empfangen auf solaranzeige/box2/marketprice_hour_11 um 11:16:
128.91
Beim PI kommt auch keine Fehlermeldung beim Aufruf von: /var/www/html/mqtt_prozess.php
Also ich denke irgendwas passt bei dem Container nicht ich habe schon versucht im Container mit "apt-get reinstall" die PHP und mosquitto PAkete erneut zu installieren.
Leider kein Erfolg... Ich denke ein erneuter Test mit einem externen Broker wird auch nicht viel helfen.
Lg.
Robert
-
- Beiträge: 20
- Registriert: Mi 19. Okt 2022, 23:07
- Hat sich bedankt: 3 Mal
- Danksagung erhalten: 1 Mal
Re: MQTT Client geht im Legacy Container nicht
Hallo DeBaschdi,
ich habe heute noch einige Tests auch mit dem externen Broker im Internet gemacht und auch mit dem konnte keine Verbindung aufgebaut werden.
Der Interne Broker geht, generell kann man sagen das mit dem solaranzeige php-client keine externe Verbindung aufgebaut werden kann.
mit telnet kann eine Verbindung auch zu den externen Broker aufgebaut werden:
telnet broker.hivemq.com 1883
Trying 3.120.104.68...
Connected to broker.hivemq.com.
Escape character is '^]'.
beim PHP-Client kommt im Log immer(php-log geht mit dem letzten Conainer1.8):
23-Nov-2022 22:42:32 Europe/Berlin] PHP Fatal error: Uncaught Mosquitto\Exception: The client is not currently connected. 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
mit einem "tcpdump" am router sehe ich vom solaranzeige-Container keine IP-Pakete wenn der PHP-Client versucht eine Verbindung aufzubauen.
ich habe heute noch einige Tests auch mit dem externen Broker im Internet gemacht und auch mit dem konnte keine Verbindung aufgebaut werden.
Der Interne Broker geht, generell kann man sagen das mit dem solaranzeige php-client keine externe Verbindung aufgebaut werden kann.
mit telnet kann eine Verbindung auch zu den externen Broker aufgebaut werden:
telnet broker.hivemq.com 1883
Trying 3.120.104.68...
Connected to broker.hivemq.com.
Escape character is '^]'.
beim PHP-Client kommt im Log immer(php-log geht mit dem letzten Conainer1.8):
23-Nov-2022 22:42:32 Europe/Berlin] PHP Fatal error: Uncaught Mosquitto\Exception: The client is not currently connected. 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
mit einem "tcpdump" am router sehe ich vom solaranzeige-Container keine IP-Pakete wenn der PHP-Client versucht eine Verbindung aufzubauen.
-
- Beiträge: 304
- Registriert: Mo 10. Aug 2020, 08:13
- Hat sich bedankt: 14 Mal
- Danksagung erhalten: 58 Mal
Re: MQTT Client geht im Legacy Container nicht
Aha, interessant. ^^
Ich hab derweil herausgefunden :
PI :
Docker :
Etwas korios, da :
PI :
Docker :
Mir scheint, als hätte @Ulrich die "alte" mosquitto.so seit 2019 mit sich "händisch" herumgeschleppt ?
kann das sein ?
und nu ?
Ich hab derweil herausgefunden :
PI :
Code: Alles auswählen
root@solaranzeige:~# php -i |grep mosquitto
mosquitto
libmosquitto version => 1.5.7
Code: Alles auswählen
root@Cloudserver:/# php -i |grep mosquitto
/etc/php/7.3/cli/conf.d/20-mosquitto.ini,
mosquitto
libmosquitto version => 2.0.12
PI :
Code: Alles auswählen
root@solaranzeige:/usr/lib/php/20180731# apt search mosquitto-client
Sortierung... Fertig
Volltextsuche... Fertig
mosquitto-clients/now 2.0.13-0mosquitto1~buster1 armhf [Installiert,lokal]
Mosquitto command line MQTT clients
Code: Alles auswählen
root@solaranzeige:/usr/lib/php/20180731# pecl list
Installed packages, channel pecl.php.net:
=========================================
Package Version State
Mosquitto 0.4.0 beta
Code: Alles auswählen
root@solaranzeige:/usr/lib/php/20180731# ls -la /usr/lib/php/20180731 |grep mosquitto
-rw-r--r-- 1 root root 184860 Aug 15 2019 mosquitto.so
Code: Alles auswählen
root@Cloudserver:/usr/lib/php/20180731# apt search mosquitto-client
Sorting... Done
Full Text Search... Done
mosquitto-clients/now 2.0.12-0mosquitto1~buster1 amd64 [installed,local]
Mosquitto command line MQTT clients
Code: Alles auswählen
root@Cloudserver:/usr/lib/php/20180731# pecl list
Installed packages, channel pecl.php.net:
=========================================
Package Version State
Mosquitto 0.4.0 beta
kann das sein ?
Code: Alles auswählen
root@Cloudserver:/usr/lib/php/20180731# ls -la /usr/lib/php/20180731 |grep mosquitto
-rw-r--r-- 1 root root 232328 Nov 22 06:08 mosquitto.so
-
- Beiträge: 304
- Registriert: Mo 10. Aug 2020, 08:13
- Hat sich bedankt: 14 Mal
- Danksagung erhalten: 58 Mal
Re: MQTT Client geht im Legacy Container nicht
kannst du bitte mal händisch einen Downgrade auf 1.5.7 des php Moduls versuchen und mir Feedback geben ?
Innerhalb des Containers :
anschließend checken ob die Erweiterung in 1.5.7 geladen wurde :
Wenn dem so ist, bitte mosquitto testen,
bedenke, diese modifikationen sind nur temporär, wenn das klappt kommt das ins nächste Image Update, wird seinen Grund haben wieso Ulrich die alte Version verwenden will.
Innerhalb des Containers :
Code: Alles auswählen
cd /solaranzeige
wget http://ftp.de.debian.org/debian/pool/main/m/mosquitto/libmosquitto1_1.5.7-1+deb10u1_amd64.deb
wget http://ftp.de.debian.org/debian/pool/main/m/mosquitto/libmosquitto-dev_1.5.7-1+deb10u1_amd64.deb
wget http://ftp.de.debian.org/debian/pool/main/m/mosquitto/mosquitto-clients_1.5.7-1+deb10u1_amd64.deb
apt update
apt install -qy build-essential make
dpkg -i libmosquitto1_1.5.7-1+deb10u1_amd64.deb
dpkg -i libmosquitto-dev_1.5.7-1+deb10u1_amd64.deb
dpkg -i mosquitto-clients_1.5.7-1+deb10u1_amd64.deb
pecl install -f mosquitto-alpha
apt -qy --fix-broken install
Code: Alles auswählen
root@Cloudserver:/solaranzeige# php -i |grep mosquitto
/etc/php/7.3/cli/conf.d/20-mosquitto.ini,
mosquitto
libmosquitto version => 1.5.7
bedenke, diese modifikationen sind nur temporär, wenn das klappt kommt das ins nächste Image Update, wird seinen Grund haben wieso Ulrich die alte Version verwenden will.
-
- Beiträge: 20
- Registriert: Mi 19. Okt 2022, 23:07
- Hat sich bedankt: 3 Mal
- Danksagung erhalten: 1 Mal
Re: MQTT Client geht im Legacy Container nicht
Hallo DeBaschdi,
also ich habe das nach deiner Anleitung gemacht.
geht leider noch immer nicht allerdings gibt's nach dem Build einen Core Dump:
Build process completed successfully
Installing '/usr/lib/php/20180731/mosquitto.so'
install ok: channel://pecl.php.net/Mosquitto-0.4.0
configuration option "php_ini" is not set to php.ini location
You should add "extension=mosquitto.so" to php.ini
Segmentation fault (core dumped)
root@11b97143f97f:/solaranzeige# php -i |grep mosquitto
/etc/php/7.3/cli/conf.d/20-mosquitto.ini,
mosquitto
libmosquitto version => 1.5.7
Fehlermeldung ist aber im PHP-log dieselbe
also ich habe das nach deiner Anleitung gemacht.
geht leider noch immer nicht allerdings gibt's nach dem Build einen Core Dump:
Build process completed successfully
Installing '/usr/lib/php/20180731/mosquitto.so'
install ok: channel://pecl.php.net/Mosquitto-0.4.0
configuration option "php_ini" is not set to php.ini location
You should add "extension=mosquitto.so" to php.ini
Segmentation fault (core dumped)
root@11b97143f97f:/solaranzeige# php -i |grep mosquitto
/etc/php/7.3/cli/conf.d/20-mosquitto.ini,
mosquitto
libmosquitto version => 1.5.7
Fehlermeldung ist aber im PHP-log dieselbe
-
- Beiträge: 20
- Registriert: Mi 19. Okt 2022, 23:07
- Hat sich bedankt: 3 Mal
- Danksagung erhalten: 1 Mal
Re: MQTT Client geht im Legacy Container nicht
schwieriges Problem, funktioniert das eigentlich mit dem nicht-legacy Docker-Container?
Ich hatte mit diesem ja auch PHP-Probleme.
Leider kann ich momentan am PI keine Tests durchführen, ich denke da hat die SD-Karte aufgegeben.
Lg.
Robert
Ich hatte mit diesem ja auch PHP-Probleme.
Leider kann ich momentan am PI keine Tests durchführen, ich denke da hat die SD-Karte aufgegeben.
Lg.
Robert
-
- Beiträge: 20
- Registriert: Mi 19. Okt 2022, 23:07
- Hat sich bedankt: 3 Mal
- Danksagung erhalten: 1 Mal
Re: MQTT Client geht im Legacy Container nicht
Habe jetzt mal den amd64/latest Container ausprobiert, hier tritt der selbe Fehler auf:
25-Nov-2022 17:34:02 Europe/Berlin] PHP Fatal error: Uncaught Mosquitto\Exception: The client is not currently connected. in /var/www/html/mqtt_prozess.php:115
Stack trace:
#0 /var/www/html/mqtt_prozess.php(115): Mosquitto\Client->loop()
#1 {main}
thrown in /var/www/html/mqtt_prozess.php on line 115
allerdings konnte ich den Container nicht vom Scratch installieren da trat schon ein Fehler beim install auf:
PHP Warning: fopen(/var/www/log/update.log): failed to open stream: No such file or directory in /usr/local/sbin/steuerung.setup on line 329
PHP Warning: fwrite() expects parameter 1 to be resource, bool given in /usr/local/sbin/steuerung.setup on line 260
PHP Warning: fopen(/var/www/log/update.log): failed to open stream: No such file or directory in /usr/local/sbin/steuerung.setup on line 329
PHP Warning: fopen(/var/www/log/update.log): failed to open stream: No such file or directory in /usr/local/sbin/steuerung.setup on line 329
PHP Warning: chmod(): No such file or directory in /usr/local/sbin/steuerung.setup on line 266
PHP Warning: fclose() expects parameter 1 to be resource, bool given in /usr/local/sbin/steuerung.setup on line 271
PHP Warning: fopen(/var/www/log/update.log): failed to open stream: No such file or directory in /usr/local/sbin/steuerung.setup on line 329
PHP Warning: fclose() expects parameter 1 to be resource, bool given in /usr/local/sbin/steuerung.setup on line 300
PHP Warning: fclose() expects parameter 1 to be resource, bool given in /usr/local/sbin/steuerung.setup on line 301
PHP Warning: closedir(): supplied resource is not a valid Directory resource in /usr/local/sbin/steuerung.setup on line 302
PHP Warning: fopen(/var/www/log/update.log): failed to open stream: No such file or directory in /usr/local/sbin/steuerung.setup on line 329
Update ist beendet.
Bitte den weiteren Anweisungen im Dokument Automation.pdf folgen.
Ein 'sudo reboot' ist nicht nötig
Nicht vergessen, CRONTAB muss noch geändert werden!
create new files/directories...
Cloning into 'solar_config'...
remote: Enumerating objects: 361, done.
remote: Counting objects: 100% (361/361), done.
remote: Compressing objects: 100% (231/231), done.
remote: Total 361 (delta 130), reused 296 (delta 93), pack-reused 0
Receiving objects: 100% (361/361), 3.85 MiB | 2.01 MiB/s, done.
Resolving deltas: 100% (130/130), done.
mv: cannot stat '/solaranzeige/solaranzeige_cron': No such file or directory
wenn jedoch der Folder Solaranzeige mit den scripts schon vorhanden ist startet der Container und lest auch den WR aus.
Lg.
Robert
25-Nov-2022 17:34:02 Europe/Berlin] PHP Fatal error: Uncaught Mosquitto\Exception: The client is not currently connected. in /var/www/html/mqtt_prozess.php:115
Stack trace:
#0 /var/www/html/mqtt_prozess.php(115): Mosquitto\Client->loop()
#1 {main}
thrown in /var/www/html/mqtt_prozess.php on line 115
allerdings konnte ich den Container nicht vom Scratch installieren da trat schon ein Fehler beim install auf:
PHP Warning: fopen(/var/www/log/update.log): failed to open stream: No such file or directory in /usr/local/sbin/steuerung.setup on line 329
PHP Warning: fwrite() expects parameter 1 to be resource, bool given in /usr/local/sbin/steuerung.setup on line 260
PHP Warning: fopen(/var/www/log/update.log): failed to open stream: No such file or directory in /usr/local/sbin/steuerung.setup on line 329
PHP Warning: fopen(/var/www/log/update.log): failed to open stream: No such file or directory in /usr/local/sbin/steuerung.setup on line 329
PHP Warning: chmod(): No such file or directory in /usr/local/sbin/steuerung.setup on line 266
PHP Warning: fclose() expects parameter 1 to be resource, bool given in /usr/local/sbin/steuerung.setup on line 271
PHP Warning: fopen(/var/www/log/update.log): failed to open stream: No such file or directory in /usr/local/sbin/steuerung.setup on line 329
PHP Warning: fclose() expects parameter 1 to be resource, bool given in /usr/local/sbin/steuerung.setup on line 300
PHP Warning: fclose() expects parameter 1 to be resource, bool given in /usr/local/sbin/steuerung.setup on line 301
PHP Warning: closedir(): supplied resource is not a valid Directory resource in /usr/local/sbin/steuerung.setup on line 302
PHP Warning: fopen(/var/www/log/update.log): failed to open stream: No such file or directory in /usr/local/sbin/steuerung.setup on line 329
Update ist beendet.
Bitte den weiteren Anweisungen im Dokument Automation.pdf folgen.
Ein 'sudo reboot' ist nicht nötig
Nicht vergessen, CRONTAB muss noch geändert werden!
create new files/directories...
Cloning into 'solar_config'...
remote: Enumerating objects: 361, done.
remote: Counting objects: 100% (361/361), done.
remote: Compressing objects: 100% (231/231), done.
remote: Total 361 (delta 130), reused 296 (delta 93), pack-reused 0
Receiving objects: 100% (361/361), 3.85 MiB | 2.01 MiB/s, done.
Resolving deltas: 100% (130/130), done.
mv: cannot stat '/solaranzeige/solaranzeige_cron': No such file or directory
wenn jedoch der Folder Solaranzeige mit den scripts schon vorhanden ist startet der Container und lest auch den WR aus.
Lg.
Robert