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?
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.
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.
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
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?
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.
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
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.
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.
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
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.
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
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.