MQTT und Weichenbefehle

MQTT und Weichenbefehle

Postby pelle22 » 26.03.2017, 17:52

Hallo Zusammen

ich versuche gerade über MQTT Servo's an einen Arduino zu schalten und in Rocrail zurück zu melden. Die Kommunikation
erfolgt über eine Ethernet Schnittstelle. Das klappt soweit auch schon. Ein Problem bekomme ich
wenn ich den Rückmelder in der Weiche eintrage.
Ohne eingetragen Rückmelder werden beim Schalten der Weiche zwei Befehle gesendet.
Code: Select all
<sw id="sw2" state="straight" switched="243" testing="false" iid=""/>
<sw id="sw2" state="straight" switched="243" addr1="0" port1="12"/>

Sobald ich den Rückmelder eintrage kommt nur noch der erste Befehl, dafür aber eine andere Meldung mit der ich nichts
anfangen kann.
Code: Select all
<exception text="Switch [sw2] will be set to [turnout,0,0]" level="16384" id="9999"/>
<sw id="sw2" state="straight" switched="243" testing="false" iid=""/>


Die Auswertung meiner Befehle erfolgt über die Portangabe "port1=12", was dann nicht klappt, da der zweite Befehl nicht gesendet wird.
Weis jemand was einzustellen ist, damit der zweite Befehl mit der Portangabe gesendet wird.

Gruß Peer
You do not have the required permissions to view the files attached to this post.
pelle22
 

Re: MQTT und Weichenbefehle

Postby rjversluis » 27.03.2017, 07:05

Hi Peer,

die Port Angabe ist ja überflüßig weil diese schon beim Weicheobjekt hinterlegt ist(sein muss).
Best Regards, Rob.
:!: PS: Do not forget to attach the usual files.
:!: PS: Nicht vergessen die übliche Dateien an zu hängen.
[ macOS - Linux] - [ N: CBus - CAN-GCA ] - [ 0: RocNetNode - GCA-Pi ]
rjversluis
Site Admin
 

Re: MQTT und Weichenbefehle

Postby pelle22 » 27.03.2017, 08:01

Hallo Rob,

klar könnte ich die Weichen-ID benutzen, aber damit wäre ich viel
unflexibler, da dann die Weichen-ID (id="sw2") im Sketch angeben werden muss.
Meine Idee war, dass ich einfach im Sketch einen "Startport" angebe
und dann die nächsten 16 Ports für die Servo's benutze.
Das funktioniert ja auch soweit, nur eben nicht,
wenn in der Weiche ein Rückmelder eingetragen wird.

Gruß
Peer
pelle22
 

Re: MQTT und Weichenbefehle

Postby rjversluis » 27.03.2017, 08:03

Hi Peer,

wo trägst du dann ein Rückmelder ein? Im Kommando?
Best Regards, Rob.
:!: PS: Do not forget to attach the usual files.
:!: PS: Nicht vergessen die übliche Dateien an zu hängen.
[ macOS - Linux] - [ N: CBus - CAN-GCA ] - [ 0: RocNetNode - GCA-Pi ]
rjversluis
Site Admin
 

Re: MQTT und Weichenbefehle

Postby rjversluis » 27.03.2017, 08:15

Hi Peer,

im trace kommt es immer, aber als dritte:

Code: Select all
20170326.180313.366 r9999I broadcas OMQTT    0310 send PUBLISH: Topic=rocrail/service/info/exception(1) Payload=86 ID=155 totalLen=122 nrLenBytes=0 topicLen=30
20170326.180313.368 r9999I mqttread OMQTT    0258 received PUBACK ID=155
20170326.180313.374 r9999c tid0x022 OVirtual 0196 turnout 0003 4 turnout    fada=0022 pada=0012 bus=0 addr=3 port=4 gate=0 dir=0 action=1 delay=0
20170326.180313.375 r9999I 00001D9C OSwitch  1903 switch [sw2] field event: state=turnout(field:turnout) gatevalue=1 inv=0 fieldstate=turnout
20170326.180313.379 r9999I broadcas OClntCon 0519 mqtt publish [<sw id="sw2" state="turnout" switched="222" testing="false" iid=""/>
]
20170326.180313.381 r9999I broadcas OMQTT    0310 send PUBLISH: Topic=rocrail/service/info/sw(1) Payload=69 ID=156 totalLen=98 nrLenBytes=0 topicLen=23
20170326.180313.388 r9999I mqttread OMQTT    0258 received PUBACK ID=156
20170326.180313.399 r9999I broadcas OClntCon 0519 mqtt publish [<exception text="turnout 0003 4 turnout    fada=0022 pada=0012 bus=0 addr=3 port=4 gate=0 dir=0 action=1 delay=0" level="16384" id="9999"/>
]
20170326.180313.401 r9999I broadcas OMQTT    0310 send PUBLISH: Topic=rocrail/service/info/exception(1) Payload=140 ID=157 totalLen=176 nrLenBytes=1 topicLen=30
20170326.180313.403 r9999I mqttread OMQTT    0258 received PUBACK ID=157
20170326.180313.413 r9999I broadcas OClntCon 0519 mqtt publish [<sw id="sw2" state="turnout" switched="222" addr1="0" port1="12"/>
Best Regards, Rob.
:!: PS: Do not forget to attach the usual files.
:!: PS: Nicht vergessen die übliche Dateien an zu hängen.
[ macOS - Linux] - [ N: CBus - CAN-GCA ] - [ 0: RocNetNode - GCA-Pi ]
rjversluis
Site Admin
 

Re: MQTT und Weichenbefehle

Postby pelle22 » 27.03.2017, 12:01

Hallo Rob,

ich trage die Rückmelder in dem Weichenobjekt bei Verkabelung ein.
Ich habe noch mal ein aktuelles Trace indem wird der Befehl ebenfalls nicht gesendet( denke ich).
Kann sein das ich gestern beim Testen etwas durcheinander gekommen bin (sorry).

Code: Select all
20170327.124346.770 r9999I broadcas OClntCon 0519 mqtt publish [<exception text="Switch [sw2] will be set to [straight,0,0]" level="16384" id="9999"/>]
20170327.124346.771 r9999I broadcas OMQTT    0310 send PUBLISH: Topic=rocrail/service/info/exception(1) Payload=87 ID=7 totalLen=123 nrLenBytes=0 topicLen=30
20170327.124346.772 r9999I mqttread OMQTT    0258 received PUBACK ID=7
20170327.124346.776 r9999c tid0x022 OVirtual 0196 turnout 0003 4 straight   fada=0022 pada=0012 bus=0 addr=3 port=4 gate=0 dir=1 action=1 delay=0
20170327.124346.783 r9999I broadcas OClntCon 0519 mqtt publish [<sw id="sw2" state="straight" switched="247" testing="false" set="false" iid=""/>]


Gruß Peer
You do not have the required permissions to view the files attached to this post.
pelle22
 

Re: MQTT und Weichenbefehle

Postby pelle22 » 01.05.2017, 08:31

Hallo Zusammen,

die Steuerung über MQTT funktioniert, ich bin den weg über die Weichenbezeichnung gegangen.
Die Rückmeldung erfolgt über Rückmelder. Jetzt würde ich anstatt der Rückmelder
lieber die Rückmeldung über die Feld-Ereignisse machen. Was müsste ich
zurück senden damit Rocrail die Feld-Ereignisse verarbeiten kann.

Gruß Peer
pelle22
 

Re: MQTT und Weichenbefehle

Postby rjversluis » 01.05.2017, 08:35

Hi Peer,

versuche es mit ein fb Knote:
Code: Select all
<fb addr="4711" state="true"/>
Best Regards, Rob.
:!: PS: Do not forget to attach the usual files.
:!: PS: Nicht vergessen die übliche Dateien an zu hängen.
[ macOS - Linux] - [ N: CBus - CAN-GCA ] - [ 0: RocNetNode - GCA-Pi ]
rjversluis
Site Admin
 

Re: MQTT und Weichenbefehle

Postby pelle22 » 01.05.2017, 16:22

Hallo Rob

das hat leider nicht geklappt. Die in deinem Beispiel angebende Adresse "4711" sollte das die Adresse der Weiche sein ?
Ich habe in der Weiche "sw1" folgendes eingetragen. Adresse=0,Port=11,Feld-Ereignisse = "ja".
Ich hatte zum Ausprobieren auch mal eine Adresse in die Weiche eingetragen, ging aber leider auch nicht.
Code: Select all
]
20170501.171050.649 r9999I broadcas OMQTT    0310 send PUBLISH: Topic=rocrail/service/info/fb(1) Payload=83 ID=614 totalLen=112 nrLenBytes=0 topicLen=23
20170501.171050.654 r9999I mqttread OMQTT    0258 received PUBACK ID=614
20170501.171125.814 r9999I mqttread OMQTT    0235 received PUBLISH: Topic=rocrail/service/client Payload=28 ID=26
20170501.171125.815 r9999I mqttread OMQTT    0245 sending PUBACK ID=26...
20170501.171125.816 r9999I mqttread OClntCon 0723 broker publish: [<fb addr="11" state="true"/>]
20170501.171125.820 r9999I tid0x022 OVirtual 0340 simulate fb addr=11 state=true code=,,,
20170501.171125.827 r9999I broadcas OClntCon 0519 mqtt publish [<fb addr="11" state="true" server="mqttreader" iid="vcs-1" id="" uidname="vcs-1"/>
]


Gruß Peer
You do not have the required permissions to view the files attached to this post.
pelle22
 


Return to Arduino (DE)