SensorAndSwitch Haus-Automation auf Webserver-Basis

Ich wünsche allen
Frohe Weihnachten
und
einen guten Rutsch ins Neue Jahr

SAS Version 5 mit Thermostatsteuerung wird es erst nächstes Jahr geben. Dieses Jahr komme ich nicht mehr dazu. ;)
 
Guten Abend allerseits,

Zunächst mal: Ich finde es echt super, dass sich jemand die Mühe macht, sowas wie hier zu realisieren und ständig weiter zu entwickeln. Und auch die Beteiligung der Cummunity hier ist echt Klasse. Dafür meine Anerkennung und meinen Respekt.

Ich bin eigentlich aus einem Grund hier gelandet: ich finde die Schaltmöglichkeiten der DECT200 zwar gut, aber für einige meiner Vorhaben ungenügend. Ich habe z.B. einen elektrischen Heizkörper im Bad, den ich gerne temperaturgesteuert UND zeitgesteuert schalten wollte. Also bspw. zwischen 6 und 8 Uhr morgens anschalten, wenn die Raumtemperatur unter X Grad ist. Da sowas im Standard nicht klappt, wollte ich mir per API selbst eine solche Schaltung programieren. Und dabei bin ich auf diesen Thread gestoßen. Klasse: genau das was ich suche.

Die Anzahl der Posts zeigt mir, dass es eigentlich super funktionert. Einzig und allein: ich bin scheinbar zu doof, das ans Laufen zu bekommen. Immer wenn ich meine Zugangsdaten eintrage, erscheint eine Seite, auf der keine Aktoren aufgelistet sind. Vielleicht kann mir jemand einen Tipp geben, was ich falsch mache.

Ich habe mir die ZIP-Datei auf meinen Webspace geladen (nicht im Heimnetz, sondern ein externer Webspace) und dann diese ...myfritz.net Adresse eingegeben, unter der meine Fritzbox aus dem Internet erreichbar sein sollte. Muss ich da irgendwas anderes eingeben? Muss ich in der Fritzbox noch irgendwas einrichten? Oder funktioniert das nur, wenn das PHP Script im eigenen Netzwerk läuft.

Ich würde mich riesig freuen, falls wer einen Tipp für mich hat.

Beste Grüße
Michael
 
Hallo an ALLE;

ich habe mal einen Versuch mit einer DECT200 Dose unternommen
und bin bei mir auf ein kleines Problem gestoßen.

Ich wollte mit der DECT200 ein AVM MT-F Telefon aufladen und bei
einer Leistung kleiner ... Watt den Ladevorgang durch eine
"Schaltbedienungserfassung" im SaS abschalten lassen.

Ich habe folgendes eingestellt:
Schaltungstyp: Verbrauch
Wenn Gerät:DECT200 kleiner 0,17 Watt verbraucht,
dann schalte von Gerät:DECT200 den Schalter AUS

Diese "Schaltbedienungserfassung" funktioniert aber nur richtig
wenn die DECT200 Dose schon angeschaltet ist und ich die
"Schaltbedienungserfassung" erst hinterher im SaS erstelle.

Erstelle ich vorher eine "Schaltbedienungserfassung" und schalte
die Dose ein schaltet in meinem Fall der RaspiPi die Dose schon
nach 6 Sekunden wieder AUS obwohl eine Leistung größer 2 Watt
beim Ladestart besteht.

Das liegt wahrscheinlich daran das der RaspiPI schneller auf die
"Schaltbedienungserfassung" reagiert als die Daten von der
DECT200 Dose in den RaspiPI übermittelt werden.

Kann ich an einer Stelle in der "Schaltbedienungserfassung"
eine Verzögerung erstellen damit der RaspiPI etwas später
auf den Abschaltbefehl reagiert damit das bei mir funktioniert.

Gruss ElefantenMaus
 
@missenberger

Sorry für die langsame Reaktion auf deine Anfrage, aber irgendwie habe ich hier den Post übersehen.

