Ankündigung

Einklappen
Keine Ankündigung bisher.

MQTT API Server und MQTT Clients - LBS19001051 - LBS19001054

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

    Bei mit funktioniert es so:


    PHP-Code:
    yum -y install epel-release
    yum 
    -y install mosquitto
    systemctl enable mosquitto
    systemctl start mosquitto 
    Mfg Micha
    Ich sage ja nicht, das wir alle dummen Menschen loswerden müssen, aber könnten wir nicht einfach alle Warnhinweise entfernen und den Dingen ihren Lauf lassen?

    Kommentar


      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

      Kommentar


        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:

        Kommentar


          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.

          Code:
          Datei: /usr/local/edomi/www/data/liveproject/lbs/EXE19001052.php | Fehlercode: 1 | Zeile: 100 | Class 'Mosquitto\Client' not found FATALERROR
          Bei der letzten Installation Mitte/Ende des letzten Jahres hatte ich das nicht soweit ich mich erinnern kann und es ist die gleiche CentOS Version

          Code:
          centos-release-7-6.1810.2.el7.centos.x86_64
          Die Vorbereitungen, die im LBS 19001051 beschrieben sind habe ich durchgeführt

          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ße
          Code:
          yum -y install php-pecl-mosquitto.x86_64
          bekomme ich die Nachricht, dass das Paket nicht gefunden wurde.

          Die Datei
          Code:
          /usr/local/edomi/www/data/log/CUSTOMLOG_MQTT_Publish_Server-EXEC.log
          gibt es noch nicht, also wohl auch keine Logausgabe vom EXEC Teil. Die Logs der LBS 19001051 und 19001052 enthalten nur Debug Nachrichten

          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!! :-)

          Kommentar


            Zitat von kordnas Beitrag anzeigen
            Vorschläge? Danke!! :-)
            Auf CentOS7 updaten, da CentOS6.5 nicht mehr unterstützt wird und auch die Repos nicht mehr offiziell verfügbar sind.

            Kommentar


              Ich bin der festen Überzeugung CentOS 7 installiert zu haben, nicht?

              Code:
              centos-release-7-6.1810.2.el7.centos.x86_64
              Falls du das aus der PHP Version gelesen hast, die hab ich aus der inaktiven PHP Konsole.

              Code:
              php -a
              Code:
              Print(phpversion());
              Zuletzt geändert von kordnas; 21.03.2021, 15:09.

              Kommentar


                Zitat von kordnas Beitrag anzeigen
                Falls du das aus der PHP Version gelesen hast
                Ja genau.

                Zitat von kordnas Beitrag anzeigen
                inaktiven PHP Konsole.
                Was genau ist das?

                Mach mal nur ein:

                Code:
                yum -y install php-pecl-mosquitto

                Kommentar


                  Zitat von jonofe Beitrag anzeigen
                  Zitat von kordnas Beitrag anzeigen
                  inaktiven PHP Konsole.



                  Was genau ist das?
                  Die inTERaktive PHP Konsole. Kommt man mit
                  Code:
                  php -a
                  rein

                  Zitat von jonofe Beitrag anzeigen
                  yum -y install php-pecl-mosquitto
                  Gleiches Ergebnis
                  Code:
                  [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
                  Das sind meine yum Repos
                  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

                  Kommentar


                    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
                    Code:
                    yum -y install php-pecl-mosquitto
                    Die Fehler, dass MosquittoClient nicht gefunden wird sind jetzt auch weg. In Modul 19001051 hab ich allerdings noch
                    Code:
                    Call to undefined method mysqli_result::fetch_all()
                    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.
                    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.

                    Kommentar


                      Zitat von kordnas Beitrag anzeigen
                      zunächst das Remi Repo hinzugefügt
                      Das habe ich mal in der Anleitung ergänzt.

                      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]

                      Kommentar


                        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 :-)

                        Kommentar


                          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.

                          Zitat von kordnas Beitrag anzeigen
                          Es gab während der Installation nicht viele Stellen, an denen ich hätte (falsch) abbiegen können
                          Nicht viele, aber mindestens eine.
                          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.

                          Kommentar


                            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

                            Kommentar


                              Zitat von kordnas Beitrag anzeigen
                              Okay, ich wusste nicht, dass das Backup derartig gründlich ist
                              Das lag dann nicht am Backup, denn PHP 5.4 ist wohl Standard bei CentOS7.
                              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.

                              Kommentar


                                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?

                                Kommentar

                                Lädt...
                                X