RPi SmartHome Control 2.2

Heute ist Stammtischzeit:
Jeden Donnerstag 20:30 Uhr hier im Chat.
Wer Lust hat, kann sich gerne beteiligen. ;)
  • agent47
    Erst mal schön zu hören, dass es eine V2.2 geben wird!
    Hoffe du bist nicht böse, wenn ich einen weiteren Wunsch äußere:
    Einbindung von WebCams. Kann mir vorstellen, wie viel Mühe hinter allem steckt -
    und das ganze für Nothing. Also ich würde es begrüßen, wenn du ein
    Konto für freiwillige Spenden einrichten würdest.

    DER Mega
    Ja, ich könnte eine alte Fritz7170 an den DLAN AP anschliessen und mit dieser dann
    ein neues eigenes Netz aufbauen :)
    Schaue aber lieber noch nach einer anderen Lösung um, da Energie sparen bei mir im
    Moment ein wichtiges Ziel ist - der Umwelt zuliebe. Daher hinterfrage ich im Moment
    jedes elektrische Gerät.

    Habe vor einiger Zeit versucht das Thema über Bluetooth an zu gehen.
    Leider war das ganze überhaupt nicht zuverlässig. Und ja, man muss dann auch daran denken BT ein zu schalten und das möchte ich halt nicht.

    Gruss

  • Denke das ist ein gute Entscheidung nur die Raspicam zu unterstützen. Denn fast alle CAM's die man kaufen kann bringen auch schon Viewer oder auch manchmal recht gute Apps mit.
    Alles in einem Guß zu haben ist natürlich auch nicht schlecht.
    Auf lange Sicht habe ich vor, meine eigene Android App zu basteln. Bisher tue ich mich aber mit der Programmierung bezw. mit den Entwicklerwerkzeugen recht schwer.
    Mein eigentliches Terrain ist VC++ mit dem Visual-Studio. Mal sehen wie es weiter geht.


    Gruß und nochmal Dank an dich.

  • Hallo zusammen,
    vorab erst mal ein riesen Lob an Agent47, der hier eine wirklich tolle Arbeit gemacht hat und ein so cooles Projekt aufgebaut hat! Die Software läuft bei mir seit Monaten problemlos.

    Jetzt hab ich noch eine Frage: meine auth.log wird alle paar Minuten von einem cron-eintrag vollgemüllt, den ich nicht zuordnen kann:

    pam_unix (cron:session): session opened for user root by (uid=0) und danach
    pam_unix (cron:session): session closed for user root by

    Da ich keine Cron-Jobs aktiv habe (alle User geprüft), wundere ich mich die ganze Zeit wo diese Einträge herkommen. Zuvor hatte ich etliche Angriffsversuche (Failed password for root from 61.174.50.225 port 59145 ssh2), die ich dann mit einem Schliessen des SSH-Ports auf dem Router behoben habe. Jetzt bin ich ehrlich gesagt ratlos, woher die pam_unix Einträge kommen und dachte vielleicht an SmartHome Control, da hier ja auch die diversen Schaltzeiten irgendwo gesteuert werden müssen.

    Danke im Voraus!

  • Wie versprochen gibt es nun wieder mal einen neuen Entwicklungsstand und einige Screenshots der überarbeiteten Oberfläche.

    Was unterstützt die neue Version nun alles?

    • Funksteckdosen (alles was pilight unterstützt) [Icon aus Liste wählbar]
    • schalten von GPIOs eines oder mehrerer Raspberry Pi [Icon aus Liste wählbar]
    • Wake On Lan
    • Aktivitäten (Gruppierung der 3 oben genannten Funktionen) [Icon aus Liste wählbar]
    • wie Aktivitäten eine Gruppierung der 3 oben genannten Funktionen, beim einschalten wird automatisch ein Zeitpunkt zum wieder ausschalten gesetzt (z.B.: 30min nach Start) [Icon aus Liste wählbar]
    • lesen von GPIOs eines oder mehrerer Raspberry Pi **neu**
    • Sensoren vom Raspberry Pi, Arduino oder ähnlichem (es gibt 2 offenen Schnittstellen durch die Sensordaten empfangen werden können und somit die Qeullen nicht nur auf Raspberry Pi und Arduino beschränken)
      es werden DS18x20, DHT11/22, BMP085/180, Regensensoren, Feuchtigkeitssensoren und Lichtsensoren unterstützt
    • Schaltpunkte wird es in der alt bekannten Form geben (einfaches Formular und erweitertes Formular)
    • Schaltbereiche entfallen und werden in gleichem Umfang durch Bedingungen ersetzt
    • Ereignisse (reagieren auf bestimmte Zustandswechsel)
    • in der UI gibt es keine feste Bindung mehr zwischen Funksteckdosen, GPIOs usw. diese können frei untereinander gemischt werden
    • das Loggen von Schaltvorgängen entfällt
    • es gibt jetzt eine API für weitere Sprachen, von mir wird aber weiterhin nur Deutsch unterstützt, aber es können gern Übersetzungen durchgeführt werden und mir zugeschickt werden

    Einzelheiten:
    Funksteckdosen:
    Für das schalten der Funksteckdosen ist pilight vorgesehen, bis jetzt habe ich das aber noch nicht getestet. Später wird es auch einen Schaltserver für den Cubietruck geben.

    Sensoren:

    Sensordaten können auf 3 wegen zum SHC gelangen, zum einen gibt es einen Deamon der auf einer Seriellen Schnittstelle auf Daten von z.B.: einem Arduino wartet (es wird ein spezielles Format der Daten gefordert).
    Zudem gibt es noch einen Server der aktuell auf TCP anfragen wartet, bis zur finalen Version wird das noch auf UDP umgestellt (auch hier wird ein Spezielles Format erwartet) und zu guter Letzt gibt es noch eine Aktion die per HTTP über GET Parameter Sensordaten annimmt (auch hier wird ein spezielles Format erwartet). Die HTTP Schnittstelle ist vor allem für die Anbindung an das Sensornetzwerk hier aus dem Forum vorgesehen.

    Bedingungen:
    Mit den neuen Bedingungen können Schaltpunkte auf bestimmte Zustände eingegrenzt werden. Das umfasst die aus dem SHC 1.x bekannten Schaltbereiche und zusätzlich einige neue, daher entfallen auch die Schaltbereiche.
    Folgende Möglichkeiten gibt es das Schalten bedingt zu steuern:

    • Temperatur > oder < Grenzwert
    • Luftfeuchte > oder < Grenzwert
    • Feuchtigkeit > oder < Grenzwert
    • Lichtstärke > oder < Grenzwert
    • Datumsbereich
    • Wochentagesbereich
    • Zeitbereich
    • Tag (zwischen Sonnenauf - und Sonnenuntergang)
    • Nacht (zwischen Sonnenunter - und Sonnenaufgang)
    • Benutzer zu Hause
    • Niemand zu Hause

    Ereignisse:
    Ereignisse beobachten bestimmte Zustände und lösen Aktionen aus wenn sich der Zustand in eine bestimmten Form ändert (z.B.: ein Benutzer kommt nach Hause -> Licht an und PC hochfahren).
    Nicht zu verwechseln mit Bedingungen die zwar ähnlich sind aber nur zu dem Moment einen zustand abfragen in dem sie selbst gefragt werden (z.B.: ein Schaltpunkt passt von den Zeitangaben her, soll aber nur schalten wenn jemand zu Hause ist).
    Folgende Ereignisse sind geplant:

    • Temperatur steigt/fällt über/unter Grenzwert
    • Luftfeuchte steigt/fällt über/unter Grenzwert
    • Feuchtigkeit steigt/fällt über/unter Grenzwert
    • Lichtstärke steigt/fällt über/unter Grenzwert
    • Sonnenaufgang
    • Sonnenuntergang
    • Benutzer kommt nach Hause
    • Benutzer geht von zu Hause weg

    was wird sich sonst noch so ändern?
    Eine wichtige Optimierung gegenüber den 1.x Versionen wird sein das es wesentlich weniger Ajax Anfragen zum Synchronisieren geben wird und somit der Webserver auf dem Raspberry Pi stark entlastet wird. Die Aktualisierung wird aber nicht einfach in größeren Abständen vorgenommen, sondern die Anfragen werden per LongPolling oder SSE (steht noch nicht fest wie genau) vorgenommen. Sollte ich mich für SSE entscheiden was auch die bessere Wahl wäre wir aber der Internet Explorer ausgeschlossen da MS diese Technick nicht im Internet Explorer implementiert hat (wobei alle anderen Browser das teils schon viele Jahre lang unterstützen).

    Beim Löschen von Räumen werden nicht mehr alle damit verbundenen Elemente einfach gelöscht, sondern nur der Raum selbst und die ihm zugeordneten Boxen. Alle noch im Raum befindlichen Elemente werden automatisch unter dem Tab Raumlose Elemente angezeigt werden (wo übrigens auch neu erkannte Sensoren zu finden sind). Dort können die Elemente dann anderen Räumen zugeordnet oder gelöscht werden.

    Was die Reaktionszeiten angeht ist die Version 2 etwa um den Faktor 2,5 langsamer (die Versionen 1.x hat etwa 150 - 200ms Reaktionszeit, das neue SHC 2.x etwa 300 - 450ms). Solange aber die Reaktionszeit unter 500ms liegt ist alles in Ordnung und wirkt nicht langsam. Es gibt natürlich auch die Möglichkeit die Weboberfläche auf einem anderen SBC oder PC laufen zu lassen und den Raspberry Pi nur zum Senden und GPIO schalten zu nutzen. So verwende ich das SHC auch, die Weboberfläche läuft auf meinem Cubietruck der eigentlich als NAS läuft und ist damit sehr viel schneller (Version 2.x ca. 100 - 150ms Reaktionszeit). Nur zum Vergleich auf meinem Entwicklungssystem ist die Reaktionszeit 10 - 20ms.

    Wie weit ist die Entwicklung vorangeschritten?
    Die ganzen nötigen Libarys sind soweit fertiggestellt, aktuell Programmiere ich die Weboberfläche. Genau gesagt die Verwaltungsfunktionen.
    Aktuell glaube ich aber nicht mehr daran den Zeitplan so halten zu können, dafür sind noch zu viele Arbeiten offen. Wie genau ich das handhaben werde weiß ich auch noch nicht, zuerst mal muss ich alle Grundfunktionen fertig stellen, danach muss ich mir überlegen ob ich den Release weiter verschiebe oder einige Funktionen in eine Spätere Version verschiebe. Sicher ist aber das die oben genannten Funktionen auf jeden Fall in Version 2.0 enthalten sein werden!

  • Hallo miteinander,
    ich habe mir diese Woche ein Raspberry Pi bestellt und möchte ein bißchen was für meinen kleinen Pool den ich seit diesem Jahr habe steuern.
    Als erstes möchte ich Temperaturen abfragen und Funksteckdosen schalten. Dies soll über Smartphon und Laptop passieren. Dies dient dazu daß ich überschüssige Energie die ich im Pufferspeicher der Solar-Hausheizung habe per Wärmetauscher in den Pool umleiten kann. Also Sensor verwende ich DS18B20. Dies ist ja bereits möglich.

    Dann würde ich noch gerne eine separate Poolsolaranlage mithilfe einer Temperatur-Differenzregelung zu steuern. Da würde ich gerne wissen ob das in der neuen Version 2.0 so möglich wäre. Die gewünschte Funktion wäre folgende:
    - Der Pool und die Solaranlage ist mit jeweils einem Temperaturfühler ausgestattet
    - Wenn die Solaranlage um Temperatur x (z.B. 5°) wärmer ist und der Pool noch nicht eine Temperatur Y (z.B. 28°) erreicht hat wird eine Funksteckdose geschalten (An)
    - Wenn die Solaranlage kühler als der Pool ist soll die Funksteckdose wieder geschalten werden (Aus)

    Könnte dies mit den Ereignissen abgebildet werden?

    Wenn ich zweimal nacheinander bei einer Steckdose auf „Ein“ klicke, wird dann zweimal nacheinander das Signal übertragen? Sozusagen als Sicherung daß auch sicher geschalten wird.
    Möchte mich gleich mal herzlich bedanken und finde es echt toll was ihr hier macht…..kann leider nicht mit Programmierkenntnissen dienen und hoffe daß ich das mit Deinem Programm machen kann.
    Danke und viele Grüße
    Jimmy

    Einmal editiert, zuletzt von Jimmy1489 (27. Oktober 2014 um 23:42)

  • Jimmy1489
    Dein vorhaben wird ab Version 2.0 so möglich sein, du musst dann Events in Verbindung mit Bedingungen einsetzen.
    z.B.: Event Vorlauftemperatur steigt über 50°C + Bedingung Pool Temperatur kleiner als 28°C
    Die Schaltbefehle werden so oft gesendet wie du auf die Buttons drückst.

    fuuman
    Laut Fehlermeldung ist deine switches.xml beschädigt. Ich hoffe das die vielen XML Fehler in der Version 2.x dann besser werden, da erfolgen nicht mehr so extrem viele Schreibzugriffe wie in den 1.x Versionen.

    @All
    da ich gerade am überlegen bin welche Technik ich für das Synchronisieren der Daten nehmen will (SSE oder Long Polling), nutzt irgendjemand den IE in Verbindung mit dem SHC?
    Hintergrund ist, sollte ich mich für die neue HTML5 SSE Technik entscheiden wird das Synchronreiseren im IE nicht funktionieren da Microsoft das noch implementiert hat. Alle richtigen und aktuellen Webbrowser (auch mobile) unterstützen diese Technik teils schon sehr lange.

    Einmal editiert, zuletzt von agent47 (28. Oktober 2014 um 06:08)

Jetzt mitmachen!

Du hast noch kein Benutzerkonto auf unserer Seite? Registriere dich kostenlos und nimm an unserer Community teil!