Easyesp Http

Begonnen von grobby, 22 Januar 2019, 10:30:36

Vorheriges Thema - Nächstes Thema

grobby

Hallo Fhem Freunde,

ich weiß nicht ob ich im richtigen Thema schreibe, ansonsten verschieben.
Da ich seit ca einem Jahr ein DF Player Mini mittels Mysensors und Fhem betreibe wollte ich nun das gleiche Szenario mit einem ESP8266 aufbauen.
Ich habe gelesen das der DFPlayer nun auch in Easyesp unterstützt wird, soweit so gut, mit einem Browser Kommando zB http://192.168.1.35/control?cmd=play,14 kann ich den 14ten Titel auch abspielen. Nun stellt sich mit die Frage wie ich das aus einem notify heraus mit FHEM bewerkstellige, leider werde ich aus den HttpUtils nicht wirklich schlau. Vielleicht hat jemand einen tip wie das geht.

Grobby

grobby

Okay ich antworte mir mal selbst, mittels "wget -q -O /dev/null http://192.168.1.35/control?cmd=play,14" kann ich aus Fhem heraus aus das EasyEsp Modul zugreifen. Weiß jemand ob das Fhem blockiert während der Ausführung? Bei den HttpUtils habe ich sowas gelesen.

Grobby

KölnSolar

Das wird sicherlich blockieren. Ich verstehe nicht so ganz den Sinn von wget. Tut es nicht ein "einfacher" http-Aufruf ?. Den könntest Du dann non-blocking absetzen. Ein Beispiel aus meiner inoffiziellen 70_STV kann ich Dir ggfs. einstellen.
Grüße Markus
RPi3/2 buster/stretch-SamsungAV_E/N-RFXTRX-IT-RSL-NC5462-Oregon-CUL433-GT-TMBBQ-01e-CUL868-FS20-EMGZ-1W(GPIO)-DS18B20-CO2-USBRS232-USBRS422-Betty_Boop-EchoDot-OBIS(Easymeter-Q3/EMH-KW8)-PCA301(S'duino)-Deebot(mqtt2)-zigbee2mqtt

Wernieman

Es blockiert nicht Prinzipiell. Es gibt verschiedene Möglichkeiten, von FHEM heraus andere Programme aufzurufen. Kommt also darauf an, wie man es aufruft.

Es gibt aber auch in FHEM ein "nonblocking-http-Zugriff" .. habe den aber auch noch nie verwendet.

Und Achtung: Der "normale" http-Aufruf durch FHEM ist blockierend ....
- Bitte um Input für Output
- When there is a Shell, there is a Way
- Wann war Dein letztes Backup?

Wie man Fragen stellt: https://tty1.net/smart-questions_de.html

Otto123

Zitat von: grobby am 22 Januar 2019, 10:46:10
Okay ich antworte mir mal selbst, mittels "wget -q -O /dev/null http://192.168.1.35/control?cmd=play,14" kann ich aus Fhem heraus aus das EasyEsp Modul zugreifen. Weiß jemand ob das Fhem blockiert während der Ausführung? Bei den HttpUtils habe ich sowas gelesen.

Grobby
Hi,

wenn Du es genau so machst, wie es oben geschrieben ist, also einfach mit den doppelten Anführungszeichen als FHEM Befehl, wird es im Hintergrund ausgeführt und blockiert nicht!
https://commandref.fhem.de/commandref_DE.html#command

Gruß Otto
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

grobby

Hallo,

danke für die Hinweise, vorallem mit den "". Das klappt auch prima. Noch eine Frage in Verbindung mit dem wget.
In der 99_myutils habe ich eine Sub


sub
disableForSeconds($$)
{
my ($dev, $secs)  = @_;
my $newtime = strftime("%H:%M:%S",localtime(time()+$secs));
fhem("set $dev inactive; defmod at.Disable.$dev.Temporary at $newtime set $dev active");
}

welche ich aus einem Notify aufrufe:


Taster2:on {disableForSeconds ("Alarm_Hund", 900)}


Dies setzt ein anderes Notify um 900 Sek auf Inactive.
Das klappt auch wunderbar, nun möchte ich aber noch einen Sound abspielen um zu signalisieren das die Taste auch gedrückt wurde. In etwa so:


Taster2:on {disableForSeconds ("Alarm_Hund", 900)} ;; "wget -q -O /dev/null http://192.168.1.35/control?cmd=play,36"


Jedoch klappt das nicht. Wo liegt der Fehler ?

Grobby

Otto123

Ich glaube Perl und FHEM in einem Ausdruck geht nicht. Entweder oder
Eventuell so
Taster2:on {disableForSeconds ("Alarm_Hund", 900);; fhem('"wget -q -O /dev/null http://192.168.1.35/control?cmd=play,36"')}
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

grobby

#7
Supi, das funktioniert perfekt. Danke!
Ich hatte auch erst "" anstatt '" probiert, naja und die geschweifte Klammer war natürlich falsch.
Schon funktionell so ein MP3 Funkgong ;-)

Grobby

ps  es geht auch ohne -q -O /dev/null. was passiert wenn man das wegläßt? Müllt es dann den FhemServer zu weil es nicht mehr in den Mülleimer schiebt??