Forum: Haus & Smart Home Zeitsteuerung Zentral / Dezentral


von Christian S. (vivus)


Lesenswert?

Hallo,

ich will bis Ende meines Studiums einen fertigen Hausbus (ca. 3-4 Jahre) 
entwickelt haben. Das ganze ist so aufgebaut, dass ich je Stockwerk 
einen Rechner habe der über MQTT mit weiteren Stockwerken verbunden ist. 
Mit dem Rechner des jeweiligen Stockwerks sind Knoten über CAN 
verbunden. Das System agiert möglichst selbständig. Rest wird über WebUI 
eingestellt/gesteuert, welches über Websockets angebunden ist.

Nun kommt die Zeitsteuerung dran. Ich habe mir nun ein Programm in C 
geschrieben, was die Daten aus der Datenbank verarbeitet und zum 
korrekten Zeitpunkt Nachrichten verschickt. Wo ich zu meinem Problem 
komme:

Beispiel: Ein Knoten ist so eingestellt, dass er sobald es hell wird, 
den Rollladen hoch zieht. Nun ist aber Sonntag und ich habe über die 
WebUI eingestellt, dass der Rolladen erst um 12 Uhr Mittags hochgehen 
soll. Dh. hier benötige ich eine Art Prioritätssteuerung. Die Frage ist 
nur, wie man das am besten umsetzt.

Meine Ideen:

1. Rollladen schickt eine Nachricht, dass er gleich hochgeht, Zentraler 
Rechner sagt je nach Situation ja oder nein.

2. Zentrale verschickt jede Zeiteinheit (z.b.  1h) Nachrichten, was 
passieren darf, oder was nicht passieren darf. Beispiel: 5 Uhr morgens: 
Nachricht Rollladen X darf in der nächsten Stunde nicht hochfahren.

3. Nutzer trägt Zeit für Rollladen ein, Zentrale speichert die Werte und 
übergibt in passenden, vor verarbeiteten Paketen die Daten direkt auf 
den Bus. Nun speichert der Knoten die Daten und entscheidet selbst was 
zutun ist. Hier wäre eine Priorität einfach zu gestalten.

Bisher halte ich die 3. Idee für die sinnvollste. Bin mir aber nicht 
ganz sicher und wollte mal bevor ich anfange sowas umzusetzen hier 
nachfragen, was ihr von den Ideen haltet. Welche haltet ihr für die 
beste? Gibt es bessere Ansätze?

von Wolfgang (Gast)


Lesenswert?

Christian S. schrieb:
> Gibt es bessere Ansätze?

Sensor im Badezimmer am Halter der Zahnbürst, wenn Zahlbürste benutzt 
wurde und Badezimmer wieder verlassen wurde, Freigabetelegramm an 
Rolladen für Öffnung nach Helligkeit/Wetter.

von Sebastian L. (sebastian_l72)


Lesenswert?

ganz klar 3, weil resistent gegen akute kommunikationsfehler.

Rückmeldung ist immer eine gute Sache. Exakte Rückmeldung (hier 
Endanschlag) ist besser als eine Quittung, das der Befehl empfangen 
wurdee.

Christian S. schrieb:
> Dh. hier benötige ich eine Art Prioritätssteuerung. Die Frage ist
> nur, wie man das am besten umsetzt.

Einen physischen Schalter neben dem Fenster der auto einen Zeitraum 
übersteuert.

von Volle (Gast)


Lesenswert?

du hättest zwar noch 100 höher priore Probleme zu lösen in den nächsten 
drei Jahren  aber ein Beispiel aus der Praxis.


Bei mir gibt es zwei Hauptszenarien die such auf die Haussteuerung 
auswirken:
1. Anwesend
2. Abwesend


für beide Fälle gibt es Unterschiedliche Bedingungen wann die 
Rollenläden hoch und runter gehen.

Bei Anwesenheit  werden die Rollläden im Schlafzimmer und Bad manuell 
ausgelöst
alle anderen  8:30 aber nicht früher als 1 Stunde nach Sonnenaufgang

Bei Abwesenheit alle 7:45 aber nicht früher als 30 Minuten nach 
Sonnenaufgang

Mit Openhab Rules einfach zu realisieren


