UDP virtueller Ausgang an Arduino senden

Einklappen
X
 
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge
  • cali
    Smart Home'r
    • 29.08.2015
    • 63

    #1

    UDP virtueller Ausgang an Arduino senden

    Hej zusammen,

    ich bin am verzweifeln, sehe den Wald vor Bäumen nicht und brauche Eure Hilfe.
    Ich habe an einem ESP8266 eine Relaiskarte angeschlossen und möchte diese per UDP über die Loxone steuern.
    Ich verwende bereits eine Wagosteuerung seit 2 Jahren nach demselben Prinzip ohne Probleme oder Latenzschwierigkeiten.
    Auf der Steureung läuft Version 7.4.4.14 (ja, älter habe aber Angst vor den im Forum beschriebenen UDP Problemen)

    Über ein Terminalprogramm (Packet Sender) kann ich die Ausgänge mittels A1E (erstes Relais ein) und A1A (erstes Relais aus) über Port 7001 als ACSII ansteuern. Selbst die Loxone erkennt die Steuerzeichen über den UDP Monitor. Jedoch lässt sich der Arduino nicht über einen virtuellen Ausgang steuern.
    Am Arduino kommt nichts an.

    Lass ich die Loxone an den Packet Sender den UDP-Aufruf senden, so sind die beiden Befehle gleich! Hat jemand eine Idee?

    Danke
  • Christian Fenzl
    Lebende Foren Legende
    • 31.08.2015
    • 11236

    #2
    Kann es sein, dass du ein \n brauchst?
    Hilfe für die Menschen der Ukraine: https://www.loxforum.com/forum/proje...Cr-die-ukraine

    Kommentar

    • svethi
      Lebende Foren Legende
      • 25.08.2015
      • 6313

      #3
      Also ich habe keine UDP Probleme
      Miniserver; KNX; Vitogate; EnOcean (EnOceanPi); Loxone Air; Caldav-Kalenderanbindung; RaspberryPi und für keine Frickellösung zu schade :-)

      Kommentar

      • cali
        Smart Home'r
        • 29.08.2015
        • 63

        #4
        Danke, aber das ist es nicht. Ich gebe auf für heute. Evtl. habe ich morgen eine gute Idee.

        Kommentar

        • dakine_55
          Smart Home'r
          • 25.01.2016
          • 68

          #5
          Stell mal screenshots vom Ausgangsbefehl rein. Vielleicht sieht man ja gleich was.

          ich nutze genau diese Kombination und es funktioniertbis jetzt ganz gut....

          Kommentar

          • cali
            Smart Home'r
            • 29.08.2015
            • 63

            #6
            Laut Fritz.Lox:
            Achtung: Es wurde festgestellt, dass der MiniServer bestimmte Port blockiert. Diese können nicht als Empfangsport genutzt werden. Leider wird man von der Konfig hier nicht darüber informiert. So geht z.B. in der Version 8.1.11.11 der Port 7777 nicht als UDP-Empfangsport. Sollten also an einem gewählten Port keine Informationen ankommen (UDP-Monitor in der Konfig), einfach andere Ports ausprobieren.
            Gibt es eine Liste aus der die blockierten Ports hervorgehen? Dies spricht sehr als Ursache für meine Probleme...

            Kommentar


            • Christian Fenzl
              Christian Fenzl kommentierte
              Kommentar bearbeiten
              Du könntest im Wiki eine Liste anfangen.
          • cali
            Smart Home'r
            • 29.08.2015
            • 63

            #7
            Ich verstehe es nicht!
            Ich habe nun auf ESPEASY umgestellt und versuche den ESP über das eingebaute Kommando http://<ESP IP address>/control?cmd=mcpgpio,<pin>,0 anzusteuern.
            Es kommt aber kein Befehl an - genau wie bei meinen UDP Versuchen. Auch wenn ich meinem Rechner die zu steuernde IP gebe und mit Wireshark mitschneide, es kommen keine Pakete an.
            Ich verwende ca 95 virtuelle Ausgänge um meine Wago-Steuerung anzusprechen und weitere virt. Ausgänge zur Steuerung des Musikservers - alles ohne Probleme.
            Kann es sein das es eine mengenmäßige Beschränkung an virtuellen Ausgängen gibt? Ich hatte beim testen auch mehrere Abstürze der Loxone-Weboberfläche, sowie der gesamten Steuerung.
            Bin für jeden Hinweis und Tipp dankbar.

            Kommentar

            • Robert L.
              MS Profi
              • 26.08.2015
              • 922

              #8
              vielleicht hast du das selbe Problem wie hier:


              dass die SD Karte defekt ist, und deine (neue) Programmiereung überhaupt nicht auf der SD Karte gespeichert wird..

              Kommentar

              • cali
                Smart Home'r
                • 29.08.2015
                • 63

                #9
                Ich hatte dem Arduino eine feste IP zugewiesen. Da die DHCP Adresse noch gespeichert war, hat die Fritzbox den Traffic an die DHCP Adresse geleitet. Dies ist aber nur bei der Loxone der Fall gewesen. Wenn ich vom Windows PC den Arduino mit seiner festen IP angesprochen habe hat es funktioniert.
                Die Lösung war daher die IP Adresse in der Fritzbox zu löschen! Ein Problem das keine braucht...

                Kommentar


                • Robert L.
                  Robert L. kommentierte
                  Kommentar bearbeiten
                  komisch, klingt so als würde loxone alle UDP pakete ans default gateway schicken, auch wenn das Ziel im eigenen subnetz ist..

                • cali
                  cali kommentierte
                  Kommentar bearbeiten
                  Stimmt. In der Fritzbox war ein Weiterleitungssymbol zu sehen, dass ich noch nie zuvor gesehen hatte. Der Windowsrechner verhielt sich anders und hat den Traffic nicht über das default GW gesendet.
              • B@llou
                LoxBus Spammer
                • 11.03.2016
                • 230

                #10
                Gibt es eine Möglichkeit Analogsignale per UDP an eine Arduino Uno zu schicken, wie z.B. die Temperatur.
                Analogwerte vom Arduino ans Loxone zu schicken bekomme ich mittlerweile hin.

                Kommentar

                • svethi
                  Lebende Foren Legende
                  • 25.08.2015
                  • 6313

                  #11
                  Wieso soll das nicht gehen?
                  Miniserver; KNX; Vitogate; EnOcean (EnOceanPi); Loxone Air; Caldav-Kalenderanbindung; RaspberryPi und für keine Frickellösung zu schade :-)

                  Kommentar

                  • B@llou
                    LoxBus Spammer
                    • 11.03.2016
                    • 230

                    #12
                    Könnte mir da jemand eventuell mal einen Ansatzpunkt geben, wie ich die Temperatur an meinen Arduino geschickt bekomme?

                    Kommentar

                    • romildo
                      Lebende Foren Legende
                      • 25.08.2015
                      • 5144

                      #13
                      Du legst einen "Virtuellen Ausgang" und einen "Virtuellen Ausgang Befehl" an.
                      In die Eigenschaft "Adresse" des Virtuellen Ausgangs kommt
                      /dev/udp/IPVONARDUINO/UDPPORT
                      In die Eigenschaft "Befehl bei Ein" des Virtuellen Ausgang Befehls
                      <v>
                      Den Virtuellen Ausgang Befehl verbindest Du mit dem Temperaturwert.
                      Einstellung auf Analog!
                      Zuletzt geändert von romildo; 26.12.2017, 20:51.
                      lg Romildo

                      Kommentar


                      • B@llou
                        B@llou kommentierte
                        Kommentar bearbeiten
                        Arduino Uno mit einem Ethernet Shield
                        Arduino IDE 1.8.5

                      • romildo
                        romildo kommentierte
                        Kommentar bearbeiten
                        Und welchen Sketch?
                        Da Du ja schon Werte zu Loxone schickst wirst Du ja auch schon ein Programm haben oder irre ich mich da?

                      • Robert L.
                        Robert L. kommentierte
                        Kommentar bearbeiten
                        Das ist ja das "interessant" am Arduino, dass der Code immer (fast) gleich ausschaut, egal welche hardware man hat.

                        zum Problem: wie man per UDP empfängt steht hier:

                        das ist eigentlich nur ein 3-Zeiler:

                        int packetSize = Udp.parsePacket();
                        if (packetSize) {
                        // read the packet into packetBufffer
                        Udp.read(packetBuffer, UDP_TX_PACKET_MAX_SIZE);

                        die Daten jetzt zu verarbeiten (aus dem String einen float zu machen, vergleichen, usw.)
                        sind einfach "C Basics" .. da wäre ich für "kauf ein C Buch"
                    Lädt...