Ankündigung

Einklappen
Keine Ankündigung bisher.

group*listen ohne Timestamps (eibd)

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

    group*listen ohne Timestamps (eibd)

    Moin *,

    ich habe hier eine KNX-Installation, auf welche ich über ein MDT KNX-IP-Interface SCN-IP000.01 zugreife. Als Middleware nutze ich derzeit noch eibd:
    Code:
    $ eibd -D -S -T -i --eibaddr=1.1.1 --daemon=eibd.log --no-tunnel-client-queuing ipt:knx
    Das scheint (arbeite mich gerade erst ein) ordentlich zu funktionieren, get- und set-Methoden für einzelne Devices scheinen OK.

    Meine konkrete Frage jetzt: Die Listen-Funktionalitäten liefern Events, aber keine Timestamps:
    Code:
    $ groupsocketlisten ip:127.0.0.1
    Write from 1.1.42 to 1/0/43: 01
    Write from 1.1.2 to 1/1/43: 01
    Write from 1.1.42 to 1/0/43: 00
    Write from 1.1.2 to 1/1/43: 00
    Ich möchte für Debug-Zwecke die Events loggen, dafür brauche ich aber die zugehörigen Timestamps. Wie geht das?
    TNX


    cu, Lyra

    #2
    One tool - one job: http://stackoverflow.com/questions/2...tamps-to-stdin

    Kommentar


      #3
      Autsch - das ist ja GNU/Linux! Du hast Recht.

      So geht das:
      Code:
      $ groupsocketlisten ip:127.0.0.1 | awk '{ print strftime("%Y-%m-%d %H:%M:%S"), $0; fflush(); }'
      2016-06-28 14:59:57 Write from 0.0.0 to 1/0/30: 01
      2016-06-28 14:59:57 Write from 0.0.0 to 1/0/30: 00
      2016-06-28 14:59:57 Write from 1.1.2 to 1/1/30: 01
      Großartig. Herzlichen Dank...

      Kommentar


        #4
        Ein Nachtrag: Nach meinen Beobachtungen gehen Events verloren, wenn die Requests zu schnell nacheinander abgefeuert werden. Dies übrigens auch dann, wenn ich auf die Timestamps verzichte.

        Mit einer Sekunde Pause:
        Code:
        $ date; groupswrite ip:127.0.0.1 1/0/30 1 && sleep 1 && groupswrite ip:127.0.0.1 1/0/30 0
        Di 28. Jun 20:36:34 CEST 2016
        Send request
        Send request
        Code:
        [2016-06-28 20:36:34] Write from 0.0.0 to 1/0/30: 01                                                                 
        [2016-06-28 20:36:34] Write from 1.1.2 to 1/1/30: 01                                                                 
        [2016-06-28 20:36:35] Write from 0.0.0 to 1/0/30: 00                                                                 
        [2016-06-28 20:36:35] Write from 1.1.2 to 1/1/30: 00
        Unmittelbar ohne Pause:
        Code:
        $ date; groupswrite ip:127.0.0.1 1/0/30 1 && sleep 0 && groupswrite ip:127.0.0.1 1/0/30 0
        Di 28. Jun 20:36:57 CEST 2016
        Send request                                                                                                         
        Send request
        Code:
        [2016-06-28 20:36:57] Write from 0.0.0 to 1/0/30: 01
        [2016-06-28 20:36:57] Write from 0.0.0 to 1/0/30: 00
        [2016-06-28 20:36:57] Write from 1.1.2 to 1/1/30: 01
        Ist das fachlich zu erklären?
        TNX

        Kommentar


          #5
          Noch ein Nachtrag:

          Ich habe nun 2 Units für systemd erstellt, welche unter CentOS7 für einen automatischen Start der Dienste sorgt.

          eibd.service:
          Code:
          [root@smarthome /]# cat /etc/systemd/system/eibd.service
          [Unit]
          Description=EIB Daemon
          After=network.target
          
          [Service]
          ExecStart=/bin/eibd -p /run/eibd/eibd.pid -D -S -T -i --eibaddr=1.1.1 --daemon --no-tunnel-client-queuing ipt:knx
          Type=forking
          PIDFile=/run/eibd/eibd.pid
          User=knx
          Group=knx
          
          [Install]
          WantedBy=multi-user.target
          RequiredBy=log-knx.service
          log-knx.service:
          Code:
          [root@smarthome /]# cat /etc/systemd/system/log-knx.service
          [Unit]
          Description=KNX event logger
          Requires=eibd.service
          After=eibd.service
          
          [Service]
          ExecStart=/bin/groupsocketlisten ip:127.0.0.1
          Type=simple
          PIDFile=/run/eibd/log-knx.pid
          User=knx
          Group=knx
          
          [Install]
          WantedBy=multi-user.target
          Desweiteren braucht man noch einen Automatismus für die Erstellung des PID-Verzeichnis im temporären Dateisystem /run :
          Code:
          [root@smarthome ~]# cat /etc/tmpfiles.d/eibd.conf
          d /run/eibd 0775 knx knx -
          Damit landen die KNX-Events (Telegramme) mit Timestamps im System-Journal und können so abgefragt werden:
          Code:
          [root@smarthome /]# journalctl -f -u log-knx.service
          -- Logs begin at Di 2016-07-05 21:17:09 CEST. --
          Jul 05 21:22:31 smarthome.lyra.local groupsocketlisten[841]: Write from 0.0.0 to 1/0/30: 00
          Jul 05 21:22:31 smarthome.lyra.local groupsocketlisten[841]: Write from 1.1.2 to 1/1/30: 00
          Zuletzt geändert von Lyra; 06.07.2016, 06:46. Grund: Wording

          Kommentar

          Lädt...
          X