Ankündigung

Einklappen
Keine Ankündigung bisher.

Geburstagskalender

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

    [Codebeispiel] Geburstagskalender

    Hier ein Geburtstagskalender für eine KNX Text-Anzeige
    Angehängte Dateien
    offizielles Supportforum für den Enertex® EibPC: https://knx-user-forum.de/eibpc/
    Enertex Produkte kaufen

    #2
    Ginge das auch mit Datenbank Zugriff ????

    Dann wäre es evtl. interessant...

    LG

    Kommentar


      #3
      Zitat von meudenbach Beitrag anzeigen
      Ginge das auch mit Datenbank Zugriff ????

      Dann wäre es evtl. interessant...

      LG
      Wenn Deine Datenbank udp-telegramme an den EibPC schickt, schon. Oder wie genau meinst Du das?
      offizielles Supportforum für den Enertex® EibPC: https://knx-user-forum.de/eibpc/
      Enertex Produkte kaufen

      Kommentar


        #4
        nein eher generell, kann ich zB auf eine csv oder xml Datei zugreifen und diese auslesen ?? oder könnte ich den Text einer E-Mail nach einem speziellen Inhalt durchsuchen ??

        Das ist natürlich kein "Datenbank" aber SQL oder ähnliches wird wohl nicht implementiert sein...

        UDP:

        könnte ihr empfangene Texte auch auswerten also parsen?

        Bsp:

        ich sende an euch folgendes UDp Paket

        <ITUNES>GETPLAYERSTATE=PLAYING|OK|GETTITLE=Keep On Push (Piano Mix)|OK|GETSTREAMTITLE=|OK|GETARTIST=Alex Barattini|OK|GETALBUM=Pacha - The World's Most Famous Club Sound 2008|OK|GETID=1041|OK</ITUNES>

        könnte ich gezielt diese Informationen ausfiltern und entsprechend zuordnen ??

        LG

        Kommentar


          #5
          Zitat von meudenbach Beitrag anzeigen
          nein eher generell, kann ich zB auf eine csv oder xml Datei zugreifen und diese auslesen ?? oder könnte ich den Text einer E-Mail nach einem speziellen Inhalt durchsuchen ??

          Das ist natürlich kein "Datenbank" aber SQL oder ähnliches wird wohl nicht implementiert sein...

          UDP:

          könnte ihr empfangene Texte auch auswerten also parsen?

          Bsp:

          ich sende an euch folgendes UDp Paket

          <ITUNES>GETPLAYERSTATE=PLAYING|OK|GETTITLE=Keep On Push (Piano Mix)|OK|GETSTREAMTITLE=|OK|GETARTIST=Alex Barattini|OK|GETALBUM=Pacha - The World's Most Famous Club Sound 2008|OK|GETID=1041|OK</ITUNES>

          könnte ich gezielt diese Informationen ausfiltern und entsprechend zuordnen ??

          LG
          Ja sicher geht das. Anbei unser Testprogramm hierzu - ist ein Beispiel aus dem Handbuch S.55 und wird dort ausführlich erklärt.

          Michael
          Angehängte Dateien
          offizielles Supportforum für den Enertex® EibPC: https://knx-user-forum.de/eibpc/
          Enertex Produkte kaufen

          Kommentar


            #6
            Schön, dass das geht... die für mich wichtige Frage ist jedoch immer das "wie"...

            In der Doku finde ich zu dem Beispiel eine "split" Funktion mit eben PosStart und PosEnde... und natürlich die "find" Funktion. So wie ich das sehe müsste ich bei meinem String zuerst die Positionen über "find" suchen um entsprechend PosStart und PosEnde für die "split" Funktion füllen zu können ???

            Hilfreich in der Doku wäre der Ursprungsstring auf das sich das Beispiel bezieht...

            LG

            Kommentar


              #7
              Zitat von meudenbach Beitrag anzeigen
              Schön, dass das geht... die für mich wichtige Frage ist jedoch immer das "wie"...

              In der Doku finde ich zu dem Beispiel eine "split" Funktion mit eben PosStart und PosEnde... und natürlich die "find" Funktion. So wie ich das sehe müsste ich bei meinem String zuerst die Positionen über "find" suchen um entsprechend PosStart und PosEnde für die "split" Funktion füllen zu können ???

              Hilfreich in der Doku wäre der Ursprungsstring auf das sich das Beispiel bezieht...

              LG
              Im Handbuch:
              – Der Musikplayer schickt dann auf Port 4806 einen String „Play Music: Title“ wobei Title der aktuell gespielte Titel sei. Der Enertex® EibPC soll den Titel auf die KNX Anzeige schreiben.

              Also nochmal:
              Pattern=$Play Music: $
              Wenn ein Telegramm eintrifft wird das hier gültig:
              if event(readudp(Port,IP,StringPlayer)) then ...
              dann trennt dieser Aufruf den Titel raus:
              Titel=split(StringPlayer,find(StringPlayer,Pattern ,0u16)+size(Pattern), END)

              Z.B.
              der Musikplayer sendet "Play Music: ABC - The Look of Love"
              dann trägt Titel den Inhalt "ABC - The Look of Love"
              offizielles Supportforum für den Enertex® EibPC: https://knx-user-forum.de/eibpc/
              Enertex Produkte kaufen

              Kommentar


                #8
                Das ist mir so schon klar... mein Frage bezog sich auf das Ende bzw. die Länge des Strings... woher bezieht er diese innerhalb der Funktion. In o.a Funktion wird nach meinem Verständnis ja nur "schlicht" bis zum Ende geparst...

                Genannter String endet ja nun mal nur mit dem Titel wären dort aber noch Daten anhängig ?! müßte ich doch noch die Länge der Nutzdaten ermitteln...

                Kommentar


                  #9
                  Statt "END" kannst Du ja auch einen anderen Index setzen, dann wird nur dieser Teilstring geliefert. Diesen Index ermittelst Du im Prinzip genauso, wie den ersten, per Suchausdruck:

                  Titel=split(StringPlayer,find(StringPlayer,Pattern ,0u16)+size(Pattern), find(StringPlayer,Pattern2 ,0u16))
                  Mfg
                  JH

                  Kommentar


                    #10
                    Zitat von JoeHorn Beitrag anzeigen
                    Statt "END" kannst Du ja auch einen anderen Index setzen, dann wird nur dieser Teilstring geliefert. Diesen Index ermittelst Du im Prinzip genauso, wie den ersten, per Suchausdruck:

                    Titel=split(StringPlayer,find(StringPlayer,Pattern ,0u16)+size(Pattern), find(StringPlayer,Pattern2 ,0u16))
                    Genau-
                    das dritte Argument bei find gibt an, wie oft das "Pattern" übersprungen werden soll, z.B,
                    "Play Music: U2 : Pride : Rattle and Hum "
                    Band=split (StringPlayer,find($:$,0u16)+1u16,find($:$,1u16)-1u16) => "U2"
                    Titel=split (StringPlayer,find($:$,1u16)+1u16,find($:$,2u16)-1u16) => "Pride"
                    Album=split (StringPlayer,find($:$,2u16)+1u16,find($:$,3u16)-1u16) => "Rattle and Hum"

                    Das +1u16 überspringt den ":" und das -1u16 löscht das Leerzeichen am Ende.
                    Der Vollständigkeit halber: size() ermittelt die Stringlänge

                    Michael
                    offizielles Supportforum für den Enertex® EibPC: https://knx-user-forum.de/eibpc/
                    Enertex Produkte kaufen

                    Kommentar


                      #11
                      Falls noch mehr solcher Aufgaben auftreten, wären reguläre Ausdrücke denkbar?
                      Mfg
                      JH

                      Kommentar


                        #12
                        Zitat von JoeHorn Beitrag anzeigen
                        Falls noch mehr solcher Aufgaben auftreten, wären reguläre Ausdrücke denkbar?
                        Theoretisch relativ problemlos, derzeit geht aber nur find mit einfachem Stringvergleich.
                        offizielles Supportforum für den Enertex® EibPC: https://knx-user-forum.de/eibpc/
                        Enertex Produkte kaufen

                        Kommentar


                          #13
                          Zitat von enertegus Beitrag anzeigen
                          Theoretisch relativ problemlos
                          Regex wären scho' geil ;-)
                          Visualisierung, Rule/Logic-Engine, Integrationsplattform mit openhab (Supportforum)

                          Kommentar

                          Lädt...
                          X