Tastbefehl und Rückmeldung im WebFront

Hallo ich habe folgende Frage, ich habe mir über folgendes Script ein Tastbefehl für meine Garage angelegt:

if ($IPS_SENDER == "WebFront") {
   ModBus_WriteCoil(48498 /*[Module\Wago\Ausgänge\1. Speicher]*/, true); //Ausgang 1 vom Gerät einschalten
   IPS_SetScriptTimer($IPS_SELF, 1); // 1 Sekunde aktiv lassen
}

if ($IPS_SENDER == "TimerEvent") {
   ModBus_WriteCoil(48498 /*[Module\Wago\Ausgänge\1. Speicher]*/, false); //Ausgang 1 vom Gerät ausschalten
   IPS_SetScriptTimer($IPS_SELF, 0);   // Timer ausschalten
}

Dann habe ich eine Boolean mit dem Profil Switch angelegt und als Aktion das oben genannte Script hinterlegt.

Da ich an der Garage einen Endschalter unten habe möchte ich dies im Webfront in der selben Boolean wie der Tastbefehl ist erkennen ob die garage auf oder zu ist. Als eigene Boolean ist das ja kein Problem nur ist das dann verwirrend wenn man im webfront dann für ein objekt zwei zeilen hat.
Also ist es möglich die Meldung des Kontakts mit der des Tasters zu verbinden das dann wenn die Garage auf ist das Feld Grün ist und und wenn ich dann auf aus trücke das sie dann zugeht und dies über den selben signalisiert?

Wäre echt super

Markus

Einfach entsprechend den Befehl der Bool setzen.

if Endschalter zu -> SetValue Taster false. So nach dem Motto.:wink:

Kannst ja das noch mit einbauen.

if ($IPS_SENDER == "Variable")

Sorry kannste mir das genauer erklären?

Danke

Markus

Was soll ich genauer erklären ?

Also ich setzte die Zeile:

if ($IPS_SENDER == "Variable") 

zu meinem Script dazu und dann als Variable die von meinem Endschalter?

Markus

Die Variable deines Endschalter triggert dein Script auf Variablenänderung.

Du holst dir den Zustand dieser Variable und setzt entsprechend deinen Taster auf offen oder zu.

if ($IPS_SENDER == "Variable")
{
    if(GetValue(12345))//Endschalter
    {
        SetValue(23456, false); // Taster Tor zu
    }
    else
    {
       SetValue(23456, true); // Taster Tor offen
    }
}
 

Meinst du dann so ?
Sorry

if ($IPS_SENDER == "WebFront") {
   ModBus_WriteCoil(17471 /*[Module\Wago\Ausgänge\2. Flur - OG]*/, true); //Ausgang 1 vom Gerät einschalten
   IPS_SetScriptTimer($IPS_SELF, 1); // 1 Sekunde aktiv lassen
}

if ($IPS_SENDER == "TimerEvent") {
   ModBus_WriteCoil(17471 /*[Module\Wago\Ausgänge\2. Flur - OG]*/, false); //Ausgang 1 vom Gerät ausschalten
   IPS_SetScriptTimer($IPS_SELF, 0);   // Timer ausschalten
}
if ($IPS_SENDER == "Variable")
{
    if(GetValue(52264 /*[Module\Wago\Eingänge\2. Flur - OG\Value]*/))//Endschalter
    {
        SetValue(23799 /*[Module\Wago\Scripte\Taster]*/, false); // Taster Tor zu
    }
    else
    {
       SetValue(23799 /*[Module\Wago\Scripte\Taster]*/, true); // Taster Tor offen
    }
}

Markus

Genau. Nur das Du jetzt deinen Flur steuerst. :smiley:

Achso ja ups, aber da ändert sich nix, habe das script dan jetzt einer boolean mit profil switch zugeordnet, keine änderung

Markus

:confused: Du sollst das Script zusätzlich über die Variable triggern(Ausgelöstes Ereignis). Siehe oben.

Alles andere bleibt, wie es war.

Ah doch scheint zu gehen, habe ein ereigniss hinzugefügt bei änderung der variablen endschalter wird das script gestartet, wird dadurch nicht wider der taster betätigt, da ja das script ausgeführt wird?

Markus

Nein, nur wenn du im Webfront klickst. Du solltest dich mit der ganzen Materie mal ein wenig auseinander setzen. Wenn man den Ablauf versteht, ist manches einfacher. :wink:

Ja danke, bin ich ja dabei, daswegen frag ich ja.

Will ja net unverschämt sein aber ist es auch möglich das im webfront nur ein buton angezeigt wird der dann rot und grün ist ?

Danke

Markus

Hab nachsicht mit mir bin ganz frisch, lern aber täglich dazu

Einfach die Variable verstecken. Objekt bearbeiten.

nene das meine ich nicht ich meine das es nicht mehr das doppelfeld AN / AUS sondern nur noch ein Button mit wechselnder Farbe je nach zustand

Markus

Das geht mit einer bool Variablen nicht. Dazu musst Du eine Integervariable verwenden und die Assoziationen schalten.

Beispiele gibt es im Forum.

Z.B. hier.

Super danke habe das jetzt soweit hinbekommen, jetzt stört micht nur noch das die rote farbe die ich für aus gewählt habe nicht so beleuchtet ist wie die grüne für ein.

Kann man das Ändern?

Markus

Dann hast Du noch irgendwo einen Fehler drinnen.

Wie Fehler es funktioniert doch nur ist der halt so dunkel rot obwohl ich eine hellrote farbe gewählt habe.

Markus

Hallo Leute,

Ich habe mir auch jetzt meinen Toggle Button eingebaut und alles funktioniert so wie es soll. Eines würde mich jetzt dennoch interessieren:

Ich habe eine Variable X vom Typ Bool (EIN/AUS Befehl). Dieser Variable X weise ich im Variablenprofil das entsprechende ActionsSkript zu, wo ich Abfrage ob der „Sender“ das WebFront war …

if ($IPS_SENDER == "WebFront")

… und starte dann meine Aktionen. Alles gut soweit.

Jetzt möchte ich aber auch, dass das Skript, sowie wie Borastoni schon schrieb, bei einer Variablenänderung gestartet wird. Wenn man nun ein Ereignis manuell hinzufügt, welches auf die Änderung der entsprechenden Variable A (Rückmeldung) kuckt, funktioniert alles ganz prima. Aber warum funktioniert es nicht wenn ich der Variable A im Variablenprofil ein Aktionsskript zuweise in dem abgefragt wird …

if ($IPS_SENDER == "Variable")  

… ob sich die Variable geändert hat :confused: