notify Code in 99_myUtils auslagern?

Begonnen von franky08, 18 Juli 2014, 09:40:48

Vorheriges Thema - Nächstes Thema

franky08

Hallo, ich versuche gerade folgenden Code aus der DEF vom notify in die 99_myUtils auszulagern. Leider will das nicht so richtig funktionieren, hat jemand einen Tipp was ich falsch mache?

in der fhem.cfg:

define speech_Rec_TV_an notify .*voiceRecognitionLastResult.*Fernseher.*Wohnzimmer.*(ein|an).* set Dreambox on;; set pifhem {system("irsend SEND_START TV KEY_POWER")};; sleep 2;; set pifhem {system("irsend SEND_STOP TV KEY_POWER")}

baue ich das ganze in die 99_myUtils bekomme ich jedesmal einen Fehler für "set pifhem". pifhem ist ein dummy der die Befehle über fhem2fhem an den Raspi überträgt und dort über IR diverse Device´s steuert.
Auf dem Raspi wird das ganze über:
define n_pifhem notify pifhem.* {Log 3, "$NAME: $EVENT";;fhem("$EVENT")}
ausgewertet.

Wie gesagt, in der DEF des notify´s funktioniert das ganze ausgezeichnet nur mit der 99_myUtils komme ich nicht weiter.

VG
Frank
Debian Bookworm auf HUNSN / Debian Bullseye auf 2.ter HUNSN F2F an 2x RaspiB
mit FHEM aktuell
22Zoll ViewSonic als Infodislay (WVC)
3xHMLAN mit vccu, raspmatic_rpi3, HMIP-HCU1

frank

in der utils-datei sind doppelte semikolon verkehrt.
FHEM: 6.0(SVN) => Pi3(buster)
IO: CUL433|CUL868|HMLAN|HMUSB2|HMUART
CUL_HM: CC-TC|CC-VD|SEC-SD|SEC-SC|SEC-RHS|Sw1PBU-FM|Sw1-FM|Dim1TPBU-FM|Dim1T-FM|ES-PMSw1-Pl
IT: ITZ500|ITT1500|ITR1500|GRR3500
WebUI [HMdeviceTools.js (hm.js)]: https://forum.fhem.de/index.php/topic,106959.0.html

franky08

#2
Das ist klar  ;)
Desshalb hab ich ja geschrieben, dass der gepostete Code aus der fhem.cfg ist. So wie von mir gepostet funktioniert ja auch alles.
In der Utils (wie in Perl üblich, einfache ; )

Die Fehlermeldung im Log:
speech_Rec_TV_an return value: Can't locate object method "set" via package "pifhem" (perhaps you forgot to load "pifhem"?) at ./FHEM/99_myUtils.pm line 89.
VG
Frank
Debian Bookworm auf HUNSN / Debian Bullseye auf 2.ter HUNSN F2F an 2x RaspiB
mit FHEM aktuell
22Zoll ViewSonic als Infodislay (WVC)
3xHMLAN mit vccu, raspmatic_rpi3, HMIP-HCU1

frank

ZitatSo wie von mir gepostet funktioniert ja auch alles.
Zitatat ./FHEM/99_myUtils.pm line 89.
da du nur den funktionierenden code postest, kann man über den fehlerverursachenden code nur spekulieren.  :)

gruss frank
FHEM: 6.0(SVN) => Pi3(buster)
IO: CUL433|CUL868|HMLAN|HMUSB2|HMUART
CUL_HM: CC-TC|CC-VD|SEC-SD|SEC-SC|SEC-RHS|Sw1PBU-FM|Sw1-FM|Dim1TPBU-FM|Dim1T-FM|ES-PMSw1-Pl
IT: ITZ500|ITT1500|ITR1500|GRR3500
WebUI [HMdeviceTools.js (hm.js)]: https://forum.fhem.de/index.php/topic,106959.0.html

betateilchen

falscher Ansatz ;)



sub notify_01 {
  fhem('set Dreambox on');
  my $result = system("irsend SEND_START TV KEY_POWER");
  fhem("set pifhem $result");
  fhem('sleep 2');
  $result =  system("irsend SEND_STOP TV KEY_POWER");
  fhem("set pifhem $result");
  return;
}



Und im notify steht dann einfach:



define speech_Rec_TV_an notify .*voiceRecognitionLastResult.*Fernseher.*Wohnzimmer.*(ein|an).* { notify_01 }



Zitat von: frank am 18 Juli 2014, 10:08:21
in der utils-datei sind doppelte semikolon verkehrt.

Sind sie nicht.
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

franky08

DANKE betateilchen, ich wuste nicht wie ich das set pifhem in der Utils einbauen muss! Gut das du wieder aus dem Urlaub zurück bist  :)

VG
Frank
Debian Bookworm auf HUNSN / Debian Bullseye auf 2.ter HUNSN F2F an 2x RaspiB
mit FHEM aktuell
22Zoll ViewSonic als Infodislay (WVC)
3xHMLAN mit vccu, raspmatic_rpi3, HMIP-HCU1

franky08

Leider funktioniert damit nur der Receiver. Der Befehl set pifhem .... scheint nicht am Raspi anzukommen. Habe erstmal alles wieder ins notify gepackt, wenn mal mehr Zeit ist werde ich nochmal probieren.

P.S. Ist auch nicht so toll wenn der Fernseher dauernd an und ausgeschaltet wird  ;)

VG
Frank
Debian Bookworm auf HUNSN / Debian Bullseye auf 2.ter HUNSN F2F an 2x RaspiB
mit FHEM aktuell
22Zoll ViewSonic als Infodislay (WVC)
3xHMLAN mit vccu, raspmatic_rpi3, HMIP-HCU1

Simon74

Zitat von: betateilchen am 18 Juli 2014, 10:59:13
falscher Ansatz ;)



sub notify_01 {
  fhem('set Dreambox on');
  my $result = system("irsend SEND_START TV KEY_POWER");
  fhem("set pifhem $result");
  fhem('sleep 2');
  $result =  system("irsend SEND_STOP TV KEY_POWER");
  fhem("set pifhem $result");
  return;
}



Und im notify steht dann einfach:



define speech_Rec_TV_an notify .*voiceRecognitionLastResult.*Fernseher.*Wohnzimmer.*(ein|an).* { notify_01 }



Sind sie nicht.

Ich frage mich ob es bei mehreren Spracherkennungs-Notifys nicht möglich ist auch den Erkennungstext mit in myUtils zu bauen ?
(Um alle Abfragewörter untereinander sehen zu können und ev. überschneidende Abfragen auf einen Blick zu erkennen..)

rami

Zitat von: franky08 am 18 Juli 2014, 09:40:48
Raspi überträgt und dort über IR diverse Device´s steuert.

Zwischenfrage: welche IR-Hardware verwendest du am Raspberry ? (Habe ähnliches geplant aber noch nichts vernünftiges gefunden)