Synchronisation des téléchargements de fichiers entre les fenêtres du navigateur

Pour PiCockpit, je développe actuellement l'application Digital Nose. Cette application nécessite un téléchargement pour le fichier de configuration BSEC - qui est une donnée binaire. Une fois que l'utilisateur a téléchargé le fichier, il est publié via MQTT, et picockpit-client peut l'utiliser pour configurer l'algorithme BSEC AI pour faire la détection de gaz. Voici un petit...

Weiterlesen

Comment restaurer les images d'un produit Shopify que vous avez écrasé accidentellement par un fichier CSV ?

Problème : (mauvaise manipulation des fichiers CSV) Hier, j'ai voulu modifier en bloc des produits dans Shopify, et changer le vendeur. J'ai utilisé LibreOffice pour sélectionner uniquement les lignes contenant le fournisseur, les mettre à jour, et télécharger uniquement ces lignes mises à jour dans un nouveau CSV vers Shopify. Le résultat est que Shopify a laissé tomber de nombreuses variantes, et...

Weiterlesen

Vuetify : : Ouvrir une ligne de détail de manière programmatique

Pour la prochaine version de PiCockpit v2.0, je prépare une application GPIO. Les entrées GPIO sont des lignes de table - et pour les configurer, nous voulons pouvoir accéder à la ligne de détail en cliquant sur le bouton configurer : cliquer soit sur le chevron soit sur le bouton configurer conduira à l'ouverture de la ligne de détail : Ici...

Weiterlesen

activer et désactiver un service systemd en Python en utilisant DBus

Le prochain picockpit-client réagit aux événements de suppression du frontend en désactivant son service (l'application restera cependant installée). De même, lorsque vous déciderez de lancer picockpit-client connect à nouveau, le service sera réactivé et démarré automatiquement pour vous. Ceci est possible en utilisant l'interface Python DBus. Le DBus est un système de bus pour interagir...

Weiterlesen

Comment définir des identifiants d'objet uniques dans les documents intégrés à une collection MongoDB ?

La fonction updateMany de MongoDB peut être utilisée pour mettre à jour tous les documents qui correspondent. Problème Si, toutefois, vous souhaitez définir de nouveaux ObjectID uniques dans votre mise à jour, vous constaterez que MongoDB définit le même ObjectID pour chaque entrée : db.getCollection('mypis_collectedpis').updateMany({}, {$set : {apps : { "com.picockpit/core" : { meta : { version : "2.0", nom : "PiCockpit Core", image : "", description : "PiCockpit.com...

Weiterlesen

passage de JSON à MsgPack de manière rétrocompatible avec Paho MQTT (JavaScript)

picockpit.com fait un usage intensif de MQTT. Pour la prochaine version 2.0, j'ai décidé de passer à MsgPack. Pourquoi MsgPack ? MsgPack (en fait appelé MessagePack - les paquets ont tendance à utiliser MsgPack) est un format binaire, visant à la compatibilité avec JSON, mais diminuant la taille du fichier (ce qui est bon pour économiser la bande passante et les ressources du serveur). Autre avantage :...

Weiterlesen

correction de l'envoi de gros fichiers depuis le backend / délais d'attente / téléchargements interrompus

Des clients se plaignaient de ne pas pouvoir télécharger de gros fichiers à partir de nos sites Web (par exemple, PiDoctor sur PiCockpit.com). Au départ, je n'ai pas pu reproduire le problème localement, les fichiers semblaient se télécharger correctement. Après une enquête plus approfondie, j'ai déterminé que les téléchargements s'interrompaient après un certain temps - en fonction de votre vitesse de téléchargement, donc...

Weiterlesen

Traitement de NIL dans JSON::Any en Crystal Lang

L'un des défis du développement avec Crystal est qu'il ne pardonne pas autant les types de données que, par exemple, Python ou Ruby. nil vous occupera. Le message d'erreur suivant : cast from Nil to String failed, at /usr/share/crystal/src/json/any.cr:220:5:220 peut être résolu par : # cast to string, THEN check if it is nil if...

Weiterlesen

Code de sortie Chromium -5

Alors que l'exécution de Chromium avec chromium-browser -display=:0 https://www.picockpit.com vous permettra de démarrer Chromium à partir d'une connexion SSH (et il s'affichera sur l'écran principal du serveur X), cela échouera si vous essayez de l'exécuter avec subprocess.Popen en Python : "command" : ["chromium-browser", "-display=:0", "https://picockpit.com"] (ceci est une partie du format JSON que j'ai...

Weiterlesen

exécution sécurisée des commandes avec Python : subprocess.Popen

La sécurité est importante pour moi lors du développement du picockpit-client. Ce qui suit s'applique aux systèmes Linux (mais est probablement applicable à tous les systèmes de type Unix, y compris macOS) Python permet d'exécuter des commandes externes en utilisant le module subprocess. import subprocess Dans la prochaine version de PiCockpit, les utilisateurs pourront créer leurs propres boutons (en éditant simplement...

Weiterlesen