Lego Bluetooth Hub

little.yoda
Site Admin
Beiträge: 882
Registriert: 14.09.2018, 19:05
Hat sich bedankt: 33 Mal
Danksagung erhalten: 143 Mal

Re: Lego Bluetooth Hub

Beitrag von little.yoda » 19.04.2021, 21:42

ganz kurz ... Langfassung irgendwann anders.

rocrail.sh starten und die Logmessages anschauen

den folgenden Befehl auf der Linux Maschine starten, auf dem rocrail läuft

Code: Alles auswählen

echo "BROKER-GET" | nc -u localhost 8051
Den Befehl kannst du zwei, drei Sekunden mit Ctrl+C abberechen.

Dies sollte in jeden Fall eine Meldung der folgenden Art im Rocrail Logfile produzieren.

Code: Alles auswählen

20210419.213442.497 r9999I mqttdisc OClntCon 0847 discover msg:
BROKER-GET


Denn Rest brauchst du nur zu testen, wenn das vorherige funktioniert hat:

Danach bitte die folgenden beiden Befehle testen und schauen, ob und wenn ja welches die "BROKER-GET" Meldung generiert

Code: Alles auswählen

echo "BROKER-GET" | nc -u 224.0.0.1 8051 

Code: Alles auswählen

echo "BROKER-GET" | nc -u 224.0.1.20 8051

Gruß,
Sven

Benutzeravatar
Zoltan
Beiträge: 622
Registriert: 18.09.2018, 11:34
Wohnort: Wien
Hat sich bedankt: 107 Mal
Danksagung erhalten: 8 Mal
Kontaktdaten:

Re: Lego Bluetooth Hub

Beitrag von Zoltan » 19.04.2021, 22:00

Was verstehst du unter Rocrail Log Messages/Rocrail Logfile?
Den rocrail.trc?
Er schreibt verschiedenste Traces - welche Levels soll ich einschalten?
Morgen versuche ich das alles.
Muss der ESP hierfür an sein?

Nur zu Info: mit dem Mattzo Zeug (MTC4PU Software) funktioniert es - der connectet zum MQTT.
LG Zoltan
Mein YT Kanal: www.youtube.com/@oldnat

little.yoda
Site Admin
Beiträge: 882
Registriert: 14.09.2018, 19:05
Hat sich bedankt: 33 Mal
Danksagung erhalten: 143 Mal

Re: Lego Bluetooth Hub

Beitrag von little.yoda » 20.04.2021, 08:08

Hi

In MTC4PU muss die IP-Adresse manuell gesetzt werden.

Ich wollte clever sein und habe eine Lösung programmiert, dass der Controller nach Rocrail sucht und dann dort nach der passenden IP fragt.

Leider funktioniert dies nicht ... und es liegt evtl. daran, dass in rocrail etwas geändert wurde.


Bei mir reicht es, wenn ich rocrail aus dem Terminal-Fenster heraus startet "./rocrail.sh".
EDIT: Vergiss die letzte Aussage erstmal ... es geht bei mir nur mit einer älteren Version von rocrail

Gruß,
Sven

Benutzeravatar
Zoltan
Beiträge: 622
Registriert: 18.09.2018, 11:34
Wohnort: Wien
Hat sich bedankt: 107 Mal
Danksagung erhalten: 8 Mal
Kontaktdaten:

Re: Lego Bluetooth Hub

Beitrag von Zoltan » 20.04.2021, 09:02

BT Hub ist angekommen.

Modul konnektiert zum Hub.

Die Z21 App musste ich mehrmals versuchen zu verbinden, bis sie sich endlich "gesehen" haben, aber dann ging es.
Zu Anfang scheint es irgendwie Kommunikationsschwierigkeiten zu haben bis es sich "einpendelt" (?).
Irgendwie ging es nicht nach Power-on, aber dann nach einem Reset per Button nach einer Zeit doch ja.

Z21 App wird dann rechts oben grün vom bisherigen rot, konnektiert also zum Modul.

Die Lok lässt sich dann mit Z21 steuern, Motor reagiert korrekt.

Also Output scheint OK zu sein (was wir ja schon wegen vorherige Erfahrungen angenommen haben).

Nun zum MQTT.

