Ankündigung

Einklappen

Serverwartung 21.2.



Am 21.2. im Laufe des späten Abends wird eine Serverwartung durchgeführt. Das Forum ist dadurch für gut zwei Stunden nicht erreichbar.
Es wird eine Wartungsseite geschaltet.

Mehr anzeigen
Weniger anzeigen

Regex oder Map mit "enter"

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

    Regex oder Map mit "enter"

    Moin....
    über meine TCP Verbindung erhalte ich Strings, die am Ende einen Sprung in eine neue Zeile enthalten, also:

    Code:
    'VAR.KOBELKA.event=1 
    '<- hier ist dann erst das Ende des Strings...
    Wie kann ich jetzt einen Switch bauen, der mir diesen String einfängt
    Mit Map habe ich es versucht:

    VAR.KOBELKA.event=1\n=ON

    Aber das funktioniert leider nicht, könnte hier auch das = ein Problem darstellen ?
    Gruß
    Jörg
    OpenHAB 1.6.2 auf AsRock Q1900 NAS mit Openmediavault, Java8 Version 1.8.0_33-0031

    #2
    Ich habe keine Ahnung, worum es inhaltlich geht, wenn das allerdings eine Datei ist, die von Java als Properties eingelesen wird, dann sollte

    VAR.KOBELKA.event\=1\n=ON

    Dein Problem lösen. Gleich-Zeichen (u.a.) müssen mit dem Backslash escaped werden.

    Bei tiefergehendem Interesse hier nachzulesen:
    http://docs.oracle.com/javase/6/docs...a.io.Reader%29

    Kommentar


      #3
      Funktioniert leider nicht :-(

      Also, um noch mal ein wenig auszuholen:
      Ich habe einen Switch der per TCP Binding verbunden ist und auf test.map verweist:

      Code:
      Switch test <present> {tcp="<[192.168.178.99:*:MAP(test.map)],>[192.168.178.99:4442:MAP(test.map)]"}
      Im Log erscheint das dann folgendermaßen:
      Code:
      2015-02-06 11:20:27.917 [WARN ] [t.i.s.MapTransformationService] - Could not find a mapping for 'VAR.KOBELKA.event.test=1
      ' in the file 'test.map'.
      In der Testmap steht es zur Zeit folgendermaßen:
      Code:
      VAR.KOBELKA.event.test\=1\n=ON
      VAR.KOBELKA.event.test\=0\n=OFF
      ON=VAR.KOBELKA.event.test=1
      OFF=VAR.KOBELKA.event.test=0
      Hat jemand noch eine andere Idee, wie ich diesen String mit = und einem enter einfangen kann ?
      OpenHAB 1.6.2 auf AsRock Q1900 NAS mit Openmediavault, Java8 Version 1.8.0_33-0031

      Kommentar


        #4
        Schade.

        Eine Idee habe ich noch. Teste mal bitte "\r\n" anstelle von "\n".

        Also in etwa so:
        VAR.KOBELKA.event.test\=1\r\n=ON
        VAR.KOBELKA.event.test\=0\r\n=OFF

        Kommentar


          #5
          So wirklich verstehe ich das Problem nicht. Ich meine, das ist TCP, da gibt es keine "Nachrichten", nur Zeichen-/Bytefolgen. Was passiert denn bitte, wenn der zwei Nachrichten auf einmal liest? Kann immer mal passieren …

          Will sagen: Nach meinem Verständnis sollte das eigentlich ganz ohne \r und/oder \n am Ende funktionieren. Wenn nicht, ist es ein Bug im openHAB.
          DistKV, Home Assistant, 1wire, KNX, Python, Asterisk, SMD-Lötkolben

          Kommentar

          Lädt...
          X