Autor Thema: Neues Modul: 00_ShellSwitch.pm (neuere Version von 00_GenShellSwitch.pm)  (Gelesen 4820 mal)

Offline DeeSPe

  • Developer
  • Hero Member
  • ****
  • Beiträge: 4187
  • Wer anderen eine Bratwurst brät...
Aus gegebenem Anlass habe ich heute mal im www nach "00_GenShellSwitch.pm" gesucht und diverse merkwürdige Interpretationen dazu gefunden. Die meisten sind mit alten FHEM Funktionen gebaut und haben wenig Funktion für den Endanwender (nur on/off).
Ich selbst benutze das Modul zwar nicht (mehr), aber ich habe das trotzdem mal zum Anlass genommen mir das Modul mal vorzuknüpfen und eine neue Abwandlung davon anzufertigen.
Herausgekommen ist das neue Modul 00_ShellSwitch.pm. Ich habe ihm absichtlich einen anderen Namen gegeben dass man das auch parallel testen kann. Der Name muss aber nicht endgültig sein.
Das neue Modul ist vom Code her viel einfacher aufgebaut als alle anderen Versionen die ich dazu gefunden habe und hat dennoch mehr Funktionen für den Endanwender (weil eben moderner 8)).
Bisher ist on und off integriert und auch alle setextensions wie blink, intervals, on-for-timer, off-till.........
Ganz perfekt ist es noch nicht! Ich könnte mir z.B. vorstellen dass man das auch noch nonblocking hinbekommt.

Da ich selbst gerade keine Verwendung dafür habe, wäre es nett wenn das Modul der Eine oder die Andere mal testen könnte(n).

Einfach das angehängte Modul in den Ordner fhem/FHEM/ kopieren (Modul reload oder FHEM Neustart) und dann wie folgt Device(s) in FHEM definieren:
define <name> ShellSwitch <shell command to execute> <on> <off>
Ich freue mich auf Euer Feedback.

Gruß
Dan

P.S. Gibt es nicht eventuell auch ein ähnliches Modul welches bereits in FHEM inbegriffen ist, oder warum ist sowas nur über andere Webseiten als GenShellSwitch zu finden?
« Letzte Änderung: 17 Oktober 2016, 01:08:02 von DeeSPe »
FHEM 5.9, Brix, VIVO mini, RPi3, Debian Jessie, ZME_UZB1
HM-CFG-LAN, HM-MOD-UART-WIFI, HUE, HarmonyHub, JeeLink, CO20
Hyperion auf RPi Zero W, Sonos, viel Z-Wave und HM
alles per HomeKit steuerbar
MAINTAINER: 22_HOMEMODE, 98_Hyperion, 98_FileLogConvert, 98_serviced

Offline DeeSPe

  • Developer
  • Hero Member
  • ****
  • Beiträge: 4187
  • Wer anderen eine Bratwurst brät...
Hab nochmal eine verbesserte Version hochgeladen.
Hier wird nun auch die minimale Anzahl der übergebenen Argumente richtig gezählt wenn dem auszuführenden Kommando ein einzelner Systembefehl vorangestellt wird, wie z.B. sudo oder perl.
Auch der eventuelle Rückgabewert des aufgerufenen Skripts wird nun in ein Reading result geschrieben, allerdings bisher nur einzeilig und somit nur die letzte Zeile des Rückgabewertes. Das könnte ich noch optimieren und den vollständigen Rückgabewert in das Reading schreiben.

Gruß
Dan
« Letzte Änderung: 16 Oktober 2016, 02:28:21 von DeeSPe »
FHEM 5.9, Brix, VIVO mini, RPi3, Debian Jessie, ZME_UZB1
HM-CFG-LAN, HM-MOD-UART-WIFI, HUE, HarmonyHub, JeeLink, CO20
Hyperion auf RPi Zero W, Sonos, viel Z-Wave und HM
alles per HomeKit steuerbar
MAINTAINER: 22_HOMEMODE, 98_Hyperion, 98_FileLogConvert, 98_serviced

Offline RedCreek

  • New Member
  • *
  • Beiträge: 6
Hi Dan,

super. Vielen Dank.
Ich war aktuell am selben Modul dran, da mir on-till bei GenShellSwitch gefehlt hat.
Hatte hier erstmal nur SetExtensions integriert.

Hab jetzt mal dein Modul verwendet und funktioniert für die ersten Tests.

Was ich noch nicht so gut finde, oder nicht verstehe ...
Bei einem on-till wird ja ein TimeSpec element erstellt
"Steckdose_2_till Next: 15:00:00 at" (von SetExtensions).
Dieses bleibt auch vorhanden, wenn man manuell on/off schaltet.
d.h. es könnte passieren, dass der Befehl aufgerufen wird, obwohl man das gar nicht mehr will.

Wie könnte man sicherstellen, dass der Timer auch gelöscht wird wenn man nur on/off schaltet und der Timer aber aktiv ist ?

Gruß
Volker

Offline DeeSPe

  • Developer
  • Hero Member
  • ****
  • Beiträge: 4187
  • Wer anderen eine Bratwurst brät...
Danke für den Hinweis.
Werde nachher den entsprechenden Befehl noch einbauen, das war gestern irgendwie untergegangen.

Gruß
Dan
FHEM 5.9, Brix, VIVO mini, RPi3, Debian Jessie, ZME_UZB1
HM-CFG-LAN, HM-MOD-UART-WIFI, HUE, HarmonyHub, JeeLink, CO20
Hyperion auf RPi Zero W, Sonos, viel Z-Wave und HM
alles per HomeKit steuerbar
MAINTAINER: 22_HOMEMODE, 98_Hyperion, 98_FileLogConvert, 98_serviced

Offline justme1968

  • Developer
  • Hero Member
  • ****
  • Beiträge: 20271
@DeeSPe: was kann den das modul das nicht mit readingsProxy möglich wäre?

gruss
  andre
FHEM5.4,DS1512+,2xCULv3,DS9490R,HMLAN,2xRasPi
CUL_HM:HM-LC-Bl1PBU-FM,HM-LC-Sw1PBU-FM,HM-SEC-MDIR,HM-SEC-RHS
HUEBridge,HUEDevice:LCT001,LLC001,LLC006,LWL001
OWDevice:DS1420,DS18B20,DS2406,DS2423
FS20:fs20as4,fs20bs,fs20di
AKCP:THS01,WS15
CUL_WS:S300TH

Offline DeeSPe

  • Developer
  • Hero Member
  • ****
  • Beiträge: 4187
  • Wer anderen eine Bratwurst brät...
@DeeSPe: was kann den das modul das nicht mit readingsProxy möglich wäre?

gruss
  andre

Das kann ich Dir nicht beantworten.
Habe mich allerdings auch noch nie mit readingsProxy beschäftigt.
Wenn das readingsProxy kann, wozu gibt es denn dann dieses inoffizielle GenShellSwitch Modul?
Deswegen stellte ich ja auch die Frage ob es nicht ein Modul mit ähnlicher Funktion bereits gibt.

Gruß
Dan
FHEM 5.9, Brix, VIVO mini, RPi3, Debian Jessie, ZME_UZB1
HM-CFG-LAN, HM-MOD-UART-WIFI, HUE, HarmonyHub, JeeLink, CO20
Hyperion auf RPi Zero W, Sonos, viel Z-Wave und HM
alles per HomeKit steuerbar
MAINTAINER: 22_HOMEMODE, 98_Hyperion, 98_FileLogConvert, 98_serviced

Offline justme1968

  • Developer
  • Hero Member
  • ****
  • Beiträge: 20271
Zitat
Wenn das readingsProxy kann, wozu gibt es denn dann dieses inoffizielle GenShellSwitch Modul?
das weiss ich auch nicht :)

das hier wäre eine nicht blockierende version ohne rückmeldung mit on und off:define <name> readingsProxy <name>
attr <name> setList on off
attr <name> setFn { fhem('"<shell command to execute> '. ($CMD eq 'on' ?'<on>':'<off>') .'"') }

blockierend mit rückmeldung geht natürlich auch.

readingsProxy ist aber nicht auf on und off beschränkt sondern man kann beliebige kommandos einbauen. auch z.b. dim oder was auch immer.

über getFn und valueFn kann man auch externe werte abfragen oder den aktuellen wert von einem externen zustand abhängig machen.
« Letzte Änderung: 16 Oktober 2016, 17:45:45 von justme1968 »
FHEM5.4,DS1512+,2xCULv3,DS9490R,HMLAN,2xRasPi
CUL_HM:HM-LC-Bl1PBU-FM,HM-LC-Sw1PBU-FM,HM-SEC-MDIR,HM-SEC-RHS
HUEBridge,HUEDevice:LCT001,LLC001,LLC006,LWL001
OWDevice:DS1420,DS18B20,DS2406,DS2423
FS20:fs20as4,fs20bs,fs20di
AKCP:THS01,WS15
CUL_WS:S300TH

Offline DeeSPe

  • Developer
  • Hero Member
  • ****
  • Beiträge: 4187
  • Wer anderen eine Bratwurst brät...
Klasse dass/wenn es das readingsProxy Modul auch kann.
Aber scheinbar ist das nicht so bekannt denn sonst würden ja die vielen Anfänger mit ihren 433MHz Steckdosen dieses Modul benutzen.
Vielleicht ist es auch für einen so "einfachen" Anwendungsfall für einen Anfänger zu komplex zum Einrichten?
In diese Bresche soll dieses "einfache" Modul springen. 8)

@volker_hielscher:
Ich habe die Version im ersten Beitrag noch mal mit SetExtensionsCancel aktualisiert.
Vielleicht magst Du damit noch mal testen und berichten ob es nun wie gewünscht klappt.
Danke.

Gruß
Dan
FHEM 5.9, Brix, VIVO mini, RPi3, Debian Jessie, ZME_UZB1
HM-CFG-LAN, HM-MOD-UART-WIFI, HUE, HarmonyHub, JeeLink, CO20
Hyperion auf RPi Zero W, Sonos, viel Z-Wave und HM
alles per HomeKit steuerbar
MAINTAINER: 22_HOMEMODE, 98_Hyperion, 98_FileLogConvert, 98_serviced

Offline RedCreek

  • New Member
  • *
  • Beiträge: 6
Hi Dan,

nein das funktioniert nicht. Der Timer ist immer no da.
Folgendes kannst du testen:
set device on-till 17:55
danach
set device off
set device on
-> jetzt schaltet es trotzdem um 17:55 aus. Weiß nicht ob das das normale Verhalten sein soll.

Gruß
Volker

Offline justme1968

  • Developer
  • Hero Member
  • ****
  • Beiträge: 20271
ich habe nicht geschaut was du genau eingebaut hast. aber:

es reicht nicht einfach nur SetExtensionsCancel aufrufen. da die setextensions auch selber wieder on oder off aufrufen wird dannn zwar das internal gelöscht aber der timer nicht angehalten.

du musst darf sorgen das du den normalen on off aufruf vom aufruf über die setextensions unterscheiden kannst. im 31_HUEDevice.pm gibt es ein beispiel wie man das machen kann.

gruss
  andre
FHEM5.4,DS1512+,2xCULv3,DS9490R,HMLAN,2xRasPi
CUL_HM:HM-LC-Bl1PBU-FM,HM-LC-Sw1PBU-FM,HM-SEC-MDIR,HM-SEC-RHS
HUEBridge,HUEDevice:LCT001,LLC001,LLC006,LWL001
OWDevice:DS1420,DS18B20,DS2406,DS2423
FS20:fs20as4,fs20bs,fs20di
AKCP:THS01,WS15
CUL_WS:S300TH

Offline DeeSPe

  • Developer
  • Hero Member
  • ****
  • Beiträge: 4187
  • Wer anderen eine Bratwurst brät...
set device on-till 17:55
danach
set device off
set device on
-> jetzt schaltet es trotzdem um 17:55 aus. Weiß nicht ob das das normale Verhalten sein soll.

Nein, das ist so nicht gedacht.
Ist wohl doch nicht ganz so einfach wie ich gehofft hatte.
Ich schaue es mir später nochmal an und werde es fixen.
Danke für die schnelle Rückmeldung.

Gruß
Dan

P.S. Vielen Dank für den Hinweis Andre.
FHEM 5.9, Brix, VIVO mini, RPi3, Debian Jessie, ZME_UZB1
HM-CFG-LAN, HM-MOD-UART-WIFI, HUE, HarmonyHub, JeeLink, CO20
Hyperion auf RPi Zero W, Sonos, viel Z-Wave und HM
alles per HomeKit steuerbar
MAINTAINER: 22_HOMEMODE, 98_Hyperion, 98_FileLogConvert, 98_serviced

Offline DeeSPe

  • Developer
  • Hero Member
  • ****
  • Beiträge: 4187
  • Wer anderen eine Bratwurst brät...
Mit der im ersten Beitrag nun neu angehängten Version sollte es mit SetExtensionsCancel nun klappen.

Gruß
Dan
FHEM 5.9, Brix, VIVO mini, RPi3, Debian Jessie, ZME_UZB1
HM-CFG-LAN, HM-MOD-UART-WIFI, HUE, HarmonyHub, JeeLink, CO20
Hyperion auf RPi Zero W, Sonos, viel Z-Wave und HM
alles per HomeKit steuerbar
MAINTAINER: 22_HOMEMODE, 98_Hyperion, 98_FileLogConvert, 98_serviced

Offline ManuZz

  • New Member
  • *
  • Beiträge: 10
Hallo,

ich bekomme die ShellSwitch nicht in FHEM eigebaut. Ich sehe die Datei im Order aber nicht unter edit Files in FHEM. Auch wenn ich die config anpasse, bekomme ich beim abspeichern in FHEM eine Fehlermeldung.
Cannot load module ShellSwitch

Habe ich irgendwie verpasst das Modul korrekt zu aktivieren?


Offline DeeSPe

  • Developer
  • Hero Member
  • ****
  • Beiträge: 4187
  • Wer anderen eine Bratwurst brät...
Es kommt in den fhem Ordner (/opt/fhem/FHEM/).
Danach ein "reload 00_ShellSwitch" in die Eingabezeile von FHEM oder ein "shutdown restart".

Gruß
Dan
FHEM 5.9, Brix, VIVO mini, RPi3, Debian Jessie, ZME_UZB1
HM-CFG-LAN, HM-MOD-UART-WIFI, HUE, HarmonyHub, JeeLink, CO20
Hyperion auf RPi Zero W, Sonos, viel Z-Wave und HM
alles per HomeKit steuerbar
MAINTAINER: 22_HOMEMODE, 98_Hyperion, 98_FileLogConvert, 98_serviced

Offline ManuZz

  • New Member
  • *
  • Beiträge: 10
Hey vielen Dank!

den Restart hatte ich schon versucht, aber in den Files habe ich sie trotzdem nicht gesehen.
Ich habe eben den Befehl von dir ausgeführt, da bekam ich die Fehlermeldung: Undefined subroutine &main::ShellSwitch_Initialize called at fhem.pl line 2277


ich habe sie auch an dem selben Pfad abgelegt den du angegeben hattest, auch die Dateiberechtigungen wie bei allen anderen Dateien auf 666 gesetzt.
Zusätzlich habe ich sie auch hier abgelegt: /opt/fhem/www/gplot

Aber leider auch ohne Erfolg.

Das selbe mit der 00_GenShellSwitch.pm die ich auf dem alten Raspberry genutzt habe.

Ich bin auf das 3er umgestiegen und habe auch das neueste RASPBIAN JESSIE installiert.

Es wundert mich das FHEM die Datei nicht einliest. sie war bei der Installation in einer anderen Version schon vorhanden, die ich aber unter edit Files auch nicht sehen konnte. Auch wenn ich das Modul angesprochen habe gab es eine Fehlermeldung.

FHEM habe ich auch schon geupdated, leider auch ohne Erfolg.

EDIT:

Nach dem Restart per Befehl bekomme ich folgende Fehlermeldung:

configfile: Cannot load module ShellSwitch
Cannot load module ShellSwitch
« Letzte Änderung: 22 Oktober 2016, 17:44:39 von ManuZz »

Offline DeeSPe

  • Developer
  • Hero Member
  • ****
  • Beiträge: 4187
  • Wer anderen eine Bratwurst brät...
  • Diese Form der Module sind nicht unter "Edit files" zu sehen!
  • Module gehören nach /opt/fhem/FHEM/
  • Rechte sind anzupassen auf Benutzer fhem und Gruppe dialout mit 664.
  • Danach ein "reload MODULNAME" oder "shutdown restart".
  • Nun sollte der define Befehl funktionieren!

Gruß
Dan
FHEM 5.9, Brix, VIVO mini, RPi3, Debian Jessie, ZME_UZB1
HM-CFG-LAN, HM-MOD-UART-WIFI, HUE, HarmonyHub, JeeLink, CO20
Hyperion auf RPi Zero W, Sonos, viel Z-Wave und HM
alles per HomeKit steuerbar
MAINTAINER: 22_HOMEMODE, 98_Hyperion, 98_FileLogConvert, 98_serviced

RotesPferd

  • Gast
Hallo,
erst einmal herzlichen Dank für das Modul.

Ich bin Neuling was das Thema Heimautomatisierung angeht und habe jetzt meinen alten Raspberry Pi neues Leben eingehaucht.

Raspbian mit FHEM und Tradfri laufen bereits und nun habe ich mir einen einfachen 433 MHz Sender für meine Funksteckdosen gekauft,
welches ebenfalls funktioniert. Die Funksteckdosen kann ich z.B. mit "send 00101 1 0" aus bzw. mit "send 00101 1 1" anschalten.

Jetzt versuche ich den Kommandozeilenbefehl in das Modul zu integrieren was aber leider nicht funktioniert.

Was mache ich falsch? Ich habe mal ein Bild angehängt...

Danke!


Edit:

Auszug aus dem Logile:

2017.10.30 15:29:31 0: Server shutdown
2017.10.30 15:29:35 1: Including fhem.cfg
2017.10.30 15:29:35 3: telnetPort: port 7072 opened
2017.10.30 15:29:37 3: WEB: port 8083 opened
2017.10.30 15:29:37 3: WEBphone: port 8084 opened
2017.10.30 15:29:37 3: WEBtablet: port 8085 opened
2017.10.30 15:29:37 2: eventTypes: loaded 51 events from ./log/eventTypes.txt
2017.10.30 15:29:39 2: ONKYO_AVR avr: Registering ONKYO_AVR for webhook URI ?/ONKYO_AVR ...
2017.10.30 15:29:39 3: Opening avr device 192.168.1.57:60128
2017.10.30 15:29:40 1: Including ./log/fhem.save
2017.10.30 15:29:40 1: usb create starting
2017.10.30 15:29:42 3: Probing CUL device /dev/ttyAMA0
2017.10.30 15:29:42 3: Can't open /dev/ttyAMA0: Permission denied
2017.10.30 15:29:42 1: usb create end
2017.10.30 15:29:42 2: SecurityCheck:  WEB,WEBphone,WEBtablet has no associated allowed device with basicAuth. telnetPort has no associated allowed device with password/globalpassword.  Restart FHEM for a new check if the problem is fixed, or set the global attribute motd to none to supress this message.
2017.10.30 15:29:42 0: Featurelevel: 5.8
2017.10.30 15:29:42 0: Server started with 15 defined entities (fhem.pl:15294/2017-10-20 perl:5.024001 os:linux user:fhem pid:762)
2017.10.30 15:29:42 3: avr device opened
sh: 1: Syntax error: redirection unexpected
sh: 1: Syntax error: redirection unexpected
sh: 1: Syntax error: redirection unexpected
sh: 1: Syntax error: redirection unexpected
sh: 1: Syntax error: redirection unexpected
sh: 1: Syntax error: redirection unexpected
sh: 1: Syntax error: redirection unexpected
sh: 1: Syntax error: redirection unexpected
« Letzte Änderung: 30 Oktober 2017, 16:31:38 von RotesPferd »

Offline DeeSPe

  • Developer
  • Hero Member
  • ****
  • Beiträge: 4187
  • Wer anderen eine Bratwurst brät...
Du musst den kompletten Pfad zum Programm angeben.
Z.B.
define SS ShellSwitch /home/pi/wiringPi/433Utils/RPi_utils/codesend a 1 1 1 0
Und der Benutzer FHEM benötigt die Rechte das Programm ausführen zu dürfen.

Gruß
Dan
FHEM 5.9, Brix, VIVO mini, RPi3, Debian Jessie, ZME_UZB1
HM-CFG-LAN, HM-MOD-UART-WIFI, HUE, HarmonyHub, JeeLink, CO20
Hyperion auf RPi Zero W, Sonos, viel Z-Wave und HM
alles per HomeKit steuerbar
MAINTAINER: 22_HOMEMODE, 98_Hyperion, 98_FileLogConvert, 98_serviced

RotesPferd

  • Gast
Du musst den kompletten Pfad zum Programm angeben.
Z.B.
define SS ShellSwitch /home/pi/wiringPi/433Utils/RPi_utils/codesend a 1 1 1 0
Und der Benutzer FHEM benötigt die Rechte das Programm ausführen zu dürfen.

Gruß
Dan

Irgendetwas mache ich falsch, da das leider auch nicht funktioniert:

Mein Pfad zum Send-Befehl lautet: /usr/local/bin/send

Dieser Befehl auf der Konsole funktioniert: /usr/local/bin/send 00101 1 1

FHEM habe ich die nötigen Rechte an der Datei mit Chown gegeben.


define Stehlampe2 ShellSwitch /usr/local/bin/send 00101 1
bzw.

define Stehlampe2 ShellSwitch /usr/local/bin/send 00101 1 <1> <0>
funktioniert nicht

Offline DeeSPe

  • Developer
  • Hero Member
  • ****
  • Beiträge: 4187
  • Wer anderen eine Bratwurst brät...
Wenn der Benutzer fhem die entsprechenden Rechte hat sollte das gehen:
define Stehlampe2 ShellSwitch /usr/local/bin/send 00101 1 1 0
Gruß
Dan
FHEM 5.9, Brix, VIVO mini, RPi3, Debian Jessie, ZME_UZB1
HM-CFG-LAN, HM-MOD-UART-WIFI, HUE, HarmonyHub, JeeLink, CO20
Hyperion auf RPi Zero W, Sonos, viel Z-Wave und HM
alles per HomeKit steuerbar
MAINTAINER: 22_HOMEMODE, 98_Hyperion, 98_FileLogConvert, 98_serviced

RotesPferd

  • Gast
Wenn der Benutzer fhem die entsprechenden Rechte hat sollte das gehen:
define Stehlampe2 ShellSwitch /usr/local/bin/send 00101 1 1 0
Gruß
Dan

Herzlichen Dank!!! Funktioniert jetzt.

Offline Flori

  • New Member
  • *
  • Beiträge: 3
Hallo :)

Ich versuche gerade meine Funksteckdose mit deinem Modul über FHEM zu steuern aber irgendwie klappt dies nicht so ganz.

Definiert habe ich dies so

define Funksteckdose ShellSwitch /home/pi/433Utils/RPi_utils/send 11001 1 1 0
setuuid Funksteckdose 5e8e032d-f33f-79d9-c300-da56e8e6b2b29eba
attr Funksteckdose room ShellSwitch

Wenn ich im Terminal
/home/pi/433Utils/RPi_utils/send 11001 1 1 eingeben geht sie an, bei /home/pi/433Utils/RPi_utils/send 11001 1 0 geht sie aus

Drücke ich nun auf "On"/"Off" auf der FHEM Seite passiert gar nichts.

Der Event Monitor zeigt mir dies an
2020-04-08 19:36:20 ShellSwitch Funksteckdose off
2020-04-08 19:36:24 ShellSwitch Funksteckdose on
2020-04-08 19:36:25 ShellSwitch Funksteckdose on
2020-04-08 19:36:25 ShellSwitch Funksteckdose off

Meine Rechte von FHEM /opt/fhem
ls -lha /opt/fhem/
insgesamt 680K
drwxrwxrwx 10 fhem dialout 4,0K Apr  3 17:35 .
drwxr-xr-x  4 root root    4,0K Apr  3 17:27 ..
-rw-rw-rw-  1 fhem dialout 328K Apr  8 16:21 CHANGED
-rw-rw-rw-  1 fhem dialout  39K Apr  3 17:35 configDB.pm
drwxrwxrwx 46 fhem dialout 4,0K Apr  3 17:27 contrib
drwxrwxrwx  3 fhem dialout 4,0K Apr  3 17:27 demolog
drwxrwxrwx  4 fhem dialout 4,0K Apr  3 17:27 docs
drwxrwxrwx  6 fhem dialout  32K Apr  8 18:21 FHEM
-rw-rw-rw-  1 fhem dialout 1,8K Apr  8 19:00 fhem.cfg
-rw-rw-rw-  1 fhem dialout  25K Jan 26 14:14 fhem.cfg.demo
-rwxrw-rw-  1 fhem dialout 158K Apr  3 17:35 fhem.pl
drwxrwxrwx  2 fhem dialout 4,0K Apr  3 17:28 log
-rw-rw-rw-  1 fhem dialout  42K Apr  3 17:35 MAINTAINER.txt
-rw-rw-rw-  1 fhem dialout  935 Jan 26 14:14 README_DEMO.txt
drwxrwxrwx  4 fhem dialout 4,0K Apr  3 17:35 restoreDir
drwxrwxrwx  2 fhem dialout 4,0K Apr  3 17:35 unused
drwxrwxrwx  9 fhem dialout 4,0K Apr  8 17:25 www

Die Rechte von 433Utils
drwxrwxrwx 7 pi   pi   4,0K Apr  3 17:49 433Utils

Kann es evtl daran liegen, dass unter dem "define Funksteckdose ShellSwitch /home/pi/433Utils/RPi_utils/send 11001 1 1 0"
er die 0 als "pulseLength" sieht und dementsprechend nichts funkt?

Sending 433 MHz remote plug control codes, hardcoded on wiringpi pin 0.
Usage: /home/pi/433Utils/RPi_utils/send <systemCode> <unitCode> <command> [pulseLength]
systemCode  - First five settings of Type A 10 pole DIP switch, e.g. 11111
unitCode    - Switch number [1 .. 5] or [10000 .. 00001]
command     - 0 for OFF and 1 for ON
pulseLength - optional pulse length




Vielleicht hat der eine oder andere eine Idee und kann mir weiter helfen.



Dankeschön und schöne Grüße aus der Quarantäne
Florian

Offline DeeSPe

  • Developer
  • Hero Member
  • ****
  • Beiträge: 4187
  • Wer anderen eine Bratwurst brät...
Hallo :)

Ich versuche gerade meine Funksteckdose mit deinem Modul über FHEM zu steuern aber irgendwie klappt dies nicht so ganz.

Definiert habe ich dies so

define Funksteckdose ShellSwitch /home/pi/433Utils/RPi_utils/send 11001 1 1 0
setuuid Funksteckdose 5e8e032d-f33f-79d9-c300-da56e8e6b2b29eba
attr Funksteckdose room ShellSwitch

Wenn ich im Terminal
/home/pi/433Utils/RPi_utils/send 11001 1 1 eingeben geht sie an, bei /home/pi/433Utils/RPi_utils/send 11001 1 0 geht sie aus

Drücke ich nun auf "On"/"Off" auf der FHEM Seite passiert gar nichts.

Der Event Monitor zeigt mir dies an
2020-04-08 19:36:20 ShellSwitch Funksteckdose off
2020-04-08 19:36:24 ShellSwitch Funksteckdose on
2020-04-08 19:36:25 ShellSwitch Funksteckdose on
2020-04-08 19:36:25 ShellSwitch Funksteckdose off

Meine Rechte von FHEM /opt/fhem
ls -lha /opt/fhem/
insgesamt 680K
drwxrwxrwx 10 fhem dialout 4,0K Apr  3 17:35 .
drwxr-xr-x  4 root root    4,0K Apr  3 17:27 ..
-rw-rw-rw-  1 fhem dialout 328K Apr  8 16:21 CHANGED
-rw-rw-rw-  1 fhem dialout  39K Apr  3 17:35 configDB.pm
drwxrwxrwx 46 fhem dialout 4,0K Apr  3 17:27 contrib
drwxrwxrwx  3 fhem dialout 4,0K Apr  3 17:27 demolog
drwxrwxrwx  4 fhem dialout 4,0K Apr  3 17:27 docs
drwxrwxrwx  6 fhem dialout  32K Apr  8 18:21 FHEM
-rw-rw-rw-  1 fhem dialout 1,8K Apr  8 19:00 fhem.cfg
-rw-rw-rw-  1 fhem dialout  25K Jan 26 14:14 fhem.cfg.demo
-rwxrw-rw-  1 fhem dialout 158K Apr  3 17:35 fhem.pl
drwxrwxrwx  2 fhem dialout 4,0K Apr  3 17:28 log
-rw-rw-rw-  1 fhem dialout  42K Apr  3 17:35 MAINTAINER.txt
-rw-rw-rw-  1 fhem dialout  935 Jan 26 14:14 README_DEMO.txt
drwxrwxrwx  4 fhem dialout 4,0K Apr  3 17:35 restoreDir
drwxrwxrwx  2 fhem dialout 4,0K Apr  3 17:35 unused
drwxrwxrwx  9 fhem dialout 4,0K Apr  8 17:25 www

Die Rechte von 433Utils
drwxrwxrwx 7 pi   pi   4,0K Apr  3 17:49 433Utils

Kann es evtl daran liegen, dass unter dem "define Funksteckdose ShellSwitch /home/pi/433Utils/RPi_utils/send 11001 1 1 0"
er die 0 als "pulseLength" sieht und dementsprechend nichts funkt?

Sending 433 MHz remote plug control codes, hardcoded on wiringpi pin 0.
Usage: /home/pi/433Utils/RPi_utils/send <systemCode> <unitCode> <command> [pulseLength]
systemCode  - First five settings of Type A 10 pole DIP switch, e.g. 11111
unitCode    - Switch number [1 .. 5] or [10000 .. 00001]
command     - 0 for OFF and 1 for ON
pulseLength - optional pulse length




Vielleicht hat der eine oder andere eine Idee und kann mir weiter helfen.



Dankeschön und schöne Grüße aus der Quarantäne
Florian

Hallo Florian,

ich denke es wird sich um ein Berechtigungsproblem handeln.
Erfordert send nicht sudo Rechte?
Ich nehme an auch bei Dir läuft FHEM unter dem User fhem. Die Berechtigungen auf send sind aber nur für User pi.

Gruß
Dan
FHEM 5.9, Brix, VIVO mini, RPi3, Debian Jessie, ZME_UZB1
HM-CFG-LAN, HM-MOD-UART-WIFI, HUE, HarmonyHub, JeeLink, CO20
Hyperion auf RPi Zero W, Sonos, viel Z-Wave und HM
alles per HomeKit steuerbar
MAINTAINER: 22_HOMEMODE, 98_Hyperion, 98_FileLogConvert, 98_serviced

Offline Flori

  • New Member
  • *
  • Beiträge: 3
Hallo Dan,

vielen Dank für deine Antwort! :)


Ich dachte eigentlich, dass ich durch freigeben des Ordners für alle,

drwxrwxrwx 7 pi   pi   4,0K Apr  3 17:49 433Utils
kein problem mit den rechten hättte, hab aber dann gesehen, dass das Programm "Send" nich ausführbar für alle ist.


Weißt du zufällig, ob es so reichen würde?

sudo chmod 777 /home/pi/433Utils/RPi_utils/send

Entschuldige meine Fragen, bin noch ziemlich neu in Linux.


Schöne Grüße
Florian

Offline DeeSPe

  • Developer
  • Hero Member
  • ****
  • Beiträge: 4187
  • Wer anderen eine Bratwurst brät...
Hallo Dan,

vielen Dank für deine Antwort! :)


Ich dachte eigentlich, dass ich durch freigeben des Ordners für alle,

drwxrwxrwx 7 pi   pi   4,0K Apr  3 17:49 433Utils
kein problem mit den rechten hättte, hab aber dann gesehen, dass das Programm "Send" nich ausführbar für alle ist.


Weißt du zufällig, ob es so reichen würde?

sudo chmod 777 /home/pi/433Utils/RPi_utils/send

Entschuldige meine Fragen, bin noch ziemlich neu in Linux.


Schöne Grüße
Florian

Moin Florian,

probier es doch einfach aus ob es mit "chmod 777" funktioniert, ich kenne das Programm nicht.
Mit sudo musst Du es aber nicht aufrufen? Dann müsstest Du an "visudo" ran.

Gruß
Dan
FHEM 5.9, Brix, VIVO mini, RPi3, Debian Jessie, ZME_UZB1
HM-CFG-LAN, HM-MOD-UART-WIFI, HUE, HarmonyHub, JeeLink, CO20
Hyperion auf RPi Zero W, Sonos, viel Z-Wave und HM
alles per HomeKit steuerbar
MAINTAINER: 22_HOMEMODE, 98_Hyperion, 98_FileLogConvert, 98_serviced

Offline Flori

  • New Member
  • *
  • Beiträge: 3
Danke für deine Unterstüzung, DeeSPe! :)

es lag anscheinend echt nur an den Rechten ... sehr komplex xD

Hab mir den Beitrag https://forum.fhem.de/index.php/topic,12443.0.html als Vorbild genommen aber dein Modul dann eingebunden.

Grüße
Florii



Offline Sutadur

  • New Member
  • *
  • Beiträge: 33
Bei Neuinstallation von FHEM bin ich beim Thema Funksteckdosen auf dieses Modul gestoßen. Das hat auch einwandfrei funktioniert. Ich kriege nicht mehr zusammen, wie ich das bei einer früheren Installation von FHEM hinbekommen habe, aber da war es auf jeden Fall mehr Aufwand, für die Funksteckdosen Ein- und Ausschalter zu definieren. Neben einigen Funksteckdosen habe ich auch das Modul "Fritzbox" aktiviert, um darüber insbesondere das Gäste-Wlan zu schalten. Das funktioniert zwar grundsätzlich auch, allerdings bisher nur über den Befehl "set Fritzbox guestWlan on". Kann man das auch in Verbindung mit ShellSwitch nutzen? Die Vorstellung, damit gleich auch on/off-Schalter zu haben, finde ich recht charmant. Aber so einfach scheint das nicht zu sein, da das Modul wohl in erster Linie für die Umsetzung von Befehlen auf der Ebene der Kommandozeile gedacht ist. Gibt es da dennoch einen Weg? Schon jetzt vielen Dank für Eure Hilfe ... :)
« Letzte Änderung: 21 April 2020, 16:18:18 von Sutadur »