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

    jup. eventuell auch mal ohne Haken rechts bei bestätigt probieren.

    Kommentar


      hab ich soeben ausprobiert, leider ohne Erfolg.
      Gibt es noch andere Möglichkeiten den Status abzufragen?

      Kommentar


        Oder einfach mal den trailing slash weglassen, den haste doch beim Fensterkontakt auch nicht.
        Das springt einen doch geradezu an, wenn man auf die Screenshots schaut.
        Ich denke danach sollte es funktionieren, wenn iobroker die Daten korrekt published.

        Kommentar


          Ich habe Anfang Dezember auch auf CentOS 7 gewechselt, clean install auf neuer Hardware

          Den Publish Server hatte ich natürlich auch am laufen und aktualisiert. Habe auch die Installationsschritte durchgeführt, wobei ich jetzt (es funktioniert nicht, keine Mosquitto Messages gehen raus) zugeben muss, dass ich nicht geprüft habe, ob es damals Fehlermeldungen gab.

          Jetzt wollte ich die Installationsschritte noch mal durchgehen und muss feststellen, dass es wohl Probleme mit dem home_oojah_mqtt Repo gibt?

          Es scheitert also an
          Code:
          yum -y install libmosquitto1 libmosquitto-devel mosquitto-clients
          Mit
          yum fehlermeldung.png

          Was mache ich falsch? Oder wurde da gerade was abgeschaltet?

          Ich habe auch mit
          Code:
          rpm -q libmosquitto1
          geprüft, ob das Package installiert ist. Negativ!

          Danke!

          Sandro

          Kommentar


            Das ist ein CentOS6 Repo, das wird wohl nicht mehr funktionieren. Entweder gibts schon ne neue Anleitung, oder schau mal hier, für die Installation unter CentOS7:
            https://www.codeflow.site/de/article...er-on-centos-7
            Zumindest den ersten teil für die Installation.

            Kommentar


              Zitat von vento66 Beitrag anzeigen
              Das ist ein CentOS6 Repo, das wird wohl nicht mehr funktionieren
              Sorry, da hatte ich jetzt aus Versehen noch den alten Quellcode auf und bin die alte Installationsanleitung durchgegangen. Für die neueste Version sollte das also nicht auftauchen!!

              Hab die neue Anleitung jetzt aber noch mal geprüft. Soweit ich das erkennen kann, ist entweder "nichts zu tun" oder es läuft ohne Fehlermeldungen durch.

              Sandro

              Kommentar


                Bei CentOS7 wird dieses Repo nicht verwendet. Gemäß Anleitung sollte die Installation funktionieren und danach eigentlich auch der LBS.

                Kommentar


                  Ich bin da jetzt weitergekommen...

                  An der Installation scheint es nicht zu liegen, es gibt zwei andere Probleme:

                  1. Kann es sein, dass die Zeile
                  Code:
                  if ($match && ($plainFilter != '' || $regFilter != '')) {
                  eher
                  Code:
                  if (!$match && ($plainFilter != '' || $regFilter != '')) {
                  sein sollte? (negiertes $match)

                  Wenn ich das ändere, kann ich mqtt_publish manuell aufrufen und die Nachricht geht per MQTT raus. Wenn ich den If Anweisungen da richtig folge, könnte die $match Referenz da auch ganz raus.

                  2. Irgendwas scheint mit den Triggern nicht zu stimmen. Ich habe mal ein bisschen in der MySQL Kommandozeile rumgefummelt:
                  Code:
                  show triggers;
                  in der edomiLive DB zeigt mir keine Trigger an.

                  Versuche ich den (Update)Trigger noch mal hinzuzufügen, bekomme ich den Fehler, dass der Trigger schon existiert.
                  Füge ich den gleichen (Update)Trigger noch mal unter einem anderen Namen hinzu, geht es plötzlich, dann geht bei Änderung auch die MQTT Nachricht raus.

                  Das gleiche kann ich übrigens auch erreichen wenn ich die entsprechenden Zeilen im LBS direkt dupliziere

                  Duplicated trigger.png

                  Fällt euch dazu was ein? :-)

                  Sandro

                  Kommentar


                    Zu 1) Muss ich mal in den Code schauen.

                    EDIT:
                    Das ist wohl ein Überbleibsel vom ersten Ansatz, dass die Filter E6/E7 auch dann angewendet werden sollten, wenn A15=1 ist, dass heisst wenn relevante KOs über das Kommentarfeld ausgewählt wurden. Das habe ich nachträglich geändert, d.h. entweder über die Filter (E6/E7) oder über das Kommentarfeld werden die zu publishenden GAs ausgewählt. Korrekt müsste es also wie folgt aussehen:


                    Statt:

                    PHP-Code:
                    if ($match && ($plainFilter != '' || $regFilter != '')) {
                        
                    $match false
                    nun:

                    PHP-Code:
                    if ($plainFilter != '' || $regFilter != '') {

                    ...

                    } else
                        
                    $match True;     // No filter at all (E6/E7 empty and A15=0) 
                    Zu 2) Das Problem wurde mehrfach in diesem Thread diskutiert und gelöst. Siehe Post #99
                    Zuletzt geändert von jonofe; 02.01.2021, 09:29.

                    Kommentar


                      1) Hab ich so übernommen

                      2) Da hätte ich auch selbst noch drauf kommen können hier im Thread mal nach Trigger zu suchen 😇Ich schiebe das mal auf die Uhrzeit oder darauf, dass ich ins Bett musste

                      Danke in jedem Fall, läuft wieder :-)

                      Kommentar


                        Beim prüfen der Logfiles ist mir aufgefallen, dass KOs mit Anführungszeichen " oder ' im Value zu einem Fehler im mariadb.log führen.
                        Code:
                        Wohnraum,1,0,0,INTERIOR_BLIND,null,{interface:Alex a.ToggleController,properties:[toggleState]}]' & : -c: line 0: unexpected EOF while looking for matching `''
                        Dies ist vor allem bei KOs für Alexa bzw. JSON Strings der Fall.

                        Kommentar


                          Zitat von philipp900 Beitrag anzeigen
                          Beim prüfen der Logfiles ist mir aufgefallen
                          Welches Logfile?

                          Zitat von philipp900 Beitrag anzeigen
                          KOs mit Anführungszeichen " oder ' im Value zu einem Fehler im mariadb.log führen.
                          Was führt zu einem Fehler?

                          Zitat von philipp900 Beitrag anzeigen
                          Dies ist vor allem bei KOs für Alexa bzw. JSON Strings der Fall.
                          Bei anderen KOs mit Anführungszeichen passiert das nicht?

                          Kommentar


                            Wenn der Wert eines KO auf etwas gesetzt wird was Anführungszeichen enthält.
                            Der Trigger auf der SQL Tabelle welcher den Wert an MQTT senden sollte schlägt dann fehl.
                            Zu sehen im SQL log: /var/log/mariadb/mariadb.log

                            KOs für Alexa und JSON sind die einzigen Dinge bei mir die Anführungszeichen enthalten.

                            Kommentar


                              Hi jonofe
                              Habe Deinen MQTT Public Server installiert um Daten von Edomi nach Node Red zu senden
                              Habe nach Deiner Anleitung installiert

                              yum -y install php-process git gcc make mysql-devel php-devel
                              yum -y install autoconf automake libtool
                              cd /tmp
                              git clone https://github.com/jonofe/lib_mysqludf_sys
                              cd lib_mysqludf_sys/
                              ./install.sh
                              cd /tmp
                              rm -rf lib_mysqludf_sys/
                              git clone https://github.com/mysqludf/lib_mysqludf_log
                              cd lib_mysqludf_log
                              autoreconf -i
                              ./configure
                              make
                              make install
                              mysql < installdb.sql

                              Den MQTT Public Server habe ich wie im Screenshot zu sehen eingestellt

                              12.PNG
                              Leider blinkt der LBS nicht und sendet auch keine Daten.
                              Auch mit dem MQTT Tool bekomme ich keine Verbindung & Daten

                              Installiertes System CentOs7 und edomi 2

                              Kannst Du mir hier bitte weiterhelfen
                              Zuletzt geändert von BadWicky; 16.01.2021, 12:52.

                              Kommentar


                                Im log steht das drin

                                {EDOMI,CUSTOMLOG_MQTT_Publish_Server-LBS19001051.htm,16.01.2021,10:59:10,997941,30526}Z eitstempelmsPIDLogLevelMeldung2021-01-16 10:59:1099781830526debug LBS19001051 [v1.0]: QUERY: CREATE PROCEDURE mqtt_publish(typ INT(10), ga VARCHAR(1000), name VARCHAR(1000), value VARCHAR(11000)) BEGIN DECLARE cmd VARCHAR(1000); DECLARE result INT(10); DECLARE logresult INT(10); SET cmd = CONCAT('/usr/bin/bash -c "/usr/bin/php /usr/local/edomi/www/data/liveproject/lbs/EXE19001051.php ',typ,' ',ga,' \'',name,'\' \'',value,'\' & "'); SET result = sys_exec(cmd); END (5284)2021-01-16 11:17:5518850832194debug LBS19001051 [v1.0]: QUERY: CREATE PROCEDURE mqtt_publish(typ INT(10), ga VARCHAR(1000), name VARCHAR(1000), value VARCHAR(11000)) BEGIN DECLARE cmd VARCHAR(1000); DECLARE result INT(10); DECLARE logresult INT(10); SET cmd = CONCAT('/usr/bin/bash -c "/usr/bin/php /usr/local/edomi/www/data/liveproject/lbs/EXE19001051.php ',typ,' ',ga,' \'',name,'\' \'',value,'\' & "'); SET result = sys_exec(cmd); END (5284)2021-01-16 11:18:2496997532194debug LBS19001051 [v1.0]: QUERY: CREATE PROCEDURE mqtt_publish(typ INT(10), ga VARCHAR(1000), name VARCHAR(1000), value VARCHAR(11000)) BEGIN DECLARE cmd VARCHAR(1000); DECLARE result INT(10); DECLARE logresult INT(10); SET cmd = CONCAT('/usr/bin/bash -c "/usr/bin/php /usr/local/edomi/www/data/liveproject/lbs/EXE19001051.php ',typ,' ',ga,' \'',name,'\' \'',value,'\' & "'); SET result = sys_exec(cmd); END (5284)2021-01-16 11:27:416408602665debug LBS19001051 [v1.0]: QUERY: CREATE PROCEDURE mqtt_publish(typ INT(10), ga VARCHAR(1000), name VARCHAR(1000), value VARCHAR(11000)) BEGIN DECLARE cmd VARCHAR(1000); DECLARE result INT(10); DECLARE logresult INT(10); SET cmd = CONCAT('/usr/bin/bash -c "/usr/bin/php /usr/local/edomi/www/data/liveproject/lbs/EXE19001051.php ',typ,' ',ga,' \'',name,'\' \'',value,'\' & "'); SET result = sys_exec(cmd); END (5284)2021-01-16 11:30:006920852645debug LBS19001051 [v1.0]: QUERY: CREATE PROCEDURE mqtt_publish(typ INT(10), ga VARCHAR(1000), name VARCHAR(1000), value VARCHAR(11000)) BEGIN DECLARE cmd VARCHAR(1000); DECLARE result INT(10); DECLARE logresult INT(10); SET cmd = CONCAT('/usr/bin/bash -c "/usr/bin/php /usr/local/edomi/www/data/liveproject/lbs/EXE19001051.php ',typ,' ',ga,' \'',name,'\' \'',value,'\' & "'); SET result = sys_exec(cmd); END (5284)2021-01-16 11:31:470628292645debug LBS19001051 [v1.0]: QUERY: CREATE PROCEDURE mqtt_publish(typ INT(10), ga VARCHAR(1000), name VARCHAR(1000), value VARCHAR(11000)) BEGIN DECLARE cmd VARCHAR(1000); DECLARE result INT(10); DECLARE logresult INT(10); SET cmd = CONCAT('/usr/bin/bash -c "/usr/bin/php /usr/local/edomi/www/data/liveproject/lbs/EXE19001051.php ',typ,' ',ga,' \'',name,'\' \'',value,'\' & "'); SET result = sys_exec(cmd); END (5284)2021-01-16 11:49:5788954012889debug LBS19001051 [v1.0]: QUERY: CREATE PROCEDURE mqtt_publish(typ INT(10), ga VARCHAR(1000), name VARCHAR(1000), value VARCHAR(11000)) BEGIN DECLARE cmd VARCHAR(1000); DECLARE result INT(10); DECLARE logresult INT(10); SET cmd = CONCAT('/usr/bin/bash -c "/usr/bin/php /usr/local/edomi/www/data/liveproject/lbs/EXE19001051.php ',typ,' ',ga,' \'',name,'\' \'',value,'\' & "'); SET result = sys_exec(cmd); END (5284)2021-01-16 12:05:1998577312889debug LBS19001051 [v1.0]: QUERY: CREATE PROCEDURE mqtt_publish(typ INT(10), ga VARCHAR(1000), name VARCHAR(1000), value VARCHAR(11000)) BEGIN DECLARE cmd VARCHAR(1000); DECLARE result INT(10); DECLARE logresult INT(10); SET cmd = CONCAT('/usr/bin/bash -c "/usr/bin/php /usr/local/edomi/www/data/liveproject/lbs/EXE19001051.php ',typ,' ',ga,' \'',name,'\' \'',value,'\' & "'); SET result = sys_exec(cmd); END (5284)

                                Kommentar

                                Lädt...
                                X