[Gelöst] Mittels Snom Telefon und Action URL ein Gerät in FHEM schalten (AN|AUS)

Begonnen von techblaster, 29 September 2021, 12:56:48

Vorheriges Thema - Nächstes Thema

techblaster

Hallo zusammen,

ich schlage mich zur Zeit mit einem Problem herum welches für Euch wahrscheinlich einfach zu lösen sein wird. Ich muss dazu sagen, dass ich mich auch nach monatelanger Erfahrung eher noch in die Kategorie Anfänger eingruppieren würde.
Ich möchte mit einer ActionURL vom Telefon aus per Tastendruck ein Gerät (Beleuchtung) ein und ausschalten. Mit dem folgenden Befehl konnte ich bereits das Licht einschalten:
http://192.168.107.101:8083/fhem?cmd=set%20EIB_3106%20on
Um das Licht wieder ausschalten zu können müsste ich eine zweite Taste auf dem Telefon belegen, das finde ich aber eigentlich unnötig. Was muss ich hier tun um eine einfache Änderung zwischen den Zuständen (EIN/AUS) mittels einem Aufruf zu bewerkstelligen?

Viele Grüße

xerion

Ich würde mich  freuen, wenn du meinen Einladungscode für Tibber, der Stromanbieter, der dir hilft, deinen Stromverbrauch zu verstehen und zu reduzieren, nutzt: https://invite.tibber.com/5fc08jbs. So bekommen wir beide 50 Euro und 100 % Ökostrom / https://geld-fuer-eauto.de/ref/334561880

techblaster

Zitat von: xerion am 29 September 2021, 13:04:44
Hallo das Zauberwort nennt sich "toggle" ;-)

Hallo und Danke für Deine schnelle Antwort.
Kannst Du ein kleines bisschen konkreter werden bitte?  :)

xerion

Anstelle von "set on" oder "set off" nimmst du "set toggle" sofern dein Device das unterstützt.  Dann "toggelst" du immer zwischen diesen beiden gewünschten Status.

PS:Am besten keine Screenshots posten sondern ein "list" vom Device dann braucht man auch nicht raten was das Device kann ;-)
Ich würde mich  freuen, wenn du meinen Einladungscode für Tibber, der Stromanbieter, der dir hilft, deinen Stromverbrauch zu verstehen und zu reduzieren, nutzt: https://invite.tibber.com/5fc08jbs. So bekommen wir beide 50 Euro und 100 % Ökostrom / https://geld-fuer-eauto.de/ref/334561880

techblaster

Zitat von: xerion am 29 September 2021, 13:18:42
Anstelle von "set on" oder "set off" nimmst du "set toggle" sofern dein Device das unterstützt.  Dann "toggelst" du immer zwischen diesen beiden gewünschten Status.

PS:Am besten keine Screenshots posten sondern ein "list" vom Device dann braucht man auch nicht raten was das Device kann ;-)

Hallo und vielen Dank für Dein Feedback.
Leider habe ich den Aufruf nicht hinbekommen. Folgendes habe ich versucht:
http://192.168.107.101:8083/fhem?cmd=set%20EIB_3106%20toggle
http://192.168.107.101:8083/fhem?cmd=toggle%20EIB_3106%20on

Was mache ich falsch?  :-\

xerion

Hast du denn geprüft ob du "toggle" über den "set" Befehl in deinem Device überhaupt zur Auswahl hast?
Was sagt denn das Log?
Ich würde mich  freuen, wenn du meinen Einladungscode für Tibber, der Stromanbieter, der dir hilft, deinen Stromverbrauch zu verstehen und zu reduzieren, nutzt: https://invite.tibber.com/5fc08jbs. So bekommen wir beide 50 Euro und 100 % Ökostrom / https://geld-fuer-eauto.de/ref/334561880

techblaster

