Frage zu HomeMatic HM-PB-2-WM Funk-Wandtaster 2-fach und Lan-Konfigurator

Hallo IPSler,

habe das Forum schon durchsucht jedoch keine passende Antwort gefunden.
Folgendes:

habe mir heute einen HomeMatic HM-PB-2-WM Funk-Wandtaster 2-fach gekauft und würde gerne damit zwei Dinge realisieren:

  1. Wippe nach oben - Licht über „HM-LC-Sw2-FM Funk-Schaltaktor 2-fach“ toggeln heißt:
    Wenn Licht aus dann an oder wenn Licht an dann aus. Ist das möglich?

  2. Wippe nach unten - soll mit einen im WebFront vorhandenen Boolean toggeln, heißt:
    Wenn false dann auf true setzen und umgekehrt genauso wenn true dann auf false setzen.

Edit: dann ist mit noch aufgefallen das wenn ich den Schalter in IPS einbinde und sobald ich Taste der Wert auf true gesetzt wird und auf die darauf folgenden Tastbefehle sich nur die Uhrzeit der letzen Änderung ändert der Wert bleibt auf true. Ist das so richtig? Heißt also das ich ein Ereignis bei Statusaktualisierung einrichten muss?

Wer kann mir da weiter helfen?

Gruß tasmanie

Hallo.

Grundsätzlich geht das was Du machen willst. Ebenso grundsätzlich die Frage ob Du eine CCU hast oder ausschliesslich mit IPS arbeitest.

Wenn Du eine CCU hast würde ich diese Logik dort parken da sie auch dann funktioniert wenn IPS mal offline ist (duck weg).

Im zweiten Fall kannst Du über jeden Tastendruck (Wippe hoch/runter/lang/kurz) eine eigene Aktion/Skript in IPS triggern.

Grüsse.

Ich habe leider keine CCU, habe den Lan-Konfigurator und dann natürlich IPS.

Jedoch müsste mir jemand sagen wie ich das ganze realisieren kann.

Du sagt das ich zwischen lang/kurz unterscheiden kann, wenn ich die Wippe lange betätige sehe ich jedoch keinen unterschied in IPS ausser das sich die Zeit bei INSTALL_TEST alle 2 Sekunden aktualisiert.
Was mache ich falsch?

Unten mal ein paar screenshots:

Dazu musst Du im HM-Konfigurator die Verbindung auf ungesichert einstellen. Dann unterscheidet der BidCos zwischen langem und kurzem Tastendruck. Genaueres mit Screenshot & Co. gab es hier schon im Forum.

so habs! Danke schonmal dafür, jedoch stehe ich immer noch vor dem Problem wie ich Wippe oben/short benutzen kann um ein Boolean im Webfront zu schalten! An/Aus bzw Aus/An, und wie im Punkt 1 beschrieben das Licht ebenfalls!

Bin unterwegs auf Freinacht und beaufsichtige gerade eine Horde halbstarker 8-11-Jähriger die mit Tomaten, Eiern, Klopapier usw. bewaffnet sind. Ist also mit heisser Nadel am iPhone gestrickt und ohne Gewähr.

Skript anlegen und Ereignis auf Variablenaktualisierung der entsprechenden Variable Deines Tasters legen:


<?
$ID = xxxxx; // ID der Status-Variable der HM Instanz die zu schalten ist
$Instanz = IPS_GetParent($ID);
HM_WriteValueBoolean($Instanz, "STATE", !GetValue($ID));
?>

Ja aber ich weiß doch leider nicht was ich als Skript Inhalt schreiben soll? Damit er hin und her schaltet also immer das entgegengesetzte! Kann mir da jemand eine Vorlage posten?

Öhm - meinen letzten Post hattest Du aber schon gelesen? :confused:

Ja klar! Das du gerade unterwegs bist? Und deine Anweisung ein Skript mit Ereigniss bei Variableaktualisierung anzulegen. Das hab ich ja gemacht. Meine frage war doch ob mir jemand ein Skript Beispiel Posten kann der vielleicht nicht unterwegs ist.

Das hatte ich auch gepostet:

<?
$ID = xxxxx; // ID der Status-Variable der HM Instanz die zu schalten ist
$Instanz = IPS_GetParent($ID);
HM_WriteValueBoolean($Instanz, „STATE“, !GetValue($ID));
?>

Oh Sorry das wurde bei tapatalk nicht angezeigt! Entschuldige vielmals!!
Werde es gleich morgen testen und wenn ich noch fragen haben sollte mich wieder melden!