Zum Problem: Externer Webspace ist aus mehreren Gründen nicht gut geeignet.
Zunächst einmal die Datensicherheit. Alles was in einer Cloud außerhalb deines Netzes liegt ist unsicher.
Du musst einen Zugriff von außen auf deine Fritzbox gestatten. Auch das bringt Probleme und Risiken mit sich.
Der fremde Webspace ist nicht so konfiguriert, dass PHP in geeignetem Umfang unterstützt wird. Bei einigen geht es, bei anderen nicht. Schwer herauszufinden, was da Gerätekommunikation evtl. blockiert und was nicht.

Generell empfehle ich das eigene Heimnetz. Hier ist alles unter deiner Kontrolle.

Dein Schaltvorhaben ist jedenfalls mit SAS problemlos realisierbar.

Mit der myfritz-Adresse vermute ich vorgeschaltete Passwordabfragen, die nicht korrekt gehändelt werden können. Ich nutze myfritz nicht. Wäre mir für SAS zu unsicher. Vielleicht hat aber ein anderer hier damit Erfahrung.
 
Erstelle ich vorher eine "Schaltbedienungserfassung" und schalte
die Dose ein schaltet in meinem Fall der RaspiPi die Dose schon
nach 6 Sekunden wieder AUS obwohl eine Leistung größer 2 Watt
beim Ladestart besteht.
Das Problem ist die Langsamkeit der FB. Die Daten werden im 2 Minuten-Takt aktualisiert. Schalter sofort, Watt in 2 Min. Zyklus. Das heißt, die Dose ist an und Wattanzeige ist (noch) 0. Ich überlege mir was...

Nachtrag: Gib bei der Bedingung im Feld "delay" "2" an. Schau, obs dann läuft. ;)
 
Zuletzt bearbeitet:
@JL3

Danke für den Tipp, aber leider das gleiche Problem.
RaspiPI schaltet AUS obwohl die Leistung beim Ladestart der Dose höher ist.
 
Zuletzt bearbeitet:
Hallo JL3,

vielen Dank für deine Antwort. Ich kann nachvollziehen, dass das Hosten auf einem externen Webspace mehr Risiko bedeutet als das Hosten im eigenen Netzwerk. Mein Problem ist nur, dass ich in Sachen Anwendungsentwicklung relativ fit bin, ich aber beim Installieren und Konfigurieren von Hardware und Server Null Erfahrung habe. Um ehrlich zu sein, fehlt mir dafür auch das Interesse.

Ich habe mir auf meinem Webspace ein "persönliches Dashboard" gebaut, dass mir alle meine relevanten Daten auf einen Blick anzeigt. Also bspw: kommende Termine (eigene Webanwendung), neue eMails (per PHP abgerufen), letzte Wiegeergebnisse (Withings-API), Wetterdaten und Raumklima (Netatmo-API), meinen Speiseplan/Rezeptsammlung/Einkaufszettel (eigene Webanwendung), Kontostände (HBCI), eigene Dokumentencloud, Hue-Lampen, IP-Cams und noch ein paar andere Sachen. Da wollte ich jetzt auch meine Steckdosen mit integrieren. Es macht natürlich wenig Sinn, soviel Aufwand zu investieren alles an einer Stelle zu haben und dann eine Sache woanders zu hosten.

Aber egal... das ist ja ein selbstgemachtes Problem von mir und kein Fehler von SAS. Auch wenn es bei mir nicht in meine persönliche "IT-Strategie" passt, finde ich SAS und die Idee dahinter sowie das damit einhergehende Engagement super. Weiter so!

Viele Grüße
Michael
 
@missenberger: Es ist natürlich nicht sinnvoll, nur wegen einer Sache sein bestehendes Konzept komplett umzukrempeln. Die Steuerung der Steckdosen ist z. B. gut im AHA-Blatt von AVM beschrieben. Das Problem dürfte allerdings sein, deine FB auch damit von außen zu erreichen. Übrigens ein Serveraufbau eines Raspi ist relativ einfach und schnell erledigt. Vor zwei Jahren lief SAS noch auf der FB. Einen Raspi zu verwenden, erschien mir eine Menge Arbeit. Doch dann versuchte ich es einfach. Daraus ergab sich dann SAS4PI mit einer Schritt für Schritt-Anwendung, bei der man sich mit Servern nicht auskennen muss.