Ich unterscheide  mich in meinem Verhalten nicht eindeutig  bei 
Sonntag/Feiertag/Urlaub/Krankheit.
Aber deutlich ob ich Zuhause bin oder nicht

von Christian S. (vivus)


Lesenswert?

Hallo Volle,
danke für deine Antwort. Mir geht es jetzt nicht im speziellen um den 
Rollladen sondern um Situationen die dem Rollladenverhalten ähnlichen 
sind.

Ich stimme dir aber zu, dass das Einbeziehen von An- und Abwesenheit 
sinnvoll/wichtig ist. Wie genau erkennst du, ob jemand daheim ist oder 
nicht? Ist dein System in der Lage die Anzahl der Personen in einem Raum 
zu identifizieren? Unterscheidet es zwischen Hund/Katze und Mensch?

von Volle (Gast)


Lesenswert?

mit einer simplen BUS-Taster am Ausgang
  der Ausschaltvorgang  macht auch alle Lichter und den TV/Verstärker 
usw
aus falls die noch an sind.

Bewegungsmelder kann man zu Answesenheitserkennung nutzen
(geht dann auch auch bei unerwünschten Gästen)  aber nicht zuverlässig 
zur Abwesenheitserkennung.
Auch das Türschloss ist nicht eindeutig.


Ich arbeite noch daran die Bewegungsmelder bei Abwesenheit von Licht auf 
Alarm umzustellen. Aber einige  Personen mit erlaubtem Zugang dürften 
viele Fehlalarme erzeugen.


Wichtig und Mühsam ist das Gemeinsame und die wesentlichen Unterschiede 
zwischen vielen Situationen zu finden.
eine typische engeniering Aufgabe.

von Josef T. (t_joe)


Lesenswert?

Ich mache meine Anwesenheit über MAC Adressen unserer Handys! Sind diese 
im Netzwerk eingeloggt, dann wird Anwesenheit gesetzt! Was auch möglich 
wäre ist ein "Smartes" Schlüsselbrett, Haustürschlüssel weg = abwesend.

Gruß
Joe

von Christian S. (vivus)


Lesenswert?

Wie gesagt, mir gehts eigentlich in erster Linie darum, wie man mein 
oben genanntes Problem noch lösen könnte... :) Bzw. was der beste Ansatz 
ist...

Anwesenheit über Handy ist denke ich eher ungenau. Man vergissts mal mit 
aus dem Auto ins Haus zu nehmen oder vergisst es daheim.

von Wolfgang (Gast)


Lesenswert?

Volle schrieb:
> Bewegungsmelder kann man zu Answesenheitserkennung nutzen

Stimmt, soetwas hat wir früher in der Schule im Sprachlabor. Immer wenn 
alle eine Zeit lang in ihre Aufgaben vertieft waren, dimmte sich das 
Licht automatisch runter. Später hatte einer immer den Job, regelmäßig 
mit den Händen in der Luft rumzufuchteln, um der Anwesenheitserkennung 
zu verstehen zu geben, dass hier gearbeitet wird.

von Gerd E. (robberknight)


Lesenswert?

Christian S. schrieb:
> 1. Rollladen schickt eine Nachricht, dass er gleich hochgeht, Zentraler
> Rechner sagt je nach Situation ja oder nein.
>
> 2. Zentrale verschickt jede Zeiteinheit (z.b.  1h) Nachrichten, was
> passieren darf, oder was nicht passieren darf. Beispiel: 5 Uhr morgens:
> Nachricht Rollladen X darf in der nächsten Stunde nicht hochfahren.
>
> 3. Nutzer trägt Zeit für Rollladen ein, Zentrale speichert die Werte und
> übergibt in passenden, vor verarbeiteten Paketen die Daten direkt auf
> den Bus. Nun speichert der Knoten die Daten und entscheidet selbst was
> zutun ist. Hier wäre eine Priorität einfach zu gestalten.

Warum nicht so:

