Ankündigung

Einklappen
Keine Ankündigung bisher.

Mqtt mit Mosquitto

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

    Mqtt mit Mosquitto

    Hallo an alle hier im Forum,
    ich bin neu im Thema OpenHAB und habe leider ein Problem bei dem ich einfach nicht weiter komme.
    Evtl kann mir hier jemand eine Tipp geben.
    Kurze Erklärung zu meiner Hardware und dem Problem.
    Auf einem RPI2 habe ich OpenHAB installiert und nutze erfolgreich das RWE-Binding von Olli aus dem RWE-Smarthome-Forum zusätzlich habe ich noch einige Fritz-Schaltsteckdosen über das Fritz-AHA-Binding und auch 1-Wire Temperatursensoren direkt an dem RPI angeschlossen. Alles funktioniert super.
    Jetzt zu meinem eigentlichen Problem. Ich wollte noch gerne 2 Schaltdosen mit einem ESP8266-Modul über Mqtt ansprechen. Dort scheitere ich allerdings schon seit einiger Zeit dran.
    Ich habe bereits Mosquitto auf dem RPI installiert. Läuft! über die Konsole, SUB und PUB bekomme ich die Einträge angezeigt. Auch die ESP-Module lassen sich über die Konsole mit PUB und dem Befehl schalten. Über externe Geräte, Handy oder Chrome-App kann ich die Befehle zum Mosquitto Server senden und das Modul schaltet auch. somit denke ich das der Server auch funktioniert.
    Bei OpernHAB habe ich das Mqtt-Binding in den Addon-Ordner gelegt und auch in der openhab.config habe ich für mqtt den Server localhost und auch Port und Client hinterlegt.
    Doch mir scheint das nichts an dem Mosquitto-Server übergeben wird.
    Ich dachte schon an evtl falsche Benutzer-Rechte und habe daher auf einem zweiten RPI Mosqitto installiert. leider mit dem selben Ergebnis.
    Wenn hier jemand noch einen hilfreichen Tipp für mich hat, würde ich das Toll finden. Mit gehen jetzt leider die Ideen aus.
    Gruß
    Stephan

    #2
    Benutzerrechte als Fehlerquelle kannst Du am einfachsten ausschließen, indem Du openHAB manuell als root startest, also den Dienst stoppen, ins openhab-Verzeichnis wechseln und dort su ./start.sh ausführen. Zum Dauerbetrieb eher ungeeignet, aber wenn mqtt dann funktioniert, weißt Du , in welcher Richtung Du forschen musst.

    Wenn Du openHAB dann eh schon gestoppt hast, kannst Du auch mit ./start_debug.sh den Debug-Modus starten, dann kannst Du eventuell im log sehen, wo es hakt, mqtt sollte dann gesprächig sein.

    Nur zur Sicherheit: Du hast org.openhab.binding.mqtt-1.x.y-SNAPSHOT.jar in den addons-Ordner gelegt, nicht org.openhab.binding.mqttitude-1.x.y-SNAPSHOT.jar

    Ich selbst nutze allerdings bisher kein mqtt, weshalb ich nur in der Theorie helfen kann.

    Kommentar


      #3
      Hallo,
      danke für deine schnelle Antwort.
      ich starte openhab mit sudo service openhab.
      Als mögliche Startoption gibt es nur Usage: /etc/init.d/openhab {start|stop|status|restart|force-reload}
      Kann dort leider nicht im Debug starten.
      Wo genau finde ich das openhab-Verzeichnis?
      Versucht habe ich das unter /etc/openhab und user/share/openhab. Beides ohne Erfolg.
      Als Binding nutze ich dieses hier org.openhab.binding.mqtt-1.7.1.jar.
      Gruß
      Stephan

      Kommentar


        #4
        was mir noch aufgefallen ist, wenn ich in der Konsole
        tail -f /var/log/openhab/openhab.log

        eingebe, sehe ich wie alle Dienste starten.

        z.B. :
        2015-12-20 14:55:25.481 [INFO ] [.service.AbstractActiveService] - RweSmarthome Refresh Service has been started
        2015-12-20 14:55:25.500 [INFO ] [.service.AbstractActiveService] - NTP Refresh Service has been started
        2015-12-20 14:55:15.503 [INFO ] [.service.AbstractActiveService] - HTTP Refresh Service has been started

        nur mein Mqtt Service ist dort nicht mit dabei. Sollte diese dort nicht auch starten?

        Kommentar


          #5
          Zitat von helldriver111 Beitrag anzeigen
          Sollte diese dort nicht auch starten?
          Ja, ein korrekt eingerichtetes mqtt mit z.B. einem eigenen Broker mosquitto sollte so aussehen:

          Code:
          2015-12-19 12:06:05.768 [INFO ] [.io.transport.mqtt.MqttService] - MQTT Service initialization completed.
          2015-12-19 12:06:05.771 [INFO ] [o.i.t.m.i.MqttBrokerConnection] - Starting MQTT broker connection 'mosquitto'
          Gruß, Sigi

          Kommentar


            #6
            Ok, dann bin ich zumindest auf dem richtigen Weg. Jetzt stellt sich nur die Frage warum der Dienst bei mir nicht startet.
            In der openhab.cfg habe ich nur unter MQTT-Transport folgende Einträge gemacht.

            mqtt:mysensor.url=tcp://localhost:1883
            mqtt:mysensor.clientId=OpenhabMQTT
            mqtt:mysensor.retain=true

            und in den Addon-Ordner die org.openhab.binding.mqtt-1.7.1.jar

            Muss sonst noch irgendwo etwas aktiviert werden?
            Gruß
            Stephan

            Kommentar


              #7
              Dein Mosquitto scheint ja zu laufen wenn du mit pub und sub die Messages mitschneiden kannst.
              Meine openhab.cfg sieht auch nicht viel anders als deine aus, außer das ich eine TLS Verbindung mit Zertifikat nutze:

              Code:
              mqtt:mosquitto.url=ssl://localhost:8883
              mqtt:mosquitto.clientId=owntracks
              mqtt:mosquitto.user=mein_username
              mqtt:mosquitto.pwd=mosquitto_passwort
              mqtt:mosquitto.qos=1
              mqtt:mosquitto.retain=true
              mqtt:mosquitto.async=false
              Ich bin mir allerdings nicht sicher ob man ohne TLS über port 1883 keinen Mosquitto User und das Passwort angeben muss (habe es nie ohne Authentifizierung versucht).
              Sorry, habe da leider auch keine weiteren Hinweise für dich.

              Gruß, Sigi

              Kommentar


                #8
                Ach ja, das Debian-Paket... Ich nutze zwar Debian, aber die Nightly-Version von openHAB (allerdings mache ich nicht jedes update mit, halt nur wenn neue Funktionen einfließen).

                Den Debug-Modus kannst Du, wenn ich mich richtig erinnere starten, indem Du vor dem Start von openHAB sudo nano /etc/default/openhab ausführst und dort DEBUG=no in DEBUG=yes änderst.

                Kommentar


                  #9
                  Bin mir nicht sicher und habe gerade keinen Zugriff auf meine Installation. Aber hast du die mqtt action jar auch kopiert?

                  Grüße
                  Mitch

                  Kommentar


                    #10
                    Zitat von mitch77 Beitrag anzeigen
                    Aber hast du die mqtt action jar auch kopiert?
                    Also bei mir läuft mqtt auch ohne action, ich habe in den downloads auch nirgendwo eine action gefunden ....

                    Gruß, Sigi

                    Kommentar


                      #11
                      So ich habe Openhab mal im Debug-Modus gestartet. Dort habe ich dann folgende Zeilen gefunden.
                      Code:
                      21:15:26.086 [DEBUG] [.io.transport.mqtt.MqttService:123  ] - Starting MQTT Service...
                      21:15:51.584 [DEBUG] [.b.mqtt.internal.MqttActivator:34   ] - MQTT binding has been started.
                      21:15:51.638 [DEBUG] [i.internal.GenericItemProvider:334  ] - Start processing binding configuration of Item 'mqttsw1_ip (Type=StringItem, State=Uninitialized)'        with 'MqttGenericBindingProvider' reader.
                      21:15:51.653 [DEBUG] [b.mqtt.internal.MqttItemConfig:71   ] - Loaded MQTT config for item 'mqttsw1_ip' : 1 subscribers, 0 publishers
                      21:15:51.674 [DEBUG] [i.internal.GenericItemProvider:334  ] - Start processing binding configuration of Item 'mqttsw1 (Type=SwitchItem, State=Uninitialized)' wit       h 'MqttGenericBindingProvider' reader.
                      21:15:51.686 [DEBUG] [b.mqtt.internal.MqttItemConfig:71   ] - Loaded MQTT config for item 'mqttsw1' : 1 subscribers, 1 publishers
                      21:15:51.721 [DEBUG] [m.internal.MqttEventBusBinding:61   ] - MQTT: Activating event bus binding.
                      Scheinbar wird der Service doch richtig gestartet.
                      Auch habe ich versucht Openhab als root:root zu starten. Leider mit dem selben Ergebnis.
                      Evtl. habe ich noch ein Fehler in dem items oder sidemap?

                      item
                      Code:
                      String mqttsw1_ip "IP:[%s]" {mqtt="<[mysensor:ESP8266/MEMBER/DVES_000A22C8/IP:state:default]"}
                      Switch mqttsw1 "Garten" {mqtt=">[mysensor:ESP8266/MEMBER/DVES_000A22C8/RELAY:command:*:MAP(mqttToOnOf.map)],<[mysensor:ESP8266/MEMBER/DVES_000A22C8/RELAY:state:MAP(mqttToOnOf.map)]"}
                      sidemap
                      Code:
                      Frame {
                            Switch item=mqttsw1
                            Text item=mqttsw1_ip
                          }
                      Gruß
                      Stephan

                      Kommentar


                        #12
                        Wenn der Service sauber läuft müsstest du ja jetzt mit

                        Code:
                        mosquitto_sub -h localhost -p 1883 -v -t 'ESP8266/#'
                        die Ausgaben des Schalters eigentlich sehen können ....

                        Gruß, Sigi

                        Kommentar

                        Lädt...
                        X