die ersten Fragen

Naja, achte mal in der Variablenliste bei der Variable „LCN_Summe_TesT_Integer“ auf die Update-Time → die sollte sich schon ändern. Der Wert der Variablen (mithilfe von $Summe1) jedoch nicht, da du keinen neuen Wert setzt :rolleyes:

Versuch dieses mal:


 if ( $Status1 == true )  { $Summe1 = $Summe1 + 1; }

Gruss,
Olli

Nicht nur das, auch die Initialisierung von $Summe1 klappt nicht und einen String kann man nicht raufzählen.

$Summe1 = [b]GetValueInteger/b;

boah, ein Anfänger … sieht viel einfacher aus - Danke

Einen noch, dann ist gut (für heute):

Wenn ich jetzt die „echte Summe“ auswerten will, müsste ich bei false das gleiche „Spielchen“ mit -1 machen, richtig? Oder fehlt mir da wieder eine Initialisierung?

Weitere Sensoren sollten per copy/paste nicht das Problem sein …

Sorry, Berufskrankheit :smiley: :cool:

Toni

Wie gesagt… abwarten :cool:

Ich programmier grad ein Modul, dass du dann ganz simpel mit einem PHP-Script bedienen kannst. Für dies Modul ist eine Adminkonsole geplant, die dann per LAN angebunden auf einem anderen Rechner läuft. Die reagiert, wenn sie gestartet ist, dann auf deine Hotkeys und du kannst damit IPS Befehle geben. Das werd ich, wenn es fertig ist kostenlos zur Verfügung stellen. Download über meine Webseite, wenn sie denn dann schon fertig ist, oder hier im Forum, so wie mein SMSWitch.

Eigentlich nicht. IPS ist zwar nicht ganz Media-unfreundlich, aber man kämpft schon ein bissel damit weil es eigentlich nur ein kleines Modul zum Audio abspielen gab. Mittlerweile gits aber ja auch schon ein Winamp-Modul.

So richtig ins Rollen kam das dann als Leute auch, so wie du, nach Raumbeschallung gefragt haben. Daraus hab ich dann meine Ideen für mein Media-Modul gezogen. Nachdem die Machbarkeitsstudien durch waren hab ich eine ausgedehne „Spielphase“ eingelegt. Dort sind dan solche Mini-Projekte entstanden wie das mit der DBox2.

Jetzt bin ich nen deutlichen Schritt weiter und progge (fast) jede freie Minute an dem Modul. Sinn und Zweck soll sein, in jedem Raum auf einfache weise seine Musikausgabe zu steuern. Und zwar so, das das Jeder hinbekommt und eben nicht nur eine Hand voll Technik-Freaks.

Mir schwebt halt soetwas vor:

Winamp_Play("Wohnzimmer", "Lordi - Hard Rock Hallelujah.mp3");
Winamp_Play("Schlafzimmer", "Podcast.Nachrichten");
// Vielleicht ja auch mal irgendwann
DreamBox_Message("Wohnzimmer", "Es regnet - hol die Wäsche rein");

Mittlerweile geht das aber schon über das alleinige abspielen von Musik hinaus. Aber mehr wird noch nicht verraten.

Toni

das ist doch ganz einfach, die Dbox zeichnet doch problemlos alle folgen von „Verliebt in Berlin“ auf, na wenn das kein Argument ist!

und ganz nebenbei… geht leider nur wenn auch ein server im Keller steht der immer laeuft… der muss denn halt auch sein :cool:

Initialiesiert ist $Summe1 bereits wie von ralf beschrieben.

Wenn du $Summe1 bei ==false dekremetieren willst:

  1. um es deutlich zu machen:

if ( $Status1 == true )  { $Summe1 = $Summe1 + 1; } 
if ( $Status1 == false )  { $Summe1 = $Summe1 - 1; } 

  1. mit if-else

if ( $Status1 == true )  { $Summe1 = $Summe1 + 1; } 
else                           { $Summe1 = $Summe1 - 1; } 

  1. die fortgeschrittene Methode:

$Summe1 += $Status1 ? 1 : -1;

PHP-Sprachreferenz: http://de3.php.net/manual/de/langref.php

PHP-Kontrollstrukturen: http://de3.php.net/manual/de/language.control-structures.php

Gruss,
Olli

Die finde ich am schönsten :D. Ich hatte ihm im Bus-Profi-Forum schon die if-else-Variante nahegelegt ;-).

sehr schön …
else ist im bett
zu fortgeschrittener Zeit …

Das Manual nehme ich morgen - es geht - aber ich weiß nicht warum :rolleyes:

Das ganze dann mit Musik - im Keller läuft so wie so noch was - schöne Aussichten :smiley:

Zu einer Summe gehören immer mehrere, ich habe mal mit dem nächsten Status probiert

$Summe1 = GetValueInteger("LCN_Summe_TesT_Integer");
$Status1= GetValueBoolean( "M025B4");  //BMI Buero
$Status2= GetValueBoolean( "M025B5");  //BMI Bad
$Summe1 += $Status1 ? 1 : -1;
$Summe1 += $Status2 ? 2 : -2;

SetValueInteger("LCN_Summe_TesT_Integer", $Summe1);

Als Event-Status habe ich OnChange gewählt (?).
Schaltet B4 ein wird 1 addiert, bei aus werden 3 subtrahiert (= beide aus) - logisch nachvollziehbar, aber nicht das was ich wollte (gebrauchen kann).

Als Endergebnis möchte ich eine auswertbare Summe erhalten, mit der ich je nach Wert (bei Änderung des Wertes) verschiedene Befehle auslöse. (1 an > A, 2 an > B, 1+2 an > C usw.).
Zu den letzten Schritten meiner ersten Übung würde also dann die Auswertung der Summe1 gehören (erste Planung mit 8 Statusmeldungen).

Das Lesen der Manuals empfinde ich als „trocken“ (learning by doing macht mehr Spaß). Es bringt mich auch derzeit nur zu der Auffassung, dass es eine Lösung gibt. Dem blutigen Anfänger fehlt es schon an den Suchbegriffen. Für Begriffserklärungen ist es durchaus hilfreich. Da ich aber so viele Begriffe nicht kenne, klicke ich mich immer „kreuz und quer“ (was meist in „Verwirrung“ endet).
Mit eurer Hilfe fällt es mir leichter.

Vielleicht würde es uns helfen wenn du uns erzählst was genau du vor hast…

so vielleicht?


// true, true, false, false (also 1 an und 2 an, Rest aus) ergibt "C"

// Testvariablen füttern
$Summe=0; // immer bei 0 anfangen, dann alle Stati prüfen

$Status1=true;  // Buero AN
$Status2=true;  // Bad AN
$Status3=false; // Küche AUS
$Status4=false; // Wohnzimmer AUS
    
    // Ab hier wirds interessant
    if ($Status1)
      $Summe = $Summe | 1;
    if ($Status2)
      $Summe = $Summe | 2;
    if ($Status3)
      $Summe = $Summe | 4;
    if ($Status4)
      $Summe = $Summe | 8;
    
// Ausgabe
echo(chr($Summe+65)); // bei mehr als 4 Stati geht dir das Alphabet aus ;)

Auf Kurzschreibweise musst du selbst umbauen, denn davon bin absolut kein Freund. Und sooo viel kürzer ist sie auch nicht.

Toni

Die Kurzschreibweise ist für Anfänger absolut unleserlich :stuck_out_tongue:

Danke, Toni - ich verstehe dein Prinzip :slight_smile:
bis auf:

// bei mehr als 4 Stati geht dir das Alphabet aus :wink:

LCN kann aus max. 12 Statusmeldungen nur 3 Kommandos erzeugen. ALLE (12), EINIGE (1-11), KEINE (0).
Hier (IPS) kann ich auch die Kombination von z.B. Status 2+4 erkennen und auswerten.

Es gibt noch ein Beispiel von einem LCN-Kollegen aus dem Bus-Profi-Forum:

// wenn diese Bedingung erfüllt ist 
if ($MxxxR1 == 1 and $MxxxR5 == 1 and $Mxxx.temp > 10) 
1 {  
echo "Relais 1 und Relais 5 sind angezogen und die Temperatur ist größer 10"; 

1 .....  
1 }  

Ich werde mal beides ausprobieren.

ein schönes Wochenende
Uwe