Version 2.2.3

    • Version 2.2.3

      Da die Version 2.2.3 noch einmal größere Änderungen enthält will ich hier noch einen kurzen Entwicklungsstand geben.

      Wie ihr vielleicht schon gelesen habt wird das RWF Framework jetzt auf Redis umgestellt. Das bedeutet das für jede App Redis installiert werden muss (auch für das PCC), das gilt aber nur für die Weboberflächen. Die Kommandozeilen Tools (Schaltserver und Sensortransmitter) laufen weiterhin ohne Redis.

      Da es immer wieder Probleme beim Update mit den XML Dateien gab und gibt hatte ich die Entscheidung getroffen diese in Redis zu übernehmen. Das ist soweit auch umgesetzt und erleichtert mir auch das Update sowie die Installation. Einstellungen werden jetzt beim Initialisieren registriert und mit einem Default Wert versehen. Erst beim ersten speichern der Einstellungen werden diese in der Datenbank erstellt und fortan der Wert aus der Datenbank verwendet. D.h. kommen neuen EInstellungen hinzu muss ich die nur registrieren und alles funktioniert, erst wenn ihr die Einstellung verändert wird sie in der Datenbank erstellt. Somit ist beim Update keine Anpassung der Einstellung notwendig.

      Die Benutzerverwaltung wird auf ein ähnliches System umgestellt, so das auch die Probleme nach Version 2.2.3 aus der Welt sein sollten.

      Der Schaltserver und Sensortransmitter im Stand Alone Betrieb müssen nicht mehr installiert werden, nur noch konfiguriert.

      Ich bin mir noch nicht ganz Sicher ob ich eine Update Funktion für 2.2.3 erstelle oder ob ich eine saubere Neuinstallation fordere. Der Aufwand dafür wäre groß.
    • RE: Version 2.2.3

      Das neue Update ist jetzt schon relativ weit fortgeschritten, jetzt möchte ich noch etwas zu den Neuerungen erzählen.

      Das RWF Framework setzt jetzt komplett auf Redis, d.h. egal ob die App eine Datenbank benötigt oder nicht muss Redis installiert werden (ausgenommen Kommandozeilen Tools).
      Die Benutzerverwaltung und Einstellungen laufen jetzt auch über die Datenbank und sollten somit bei Updates keine Probleme mehr machen. Dazu habe ich auch noch das System überarbeitet, so das neue Rechte und Einstellungen nach einem Update Problemlos zur Verfügung stehen. Eine neue EInstellung wird mit einem Standardwert am Framework angemeldet und solange nichts anderes gesetzt ist wird dieser Default Wert verwendet. Das macht es mir auch bei Updates wesentlich einfacher.

      Neu ist auch eine komplett überarbeitete Beckup/Restore Funktion, die jetzt stabiler läuft und flexibler ist. Bis jetzt wurden nur bekannte Daten gesichert, jetzt wird die komplette Datenbank gesichert und wieder hergestellt. Um welche Daten es sich Handelt ist dabei egal. Auch das Macht mir Änderungen leichter, da ich nicht mehr bei jeder kleinen Änderung das Backup/Restore System mit anpassen muss. Weiterhin gilt aber das nur Backups der selben Version geladen werden können. Die Benutzerschnittstelle bleibt identisch wie bei den alten Versionen.

      Die Installation wurde auch angepasst, es gibt jetzt ein Install Script das für alle Apps gilt, bei dem nach den Datenbank Verbindungsdaten dann gefragt wird welche Apps installiert werden sollen.

      Auch beim Update hat sich einiges geändert, wie oben schon teils erwähnt sollte das ganze zukünftig fast Problemlos ablaufen. Ein Update von 2.2.2 auf 2.2.3 wird aber nicht Möglich sein. Der Grund ist einfach durch die vielen Probleme der vorherigen Updates sind sehr viele verschiedene Zustände entstanden die ich mit einem Update nicht glatt ziehen kann. Daher eine saubere Neuinstallation. Ansonsten würde es auch bei zukünftigen Updates zu Problemen kommen weil noch Daten vorhanden sind die eventuell stören.

      The post was edited 1 time, last by agent47 ().

    • RE: Version 2.2.3

      Nun ist es endlich soweit, die Entwicklung für Version 2.2.3 geht langsam zum Ende zu. Was alles im Detail gemacht wurde könnt ihr auf GitHub unter den Meilensteinen durchlesen.

      Wie schon erwähnt sind einige tiefgreifende Änderungen eingeflossen die ein Update unmöglich bzw. unvertretbar aufwendig machen. Die Wichtigsten und Umfangreichsten Neuerungen sind das jetzt das RWF seine Daten komplett in der Redis Datenbank speichert, auch die Sessiondaten werden in der Datenbank verwaltet. Das bedeute vor allem das es nur noch XML Dateien für die Stand Alone CLI Dienste gibt, alles andere ist in der Datenbank. Das bedeutet aber auch das auch wenn die App das nicht benötigt jetzt Redis Grundvoraussetzung für den Betrieb des RWF ist. Im Klartext heißt das, dass eine Installation in der Nur das PCC läuft jetzt auch Redis benötigt was vorher nicht so war.

      Die Größten Vorteile und auch der Grund dafür sind, das dass RWF Framework und damit die ganze Anwendung wesentlich Stabiler wird. Auch bei Updates wird es weniger Probleme geben da keine Daten im Dateisystem mehr lagern und auch das ganze System mit Berechtigungen und Einstellungen so gut wie Ausfallsischer sind. Da auch fast alle XML Dateien weg sind ist die Gefahr eines XML Errors auch gleich null, die letzten beiden verbleibenden Dateien sind Einstellungen für die CLI Dienste und werden eigentlich nur noch gelesen.


      -> https://github.com/agent4788/SHC_Framework/issues?q=milestone%3Av2.2.3+is%3Aclosed

      Vom Zeitplan her werde ich kommendes Wochenende wenn alles klapp noch eine Test Installation machen und die letzten beiden offenen Issues beheben. Vorausgesetzt das geht alles wie geplant, gebe ich danach eine Testversion frei und sollte es keine größeren Probleme geben 1 - 2 Wochen später die Stabile Version.
    • RE: Version 2.2.3

      Hallo Agent,

      vielen Dank für Deine Arbeit und den Erklärungen. Die vielen Abkürzungen verwirren mich doch etwas, so dass ich hier einfach noch einmal etwas auf den Punkt bringen möchte.

      Einfaches System = SHC +- PCC auf einem Raspi mit SH + SS + ST + Redis

      Verteilte Installation = SHC +- PCC auf einem Raspi mit Redis + ein / oder mehrere Slave's mit SS + ST ohne Redis

      Verteilte Installation 2. Variante 1 Raspi der nur als Master fungiert mit SHC +- PCC + Redis + SH ohne SS und ST ein / oder mehrere Slave's mit SS + ST ohne Redis.

      Habe ich das so richtig verstanden?

      Wenn ja, gibt es eine abgespeckte 2.2.3 SHC Version für Salve's ? Also nur mit SS und ST ?

      Um den Umstieg auf Ver. 2.2.3 möglichst reibungslos zu gestalten habe ich mir folgendes vorgestellt, wenn meine obigen Annahmen richtig sind. Neuinstallation mit 2.2.3 auf den Slave's. (In meinem Fall 5) müsste das System nach Abschluss noch voll funktionsfähig sein. Danach Neuinstallation des Master SHC mit Neueintrag aller Sensoren, Schaltpunkte, Ereignisse etc.

      Ist das alles so richtig, was ich geschrieben habe?

      Vielen Dank im voraus.
      SHC Master B2+ WLAN sowie 1 Slave B2+, 2 Slave B+ und 2 Slave Raspi B. 5x Pi Cam; Imac mit OSX El Capitan; Iphone 6 plus; Ipad mini; Lenovo Android Tablet.
    • RE: Version 2.2.3

      Der Aktuelle Aufbau des RWF Framework ab Version 2.2.3 schaut wie folgt aus:


      Source Code

      1. RWF (Basisframework, Stellt die Benutzerverwaltung, Einstellung, Sessions ...)
      2. |
      3. |--SHC (SmartHome Master) [Redis notwendig]
      4. |   |--Sheduler (Zuständig für die Zeitsteuerung und einige Interne Aufgaben)
      5. |   |--Schaltserver (Optional) [Senden der 433MHz Befehle, Lesen oder Schreiben der GPIOs]
      6. |   |--Sensortransmitter (Optional) [Sensordaten an das SHC Senden]
      7. |
      8. |--SHC (SmartHome Slave) [Redis nicht notwendig]
      9. |   |--Schaltserver (Optional) [Senden der 433MHz Befehle, Lesen oder Schreiben der GPIOs]
      10. |   |--Sensortransmitter (Optional) [Sensordaten an das SHC Senden]
      11. |
      12. |--PCC (Systemüberwachung) [Redis notwendig]
      13. |
      14. |--Movie Base (ab Version 2.4) [Redis Notwendig]
      Display All


      Der Sensortransmitter und Schaltserver werden mit XML Dateien Konfiguriert. Für Slaves die nur diese Dienste bereitstellen sollen ist keine Installation in Form der "install.php" nötig. Einfach das Projekt von GitHub ziehen und mit der Konfiguration starten. Beim Update müssen die alten Dienste beendet werden, dann das neue Projekt geladen werden und das ganze Konfiguriert werden.
    • RE: Version 2.2.3

      Ich habe gerade die Version 2.2.3 Beta freigegeben. Die Neuerungen findet ihr wie immer auf GitHub -> https://github.com/agent4788/SHC_Framework/releases/tag/v2.2.3_beta
      Wie schon angekündigt gibt es keine Update Funktion, es muss eine Neuinstallation vorgenommen werden!

      Bei der Installation ist folgendes zu beachten:

      Um die Testversion zu erhalten müsst ihr nach dem clonen des Projektes noch in den Testing Branch wechseln:

      Source Code

      1. /var/www $ sudo git clone https://github.com/agent4788/SHC_Framework
      2. /var/www $ sudo mv SHC_Framework/ shc/
      3. /var/www $ cd shc/
      4. /var/www/shc $ sudo git checkout testing



      Die Schritte:

      Source Code

      1. /var/www/shc $ php shc_install.php
      2. /var/www/shc $ sudo chmod 0777 -R ./


      und


      Source Code

      1. /var/www/shc $ php pcc_install.php
      2. /var/www/shc $ sudo chmod 0777 -R ./



      entfallen, dafür müsst ihr nur noch folgendes ausführen:


      Source Code

      1. /var/www/shc $ php install.php
      2. /var/www/shc $ sudo chmod 0777 -R ./


      Bei der Installation werdet ihr nach den Redis Verbindungsdaten gefragt, sofern ihr redis nicht selbst anders konfiguriert habt lasst einfach die vorgeschlagenen Einstellungen. Danach werdet ihr gefragt welche APPs installiert werden sollen.

      Wer im PCC die WLan Verbindungsdaten angezeigt haben will muss jetzt einen weiteren Eintrag in die sudoers Datei machen. Warum das jetzt so ist weiß ich nicht genau, das ging nach einem Raspbian Update los.


      Source Code

      1. www-data ALL = NOPASSWD:  /sbin/iwconfig


      Die Installationsanleitungen auf GitHub werden mit dem Offiziellen Release angepasst.