FHEM Forum

FHEM => Anfängerfragen => Thema gestartet von: ThomasH am 06 Mai 2013, 13:22:39

Titel: Geräte einfach per URL steuern
Beitrag von: ThomasH am 06 Mai 2013, 13:22:39
Hallo,

ich habe einen RaspberryPi und habe mir dort FHEM installiert.
Mein derzeitges Setup sind Funksteckdosen, welche ich mit einem ezControl T-10 steuere.
Dieses Gerät kann mit einfachen URLs arbeiten.

Was ich nicht finden konnte, wie ich nun URLs in FHEM integrieren kann.
Über einen Schupser in die richtige Richtung würde ich mich freuen.

Grüße Thomas
Titel: Aw: Geräte einfach per URL steuern
Beitrag von: Zrrronggg! am 06 Mai 2013, 13:44:41
Ich glaube, deine Frage ist ein bisschen zu vage gestellt.

Was ist Ziel der Übung?
Titel: Aw: Geräte einfach per URL steuern
Beitrag von: ThomasH am 06 Mai 2013, 14:14:19
Hallo,

sorry wenn ich mich missverständlich ausgedrückt habe.

Also momentan steuer ich wie o.a. mittels der Hardware T-10 meine Funksteckdosen.
Im T-10 ist ein eigener kleiner Webserver, mit einer simplen Übersicht, wo ich die Steckdosen mit schalten kann.

Nun würde ich gerne erste Schritte mit FHEM machen und meine Steckdosen darüber steuern.
Da ich den T-10 ja habe, würde ich gerne in FHEM einen Button drücken, der dann mittels URL den Funkbefehl am T-10 auslöst.

Gruß Thomas
Titel: Aw: Geräte einfach per URL steuern
Beitrag von: Dragonfly am 06 Mai 2013, 14:40:19
Stell bitte mal die urls zum einschalten und ausschalten für einen schalter online.
Hab sowas mehrfach im einsatz - und je nach urlaufruf kann man das "gestalten".
Hast du ein passwort im einsatz?
Titel: Aw: Geräte einfach per URL steuern
Beitrag von: ThomasH am 06 Mai 2013, 14:48:59
Hallo Dragonfly,

der Aufbau ist ziemlich simpel: http:192.168.1.4/preset?switch=10&value=off
Ein Passwort nutze ich nicht.

Gruß Thomas
Titel: Aw: Geräte einfach per URL steuern
Beitrag von: Dragonfly am 06 Mai 2013, 15:09:23
Versuch mal:
define T10_Schalter1 dummy
attr T10_Schalter1 group T-10
attr T10_Schalter1 setList on off
define T10_Schalter1_ntfy notify (T10_Schalter1:on.*|T10_Schalter1:off.*) {\
  my $v=Value("T10_Schalter1");;\
  if ($v eq "on") {GetFileFromURL "http:192.168.1.4/preset?switch=10&value=on"};;\
  if ($v eq "off") {GetFileFromURL "http:192.168.1.4/preset?switch=10&value=off"};;\
}
Titel: Aw: Geräte einfach per URL steuern
Beitrag von: Dragonfly am 06 Mai 2013, 15:32:34
Oder auch so:
define T10_Schalter2 dummy
attr T10_Schalter2 group T-10
attr T10_Schalter2 setList on off
define T10_Schalter2_ntfy notify (T10_Schalter2:on.*|T10_Schalter2:off.*) {\
  my $v=Value("T10_Schalter2");;\
  GetFileFromURL "http:192.168.1.4/preset?switch=10&value=" . $v . "";;\
}

und
define T10_Schalter3 dummy
attr T10_Schalter3 group T-10
attr T10_Schalter3 setList on off
define T10_Schalter3_ntfy notify (T10_Schalter3:on.*|T10_Schalter3:off.*) {\
  GetFileFromURL "http:192.168.1.4/preset?switch=10&value=" . Value("T10_Schalter3") . "";;\
}
Titel: Aw: Geräte einfach per URL steuern
Beitrag von: ThomasH am 06 Mai 2013, 16:08:58
Puh böhmische Dörfer!! ;-)
Aber schon mal vielen Dank, dass schau ich mir an.