Rocrail wurde gestartet.
Ich starte es zwar nicht per Terminal und Shell, sondern mittels Icon über Rocview, damit ich auch die Lok bedienen kann, aber das ist, glaube ich, irrelevant.
Bei Mattzo mache ich das auch so, und es geht.

MQTT subscription zeigt aber nichts an, was das Sven-Modul betreffen würde.

Putty auch nicht (full Putty Log am Ende).

Befehl
"echo "BROKER-GET" | nc -u localhost 8051"
im Terminal eingegeben.

Im Rocrail Trace ist
"20210420.081921.138 r9999I mqttdisc OClntCon 0851 discover msg:
BROKER-GET"

erschienen.

Danach im Terminal
"echo "BROKER-GET" | nc -u 224.0.0.1 8051 "
eingegeben.

Im Rocrail Trace ist
"20210420.083039.005 r9999I mqttdisc OClntCon 0851 discover msg:
BROKER-GET"

erschienen.

Danach im Terminal
"echo "BROKER-GET" | nc -u 224.0.0.20 8051 "
eingegeben.

Im Trace ist nichts gekommen.

Danach im Terminal wieder
"echo "BROKER-GET" | nc -u 224.0.0.1 8051 "
eingegeben.

Im Rocrail Trace ist wieder
"20210420.083039.005 r9999I mqttdisc OClntCon 0851 discover msg:
BROKER-GET"

erschienen.

Dh. er reagiert auf 224.0.0.1 aber nicht auf 224.0.0.20.

Nichsdestotrotz geschieht nichts im MQTT Richtung Modul und auch nichts im Putty bzw. mit der Lok, wenn ich die Lok in Rocrail/Rocview "bediene".

Putty log:

Code: Alles auswählen

rst:0x1 (POWERON_RESET),boot:0x13 (SPI_FAST_FLASH_BOOT)
flash read err, 1000
ets_main.c 371
ets Jun  8 2016 00:22:57

rst:0x10 (RTCWDT_RTC_RESET),boot:0x13 (SPI_FAST_FLASH_BOOT)
configsip: 0, SPIWP:0xee
clk_drv:0x00,q_drv:0x00,d_drv:0x00,cs0_drv:0x00,hd_drv:0x00,wp_drv:0x00
mode:DIO, clock div:2
load:0x3fff0018,len:4
load:0x3fff001c,len:1044
load:0x40078000,len:10124
load:0x40080400,len:5828
entry 0x400806a8
-------------------------------------------------
[MEM] 243408 / Setup
Started!
Compiledate: Apr  5 2021 11:24:44 v1.2.9-9-gf5ee5ae
[MEM] 242920 / Controller
[MEM] 237444 / Wifi
Starting Wifi...
[MEM] 237424 / Webserver
[MEM] 234408 / Serial
[MEM] 234408 / Cfg
MEM 233880 / Cfg Read
MEM 233124 / Starting Parsing
MEM 231676 wlan
DoubleBootDetection: 0
Wifi status changed: Disconnected => Disconnected [STA] IP:10.0.0.100
Connection to:  (Q:0)
Reconnect
MEM 180056 simulateZ21
Starting Z21 Zentrale ...
MEM 179728 rocnetovermqtt
[E][WiFiUdp.cpp:183] endPacket(): could not send data: 118
MEM 175920 webservicewifiscanner
MEM 175744 webservicelog
MEM 175588 cmdlogger
MEM 175308 lpf2hub
Adding Settings pwm1
[E][WiFiUdp.cpp:183] endPacket(): could not send data: 118
Einträge in Filter Sektion: 0
MEM 158268 locospeed
Register for locospeed
Einträge in Connector-Sektion: 0
MEM 157852 / Closing Parser
MEM 159188 / Cfg-End
[MEM] 159660 Post Config
[MEM] 159828 / Setup Finish

