Da schon öfters Fragen kamen, versuche ich hier den aktuellen Stand zusammenzufassen:
- die Grundaufbau von DoorPi läuft in der neuen Struktur (siehe Beispiel hier: https://github.com/motom001/WorkLikeACompany)
- Config ist auf JSON umgestellt und wird damit wesentlich flexibler
- Module-Dokumentation ist jetzt als Quellcode umgesetzt
- Interface-Basis-Klasse steht und funktioniert
- erste Interfaces sind ebenfalls abgebildet (doorpi.plugins.interfaces.web.webservice und doorpi.plugins.interfaces.communication.telegram.bot)
- alles unter Windows10 lauffähig (macht die Entwicklung einfach schneller und komfortabler)
- Python 2 und 3 kompatibel (bisher)
Noch offen:
- Webinterface anpassen und Wizards zur Erstellung und Konfiguration der Interfaces auf Basis der vorliegenden Doku (30%)
- Interface doorpi.plugins.interfaces.hardware.gpio (aktuell 95%)
- Interface doorpi.plugins.interfaces.software.filesystem.watchdog (aktuell 60%)
- Interface doorpi.plugins.interfaces.hardware.spi.piface (aktuell 0%)
- Interface doorpi.plugins.interfaces.sipphone.linphone (aktuell 20%)
- und viele weitere Sachen...
Ich vermute, dass ich Mitte / Ende Juni ein erstes lauffähiges Release habe.
Der große Vorteil der neuen Grundstruktur:
Bisher läuft DoorPi als einzelner Prozess und baut einen Thread für den event_handler auf. Sobald Events eintreffen wird jeweils ein neuer Thread gestartet. Es gibt keine Priorisierung, kein TimeOut und keine Bedingungen unter den das Events weiter ausgeführt wird. Auch die Aktionen hinter diesem Event sind starr und seriell.
Der neue DoorPi Unterbau nutzt eine Queue und ständig bereit stehende Threads (aktuell bei mir 25). Jeder dieser Threads wartet auf neue Nachrichten in der Queue und nimmt sich die Nachricht mit der höhsten Priorität als erstes. Dann wird es ein wenig kompliziert und es können aus diesem Event n-verschiedene Aktionen (je nachdem was alles gemacht werden soll) werden, die jede für sich auch in der Queue laden. So dreht sich das Ganze bis alle Nachrichten aus der Queue abgearbeitet sind.
Als Anlage ein kleiner Screenshot, wenn sich DoorPi per Telegram meldet