Vielen dank schonmal!

OK Perfekt, schlaten von Homematic Geräten funktioniert prima.

Jetzt brauche ich nur noch ein Skript was mir meinen Boolean hin und her schaltet.

Habe im Webfront einen Schalter Funk An / Funk Aus welches ein Skript anspricht und jenachdem den Funk auf die Lautsprecher schaltet bzw. abschaltet. Zur verdeutlichung noch ein paar Screenshots im Anhang.

Wie kann ich diesen in den entgegegesetzen Zustand schalten?

Funk auf Ela Skript inhalt:

<?

if($_IPS['SENDER'] == "WebFront")
{
    SetValue($_IPS['VARIABLE'], $_IPS['VALUE']);
}

switch((int)$_IPS['VALUE'])
{
    case false:
      IPS_Execute("C:/Program Files/nircmd/nircmd.exe", "mutesubunitvolume Lautsprecher Mikrofon 1", false, false); // Funk an
    break;
    case true:
      IPS_Execute("C:/Program Files/nircmd/nircmd.exe", "mutesubunitvolume Lautsprecher Mikrofon 0", false, false); //Funk aus
    break;
}


?>

funkaufela1.PNG

funkaufela3.PNG

Beispielsweise:


SetValue ($_IPS['VARIABLE'], !GetValue($_IPS['VARIABLE']));

Hallo ich bin’s wieder,

so jetzt hatte ich ein wenig Zeit zum testen.
Ich als PHP Neuling kann leider mit deinem oben genannten Beispiel nichts anfangen. Ich muss dazu sagen das ich mir vorhandene Skripte einfach aus dem Forum kopiert habe und mit meinen ID’s ersetzt habe und sie tadellos funktionieren.

Jetzt zurück zu deinem Beispiel.

Wo muss das hin?
Wo kommt meine ID rein? Bzw. muss meine ID überhaupt irgendwo rein?

Vielleich kannst du mir das etwas genauer erklären? Tut mit leid für den ganzen Aufwand, aber ohne Hilfe komme ich nicht weiter.

Gruß tasmanie

Du legst ein Skript mit dem von mir geposteten Beispiel an. Dieses ordnest Du dann als Aktionsskript der Boolean-Variable zu. Wenn Du die Variable dann in einen Webfront verlinkst sollte diese auf Mausklick umschalten.

$_IPS[‚VARIABLE‘] ermittelt dabei die ID der auslösenden Variable.
GetValue holt den Wert der ermittelten Variable, das „!“ invertiert ihn.
Und Setvalue schreibt ihn zurück.

@tasmanie: Mit Kopieren wirst Du nicht weit kommen. Irgendwann mußt Du auch Lesen und Verstehen. :wink:

Systemvariablen

Ich bin auf dem weg der Besserung und ich gebe mir die größte Mühe alles zu verstehen, ich kann auch sagen das ich den Sinn und die Funktionen immer mehr verstehe und ich ganz stolz auf mich bin!

Ein großes Lob an alle die hier im Forum einem sofort helfen und einem das auch manchmal wunderbar erklären!
Und natürlich IPS selbst welche eine klasse Software ist!!!

@kronos
jetzt wollte ich gerade dein Beispiel einbauen, jedoch habe ich doch in der Boolean-Variable schon ein Aktionsskript damit es vom Webfront aus schaltbar ist.

Kann ich der Boolean-Variable ein zweites Aktions Skript zuweisen? Oder muss ich dein Beispiel meinem vorhandenen Skript hinzufügen wenn ja, wie genau?

Das ist mein vorhandenes Skript:

<?

if($_IPS['SENDER'] == "WebFront")
{
    SetValue($_IPS['VARIABLE'], $_IPS['VALUE']);
}

switch((int)$_IPS['VALUE'])
{
    case false:
      IPS_Execute("C:/Program Files/nircmd/nircmd.exe", "mutesubunitvolume Lautsprecher Mikrofon 1", false, false); // Funk an
    break;
    case true:
      IPS_Execute("C:/Program Files/nircmd/nircmd.exe", "mutesubunitvolume Lautsprecher Mikrofon 0", false, false); //Funk aus
    break;
}


?>

Jetzt verliere ich den Faden. Wenn Du die Variable schon über ein Skript mittels Webfront schaltest - wieso brauchst Du dann ein Skript um die Variable schalten zu können? :confused:

Er versteht halt noch nicht, dass er nur Deinen Einzeiler als Aktionsskript anlegen muss und damit alles erledigt hat. :slight_smile:
Aller Anfang ist halt schwer.