Python Skript geschickt programmieren

Gast #5598431
Lesenswert?

Hallo,
ich habe mehrere Android Nano Boards, die über das Netzwerk 
MQTT-Nachrichten versenden. Als Empfänger gibt es ein Raspberry Pi, der 
mit folgendem python-Code alle Nachrichten empfangen soll:
1
import paho.mqtt.client as mqtt
2
def on_connect(client, userdata, flags, rc):
3
   client.subscribe("#")
4

5
def on_message(client, userdata, msg):
6
   print(msg.topic + " " + str(msg.payload))
7

8
client = mqtt.Client()
9
client.on_connect = on_connect
10
client.on_message = on_message
11

12
client.connect("localhost",1883,60)
13

14
client.loop_forever()

Dies funktioniert leider sehr, sehr unzuverlässig. Ich erhalte teilweise 
die Nachrichten, aber nicht von allen Boards. Von manchen gar nicht 
mehr, obwohl sie laufen und senden.

1.Was kann ich verbessern?
2.Wie ist der Code, überfordert der meinen Raspberry? Ich habe mehrere 
Python Skripte die parallel was auf meinem Raspberry überwachen sollen.
Gast #5598554
Lesenswert?

Ist die Architektur, dass der Raspi als Broker agiert und die ardu's 
sind Clients? Oder hab ich das falsch verstanden?

Was heißt Netzwerk?
Ethernet? W-LAN?

Habe mit meinem Raspi und MQTT 0 Probleme.
#5598684
Lesenswert?

Hallo,

Chris schrieb:
> Habe mit meinem Raspi und MQTT 0 Probleme.

Hier läuft Mosquitto als Broker auf dem RasPi-3, dazu FHEM und MPD 
sendet lokal einen ICECast-Stream, das lastet den RasPi im Durchschnitt 
mit 50% aus.
MQTT-Clients sind u.a. ca. 12 ESP8266, auch da geht nichts verloren 
solange das WLAN da ist. WLAN macht allerdings mein Kabel-Router, nicht 
der RasPi.

Gruß aus Berlin
Michael
#5598927
Lesenswert?

sunshineh schrieb:
> Hallo,
> ich habe mehrere Android Nano Boards,
kenn ich nicht - Link?
> die über das Netzwerk
> MQTT-Nachrichten versenden. Als Empfänger gibt es ein Raspberry Pi, der
> mit folgendem python-Code alle Nachrichten empfangen soll:
>
>
1
> ... snip
2
>
>
> Dies funktioniert leider sehr, sehr unzuverlässig. Ich erhalte teilweise
> die Nachrichten, aber nicht von allen Boards. Von manchen gar nicht
> mehr, obwohl sie laufen und senden.
Woher weißt du das die senden?
>
> 1.Was kann ich verbessern?
An dem was ich oben sehe nichts
> 2.Wie ist der Code, überfordert der meinen Raspberry?
was sagt denn die Prozessorauslastung? Bei sowas wie oben dreht der nur 
Däumchen.
> Ich habe mehrere
> Python Skripte die parallel was auf meinem Raspberry überwachen sollen.

Hast du mal mit einem Client auf dem PC geschaut ob die Nachrichten 
ankommen?

Sascha

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren