Ankündigung

Einklappen
Keine Ankündigung bisher.

HS komplexes Telegramm und Regex

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

    HS komplexes Telegramm und Regex

    Hi,

    ich will mir per CallMessage von meiner Fritzbox melden lassen wenn jemand anruft um per mmh auf dem Fernseher die Torkamera einzublenden wenn die Torstation anruft.

    CallMessage zum HS klappt mit einfachen IP Telegrammen super.
    Nun will ich aber den CallMessage String noch auseinander nehmen um zu Filtern ob die Torstation anruft.
    Der CallMessage String der im HS ankommt ist.
    Code:
    GET /?caller=012345678&called=12345&name=Türstation
    Dazu hab ich nun ein komplexes IP Diagramm erstellt mit folgender Regex
    Code:
    [\\?&]caller=([^&#]*)[\\?&]called=([^&#]*)[\\?&]name=([^&#]*)
    und jedem Match einem iKO zugeordnet.
    Laut http://www.regex-tester.de/regex.html stimmt die Regex, aber der HS macht nix.
    Mach ich da einen Fehler oder nutzt der HS einen anderen Dialekt?

    THX macrauder

    #2
    Moin,
    warum so komplex?

    Wo hast du den Telegrammempfang im HS angelegt?

    Wenn du es unter IP/EIB-Telegramme empfangen anlegst, kannst du das Telegramm dort bequem zerlegen und zuordnen. Dort brauchst du keinen Regex.

    Im Empfang:
    - Beliebige Daten
    - Text "caller="
    - Wert als Klartext -> KO1
    - Text "&"
    - Text "called="
    - Wert als Klartext -> KO2
    ....

    cu
    Andreas
    cu
    Andreas


    Aus dem Norden? Schau mal rein, Stammtisch-Nord!

    Kommentar


      #3
      Hi Andreas,

      genial, es klappt.... da werde ich mir die telegramm doku wohl mal näher reinziehen müssen, dachte immer das ein telegramm zeilenorientiert ist!

      UPDATE:
      Für alle die auch die Fritzbox Anrufe Realtime über den HS verarbeiten wollen.
      Es gibt die Möglichkeit auf der Fritzbox "Pseudo" Images einzuspielen.
      Diese ersätzen nicht das Originale Image sondern ändern nur ein paar Configs ab.
      Für die HS Kommunikation gibt es Callemessage, der einfach bei Anruf einen wget macht.
      Pseudo Images könnt Ihr euch auf http://www.the-construct.com/?p=pseudoimage erstellen, wichtig ist das Ihr "Callmessage" wählt und den HS als Empfänger eintragt, dann Pseudo Image auf die Fritzbox drauf und noch den IP Empfang auf dem HS einrichten (Dank Andreas) und ewola...Anruf schlagen auf und bei Torklingeln wir per mmh nun im laufenden Programm die Kamera eingeblendet.

      Danke vg macrauder
      Angehängte Dateien

      Kommentar


        #4
        jetzt müsste der Reguläre Ausdruck nur noch in einem IKO zu speichern sein dann könnte man den über eine Webabfrage aktuell halten.

        BITTE DACOM/GIRA!
        ist es schon zu spät für die 2.4

        Nils

        aktuelle Bausteine:
        BusAufsicht - ServiceCheck - Pushover - HS-Insight

        Kommentar


          #5
          Zitat von macrauder Beitrag anzeigen
          Mach ich da einen Fehler oder nutzt der HS einen anderen Dialekt?
          Der HS benutzt die Python Lib, aber wie ich sehe hat macrauder ja schon längst eine Lösung gefunden...

          Was bei Regex umbedingt auch gelößt werden sollte ist, dass man im Experten keine Alternativen eingeben kann. Alles nach | wird abgeschnitten

          Schön wäre auch, wenn man den Regex in Zeilen aufteilen könnte und am Ende mit # einen Kommentar schreiben kann, also

          Code:
          ^Wetter für (.+?).+# suche Stadt
          ^(-?\d{1,4})°.+# aktuelle Temperatur
          ...
          ~ Markus
          Viele Grüße,
          Markus
          _________________________________________
          HS3, Gira TS2+, ABB DG/S 1.1, ... Reel Avantgarde II + NetClient

          Kommentar


            #6
            Zitat von alteraffe Beitrag anzeigen
            Was bei Regex umbedingt auch gelößt werden sollte ist, dass man im Experten keine Alternativen eingeben kann. Alles nach | wird abgeschnitten
            Das liegt daran das die PIPE das Trennzeichen in der proj.hs3 ist evtl. kann mann das escapen? hast du schon \| \\| oder \\\| versucht?

            PS: Ich wollte eigentlich auch deinen Thread suchen hatte nur nach komplex gesucht und nicht nach regex und hab dann nicht richtig gelesen.
            Nils

            aktuelle Bausteine:
            BusAufsicht - ServiceCheck - Pushover - HS-Insight

            Kommentar


              #7
              ...gute Idee mit dem Escape, aber funktioniert leider auch nicht.

              Alles nach dem Pipe wird direkt im Experten abgeschnitten. Also denke ich das der HS damit kein Problem hätte, aber der Experte lässt es erst gar nicht zu:

              Code:
              halli\\|o
              wird zu

              Code:
              halli\\
              dazu reicht es schon, wenn man (im Experten) eine andere Webabfrage anschaut und dann wieder die erste anklickt... schwups isses wech

              Hatte ich der Gira hotline geschildert, aber ich glaube die sind ziehmlich resistent gegenüber solchen Bugs. Vielleicht müssen wir eine Petition beim Bundestag einreichen
              Viele Grüße,
              Markus
              _________________________________________
              HS3, Gira TS2+, ABB DG/S 1.1, ... Reel Avantgarde II + NetClient

              Kommentar


                #8
                Ja klar Richtig, im Experten kannst du generell die | nicht schreiben.
                Umso schicker wär es wenn der Regexteil in einem iKO wäre dann müsste er nämlich nicht dort eingegeben werden sondern könnte über eine Webabfrage "geholt" werden so wie die Updates bei der xxAPI

                Es gibt aber auch noch ne andere Möglichkeit das mit Logikbausteinen zu machen, da wär allerdings der Aufwand grösser das nachher den einzelnen abgefragten iKO zuzuordnen. Daher fände ich das mit der komplexen Webabfrage am besten gelöst. Die REGEX Pattern könnten dann hier auf dem knx-user-forum-server gehostet werden.
                Nils

                aktuelle Bausteine:
                BusAufsicht - ServiceCheck - Pushover - HS-Insight

                Kommentar

                Lädt...
                X