Ankündigung

Einklappen
Keine Ankündigung bisher.

TCP/UDP Binding ohne Reaktion

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

    TCP/UDP Binding ohne Reaktion

    Guten Abend
    Mein Ziel ist es, diverse Werte aus meiner TEM Heizungssteuerung mit OpenHAB zu verarbeiten. Dazu habe ich ein kleines Programm geschrieben, dass mir die verschiedenen Werte als UDP-Client zusendet.
    Ich habe nun schon viele Stunden erfolglos damit verbracht, überhaupt eine Reaktion mit dem TCP/UDP Binding zu erhalten. Ich habe folgendes inizialisiert:
    openhab.cfg:
    udport=25002
    udp:itemsharedconnections=true
    udp:bindingsharedconnections=true
    udp:refreshinterval=250
    grundeinstellungen.items:
    Switch ebus_ini "eBus ini [%S]" { udp=">[ON:127.0.0.1:25001:'ini from OpenHAB'], >[OFF:127.0.0.1:25001:'end from OpenHAB']" }
    String Temperatur_Wohnkueche_rx "Temperatur unbearbeitet [%s]" { udp="<[127.0.0.1:25001:'REGEX((.*))']" }
    grundeinstellungen.rules:
    rule Startup
    when
    System started
    then
    sendCommand(ebus_ini, ON)
    say("Hello")
    end

    mit dem Terminal möchte ich nun gerne die Startupmeldung 'ini from OpenHAB' und warte darauf mit:
    nc -u -l 25001

    wenn ich OpenHAB starte dann sehe ich in der Konsole:
    ...
    21:28:25.042 INFO o.o.m.c.i.ModelRepositoryImpl[:79] - Loading model 'Standart.sitemap'
    21:28:25.303 INFO o.o.m.c.i.ModelRepositoryImpl[:79] - Loading model 'grundeinstellungen.items'
    21:28:25.330 DEBUG o.o.m.i.i.GenericItemProvider[:154] - Processing binding configs for items from model 'grundeinstellungen.items'
    21:28:25.334 DEBUG o.o.m.i.i.GenericItemProvider[:133] - Read items from model 'grundeinstellungen.items'
    21:28:26.554 DEBUG o.o.i.s.i.DiscoveryServiceImpl[:43] - Registering new service _openhab-server-ssl._tcp.local. at port 8443
    21:28:29.241 INFO o.o.u.w.i.s.WebAppServlet[:79] - Started Classic UI at /openhab.app
    21:28:30.036 DEBUG o.o.m.r.i.RuleModelActivator[:42] - Registered 'rules' configuration parser
    21:28:30.055 DEBUG o.o.m.r.i.engine.RuleEngine[:78] - Started rule engine
    21:28:33.108 DEBUG o.o.b.t.internal.TCPActivator[:35] - TCP/UDP binding has been started.
    21:28:33.162 DEBUG o.o.m.i.i.GenericItemProvider[:334] - Start processing binding configuration of Item 'ebus_ini (Type=SwitchItem, State=Uninitialized)' with 'UDPGenericBindingProvider' reader.
    21:28:33.166 DEBUG o.o.m.i.i.GenericItemProvider[:334] - Start processing binding configuration of Item 'Temperatur_Wohnkueche_rx (Type=StringItem, State=Uninitialized)' with 'UDPGenericBindingProvider' reader.
    21:28:33.192 INFO o.o.b.t.AbstractDatagramChannelBinding[:781] - The maximum buffer will be set to the default value of 1024
    21:28:33.193 INFO o.o.b.t.AbstractDatagramChannelBinding[:788] - The interval to retry connection setups will be set to the default value of 5
    21:28:33.193 INFO o.o.b.t.AbstractDatagramChannelBinding[:795] - The cron job to reset connections will be set to the default value of 0 0 0 * * ?
    21:28:33.193 INFO o.o.b.t.AbstractDatagramChannelBinding[:823] - The setting to share channels between directions will be set to the default vaulue of true
    21:28:33.194 INFO o.o.b.t.AbstractDatagramChannelBinding[:830] - The setting to use address masks for incoming connections will be set to the default value of true
    21:28:33.198 DEBUG o.o.b.h.internal.HttpActivator[:34] - HTTP binding has been started.
    21:28:33.231 INFO o.o.c.s.AbstractActiveService[:169] - HTTP Refresh Service has been started
    21:28:33.234 DEBUG o.o.b.n.internal.NtpActivator[:31] - NTP binding has been started.
    21:28:33.270 DEBUG o.o.m.i.i.GenericItemProvider[:334] - Start processing binding configuration of Item 'Datum (Type=DateTimeItem, State=Uninitialized)' with 'NtpGenericBindingProvider' reader.
    21:28:33.332 INFO o.o.c.s.AbstractActiveService[:169] - NTP Refresh Service has been started
    21:28:33.425 DEBUG o.o.b.ntp.internal.NtpBinding[:83] - Got time from ptbtime1.ptb.de: Dienstag, 10. Dezember 2013 21:28 Uhr MEZ
    21:28:33.502 INFO runtime.busevents[:26] - Datum state updated to 2013-12-10T21:28:33
    21:28:35.529 INFO o.o.m.c.i.ModelRepositoryImpl[:79] - Loading model 'grundeinstellungen.rules'
    21:28:35.722 DEBUG o.o.m.r.i.engine.RuleEngine[:257] - Executing startup rule 'Startup'
    21:28:36.359 ERROR o.o.b.t.AbstractDatagramChannelBinding[:943] - there is no channel that services [itemName=ebus_ini, command=ON]
    21:28:36.361 INFO runtime.busevents[:22] - ebus_ini received command ON

    Ich habe auch schon versucht, das ganze Spiel umzukehren und Daten zu empfangen, aber da bin ich auch erfolglos geblieben.

    Kann mir jemand einen Tipp geben, wie ich irgendwelche Reaktionen aus dem Binding erhalte? Ich habe die Kommunikation auch mit Wireshark beobachtet und bin sicher, dass das Binding weder Daten sendet noch empfangt.
    Danke im Voraus

    #2
    Um mal ein paar Sachen auszuschließen:

    - Sende nach dem String mal ein \n, nicht dass die Daten in irgend einem Puffer hängen bleiben und nc sie nur nicht ausspuckt. Funktioniert die Ausgabe mit einem zweiten nc was die Daten sendet?

    - Bei meinen Experimenten mit dem tcp Binding musste ich zwingend ein Mapping für den zu senden String angeben (das war mit dem aktuellen 1.4 Snapshot), ansonsten wurde da auch nichts gesenden. Also anstelle des Strings mal ein mapping mit dem passenden String bei ON=

    - Vielleicht liegt es auch am Startup Verhalten, also nach dem Ende des Startvorgangs noch mal testen.

    Kommentar


      #3
      Ich habe mit einem zweite nc gesendet und erfolgreich übermittelt, also der Empfänger ist bereit.

      Dann habe ich bei den items ein LF angehängt:
      Switch ebus_ini "eBus ini [%S]" { udp=">[ON:127.0.0.1:25001:'ini from OpenHAB\n'], >[OFF:127.0.0.1:25001:'end from OpenHAB\n']" }
      Das hat aber noch nichts bewirkt.

      Dann habe ich versucht via MAP eine Ausgabe zu machen:
      Switch ebus_ini "eBus ini [%S]" { udp=">[ON:127.0.0.1:25001:'MAP(de.map)'], >[OFF:127.0.0.1:25001:'MAP(de.map)']" }
      und in der Datei .../configurations/transform/de.map:
      ON=ein
      OFF=aus

      nc erhält immer noch nichts, aber in der Konsole steht nun ein Fehler:
      21:47:19.150 DEBUG o.o.m.r.i.engine.RuleEngine[:257] - Executing startup rule 'Startup'
      21:47:19.688 ERROR o.o.b.t.AbstractDatagramChannelBinding[:943] - there is no channel that services [itemName=ebus_ini, command=ON]
      21:47:19.896 INFO runtime.busevents[:22] - ebus_ini received command ON

      Habe ich die Map richtig aufgesetzt?

      Kommentar


        #4
        Ja, die MAP sieht für mich OK aus, bei ON sendet er dann den String ein. Die Binding Konfiguration ist auch sie wie ich sie bei meinen Tests mit dem Binding hatte. Hab da zwar tcp verwendet, das sollte aber keinen Unterschied machen.

        Im tcp Binding hat sich ja wohl einiges geändert. Eventuell past das Format der Konfiguration nicht zum Versionsstand des Bindings?!

        Kommentar

        Lädt...
        X