Inzwischen läuft bei mir eine erweiterte SAS5 mit einer gewissen KI. Diese steuert nicht nur situationsbedingt die Beleuchtung, sondern liest mir per Sprachausgabe gleich eingehende E-Mails vor, informiert mich bei Unwetterwarnungen des DWD, schaut automatisch ins Fernsehprogramm und programmiert gleich Sendungen, die mich interessieren könnten, in meiner Dreambox. Informiert mich per Sprachausgabe über Fernsehsendungen am Abend, sagt mir Bescheid, wenn Anrufe auf dem AB eingegangen sind. Informiert mich über Wetterdaten vom Internet, Raumtemperatur über Innensensor usw. usw. Da SAS modular aufgebaut ist, kennt es keine Grenzen bei der Ausbaufähigkeit. psg- und psgbs-Dateien können für jedes Gerät ob Sensor oder Aktor angelegt werden, Hauptsache es ist über eine URL ansprechbar.

Ich denke, wenn du schon so viele Funktionen in dein Dashboard eingebaut hast, wird dir dies auch mit den Steckdosen gelingen. Schau dir vielleicht interessehalber in sas die Datei /include/geraete.php an. Dort findet man auch die Abfrageroutinen für die FB-Geräte. Vielleicht hilft dir dies bei der Umsetzung ins eigene Dashboard etwas weiter. :)

-----------------------------------------------------------------------------------------------------------------------------

@ElefantenMaus: Muss ich mal selbst rumexperimentieren. OK, das müsste funktionieren:

62,K,63,2,0,0,W,<,1,FX-Dose,- (Startkettenglied; Delay: 2 min.; wenn FX-Dose Verbrauch kleiner 1 Watt; mache nichts)
63,+,0,2,0,0,W,<,1,FX-Dose,FX-Dose (Folgekettenglied; Delay: 2 min.; wenn FX-Dose Verbrauch kleiner 1 Watt; schalte FX-Dose aus)

So funktioniert es bei mir im Test. ;)
 
@ JL3,

habe endlich den Fehler gefunden warum die Hinweise aus
Post #1725 und #1728 bei mir nicht funktioniert haben.

Ich hatte im Menüpunkt Einstellungen von SaS den
Wert "Delay und Zufall" "deaktiviert" an statt ihn auf "aktiviert"
zusetzen deshalb hat die "Schaltbedienungserfassung" für die
Dect200 Dose aus Post #1723 nicht funktioniert.

Danke noch mal für deine Hilfe
 
Danke für die Rückmeldung. :)
 
@JL3,

Ich bin bei meinen Versuchen auf ein Problem gestoßen, das ich schon in verschieden
Varianten nicht lösen konnte.

Habe einfach mal eine Kette mit folgenden Befehlen erzeugt:

2,K,3,0,0,1,X,2150,*,********,Dose 3

