Ankündigung

Einklappen
Keine Ankündigung bisher.

MQTT und EibPC

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

    MQTT und EibPC

    Unter https://www.youtube.com/watch?v=8_GBlS9yMqA haben wir ein Video hochgeladen, das die Anbindung von MQTT - Geräten an unseren Eibpc2 (https://www.enertex.de/d-eibpc.html) zeigt.​
    offizielles Supportforum für den Enertex® EibPC: https://knx-user-forum.de/eibpc/
    Enertex Produkte kaufen

    #2
    Hallo!

    Könnten Ihr das etwas genauer erklären wie man z.B. ein Shelly, welches noch nicht als fertiger Baustein vorhanden ist, einbinden kann. z.B. ein 2PM oder ähnliches. Im Video sieht man ja nur wie die fertigen Bausteine zu verwenden sind, ich würde das aber gerne im Logikeditor nachbauen. So könnte man dann auch andere Themen mit MQTT einbinden (Cam, Mäher,...).

    Wäre toll.

    Kommentar


      #3
      Hi,
      im kommenden EibStudio 5.300 gibt es einen Abschnitt im Handbuch dazu mit einem Beispiel.

      Kommentar


        #4
        (wahrscheinlich) eine dumme Frage:

        wie gebe ich die Zertifikate
        beim mqttclient(Host,Port,TLS, Username, Password, ValidateServerCert, CACert, ClientCert,ClientKey)
        ein?

        EPIX
        ...und möge der Saft mit euch sein...
        Getippt von meinen Zeigefingern auf einer QWERTZ Tastatur

        Kommentar


          #5
          im PEM-Format, siehe die Funktion pem. Beim CA-Zertifikat für den EibPC zB so, wie du es aus dem EibStudio in den Projekteinstellungen herunterladen kannst.

          https://de.wikipedia.org/wiki/Privacy_Enhanced_Mail

          Kommentar


            #6
            ich habe die Zertifikate vom Ziel-Server, - ich dachte ich muss diese Zertifikate verwenden...
            EPIX
            ...und möge der Saft mit euch sein...
            Getippt von meinen Zeigefingern auf einer QWERTZ Tastatur

            Kommentar


              #7
              Vom Ziel-Server brauchst du nur dessen CA-Zertifikat.
              Es hilft, wenn du ein paar mehr Worte spendierst, wer Broker, Client usw ist.

              Kommentar


                #8
                Sorry....
                Broker clipse-mosquitto, das läuft brav im docker auf openmediavault...
                Client ist ein Smartmeter-Gateway, das die Daten an den Broker schickt un der eibpc hat diese Daten aboniert und werden auch geliefert...
                DAS PASST soweit.

                Ich bin bei einer Energiegemeinschaft, (PV-Erzeuger und Verbraucher) und wir wollen die aktuellen Smartmeterwerte der einzelknen Erzeuiger/Verbraucher konsolidieren um die Eigennutzung zu optimnieren.
                Dazu läuft ein MQTT-Server zu den ich die Daten senden soll.
                Von diesem Server habe ich
                -client.key
                -server.crt
                -ca.crt
                -client.crt

                EPIX
                ...und möge der Saft mit euch sein...
                Getippt von meinen Zeigefingern auf einer QWERTZ Tastatur

                Kommentar


                  #9
                  Ok, dann noch nen mqttclient anlegen. Wenn der Broker der Energiegemeinschaft zertifikatsbasierte Authentifikation verwendet, dann brauchst du client.crt, client.key und ca.crt (wenn das Server-Zertifikat mit dem unterschrieben wurde).

                  Die crt/key-Dateien sind vmtl alle bereits im PEM-Format. Einfach mal mit dem Text-Editor aufmachen und schauen, ob die so aussehen, wie sie sollen.
                  Wenn du den Client-Handle in der Logik erstellst, kannst du die da einfach reinkopieren.
                  Im Experten brauchst du die PEM-Funktion, die aus der Eingabe in einer einzigen Zeile (nötig für den eibparser) ein passendes Format erzeugt:

                  Code:
                  CACert=pem($-----BEGIN CERTIFICATE-----....-----END  CERTIFICATE-----$)
                  ClientCert=pem($-----BEGIN CERTIFICATE-----....-----END  CERTIFICATE-----$)
                  ClientKey=pem($-----BEGIN PRIVATE KEY-----....-----END  PRIVATE KEY-----$)
                  
                  mqttclient(Host,Port,1b01, $$, $$, TLS_VERIFY_CERT, CACert, ClientCert,ClientKey)
                  Ggf prüfen, ob die Dateien größer sind als 1400 Zeichen, dann die Strings entsprechend erweitern. Wichtig: Es muss noch Platz für weitere Zeilenumbrüche sein, die von der pem()-Funktion eingefügt werden.
                  Zuletzt geändert von foobar0815; 18.11.2024, 14:24.

                  Kommentar


                    #10
                    user und passwort muss ich aber trotzdem verwenden, oder?

                    ich probiere und berichte
                    EPIX
                    ...und möge der Saft mit euch sein...
                    Getippt von meinen Zeigefingern auf einer QWERTZ Tastatur

                    Kommentar


                      #11
                      die Zertifikate liegen in diesem "speziellen" Format vor.

                      Code:
                      CACert=pem($-----BEGIN CERTIFICATE-----
                      MIID/zCCAuegA -und so weiter
                      UCWWNgtCsi86dZ6EqZr46bG7gg==
                      -----END CERTIFICATE-----$)​​
                      beim kompilieren kommt der Fehler:
                      CACert=pem($-----BEGIN CERTIFICATE-----< in der Datei "C:\Users\erich\OneDrive\_sync_Daten\eibPC\pro jekt \hoe_home_5xx_tmp\tmpApp.txt"
                      Gültig bis Spaltenposition: {10}
                      STOP Parser --> ($-----BEGIN CERTIFICATE-----​
                      EPIX
                      ...und möge der Saft mit euch sein...
                      Getippt von meinen Zeigefingern auf einer QWERTZ Tastatur

                      Kommentar


                        #12
                        Zitat von foobar0815 Beitrag anzeigen
                        die aus der Eingabe in einer einzigen Zeile (nötig für den eibparser)
                        Du musst im Experten die Zeilenumbrüche entfernen.

                        Username und Passwort: je nach Broker-Konfiguration. Wenn ja, dann ja

                        Kommentar


                          #13
                          CACert=pem($-----BEGIN CERTIFICATE-----MIID/zCCAuegAwIBAgIUQvaTLsCeSNCH7u6vXUPrt7GWJagwDQYJKoZ < in der Datei "C:\Users\erich\OneDrive\_sync_Daten\eibPC\pro jekt \hoe_home_5xx_tmp\tmpApp.txt"
                          String zu lang. Bitte auch Sonderzeichen mit Speicherbedarf >1 Byte bedenken. zz0.qcwmfi01z1zz
                          EPIX
                          ...und möge der Saft mit euch sein...
                          Getippt von meinen Zeigefingern auf einer QWERTZ Tastatur

                          Kommentar


                            #14
                            Zitat von foobar0815 Beitrag anzeigen
                            Ggf prüfen, ob die Dateien größer sind als 1400 Zeichen, dann die Strings entsprechend erweitern.
                            Code:
                            CACert=pem($-----BEGIN CERTIFICATE-----....$c10000)
                            Gibt es einen Grund, weshalb du nicht den Logikknoten nimmst? Der ist ja genau dafür da, derartige Schwierigkeiten zu vermeiden.

                            Kommentar


                              #15
                              heute ist nicht mein Tag...
                              Beim Spazierengehen mit dem Hund war mir der Fehler klar

                              Ich kann mich mit den Logikknoten nicht so anfreunden, mir ist eigentlich der Experte lieber - bin halt schon älter *ggg*

                              Danke! für deine rasche Hilfe und deine Geduld....

                              es funktioniert HERVORRAGEND!!
                              Zuletzt geändert von EPIX; 19.11.2024, 17:07.
                              EPIX
                              ...und möge der Saft mit euch sein...
                              Getippt von meinen Zeigefingern auf einer QWERTZ Tastatur

                              Kommentar

                              Lädt...
                              X