Gruß Thomas
Titel: Aw: Geräte einfach per URL steuern
Beitrag von: Dragonfly am 06 Mai 2013, 16:43:31
sollten alle 3 gehen - nur hab ich von dir das reinkopiert: http:192.168.1.4/preset?switch=10&value=off
muß aber schon so sein: http://192.168.1.4/preset?switch=10&value=off
Titel: Aw: Geräte einfach per URL steuern
Beitrag von: ThomasH am 11 Mai 2013, 19:30:13
Hallo,

also im HowTo von FHEM habe ich realtiv am Anfang diese Aussage gefunden:

ZitatDefine it for fhem (by typing it in the "Fhem cmd" input field in the browser):

Dieses Input Field benötige ich auch, oder?
Nur wo finde ich das, konnte im HowTo nichts dazu finden?

Gruß Thomas
Titel: Aw: Geräte einfach per URL steuern
Beitrag von: Ralph am 11 Mai 2013, 19:40:55
Guckst Du


(siehe Anhang / see attachement)
Titel: Aw: Geräte einfach per URL steuern
Beitrag von: ThomasH am 11 Mai 2013, 20:46:47
:-) :-) :-)

OK, einerseits: ahhhhhh ;-) anderseits: da soll man mal drauf kommen ;-) --> also Danke für deinen Wink!!

Habs also mal eingefügt

define T10_Schalter1 dummy
attr T10_Schalter1 group T-10
attr T10_Schalter1 setList on off
define T10_Schalter1_ntfy notify (T10_Schalter1:on.*|T10_Schalter1:off.*) {\
  my $v=Value("T10_Schalter1");;\
  if ($v eq "on") {GetFileFromURL "http://192.168.1.42/preset?switch=9&value=on"};;\
  if ($v eq "off") {GetFileFromURL "http://192.168.1.42/preset?switch=9&value=off"};;\
}


und bekomme

Wrong syntax: use define <name> dummy

angezeigt.

Titel: Aw: Geräte einfach per URL steuern
Beitrag von: Dragonfly am 12 Mai 2013, 06:46:52
Es gehört ja auch nicht ins "Input Field".

Edit files (Schaltfläche links)
Dann wählst du die "fhem.cfg" aus und kopierst es dort rein.
Speichern (save) und im "Input Field" rereadcfg eintippen - mit Enter bestätigen (dann liest er die Änderung ein)

Jetzt hast du in "Everything" und "Unsorted" eine neue Gruppe, wo der Schalter drinnen ist.
Titel: Aw: Geräte einfach per URL steuern
Beitrag von: ThomasH am 12 Mai 2013, 09:54:16
Wow - ja so funktionniert das.
Cool vielen Dank für die Beschreibung.

Hab ich diese Beschreibung denn irgendwo übersehen - konnte es im HowTo nirgends finden.

Gruß Thomas
Titel: Antw:Geräte einfach per URL steuern
Beitrag von: chr2k am 05 August 2016, 16:20:45
Top danke. Das hab ich gerade gesucht und sofort gefunden.
Titel: Antw:Geräte einfach per URL steuern
Beitrag von: Brockmann am 05 August 2016, 17:18:15
Nur zur Info, bevor sich das hier verfestigt:
Es ist keine gute Idee, direkt in der fhem.cfg zu arbeiten - gerade für Einsteiger. Man kann und sollte das alles über die Weboberfläche erledigen, bis man genau weiß, was man tut.

Der Grund für die Fehlermeldung: Der Code bestand nicht aus einer, sondern mehreren Anweisungen. Man hätte einfach nur nacheinander
define T10_Schalter1 dummy
attr T10_Schalter1 group T-10
attr T10_Schalter1 setList on off
define T10_Schalter1_ntfy notify (T10_Schalter1:on.*|T10_Schalter1:off.*) {\
  my $v=Value("T10_Schalter1");;\
  if ($v eq "on") {GetFileFromURL "http://192.168.1.42/preset?switch=9&value=on"};;\
  if ($v eq "off") {GetFileFromURL "http://192.168.1.42/preset?switch=9&value=off"};;\
}

eingeben müssen.
Titel: Antw:Geräte einfach per URL steuern
Beitrag von: chr2k am 05 August 2016, 17:31:48
Niemand hat hier behauptet dass man das über die fhem.cfg machen muss?! Nur weil das der Threadsteller vermutlich am Anfang dachte/gemacht hat. :-)

