Hier ein Geburtstagskalender für eine KNX Text-Anzeige
Ankündigung
Einklappen
Keine Ankündigung bisher.
Geburstagskalender
Einklappen
X
-
[Codebeispiel] Geburstagskalender
offizielles Supportforum für den Enertex® EibPC: https://knx-user-forum.de/eibpc/
Enertex Produkte kaufenStichworte: -
-
meudenbach
-
Zitat von meudenbach Beitrag anzeigenGinge das auch mit Datenbank Zugriff ????
Dann wäre es evtl. interessant...
LGoffizielles Supportforum für den Enertex® EibPC: https://knx-user-forum.de/eibpc/
Enertex Produkte kaufen
Kommentar
-
meudenbach
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
-
Zitat von meudenbach Beitrag anzeigennein 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
MichaelAngehängte Dateienoffizielles Supportforum für den Enertex® EibPC: https://knx-user-forum.de/eibpc/
Enertex Produkte kaufen
Kommentar
-
meudenbach
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
-
Zitat von meudenbach Beitrag anzeigenSchö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
– 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
-
meudenbach
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
-
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
-
Zitat von JoeHorn Beitrag anzeigenStatt "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))
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
Michaeloffizielles Supportforum für den Enertex® EibPC: https://knx-user-forum.de/eibpc/
Enertex Produkte kaufen
Kommentar
-
Zitat von JoeHorn Beitrag anzeigenFalls noch mehr solcher Aufgaben auftreten, wären reguläre Ausdrücke denkbar?offizielles Supportforum für den Enertex® EibPC: https://knx-user-forum.de/eibpc/
Enertex Produkte kaufen
Kommentar
-
Zitat von enertegus Beitrag anzeigenTheoretisch relativ problemlosVisualisierung, Rule/Logic-Engine, Integrationsplattform mit openhab (Supportforum)
Kommentar
Kommentar