Ankündigung

Einklappen
Keine Ankündigung bisher.

MQTT API Server und MQTT Clients - LBS19001051 - LBS19001054

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • jonofe
    antwortet
    mit dem mosquitto_passwd Befehl ... siehe oben in der Anleitung.
    Die IP muss dann natürlich die IP des RPi sein.

    Einen Kommentar schreiben:


  • hx5
    antwortet
    Danke für die umfangreiche Anleitung.

    Hätte den Mosquitto bereits auf meinem Raspberry installiert. Hab in konfiguriert wie du beschrieben hast und er läuft auch.

    Allerdings erhalte ich noch keine Rückmeldung (vom LBS und Busmonitor) auf den mospuitto_pub Befehl.

    Wo wird den der Benutzername festgelegt? Bzw. wie finde ich raus wie der auf dem Raspberry ist?

    Einen Kommentar schreiben:


  • jonofe
    antwortet
    Hier noch mal die Installationsanleitung für den Mosquitto MQTT Broker auf dem EDOMI Server. Dies setzt voraus, dass die Installation der LBS auf dem EDOMI Server bereits gemäß Anleitung im LBS erfolgt ist. Nur dann kann folgende Installation erfolgreich ablaufen:

    Code:
    yum -y  install mosquitto
    mkdir /var/log/mosquitto
    chown mosquitto:mosquitto /var/log/mosquitto
    Hier mein /etc/mosquitto/mosquitto.conf Konfigurationsfile:

    Code:
    pid_file /var/run/mosquitto.pid
    log_dest file /var/log/mosquitto/mosquitto.log
    listener 1883
    persistence true
    persistence_location /var/lib/mosquitto/
    persistence_file mosquitto.db
    log_dest syslog
    log_dest stdout
    log_dest topic
    log_type all
    connection_messages true
    log_timestamp true
    allow_anonymous false
    password_file /etc/mosquitto/pwfile
    Danach kann mit

    Code:
    mosquitto_passwd -c /etc/mosquitto/pwfile edomi
    ein Passwort für den User 'edomi' angelegt werden und Mosquitto neu gestartett werden:

    Code:
    /etc/init.d/mosquitto restart
    Jetzt ist der Mosquitto Broker einsatzfähig und man kann die LBS entsprechend konfigurieren mit IP (IP des Mosquitto Servers), Port (1883), User (edomi), Password (wie gerade festgelegt).

    In EDOMI kann MQTT nun wie folgt konfiguriert werden:

    Screenshot from 2017-05-20 20-37-15.png
    Zunächst sollte der Subscribe und Publish Server ausreichen (die oberen beiden LBS).

    Publish Server:
    E1: 1
    E2: Broker IP: <EDOMI IP>
    E3: Broker Port: 1883
    E4: Broker User: edomi
    E5: Broker Password: <so wie oben gewählt>
    E6: Plain Filter: <leer>
    E7: RegExp Filter: <leer>
    E8: Structure: both
    E9: QoS: 1
    E10: Retain: 1
    E11: Loglevel: 8

    Subscribe Server:
    E1-E7: wie beim Publish Server
    E8: QoS: 1
    E9: Retain: 1
    E10: Loglevel: 8

    QoS/Retain sind nur für die Last Will & Testament Message (edomi/status), welche vom Broker an alle subscribten Clients gesendet wird, wenn die Verbindung zum Subscribe Server LBS abreißt.

    Dann Projekt neu aktivieren und schon sollte im Logfile des Mosquitto Brokers eine Menge los sein:

    Code:
    tail -f /var/log/mosquitto/mosquitto.log
    Des weiteren kann der Empfang von MQTT wie folgt getestetet werden. Auf dem EDOMI Server folgenden Befehl ausführen:

    Code:
    mosquitto_pub -h <IP-Mosquitto-Server> -u edomi -P <password> -t edomi/set/knx/[COLOR=#0000CD][B]x-y-z[/B][/COLOR] -m [COLOR=#0000CD][B]###[/B][/COLOR]
    x-y-z steht für eine KNX GA und ### für einen Wert der dieser GA zugeordnet werden soll.

    Einen Kommentar schreiben:


  • jonofe
    antwortet
    Meinst du die Anleitung aus der Hilfe?
    Die installiert nur mosquitto-php, welches vom LBS verwendet wird.
    Zusätzlich benötigst du irgendwo in deinem Netzwert den Mosquitto MQTT Broker. Das hatte ich in der Anleitung in dem Thread von Nanosonde beschrieben.

    Einen Kommentar schreiben:


  • hx5
    antwortet
    Ich bin deiner Anleitung aus der Hilfe gefolgt also denke ich ja . Werd heute Abend aber mal prüfen ins auch geklappt hat...

    Einen Kommentar schreiben:


  • jonofe
    antwortet
    ja kann ich heute abend mal machen.
    den mosquitto MQTT broker hast du schon laufen?

    Einen Kommentar schreiben:


  • hx5
    antwortet
    Hallo jonofe

    vielen dank für deine Antwort hier.

    Hättest du vielleicht mal einen Screenshot von einer Beispielkonfig?
    Ich hatte leider noch nie Berührungspunkte mit MQTT.

    Ist die IP des Broker die von EDOMI (/wo ich mosquitto installiert habe)?
    Muss ich Benutzer und/oder Passwort zwingend angeben?

    Einen Kommentar schreiben:


  • jonofe
    antwortet
    okay, dann hast du das Paket vermutlich anders installiert als ich.
    Aber gut wenns jetzt funktioniert.

    Einen Kommentar schreiben:


  • trollmar
    antwortet
    Thx Jonofe für die Hilfe!!!!!!!

    Ich hab das Problem gefunden.

    [Unit]

    Description=Node-RED

    After=syslog.target network.target




    [Service]

    ExecStart=/usr/local/bin/node-red -v

    Restart=on-failure

    KillSignal=SIGINT




    # log output to syslog as 'node-red'

    SyslogIdentifier=node-red

    StandardOutput=syslog




    # non-root user to run as

    WorkingDirectory=/home/node-red/

    User=node-red

    Group=node-red




    [Install]

    WantedBy=multi-user.target
    Bei mir ist der Pfad von Node-Red ein anderer.
    Hab mal im .service script das was ich geändert habe grün markiert.

    Der Befehl
    which node-red
    hatte folgendes mitgeteilt

    /usr/local/bin/node-red

    Einen Kommentar schreiben:


  • jonofe
    antwortet
    Hast du mal einen neuen User 'node-red' angelegt und die Startdatei entsprechend angepasst? nur um auszuschließen, dass es irgendein Berechtigungsproblem ist.
    Wenn du node-red als root gestartet hast, dann kann das leicht mal passieren.

    Einen Kommentar schreiben:


  • trollmar
    antwortet
    Zitat von jonofe Beitrag anzeigen
    was passiert denn wenn du node-red in der Kommandozeile startest?
    xxxx@ubuntu-LTS-NodeRED-MQTT:/usr/local/bin$ node-red

    20 May 14:23:58 - [info]




    Welcome to Node-RED

    ===================




    20 May 14:23:58 - [info] Node-RED version: v0.16.2

    20 May 14:23:58 - [info] Node.js version: v4.2.6

    20 May 14:23:58 - [info] Linux 4.4.0-78-generic x64 LE

    20 May 14:24:00 - [info] Loading palette nodes

    20 May 14:24:08 - [warn] ------------------------------------------------------

    20 May 14:24:08 - [warn] [rpi-gpio] Info : Ignoring Raspberry Pi specific node

    20 May 14:24:08 - [warn] ------------------------------------------------------

    20 May 14:24:08 - [info] Settings file : /home/xxxx/.node-red/settings.js

    20 May 14:24:08 - [info] User directory : /home/xxxx/.node-red

    20 May 14:24:08 - [info] Flows file : /home/xxxx/.node-red/flows_ubuntu-LTS-NodeRED-MQTT.json

    20 May 14:24:08 - [info] Creating new flow file

    20 May 14:24:08 - [info] Starting flows

    20 May 14:24:08 - [info] Started flows

    20 May 14:24:08 - [info] Server now running at http://127.0.0.1:1880/
    läuft!

    Das einzigste was ich nach der iso install von 16.04 LTS gemacht habe ist ein disto-upgrade.

    Einen Kommentar schreiben:


  • jonofe
    antwortet
    was passiert denn wenn du node-red in der Kommandozeile startest?

    Einen Kommentar schreiben:


  • trollmar
    antwortet
    Zitat von jonofe Beitrag anzeigen

    Bei mir funktioniert es wie folgt. Ich habe mal ganz vorn bei der Installation angefangen. Vielleicht hilft das ja anderen dann auch noch.
    Das funktioniert natürlich wie erwähnt nur auf Ubuntu (ggf. mit kleinen Anpassungen auf dem RPi), nicht aber auf CentOS (EDOMI-Server).

    Code:
    # Install Node.JS
    sudo apt-get install nodejs-legacy
    
    #Install node package manage
    sudo apt-get install npm
    
    # Install Node-Red
    sudo npm install -g --unsafe-perm node-red node-red-admin
    
    # Open firewall for node-red
    sudo ufw allow 1880
    
    # add a node-red user
    sudo adduser -q node-red
    
    # Create start script
    sudo nano /etc/systemd/system/node-red.service
    
    [COLOR=#0000CD][I][Unit]
    Description=Node-RED
    After=syslog.target network.target
    
    [Service]
    ExecStart=/usr/bin/node-red -v
    Restart=on-failure
    KillSignal=SIGINT
    
    # log output to syslog as 'node-red'
    SyslogIdentifier=node-red
    StandardOutput=syslog
    
    # non-root user to run as
    WorkingDirectory=/home/node-red/
    User=node-red
    Group=node-red
    
    [Install]
    WantedBy=multi-user.target[/I][/COLOR]
    
    sudo systemctl enable node-red
    
    sudo systemctl daemon-reload
    
    sudo systemctl start node-red

    Hi,

    habs genauso gemacht wie du beschrieben hast.
    Habe aber das gleiche problem wie vorher.
    Bei ...

    sudo systemctl status node-red

    ● node-red.service - Node-RED

    Loaded: loaded (/etc/systemd/system/node-red.service; enabled; vendor preset: enabled)

    Active: inactive (dead) (Result: exit-code) since Sa 2017-05-20 13:59:04 CEST; 10s ago

    Process: 1282 ExecStart=/usr/bin/node-red -v (code=exited, status=203/EXEC)

    Main PID: 1282 (code=exited, status=203/EXEC)




    Mai 20 13:59:04 ubuntu-LTS-NodeRED-MQTT systemd[1]: node-red.service: Unit entered failed state.

    Mai 20 13:59:04 ubuntu-LTS-NodeRED-MQTT systemd[1]: node-red.service: Failed with result 'exit-code'.

    Mai 20 13:59:04 ubuntu-LTS-NodeRED-MQTT systemd[1]: node-red.service: Service hold-off time over, scheduling restart.

    Mai 20 13:59:04 ubuntu-LTS-NodeRED-MQTT systemd[1]: Stopped Node-RED.

    Mai 20 13:59:04 ubuntu-LTS-NodeRED-MQTT systemd[1]: node-red.service: Start request repeated too quickly.

    Mai 20 13:59:04 ubuntu-LTS-NodeRED-MQTT systemd[1]: Failed to start Node-RED.

    System hatte ich extra nochmal frisch ausgesetzt.
    Verdammt

    Bevor ich den LBS einstzten kann muss node-red auch laufen

    Einen Kommentar schreiben:


  • trollmar
    antwortet
    Thx jonofe.

    ​​​​​​.. Mmh hab ich bis auf die Installation von node.js und node-red auch so probiert.
    Naja der Fehler liegt wie immer im Detail.

    Werde es nochmal genau so machen wie du es oben gemacht hast.

    ​​​​​​Kann übrigens berichten das ich bereits erfolgreich ein "Hallo Welt" mit dem Server subscriber empfangen habe

    Einen Kommentar schreiben:


  • jonofe
    antwortet
    Zitat von trollmar Beitrag anzeigen
    ​​@jonofe

    Bekomme node-red unter Ubuntu 16.04 lts einfach nicht dazu bei reboot zu starten via SystemD. Klappt das bei dir?
    ​​​​​​
    ​​
    Bei mir funktioniert es wie folgt. Ich habe mal ganz vorn bei der Installation angefangen. Vielleicht hilft das ja anderen dann auch noch.
    Das funktioniert natürlich wie erwähnt nur auf Ubuntu (ggf. mit kleinen Anpassungen auf dem RPi), nicht aber auf CentOS (EDOMI-Server).

    Code:
    # Install Node.JS
    sudo apt-get install nodejs-legacy
    
    #Install node package manage
    sudo apt-get install npm
    
    # Install Node-Red
    sudo npm install -g --unsafe-perm node-red node-red-admin
    
    # Open firewall for node-red
    sudo ufw allow 1880
    
    # add a node-red user
    sudo adduser -q node-red
    
    # Create start script
    sudo nano /etc/systemd/system/node-red.service    
    
    [COLOR=#0000CD][I][Unit]
    Description=Node-RED
    After=syslog.target network.target
    
    [Service]
    ExecStart=/usr/bin/node-red -v
    Restart=on-failure
    KillSignal=SIGINT
    
    # log output to syslog as 'node-red'
    SyslogIdentifier=node-red
    StandardOutput=syslog
    
    # non-root user to run as
    WorkingDirectory=/home/node-red/
    User=node-red
    Group=node-red
    
    [Install]
    WantedBy=multi-user.target[/I][/COLOR]
    
    sudo systemctl enable node-red
    
    sudo systemctl daemon-reload
    
    sudo systemctl start node-red

    Einen Kommentar schreiben:

Lädt...
X