Zitat von: xerion am 29 September 2021, 13:37:39
Hast du denn geprüft ob du "toggle" über den "set" Befehl in deinem Device überhaupt zur Auswahl hast?
Was sagt denn das Log?
Hi,
ich sehe gerade, dass der toggle-Befehl tatsächlich gar nicht auswählbar ist.
Nach dem Log schaue ich jetzt im Anschluss.

Nachtrag: Also im Log taucht leider nichts brauchbares beim Aufrufversuch auf. In FHEM wird angezeigt: "Unknown command toggle, try help" oder "Unknown argument toggle, choose one of off on on-for-timer on-till raw string value"

rischbiter123

Moin,

kannst du auf den Tastendruck auch ohne Befehl reagieren? Z.B. einen Dummy schalten, auf diesen Tastendruck dann über den Eventmonitor ein notify erstellen. Dort im Ausführungsteil den Lampenstatus abfragen und dann entsprechend den Ein- oder Ausschaltbefehl geben. Das ganze evtl. in die 99_myutils auslagern.

MfG

Andreas
4*Raspi, Max Thermostate und Fensterkontakte, FB7590, Mysensors und NanoCUL, IT und Sonoff, zigbee2mqtt2

techblaster

Zitat von: rischbiter123 am 29 September 2021, 14:01:30
Moin,

kannst du auf den Tastendruck auch ohne Befehl reagieren? Z.B. einen Dummy schalten, auf diesen Tastendruck dann über den Eventmonitor ein notify erstellen. Dort im Ausführungsteil den Lampenstatus abfragen und dann entsprechend den Ein- oder Ausschaltbefehl geben. Das ganze evtl. in die 99_myutils auslagern.

MfG

Andreas
Hi Andreas,

wenn ich Dich richtig verstanden habe, dann meinst Du einen kleinen Umweg einzubauen über einen Dummy-Switch den ich dann via toggel ansteuern könnte und der dann das Device schaltet?
Ja das wäre dann wohl wahrscheinlich die beste Variante. Das teste ich auch gleich mal.

Viele Grüße

rudolfkoenig

Mit folgendem Patch wird das Modul (auch) toggle haben:
Index: FHEM/10_EIB.pm
===================================================================
--- FHEM/10_EIB.pm (revision 25014)
+++ FHEM/10_EIB.pm (working copy)
@@ -301,9 +301,10 @@
my $c = $eib_c2b{$value};
if(!defined($c))
{
- my $resp = "Unknown argument $value, choose one of " . join(" ", sort keys %eib_c2b);
- $resp = $resp . ":slider,$sliderdef" if(defined $sliderdef);
- return $resp;
+                use SetExtensions;
+ my $resp = join(" ", sort keys %eib_c2b);
+ $resp = $resp . ":slider,$sliderdef" if(defined $sliderdef);
+                return SetExtensions($hash, $resp, @a);
}
   
    my $groupnr = 1;

techblaster

Zitat von: rudolfkoenig am 29 September 2021, 14:08:07
Mit folgendem Patch wird das Modul (auch) durch toggle haben:
Index: FHEM/10_EIB.pm
===================================================================
--- FHEM/10_EIB.pm (revision 25014)
+++ FHEM/10_EIB.pm (working copy)
@@ -301,9 +301,10 @@
my $c = $eib_c2b{$value};
if(!defined($c))
{
- my $resp = "Unknown argument $value, choose one of " . join(" ", sort keys %eib_c2b);
- $resp = $resp . ":slider,$sliderdef" if(defined $sliderdef);
- return $resp;
+                use SetExtensions;
+ my $resp = join(" ", sort keys %eib_c2b);
+ $resp = $resp . ":slider,$sliderdef" if(defined $sliderdef);
+                return SetExtensions($hash, $resp, @a);
}
   
    my $groupnr = 1;

Hi,

vielen Dank für Dein Feedback.
Ich habe den Patch installiert mittels: update 10_EIB.pm
Es wurde herunter geladen und erfolgreich installiert, danach noch ein shutdown restart ausgeführt.
Leider taucht toggle beim Device weiterhin nicht mit auf. Habe ich etwas falsch gemacht oder vergessen?

Viele Grüße

rudolfkoenig

ZitatIch habe den Patch installiert mittels: "update 10_EIB.pm".
Diese Aussage ist leider falsch.

Da ich nicht der Maintainer des Moduls bin, habe ich nichts eingeheckt.
Und selbst wenn ich das getan haette, waeren die Aenderungen fuer update erst morgen ab acht verfuegbar.
Wenn Du nicht auf dem Maintainer warten willst, dann musst du selbst die Aenderung entweder mit patch einspielen, oder die Datei mit einem Editor bearbeiten.

techblaster

Zitat von: rudolfkoenig am 29 September 2021, 14:55:12
Diese Aussage ist leider falsch.

Da ich nicht der Maintainer des Moduls bin, habe ich nichts eingeheckt.
Und selbst wenn ich das getan haette, waeren die Aenderungen fuer update erst morgen ab acht verfuegbar.
Wenn Du nicht auf dem Maintainer warten willst, dann musst du selbst die Aenderung entweder mit patch einspielen, oder die Datei mit einem Editor bearbeiten.
Achso, okay, das erklärt warum das Update quasi keinen Effekt hatte.
Bitte entschuldige meine vielleicht etwas sehr laienhaften Fragen, ich habe mit dem Thema Patch bzw. angepassten Patches noch nichts zu tun gehabt. Wie muss ich das denn grundsätzlich ändern?
Muss ich den Patch manuell editieren auf Filesystemebene? Was bedeutet das +/- am Anfang Deines Posts? Vermutlich, dass alles was "+" in das Patchfile reingeschrieben wird und alles was "-" ist muss entfernt werden?

Viele Grüße

rudolfkoenig

ZitatVermutlich, dass alles was "+" in das Patchfile reingeschrieben wird und alles was "-" ist muss entfernt werden?
Als Patchfile bezeichnet man das, was ich hier reinkopiert habe.
Aber Du hast bestimmt 10_EIB.pm gemeint, dann richtig.

Alternativ packt man alle Zeilen in eine Datei (/tmp/eib.patch), und ruft auf der Kommandozeile:
patch /opt/fhem/FHEM/10_EIB.pm /tmp/eib.patch
auf. FHEM muss in beiden Faellen neu gestartet werden.

Beta-User

Zitat von: techblaster am 30 September 2021, 10:29:58
Muss ich [...]
"Müssen" ist ein großes Wort.

Hilfreich wäre, wenn du einen neuen Post im KNX-Bereich aufmachst, und den Maintainer dort bittest, das ggf. einzubauen.

Allerdings fürchte ich, dass da wenig passieren wird, denn der Maintainer hat zumindest das (afaik modernere) Schwestermodul KNX erst jüngst abgegeben.

Falls du also erst am Anfang stehst, wäre ggf. zu überlegen, gleich die Pferde Richtung 10_KNX.pm umzusatteln.

PS: Du kannst dann auch gleich dort anregen, ob man nicht die Doku etc. verbessert. Wenn meine "Hinterkopf-Info" stimmt, wird eigentlich seit langem empfohlen, von Modul EIB auf KNX umzustellen - nur habe ich gestern in der EIB-commandref und im Wiki gesucht und genau das nicht (mehr) gefunden. (Vielleicht sollte man gleich den patch um entsprechende Hinweise in der commandref ergänzen...).
Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: MiLight@ESP-GW, BT@OpenMQTTGw | MySensors: seriell, v.a. 2.3.1@RS485 | ZWave | ZigBee@deCONZ | SIGNALduino | MapleCUN | RHASSPY
svn: u.a MySensors, Weekday-&RandomTimer, Twilight,  div. attrTemplate-files