((Kettenstartglied, SCHID des Folgekettengliedes (3),
Wenn es (21:50) Uhr ist am Wochentag (jedem),
den (**.**.****), dann schalte von (Gerät: Dose 3) den Schalter (an).)

3,+,4,2,0,0,S,1,1,Dose 3,Dose 3

((Kettenfolgeglied; SCHID des Folgekettengliedes (4), Delay: (2),
Wenn (Gerät: Dose 3) (aktiv) ist und Schalter (an),
dann schalte von (Gerät Dose 3) den Schalter (aus).)

4,+,5,2,0,1,S,1,0,Dose 3,Dose 3

((Kettenfolgeglied; SCHID des Folgekettengliedes (5), Delay: (2),
Wenn (Gerät: Dose 3) (aktiv) ist und Schalter (aus),
dann schalte von (Gerät Dose 3) den Schalter (an).)

5,+,0,2,0,0,S,1,1,Dose 3,Dose 3

((Kettenfolgeglied; SCHID des Folgekettengliedes (0), Delay: (2),
Wenn (Gerät: Dose 3) (aktiv) ist und Schalter (an),
dann schalte von (Gerät Dose 3) den Schalter (aus).)

Es wird immmer nur das Kettenstartglied aber nie die folgenden Kettenfolgeglieder
aus der Kette ausgeführt.

Nehme ich das Kettenglied 2 als Kettenstartglied wird die Dose 3 um 21:50 Uhr
eingeschaltet und die folgenen Kettenfolgeglieder werden nicht benutzt.

Nehme ich das Kettenglied 3 als Kettenstartglied wird wie programmiert
die Dose 3 nach 2 Minuten abgeschaltet und die wieder folgenen Kettenfolgeglieder
werden ignoriert.

Den Delay-Wert von 2 Minuten habe ich zum testen angegeben um ein schnelleres Ergebnis zu erhalten.
Irgendwo habe ich einen Wert falsch gesetzt damit das ganze funktioniert.

Und noch eine Frage wie erzeuge ich mehrere Ketten, es wird immer nur eine 1 bei den folgeneden programmierten Ketten im Menü angezeigt.
 
Zuletzt bearbeitet:
Du bist auf ein typisches Problem der Kettenglieder gestoßen. Das aneinanderreihen von Kettengliedern funktioniert zwar, aber die Logikregeln der Bedingungen müssen berücksichtigt werden.

Ich versuche es einmal möglichst anschaulich zu erklären:

So lange die erste Bedingung zutrifft, wird die zweite Bedingung geprüft und solange diese und die erste zutrifft eine dritte usw. usw.

Wenn du also in deiner Kette durch den Schaltvorgang die erste Bedingung auf unwahr setzt, bricht die ganze Kette ab.

Beispiel:

1 Dose 3 soll um 21:00 eingeschaltet werden.
+ Dose 3 soll mit delay 3 ausgeschaltet werden

Da nicht 3 Minuten lang 21:00 ist, funktioniert dies nicht. Eingeschaltet wird, aber nicht nach 3 Minuten aus, da die erste Bedingung nicht mehr zutrifft.

nächstes Beispiel:

1 Dose 3 an, wenn Dose 5 an
+ Delay 3, Dose 3 aus

Dies funktioniert, solange Dose 5 auch die Zeit über an bleibt.

Ich weiß, das Ganze hört sich kompliziert an, ist aber leider logisch. Man kann sich mit sogenannten Hilfsschaltern behelfen, die man mit integriert. ;)

Welches Problem möchtest du denn real damit lösen?
 
Danke für die Erklährung des Problems dieser Kettenglieder.

Ich wollte versuchen mit bestimmten Ketten ( z.B. 10 ) bestimmte Tages- oder Wochenprogramme ablaufen zulassen.

An Hand meines Postes #1731 wollte ich eine Art "Anwesenheit der Bewohner" in einem Haus simulieren.

Die Fritz!Box kann ja 10 DECT200 Schaltdosen verwalten und mehrere FRITZ!Powerline 546E Dosen die
man auch per WLAN steuern kann.

Das ist nur mal ein Beispiel was ich gerne mal ausprobieren möchte.

Da es möglich ist verschiedene Ketten mit unterschiedlichen Einschalt- und Ausschaltzeiten zu erstellen
dachte ich an den RaspiPI mit SaS.

Nicht benötigte Ketten kann man ja als "inaktives Kettenstartglied" speichern und somit ausschalten.

Deshalb auch meine Frage ob jede Kette eine eigene Nummer in der "Schaltbedingungserfassug" erhält.

Ein anderes Beispiel für eine Kette wäre z.B. Einschalten der Dose 1 (Heizlüfter) zu einer bestimmten
Zeit und Dauer und gleichzeitig Dose 2,3,4 usw. (Licht, Kaffeemaschine usw.) in der Wohnung einschalten.

Wenn ich das richtig verstanden habe müsste ein "sogenannter" Hilfsschalter zwischen die einzelnen Kettenfolgeglieder
eingefügt werden damit meine Experimente funktionieren.

In einem Thema im Forum SensorAndSwitch war ein Script für einen Schalter beschrieben.

Da ich kein Programmierer bin, werde ich mal danach suchen und es ausprobieren ob ich diesen Schalter verwenden kann.
 
Das psgSchalter.php ist im Beispielverzeichnis vorhanden. Es simuliert einen simplen Schalter. Durch Kopieren und Umbenennen kann man sich so mehrere (Hilfs-)Schalter herstellen.

Für dein Vorhaben benötigst du keine Ketten, sondern eher nur Normale Schaltbedingungen.

Dein Heizlüfterbeispiel:

(1 steht für 1. Kettenglied, + für Kettenfolgeglieder)

1 wenn 06:00, dann Dose 1 an
1 wenn 06:00, dann Dose 2 an
1 wenn 06:00, dann Dose 3 an

(hier müsste man dann immer alle 3 zum Deaktivieren auf inaktiv stellen, wenn sie mal nicht gebraucht werden (macht Arbeit).

Mit Hilfsschalter ginge es einfacher:

1 wenn 6:00, dann tue nichts
+ wenn Hilfsschalter 1 ist an. dann Hilfsschalter 2 an (Diese zwei Eintragungen bewirken, dass nur wenn Hilfsschalter 1 an ist, dies ausgeführt wird.)

1 wenn Hilfsschalter 2 ist an, dann Dose 1 an
1 wenn Hilfsschalter 2 ist an, dann Dose 2 an
1 wenn Hilfsschalter 2 ist an, dann Dose 3 an
1 wenn 06:01, dann Hilfsschalter 2 aus

Mit dieser Kombination kannst du nun Hilfsschalter 1 in einen SAS-Slot im WebGUI legen und damit dann die gesamten Schaltvorgänge aktivieren oder deaktivieren.

Zum Problem "Bewohnt simulieren" benötigst du auch keine Ketten. Hier empfiehlt sich "delay" und "+Zufall" zu nutzen. Man setzt hier zu einem Zeitpunkt einen Hilfsschalter auf an. Am besten ein Beispiel:

1 wenn 6:00, dann tue nichts
+ wenn Hilfsschalter 1 ist an. dann Hilfsschalter 2 an, delay 0, +Zufall 60 (Diese zwei Bedingungen bewirken, dass nur wenn Hilfsschalter 1 an ist, dies ausgeführt wird. Hilfsschalter 2 wird nach Zufall zwischen 06:00 und 07:00 auf ein gestellt.)

1 wenn Hilfsschalter 2 ist an, dann Dose 1 an
usw.
1 wenn 07:01, dann Hilfsschalter 2 aus

Zum Ausschalten dann das Gleiche noch einmal:

1 wenn 8:00, dann tue nichts
+ wenn Hilfsschalter 1 ist an. dann Hilfsschalter 3 an, delay 0, +Zufall 20 (Diese zwei Bedingungen bewirken, dass nur wenn Hilfsschalter 1 an ist, dies ausgeführt wird. Hilfsschalter 3 wird nach Zufall zwischen 08:00 und 08:20 auf ein gestellt.)

1 wenn Hilfsschalter 3 ist an, dann Dose 1 aus
usw.
1 wenn 08:21, dann Hilfsschalter 3 aus
 
Zuletzt bearbeitet:
Vielen Dank für die ausfühliche Beschreibung an Hand der Beispiele.
Werde das mal mit ein paar Versuchen mit den Dosen in die Tat umsetzen.
 
Neue Beta 4916.

...link gelöscht...

Mit dieser Version gebe ich einmal die erste Beta der SASV5-Reihe heraus. In ihr wurde auch ein älteres Problem mit psgs gelöst. Es kam vor, wenn psgs auf das Web zugreifen und der angesprochene Server nicht schnell genug antwortet, dass dann die Rückinformationen nur eine Fehlerinformation beinhalten. Nun wartet das psg auf die Antwort, auch wenn es etwas länger dauert. Sollte es damit Probleme geben, bitte melden.

In dieser Beta ist bereits alles für Sprachausgabe (espeech) optimiert. Es werden jedoch von mir keine Beispielpsgs in der ZIP-Datei mitgeliefert.

Wer Interesse daran hat, seinem Pi das Sprechen beizubringen, der sollte bitte einen neuen Thread dazu öffnen. Es ist nicht ganz einfach, aber machbar. Da ich momentan noch verschiedene Touchscreens für den Pi teste, wird eine endgültige SASV5 bzw. SASV5+ noch etwas dauern. Mit der jetzigen Beta werden zumindest schon die meisten Schnittstellen mitgeliefert.

Bei mir läuft inzwischen eine vorläufige SASV5+ und programmiert sogar meine Dreambox. Dabei hinterlege ich nur in einer TV-Config-GUI den Namen der Sendung (oder Teile davon), nach denen im EPG oder in Web-TV-Zeitungen gesucht werden soll. Dazu kann ich Zeitfenster festlegen, in denen die Sendung laufen soll. Eine angenehme Sache, da kurzfristige Programmänderungen mich nun nicht mehr schrecken können.

Ein Beispiel:

Die Nachrichtensendung heute soll aufgenommen werden, aber nur die Hauptsendung. Durch Sportereignisse wird diese aber nicht garantiert um 19 Uhr ausgestahlt.

Umgesetzt und mit SASV5+ gesteuert (Gibt auch ein GUI dafür, um sastv.conf zu pflegen):
sastv.conf:
heute;ZDF;18:00;20:00;;rec;5;5

bedeutet:
Sendung:heute
Sender:ZDF
Zeitfenster, in der die Sendung startet:18 Uhr bis 20 Uhr
jeden Tag
aufnehmen
Vorlauf:5 min
Nachlauf:5 min

Wird nun irgendwann die heute-Sendung laut EPG oder Web-TV-Zeitung zwischen 18 und 20 Uhr ausgestrahlt wird sie mit 5 Minuten Vor- und Nachlauf aufgezeichnet.

Das ist nur ein kleines Beispiel für die Möglichkeiten, die noch so anstehen. ;)
 
Zuletzt bearbeitet:
großes Kino; scheint auf Anhieb zu laufen, inkl. der Heizungssteller ... Vielen dank, weiter Rückmeldung in den nächsten Tagen, ist ja täglich im Einsatz bei uns.
 
@Jl3
mir ist aufgefallen du hast bei der Installation mit Jessie auf dem Raspberry was geändert.
sshd_config abändern!, das ist richtig und wichtig!
aber wenn ich mit Jessie weitermache kommt bei der Apache2 Installation noch ein Fehler.
Paket php-dom nicht gefunden!
scheint nicht wichtig zu sein, Sas4 läuft bis jetzt auch ohne!
 
php-dom ist angeblich in der apache Grundinstallation automatisch enthalten. Wird bei der pdf-Erzeugung der Wetterinfo-E-Mail benötigt. Muss ich mit Jessie noch testen. Bei Jessie hat sich so einiges verändert. Ich bin noch am Basteln. Hab mir gestern leider meine Datensicherungs-HDD mit einem Jessie-Image zerschossen (falscher Laufwerksbuchstabe bei Win32DiskImager gewählt, alle Daten versehentlich überschrieben). Daher hat das noch eine höhere Priorität, aber ich habe noch etliche Stellen in Jessie gefunden, die nicht wie bei Wheezy sind und getestet werden müssen. Kommt noch. ;)
 
hab ich heute Mittag auch festgestellt das mit Jessie nicht alles so richtig funktioniert!

z.B. der Abschnitt Karten zugriffe veringern, beinahe total Absturz, hab ihn aber nach 2 Stunden wieder retten können, nachdem ich alles rückgängig gemacht habe, was nicht ganz einfach war!
 
Holen Sie sich 3CX - völlig kostenlos!
Verbinden Sie Ihr Team und Ihre Kunden Telefonie Livechat Videokonferenzen

Gehostet oder selbst-verwaltet. Für bis zu 10 Nutzer dauerhaft kostenlos. Keine Kreditkartendetails erforderlich. Ohne Risiko testen.

3CX
Für diese E-Mail-Adresse besteht bereits ein 3CX-Konto. Sie werden zum Kundenportal weitergeleitet, wo Sie sich anmelden oder Ihr Passwort zurücksetzen können, falls Sie dieses vergessen haben.