[gelöst] Raffstore steuern

Begonnen von günther38, 02 Oktober 2020, 18:50:04

Vorheriges Thema - Nächstes Thema

günther38

#15
Zitat von: enno am 04 Oktober 2020, 21:16:26
Hast du mal versucht den Befehl in der FHEM Statuszeile direkt einzugeben? Lass doch erst mal -q weg, dann müsstest du eigentlich eine Fehlermeldung oder Antwort bekommen. Vielleicht kommst du damit ja weiter.

Gruss
  Enno

Hallo Enno!

Wenn ich wie von dir vorgeschlagen den Befehl,
"wget -O /dev/null http://xxx.xxx.xxx.xxx/?rs3=up"
direkt in der FHEM Statuszeile ausführe, dann klappt es!

Im Logfile steht dann folgendes:

--2020-10-05 12:26:13--  http://xxx.xxx.xxx.xxx/?rs3=up
Connecting to xxx.xxx.xxx.xxx:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: unspecified [text/html]
Saving to: '/dev/null'

     0K                                                        52.4K=0.01s

2020-10-05 12:26:13 (52.4 KB/s) - '/dev/null' saved [596]


D.h. irgentwas passt da in dem DOIF noch nicht, richtig?

Gruss
Günther

Beta-User

#16
Vermutlich hängt das auch am Command-Typ:
https://fhem.de/commandref_modular.html#command

Das muss als System-Kommando zu erkennen sein, evtl. kann es helfen, das in "qx()" einzupacken (blockiert aber ggf.!)...
(Da es den HTTPMOD schon gibt: auch da gibt es die Möglichkeit, direkt set-Kommandos zu implementieren, die man dann für DOIF/ROLLO/... ansprechen kann).

EDIT: das hier hat grade die Suche mit ROLLO und wget zu Tage gefördert: https://forum.fhem.de/index.php/topic,47202.msg757108.html#msg757108
Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: ZigBee2mqtt, MiLight@ESP-GW, BT@OpenMQTTGw | ZWave | SIGNALduino | MapleCUN | RHASSPY
svn: u.a Weekday-&RandomTimer, Twilight,  div. attrTemplate-files, MySensors

enno

dann versuch im DOIF doch mal mit ({qx(wget -O /dev/null http://xxx.xxx.xxx.xxx/?rs3=up)})

Gruss
  Enno
Einfacher FHEM Anwender auf Intel®NUC mit Proxmox und Debian

rr725

#18
so...noch einmal.....so funktioniert es- sprich diese syntax funktioniert.

define Rollo_Kueche_auf DOIF ([Rollo_Kueche] eq "on") ("wget -q -O /dev/null http://xxx.xxx.xxx.xxx/cm?cmnd=power1%20on")  DOELSE ("wget -q -O /dev/null http://xxx.xxx.xxx.xxx/cm?cmnd=power1%20off")

wenn es bei dir so nicht funktioniert überprüfe die berchtigungen. ich habe meinen fhem user in die root gruppe gepackt. somit darf er alles auf systemebene.

Oder.....
Damit der FHEM Benutzer Benutzer "fhem" sudo Befehle ausführen darf, diesen konfigurieren. In der Datei "/etc/sudoers" folgende Zeile hinzufügen:

fhem ALL=(ALL) NOPASSWD: ALL




Beta-User

Zitat von: rr725 am 05 Oktober 2020, 13:50:26
ich habe meinen fhem user in die root gruppe gepackt. somit darf er alles auf systemebene.
...das ist in der Pauschalität definitiv nicht zur Nachahmung zu empfehlen...

(no further comment)
Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: ZigBee2mqtt, MiLight@ESP-GW, BT@OpenMQTTGw | ZWave | SIGNALduino | MapleCUN | RHASSPY
svn: u.a Weekday-&RandomTimer, Twilight,  div. attrTemplate-files, MySensors

rr725

Wieso....jeder sollte wissen was er macht, welche Auswirkungen es hat. Zum testen ?!

Mein raspberry ist nicht mit dem inet verbunden....da ist's egal......


Beta-User

Zitat von: rr725 am 05 Oktober 2020, 14:06:11
Wieso....jeder sollte wissen was er macht, welche Auswirkungen es hat. Zum testen ?!Mein raspberry ist nicht mit dem inet verbunden...
Genau, dann hoffe ich mal, dass du und der TE es jweils wissen, was sie machen...

Und sorry, dass ich den überdeutlichen Hinweis überlesen hatte, dass du nur eine Insellösung betreibst ;) .
Vermutlich habe ich das hier auch nicht richtig interpretiert, wenn ich mit dem mal davon ausgehe, dass das Thema Berechtigungen vom Tisch war...?
Zitat von: günther38 am 05 Oktober 2020, 12:22:46
Wenn ich wie von dir vorgeschlagen den Befehl,
"wget -O /dev/null http://xxx.xxx.xxx.xxx/?rs3=up"
direkt in der FHEM Statuszeile ausführe, dann klappt es!
(Ansonsten bin ich unbelehrbar und bleibe ich bei meiner Auffassung, dass fhem als Systemuser zu halten ist, der keine erweiterten Berechtigungen benötigt!)
Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: ZigBee2mqtt, MiLight@ESP-GW, BT@OpenMQTTGw | ZWave | SIGNALduino | MapleCUN | RHASSPY
svn: u.a Weekday-&RandomTimer, Twilight,  div. attrTemplate-files, MySensors

enno

Zitat von: rr725 am 05 Oktober 2020, 13:50:26
Oder.....
Damit der FHEM Benutzer Benutzer "fhem" sudo Befehle ausführen darf, diesen konfigurieren. In der Datei "/etc/sudoers" folgende Zeile hinzufügen:

fhem ALL=(ALL) NOPASSWD: ALL

Das würde ich freiwillig nicht machen! So wie Günther oben geschrieben hat geht es als FHEM User auch ohne sudo!! Diese Änderung bringt also rein gar nichts ausser ein Sicherheitsproblem. Das Problem ist wohl in DOIF versteckt...

Gruss
  Enno
Einfacher FHEM Anwender auf Intel®NUC mit Proxmox und Debian

rr725

Zitat von: enno am 05 Oktober 2020, 15:50:10
Das würde ich freiwillig nicht machen! .Das Problem ist wohl in DOIF versteckt...

Musst du ja auch nicht....er soll es doch auch nur testen um weiter zu kommen. Nur irgendetwas zu kommentieren bringt ihn nicht weiter.
Das es an doif liegen soll ist quatsch. So wie ich es oben eingefügt habe funktioniert es bei mir. Wo bitte soll dann da Problem bei doif liegen ?!

enno

Zitat von: günther38 am 05 Oktober 2020, 12:22:46
Hallo Enno!

Wenn ich wie von dir vorgeschlagen den Befehl,
"wget -O /dev/null http://xxx.xxx.xxx.xxx/?rs3=up"
direkt in der FHEM Statuszeile ausführe, dann klappt es!

@rr725: einfach mal die Antworten auf meine Vorschlage lesen....
Einfacher FHEM Anwender auf Intel®NUC mit Proxmox und Debian

Damian

#25
Hat schon einer ins Logfile geschaut?

Bei mir liefert "wget -O /dev/null http://xxx.xxx.xxx.xxx/?rs3=up" in der Kommandozeile sowie als Befehl in DOIF
z.B.

defmod di_an DOIF ([FS])("wget -O /dev/null http://xxx.xxx.xxx.xxx/?rs3=up")

die gleichen Ergebnisse.

Das hätte ich auch nicht anders erwartet, da DOIF die gleichen FHEM-Funktionsaufrufe benutzt.
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

günther38

Kannst du mir bitte die Definition des Schalters "FS" von
defmod di_an DOIF ([FS])("wget -O /dev/null http://xxx.xxx.xxx.xxx/?rs3=up")
dazu schreiben?
Eventuell mache ich da etwas falsch.





Damian

Zitat von: günther38 am 07 Oktober 2020, 22:19:21
Kannst du mir bitte die Definition des Schalters "FS" von
defmod di_an DOIF ([FS])("wget -O /dev/null http://xxx.xxx.xxx.xxx/?rs3=up")
dazu schreiben?
Eventuell mache ich da etwas falsch.

FS ist hier unerheblich, es ist bei mir einfach eine FS20-Taste, damit löse ich die Ausführung aus.
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

rr725

Zitat von: günther38 am 07 Oktober 2020, 22:19:21
Kannst du mir bitte die Definition des Schalters "FS" von
defmod di_an DOIF ([FS])("wget -O /dev/null http://xxx.xxx.xxx.xxx/?rs3=up")
dazu schreiben?
Eventuell mache ich da etwas falsch.

Warum machst du denn nicht was man dir anbietet, wenn man sich schon die Mühe macht ?!
Ich habe dir doch oben ein komplettes fehlerfreies, funktionsfähiges  Beispiel gegeben. Mit allem  pi pa po.


günther38

#29
Hallo!

Ich habe es nun zum Teil geschafft!

Wenn ich den Vergleichswert (UP, DOWN) in die [] mit rein packe anstatt mit "eq" zu arbeiten,



define Schalter1 dummy
attr Schalter1 room Raum1
attr Schalter1 webCmd UP:DOWN

define Raum1.Raffstore1
DOIF ([Schalter1:"UP"]) ("wget -q -O /dev/null http://xxx.xxx.xxx.xxx/?rs3=up")
DOELSEIF ([Schalter1:"DOWN"]) ("wget -q -O /dev/null http://xxx.xxx.xxx.xxx/?rs3=down")




kann ich "Raffstore1" mit "Schalter1" hoch bzw. runter fahren.

Das ganze enthält jetzt noch folgenden Fehler,
Wenn ich z.B. "UP" fahre und danach nochmals den "UP"-Befehl gebe, wird dieser nicht mehr umgesetzt.
Ich muss dann einmal "Down" fahren, danach wird der "UP"-Befehl wieder ausgeführt.
Umgekehrt verhält es sich genau so.

Kann es sein, dass auf den letzten "State" (z.B. UP) geprüft wird und daher dieser nicht nochmal ausgeführt wird, da er ja schon erreicht ist?
Könnt ihr mir disbezüglich nochmal einen Hinweis geben, woran es liegt, bzw. wie ich das lösen könnte?