Ankündigung
Einklappen
Keine Ankündigung bisher.
MQTT API Server und MQTT Clients - LBS19001051 - LBS19001054
Einklappen
X
-
Hab mal eine Frage zum MQTT Publish Client, wenn ich Topic und Payload zu IOBroker schicke schreibt er alles einwandfrei in das "Objekt" aber führt es nicht aus. Es geht nur wenn ich den umweg über z.b. NodeRed gehe und es dort von value in ein Command umwandel und dann ins "Objekt" schreibe. Kann ich irgendwie definieren ob der Publish Client ein Value schickt oder Command?
-
Das lag dann nicht am Backup, denn PHP 5.4 ist wohl Standard bei CentOS7.Zitat von kordnas Beitrag anzeigenOkay, ich wusste nicht, dass das Backup derartig gründlich ist
Erst das EDOMI Installationsskript macht das Update auf PHP7.2 und installiert das REMI-Repo.
Und da ist vermutlich was schiefgelaufen. Was weiß ich auch nicht, da auch die Option 2 die notwendigen CentOS7 Pakete installiert (also z.B. PHP7 und Remi-Repo)
Ich würde auf jeden Fall empfehlen das glatt zu ziehen, dass jetzt EDOMI wirklich mit PHP5.x läuft. Dann sonst wirst du auch mit vielen anderen LBS Probleme bekommen, die nur noch mit PHP7.x laufen.
Einen Kommentar schreiben:
-
Okay, ich wusste nicht, dass das Backup derartig gründlich ist... Aber selbst da hab ich den richtigen Weg erwischt :-)
Nach Installation von CentOS hab ich als nächstes das edomi Installationsskript ausgeführt (mit Option zwei, weiß nicht mehr genau wie das hieß, aber irgendwas mit lokal am Ende). Dann hab ich das Backup ins Backupverzeichnis kopiert und dann über die edomi Oberfläche die Wiederherstellung angestoßen
Einen Kommentar schreiben:
-
Hast du denn nach der Installation von CentOS7 auch EDOMI per Installskript installiert oder hast du nur das EDOMI Backup wieder draufgespielt?
Wenn du letzteres gemacht hast, dann biste auf PHP5.4 gelandet und dadurch fehlt auch das remi-Repo, welches durch die EDOMI Installationsroutine installiert wird.
Nicht viele, aber mindestens eine.Zitat von kordnas Beitrag anzeigenEs gab während der Installation nicht viele Stellen, an denen ich hätte (falsch) abbiegen können
Nur CentOS7 zu installieren und dann ein EDOMI Backup einzuspielen reicht nicht. Das funktioniert bei einer kompletten Neuinstallation vermutlich noch nicht mal mit einem Projekt das vorher auf CentOS7 mit PHP7 lief, da die OS spezifischen Anpassungen, die das EDOMI Installskript macht, nicht ausgeführt werden.
Einen Kommentar schreiben:
-
Es gab während der Installation nicht viele Stellen, an denen ich hätte (falsch) abbiegen können und keine, wo PHP am Wegweiser stand. CentOS 7 wird wohl auch standardmäßig mit PHP 5.4 ausgeliefert. Ich lasse das jetzt erst mal so und behalte (hoffentlich) im Hinterkopf, dass ich bei LBS dann mal auf PHP 7 gehe.
Danke dir :-)
Einen Kommentar schreiben:
-
Das habe ich mal in der Anleitung ergänzt.Zitat von kordnas Beitrag anzeigenzunächst das Remi Repo hinzugefügt
Den Rest kann ich nicht nachvollziehen, da es sowohl bei mir und offensichtlich auch bei vielen anderen funktioniert.
Wenn bei dir eine PHP Version 5.x rauskommt, dann ist bei deiner Installation vermutlich was schiefgelaufen:
So sieht das bei mir aus:
Code:[SIZE=16px][root@edomi-test ~]# php -a Interactive shell php > Print(phpversion()); [COLOR=#e74c3c][B]7.2.34[/B][/COLOR][/SIZE]
Einen Kommentar schreiben:
-
Ich bin vorangekommen...
Ich habe wie unter https://der-linux-admin.de/2015/04/c...-installieren/ beschrieben zunächst das Remi Repo hinzugefügt
Und dann ging in der Tat
Die Fehler, dass MosquittoClient nicht gefunden wird sind jetzt auch weg. In Modul 19001051 hab ich allerdings nochCode:yum -y install php-pecl-mosquitto
Die Leute auf Stackoverflow behaupten, dass das irgendwie damit zusammenhängt, dass die Extension/Treiber mysqldn nicht installiert ist und das Array auf andere Art und Weise aufzubauen ohnehin viel besser ist.Code:Call to undefined method mysqli_result::fetch_all()
https://stackoverflow.com/questions/...valid-function
Verstanden warum habe ich nicht, aber folgende Änderung funktioniert
Code:// $mKOs = $result->fetch_all(MYSQLI_ASSOC); $mKOs = array(); while($row = $result->fetch_assoc()) $mKOs[] = $row;Zuletzt geändert von kordnas; 21.03.2021, 21:16.
Einen Kommentar schreiben:
-
Die inTERaktive PHP Konsole. Kommt man mitZitat von jonofe Beitrag anzeigenreinCode:php -a
Gleiches ErgebnisZitat von jonofe Beitrag anzeigenyum -y install php-pecl-mosquitto
Das sind meine yum ReposCode:[root@edomi ~]# yum -y install php-pecl-mosquitto Geladene Plugins: fastestmirror Loading mirror speeds from cached hostfile * base: mirror.netcologne.de * epel: mirror.netcologne.de * extras: centos.mirror.iphh.net * updates: mirror.plustech.de Kein Paket php-pecl-mosquitto verfügbar. Fehler: Nichts zu tun
Code:[root@edomi ~]# yum repolist Geladene Plugins: fastestmirror Loading mirror speeds from cached hostfile * base: mirror.netcologne.de * epel: mirror.netcologne.de * extras: centos.mirror.iphh.net * updates: mirror.plustech.de Repo-ID Repo-Name: Status base/7/x86_64 CentOS-7 - Base 10.072 epel/x86_64 Extra Packages for Enterprise Linux 7 - x86_64 13.560 extras/7/x86_64 CentOS-7 - Extras 460 updates/7/x86_64 CentOS-7 - Updates 1.898 repolist: 25.990
Einen Kommentar schreiben:
-
Ja genau.Zitat von kordnas Beitrag anzeigenFalls du das aus der PHP Version gelesen hast
Was genau ist das?Zitat von kordnas Beitrag anzeigeninaktiven PHP Konsole.
Mach mal nur ein:
Code:yum -y install php-pecl-mosquitto
Einen Kommentar schreiben:
-
Ich bin der festen Überzeugung CentOS 7 installiert zu haben, nicht?
Falls du das aus der PHP Version gelesen hast, die hab ich aus der inaktiven PHP Konsole.Code:centos-release-7-6.1810.2.el7.centos.x86_64
Code:php -a
Code:Print(phpversion());
Zuletzt geändert von kordnas; 21.03.2021, 15:09.
Einen Kommentar schreiben:
-
Auf CentOS7 updaten, da CentOS6.5 nicht mehr unterstützt wird und auch die Repos nicht mehr offiziell verfügbar sind.Zitat von kordnas Beitrag anzeigenVorschläge? Danke!! :-)
Einen Kommentar schreiben:
-
Da es meine SSD irgendwie zerlegt hatte, musste ich das System neu installieren. Das Backup von edomi hatte ich natürlich, aber das darunterliegende System ist jetzt also neu. Und jetzt habe ich Probleme mit den Bausteinen, weil der Mosquitto Client nicht gefunden wird, z.B.
Bei der letzten Installation Mitte/Ende des letzten Jahres hatte ich das nicht soweit ich mich erinnern kann und es ist die gleiche CentOS VersionCode:Datei: /usr/local/edomi/www/data/liveproject/lbs/EXE19001052.php | Fehlercode: 1 | Zeile: 100 | Class 'Mosquitto\Client' not found FATALERROR
Die Vorbereitungen, die im LBS 19001051 beschrieben sind habe ich durchgeführtCode:centos-release-7-6.1810.2.el7.centos.x86_64
Mosquitto an sich ist installiert, obwohl ich gar nicht sicher bin, ob ich das gebraucht hätte, weil der Broker woanders läuft
Wenn ich die Nachinstallation der PHP Extension manuell von der Kommandozeile aus anstoßebekomme ich die Nachricht, dass das Paket nicht gefunden wurde.Code:yum -y install php-pecl-mosquitto.x86_64
Die Dateigibt es noch nicht, also wohl auch keine Logausgabe vom EXEC Teil. Die Logs der LBS 19001051 und 19001052 enthalten nur Debug NachrichtenCode:/usr/local/edomi/www/data/log/CUSTOMLOG_MQTT_Publish_Server-EXEC.log
PHP Version ist 5.4.16
Edomi Version 2.03 (das Backup war von 2.02)
Die neuesten Versionen der Bausteine habe ich hochgeladen und das Projekt aktiviert
Den Server hab ich nach den Nachinstallationen auch mal neugestartet
Vorschläge? Danke!! :-)
Einen Kommentar schreiben:
-
zu 1) brauchst du nur, wenn deinen MQTT Broker von außen Zugreifbar machen willst oder wenn du einen Reverse Proxy (z.B. für Alexa, Spotify, Home-Connect) betreibst.
zu 2) Kann man machen, muss man aber nicht, wenn der MQTT Broker nur intern läuft. Wenn man es macht, dann kann man im Gegensatz zu 1) auch self-signed certificates verwenden. Gibts verschiedene Anleitungen dazu, z.B. HIER
zu 3) Brauch man für EDOMI nicht. Wenn du andere MQTT Clients (insbesondere im Browser) nutzt, die MQTT via Websockts verwenden, dann kann man das aktivieren. Eine gute Erklärung gibt es hier:
- Likes 1
Einen Kommentar schreiben:
-
vento66 Danke! Das hat super und auf Anhieb geklappt!
Desweiteren bin ich wie hier beschrieben vorgegangen:
https://www.digitalocean.com/communi...er-on-centos-7
Dh Benutzername und Passwort habe ich bereits vergeben. Verbindung klappt.
Wie ist's mit den Sicherheitsmechanismen:1) Certbot, Certbot Automatic Renewals
2) MQTT SSL
3) MQTT Over Websockets
Braucht's das?
Ich bin nun angefixt!!
Vielen Dank und Grüße,
Lio
Einen Kommentar schreiben:
-
Bei mit funktioniert es so:
PHP-Code:yum -y install epel-release
yum -y install mosquitto
systemctl enable mosquitto
systemctl start mosquitto
Einen Kommentar schreiben:


Einen Kommentar schreiben: