Neue Funktion zum generischen Schalten: RequestAction

Wie spreche ich denn einen Dimmer an? Bei mir wirft das nur Fehler aus.


RequestAction($variableID, $value);

Beachte halt nur, dass $value nicht prozentual, sondern absolut ist. Wenn du prozentual schalten möchtest, dann musst du vorher Minimum und Maximum aus dem Profil auslesen und den absoluten Wert zu deinem gewünschten Prozentsatz berechnen.

Moin,

ich teste gerade ob es sich lohnt meine zentralen Steuerungsprogramme auf RequestAction umzustellen. Bei diesem Testprogramm für einen HM RGBW Controller HM-LC-RGBW-WM erhalte ich die Fehlermeldung, dass die Befehle zum Umschalten der Farbe nicht funktionieren.

RequestAction(53696 /*[Hans\Licht\Hans LED Schrank Dimmer\LEVEL]*/, 0.4);  
sleep(5);
RequestAction(16959 /*[Hans\Licht\Hans LED Schrank Farbe\COLOR]*/, 200);
sleep(5);
RequestAction(16959 /*[Hans\Licht\Hans LED Schrank Farbe\COLOR]*/, 9);
sleep(5);
RequestAction(53696 /*[Hans\Licht\Hans LED Schrank Dimmer\LEVEL]*/, 0.0);
Warning:  No valid action available in C:\IP-Symcon\scripts\18008.ips.php on line 5

Warning:  No valid action available in C:\IP-Symcon\scripts\18008.ips.php on line 7

Gibt es eine Regel an der ich erkennen kann was funktionieren könnte?

Übrigens kann man die ID Objektübersetzung und den Fehlertext nicht aus der webbasierten Konsole unter FF kopieren - mit der legacy Konsole funktioniert dies wie man sieht :wink:

Gruß
Hans

Machen es wir mal konkret.
Ich habe einen Homematic Dimmer den ich zuvor über die Instanz mit 0 für aus und 0.4 für 40% angesprochen habe.

Gewechselt auf RequestAction übergebe ich Werte (getestet 0.4; 40 oder 0 ) und bekomme immer Fehler.

Bei Aktoren funktioniert das mit true oder false perfekt.

Gesendet von iPhone XS mit Tapatalk

@PC Oldie: Haben die Variablen eine Aktion? Kannst du die Variablen also über das WebFront schalten?

@Boui: Was für Fehler kommen denn bei dir? Denn eigentlich sollte das genau so funktionieren

Ich dachte ja auch, dass das so direkt funktionieren sollte.
Aber keine Variante läuft.

Schaue mal zu Hause die Fehlermeldung nach.

Gesendet von iPhone XS mit Tapatalk

Hallo Dr. Niels,

gerade mal ein kleines WF gemacht (nutze sonst immer IPSView). Dabei ist mir aufgefallen, dass man ein WF mit FF in der neuen Konsole mit Rechtsclick im Baum nicht duplizieren kann (ungültiges Objekt) - unter legacy funktioniert es. Beim Duplizieren springt er übrigens immer in die höchste Ebene - bei IPSStudio nimmt er die Instanz darüber was zu weniger Clicks führt :wink:

Nein, die Farbe lässt sich nicht schalten. Die Variable hat auch keinerlei Aktion anders als die Float Variable zum Dimmen. Da ich gelesen hatte, dass alles funktioniert was sich im WF schalten lässt, ist die Fehlermeldung also schlüssig.

Gruß
Hans

Hallo Hans,

Kann es sein, dass vielleicht der Haken bei „benutze Standardaktion“ nicht gesetzt ist?

Gruß

Burkhard

Das geht bei der Instanz auch nicht.
Hier muss zu Fuß (Script und Thema gibt es im HM-Bereich) ein RGB Wert errechnet werden, da dieser HM Controller andere Werte als RGB erwartet.
Michael

Moin Burkhard und Michael,

diese Dimmer benötigen wie Michael bereits schrieb hsv Werte anstelle von rgb Werten. Für mich stellt das kein Problem dar, da meine 12 Dimmer alle über ein Skript gesteuert werden, welche die richtige Instanz für Dimmen, Farbe und Programm ermitteln. Gleichzeitig werden dabei auch noch die Besonderheiten wie z. B. die Rampenzeit … des Dimmers berücksichtigt :wink:

Gruß
Hans

Ok, verstehe. Dann werden die Dimmer aber wohl von IPS noch nicht „vollständig“ unterstützt. Denn dann sollte eine Alexa Einbindung wohl auch nicht gehen…

Da kann IPS nix für.
Das ist einfach wieder Quark von EQ3.
So wie auch die Hex-String Ansteuerung von den Displays.
Mein RGB-Controller liegt wieder in der Kiste.
Michael

Ich bekomme beim Schaltversuch der Level Variable beim Dimmer das Ergebnis.

Gesendet von iPhone XS mit Tapatalk

Ok, das fehlerhafte Skript war ein Standard Actions Skript.
Das hab ich entfernt, dann kommt das:

Nachtrag: bei einem anderen Dimmaktor HM-LC-Dim1TPBU-FM funktioniert das.
Bei einem HM-LC-Dim1PWM-CV kommt der Fehler.

Gesendet von iPhone XS mit Tapatalk

Ok, es war das Actionsscript. Ich hatte es zwar nun gelöscht aber in der Variableneinstellung war das Script noch zugeordnet. Durch das Löschen als unbekanntes Objekt.
Nachdem ich diese Zuordnung auch gelöscht hatte, ging das Schalten mit RequestAction fehlerfrei.

Gesendet von iPhone XS mit Tapatalk

Hallo zusammen, ich hoffe, dass ich nicht zu banal Frage, aber ich habe bisher nicht verstanden, wie ich das RequestAction auf eine Variable anwende. Ja, Doku habe ich gelesen und ich bin auch schon eine ganze Weile dabei, aber mir ist nicht klar, wo ich das eintragen soll?
Aktionsskript auf die auslösende Variable? Bei der Zielvariable?

Beispiel: Variable 12345 sendet float Werte. Diese sollen zum MQTT-Device (ID 98765) per RequestAction.

RequestAction(98765, "Wie bekomme ich hier den Wert von 12345?");  

Muss ich das in ein PHP Skript schreiben und bei Variablen ändeurng von 12345 auslösen lassen?

Besten Dank und viele Grüße

Gute Idee. Und für den Wert nutzt du dann die magische Variable $_IPS[‚VALUE‘] :slight_smile:

paresy

Danke, hat so funktioniert, die MQTT Variable wird also gesetzt.

Leider bekomme ich in meinem Broker nichts rein.
Der ist erreichbar unter 10.1.1.XXX:1883 mit einem Nutzernamen und Passwort.
Muss ich im MQTT Server Modul noch etwas einstellen?
Soll ich das lieber woanders Posten?

Viele Grüße

mhhh… in der Doku ist ‚RequeatAction‘ ja „nur“ bei der Modulentwicklung beschrieben … nutzen kann man den Befehl auch im normalen Script (finde dazu aber nichts in der Doku).
Meine Frage: was tut der Befehl im Hintergrund? Wertet er in irgendeiner Weise aus ob die Action erfolgreich war? Einen Rückgabewert gibt es laut Beschreibung im Entwicklerbereich ja nicht.

Hintergrund: bisher prüfe ich bei schalten eines Homematic Actuators ob der Schaltbefehl auch wirklich durchgeführt wurde (z.B. der State gewechselt wurde)…wenn nicht wiederhole ich timergesteuert ein paar mal bevor ich eine Fehlermeldung signalisiere => wäre toll wenn ich mir den Aufwand sparen könnte …

Gruß, Michael

Echt? Warum das denn?
Ich habe in über 10 Jahren noch keine Situation vorgefunden, bei der ein Befehl nicht umgesetzt wurde.

Wenn Befehle nicht ankommen, dann würde ich an ganz anderer Stelle beginnen.

Und ja, Du kannst Deine Schaltbefehle im Skript umstellen. Nicht mehr die Instanz ansprechen, sondern direkt die zu schaltende Variable.

Gesendet von iPad mit Tapatalk