Synchroniseren van bestandsuploads tussen browservensters

Voor PiCockpit ben ik momenteel de Digital Nose app aan het ontwikkelen. Deze app vereist een upload voor het BSEC configuratiebestand - wat binaire data is. Zodra de gebruiker het bestand upload, wordt het gepubliceerd via MQTT, en picockpit-client kan het gebruiken om het BSEC AI algoritme te configureren om gasdetectie te doen. Hier is een beetje...

Weiterlesen

Hoe kan ik afbeeldingen herstellen voor een Shopify product dat je per ongeluk hebt overschreven met een CSV bestand?

Probleem: (verkeerde behandeling van CSV-bestanden) Gisteren wilde ik producten in bulk bewerken in Shopify, en de verkoper wijzigen. Ik gebruikte LibreOffice om alleen de rijen te selecteren met de leverancier erin, werkte deze bij, en uploadde alleen deze bijgewerkte rijen als een nieuwe CSV naar Shopify. Het resultaat was dat Shopify veel varianten liet vallen, en...

Weiterlesen

Vuetify :: Open detail rij programmatisch

Voor de aankomende PiCockpit v2.0 release, ben ik een GPIO applicatie aan het voorbereiden. De GPIO entries zijn tabel rijen - en om ze te configureren, willen we in staat zijn om de detail rij te openen door te klikken op de configureer knop: klikken op ofwel de chevron of de configureer knop zal leiden tot het openen van de detail rij: Hier...

Weiterlesen

in- en uitschakelen van een systemd service in Python met behulp van DBus

De komende picockpit-client reageert op verwijderingsgebeurtenissen van de frontend door zijn service uit te schakelen (de applicatie blijft echter wel geïnstalleerd). Op dezelfde manier, wanneer je beslist om picockpit-client connect opnieuw te starten, zal de service opnieuw ingeschakeld worden en automatisch voor je opgestart worden. Dit is mogelijk door gebruik te maken van de Python DBus interface. De DBus is een bussysteem voor interactie...

Weiterlesen

Hoe unieke object ids in te stellen in ingesloten documenten in een MongoDB collectie

updateMany van MongoDB kan gebruikt worden om alle documenten die overeenkomen bij te werken. Probleem Als, echter, je wilt unieke nieuwe ObjectID's in te stellen in uw update, zou je merken dat MongoDB stelt dezelfde ObjectID voor elk item: db.getCollection('mypis_collectedpis').updateMany({}, {$set: {apps: {"com.picockpit/core": {meta: {versie: "2.0", naam: "PiCockpit Core", image: "", description: "PiCockpit.com...

Weiterlesen

overschakelen van JSON naar MsgPack op een achterwaartse compatibele manier met Paho MQTT (JavaScript)

picockpit.com maakt veel gebruik van MQTT. Voor de komende versie 2.0 heb ik besloten om over te schakelen naar MsgPack. Waarom MsgPack? MsgPack (eigenlijk MessagePack genoemd - packages gebruiken meestal MsgPack) is een binair formaat, gericht op compatibiliteit met JSON, maar vermindert de bestandsgrootte (wat goed is voor het besparen van bandbreedte & server resources). Een ander voordeel:...

Weiterlesen

Omgaan met NIL in JSON::Any in Crystal Lang

Een van de uitdagingen bij het ontwikkelen met Crystal is dat het niet zo vergevingsgezind is met betrekking tot datatypes als, laten we zeggen, Python of Ruby. nil zal je bezig houden. De volgende foutmelding: cast from Nil to String failed, in /usr/share/crystal/src/json/any.cr:220:5:220 kan opgelost worden door: # cast naar string, DAN controleren of het nil is als...

Weiterlesen

Chromium exit code -5

Terwijl het uitvoeren van Chromium met chromium-browser -display=:0 https://www.picockpit.com u in staat stelt om Chromium te starten vanaf een SSH-verbinding (en het zal uitvoer geven naar het hoofdscherm in de X Server), zal dit mislukken wanneer u het probeert uit te voeren met subprocess.Popen in Python: "command": ["chromium-browser", "-display=:0", "https://picockpit.com"] (dit is een deel van het JSON formaat dat ik heb...

Weiterlesen

beveiligde commando uitvoering met Python: subprocess.Popen

Beveiliging is belangrijk voor mij tijdens het ontwikkelen van de picockpit-client. Het volgende is van toepassing op Linux systemen (maar is waarschijnlijk van toepassing op alle Unix-achtige systemen, inclusief macOS) Python maakt het mogelijk om externe commando's uit te voeren met behulp van de subprocess module. importeer subprocess In de komende versie van PiCockpit, zullen gebruikers in staat zijn om hun eigen knoppen te maken (gewoon bewerken...

Weiterlesen