Portables Edip

Hallo Ediper :),

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.

Lieber Rainer,
danke für die Blumen.

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.

weitere Bilder folgen

Hallo Rainer,

danke für die Blumen.
reich sie weiter an deine Frau, denn Sie kann mit Sicherheit mehr damit anfangen. :slight_smile:

Ich finde einfach, sowas gehört hier ins Forum und nicht ins stille Kämmerlein :wink:

Hallo Ihr 2,

Gratulation. Das kommt gerade richtig da ich hier an meinem ersten eDip, derzeit noch festverkabelt, spiele.

Falls es hier erlaubt ist hätte ich bezüglich des eDips in Verbindung mit einem xBee einmal ein Frage.

Wie kann ich festlegen

[ul]
[li]Welches eDip ich aus IPS anspreche
[/li][li]Von welchem eDip Daten an IPS gesendet wurden
[/li][/ul]

Falls es hier nicht reinpasst bitte löschen.

Hallo Werner,

Wie kann ich festlegen
Welches eDip ich aus IPS anspreche
Von welchem eDip Daten an IPS gesendet wurden

Antwort, ganz einfach. Da jedes Xbee-Modul eine eigene Adresse hat, welche von IPS aus angesprochen wird, weiß auch dein Edip wo es hingehört.

Vorrausetzung dafür ist, das deine Module (Xbee) entsprechend eingerichtet sind, sprich unterschiedliche Adressen(Modulnummern haben).

Dieses mußt Du direkt dem Xbee mitteilen. Unter IPS werden dann die Module an deinem Master Xbee erkannt.

Frage einfach wenn Du nicht weiter kommst. Bin nicht so der große Erzähler.
Stehe allerdings auch gerne per Telefon zur Verfügung.

Hier mal ein Bild, wo man auch die Adressen sieht.

Xbee_Zuteilung.png

Hallo RWN,

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.

xBee-Register.gif

Hallo Werner,

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.

Hallo RWN,

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.

//Buffer auslesen Dateneingang Register Variable mit Log...
  $eingabe = substr($daten, -1);
  echo $eingabe."
";
  $s = "";
  for($i=0; $i<strlen($daten); $i++)
  {
  $s = $s.intval(ord(substr($daten,$i,1)))." ";

Anschließend steht ja in $s der auszuwertende Teil.

Sorry Werner,

stand auf der Leitung :slight_smile:

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.

Mojn zusammen.

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";. . . 


Na wenn Du schon auf der Leitung stehst :wink:

Wenn ich es dann richtig nachvollziehe müßte es für zwei xBee-eDip-Kombinationen so aussehen.

xBee-Register.gif

Hallo Rainer,

hast Du eine Glaskugel zuhause? :slight_smile:

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.

Hallo Werner,

Nö, das sieht schon so aus wie in meinem Bild.

Klick mal auf deine Xbee Instanz, rechte Maustaste unter der ID-Nummer kannst Du deine Variable eintragen :stuck_out_tongue:

„Du brauchst keine Registervariable!!“

Hallo RWN,

super. Jetzt ist es klar. Hatte in die xBee-Instanz noch nicht näher reingesehen da ich noch keins habe.

Danke, und wieder ein wenig schlauer.

Zum Programmieren nehm ich das eDip raus und setze es in den USB-Adapter.

Hallo Rainer (audi2010),

mit welchem Befehl im eDip sendest Du nach IPS denn entsprechenden Variableneintrag des Menü´s.

Ich rufe ja mit

#AT x1,y1,x2,y2,2,2,"Wohn-|zimmer"

den entsprechenden Raum bzw. das Touchmakro auf. Wie bekommt jetzt IPS mit in welchem Raum ich mich im eDip befinde.

Moin Werner,

Wie bekommt jetzt IPS mit in welchem Raum ich mich im eDip befinde

Kleiner Scherz am Rande :slight_smile: Im Wohnzimmer :smiley:

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. :confused:

Edit: Upps sehe grade, war ja gar nicht gemeint.

Guten Morgen Rainer (RWN),

deine Scherze überraschen mich immer wieder. :smiley:

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.

Hallo Rainer´s,

ich glaube ich habe es selbst gefunden.

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.

Werde es mal testen.