Aller au contenu

Installer un client MQTT sur mon Syno. Des pistes ?


declencher

Messages recommandés

Salut,

J'ai aussi node-red dans un docker. L'idée serait donc de lancer le script directement dans nodered puis de le push sur mqtt.

Je vais voir si je peux déposer un binaire sur node-red (le binaire de speedtest), pour qu'ensuite un script l'exécute, toujours dans node-red...

Sauf erreur, mon docker ne peut pas voir les fichiers du NAS citué hors du conteneur ?

Lien vers le commentaire
Partager sur d’autres sites

 

@declencher

Oui, tu peut mettre différent dossiers partagé en accessibilité sur docker, voir docker/conteneur/double clique sur le conteneur/volume 😉

exemple trouvé sur le net
 

version: "3.8"
services:
  vpn:
    container_name: vpn
    image: dperson/openvpn-client:latest
    cap_add:
      - net_admin # gives docker admin rights to amend network settings
    devices:
      - /dev/net/tun #points to the tun device created by the syno VPN package
    volumes:
      - /volume1/docker/vpn:/vpn #The location of our config files
    security_opt:
      - label:disable
    environment:
      OPENVPN_OPTS: '--mute-replay-warnings'
      DNS: --9.9.9.9 #quad9 DNS this is to help avoid connection issues
    ports: #uncomment ports below for additional applications
#      - 8112:8112 # port for deluge remove the # to use
      - 9696:9696 # port for prowlarr remove the # to use
      - 8090:8090 # port for qbittorrent
    command: '-f "" -r "192.168.0.0/24"' # amend this in line with your local network settings
    network_mode: synobridge
    restart: unless-stopped
      
  qbittorrent:
    image: linuxserver/qbittorrent:latest
    container_name: qbittorrent
    environment:
      - PUID=YOURPUID
      - PGID=YOURPGID
      - TZ=YOURTIMEZONE
      - WEBUI_PORT=8090
    volumes:
      - /volume1/docker/qbittorrent:/config
      - /volume1/data/torrents:/data/torrents
    network_mode: service:vpn # run on the vpn network
    depends_on:
      - vpn
    restart: unless-stopped

  linuxserver-prowlarr:
    image: linuxserver/prowlarr:develop
    container_name: prowlarr
    environment:
      - PUID=YOURPUID
      - PGID=YOURPGID
      - TZ=YOURTIMEZONE
    volumes:
      - /volume1/docker/prowlarr:/config
    network_mode: service:vpn # run on the vpn network
    depends_on:
      - vpn
    restart: unless-stopped

volumes:
      - /volume1/docker/qbittorrent:/config
      - /volume1/data/torrents:/data/torrents

https://drfrankenstein.co.uk/2022/05/11/qbittorrent-with-openvpn-in-docker-on-a-synology-nas/

Modifié par bliz
Lien vers le commentaire
Partager sur d’autres sites

@declencher Tu n'as pas à ajouter des binaires à un conteneur existant, c'est une mauvaise pratique, c’est contraire à la philosophie de Docker. La bonne façon de faire c’est soit de créer des conteneurs séparés, soit de tout mettre dans une VM.

Tu peux même utiliser les volumes internes Docker pour rendre les données disponibles d'un conteneur à l'autre.

Lien vers le commentaire
Partager sur d’autres sites

J'ai monté un volume, et via ssh, je vois qu'il est bien monté. Mon problème est plus basique maintenant : quelle ligne de commande donné à nodered.
Habituellement je vais dans le répertoire contenant le programme, puis je fais ./monProgramme

Nodered ne permettant que la saisie d'une commande, j'ai tenté "./cheminComplet/monProgramme", mais aucune exécution se produit. Et en ligne de commande via ssh, c'est pareil.

Mon linux est rouillé 🙂

@PiwiLAbruti

il y a 35 minutes, PiwiLAbruti a dit :

Sinon il y a Mosquitto qui contient un client MQTT (mosquitto_pub:

https://synocommunity.com/package/mosquitto

Ayant déjà Mosquitto dans un conteneur, je tenté d'éviter une 2ème installation 😅

Edit : Question idiote, il suffisait d'enlever le "." dans la commande 😊

Modifié par declencher
Lien vers le commentaire
Partager sur d’autres sites

Je confirme, chez moi il y est (dans mon conteneur mosquitto pour ma domotique) :

/ # mosquitto_sub --help
mosquitto_sub is a simple mqtt client that will subscribe to a set of topics and print all messages it receives.
mosquitto_sub version 2.0.15 running on libmosquitto 2.0.15.

Usage: mosquitto_sub {[-h host] [--unix path] [-p port] [-u username] [-P password] -t topic | -L URL [-t topic]}
                     [-c] [-k keepalive] [-q qos] [-x session-expiry-interval]
                     [-C msg_count] [-E] [-R] [--retained-only] [--remove-retained] [-T filter_out] [-U topic ...]
                     [-F format]
                     [-W timeout_secs]
                     [-A bind_address] [--nodelay]
                     [-i id] [-I id_prefix]
                     [-d] [-N] [--quiet] [-v]
                     [--will-topic [--will-payload payload] [--will-qos qos] [--will-retain]]
                     [{--cafile file | --capath dir} [--cert file] [--key file]
                       [--ciphers ciphers] [--insecure]
                       [--tls-alpn protocol]
                       [--tls-engine engine] [--keyform keyform] [--tls-engine-kpass-sha1]]
                       [--tls-use-os-certs]
                     [--proxy socks-url]
                     [-D command identifier value]
       mosquitto_sub --help

 -A : bind the outgoing socket to this host/ip address. Use to control which interface
      the client communicates over.
 -c : disable clean session/enable persistent client mode
      When this argument is used, the broker will be instructed not to clean existing sessions
      for the same client id when the client connects, and sessions will never expire when the
      client disconnects. MQTT v5 clients can change their session expiry interval with the -x
      argument.
 -C : disconnect and exit after receiving the 'msg_count' messages.
 -d : enable debug messages.
 -D : Define MQTT v5 properties. See the documentation for more details.
 -E : Exit once all subscriptions have been acknowledged by the broker.
 -F : output format.
 -h : mqtt host to connect to. Defaults to localhost.
 -i : id to use for this client. Defaults to mosquitto_sub_ appended with the process id.
 -I : define the client id as id_prefix appended with the process id. Useful for when the
      broker is using the clientid_prefixes option.
 -k : keep alive in seconds for this client. Defaults to 60.
 -L : specify user, password, hostname, port and topic as a URL in the form:
      mqtt(s)://[username[:password]@]host[:port]/topic
 -N : do not add an end of line character when printing the payload.
 -p : network port to connect to. Defaults to 1883 for plain MQTT and 8883 for MQTT over TLS.
 -P : provide a password
 -q : quality of service level to use for the subscription. Defaults to 0.
 -R : do not print stale messages (those with retain set).
 -t : mqtt topic to subscribe to. May be repeated multiple times.
 -T : topic string to filter out of results. May be repeated.
 -u : provide a username
 -U : unsubscribe from a topic. May be repeated.
 -v : print published messages verbosely.
 -V : specify the version of the MQTT protocol to use when connecting.
      Can be mqttv5, mqttv311 or mqttv31. Defaults to mqttv311.
 -W : Specifies a timeout in seconds how long to process incoming MQTT messages.
 -x : Set the session-expiry-interval property on the CONNECT packet. Applies to MQTT v5
      clients only. Set to 0-4294967294 to specify the session will expire in that many
      seconds after the client disconnects, or use -1, 4294967295, or ∞ for a session
      that does not expire. Defaults to -1 if -c is also given, or 0 if -c not given.
 --help : display this message.
 --nodelay : disable Nagle's algorithm, to reduce socket sending latency at the possible
             expense of more packets being sent.
 --pretty : print formatted output rather than minimised output when using the
            JSON output format option.
 --quiet : don't print error messages.
 --random-filter : only print a percentage of received messages. Set to 100 to have all
                   messages printed, 50.0 to have half of the messages received on average
                   printed, and so on.
 --retained-only : only handle messages with the retained flag set, and exit when the
                   first non-retained message is received.
 --remove-retained : send a message to the server to clear any received retained messages
                     Use -T to filter out messages you do not want to be cleared.
 --unix : connect to a broker through a unix domain socket instead of a TCP socket,
          e.g. /tmp/mosquitto.sock
 --will-payload : payload for the client Will, which is sent by the broker in case of
                  unexpected disconnection. If not given and will-topic is set, a zero
                  length message will be sent.
 --will-qos : QoS level for the client Will.
 --will-retain : if given, make the client Will retained.
 --will-topic : the topic on which to publish the client Will.
 --cafile : path to a file containing trusted CA certificates to enable encrypted
            certificate based communication.
 --capath : path to a directory containing trusted CA certificates to enable encrypted
            communication.
 --cert : client certificate for authentication, if required by server.
 --key : client private key for authentication, if required by server.
 --keyform : keyfile type, can be either "pem" or "engine".
 --ciphers : openssl compatible list of TLS ciphers to support.
 --tls-version : TLS protocol version, can be one of tlsv1.3 tlsv1.2 or tlsv1.1.
                 Defaults to tlsv1.2 if available.
 --insecure : do not check that the server certificate hostname matches the remote
              hostname. Using this option means that you cannot be sure that the
              remote host is the server you wish to connect to and so is insecure.
              Do not use this option in a production environment.
 --tls-engine : If set, enables the use of a SSL engine device.
 --tls-engine-kpass-sha1 : SHA1 of the key password to be used with the selected SSL engine.
 --tls-use-os-certs : Load and trust OS provided CA certificates.
 --proxy : SOCKS5 proxy URL of the form:
           socks5h://[username[:password]@]hostname[:port]
           Only "none" and "username" authentication is supported.

See https://mosquitto.org/ for more information.

Et un site qui reprend les syntaxes concernant les fonctions de mosquitto : http://www.steves-internet-guide.com/mosquitto_pub-sub-clients/

Lien vers le commentaire
Partager sur d’autres sites

Je comprends mais mon mosquitto est dans un conteneur, et mon script sur l'os du Syno. Et nodered sur un autre conteneur 😅 Il y aurait moyen d'y arriver ? 

J'ai touché au but avec nodered dans son conteneur, un volume monté spécialement contenant le programme speed test : nodered exécute toutes les 15min et publie sur mqtt. Home assistant récupère, historise en local, historise sur influxdb et restitue.

Lien vers le commentaire
Partager sur d’autres sites

Rejoindre la conversation

Vous pouvez publier maintenant et vous inscrire plus tard. Si vous avez un compte, connectez-vous maintenant pour publier avec votre compte.

Invité
Répondre à ce sujet…

×   Collé en tant que texte enrichi.   Coller en tant que texte brut à la place

  Seulement 75 émoticônes maximum sont autorisées.

×   Votre lien a été automatiquement intégré.   Afficher plutôt comme un lien

×   Votre contenu précédent a été rétabli.   Vider l’éditeur

×   Vous ne pouvez pas directement coller des images. Envoyez-les depuis votre ordinateur ou insérez-les depuis une URL.

×
×
  • Créer...

Information importante

Nous avons placé des cookies sur votre appareil pour aider à améliorer ce site. Vous pouvez choisir d’ajuster vos paramètres de cookie, sinon nous supposerons que vous êtes d’accord pour continuer.