Ankündigung

Einklappen
Keine Ankündigung bisher.

openhab2 MQTT 2.4 Problem

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

    openhab2 MQTT 2.4 Problem

    Ich bekomme hier die mqtt clients mit dem MQTT 2.4 Binding nicht zum laufen.

    Mosquitto läuft.

    Log bei Openhab start: 'mqtt:brokerpenhab' changed from OFFLINE to ONLINE



    Der Status von shellies/shelly1-491AF4/relay/0 ändert sich wenn ich den Shelly über seine Weboberfläche umschalte.


    Openhab mqtt.things file:

    Bridge mqtt:broker:mosquitto [ host="localhost", port=1883, secure=false, user="openhabian", password="passwort", clientid="openhab" ] {

    Thing topic Shelly "Shelly" {
    Channels:.

    Type switch : SKeller "SKeller" [ stateTopic="shellies/shelly1-491AF4/relay/0", on="on", off="off" ,
    commandTopic="shellies/shelly1-491AF4/relay/0/command" , on="on" , off="off"]
    }

    Openhab mqtt.items file:

    Switch Shelly8 "Keller" { channel="mqtt:topic:mosquitto:Shelly:SKeller" }


    Im Log von openhab taucht dieser Fehler auf wenn ich über die Sitemap das Item umschalten will:

    [ome.event.ItemCommandEvent] - Item 'Shelly8' received command ON [nt.ItemStatePredictedEvent] - Shelly8 predicted to become NULL



    Hab schon fast alles versucht, unter dem MQTT 1.3 Binding (mit geändertem Items-File) kann ich den Shelly ansteuern.

    Kann mir bitte jemand ein paar Tipps geben ?


    #2
    Also, mein erster Tipp wäre, grundsätzlich alles, was codeartig ist, im Forum auch als Code zu posten. Das betrifft also nicht nur Rules, sondern auch Konfigurationen und (!) Logs.
    Mein zweiter Tipp wäre, Log Zeilen nicht ohne Not zu kürzen oder zu verändern. Wenn da ein Passwort steht, kannst Du es aus-X-en, aber z.B. die privaten IP-Adressen zu verschleiern ist Dummfug, denn sie sind nun mal privat, nicht in dem Sinne, dass niemand davon erfahren darf, sondern dass sie im Internet nicht geroutet werden. Die öffentliche IP ist dagegen wesentlich privater

    Ich sehe an der ersten Log-Zeile, dass Du einen MQTT Broker "openhab" konfiguriert hast. Das ist allerdings nicht der Broker aus der mqtt.things. Hast Du in Paper UI ebenfalls mqtt konfiguriert?
    Grundsätzlich sieht die mqtt.things ok aus, allerdings fehlt eine schließende geschweifte Klammer und Du hast in der Channel Definition Parameter doppelt angegeben. Außerdem ist da ein Punkt hinter dem Schlüsselwort Channels:.
    Hier mal zum Vergleich, wie es eher aussehen sollte:
    Code:
    Bridge mqtt:broker:mosquitto "Mosquitto" @ "MQTT" [  // UID Label/Name @ Paper UI Control Seite
        host="localhost",
        port=1883,                                       // Standard Port, Parameter kann entfallen
        secure=false,                                    // Standard, Parameter kann entfallen
        user="openhabian",                               // User und Passwort von mosquitto. Parameter korrekt?
        password="passwort",
        clientID="openhab"          // EDIT: Tippfehler korrigiert
     ] {
    
        Thing topic Shelly "Shelly" @ "MQTT" {
        Channels:                                        // Schlüsselwort optional
    
            Type switch : SKeller "SKeller" [ stateTopic="shellies/shelly1-491AF4/relay/0", commandTopic="shellies/shelly1-491AF4/relay/0/command" , on="on" , off="off" ]
        }
    }
    Bei den Parametern on und off bin ich mir nicht sicher, ob sie überhaupt gebraucht werden, eventuell spielt Groß/Kleinschreibung an dieser Stelle ausnahmsweise keine Rolle. Das kannst Du ausprobieren, sobald das Thing korrekt funktioniert.

    Das Item sieht gut aus; Wenn das Thing und der Channel funktionieren, sollte das Item die korrekten Daten bekommen und abgeben können.

    Da das Item mit dem Channel verlinkt ist, sollte das Thing auch umgehend unter Paper UI Control auf der Unterseite MQTT auftauchen (oder unter OTHER, falls Du den @ "MQTT" Teil weg lassen willst).

    Die letzten zwei Log Zeilen sind keine Fehlermeldungen und stehen auch nicht in openhab.log, sondern in events.log. Beide Meldungen werden ausgegeben, wenn Du z.B. über die UI das Item schaltest.
    Zuletzt geändert von udo1toni; 10.03.2019, 14:33. Grund: Tippfehler in der Konfig korrigiert

    Kommentar


      #3
      Das
      Code:
       
       on="on" , off="off"
      Wird immer dann benötigt, wenn der MQTT-Empfänger etwas anderes erwartet als "on" oder "off". Ich glaube mich erinnern zu können, dass standartmässig, ein 1 oder 0 gesendet wird.

      Ich empfehle dir einen Alternativen Client als Monitor mitlaufen zu lassen.

      Ich nutze hierzu die Chrom-App MQTTLens.
      Alternative kann an der Konsole.

      Code:
      mosquitto_sub -v -h 127.0.0.1 -u XXXXX -P YYYYY -t 'shellies/shelly1-491AF4/#'
      abonnieren werden.

      Mit dem Beispiel würdest du alles sehen, was MQTT zu deinem Gerät Empfängt.
      --
      Gruß
      Lothar

      Kommentar


        #4
        Die Meldung " [nt.ItemStatePredictedEvent] - Shelly8 predicted to become NULL" ist aber der Fehler, es kommt kein Status zurück.

        Wenn alles in Ordnung müsste im Log eine Meldung das openhab den Befehl gesendet hat. (ist beim MQTT1.3 binding so)

        Openhab meldet sich ja auch am Mosquitto an (sehe ich übere MQTTLens), aber der Shelly wird von openhab aus nicht angesprochen.

        Kommentar


          #5
          openhab spricht _NIE_ das Shelly an!
          Sonder openhab sendet einen String an den MQTT-Broker.
          Wenn das Shelly gerade nicht online ist, dann hört es das Packet vom Broker nicht, aber openhab interessiert sich dafür auch nicht.

          Zeig doch mal deine MQTT.things.

          Fehlermeldungen aus dem Kontext gerissen helfen niemanden.

          Wichtig ist, meldet sich das Shelly am Broker an? Dies musst du auch sehen.
          Du kannst auch per MQTTLens Befehle absetzen, auf die muss dann das Shelly reagieren.



          --
          Gruß
          Lothar

          Kommentar


            #6
            Zitat von uwebl Beitrag anzeigen
            Die Meldung " [nt.ItemStatePredictedEvent] - Shelly8 predicted to become NULL" ist aber der Fehler, es kommt kein Status zurück.

            Wenn alles in Ordnung müsste im Log eine Meldung das openhab den Befehl gesendet hat. (ist beim MQTT1.3 binding so)

            Openhab meldet sich ja auch am Mosquitto an (sehe ich übere MQTTLens), aber der Shelly wird von openhab aus nicht angesprochen.
            Nein, das ist kein Fehler, Du versuchst, das Item zu schalten und das wird von openHAB auch so ausgewertet und angezeigt. Das ist kein Fehler. Nochmal, bitte poste Code, Logs und Konfigurationen immer als Code. Hast Du die Fehler in Deiner Konfiguration inzwischen korrigiert?

            Kommentar


              #7
              Hallo schon mal Danke für die Hilfe.

              Also, der Shelly meldet sich am Broker an, ich kann den Shelly über die eigene Website umschalten oder über Mosquitto, das funktioniert.

              Code:
              /etc/openhab2/things/mqtt.thing  
              
              Bridge mqtt:broker:mosquitto "Mosquitto" @ "MQTT" [  // UID Label/Name @ Paper UI Control Seite
                  host="localhost",
                  port=1883,                                       // Standard Port, Parameter kann entfallen
                  secure=false,                                    // Standard, Parameter kann entfallen
                  user="openhabian",                               // User und Passwort von mosquitto. Parameter korrekt?
                  password="passwort",
                  clientid="openhab"
               ] {
              
                  Thing topic Shelly "Shelly" @ "MQTT" {
                  Channels:                                        // Schlüsselwort optional
              
                      Type switch : SKeller "SKeller" [ stateTopic="shellies/shelly1-941AF4/relay/0", commandTopic="shellies/shelly1-941AF4/relay/0/command" , on="on" , off="off" ]
                  }
              }

              Code:
              /etc/openhab2/items/mqtt.items  
              
              
              Switch Shelly8 "Keller" { channel="mqtt:topic:mosquitto:Shelly:SKeller" }
              Das hier findet sich im Paper UI unter Configuration - Services - MQTT: "MQTT system broker connection"

              org.eclipse.smarthome.mqttbroker

              Und unter Items das Item "Keller"


              Bei Things im Paper UI ist nichts, genauso wie unter Control.

              Als Binding ist das MQTT Binding 2.4 installiert.

              Wenn ich über die Sitemap das Item Keller einschalten will kommen diese 2 Zeilen im Event.log:

              Code:
               
                  
              2019-03-09 23:36:55.298 [ome.event.ItemCommandEvent] - Item 'Shelly8' received command ON
              
              2019-03-09 23:36:55.317 [nt.ItemStatePredictedEvent] - Shelly8 predicted to become NULL
              Zuletzt geändert von uwebl; 09.03.2019, 23:39.

              Kommentar


                #8
                Die Dateiendung heißt things nicht thing.

                Das Schlüsselwort für die Client ID heißt clientID.
                Zuletzt geändert von udo1toni; 10.03.2019, 14:32.

                Kommentar


                  #9
                  Ich Depp.


                  Vielen Dank, das war es.

                  Kommentar

                  Lädt...
                  X