4. der Zentralrechner ist der einzige, der entscheidet was passiert. Der 
errechnet den Sonnenaufgang, prüft den Kalender, Schalterstellungen und 
sonstwas und sendet dann einen Befehl wie "jetzt Rollo 1 hoch" an den 
Rollo-Controller. Dann wertet der Zentralrechner die Antwort aus und 
erwartet z.B. daß innerhalb von 30 Sekunden das Signal "Rollo 1 oben" 
kommt. Ansonsten geht er ein Fehlerprotokoll durch.

Die Controller an den einzelnen Aktoren und Sensoren senden und 
Empfangen nur Befehle an die/von der Zentrale und entscheiden aber 
selber nichts. Aktoren enthalten für den Fall eines 
Kommunikationsfehlers ein Failsafe-Programm.

Im Zentralrechner hast Du alle Daten vorliegen und Du kannst mit 
Datenbanken, Skripten etc. viel einfacher die Entscheidungen fällen und 
das ganze auch leichter anpassen und weiterentwickeln. Das geht mit den 
Controllern vor Ort natürlich auch, ist aber aufwendiger weil die nicht 
so einfach einen Gesamtüberblick haben und Du auf Embedded-Systemen ein 
wenig mehr auf Resourcen acht geben musst als auf dem Steuerrechner.

: Bearbeitet durch User
von Christian S. (vivus)


Lesenswert?

Das wäre ja dann komplett Zentral. Ich würde gerne vermeiden unnötig 
viele Nachrichten auf den Bus zu legen. Zudem kann es ja vorkommen, dass 
der Hauptrechner ausfällt oder ähnliches. Dann geh z.b. morgens der 
Wecker nicht mehr.

von Josef T. (t_joe)


Lesenswert?

Sorry, hatte mich zu sehr auf die Anwesenheit versteift!

Ich muss aber sagen, dass ich da auch eher Gerd seiner Meinung bin! Ich 
glaube, dass es schwierig werden wir die Übersicht zu behalten wenn die 
komplette Intelligenz in den Sensoren und Aktoren verteilt ist!
Die Idee von Gerd mit dem Failsaife hört sich doch gut an. So ne Art 
Heardbeat Signal auf den Bus, das alle empfangen und wenn das eine 
bestimmte Zeit ausbleibt ein hinterlegtes Notprogramm starten.

Falls das Zentrale Konzept trotzdem nichts sein sollte, dann würde ich 
aber die Intelligenz nur in die Aktoren packen. Sensoren schicken nur 
Messwerte oder Schaltsignale und die logischen Verknüpfungen und 
Grenzwerte usw in die Aktoren!

Wegen zu vielen Signalen aufm Bus:
ohne Server: Sensor ->Aktor
mit Server: Sensor -> Server -> Aktor
Das ist ein Signal mehr, das wird nicht besonders auffallen, es werden 
ja nicht jede Sekunde zehn Taster gedrückt!

Gruß
Joe

von Gerd E. (robberknight)


Lesenswert?

Christian S. schrieb:
> Das wäre ja dann komplett Zentral.

genau

> Ich würde gerne vermeiden unnötig
> viele Nachrichten auf den Bus zu legen.

warum? Was erwartest Du denn da für Datenmengen pro Stockwerks-Bus?

Bei nem Hausbus würde ich schätzen daß eine einstellige Zahl an 
Telegramme pro Sekunde ausreicht.

> Zudem kann es ja vorkommen, dass
> der Hauptrechner ausfällt oder ähnliches. Dann geh z.b. morgens der
> Wecker nicht mehr.

Dafür wie schon geschrieben ein Failsafe-Modus: Oberstes Ziel: Schäden 
vermeiden oder vermindern, kein Komfort, jeder Aktor agiert rein 
autonom.

Ein Rollo bleibt z.B. einfach da stehen wo es ist. Einige wenige 
zentrale Lichter gehen an als Orientierungslichter. Heizung auf 
Frostschutz-Modus oder ähnlich niedriges Niveau.

Deinen Wecker solltest Du sowieso so einrichten daß er auch komplett von 
Batterie läuft und auch noch funktioniert, wenn über Nacht für mehrere 
Stunden der Strom weg war.

Mein Vorschlag dafür: nimm das Smartphone als Wecker-Backup und schreib 
Dir da ne kleine App die regelmäßig die Zeit von der Zentrale abfragt 
und dann 5 Minuten nach dem Hauptwecker losgeht.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.