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

  • jonofe
    antwortet
    Hi Micha,

    ja das liegt wohl am JSON, da innerhalb des JSON auch Anführungszeichen verwendet werden. Das führ dann zu einem ungültigen SQL Statement. Sollte aber korrigierbar sein. Schaue ich mir mal an und melde mich.

    Viele Grüße
    André

    Einen Kommentar schreiben:


  • vento66
    antwortet
    jonofe Hi André! Ich habe die Bausteine jetzt auch mal getestet. Den Broker und node-red auf einem Raspi, weil Broker und Edomi auf einer Maschine zu jeder Menge seq-counter Fehler führen. Da sind deine LBS aber scheinbar unschuldig, da es mit einem externen Broker funktioniert. Eine Frage hab ich noch, hast Du das übergeben von JSON Strings integriert, oder nur die number und String funktionen? Ein Json lässt sich nicht in die KO Datenbank eintragen. Ich vermute mal das es an den Sonderzeichen im String hängt.

    Ich hänge mal das log an:
    Code:
    2017-06-05 10:44:00    645406    8130    debug    EXE19001052 [v0.3]:    Topic: edomi/set/internal/1082 - Payload: {"codepage":"ger","model":"RS815+","ram":6144,"serial":"15A0MRN914400","temperature":52,"temperature_warn":false,"time":"Mon Jun 5 10:44:00 2017","uptime":1015854,"version":"15101","version_string":"DSM 6.1.1-15101 Update 4"} (1765)
    2017-06-05 10:44:00    646096    8130    debug    EXE19001052 [v0.3]:    MQTT find Query: SELECT id,ga,name FROM edomiLive.RAMko WHERE (ga="1082" OR name="1082") (1765)
    2017-06-05 10:44:00    646886    8130    debug    EXE19001052 [v0.3]:    MQTT Set Query: INSERT INTO edomiLive.RAMknxRead (mode,gatyp,gaid,value) VALUES (4,0,"1082","{"codepage":"ger","model":"RS815+","ram":6144,"serial":"15A0MRN914400","temperature":52,"temperature_warn":false,"time":"Mon Jun 5 10:44:00 2017","uptime":1015854,"version":"15101","version_string":"DSM 6.1.1-15101 Update 4"}") (1765)
    2017-06-05 10:44:00    647452    8130    debug    EXE19001052 [v0.3]:    ERROR: 1082 GA: 1082 (Mqtt) could not be set in EDOMI database (1765)
    Zuletzt geändert von vento66; 05.06.2017, 09:53.

    Einen Kommentar schreiben:


  • jonofe
    antwortet
    Ich meinte damit ja nicht, dass es da keinen Zusammenhang mit MDT gibt, aber es gibt ganz sicher auch einen mit dem MQTT LBS. Und beides in Kombination kann das Problem natürlich verstärken.

    Einen Kommentar schreiben:


  • WagoKlemme
    antwortet
    Ich habe aber ohne MQTT die Sequence Counter. Über einer Telegrammrate von 20 gehts richtig ab. Scheinbar reicht der Puffer nicht.

    Einen Kommentar schreiben:


  • jonofe
    antwortet
    Es wird dennoch einen Zusammenhang mit dem MQTT Publish Server geben, denn ich habe bei mir gelegentlich dieselben Fehler, und zwar nur auf dem Testsystem, auf dem die MQTT LBS laufen. Beide meiner EDOMI Instanzen (Test und Produktion) verwenden dieselbe KNX Anbindung (eibd => Siemens KNX USB Interface => KNX). In den letzten 4 Tagen hatte ich zwar nur einen SeqCounter Fehler auf dem Testsystem (davor aber auch mal 50 oder 80), auf dem Produktionssystem hingegen habe ich gar keine.
    Ich denke es könnte ggf. ein Timingproblem durch MySQL Trigger geben, insbesondere wenn die Telegramrate hoch ist und wenn dann noch der MQTT offline ist und somit das Publish Skript ins Leere läuft. Werde noch mal überlegen, ob man das Skript optimieren kann oder ggf. die Stored Procedure, aber die ist ja quasi schon minimal, da sie nur ein PHP Skript aufruft. Evtl. könnte man statt mit dem Trigger das PHP Skript aufzurufen, das geänderte iKO/GA in eine temporäre Tabelle schreiben und ein PHP Skript diese Tabelle scannen lassen.

    Einen Kommentar schreiben:


  • WagoKlemme
    antwortet
    Ich glaube eher der MDT kann schlecht mit hoher Telegrammrate umgehen. Ich hatte kürzlich MDT angeschrieben und leider keine befriedigende Antwort bekommen.
    Fakt ist, wenn die Telegramrate in Edomi höher als 20 eingestellt wird, hagelts Sequenze Counter Fehler. Der Enertex schafft 35 ohne Probleme.

    Einen Kommentar schreiben:


  • Nanosonde
    antwortet
    Die KNX Anbindung erfolgt über ein MDT SCN-IP000.02 (IP Interface, kein Router).
    Ich habe auch sofort die ETS5 getestet. Dort klappt die KNX Kommunikation ohne Probleme.
    Es muss also was in Edomi gewesen sein.

    Einen Kommentar schreiben:


  • jonofe
    antwortet
    interessant wäre gewesen, ob denn die Reaktivierung des Brokers zusammen mit der Neuaktivierung des Edomi Projektes behoben hätte. Wie ist denn deine KNX Anbindung realisiert?

    Einen Kommentar schreiben:


  • Nanosonde
    antwortet
    Zitat von jonofe Beitrag anzeigen


    Bei der erfolglosen Projektaktivierung war der MQTT Broker aber wieder online, oder?
    Nein. Ich hatte die MQTT Server LBS zunächst gar nicht im Verdacht.
    Merkwürdig fand ich die immer gleichen Zählstände beim SeqCounter Error.

    Einen Kommentar schreiben:


  • jonofe
    antwortet
    Zitat von Nanosonde Beitrag anzeigen

    Hast Du eine Idee, was da los sein könnte?
    Es muss auf jeden Fall im Zusammenhang mit dem nicht verfügbaren MQTT Broker stehen.
    Die SeqCounter Errors hatte ich auch schon. Allerdings nicht in diesem Ausmaß und auch nicht, dass EDOMI nicht mehr reagiert hat.

    Bei der erfolglosen Projektaktivierung war der MQTT Broker aber wieder online, oder?

    Werde mir das nochmal anschauen und auch mal den Ausfall des Brokers als Testcase simulieren.

    Einen Kommentar schreiben:


  • Nanosonde
    antwortet
    Hi André!

    Ich hatte gestern folgenden Effekt:
    Zunächst habe ich nachmittags meinen RPi mit Mosquitto außer Betrieb genommen, ohne dabei die MQTT Server LBS zu deaktivieren.
    Diese haben im Log natürlich die Exception gezeigt, dass die Verbindung verloren wäre. Soweit so gut.

    Das lief dann den Nachmittag so durch, weil ich zwischendurch nicht zuhause war.

    Abends ging dann bei Edomi plötzlich gar nicht mehr. Im Error-Log hatte ich insgesamt über 4000 Fehler bestehend aus SEQ Counter abweichend und Disconnect_Request. Alles im Wechsel. Die Counter-Werte waren immer die Geichen (?): IST: 0, SOLL: 1

    Eine erneute Projektaktivierung brachte nichts.
    Erst das komplette Deaktivieren der Logikseite, die die beiden MQTT Server LBS, die direkt mit den Edomi KOs umgehen, brachte Abhilfe.

    Hast Du eine Idee, was da los sein könnte?
    Es muss auf jeden Fall im Zusammenhang mit dem nicht verfügbaren MQTT Broker stehen.

    Einen Kommentar schreiben:


  • hx5
    antwortet
    Zitat von trollmar Beitrag anzeigen
    Hi.

    Teste auf dem Rpi mit mosquitto mal folgendes.




    Wenn das geht würde ich ne Logikseite mit dem server subscriber anlegen und ihm etwas schicken so wie es jonofe beschrieben hat.
    Lg
    Danke für den Tipp.
    Wird leider quttiert mit:
    Code:
    Client mosqsub/19097-KNXRouter sending CONNECT
    Client mosqsub/19097-KNXRouter received CONNACK
    Connection Refused: not authorised.
    Liegt vermutlich daran, dass schon ein Benutzer mit PW angelegt wurde.
    Aber der Rest funktioniert ja...

    Einen Kommentar schreiben:


  • hx5
    antwortet
    Zitat von jonofe Beitrag anzeigen
    mit dem mosquitto_passwd Befehl ... siehe oben in der Anleitung.
    Ja, wer richtig lesen kann ist klar im Vorteil. Sorry..

    Hatte den Benutzernahmen im LBS versehentlich großgeschrieben.

    Jetzt läuft es perfekt. Danke!

    Einen Kommentar schreiben:


  • woda
    antwortet
    Wer ein Synology NAS hat kann den Mosquitto Broker sehr einfach dort laufen lassen.
    https://sites.google.com/site/mccwor...n-synology-nas

    Kleine Ergänzung:
    Bei mir war ein Reboot des NAS nach der Installation notwendig, da sich das Paket sonst nicht starten ließ.
    Zuletzt geändert von woda; 21.05.2017, 09:03.

    Einen Kommentar schreiben:


  • trollmar
    antwortet
    Hi.

    Teste auf dem Rpi mit mosquitto mal folgendes.


    Open up two more terminal windows.

    In Terminal window 1 type:

    mosquitto_sub -d -t hello/world

    In Terminal window 2 type:

    mosquitto_pub -d -t hello/world -m "Hello from Terminal window 2!"

    When you have done the second statement you should see this in the Terminal 1 window.
    Wenn das geht würde ich ne Logikseite mit dem server subscriber anlegen und ihm etwas schicken so wie es jonofe beschrieben hat.
    Lg

    Einen Kommentar schreiben:

Lädt...
X