Jalousiemaster / Jalousien steuern mit LCN

Hallo Stefan,

gilt das obige in Verbindung mit meinem Script?
und wenn ja, wie findest du heraus, wann ‚nach Jalousielaufzeit‘ ist?
und was wenn du die Lammellen geschlossen haben willst?

mfg
Smudo

Hallo Smudo,

die IDs sind geändert aber leider fahren nur einige Jalousien. Das erste Relais ist das Motorrelais und das zweite das Richtungsrelais - passt also.

Leider fehlen mir einige Deiner Variablen immer noch. Ich hoffe, ich bringe Dich nicht zur Verzweifelung :wink:

Gr, Stromer

Hallo Stromer,

die fehlenden Variablen sollten unterhalb der Status Variablen stehen. Klick mal auf das ‚+‘ vor der Status Variablen. Natürlich sind nur bei den Jalousien die richtigen Variablen angelegt, die auch jetzt funktioniert haben.

Für die anderen Jalousien gilt: Die IDs kontrollieren. Was anderes kann es nicht sein.

Wenn es dann immer noch nicht geht, installier schon mal Teamviewer, dann schauen wir mal zusammen da rein.

mfg
Smudo

Edit: Die Variable 14847 kannst du löschen. Die ist durch die falschen IDs von vorher entstanden.

Hi Smudo,

ein neuer Rechner und plötzlich kommt Leben ins Haus. Ich habe nur die Installation umgezogen und keine Veränderungen gemacht…

Leider gehen alle Jalousien (bis auf eine) beim initialisieren nicht hoch sondern runter. Wo kann ich das im Script ev. anpassen? oder macht es Sinn, alle Relais umzuklemmen?

Gr, Stromer

Hat es denn vorher schon mal richtig funktioniert ?

Gruß
Bruno

Nein…

Dann sind die Jalousien falsch angeklemmt. Das kannst du testen, indem du einfach in der LCN-Pro mal eine manuelle Fahrt nach oben schaltest. Dann werden die Jalousien nach unten fahren. Die Fahrtrichtungen sind also seitens LCN klar definiert.

Mein Script interessiert das aber relativ wenig, es geht halt nur alles anders herum. Du musst dann die Laufzeiten für hoch und runter umdrehen und wenn du die direkten Befehle ausführen willst, halt auch den Befehl ‚hoch‘ angeben, wenn du ‚runter‘ meinst. Die Positionierung funktioniert aber trotzdem, natürlich auch anders herum.

Es besteht also nicht zwingend Bedarf, die Kabel umklemmen zu lassen. Es wäre natürlich trotzdem schön, wenn es richtig wäre.
Sollten die Jalousien nach dem Zufallsprinzip angeklemmt sien, also manche Jalousien richtig und mache falsch angeklemmt sein, funktionert das ganze dann nicht mehr. (jedenfalls nicht mehr die Gruppenfunktionen)

mfg
Smudo

Hi Smudo,

mal ein schnelles Feedback. Ich habe alle Relais umgeklemmt - Ordnung muss sein :).

Jetzt läuft alles wie gewünscht bis auf ein Fenster bei dem die Fehlermeldung mit der Semaphore kommt.

Wenn ich die Jalousien über die Taster direkt vom LCN schalte, habe ich immer wieder mal den Effekt, das sie nur ca. 2-5 Sekunden laufen und dann anhalten. Um also 50 Sekunden eine Fahrt zu schaffen, sind schon mal einige Tastendrücke notwendig. Kann das Verhalten aus dem LCN heraus kommen, oder ist der Grund eventuell in Verbindung mit IPS und dem JM zu suchen?

Gr, Stromer

und ein ganz großes Dankeschön für Deine Unterstützung. :slight_smile:

09.10.2011 11:28:17.716 | 46925 | DEBUG | ExecuteThreadID #2 | Skriptausführung: Jalousiemaster30.ips.php ~ Absender: RunScript
09.10.2011 11:28:17.716 | 37765 | DEBUG | ExecuteThreadID #4 | Ausgeführt, Resultat: 1, Erfolgreich: True, Zeit: 2 ms
09.10.2011 11:28:17.763 | 46925 | ERROR | ExecuteThreadID #2 | [11 Jalousien\Jalousiemaster30] = Warning: Semaphore ‚JM3G‘ was not released!

