Ankündigung

Einklappen
Keine Ankündigung bisher.

Mysensors MQTT Openhab

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

    Mysensors MQTT Openhab

    Hallo,

    ich versuche seit einiger Zeit mich in das Thema MQTT und Mysensors einzulesen. Das Blöde ist nur dass die Webseiten alle in Englisch sind und das ich die Übersetzung durch Google nicht richtig verstehe. Ich habe vor, für den Anfang nur zum Testen, einige Temperatur- und Bodenfeuchtesensoren in meine funktionierende Openhab Installation Anzeigen zu lassen. Ich habe mir einen MQTT Broker auf einem Raspberry Pi2 installiert brauche ich den überhaupt, man kann doch mit einem Arduino und einem Netzwerkshild mit einem MQTT Sketch ein Gateway bauen. Dieses hat eine WLAN Antenne und bekommt dann von einem anderen Arduino der auch eine Wlan Antenne und zb. einen Temperatursensor hat die Daten zugeschickt. Soweit habe ich es verstanden auch schon getestet nur habe ich keine Ahnung wie ich es zum laufen bekomme. Das MQTT Binding habe ich kopiert nur weiss ich jetzt nicht was ich eintragen soll brauche ich den MQTT Broker oder ist das MQTT Gateway mit dem Mysensor Sketch dafür gedacht und wie kann ich testen ob die WLan verbindung zwischen den beiden funtioniert. Ich habe auch schon im Fhem Forum versucht mich schlau zu machen aber dass ist ja noch komplizierter.

    Benutzt jemand diese Sensoren von Mysensors und kann mir die vorgehensweise erklären wie ich die Sensordaten mit MQTT in mein Openhab bekomme. Ich Blicke nicht mehr durch.

    Danke

    Michael Langhauser

    #2
    So,

    nach langem hin und her bin ich darauf gekommen dass ich die Baud Rate von 9600 auf 115200
    verändern muss jetzt ist der...Gateway startup complete. Und der Temp Sensor zeigt auch eine Temp an. Wie bekomme ich die Zahlenwerte raus die ich in die items eintragen muss.

    Das item mit dem ich getestet habe funktioniert nicht. Hab noch nicht so den Durchblick mit MQTT und Mysensors.

    Number Temptest "Temperatur [%.1f °C]" {mqtt="<[mysensor:MyMQTT/2/2/V_TEMP:state:default]"}

    Gruss

    Michael

    Kommentar


      #3
      Hallo

      Ich Versuche jetzt schon seit einigen Stunden das mqtt Binding zu verstehen und was ich eintragen muss damit die Temperaturdaten in Openhab angezeigt werden. Ich verstehe nicht wie ich an die Angaben komme {mqtt="<[mysensor:MyMQTT/2/2/V_TEMP:state:default]"} Was für Zahlen kommen da rein ich habe schon alles Versucht.

      MyMQTT/[nodeId]/[childId]/[variable_type] wo stehen diese Angaben.

      Ich hoffe es kann mir noch jemand helfen !

      Gruss Michael
      Zuletzt geändert von Riffhai; 30.01.2016, 18:42.

      Kommentar


        #4
        Hallo,

        also jetzt habe ich es endlich gefunden was ich eintragen soll und Openhab hat jetzt einmal die Werte aktuallisiert jetzt bekomme ich aber im Log immer wieder eine Fehlermeldung was ist das jetzt ich werd hier noch verrückt !

        2016-01-30 20:40:22.363 [INFO ] [o.i.t.m.i.MqttBrokerConnection] - Starting MQTT broker connection 'mysensor'
        2016-01-30 20:40:22.520 [ERROR] [o.i.t.m.i.MqttBrokerConnection] - MQTT connection to broker was lost
        org.eclipse.paho.client.mqttv3.MqttException: Unexpected error
        at org.eclipse.paho.client.mqttv3.internal.CommsRecei ver.run(CommsReceiver.java:115) ~[na:na]
        at java.lang.Thread.run(Thread.java:744) [na:1.8.0]
        2016-01-30 20:40:22.526 [ERROR] [o.i.t.m.i.MqttBrokerConnection] - MQTT connection to 'mysensor' was lost: Unexpected error : ReasonCode 6 : Cause : Unknown
        2016-01-30 20:40:22.527 [INFO ] [o.i.t.m.i.MqttBrokerConnection] - Starting connection helper to periodically try restore connection to broker 'mysensor'

        Was muss ich da jetzt machen.

        Gruss Michael

        Kommentar


          #5
          Das habe ich jetzt auch gefunden wo der Fehler herkommt. Wenn ich unter Chrome das MQTT-Lens Plugin mit meinen MQTT Broker verbinde bekomme ich im Openhab Logfile sofort die Fehlermeldung das die Verbindung weg ist. Wie kann ich mir überhaupt anschauen was zum Broker gesendet wird gibt es dazu auch eine Logfile. ich verwende Mosquitto.

          Gruss Michael

          Kommentar


            #6
            Zitat von Riffhai Beitrag anzeigen
            Wie kann ich mir überhaupt anschauen was zum Broker gesendet wird gibt es dazu auch eine Logfile.
            Bei der Installation von mosquitto werden auch zwei Tools mitinstalliert, mosquitto_sub (lesen) und mosquitto pub (schreiben).
            Wenn du alle Werte lesen willst die reinkommen musst du
            Code:
            mosquitto_sub -h 127.0.0.1 -t meinTopic/#
            (meinTopic musst du natürlich ersetzen durch den von dir gewählten Namen)
            eingeben.
            Wo dein Logfile sich befindet steht in der
            Code:
            /etc/mosquitto/conf/mosquitto.conf
            , normalerweise steht dort
            Code:
            /var/log/mosquitto/mosquitto.log
            Gruß, Sigi

            Kommentar


              #7
              Hi,

              Zum testen/debuggen nutze ich meist mqtt spy oder am Android tablet myqtt.

              Kommentar


                #8
                Also Deine Erfahrungen habe ich größtenteils auch so machen müssen ;-)
                Ich selbst habe für mysensors kein mosquitto am laufen, da das mysensors-Gateway ja selbst eine MQTT-Nachrichten entgegen nimmt. Das MQTT Binding nimmt die mysensors Nachrichten entgegen. Sobald die Queue mit mosquitto_sub abonniert wird, stirbt die openhab-Verbindung mit dem mysensors-Gateway. Keine Ahnung warum!

                mysensors vergibt eindeutige NodeIDs an die Sensoren. Dies passiert, wenn sich der Sensor das erste Mal am mysensors Netzwerk meldet. DIese ID wird ins Eprom geschrieben und bleibt.
                Daher sehen meine Item Definitionen wie folgt aus (sensorID = 20):


                // Feuchte/Temp-Sensor
                String sketch20 "Sketch name 20 [%s]" <sensor> (gMySensors) {mqtt="<[mysensor:MyMQTT/20/255/V_SKETCH_NAME:state:default]"}
                Number node1_temp "Temperatur [%.1f °C]" <sensor> (gMySensors,gInfluxDB) {mqtt="<[mysensor:MyMQTT/20/1/V_TEMP:state:default]"}
                Number node1_humid "Luftfeuchte [%.1f %% rel.]" <sensor> (gMySensors,gInfluxDB) {mqtt="<[mysensor:MyMQTT/20/0/V_HUM:state:default]"}
                Ich nehme an, dass Dein Variablentyp 2/V_TEMP nicht passt. Es sollte für Temperatur 1/V_TEMP und für Humidity 0/V_HUM sein. Das solltest Du in der mysensors Doku finden.

                Kommentar


                  #9
                  Hallo,

                  das habe ich jetzt soweit zum laufen, bekommen ohne Mosquitto. So richtig Blicke ich aber noch nicht durch. Kann man überhaubt einen zweiten Mysensors MQTT Gateway mit Openhab verbinden. Der Gateway steht im EG aber die Reichweite geht nicht bis in den Keller. Da wollte ich noch einen zweiten installieren. Muss ich mal testen. Ein LAN-Gateway wird von Openhab ja nicht unterstützt oder doch ?

                  Gruss Michael

                  Kommentar


                    #10
                    Das ist wieder komisch,

                    ich habe ein zweiten Arduino Nano mit einem Ethernetshield zusammen gesetzt so we der erste und in der openhab.cfg die beiden eingetragen.

                    ################################# MQTT Transport ######################################
                    #
                    mqtt:mysensor1.url=tcp://192.168.178.150:1883
                    mqtt:mysensor1.clientId=MyMQTT

                    mqtt:mysensor2.url=tcp://192.168.178.160:1883
                    mqtt:mysensor2.clientId=MyMQTT

                    Die Sensoren funktionieren am mysensor1 Gateway dort sehe ich ankommende Meldungen. Wenn ich jetzt einen Sensor der am ersten Gateway funktioniert versuche mit dem zweiten zu Verbinden sehe ich im serial Monitor nichts keine eingehenden Meldungen. Kann es möglich sein dass das Etherner Gateway defekt ist oder zwicken sich die beiden Gateways in Logfile finde ich die Meldungen...

                    2016-02-12 21:15:02.261 [INFO ] [.io.transport.mqtt.MqttService] - MQTT Service initialization completed.
                    2016-02-12 21:15:02.263 [INFO ] [o.i.t.m.i.MqttBrokerConnection] - Starting MQTT broker connection 'mysensor1'
                    2016-02-12 21:15:02.523 [INFO ] [o.i.t.m.i.MqttBrokerConnection] - Starting MQTT broker connection 'mysensor2'

                    und weiter unten dann...

                    2016-02-12 22:15:46.560 [ERROR] [.c.mqttv3.internal.ClientState] - MyMQTT: Timed out as no activity, keepAlive=60,000 lastOutboundActivity=1,455,311,686,559 lastInboundActivity=1,455,311,653,516
                    2016-02-12 22:15:46.574 [INFO ] [l.connector.LaCrosseConnector2] - Data for sensor 28
                    2016-02-12 22:15:46.575 [INFO ] [.l.connector.LaCrosseConnector] - 20.6 -> 50
                    2016-02-12 22:15:46.590 [ERROR] [o.i.t.m.i.MqttBrokerConnection] - MQTT connection to broker was lost
                    org.eclipse.paho.client.mqttv3.MqttException: Timed out waiting for a response from the server
                    at org.eclipse.paho.client.mqttv3.internal.ExceptionH elper.createMqttException(ExceptionHelper.java:27) ~[na:na]
                    at org.eclipse.paho.client.mqttv3.internal.ClientStat e.checkForActivity(ClientState.java:541) ~[na:na]
                    at org.eclipse.paho.client.mqttv3.internal.ClientStat e.get(ClientState.java:592) ~[na:na]
                    at org.eclipse.paho.client.mqttv3.internal.CommsSende r.run(CommsSender.java:96) ~[na:na]
                    at java.lang.Thread.run(Thread.java:744) [na:1.8.0]
                    2016-02-12 22:15:46.591 [ERROR] [o.i.t.m.i.MqttBrokerConnection] - MQTT connection to 'mysensor2' was lost: Timed out waiting for a response from the server : ReasonCode 32000 : Cause : Unknown
                    2016-02-12 22:15:46.591 [INFO ] [o.i.t.m.i.MqttBrokerConnection] - Starting connection helper to periodically try restore connection to broker 'mysensor2'

                    danach kommt...

                    2016-02-12 22:15:56.592 [INFO ] [o.i.t.m.i.MqttBrokerConnection] - Starting MQTT broker connection 'mysensor2'

                    dann geht es wieder von vorne los.

                    Oder muss ich doch alles über Mosquitto laufen lassen und auf die MQTT Gateways einen anderen Sketch aufspielen. Hat jemand eine Idee ?

                    Wenn das Gateway startet zeigt der serial Monitor an

                    0;0;3;0;9;gateway started, id=0, parent=0, distance=0

                    das Gateway startet nicht richtig ich glaube das Ethernet Shield hat ne macke mit meinem zweiten UNO geht es auch nicht.
                    Zuletzt geändert von Riffhai; 13.02.2016, 18:40.

                    Kommentar


                      #11
                      Lies Dir mal die mysensors Doku durch. Es gibt EIN Gateway und es gibt Repeater und es gibt Sensoren/Aktoren. Ein Sensor/Aktor registriert sich einmalig am Gateway und bekommt eine eindeutige ID in das eeprom gebrannt. Wie sollte ein zweites Gateway damit umgehen können, das wiederum IDs vergeben will?
                      Sensoren/Aktoren können als Repeater fungieren, d.h. ein Sensor sollte in erreichbarer Entfernung zu den zwei Komponenten angebracht werden, so dass er die Telegramme weiterleiten kann.

                      Kommentar


                        #12
                        Hallo staehler

                        Ich habe die Anleitung durchgelesen aber mein Englisch ist nicht so gut auch die Übersetzung ist mit Google nicht so wirklich zu verstehen. Das mit dem zweiten Gateway habe ich auch nicht zum laufen bekommen. Ich habe auch versucht einen Ethernet Gateway an eine Openhab2 installation zum laufen zu bringen. Den Gateway bekomme ich online aber er empfängt keine Nachrichten von den Sensoren. Jetzt versteh ich auch warum. Das mit den Repeatern habe ich noch gar nicht gelesen und weis auch gar nicht wie das funktioniert. Wenn ich aber das bestehende Gateway ausschalte und ein neues Gateway einschalte bekommen die Sensoren dann eine neue ID oder bleibt die alte ID bestehen. Danke für deine Hilfe ! Ich kämpfe mich weiter durch .

                        Kommentar


                          #13
                          Die ID ist im eeprom eingebrannt, die kann nicht so einfach verändert werden. Vergiss Dein zweites Gateway. Hier findest Du die Erklärung zum mysensors network (ist leider englisch).
                          In der Arduino Applikation findest Du unter Datei->Beispiele->MySensors den entsprechenden RepeaterNode Code.
                          Ich habe derzeit keinen im Einsatz, daher kann ich nicht mehr Info liefern.

                          Kommentar


                            #14
                            Hallo,

                            habe ich gefunden und auch gelesen. Ich versuche den ganzen Abend ein Relay Switch mit Openhab zu Verbinden ohne Erfolg. Temperatur und Distanzsensor hat sofort funktioniert. Was mich verwundert das im Serial Monitor Repeater Startet angezeigt wird obwohl ich den Sketch für das Relay hoch geladen habe.

                            send: 0-0-0-0 s=255,c=3,t=15,pt=2,l=2,sg=0,st=ok:0
                            send: 0-0-0-0 s=255,c=0,t=18,pt=0,l=5,sg=0,st=ok:1.5.3
                            send: 0-0-0-0 s=255,c=3,t=6,pt=1,l=1,sg=0,st=ok:0
                            repeater started, id=0, parent=0, distance=0
                            send: 0-0-0-0 s=255,c=3,t=11,pt=0,l=5,sg=0,st=ok:Relay
                            send: 0-0-0-0 s=255,c=3,t=12,pt=0,l=3,sg=0,st=ok:1.0
                            send: 0-0-0-0 s=1,c=0,t=3,pt=0,l=0,sg=0,st=ok:

                            Blick jetzt nicht mehr durch was ich in Openhab eintragen muss damit das Relay sich schalten lässt.


                            Kommentar


                              #15
                              Hallo,

                              ich versuche immer noch mit dem Mysensors Projekt verschiedene Sensoren zu bauen. Ist hier im Forum jemand der auch diese Sensoren baut und mir helfen kann. Wenn ich mit der Arduino Software den Sketch hochlade bekommt der Arduino entweder die ID 0 oder ID 255 so funktioniert es aber nicht ich frage mich nur warum ? Es hat mal funktioniert es sind schon mehrere Temperatursensoren die in Openhab integriert sind.

                              Gruss Michael

                              Kommentar

                              Lädt...
                              X