Posts by HaSch

    HaSch Du hast einen Denkfehler gemacht ;)

    Du füllst eine rote Kiste mit Geld (publish) , andere holen sich das Geld wieder aus der gleichen roten Kiste heraus (subscribe).

    Wenn niemand die andere blaue Kiste füllt -> bleibt sie leer.

    Funktioniert auch mit Bankkonten...

    Na ja, ich habe den Beispielsketch einfach übernommen. Dann verstehe ich nicht, warum das nicht schon eher aufgefallen ist. Ich probiere es morgen mal aus.

    Guten Abend in die Runde,

    ich habe eine Frage an die MQTT-Spezialisten.

    Ich versuche gerade mich einzuarbeiten und dabei fiel die Wahl auf den pubsubclient. Ich habe das Beispielprogramm geladen und auf einen D1mini geflasht. Der Übersichtlichkeit halber füge ich den leicht veränderten Code hier noch mal ein:

    Die IP-Adresse 192.168.1.12 ist der Mosquitto-Broker auf meinem Raspberry Pi, die Zeile mit if (client.connect(clientId.c_str())) habe ich ergänzt um einen User mit zugehörigem Passwort: if (client.connect(clientId.c_str(), "Test2", "uGgr54K@")) .

    Wenn der Sketch läuft, erscheinen auch munter Daten unter Topic "outTopic", allerdings scheint der Callback nicht zu funktionieren. Jedenfalls finde ich nirgendwo den Topic "inTopic" und inTopic wird offensichtlich auch nicht abonniert.

    Ist das ein Problem von Mosquitto? Kann mir jemand auf die Sprünge helfen?

    Gruß

    Hans

    Das Problem scheint ja die Zeile client.loop_forever() zu sein. Wenn ich die ersetze durch while True: und time.sleep(1) funktioniert es ja. Dann muss am Anfang des Scriptes natürlich noch Import time rein.

    Jetzt habe ich aber noch ein anderes Problem nämlich das mit dem Autostart. Das Script soll nur laufen, wenn auch Mosquitto läuft. Mosquitto wird mit mosquitto.service gestartet, das Script sieht so aus:

    Jetzt dachte ich dass es sinnvoll sei, den Start des Python Scriptes hier einzufügen. Dann ist ja sichergestellt, dass Mosquitto läuft. Lässt sich das bewerkstelligen? Was muss ich dafür wo hier einsetzen?

    Ergänzung:

    Sehe gerade, dass Mosquitto nach einem Neustart nicht mehr läuft, ich kann es auch nicht mehr neu starten. Was ist da los?

    OK, ihr müsst Geduld mit mir haben, ich bin absoluter Python Anfänger. Ich hatte dann offensichtlich einen Haufen Fehlermeldungen falsch interpretiert. Was bedeutet das hier?:

    Ich habe jetzt ein Python-Script auf demselben Pi installiert, auf dem auch Mosquitto läuft. Leider aber will das noch nicht so, wie ich das gerne möchte. Das Script holt die json-Daten ab, wandelt sie um und veröffentlich sie wieder unter einem anderen topic. Allerdings bekomme ich sie mit dem Yun nicht gelesen. Außerdem hängt sich das Script dauernd auf.


    Ein anderes Problem in diesem Zusammenhang ist noch, dass das Script scheinbar nicht automatisch startet, wenn der Pi hoch fährt. Ich habe dazu die /etc/rc.local geändert:

    chmod +x /home/pi/json-data.py

    sudo nano /etc/rc.local

    und dort eingefügt:

    python3 /home/pi/json-data.py &

    Das hilft aber nicht, wenn das Script hängt.

    Kommt drauf an, welche Prog-Sprache Du nutzen willst.

    Entweder "umwandeln" oder vielleicht besser nur die Werte, die Du wirklich brauchst, als Skalar auf jeweils eigenen Topics publischen.

    Bezüglich der Prog-Sprache bin ich offen, das was am einfachsten ist.

    "Nur die Werte" hört sich gut an, aber wie geht das als Skalar? Brauche da eine praktische Hilfestellung.

    Am liebsten wäre es mir, wenn das alles in Mosquitto selbst ablaufen könnte: Werte aus empfangenen JSON-Daten extrahieren und unter neuem Topic veröffentlichen.

    Ich habe auf einem RPi eine Mosquitto Installation auf der Daten von einer Wallbox ankommen. Die Daten landen dort als JSON Strings. Nun versuche ich ein Display mit einem Arduino Yun zu betreiben, auf dem die Daten abgeholt und dargestellt werden. Mit den Daten meines heimischen Smartmeters klappt das. Die Daten der Wallbox aber kann ich leider nicht abholen. Sie müssten auf dem Yun geparst werden und dafür hat er zu wenig Speicher.

    Nun hatte ich folgende Idee: Ich könnte ja über die Mosquitto Installation auf dem Raspberry Pi die Daten weiter schicken an einen anderen Topic von dem aus ich sie dann mit dem Yun abholen könnte. Dafür müssten die JSON Strings auf dem RPi geparst werden und die relevanten Daten unter einem anderen Topic publiziert werden. Hat das schon mal jemand gemacht? Wie fange ich das an?

    Ich glaube mittlerweile, dass avahi der Übeltäter ist. Avahi stellt ja den Bonjour Dienst bereit, durch den der Pi auf dem Mac sichtbar wird. Wenn ich nun 'avahi-browse -at' auf dem Pi eingebe, bekomme ich unter anderem für den betreffenden Pi mit dem Namen RPiSIX die Ausgabe:

    [font="Menlo"][font="Menlo"][font="Menlo"]+ wlan0 IPv6 RPiSIX Apple File Sharing local[/font][/font][/font]
    [font="Menlo"][font="Menlo"]+ wlan0 IPv4 RPiSIX Apple File Sharing local[/font][/font]
    [font="Menlo"]+ wlan0 IPv6 RPiSIX [xx:xx:xx:xx:xx:xx] Arbeitsplatzrechner local[/font]
    [font="Menlo"]+ wlan0 IPv4 RPiSIX [xx:xx:xx:xx:xx:xx] Arbeitsplatzrechner local[/font]

    während ich bei dem Pi mit dem Namen RPiTHREE, bei dem das mit der Schaltfläche funktioniert, folgende Information bekomme:

    [font="Menlo"][font="Menlo"][font="Menlo"]+ wlan0 IPv4 RPiTHREE Apple File Sharing local[/font][/font][/font]
    [font="Menlo"][font="Menlo"]+ wlan0 IPv4 RPiTHREE VNC Remote Access local[/font][/font]
    [font="Menlo"]+ wlan0 IPv4 RPiTHREE Remote Disk Management local[/font]
    [font="Menlo"]+ wlan0 IPv4 RPiTHREE [yy:yy:yy:yy:yy:yy] Arbeitsplatzrechner local[/font]

    [font="Menlo"]Auf RPiSIX wird also VNC Remote Access und Remote Disk Management nicht über Bonjour angeboten. Kann man das bei Avahi irgendwie einstellen dass das zur Verfügung gestellt wird? Ich habe im INet immer nur die Standard Installation bzw. den Standard Start von Avahi gefunden, bei dem man nichts einstellen kann.
    [/font]

    So, jetzt habe ich noch einmal RealVNC deinstalliert und TightVNC installiert. Jetzt klappt es immerhin so, dass ich mich auf dem Mac im Finder über Gehe zu -> Mit Server verbinden... mit dem RPi verbinden kann und den Desktop angezeigt bekomme. Allerdings nur so, die Schaltfläche "Bildschirmfreigabe fehlt nach wie vor. Irgend etwas ist bei der Jessie-Installation anders als bei Wheezy. Ich versuche mal zwei Bilder anzuhängen:

    Edit: Wunderbar, jetzt klappt das auch mit den Bildern ohne einen Link zu einem externen Hoster, als Attachment.