Setup finish!
[E][WiFiUdp.cpp:183] endPacket(): could not send data: 118
[E][WiFiUdp.cpp:183] endPacket(): could not send data: 118
[E][WiFiUdp.cpp:183] endPacket(): could not send data: 118
[E][WiFiUdp.cpp:183] endPacket(): could not send data: 118
[E][WiFiUdp.cpp:183] endPacket(): could not send data: 118
Trying to connect to the Lego Hub
Connected to Lego HUB
[E][WiFiUdp.cpp:183] endPacket(): could not send data: 118
[E][WiFiUdp.cpp:183] endPacket(): could not send data: 118
[E][WiFiUdp.cpp:183] endPacket(): could not send data: 118
[E][WiFiUdp.cpp:183] endPacket(): could not send data: 118
Reconnect
[E][WiFiUdp.cpp:183] endPacket(): could not send data: 118
Server begin
[WiFi-event] event: 5
                     Disconnected from WiFi access point
[E][WiFiUdp.cpp:183] endPacket(): could not send data: 118
[E][WiFiUdp.cpp:183] endPacket(): could not send data: 118
[E][WiFiUdp.cpp:183] endPacket(): could not send data: 118
[E][WiFiUdp.cpp:183] endPacket(): could not send data: 118
[E][WiFiUdp.cpp:183] endPacket(): could not send data: 118
[E][WiFiUdp.cpp:183] endPacket(): could not send data: 118
[E][WiFiUdp.cpp:183] endPacket(): could not send data: 118
[E][WiFiUdp.cpp:183] endPacket(): could not send data: 118
[E][WiFiUdp.cpp:183] endPacket(): could not send data: 118
[E][WiFiUdp.cpp:183] endPacket(): could not send data: 118
[E][WiFiUdp.cpp:183] endPacket(): could not send data: 118
[E][WiFiUdp.cpp:183] endPacket(): could not send data: 118
[E][WiFiUdp.cpp:183] endPacket(): could not send data: 118
[E][WiFiUdp.cpp:183] endPacket(): could not send data: 118
Wifi status changed: Disconnected [STA] => Connect Failed [STA] IP:10.0.0.100
Connection to:  (Q:0)
Wifi Begin
E (7347) wifi:sta is connecting, return error
[E][WiFiSTA.cpp:221] begin(): connect failed!
[E][WiFiUdp.cpp:183] endPacket(): could not send data: 118
[WiFi-event] event: 7
                     Obtained IP address:
[WiFi-event] event: 7
                     Obtained IP address:
Wifi status changed: Connect Failed [STA] => Connected [STA] IP:10.0.0.100
Connection to: 38:22:9D:60:74:FA (Q:-59)
MDNS start
MDNS start: 1
[Z21] Ziel für send() nicht festgelegt.
Client Added 10.0.0.2
[z21] Received: 1 2/128
[CNT] DCC-Speed: ID: 3002 S: 2 D: 1
Connector: 30022
[PIPE] Received (sd/2)
[PIPE] Forward (sd/2) to pwm1
SetSettings sd/2
[z21] Received: 1 11/128
[CNT] DCC-Speed: ID: 3002 S: 11 D: 1
Connector: 300211
[PIPE] Received (sd/11)
[PIPE] Forward (sd/11) to pwm1
SetSettings sd/11
[z21] Received: 1 28/128
[CNT] DCC-Speed: ID: 3002 S: 28 D: 1
Connector: 300228
[PIPE] Received (sd/28)
[PIPE] Forward (sd/28) to pwm1
SetSettings sd/28
[z21] Received: 1 37/128
[CNT] DCC-Speed: ID: 3002 S: 37 D: 1
Connector: 300237
[PIPE] Received (sd/37)
[PIPE] Forward (sd/37) to pwm1
SetSettings sd/37
[z21] Received: 1 42/128
[CNT] DCC-Speed: ID: 3002 S: 42 D: 1
Connector: 300242
[PIPE] Received (sd/42)
[PIPE] Forward (sd/42) to pwm1
SetSettings sd/42
[z21] Received: 1 43/128
[CNT] DCC-Speed: ID: 3002 S: 43 D: 1
Connector: 300243
[PIPE] Received (sd/43)
[PIPE] Forward (sd/43) to pwm1
SetSettings sd/43
[z21] Received: 1 43/128
[z21] Received: 1 43/128
[z21] Received: 1 32/128
[CNT] DCC-Speed: ID: 3002 S: 32 D: 1
Connector: 300232
[PIPE] Received (sd/32)
[PIPE] Forward (sd/32) to pwm1
SetSettings sd/32
[z21] Received: 1 6/128
[CNT] DCC-Speed: ID: 3002 S: 6 D: 1
Connector: 30026
[PIPE] Received (sd/6)
[PIPE] Forward (sd/6) to pwm1
SetSettings sd/6
[z21] Received: 1 1/128
[CNT] DCC-Speed: ID: 3002 S: 1 D: 1
Connector: 30021
[PIPE] Received (sd/0)
[PIPE] Forward (sd/0) to pwm1
SetSettings sd/0
[z21] Received: 1 1/128
[z21] Received: 1 4/128
[CNT] DCC-Speed: ID: 3002 S: 4 D: 1
Connector: 30024
[PIPE] Received (sd/4)
[PIPE] Forward (sd/4) to pwm1
SetSettings sd/4
[z21] Received: 1 26/128
[CNT] DCC-Speed: ID: 3002 S: 26 D: 1
Connector: 300226
[PIPE] Received (sd/26)
[PIPE] Forward (sd/26) to pwm1
SetSettings sd/26
[z21] Received: 1 33/128
[CNT] DCC-Speed: ID: 3002 S: 33 D: 1
Connector: 300233
[PIPE] Received (sd/33)
[PIPE] Forward (sd/33) to pwm1
SetSettings sd/33
[z21] Received: 1 35/128
[CNT] DCC-Speed: ID: 3002 S: 35 D: 1
Connector: 300235
[PIPE] Received (sd/35)
[PIPE] Forward (sd/35) to pwm1
SetSettings sd/35
[z21] Received: 1 35/128
[z21] Received: 1 27/128
[CNT] DCC-Speed: ID: 3002 S: 27 D: 1
Connector: 300227
[PIPE] Received (sd/27)
[PIPE] Forward (sd/27) to pwm1
SetSettings sd/27
[z21] Received: 1 1/128
[CNT] DCC-Speed: ID: 3002 S: 1 D: 1
Connector: 30021
[PIPE] Received (sd/0)
[PIPE] Forward (sd/0) to pwm1
SetSettings sd/0
[z21] Received: 1 1/128
Z21 Zentrale Timeout
[CNT] DCC-Speed: ID: -1 S: 0 D: 1
Connector: -10
[PIPE] Received (sd/0)
[PIPE] Forward (sd/0) to pwm1
SetSettings sd/0
Also Z21 regelt den Motor über das Modul via BT Hub gut, aber Rocrail/MQTT bekommt keine Verbindung.

Ich weiß nicht, ob das für dich wichtig ist, aber der MQTT Service im Rocrail sitzt auf "localhost Port 1883". Das Mattzo Zeug funktioniert damit.
LG Zoltan
Mein YT Kanal: www.youtube.com/@oldnat

little.yoda
Site Admin
Beiträge: 882
Registriert: 14.09.2018, 19:05
Hat sich bedankt: 33 Mal
Danksagung erhalten: 143 Mal

Re: Lego Bluetooth Hub

Beitrag von little.yoda » 20.04.2021, 18:29

Hi

Aus irgendeinem Grund findest er deine RocRail Instanz nicht und bekommt deshalb die Informationen über mqtt-Server nicht.

Probiere es noch einmal mit der aktuellen Alpha/Beta Version.
Wenn es immer noch nicht funktioniert, dann kannst du mit der Version von heute, auch den MQTT-Server direkt setzen.

{
"m":"rocnetovermqtt",
"ip":"192.168.2.201",
"port":"1883"
},


EDIT1: Hostname kannst du im Moment nicht setzen. Steht auf der TODO Liste, ist aber nicht so trivial, wie man meinen könnte.
EDIT2: Steuerung ... ja, die Steuerelemente für die Geschwindigkeitsregelung werden nur eingeblendet, wenn du auch das PWM-Modul aktivierst, was du ja in deinem Fall nicht brauchst. Eigentlich müsste ich das ganze Thema Steuerung über Webseite überarbeiten.


Gruß,
Sven

Benutzeravatar
Zoltan
Beiträge: 622
Registriert: 18.09.2018, 11:34
Wohnort: Wien
Hat sich bedankt: 107 Mal
Danksagung erhalten: 8 Mal
Kontaktdaten:

Re: Lego Bluetooth Hub

Beitrag von Zoltan » 20.04.2021, 18:46

Lädt der LittleYodaFladher jetzt einen neueren FW? Ich werde es morgen mit den händischen Angaben testen:

{
"m":"rocnetovermqtt",
"ip":"10.0.0.12",
"port":"1883"
}

und melde mich dann.
LG Zoltan
Mein YT Kanal: www.youtube.com/@oldnat

little.yoda
Site Admin
Beiträge: 882
Registriert: 14.09.2018, 19:05
Hat sich bedankt: 33 Mal
Danksagung erhalten: 143 Mal

Re: Lego Bluetooth Hub

Beitrag von little.yoda » 20.04.2021, 19:46

Ja, mit jedem Neustart des Flashers holt er sich eine Liste mit den aktuellen Firmware-Ständen.

Er greift dann jeweils auf den letzten Stand von Github zurück (https://github.com/littleyoda/littleyod ... e/gh-pages)

Benutzeravatar
Zoltan
Beiträge: 622
Registriert: 18.09.2018, 11:34
Wohnort: Wien
Hat sich bedankt: 107 Mal
Danksagung erhalten: 8 Mal
Kontaktdaten:

Re: Lego Bluetooth Hub

Beitrag von Zoltan » 20.04.2021, 19:53

Super, danke.
Melde mich.
LG Zoltan
Mein YT Kanal: www.youtube.com/@oldnat

Benutzeravatar
Zoltan
Beiträge: 622
Registriert: 18.09.2018, 11:34
Wohnort: Wien
Hat sich bedankt: 107 Mal
Danksagung erhalten: 8 Mal
Kontaktdaten:

Re: Lego Bluetooth Hub

Beitrag von Zoltan » 21.04.2021, 11:19

Ich habe 2 Versuche gemacht.

Das wichtigste ist bold.

1.) config. json mit den MQTT Server Daten händisch ergänzt.

2.) Mit LittleYodaFlasher neu geflasht.

Ich beschreibe die Erfahrungen von 1.), aber das kannst du wohl ignorieren - also das nur als Info. Denn 2.) klappte.

--------------------------------------------------------

Zu 1.):

Mit händisch upgedatetem config.json funktioniert er genauso nicht mit MQTT wie bisher Er connectet nicht zum MQTT.

Config:

Code: Alles auswählen

{
    "version":"3",
    "cfg":[
        {
            "m":"wlan", 
            "ssid":"SSID", 
            "pwd":"PASSWORD", 
            "ip":"10.0.0.100", "netmask":"255.255.255.0",
            "gw":"10.0.0.138"
        },
        {
            "m":"simulateZ21"
        },
        {
            "m":"rocnetovermqtt",
            "ip":"10.0.0.12",
            "port":"1883"
        },
        {
            "m":"webservicewifiscanner"
        },
        {
            "m":"webservicelog"
        },
        {
            "m":"cmdlogger"
        }
    ],
    "out":[
        {
            "id":"pwm1",
            "m":"lpf2hub"
        }
    ],
    "in":[
        {
            "m":"locospeed",
            "addr":3002,
            "out":[
                "pwm1"
            ]
        }
    ],
    "connector":[
    ]
}

Zum Lego Hub konnektiert er, und mit der Z21 App kann ich die Lok bewegen.

Wenn ich Reset drücke, wo der Lego Hub noch an und konnektiert ist, geht er oft, aber nicht immer (und nicht reproduzierbar) in einem endless loop mit

Code: Alles auswählen

...
[E][WiFiUdp.cpp:183] endPacket(): could not send data: 118
[E][WiFiUdp.cpp:183] endPacket(): could not send data: 118
Reconnect
[E][WiFiUdp.cpp:183] endPacket(): could not send data: 118
[E][WiFiUdp.cpp:183] endPacket(): could not send data: 118
[E][WiFiUdp.cpp:183] endPacket(): could not send data: 118
[E][WiFiUdp.cpp:183] endPacket(): could not send data: 118
[E][WiFiUdp.cpp:183] endPacket(): could not send data: 118
[E][WiFiUdp.cpp:183] endPacket(): could not send data: 118
[E][WiFiUdp.cpp:183] endPacket(): could not send data: 118
[E][WiFiUdp.cpp:183] endPacket(): could not send data: 118
[E][WiFiUdp.cpp:183] endPacket(): could not send data: 118
[E][WiFiUdp.cpp:183] endPacket(): could not send data: 118
[E][WiFiUdp.cpp:183] endPacket(): could not send data: 118
[E][WiFiUdp.cpp:183] endPacket(): could not send data: 118
[E][WiFiUdp.cpp:183] endPacket(): could not send data: 118
[E][WiFiUdp.cpp:183] endPacket(): could not send data: 118
[E][WiFiUdp.cpp:183] endPacket(): could not send data: 118
Reconnect
[E][WiFiUdp.cpp:183] endPacket(): could not send data: 118
[E][WiFiUdp.cpp:183] endPacket(): could not send data: 118
...
und ist unter 10.0.0.100 nicht erreichbar.

Erst wenn ich den Lego Hub ausschalte, hört er mit dem Loop auf und kommt es zu "MDNS start".

Lego Hub schalte ich dann vergeblich wieder ein, er connectet nicht mehr (logisch, er checkt wohl die Verbindung nicht ständig, und kümmert sich nicht um BT Verlust?)

(Worauf bezieht sich dieses "reconnect"?)
------------------------------------------------------------------------------------------------
Nun reflashe ich.

Zu 2.):
"esp32 with Lego Support (Alpha/Beta)" mit LittleYodaFlasher 0.4.0 geflasht.

Dann hatte ich einige Probleme, weil er wieder mit Hello World kam, ich aber im Library nichts sah!
Hast du am Browser Teil etwas gedreht?
Controll gibt es immer noch nicht, aber Library ist jetzt auch leer.


Ich habe dann die beiden css und den json hochgeladen über Handy Browser, aber blind, da er nichts anzeigt.
(im json habe ich die händisch einegebenen Daten wieder entfernt.)

Er hat es aber wohl geladen, denn er verhielt sich nachher so, also ob er die Files hat.

Nach dem Hochladen habe ich ihn resettet, und nach einigen Versuchen kam dann ein Erfolg, er hat zum MQTT konnektiert.

Er liess sich dann auch per Rocrail steuern.
Und auch von der Z21 App.
Er liess sich auch parallel von Rocrail und der Z21 App steuern.
Er hat sogar in der Z21 App angezeigt, was ich in Rocrail gestellt habe!
Er hat in der Z21 App den Regler "hochgezogen", als ich in Rocrail den Regler hochgezogen habe, und auch herunter bei Stop.

Umgekehrt nicht, Rocrail ist wohl nicht vorbereitet, von aussen kommende Sachen innen enzuzeigen. ABer das ist nicht so wichtig.

Es ist also erreicht, was ich wollte :)

Das einzige Problem ist nun nur noch, dass im Browser Library nichts angezeigt wird, daher keine Möglichkeit zum Kontrollieren, löschen, editieren.
Man weiß nicht, was auf dem Modul an Files geladen ist.


Aber ansonsten alles super.
LG Zoltan
Mein YT Kanal: www.youtube.com/@oldnat

little.yoda
Site Admin
Beiträge: 882
Registriert: 14.09.2018, 19:05
Hat sich bedankt: 33 Mal
Danksagung erhalten: 143 Mal

Re: Lego Bluetooth Hub

Beitrag von little.yoda » 21.04.2021, 13:19

Zoltan hat geschrieben:
21.04.2021, 11:19
Controll gibt es immer noch nicht, aber Library ist jetzt auch leer.
Bevor ich bei Gelegenheit ausführlicher antworte ...

Was meinst du mit Lbrary?
Meinst du, dass alle hochgeladenen Dateien (css, usw) weg sind?

Ja, das ist tatsächlich der Fall, da ich mehr Platz für die Applikation benötigte, habe ich für diese Firmware (esp32full) den Platz für Dateien etwas reduziert habe, um mehr Platz für die Applikation zu gewinnen.

Um wirklich sicher zu gehen, solltest du den Flashspeicher nochmal formatieren und danach die config.json neu hochladen.
http://<ip>/format

Antworten