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

    #16
    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

    Kommentar


      #17
      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
      Jean-Luc Picard: "Things are only impossible until they are not."

      Kommentar


        #18
        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
        Jean-Luc Picard: "Things are only impossible until they are not."

        Kommentar


          #19
          was passiert denn wenn du node-red in der Kommandozeile startest?

          Kommentar


            #20
            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.
            Jean-Luc Picard: "Things are only impossible until they are not."

            Kommentar


              #21
              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.

              Kommentar


                #22
                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
                Jean-Luc Picard: "Things are only impossible until they are not."

                Kommentar


                  #23
                  okay, dann hast du das Paket vermutlich anders installiert als ich.
                  Aber gut wenns jetzt funktioniert.

                  Kommentar


                    #24
                    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?

                    Kommentar


                      #25
                      ja kann ich heute abend mal machen.
                      den mosquitto MQTT broker hast du schon laufen?

                      Kommentar


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

                        Kommentar


                          #27
                          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.

                          Kommentar


                            #28
                            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.

                            Kommentar


                              #29
                              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?

                              Kommentar


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

                                Kommentar

                                Lädt...
                                X