Titel: Antw:Geräte einfach per URL steuern
Beitrag von: Brockmann am 05 August 2016, 17:37:32
Zitat von: chr2k am 05 August 2016, 17:31:48
Niemand hat hier behauptet dass man das über die fhem.cfg machen muss?! Nur weil das der Threadsteller vermutlich am Anfang dachte/gemacht hat. :-)

Doch, ein paar Beiträge zuvor wurde genau das behauptet:
https://forum.fhem.de/index.php/topic,12673.msg77217.html#msg77217
ZitatEs gehört ja auch nicht ins "Input Field".

Edit files (Schaltfläche links)
Dann wählst du die "fhem.cfg" aus und kopierst es dort rein.
Speichern (save) und im "Input Field" rereadcfg eintippen - mit Enter bestätigen (dann liest er die Änderung ein)

Jetzt hast du in "Everything" und "Unsorted" eine neue Gruppe, wo der Schalter drinnen ist.

Und da ja vielleicht noch andere Neueinsteiger auf diesen Thread stoßen, wollte ich es richtig stellen.
Titel: Antw:Geräte einfach per URL steuern
Beitrag von: chr2k am 05 August 2016, 17:39:09
Ups, sorry, das habe ich, da ich erkannte dass es einzelne Befehle fürs Input Feld sind glatt links liegen lassen.
Titel: Antw:Geräte einfach per URL steuern
Beitrag von: marvin78 am 05 August 2016, 17:39:31
In dem zitierten Beitrag steht noch viel mehr Quatsch. Bitte ignorieren.
Titel: Antw:Geräte einfach per URL steuern
Beitrag von: chr2k am 06 August 2016, 01:13:05
Wie bekomme ich denn den GetFileFromURL Befehl so umgemodelt, dass ein Shell Befehl ausgeführt wird? Mein FHEM läut auf einem RPi.

Habe in der Commandref vom notify folgendes gefunden global:UNDEFINED.* "send-me-mail.sh "$EVENT"" Das klappt wenn ich das so als notify anlege auch, aber nur mit on, aber in dem Beispiel Code von oben wo bei on die eine URL aufgerufen wird und bei off die andere nicht, auch nicht wenn ich die { zu " ersetze oder was auch immer. Ich möchte bei on einen shell befehl ausführen und bei off einen anderen.

Danke.
Titel: Antw:Geräte einfach per URL steuern
Beitrag von: chr2k am 06 August 2016, 01:18:56
Na toll, zuerst such ich rum, dann schreibe ich meine Frage, dann suche ich weiter udn schwups liegt die Antwort fast auf dem Präsentierteller.

Dieser Beitrag hat mir prompt geholfen: https://forum.fhem.de/index.php/topic,35632.msg279662.html#msg279662

define act_on_door1 notify door1:open { system("sudo python test_signalspeichern.py") }
Titel: Antw:Geräte einfach per URL steuern
Beitrag von: justme1968 am 06 August 2016, 09:57:32
du brauchst keinen system aufruf und auch nicht auf die perl ebene.

den shell auf aufruf in doppelte anführungszeichen und gut ist.

in deinem beispiel oben sind die anführungszeichen um $EVENT falsch.
Titel: Antw:Geräte einfach per URL steuern
Beitrag von: chr2k am 06 August 2016, 16:40:52
Zitat von: justme1968 am 06 August 2016, 09:57:32
du brauchst keinen system aufruf und auch nicht auf die perl ebene.

den shell auf aufruf in doppelte anführungszeichen und gut ist.

Habe diesen Code, der funktioniert (Cam:on.*|Cam:off.*) {   my $v=Value("Cam");;   if ($v eq "on") { system("sudo raspistill -o /opt/fhem/www/pgm2/cam.jpg") };;   if ($v eq "off") { system ("sudo raspistill -o /opt/fhem/www/pgm2/cam3.jpg") };; }
Habe nun versucht deinen Tipp umzusetzen, ohne Erfolg.



Zitat von: justme1968 am 06 August 2016, 09:57:32
in deinem beispiel oben sind die anführungszeichen um $EVENT falsch.

Ist nicht mein Beispiel  ;) Habe ich aus der Commandref übernommen und damit gearbeitet.