UDP Daten aus RGB-Lichtszene füllen

Einklappen
X
 
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge
  • TopperDEL
    Dumb Home'r
    • 17.10.2016
    • 24

    #1

    UDP Daten aus RGB-Lichtszene füllen

    Halo zusammen,

    ich würde gerne die Werte aus einer RGB-Lichtszene per UDP verschicken. Allgemeiner gefragt: kann man beim Senden eines UDP-Paketes den gesendeten Wert durch die Programmierung dynamisch zusammenbauen lassen? Ich habe dann - wie beim Baustein RGB-Lichtszene - z.B. drei numerische Werte und möchte diese bspw. zu "R:G:B" als String zusammenbauen und als UDP verschicken.

    Hat da jemand einen Ansatz dazu? Vielen Dank!

    Viele Grüße

    TopperDEL
  • Christian Fenzl
    Lebende Foren Legende
    • 31.08.2015
    • 11234

    #2
    Mit Status-Bausteinen kannst du bis zu vier Werte zu einem String zusammenbauen.
    Hilfe für die Menschen der Ukraine: https://www.loxforum.com/forum/proje...Cr-die-ukraine

    Kommentar

    • TopperDEL
      Dumb Home'r
      • 17.10.2016
      • 24

      #3
      Das ist schon mal ein hilfreicher Hinweis, danke! Fehlt nur noch das Verschicken per UDP.

      Kommentar

      • TopperDEL
        Dumb Home'r
        • 17.10.2016
        • 24

        #4
        Mit einem PicoC-Skript müsste das doch klappen, oder? Ich nehme als Parameter den Wert entgegen und schreibe ihn in einen UDP-Stream. Hab aber noch nie was mit Skripten gemacht und habe da etwas Bammel vor. Kennt sich da jemand gut aus? Im Endeffekt: schreibe Wert aus Parameter 1 in ein UDP-Paket an IP XYZ Port 4711.

        Kann man die Skripte irgendwo testen? Hab gelesen, dass die nur in der Live-View funktionieren. Wenn aber da was nicht passt, dann schmiert der Miniserver ab und ich muss die SD-Karte tauschen.

        Kommentar

        • romildo
          Lebende Foren Legende
          • 25.08.2015
          • 5144

          #5
          Ich würde da, wie Christian schon geschreiben hat, den Statusbaustein nehmen.
          Die drei Werte hängst Du an die Eingänge und im Statustext setzt Du den String zusammen. An den Ausgang hängst Du den UDP Befehl.

          UDP:
          Virtuellen Ausgang anlegen und Adresse eintragen:
          /dev/udp/IP_von_UDP_Empfänger/4711
          Darunter einen Virtuellen Ausgangsbefehl anlegen und bei
          Befehl bei EIN:<v>
          eintragen.


          Wenn Du die Werte dreistellig benötigst musst Du dafür sorgen, dass führende Nullen an den Ausgang gegeben werden.
          Ähnliches Beispiel siehe hier.

          uuups ich such noch ein besseres Beispiel
          Zuletzt geändert von romildo; 15.08.2017, 21:58.
          lg Romildo

          Kommentar


          • romildo
            romildo kommentierte
            Kommentar bearbeiten
            Leider kann ich das besagte Beispiel auf die Schnelle nicht finden.
            Solltest Du diesen Lösungsweg in Betracht ziehen, gib mir Bescheid wie der UDP String genau aussehen soll, dann kann ich Dir ein Beispiel machen.
        • TopperDEL
          Dumb Home'r
          • 17.10.2016
          • 24

          #6
          Danke euch für die Antwort! Ich habe es geschafft. Den Status-Baustein kannte ich vorher noch nicht - der erledigt den einen Teil. Wo ich noch eine Weile gesucht habe: bei den virtuellen Ausgangsbefehlen ist Standardmäßig "Als Digitalausgang verwenden" ein. Dann kommen aber meine an den Befehl geschickten Statustexte nicht als Text durch und das "<v>" ist wirkungslos. Es wird dann nur der Ausgang auf EIN gesetzt. Wenn man den Haken rausnimmt, dann wird mein Text auch per UDP verschickt. Wunderbar! Jetzt habe ich selbstgebaute HUE-ähnliche-Lampen (per Adafruit Feather Huzzah! gepaart mit Neopixel-Ringen und etwas Arduino-Code).

          Danke euch!

          Kommentar

          Lädt...