Kombination von Handsender und FHEM, schaltet nicht richtig!

Begonnen von Silicium, 01 Januar 2017, 18:32:06

Vorheriges Thema - Nächstes Thema

Silicium

Hallo Freunde,

ich hab ein Problem, ich möchte gerne meine InterTechno Funksteckdosen per FHEM als auch mit meiner Fernbedienung an- und ausmachen können.

Ich hab das den Handsender in FHEM integriert, er empfängt auch den Tastendruck (An, Aus). Ein Notify der im 99_myUtils.pm ein Event auslöst und das dann das Gerät über FHEM dann an- bzw. ausschaltet.

Die Funktionen funktioniert auch soweit, das Gerät wird in FHEM an- und ausgeschaltet, jedoch passiert das nicht wirklich am Gerät, erst nach dem X-ten mal drücken, wenn ich jedoch das zu schaltende Device direkt schalte ("on" oder "off"), schaltet er das das Gerät an oder aus!

nanoCUL:
defmod nanoCUL CUL /dev/serial/by-id/usb-FTDI_FT232R_USB_UART_A104KA4A-if00-port0@38400 1234
attr nanoCUL group CUL
attr nanoCUL model CUL

setstate nanoCUL 2016-12-23 12:29:08 ccconf freq:433.920MHz bWidth:325KHz rAmpl:42dB sens:4dB
setstate nanoCUL 2017-01-01 16:50:50 cmds  B C F i A G M K U Y R T V W X e f L l t x
setstate nanoCUL 2017-01-01 18:33:16 raw isFF0F0FF00011
setstate nanoCUL 2017-01-01 18:35:37 state Initialized
setstate nanoCUL 2016-12-05 23:25:35 uptime 1 05:42:50
setstate nanoCUL 2016-12-05 23:25:19 version V 1.20.06 a-culfw Build: 199 (2016-02-21_13-36-20) nanoCUL433 (F-Band: 433MHz)


Handsender: "Fern_TV"
defmod Fern_TV IT 000000FFFF 0F F0
attr Fern_TV IODev nanoCUL
attr Fern_TV room Fernbedienung

setstate Fern_TV on
setstate Fern_TV 2017-01-01 16:32:44 protocol V1
setstate Fern_TV 2017-01-01 17:47:31 state on


Device: "Stube_TV"
defmod Stube_TV IT 0FFFFFFFF0 11 10
attr Stube_TV userattr Ladegeraete Ladegeraete_map room_map structexclude
attr Stube_TV IODev nanoCUL
attr Stube_TV alias Fernseher
attr Stube_TV devStateIcon on:li_wht_on off:li_wht_off
attr Stube_TV group Wohnzimmer
attr Stube_TV icon it_television
attr Stube_TV model itswitch
attr Stube_TV room Zusammenfassung,Wohnzimmer

setstate Stube_TV on
setstate Stube_TV 2016-04-08 19:13:18 protocol V1
setstate Stube_TV 2017-01-01 17:47:31 state on


Notify: "notify_Fern_TV"
Fern_TV:.* {TV(ReadingsVal("Fern_TV", "state", ""));}

99_myUtils.pm:
sub TV($)  {
    my ($TV) = @_;
    if ($TV eq "on") {
        fhem("set Stube_TV on");
    }
    elsif ($TV eq "off") {
        fhem("set Stube_TV off");
  }
}



Hat jemand eine Idee warum das Gerät nicht gleich schaltet, sondern erst nach gefühlt dem hundertsten male drücken?

Besten dank :) und frohes neues Jahr

Silicium

Nachtrag:

Ich habe ein a-culfw Update durchgeführt, brachte keine abhilfe!

defmod nanoCUL CUL /dev/serial/by-id/usb-FTDI_FT232R_USB_UART_A104KA4A-if00-port0@38400 1234
attr nanoCUL group CUL
attr nanoCUL model CUL

setstate nanoCUL 2017-01-01 19:38:46 ccconf freq:433.920MHz bWidth:325KHz rAmpl:42dB sens:4dB
setstate nanoCUL 2017-01-01 19:39:09 cmds  A B C e F f G i K L l M N R T t U V W X x
setstate nanoCUL 2017-01-01 19:56:53 raw is0FFFFFFF0010
setstate nanoCUL 2017-01-01 21:10:12 state Initialized
setstate nanoCUL 2017-01-01 19:39:01 uptime 0 00:00:24
setstate nanoCUL 2017-01-01 19:38:56 version V 1.23.05 a-culfw Build: private build (unknown) nanoCUL433 (F-Band: 433MHz)

kaihs

Nach meiner Erfahrung muss zwischen Empfang und Senden eine kleine Pause sein
Die Fernbedienung wiederholt das Signal mehrfach, das notify wird aber schon durch das erste Signal ausgelöst. Der Sendevorgang überlagert sich dann mit der noch sendenden Fernbedienung. Versuche es mal mit einem sleep 0.5
Banana Pi, Add-On Board mit 1.8" TFT LCD und IR-Sender, CULFW V1.61, div. Homematic Komponenten, Pollin Funksteckdosen, Selbstbau CUL433 MHz, Jeelink Clone, EC3000
Selbstbau CUL868MHz für Wireless M-Bus, SIGNALduino mit Logilink Temp.-sensoren und Auriol Wetterstation

Silicium

Hallo,

besten dank für deine schnelle Antwort.

Ich hab jetzt das notify angepasst und siehe da, es läuft ;D
Daran hatte ich gar nicht gedacht, aber klar macht ja sinn.

Notify: Fern_TV
defmod notify_Fern_TV notify Fern_TV:.* {sleep 0.5;;TV(ReadingsVal("Fern_TV", "state", ""));;}

setstate notify_Fern_TV 2017-01-02 11:25:37
setstate notify_Fern_TV 2017-01-02 11:25:27 state active