Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. ioBroker Allgemein
    4. [Gelöst] MQTT-Verbindung via Python script

    NEWS

    • Neuer Blog: Fotos und Eindrücke aus Solingen

    • ioBroker@Smart Living Forum Solingen, 14.06. - Agenda added

    • ioBroker goes Matter ... Matter Adapter in Stable

    [Gelöst] MQTT-Verbindung via Python script

    This topic has been deleted. Only users with topic management privileges can see it.
    • Codierknecht
      Codierknecht Developer Most Active @Homoran last edited by

      @homoran sagte in MQTT-Verbindung:

      aber irgendwo muss ein Broker sein.

      Ich sehe das so, dass das Python-Script sendet - also den Broker spielt.

      Aber das ist diese komische "Sprache", die Blöcke über die Einrückung definiert, oder?
      Die ist in meiner internen Hirn-Firewall automatisch geblockt 😁

      Marc Berg 1 Reply Last reply Reply Quote 0
      • Marc Berg
        Marc Berg Most Active @Codierknecht last edited by Marc Berg

        @codierknecht sagte in MQTT-Verbindung:

        @homoran sagte in MQTT-Verbindung:

        aber irgendwo muss ein Broker sein.

        Ich sehe das so, dass das Python-Script sendet - also den Broker spielt.

        Nein, das Skript ist der MQTT-Client, der an den Broker (der ja schon erfolgreich läuft) senden/publish will. Allerdings ist der Server in der Variable falsch hinterlegt. (FQDN / IP-Adresse). Der Port 8883 scheint übereinzustimmen.

        @Steinmetz_4 Ist das richtig, dass bereits eine Broker-Instanz läuft? Dann benötigst du keine zweite. Zeig' mal bitte die Einstellungen dieser Instanz.

        S 1 Reply Last reply Reply Quote 0
        • S
          Steinmetz_4 @Marc Berg last edited by

          @marc-berg

          Da bin ich wieder...

          Das Python script soll senden (temperatur) an IoBroker MQTT

          c031f7f0-a911-4540-b894-6ad740d0b4a2-image.png

          35e4a3db-7aa9-40c5-9eb7-a9805924384e-image.png

          Ich bin auch schon ein Stück weiter...
          das script versucht zu senden, kommt aber nicht durch...

          600597d5-8853-4ef8-90f4-d4d4fd45556b-image.png !

          #!/usr/bin/python3
          import sys
          import paho.mqtt.client as mqtt
          import ssl
           
          # set the variables
          # Path to the Sensor systempath
          # 28-01142f7ba71a has to be changed to you sensor path!
          sensor = '/sys/bus/w1/devices/28-3c01f096929e/w1_slave'
          broker='FQDN / 192.168.178.185'
          port=1879
          publish_topic="house/pi-ds18b20"
          clientid='python-mqtt-ds18b20'
          username='Tom'
          password='xxxxxxxxxx'
          insecure=True
          qos=1
          retain_message=True
          
          # do the stuff
          def readTempSensor(sensorName) :
              f = open(sensorName, 'r')
              lines = f.readlines()
              f.close()
              return lines
           
          def readTempLines(sensorName) :
              lines = readTempSensor(sensorName)
              while lines[0].strip()[-3:] != 'YES':
                  time.sleep(0.2)
                  lines = readTempSensor(sensorName)
              temperaturStr = lines[1].find('t=')
              if temperaturStr != -1 :
                  tempData = lines[1][temperaturStr+2:]
                  tempCelsius = float(tempData) / 1000.0
                  tempKelvin = 273 + float(tempData) / 1000
                  tempFahrenheit = float(tempData) / 1000 * 9.0 / 5.0 + 32.0
                  return [tempCelsius, tempKelvin, tempFahrenheit]
          
          #MQTT Connection
          client=mqtt.Client(clientid)
          client.username_pw_set(username, password)
          client.tls_set(cert_reqs=ssl.CERT_NONE) #no client certificate needed
          client.tls_insecure_set(insecure)
          client.connect(broker, port)
          client.loop_start()
          
          client.publish("{}/temperature".format(publish_topic),"{:.2f}".format(readTempLines(sensor)[0]),qos,retain_message)
          
          client.disconnect()
          client.loop_stop()
          

          Mfg

          Homoran 1 Reply Last reply Reply Quote 0
          • Homoran
            Homoran Global Moderator Administrators @Steinmetz_4 last edited by

            @steinmetz_4 sagte in MQTT-Verbindung:

            Das Python script soll senden (temperatur) an IoBroker MQTT

            und der ist als Broker konfiguriert?
            und unter der IP

            @steinmetz_4 sagte in MQTT-Verbindung:

            192.168.178.185

            zu erreichen?

            S 1 Reply Last reply Reply Quote 0
            • S
              Steinmetz_4 @Homoran last edited by

              @homoran

              Wen meinst Du?
              MQTT Adapter? läuft in IoBroker unter 192.168.178.185

              Homoran 1 Reply Last reply Reply Quote 0
              • Homoran
                Homoran Global Moderator Administrators @Steinmetz_4 last edited by

                @steinmetz_4 sagte in MQTT-Verbindung:

                MQTT Adapter

                ja, den!

                @homoran sagte in MQTT-Verbindung:

                der ist als Broker konfiguriert?

                als Client nutzt er dir nichts.

                S 1 Reply Last reply Reply Quote 0
                • S
                  Steinmetz_4 @Homoran last edited by

                  @homoran

                  Ich denke schon.

                  dc56de23-c039-4973-a8cb-1af0e632e691-image.png

                  Watermeter läuft damit.

                  929a75b2-d2f7-4d76-b907-59b92e585d8e-image.png

                  Homoran 1 Reply Last reply Reply Quote 0
                  • Homoran
                    Homoran Global Moderator Administrators @Steinmetz_4 last edited by

                    @steinmetz_4 sagte in MQTT-Verbindung:

                    Ich denke schon.

                    jepp! dann ist die Frage auch eindeutig geklärt

                    S 2 Replies Last reply Reply Quote 0
                    • S
                      Steinmetz_4 @Homoran last edited by

                      @homoran

                      Ich kann Dir nicht mehr sagen.
                      Wenn ich wüsste was falsch ist, würde ich hier nicht fragen.

                      🤷‍♂️

                      Marc Berg 1 Reply Last reply Reply Quote 0
                      • Marc Berg
                        Marc Berg Most Active @Steinmetz_4 last edited by Marc Berg

                        @steinmetz_4 ist das das aktive Skript???

                        b45847f4-bad6-48c9-a223-360125309150-grafik.png

                        S 1 Reply Last reply Reply Quote 0
                        • S
                          Steinmetz_4 @Marc Berg last edited by

                          @marc-berg

                          Sorry, nein !

                          ich tüftel an allen Ecken und Enden!#

                          aktuel:

                          #!/usr/bin/python3
                          import sys
                          import paho.mqtt.client as mqtt
                          import ssl
                          
                          # set the variables
                          # Path to the Sensor systempath
                          # 28-01142f7ba71a has to be changed to you sensor path!
                          sensor = '/sys/bus/w1/devices/28-3c01f096929e/w1_slave'
                          broker='192.168.178.185'
                          port=1879
                          publish_topic="house/pi-ds18b20"
                          clientid='python-mqtt-ds18b20'
                          username='Tom'
                          password='Atomameise'
                          insecure=True
                          qos=1
                          retain_message=True
                          
                          # do the stuff
                          def readTempSensor(sensorName) :
                              f = open(sensorName, 'r')
                              lines = f.readlines()
                              f.close()
                              return lines
                          
                          def readTempLines(sensorName) :
                              lines = readTempSensor(sensorName)
                              while lines[0].strip()[-3:] != 'YES':
                                  time.sleep(0.2)
                                  lines = readTempSensor(sensorName)
                              temperaturStr = lines[1].find('t=')
                              if temperaturStr != -1 :
                                  tempData = lines[1][temperaturStr+2:]
                                  tempCelsius = float(tempData) / 1000.0
                                  tempKelvin = 273 + float(tempData) / 1000
                                  tempFahrenheit = float(tempData) / 1000 * 9.0 / 5.0 + 32.0
                                  return [tempCelsius, tempKelvin, tempFahrenheit]
                          
                          #MQTT Connection
                          client=mqtt.Client(clientid)
                          client.username_pw_set(username, password)
                          client.tls_set(cert_reqs=ssl.CERT_NONE) #no client certificate needed
                          client.tls_insecure_set(insecure)
                          client.connect(broker, port)
                          client.loop_start()
                          
                          client.publish("{}/temperature".format(publish_topic),"{:.2f}".format(readTempLines(sensor)[0]),qos,retain_message)
                          
                          client.disconnect()
                          client.loop_stop()
                          
                          
                          

                          Mfg

                          Marc Berg 1 Reply Last reply Reply Quote 0
                          • S
                            Steinmetz_4 @Homoran last edited by Steinmetz_4

                            @homoran sagte in MQTT-Verbindung:

                            @steinmetz_4 sagte in MQTT-Verbindung:

                            Ich denke schon.

                            jepp! dann ist die Frage auch eindeutig geklärt

                            Verzeiht

                            Ich weiß, dass ich nichts weiß (https://de.wikipedia.org/wiki/Ich_weiß,_dass_ich_nichts_weiß)

                            1 Reply Last reply Reply Quote 0
                            • Marc Berg
                              Marc Berg Most Active @Steinmetz_4 last edited by Marc Berg

                              @steinmetz_4
                              Wenn ich die Fehlermeldung richtig interpretiere, versucht dein Skript eine verschlüsselte Verbindung, die du hier:

                              client.tls_set….
                              

                              auch so aktivierst. Dein Broker ist aber nicht mit SSL konfiguriert.
                              Schalte SSL im Skript ab.

                              Und: Du musst ruhiger werden … 🙂

                              S 1 Reply Last reply Reply Quote 0
                              • S
                                Steinmetz_4 @Marc Berg last edited by

                                @marc-berg

                                Tada, es funktioniert!
                                Ich danke Dir!
                                War ein holpriger Weg aber es läuft...

                                Habe beide Punkte auskommentiert.

                                afad0031-d184-471a-b744-48fb1d2b13a4-image.png

                                P.S. Ich bin die Ruhe in Person...

                                Mfg
                                Tom

                                1 Reply Last reply Reply Quote 0
                                • First post
                                  Last post

                                Support us

                                ioBroker
                                Community Adapters
                                Donate
                                FAQ Cloud / IOT
                                HowTo: Node.js-Update
                                HowTo: Backup/Restore
                                Downloads
                                BLOG

                                833
                                Online

                                31.9k
                                Users

                                80.2k
                                Topics

                                1.3m
                                Posts

                                4
                                21
                                2293
                                Loading More Posts
                                • Oldest to Newest
                                • Newest to Oldest
                                • Most Votes
                                Reply
                                • Reply as topic
                                Log in to reply
                                Community
                                Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
                                The ioBroker Community 2014-2023
                                logo