hatte die Tage Besuch von Audi 2010, wo er mir unter anderem auch mal seine Version vorgestellt hat. Ich muss sagen Respekt. Als Tragbare Haussteuerung, einfach genial.
Ich hoffe, er wird noch ein paar Bilder dazu einstellen und auch ein paar Kommentare.
Das edip-Programm basiert auf dem Entwurf von RWN. Das soll noch an meine Bedürfnisse angepasst werden.
Für die ersten Eindrücke hänge ich mal schnell einige Bilder dran.
Beim zweiten Bild kann man das XBee ahnen. Unter dieser Platine sitzen auch die 4 NiMH-Akkus(2800mAh),
die über die Buchse geladen werden können.
Laufzeit ca. 3-4 Stunden.
Ein Betrieb über die Ladebuchse geht noch nicht.
OK. Das senden in Richtung IPS->xBee-eDip ist klar. Einfach die xBee-Instanz anstatt der jetzigen ComPort-Instanz nehmen.
Und wie verhält es sich mit der RegisterVariable für den Touchbetrieb. Derzeit habe ich ja nur ein eDip am ComPort und damit ist direkt die Variable verknüpft.
Oder anders gefragt. Wie frägst man den Touch von verschiedenen eDip mit xBee-Anbindung ab. Woher weiß ich welches eDip über welchen xBee gesendet hat.
eine Registervariable brauchst Du nicht mehr. Nur den Xbeesplitter.
Beim direkten programmieren der Xbees, Acpi usw weisst man dem Xbee auch eine Nummer zu 1-10 als Beispiel.
Welches Xbee Du dann einem Edip oder was auch immer zuordnest, bleibt dir überlassen. zum senden nach IPS einfach die entsprechene Xbee-Instanz zuweisen, welche ja automatisch angelegt wird unter IPS.
Pcinterface hat intern Nummer 1
Edip1 hat intern Nummer 2 > Xbee Instanz 8803
Edip2 hat intern Nummer 3 > Xbee Instanz 6455
usw.
habe ich jetzt zwar nicht wirklich überrissen aber ich glaube das wird sich dann geben wenn ich die xBees in Betrieb nehmen.
Was einfach nicht in meinen Kopf rein will ist, in welcher Variable steht nachher der Touchstring drin <-A?? der ja im Moment in der Variable „Dateineingang“ landet, wenn ich Dein Beispiel verwende.
Die Eingangsvariable kannst Du jeder einzelnen Xbee-Instanz separat zuweisen.
Bei mehreren Edips muss man den leider beschränkten Zeichensatz von 256 Zeichen entsprechend aufteilen, sofern man verschiedene Funktionen aufrufen will.
Ich habe mein eDip so programmiert, dass beim Aufruf des entsprechenden Untermenues der Name des Menues in der Eingangsvariablen steht.
Das Senden des Namens übernimmt das Untermenues im eDip.
Beispiel:
Wenn ich das Untermenue „Wetter“ aufrufe, steht in der Variablen „Wetter“.
Du kannst natürlich damit auch „dfvnfvjv“ oder irgendeinen anderen Schrott ausgeben lassen.
Bei den Funktionstasten mach ich so:
$id = GetValueInteger("xBee2_Instance") ;
$Schalter = GetValueString("XBee2") ;
if (ord($Schalter[0]) == "27" )
{
$Schalter = chr(ord($Schalter[3])) ;
//echo ($Schalter) ;
SetValueString("XBee_Temp", $Schalter) ;
Switch ($Schalter)
{
Case "a";
FS20_SwitchMode(44978, True);
Break;
Case "A";
FS20_SwitchMode(44978, False); . . .
. . . else
{
Switch ($Schalter)
{
Case "Haupt";
IPS_RunScript("Edip_Hauptmenu");
Break;
Case "Wetter";
IPS_RunScript("Edip_Wetter");
Break;
Case "Keller";. . .
Das wäre meine nächste Frage gewesen. Woher weiß IPS in welchem Menü sich das eDip befindet. Aber das ist noch ferne Zukunft. Im ersten Step mache ich erst einmal eine statische Oberfläche mit Temperaturwerten, ein paar Touchbuttons und den Fensterzuständen.
An dem freien Platz auf der rechten Seite kommt später dann die Raumsteuerung rein.
Kleine Frage am Rande. Kann ich das eDip wenn die Verbindung per xBee hergestellt wird noch mit dem EA-KIT programmieren oder muss ich dafür eine RS232 am eDip bereitstellen. Des Weiteren würde mich noch interessieren mit welcher Datenübertragungsrate das eDip in Verbindung mit einem xBee fährt. Achja. Ich habe vor das Ganze per USB am Server zu betreiben.
Wie bekommt jetzt IPS mit in welchem Raum ich mich im eDip befinde
Kleiner Scherz am Rande Im Wohnzimmer
Ich denke mal wenn Du in dem entsprechenden Raum bist rufts Du auch diesen auf. Macht ja keinen Sinn wenn Du im Wohnzimmer bist und in der Küche das licht anschalten willst. Sinn nur dann wenn Du in die Küche gehen willst, dann rufst Du aber das Menü Küche auf.
Meine Frage geht eher in die Richtung, wie schicke ich die richtigen Daten aus IPS an das eDip.
Da das eDip ja meherer Räume verwaltet, z.B. Wohnzimmer, Küche, …, soll IPS ja die passenden Daten an das eDip senden für den Raum der gerade am eDip angezeigt wird. Damit dieses auch funktioniert muss IPS wissen welcher Raum gerade am eDip angezeigt wird.
Kleines Prozedere:
Ich drücke am eDip die Taste für das Wohnzimmer -> IPS darf nur Daten aus dem Wohnzimmer an das eDip senden. Ich drücke die Taste Küche -> IPS sendet Daten aus der Küche an das eDip.
Klar.
Nehmen wir mal das portable eDip von audi2010. Er kann sich ja in jedem x-beliebigen Raum befinden. Drückt er jetzt auf die Taste für das Wohnzimmer so sollen auch nur die aktuellen Temperaturwerte aus dem Wohnzimmer an das eDip gesendet werden.
Es ist der Befehl #SB „Var“, damit wird der Inhalt von „Var“ in den Buffer des eDips geschrieben und sollte somit in die Variable von IPS geschrieben werden.