09.10.2011 11:28:17.763 | 46925 | DEBUG | ExecuteThreadID #2 | Ausgeführt, Resultat: 0, Erfolgreich: False, Zeit: 39 ms
09.10.2011 11:28:17.841 | 41904 | MESSAGE | VariableManager | [11 JM3 Test\EG Rollo2 Tür Küche Relais 8\Status] = True
09.10.2011 11:28:17.841 | 21211 | DEBUG | VariableManager | [11 Jalousien\EG Rollo2 WZ STür rechts Relais 2\Status] = False
09.10.2011 11:28:17.841 | 53142 | DEBUG | VariableManager | [11 Jalousien\EG Rollo2 Fenster Küche Relais 6\Status] = False
09.10.2011 11:28:17.841 | 24420 | DEBUG | VariableManager | [11 Jalousien\EG Rollo2 WZ STür links Relais 3\Status] = False
09.10.2011 11:28:17.841 | 49606 | DEBUG | VariableManager | [11 Jalousien\EG Rollo2 Fenster Küche Relais 5\Status] = False
09.10.2011 11:28:17.841 | 11062 | DEBUG | VariableManager | [11 Jalousien\EG Rollo2 WZ STür links Relais 4\Status] = False
09.10.2011 11:28:17.841 | 31696 | MESSAGE | VariableManager | [11 JM3 Test\EG Rollo2 Tür Küche Relais 7\Status] = True
09.10.2011 11:28:17.873 | 17746 | DEBUG | VariableManager | [11 Jalousien\EG Rollo2 WZ STür rechts Relais 1\Status] = False
09.10.2011 11:28:17.873 | 46925 | DEBUG | ExecuteThreadID #10 | Skriptausführung: Jalousiemaster30.ips.php ~ Absender: Ereignis #56639, Variable #41904, Auslöser: OnChange
09.10.2011 11:28:17.873 | 46925 | ERROR | ExecuteThreadID #10 | [11 Jalousien\Jalousiemaster30] =
Notice: Undefined offset: 16 in C:\IP-Symcon\scripts\Jalousiemaster30.ips.php on line 728

Notice: Undefined offset: 16 in C:\IP-Symcon\scripts\Jalousiemaster30.ips.php on line 728
Jalousie nicht gefunden

09.10.2011 11:28:17.873 | 46925 | DEBUG | ExecuteThreadID #10 | Ausgeführt, Resultat: 0, Erfolgreich: False, Zeit: 7 ms

Hallo Stromer,
schön, daß es dann so weit läuft.
Der Fehler mit der Semaphore/‚Jalousie nicht gefunden‘ kann nach wie vor nur ein Fehler in der Angabe der ID sein. Eventuell noch ein falsch gesetztes Komma in dem Array, in dem du die Angaben machst.

Wenn die Jalousie nur Stückchenweise herunterfährt, liegt das an dem integriertem Endschalter, der offensichtlich der Meinung ist, die Jalousie sei an einem Endpunkt angekommen.
Du kannst dann so oft drücken, bis du unten angekommen bist oder einfach die Jalousie nach oben laufen lassen und ein wenig warten, dann korrigiert sich das Problem von alleine.
Ursache dafür könnnen sein:

  1. Die Jalousie wurde nicht initialisiert. (z.B: nachträglich hinzugefügt)
  2. die gespeicherte Position stimmt nicht, weil IPS aus war als die Jalousie manuell bedient wurde.

Kommt oben genannte Nr.2 häufiger vor, kannst du auch die Endschalterfunktion im Script deaktivieren. Die entsprechende Stelle zum deaktivieren ist im Script erklärt.

Gruß
Smudo

Hallo Smudo,
ich habe heute Dein Skript für die LCN Jalousien eingebunden (Bild „Jalousien IPS.jpg“). Funktioniert wunderbar :-). Vielen Dank dafür. Auch für die super Anleitung. Bin IPS Neuling und hätte als Software Laie ohne Dein Skript es nicht hinbekommen, Jalousiengruppen anzusprechen. Hatte zwar in der LCN Software direkt Gruppen definiert, aber diese kann ich aus IPS nicht ansprechen.

Zur Visual in der Webfront hätte ich eine Frage. Wäre es denkbar über Dein Skript, variable/dynamische Gruppen zu definieren. Mein Gedanke war im Webfront direkt in den Instanzen der einzelnen Jalousien oder in einer separaten Instanz „Toggle Buttons“ zu erstellen, die vor der Bedienung der „Variablen Gruppe abgefragt werden“ (Bild „Jalousien Test IPS.jpg“ (noch ohne Funktion))

 
if ($Toggle_Wohn == true) { $dynGruppe0 = "Var_Gruppe";} else { $dynGruppe0 = "";} 
if ($Toggle_Flur == true) { $dynGruppe1 = "Var_Gruppe";} else { $dynGruppe1 = "";}
if ($Toggle_Gast == true) { $dynGruppe2 = "Var_Gruppe";} else { $dynGruppe2 = "";}


"array(40272,27219 ,59,59,"Wohn",$dynGruppe0),
"array(40273,27220 ,59,59,"Flur",$dynGruppe1),
"array(40274,27221 ,59,59,"Gast",$dynGruppe2),


