Ontwikkeling
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...
WeiterlesenHoe 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...
Weiterlesenoverschakelen 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:...
Weiterlesenenvoy fix voor het serveren van grote bestanden van de backend / timeouts / afgebroken downloads
Klanten klaagden over het niet kunnen downloaden van grote bestanden van onze websites (b.v. PiDoctor op PiCockpit.com). In eerste instantie kon ik het probleem niet lokaal repliceren, de bestanden leken goed te downloaden. Na verder onderzoek stelde ik vast dat de downloads na een bepaalde tijd afbraken - afhankelijk van uw download snelheid, dus,...
WeiterlesenOmgaan 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...
WeiterlesenChromium 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...
Weiterlesenbeveiligde 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...
WeiterlesenTermiShell: een webgebaseerde schil voor de Raspberry Pi (ontwikkelingsnota's)
Inleiding In de loop van de ontwikkeling van PiCockpit, ga ik een web-gebaseerde Terminal genaamd TermiShell toevoegen. TermiShell pictogram, door: Stephanie Harvey via unsplash.com TermiShell gaat het mogelijk maken om in te loggen op je Raspberry Pi met behulp van PiCockpit.com (en de picockpit-client) - geen extra applicatie nodig aan beide kanten. Dit zou zeer comfortabel moeten zijn,...
WeiterlesenAanmaken van configuratiebestanden in /etc in Debian pakketten
Ik werk momenteel aan een bijgewerkte picockpit-client versie, die bijkomende configuratiebestanden zou moeten toevoegen in /etc/picockpit-client voor de individuele modules (PiDoctor & PiControl). picockpit-client is een Raspbian package voor picockpit.com, die het Web platform koppelt met uw individuele Raspberry Pi. Aangezien Raspbian gebaseerd is op Debian, geldt de volgende informatie voor de algemene verpakking voor...
WeiterlesenEclipse Paho MQTT JavaScript Documentatie
Helaas linkt de officiële Eclipse pagina, die je gemakkelijk met Google kunt vinden, NIET naar de documentatie zelf (tenminste niet voor zover ik het kan zien). De link naar de documentatie zelf is deze: https://www.eclipse.org/paho/files/jsdoc/Paho.MQTT.Client.html Happy coding.
Weiterlesen