Install. MQTT o Node-Red på RPI, försök med "mqtt in" node

C, C++, Pascal, Assembly, Raspberry, Java, Matlab, Python, BASIC, SQL, PHP, etc.
Drivmedel
Inlägg: 56
Blev medlem: 29 oktober 2011, 13:40:18
Ort: Lund Södra Sandby

Install. MQTT o Node-Red på RPI, försök med "mqtt in" node

Inlägg av Drivmedel »

Håller på med ett projekt, det går ut på att få ut mätdata på nätet från min FLVP IVT490, har kommit en bit då jag hittar mycket på internet.

Kör en NodeMCU ESP8266 med koden https://github.com/mskorge/ivt490-esp82 ... noCore.ino
Där Clienten tycks vara, /ivt/output. Tolkar detta från koden "client.publish("/ivt/output", payload); //MQTT-topic".

Har även en Raspberrypi där jag laddat in Mosquitto MQTT broker, där jag kör med standard config "mosquitto.conf"
MQTT tycks ha kontakt med ESP8266, stoppar man MQTT så tappar jag kontakten med ESP8266 så det tycks funka.

Nu till problemet, har även installerat Node-Red på RPI och försöker som första steg få ut något från MQTT till "debug" / "msg.payload "noden. Har testat med noden "mqtt in" där jag då angivt clienten som "/ivt/output" har ip nr: rätt och port rätt men får inget ut ur debug-en. Är det någon som har tipps på vad jag gör för fel?

Har kört fast och tycks inte komma längre.

Är bara en amatör som för söker hitta på något kul.
ToPNoTCH
Inlägg: 4875
Blev medlem: 21 december 2009, 17:59:48

Re: Install. MQTT o Node-Red på RPI, försök med "mqtt in" no

Inlägg av ToPNoTCH »

Får du "connected" under MQTT noderna ?

Ett tips är MQTT Box

Det är en enkel app som du kan köra på PC och som utgör en bra MQTT klient att använda för debugging.

Med den kan du ju exempelvis posta på samma topic och se att Node Red funkar.
Eller subscriba på wildcard (#) så får du se alla topics som det ramlar in data på.
danielr112
Inlägg: 8051
Blev medlem: 18 januari 2009, 00:48:24
Ort: Alvesta, Småland

Re: Install. MQTT o Node-Red på RPI, försök med "mqtt in" no

Inlägg av danielr112 »

i node red ska du connecta mot # om du vill se allt från mqqt brookern.

t ex

Kod: Markera allt

[{"id":"646f5ade.e18024","type":"mqtt in","z":"175937d1.3691d8","name":"","topic":"#","qos":"2","broker":"8605b863.295d48","x":300,"y":180,"wires":[["44044e15.9216b"]]},{"id":"44044e15.9216b","type":"debug","z":"175937d1.3691d8","name":"","active":false,"tosidebar":true,"console":false,"tostatus":false,"complete":"true","x":450,"y":160,"wires":[]},{"id":"8605b863.295d48","type":"mqtt-broker","z":"","name":"localhost","broker":"localhost","port":"1883","clientid":"","usetls":false,"compatmode":true,"keepalive":"60","cleansession":true,"birthTopic":"","birthQos":"0","birthPayload":"","closeTopic":"","closeQos":"0","closePayload":"","willTopic":"","willQos":"0","willPayload":""}]

Du kan importera ovan så kommer du få ett flow för just full debug av all mqtt.

Du får konfa om den ska gå mot localhost men antar det.

Man kan använda + och # beroende på hur långt ner på stegen man ska.
Användarvisningsbild
maDa
Inlägg: 4076
Blev medlem: 11 november 2005, 22:13:16
Ort: Malmö
Kontakt:

Re: Install. MQTT o Node-Red på RPI, försök med "mqtt in" no

Inlägg av maDa »

Ja du får ha en MQTT-in som subscribar på "/ivt/#" eller så.

Du kan också lyssna direkt i systemet vad som händer. t.ex

Kod: Markera allt

$ mosquitto_sub -v -t "/rfn/#"
/rfn/a1/sys/volt 3.9
/rfn/a1/dht22/temp 19.7
/rfn/a1/dht22/hum 37
/rfn/a4/sys/volt 3.92
Drivmedel
Inlägg: 56
Blev medlem: 29 oktober 2011, 13:40:18
Ort: Lund Södra Sandby

Re: Install. MQTT o Node-Red på RPI, försök med "mqtt in" no

Inlägg av Drivmedel »

Tack för tippsen, det är som att lägga pusel och man hittar pusel bitarna på nätet.

Problemet tycks vara att data strängen har för många tecken och då jag minskade ner den till runt 110 tecken funkar det.

Koden där ser ut så här
Serial.println(payload); (detta funkar i APL terminalen)
client.publish("/ivt/output",payload); //MQTT-topic (detta funkar bara då jag minskat ned antal tecken till runt 110 i payload)
Får en känsla av att det är något i "MQTT konf" filen begränsar antal tecken.

Kör med standard konf i MQTT. Är det något i denna fil jag måste ändra?

När jag kör med konf filen från http://www.automatiserar.se/guide-raspb ... lationMQTT får ESP8266 ingen kontakt alls med MQTT.
Användarvisningsbild
Klas-Kenny
Inlägg: 11327
Blev medlem: 17 maj 2010, 19:06:14
Ort: Växjö/Alvesta

Re: Install. MQTT o Node-Red på RPI, försök med "mqtt in" no

Inlägg av Klas-Kenny »

Från mosquitto-manualen:
message_size_limit limit
This option sets the maximum publish payload size that the broker will allow. Received messages that exceed this size will not be accepted by the broker. The default value is 0, which means that all valid MQTT messages are accepted. MQTT imposes a maximum payload size of 268435455 bytes.
Kolla om den raden står på något annat än 0 i din conf.
Användarvisningsbild
carpelux
Inlägg: 1874
Blev medlem: 13 oktober 2007, 12:33:33
Ort: Varnhem

Re: Install. MQTT o Node-Red på RPI, försök med "mqtt in" no

Inlägg av carpelux »

Det finns en begränsning i biblioteket pubsubclient till arduino, där buffern för mqtt-paket är satt till 128 bytes. Detta härstammar från att AVR chipen har begränsat med minne och man ville inte allokera för mycket minne i och med att buffern är statisk.

Det är dock enkelt att ändra. I filen PubSubClient.h kan du ändra värdet för MQTT_MAX_PACKET_SIZE från 128 till önskat värde.

Det kan också vara läge att ändra timeouter i samma fil, om man får disconnects. MQTT_KEEPALIVE och MQTT_SOCKET_TIMEOUT är det som behöver ändras då.
Drivmedel
Inlägg: 56
Blev medlem: 29 oktober 2011, 13:40:18
Ort: Lund Södra Sandby

Re: Install. MQTT o Node-Red på RPI, försök med "mqtt in" no

Inlägg av Drivmedel »

Problemet löste tack! Där låg problemet MQTT_MAX_PACKET_SIZE
Användarvisningsbild
maDa
Inlägg: 4076
Blev medlem: 11 november 2005, 22:13:16
Ort: Malmö
Kontakt:

Re: Install. MQTT o Node-Red på RPI, försök med "mqtt in" no

Inlägg av maDa »

Tanken med MQTT meddelanden är att de ska vara korta och endast värden, inte hela JSON-blabbor.
Användarvisningsbild
Klas-Kenny
Inlägg: 11327
Blev medlem: 17 maj 2010, 19:06:14
Ort: Växjö/Alvesta

Re: Install. MQTT o Node-Red på RPI, försök med "mqtt in" no

Inlägg av Klas-Kenny »

maDa: "Tanken med"? Det kan jag knappast hålla med om.

Tex. med Amazon AWS IoT, är det fullt naturligt att skicka en hel "device shadow", som innehåller all data för en viss device i en enda stor JSON-blob. Kan vara många kB stort för en avancerad enhet.

"Kort", är ju väldigt relativt.
Användarvisningsbild
sodjan
EF Sponsor
Inlägg: 43176
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping
Kontakt:

Re: Install. MQTT o Node-Red på RPI, försök med "mqtt in" no

Inlägg av sodjan »

"Tanken med" behöver ju inte vara detsamma som hur det används av vissa som t.ex. AWS.
Visst, MQTT idag har en max payload size på 250 Mb-någonting, men det betyder ju inte att
att det var en del "tanken" med MQTT från början...
Användarvisningsbild
Klas-Kenny
Inlägg: 11327
Blev medlem: 17 maj 2010, 19:06:14
Ort: Växjö/Alvesta

Re: Install. MQTT o Node-Red på RPI, försök med "mqtt in" no

Inlägg av Klas-Kenny »

Ja, det kan hända att tanken var så när protokollet designades en gång i tiden.

Men maDa fick det att låta som att det vore "fel" att skicka annat än bara enstaka värden över MQTT, vilket jag inte alls vill påstå är fallet.
Drivmedel
Inlägg: 56
Blev medlem: 29 oktober 2011, 13:40:18
Ort: Lund Södra Sandby

Re: Install. MQTT o Node-Red på RPI, försök med "mqtt in" no

Inlägg av Drivmedel »

Har nu funkat ett halvår tills Raspberry börja bråka.
Får detta till svar när jag försöker ladd MQTT igen i Rasperry
Vad är det som gå fel?
Det skall ju komma en fråga som skall besvaras men J, men frågan kommer inte upp.
----------------------------------------------------------------------------------------------------------------------------
pi@raspberrypi:/etc/apt/sources.list.d $ sudo apt install mosquitto mosquitto-clients
Läser paketlistor… Färdig
Bygger beroendeträd
Läser tillståndsinformation… Färdig
Några paket kunde inte installeras. Det kan betyda att du har begärt
en omöjlig situation eller, om du använder den instabila utgåvan
att några nödvändiga paket ännu inte har skapats eller flyttats
ut från ”Incoming”.
Följande information kan vara till hjälp för att lösa situationen:

Följande paket har beroenden som inte kan tillfredsställas:
mosquitto : Beroende av: libssl1.0.0 (>= 1.0.0) men det kan inte installeras
Beroende av: libwebsockets3 (>= 1.2) men det kan inte installeras
mosquitto-clients : Beroende av: libmosquitto1 (= 1.6.2-0mosquitto1~jessie1) men det kommer inte att installeras
E: Kunde inte korrigera problemen, du har hållit tillbaka trasiga paket.
--------------------------------------------------------------------------------------------------------------------------------------------------------------
Användarvisningsbild
maDa
Inlägg: 4076
Blev medlem: 11 november 2005, 22:13:16
Ort: Malmö
Kontakt:

Re: Install. MQTT o Node-Red på RPI, försök med "mqtt in" no

Inlägg av maDa »

Hmm.. Laggt till andra externa sources?

Prova kör "apt-get update && apt-get -y upgrade"
Drivmedel
Inlägg: 56
Blev medlem: 29 oktober 2011, 13:40:18
Ort: Lund Södra Sandby

Re: Install. MQTT o Node-Red på RPI, försök med "mqtt in" no

Inlägg av Drivmedel »

Tack.
Som amatör lyckades jag fortfarande inte.
Har rätt ssid, password och IPAddress så där är inte problemet och bara en ESP8266 modul.
Får detta svar vid försöket.
--------------------------------------
pi@Larspi3:~ $ sudo apt-get update && apt-get -y upgrade
Läs:1 http://archive.raspberrypi.org/debian stretch InRelease [25,4 kB]
Bra:2 http://raspbian.raspberrypi.org/raspbian stretch InRelease
Bra:3 https://repo.mosquitto.org/debian jessie InRelease
Bra:4 https://repo.mosquitto.org/debian stretch InRelease
Hämtade 25,4 kB på 1s (13,0 kB/s)
Läser paketlistor… Färdig
E: Kunde inte öppna låsfilen /var/lib/dpkg/lock - open (13: Åtkomst nekas)
E: Kunde inte låsa administrationskatalogen (/var/lib/dpkg/). Är du root?
pi@Larspi3:~ $
------------------------------------------------------------------------------------------------------------------------------------
För att göra ett test mot MQTT servern skapa jag en lyssnare på en valfri topic
Öppnade sen en SSH session i ny terminal för att skicka över text och detta funkar.

Men ESP8266 får ingen kontakt med MQTT servern.
Attempting MQTT connection...failed, rc=5 try again in 5 seconds
Attempting MQTT connection...failed, rc=5 try again in 5 seconds

Vad betyder "failed, rc=5" (5=client.state)

Tacksam för all hjälp.
Skriv svar