…Skriptteil zum Ausführen der dynmischen Gruppe…


jm3("Gruppe Var_Gruppe",50);

Meinst Du so was funktioniert? Wenn ich es wie oben beschrieben eintrage, trägt er die „Var_Gruppe“ nicht in das Array ein. Gruppiere ich das Komma aus der Variable direkt hinzu „,Var_Gruppe“ bring IPS eine Fehlermeldung…da bin ich mit meinem geringen PHP Latein am Ende…Gibt es in PHP eine Möglichkeit das Array variabel zu erweitern?

Zumindest wäre es, wenn es eine Lösung gibt, damit möglich, sehr flexibel eine bestimmte Anzahl von Jalousien zu definieren und zu bedienen.

In Deiner Beschreibung hast Du geschrieben, das max. 2 Zielfahrten pro LCN Modul gleichzeitig laufen können. Gilt das auch für die Funktionen „jm3($Jal_ID,$soll;“ mit $soll = „hoch“ und „runter“ oder nur, wenn ich für $Soll einen Wert eingeben? Wird dabei auch der Hardware Timer benutzt?
Verstelle den Öffnungswinkel meiner Lamellen mit …

    
    jm3($Jalo,"runter");
    IPS_Sleep(200);
    jm3($Jalo,"stopp");

… und bin mir nicht sicher, ob das zu Schierigkeiten führen könnte, wenn alle Timer noch durch eine Gruppenfahrt belegt sind und ich dann schon den Befehl absetze.

Ich bin über die beiden Timer der LCN Module schon bei der Hardware Programmierung des LCN Busses gestoßen im Prinzip könnte man doch das Problem umgehen, in dem man Timer auf dem PC laufen läßt und nicht die Hardware Timer nimmt? D.h. ich schalte das LCN Relais Modul direkt über „Motor/Rolladen“ statt mit „Motor Position“ bzw. „Relais-Timer“…aber nur so ein Gedanke ich bin eigentlich sehr Glücklich mit Deinem Skript und habe die Situation in der Hardwareumgebung bis auf die Steuerung der ganzen Gruppen ja auch :wink:

Gruß
Tom

Jalousien IPS.jpg

Hallo zusammen,
habe noch ein wenig probiert und habe das Thema dyn. Gruppe hinbekommen. Hier mein Lösungsansatz. (genaueres auch zu finden unter "mehrdimensionale Array’s mit PhP)

$jalousien =array(
	array(40272,27219 ,59,59,"Wohn","inaktiv","Gruppe1","Gruppe2"),
	array(40273,27220 ,59,59,"Flur","inaktiv","Gruppe1"),
	array(40274,27221 ,59,59,"Gast","inaktiv","Gruppe3"));  


if ($Toggle_Wohn == true) {$jalousien[0][6] = "Var_Gruppe";} else {$jalousien[0][6] = "inaktiv";}
if ($Toggle_Flur == true) {$jalousien[1][6] = "Var_Gruppe";} else {$jalousien[1][6] = "inaktiv";}
if ($Toggle_Gast == true) {$jalousien[2][6] = "Var_Gruppe";} else {$jalousien[2][6] = "inaktiv";}

…Skriptteil zum Ausführen der dynmischen Gruppe…

jm3("Gruppe Var_Gruppe",50);

Gruß Tom

Ich muss das hier leider nochmal hoch holen, da ich es seit 3 Tagen nicht gebacken bekomme :frowning:

Habe die Scripte entsprechend angelegt und die IDs der Status-Variablen der Relais (erstmal nur 3 Rollos von einem Raum) eingetragen. Wenn ich dann das Initialisierungsscript aufrufe, bekomme ich nur folgende Fehlermeldung:


Result for ScriptID #30880:
Notice: Undefined variable: IPS_SENDER in /usr/share/symcon/scripts/30880.ips.php on line 154
Notice: Undefined variable: IPS_SENDER in /usr/share/symcon/scripts/30880.ips.php on line 240
Parameter type of ParentID does not match in /usr/share/symcon/scripts/30880.ips.php on line 684

Die IPS läuft in der Beta auf dem PI - kann das daran liegen?

Gruß,
Torsten

JA!
Darum wäre der Post in dem Unterforum bestimmt besser aufgehoben gewesen.
Und auch wenn ich mich wiederhole:
Dann nimm doch die ‚neue‘ Variable $_IPS[‚SENDER‘], gibt es glaube ich erst seit 2 oder 3 Jahren :wink:
Michael

Hi Michael,

dann entschuldige das ich das hier gepostet habe :slight_smile:

Habe die Verifizierung aber auch gerade gemacht. In der IPS auf dem Windows Rechner läuft das Script 1a

Es hilft auf dem Pi nur leider nicht die eine Variable zu ersetzten. Es fehlt - derzeit zumindest - noch die IPS_Semaphore.

Werde somit das Script von Smudo wohl dahin gehend überarbeiten müssen.

Dennoch Danke für die Bestätigung meiner Annahme,

Torsten

Hallo zusammen,

Ich verwende seid gestern ebenfalls das Skript von Smudo.
Die Initialisierung des Skripts hat Einwand frei funktioniert. Es wurden sämtliche Variablen angelegt
und die beiden Rollos die ich zum Test ausgewählt habe sind nach oben gefahren.
Wenn ich aber nun eine der beiden Rollos auf 50% fahren möchte, wird das Richtungsrelais betätigt,
die Sollposition korrekt berechnet, jedoch das Netzrelais wird nicht aktiviert.
Hier ein Ausschnitt aus den Meldungen:


Hier der Ausschnitt aus den Variablen für den entsprechenden Rollo:

Vielleicht kann mir hier jemand helfen.

Vielen Dank im Voraus!

Grüße Patrick

Hallo Patrick,
evtl. könnte es sein das Du LCN seitig bei der Verdrahtung das Motor- und und Richtungsrelais vertauscht hast. Versuche mal über einen LCN Taster die Jalousie (die ist ja aktuell oben auf den Endschalter) ein Stück nach unten zu fahren und dann ein IPS Kommando für nach unten abzusetzen. Wenn sie dann nach oben fährt, sind die beiden Relais gerade andersrum verdrahtet. Evtl. kann man das im Script von Smudo Software seitig umstellen. Wo weiß ich allerdings nicht.

Bei mir sehen die Variablen aus deinem zweiten Bild so aus

Jalousien schließen:
Status Motorrelais => AN Status Richtungsrelais => AN

Jalousien öffnen :
Status Motorrelais => AN Status Richtungsrelais => Aus

Vielleicht könnte es das sein… bin mir nicht ganz sicher weil zumindest für eine Richtung hoch oder runter beide Relais an sein sollten und dann sollte ein Betrieb in eine Richtung möglich sein…

Grüße Tom

Hallo Patrick,
habe gerade noch einmal in das Script Jalousienmaster30 geschaut. Wenn Motor und Richtungsrelais vertauscht, könntest Du es in der Zeile


$jalousien =array( //Motorstatus, Richtungsstatus, Laufzeit hoch, Laufzeit runter, Name, Gruppe1, Gruppe2, Gruppe3...
   array(54647 /* Motorrelais */ ,52318 /* Richtungrelais */  ,18,18,"RE1_WC","Zentral","EG"),

durch vertauschen der ertsen beiden Objekt IDs, softwareseitig ändern.

Grüße
Tom

Hallo Tom,

danke für die Hilfe!

Die Verkabelung scheint richtig zu sein.

Beim Ausführen von

jm3("Büro","hoch");

fährt der Roll in die obere Endposition, beim Ausführen von

jm3("Büro","runter");

fährt der Rollo in die untere Endposition.

Außerdem habe ich den Relaistimer in der LCN PRO mit Handbedienung/Kommando getestet,
funktioniert auch korrekt.

Komischerweise werden alle Variablen beim Ausführen von

jm3("Büro",50);

korrekt gesetzt, lediglich der Status den Netzrelais wird nicht auf „AN“ gesetzt.
Das Richtungsrelais wird richtig gesetzt.

Hat jemand noch eine Idee?

Gruß Patrick

Hallo Smudo,

dein Script klingt super und wär genau das was ich suche nur leider funktioniert es bei mir nicht
es kommt immer die Fehlermeldung „Jalousie nicht gefunden“

der Fehler soll laut Fehlermeldung hier sein:
function JMGetJalousieData($id, $jalousien) { //Index für abgefragte Jalousie ermitteln
$count = count($jalousien);$jal=0;
while ($jal < $count) {
if (($jalousien[$jal][0] == $id)or($jalousien[$jal][4] == $id)) {
break;
}$jal++;
}
if (($jalousien[$jal][0]!=$id)and($jalousien[$jal][4]!=$id)) {
exit ("Jalousie nicht gefunden
");
}
return $jal;
}

Danke schon mal für die Hilfe
Lisi

Kernel-Version 3.40
Update Version 14.09.15 #3778

error.PNG

Hi Smudo,

das hört sich alles toll an. Geht das Script auch mit Rollläden an Ausgängen, oder müsste ich das über ein Virtuelles Relais und entsprechenden Status-Aktionen machen. Bei mir sind praktisch alle Rollläden direkt an den Ausgängen der Module angeschlossen. Ich suche immer noch nach einer guten IPS Lösung als Ersatz für meine Domiq Scripte.

Ich muss mir mal dein Script genau anschauen, ich denke, da kann ich viel draus lernen.

Gruß und einen schönen Sonntag
Florian