Vuetify :: Aprire programmaticamente la riga di dettaglio

Per il prossimo rilascio di PiCockpit v2.0, sto preparando un'applicazione GPIO. Le voci GPIO sono righe di tabella - e per configurarle, vogliamo essere in grado di accedere alla riga di dettaglio cliccando sul pulsante di configurazione: cliccando o il chevron o il pulsante di configurazione si aprirà la riga di dettaglio: Qui...

Weiterlesen

abilitare e disabilitare un servizio systemd in Python usando DBus

Il prossimo picockpit-client reagisce agli eventi di cancellazione dal frontend disabilitando il suo servizio (l'applicazione rimarrà comunque installata). Allo stesso modo, quando decidi di eseguire di nuovo picockpit-client connect, il servizio sarà riabilitato e avviato automaticamente per te. Questo è possibile utilizzando l'interfaccia DBus di Python. il DBus è un sistema di bus per interagire...

Weiterlesen

Come impostare gli id unici degli oggetti nei documenti incorporati in una collezione MongoDB

L'updateMany di MongoDB può essere usato per aggiornare tutti i documenti che corrispondono. Problema Se, tuttavia, vuoi impostare nuovi ObjectID unici nel tuo aggiornamento, scopriresti che MongoDB imposta lo stesso ObjectID per ogni voce: db.getCollection('mypis_collectedpis').updateMany({}, {$set: {apps: { "com.picockpit/core": { meta: { version: "2.0", nome: "PiCockpit Core", immagine: "", descrizione: "PiCockpit.com...

Weiterlesen

passare da JSON a MsgPack in modo compatibile all'indietro con Paho MQTT (JavaScript)

picockpit.com fa largo uso di MQTT. Per la prossima versione 2.0 ho deciso di passare a MsgPack. Perché MsgPack? MsgPack (in realtà chiamato MessagePack - i pacchetti tendono ad usare MsgPack) è un formato binario, volto alla compatibilità con JSON, ma diminuendo la dimensione del file (il che è un bene per risparmiare banda e risorse del server). Un altro vantaggio:...

Weiterlesen

correzione di envoy per servire grandi file dal backend / timeout / download interrotti

I clienti si lamentavano di non essere in grado di scaricare grandi file dai nostri siti web (ad esempio PiDoctor su PiCockpit.com). Inizialmente non potevo replicare il problema localmente, i file sembravano scaricare bene. Dopo ulteriori indagini ho determinato che i download venivano interrotti dopo un certo tempo - a seconda della velocità di download, quindi,...

Weiterlesen

Trattare con NIL in JSON::Any in Crystal Lang

Una delle sfide quando si sviluppa con Crystal è che non è così indulgente sui tipi di dati come, diciamo, Python o Ruby. nil vi terrà occupati. Il seguente messaggio di errore: cast from Nil to String failed, at /usr/share/crystal/src/json/any.cr:220:5:220 può essere risolto da: # cast to string, poi controlla se è nil se...

Weiterlesen

Codice di uscita di Chromium -5

Mentre l'esecuzione di Chromium con chromium-browser -display=:0 https://www.picockpit.com vi permetterà di avviare Chromium da una connessione SSH (e l'output sul display principale nel server X), questo fallirà quando proverete a eseguirlo con subprocess.Popen in Python: "comando": ["chromium-browser", "-display=:0", "https://picockpit.com"] (questo è parte del formato JSON che ho...

Weiterlesen

esecuzione sicura dei comandi con Python: subprocess.Popen

La sicurezza è importante per me durante lo sviluppo di picockpit-client. Quanto segue si applica ai sistemi Linux (ma probabilmente è applicabile a tutti i sistemi Unix like, incluso macOS) Python permette di eseguire comandi esterni utilizzando il modulo subprocess. import subprocess Nella prossima versione di PiCockpit, gli utenti saranno in grado di creare i propri pulsanti (semplicemente...

Weiterlesen