D-Box2 und Thoshiba-TV mit jeweils einer Brennenstuhlsteckdose mit DOIF schalten

Begonnen von jw1hal, 25 April 2018, 17:37:19

Vorheriges Thema - Nächstes Thema

jw1hal

Hallo,

ich habe im Schlafzimmer eine alte D-Box2 und einen älteren Thoshiba-TV stehen und möchte diese Geräte über Fhem und auch Alexa zusammen an und ausschalten. Der Toshiba-TV kann nix mit Smart-Home. Dort bleibt lediglich der letzte Zustand gespeichert, wenn man den Strom kappt. Schaltet man ihn also an der Fernbedienung aus und kappt dann den Strom, geht er, wenn er wieder Strom bekommt, in den Standby. Kappt man den Strom, wenn er an ist, geht er, wenn er Strom bekommt, auch wieder direkt an.

Bei der D-Box wäre das Problem, dass sie nicht mehr über das Netzwerk erreichbar ist, wenn sie richtig aus ist. Also müsste man sie in Standby schalten, womit sie auch ordentlich Strom frisst. Also noch ein Umweg über die Brennenstuhlsteckdose. Da aber nun ein Betriebssystem da drauf ist, wäre es wohl nicht so angebracht, einfach den Strom zu kappen, da meines Wissens sie dann irgendwann nicht mehr starten könnte, wenn man genau in dem Moment den Strom kappt, wo sie vielleicht eine wichtige Datei schreibt.

Also hätte ich das gern so, dass man sie, wie vorher auch, in den Standby schaltet und sie sich von selbst nach einer Stunde ausschaltet. Wenn man sie nun einschalten möchte, kann man dies auch per Fernbedienung machen, weil sie ja noch Strom hat. Über Fhem geht es erst einmal nicht. Fhem müsste nun prüfen, ob sie aus oder im Standby ist. Wenn sie im Standby ist, müsste Fhem sie einfach einschalten. Wenn sie ganz aus ist, müsste Fhem die Brennenstuhlsteckdose, an der die Box hängt, kurz aus und wieder einschalten. Damit fährt die Box ganz normal hoch.

Für beide Varianten, also Anschalten aus dem Standby und Anschalten über die Brennenstuhlsteckdose, sollte der Toshiba-TV bzw. die Brennenstuhlsteckdose, an der er hängt, angeschalten werden. Beim Ausschalten das selbe. Da soll die Brennenstuhlsteckdose vom Toshiba-TV ausgeschalten werden, wenn die DBox in den Standby geht oder ausgeschalten wird.

Dies sollte einmal funktionieren, wenn man die D-Box mit der Fernbedienung schaltet (Ein, Aus, Standby) und auch über Fhem, sowie auch über Alexa. Bei Alexa müsste man dies sicher über einen Dummy machen, der nur ein und aus kann bzw. können soll. Bei Fhem sollte es auch über einen Dummy gehen, der nur an oder aus kann, aber auch, wenn man die Geräte selbst in Fhem schaltet.

Nun habe ich mir schon Dummy´s und Notify´s gebastelt, womit es halbwegs geht, aber nicht zufriedenstellend ist. Damit kann ich endweder nur die D-Box in den Standby gehen lassen und der Toshiba-TV geht da auch mit aus und bei Einschalten mit an oder ich kann dierekt den Strom kappen, was ja nicht so gut wäre.

Nun dachte ich mir, mit DOIF wäre es besser, wie mit Notify. Aber ich komme damit nicht klar. Kenntnisse darüber habe ich so gut wie gar nicht.

Da das Ganze nicht so recht funktioniert, habe ich mir nun auch mal nur 3 Test-Dummy´s und einen Test-DOIF angelegt, um die Sache zu verstehen. Ich möchte damit testen, ob ich bei Betätigen des Dummy1 den Dummy3 über den DOIF schalten kann. Zusätzlich mit Bedingung, also wenn Dummy 2 an ist. Aber irgendwie scheitere ich schon daran, so dass ich vermute, dass ich ein allgemeines Verständnisproblem habe.

Fange ich mal mit den Test´s an.
Internals:
   CFGFN     
   NAME       test1
   NR         7116
   STATE      aus
   TYPE       dummy
   READINGS:
     2018-04-25 15:26:24   state           off
Attributes:
   devStateIcon an:rc_GREEN:aus aus:rc_RED:an
   event-on-change-reading .*
   eventMap   on:an off:aus
   room       Test
   webCmd     an:aus
Internals:
   CFGFN     
   NAME       test2
   NR         7278
   STATE      aus
   TYPE       dummy
   READINGS:
     2018-04-25 15:26:25   state           off
Attributes:
   devStateIcon an:rc_GREEN:aus aus:rc_RED:an
   event-on-change-reading .*
   eventMap   on:an off:aus
   room       Test
   webCmd     an:aus
Internals:
   CFGFN     
   CHANGED   
   NAME       test3
   NR         7240
   STATE      aus
   TYPE       dummy
   READINGS:
     2018-04-25 05:46:21   state           off
Attributes:
   devStateIcon an:rc_GREEN:aus aus:rc_RED:an
   event-on-change-reading .*
   eventMap   on:an off:aus
   room       Test
   webCmd     an:aus
Internals:
   CFGFN     
   DEF        DOIF ([test1] eq "on")
(set test3 on)

##DOELSEIF ([test1] eq "aus" and [test2] eq "aus")
## (set test3 an)


##and [test2:state] eq "an")
   MODEL      Perl
   NAME       DOIF_test
   NR         6946
   NTFY_ORDER 50-DOIF_test
   STATE      initialized
   TYPE       DOIF
   READINGS:
     2018-04-25 15:26:10   mode            enabled
     2018-04-25 15:26:10   state           initialized
   Regex:
   condition:
     0         
   devices:
   helper:
     DOIF_Readings_events
     DOIF_eventas
     globalinit 1
     last_timer 0
     sleeptimer -1
   itimer:
   perlblock:
     0         
   uiState:
   uiTable:
Attributes:
   room       Test


Das sind erst einmal nur die Test´s ...


Nun der andere Krempel.


Die D-Box2 selbst:Internals:
   CHANGED   
   DEF        192.168.52.233
   INTERVAL   45
   NAME       DBOX2
   NR         256
   STATE      an
   TYPE       NEUTRINO
   READINGS:
     2018-04-24 11:11:20   ber                0
     2018-04-23 08:33:47   bouquetnr       5
     2018-04-25 11:36:30   channel_id      4530001445e
     2018-04-25 11:36:30   channel_url     http://192.168.52.233:31339/0,0x0062,0x02ff,0x0300
     2018-04-23 08:33:47   image_creator   Markham_i.m.o._Worschter
     2018-04-23 08:33:47   image_homepage  http://www.keywelt-board.com
     2018-04-23 08:33:47   image_imagename Keywelt_Jun2015
     2018-04-23 08:33:47   image_version   0320201507262203
     2018-04-23 08:33:47   input           tv
     2018-04-23 08:33:48   model           Neutrino
     2018-04-23 08:33:47   mute            off
     2018-04-25 15:33:28   power           on
     2018-04-25 15:33:28   presence        present
     2018-04-23 22:06:41   recordmode      off
     2018-04-25 17:00:30   sig               90
     2018-04-25 17:04:14   snr               86
     2018-04-25 15:33:28   state           on
     2018-04-25 17:04:15   time_now        Wed Apr 25 17:04:15 2018
     2018-04-25 17:04:15   time_raw_now    1524668655
     2018-04-23 08:33:47   timer0          -
     2018-04-23 08:33:47   timer0announceTime -
     2018-04-23 08:33:47   timer0name      -
     2018-04-23 08:33:47   timer0number    -
     2018-04-23 08:33:47   timer0repcount  -
     2018-04-23 08:33:47   timer0repeat    -
     2018-04-23 08:33:47   timer0startTime -
     2018-04-23 08:33:47   timer0stopTime  -
     2018-04-23 08:33:47   timer0typ       -
     2018-04-23 08:33:47   timer_count     0
     2018-04-24 02:14:27   volume          25
   helper:
     ADDRESS    192.168.52.233
     FIRSTSTART 1
     PORT       80
     RUNNING_REQUEST 0
     CMD_QUEUE:
     channels:
       tv:
         SAT.1
         RTL_Television
         RTL2
         SUPER_RTL
         RTLNITRO
         ProSieben
         kabel_eins
         VOX
         TELE_5
         DAS_VIERTE
         NICK/COMEDY
         DMAX
         ANIXE_SD
         SIXX
         ServusTV_Deutschland
         DAF_Neu
         RiC
         HOLIDAY
         SIXX
Attributes:
   alexaName  Box
   alexaRoom  Schlafzimmer
   devStateIcon an:rc_GREEN:aus standby:rc_YELLOW:an aus:rc_RED:an absent:rc_BLUE:aus
   event-on-change-reading .*
   eventMap   on:an off:aus
   icon       dreambox
   room       00_Diabeck,03_Schlafzimmer,99_DBox2,99_TV,Alexa
   stateFormat {ReadingsVal($name,"presence","") eq "absent" ? "absent" : ReadingsVal($name,"state","")}
   webCmd     volume:channel:shutdown:reboot:an:aus



Der Dummy der DBox:Internals:
   CHANGED   
   NAME       DBox2
   NR         261
   STATE      aus
   TYPE       dummy
   READINGS:
     2018-04-24 23:47:52   state           off
Attributes:
   devStateIcon an:rc_GREEN:aus aus:rc_RED:an
   event-on-change-reading .*
   eventMap   on:an off:aus
   group      03_Schlafzimmer
   icon       dreambox
   room       00_Diabeck,03_Schlafzimmer,60_Dummy,99_DBox2
   webCmd     an:aus



Die Brennenstuhlsteckdose, an der die Dbox hängt:Internals:
   00         f0
   CHANGED   
   CUL_433_MSGCNT 6
   CUL_433_RAWMSG i454551
   CUL_433_RSSI -19
   CUL_433_TIME 2018-04-24 22:42:37
   DEF        F0FFF0FFFF 0F F0
   IODev      CUL_868
   LASTInputDev CUL_433
   MSGCNT     6
   NAME       IT_F0FFF0FFFF
   NR         34
   STATE      an
   TYPE       IT
   XMIT       f0fff0ffff
   XMITdimdown 00
   XMITdimup  00
   XMITon     0f
   CODE:
     1          f0fff0ffff
   READINGS:
     2017-12-25 20:46:42   protocol        V1
     2018-04-24 22:42:37   state           on
Attributes:
   IODev      CUL_868
   alias      DBox2_Brennenstuhl
   devStateIcon an:rc_GREEN:off aus:rc_RED:on Offline:rc_BLUE:off
   event-on-change-reading .*
   eventMap   on:an off:aus
   room       99_DBox2,99_Brennenstuhl,99_IT,99_nicht_zugeordnet



Die Brennenstuhlsteckdose, an der der Toshiba hängt und somit auch der Toshiba-TV selbst:Internals:
   00         f0
   DEF        0FFFFFF0FF 0F F0
   IODev      CUL_433
   NAME       IT_0FFFFFF0FF
   NR         29
   STATE      an
   TYPE       IT
   XMIT       0ffffff0ff
   XMITdimdown 00
   XMITdimup  00
   XMITon     0f
   CODE:
     1          0ffffff0ff
   READINGS:
     2017-12-25 19:20:44   protocol        V1
     2018-04-25 04:38:57   state           on
Attributes:
   IODev      CUL_433
   alexaName  Toshiba
   alexaRoom  Schlafzimmer
   alias      Toshiba
   devStateIcon an:rc_GREEN:off aus:rc_RED:on Offline:rc_BLUE:off
   event-on-change-reading .*
   eventMap   on:an off:aus
   fp_Diabeck 300,470,1,Toshiba
   fp_Schlafzimmer 23,469,1,Toshiba
   genericDeviceType switch
   group      03_Schlafzimmer
   room       00_Diabeck,03_Schlafzimmer,99_Brennenstuhl,99_IT,99_TV,99_Toshiba,Alexa
   stateFormat {ReadingsVal($name,"presence","") eq "Offline" ? "Offline" : ReadingsVal($name,"state","")}
   webCmd     an:aus



Das Notify, womit der Toshiba an und aus gehen soll:Internals:
   DEF        DBox2 set alias=Toshiba $EVENT
   NAME       DBox2_Toshiba_notify
   NOTIFYDEV  DBox2
   NR         263
   NTFY_ORDER 50-DBox2_Toshiba_notify
   REGEXP     DBox2
   STATE      disabled
   TYPE       notify
   READINGS:
     2018-04-24 19:26:00   state           disabled
Attributes:
   disable    1
   room       99_Toshiba,99_DBox2,99_Notify



Das Notify, womit die D-Box an gehen soll:Internals:
   DEF        DBox2:an set alias=DBox2_Brennenstuhl,DBOX2 an
   NAME       DBOX2_Strom_an
   NOTIFYDEV  DBox2
   NR         260
   NTFY_ORDER 50-DBOX2_Strom_an
   REGEXP     DBox2:an
   STATE      disabled
   TYPE       notify
   READINGS:
     2018-04-24 19:25:36   state           disabled
Attributes:
   disable    1
   room       99_DBox2,99_Notify



Das Notify, womit die D-Box aus gehen bzw. vom Strom getrennt werden soll:Internals:
   DEF        DBOX2:absent set alias=DBox2_Brennenstuhl aus
   NAME       DBOX2_Strom_aus
   NOTIFYDEV  DBOX2
   NR         259
   NTFY_ORDER 50-DBOX2_Strom_aus
   REGEXP     DBOX2:absent
   STATE      disabled
   TYPE       notify
   READINGS:
     2018-04-24 19:25:48   state           disabled
Attributes:
   disable    1
   room       99_DBox2,99_Notify



Das Notify, womit die Dbox in den Standby gehen soll:Internals:
   DEF        DBox2:aus set DBOX2 shutdown
   NAME       DBox2_aus
   NOTIFYDEV  DBox2
   NR         262
   NTFY_ORDER 50-DBox2_aus
   REGEXP     DBox2:aus
   STATE      disabled
   TYPE       notify
   READINGS:
     2018-04-24 19:26:13   state           disabled
Attributes:
   disable    1
   room       99_DBox2,99_Notify




Nun die DOIF´s

Damit soll die D-Box an oder aus gehen:Internals:
   CFGFN     
   DEF        DOIF ([DBox2] eq "an" and [DBOX2:presence] eq "absent" and [DBox2_Brennenstuhl:state] eq "an")
(set alias=DBox2_Brennenstuhl aus)
(set alias=DBox2_Brennenstuhl an)

DOELSEIF ([DBox2] eq "an" and [DBOX2:presence] eq "absent" and [DBox2_Brennenstuhl:state] eq "aus")
(set alias=DBox2_Brennenstuhl an)

DOELSEIF ([DBox2] eq "an"] and ([DBOX2:state] eq "standby"))
(set DBOX2 an)
   MODEL      Perl
   NAME       DOIF_DBox2
   NR         611
   NTFY_ORDER 50-DOIF_DBox2
   STATE      initialized
   TYPE       DOIF
   READINGS:
     2018-04-24 22:59:59   mode            enabled
     2018-04-24 22:59:59   state           initialized
   Regex:
   condition:
     0         
   devices:
   helper:
     DOIF_Readings_events
     DOIF_eventas
     globalinit 1
     last_timer 0
     sleeptimer -1
   itimer:
   perlblock:
     0         
   uiState:
   uiTable:
Attributes:
   room       99_DBox2,99_DOIF,99_Toshiba



Damit soll der Toshiba aus und an gehen:Internals:
   CFGFN     
   DEF        DOIF ([DBOX2:state] eq "an"] and [Toshiba:state] eq "aus")
(set alias=Toshiba an)

DOELSEIF ([DBOX2:state] eq "aus"] and [Toshiba:state] eq "an")
(set alias=Toshiba aus)
   MODEL      Perl
   NAME       DOIF_Toshiba
   NR         5968
   NTFY_ORDER 50-DOIF_Toshiba
   STATE      initialized
   TYPE       DOIF
   READINGS:
     2018-04-24 22:08:02   mode            enabled
     2018-04-24 22:08:02   state           initialized
   Regex:
   condition:
     0         
   devices:
   helper:
     DOIF_Readings_events
     DOIF_eventas
     globalinit 1
     last_timer 0
     sleeptimer -1
   itimer:
   perlblock:
     0         
   uiState:
   uiTable:
Attributes:
   room       99_DBox2,99_DOIF,99_Toshiba
Raspberry Pi 3 Model B Rev 1.2; Linux 4.9.59-v7+; Raspbian GNU/Linux 9 (stretch); CUL433 (VTS 0.29 CSM868); CUL 868 (VTS 0.29 CSM868); 6x BrennenstuhlRCR1000N; 8x ZAP; 3x EmilLux; 10x Sonoff Basic (Tasmota 5.10.0f); 5x HM-CC-RT-DN; 9x HM-SEC-SCo; 8x HM-SEC-SCo, 7x HM-LC-Sw1PBU-FM; Fritz!Box 7362 SL

fred_feuerstein

Alles ziemlich kompliziert was du da vor hast.
Vorab, ist auf der dbox2 hoffentlich neutrino drauf? Oder alles original?

Bei neutrino könntest du mit dem neutrino Modul von fhem arbeiten um die Stati zu ermitteln. Und auch ändern zu können.

Ausserdem ist in neutrino eine Funktion enthalten, die nach x Zeit im standby automatisch komplett runterfährt.

Du könntest dann über die standby Funktion entsprechend den TV mit schalten, bzw. wenn die Box ganz aus ist, die schaltbare Steckdose kurz aus und einschalten, damit die Box wieder hochfährt.

Wenn da allerdings die original Software auf der Box ist, dann geht das alles nicht und du musst solche Aktionen machen, wie du es oben geschrieben hast.


Und noch ein Vorteil, auch wenn die Box dann  über die FB eingeschaltet wird, könnte sie (da Linux Betriebssystem) den schaltbefehl zum einschalten der Steckdose vom TV senden.
Und beim ausschalten ebenfalls.


Gruß, Fred

NEU: FHEM auf Raspberry PI 5, OS: Bookworm, mit Z-Wave RaZberry-Modul, 868CUL (WMBUS), LaCrosseCUL (Temp) und knapp 300 Devices aller Art
ALT: FHEM auf Raspberry PI 3B+ im 7Zoll TouchDisplay Gehäuse, OS: Bullseye, mit Z-Wave RaZberry-Modul, 868CUL (WMBUS), LaCrosseCUL (Temp)

jw1hal

Zitat von: fred_feuerstein am 25 April 2018, 18:33:57Vorab, ist auf der dbox2 hoffentlich neutrino drauf? Oder alles original?

Hallo fred_feuerstein,

danke für deine Antwort. In der 5. Code-Box meines Beitrages ist doch ersichtlich, dass auf der Box Neutrino (Keywelt-Image) ist.

Zitat von: jw1hal am 25 April 2018, 17:37:19Die D-Box2 selbst:
Internals:
   CHANGED   
   DEF        192.168.52.233
   INTERVAL   45
   NAME       DBOX2
   NR         256
   STATE      an
   TYPE       NEUTRINO
   READINGS:
     2018-04-24 11:11:20   ber                0
     2018-04-23 08:33:47   bouquetnr       5
     2018-04-25 11:36:30   channel_id      4530001445e
     2018-04-25 11:36:30   channel_url     http://192.168.52.233:31339/0,0x0062,0x02ff,0x0300
     2018-04-23 08:33:47   image_creator   Markham_i.m.o._Worschter
     2018-04-23 08:33:47   image_homepage  http://www.keywelt-board.com
     2018-04-23 08:33:47   image_imagename Keywelt_Jun2015
     2018-04-23 08:33:47   image_version   0320201507262203
     2018-04-23 08:33:47   input           tv
     2018-04-23 08:33:48   model           Neutrino
     2018-04-23 08:33:47   mute            off
     2018-04-25 15:33:28   power           on
     2018-04-25 15:33:28   presence        present
     2018-04-23 22:06:41   recordmode      off
     2018-04-25 17:00:30   sig               90
     2018-04-25 17:04:14   snr               86
     2018-04-25 15:33:28   state           on
     2018-04-25 17:04:15   time_now        Wed Apr 25 17:04:15 2018
     2018-04-25 17:04:15   time_raw_now    1524668655
     2018-04-23 08:33:47   timer0          -
     2018-04-23 08:33:47   timer0announceTime -
     2018-04-23 08:33:47   timer0name      -
     2018-04-23 08:33:47   timer0number    -
     2018-04-23 08:33:47   timer0repcount  -
     2018-04-23 08:33:47   timer0repeat    -
     2018-04-23 08:33:47   timer0startTime -
     2018-04-23 08:33:47   timer0stopTime  -
     2018-04-23 08:33:47   timer0typ       -
     2018-04-23 08:33:47   timer_count     0
     2018-04-24 02:14:27   volume          25
   helper:
     ADDRESS    192.168.52.233
     FIRSTSTART 1
     PORT       80
     RUNNING_REQUEST 0
     CMD_QUEUE:
     channels:
       tv:
         SAT.1
         RTL_Television
         RTL2
         SUPER_RTL
         RTLNITRO
         ProSieben
         kabel_eins
         VOX
         TELE_5
         DAS_VIERTE
         NICK/COMEDY
         DMAX
         ANIXE_SD
         SIXX
         ServusTV_Deutschland
         DAF_Neu
         RiC
         HOLIDAY
         SIXX
Attributes:
   alexaName  Box
   alexaRoom  Schlafzimmer
   devStateIcon an:rc_GREEN:aus standby:rc_YELLOW:an aus:rc_RED:an absent:rc_BLUE:aus
   event-on-change-reading .*
   eventMap   on:an off:aus
   icon       dreambox
   room       00_Diabeck,03_Schlafzimmer,99_DBox2,99_TV,Alexa
   stateFormat {ReadingsVal($name,"presence","") eq "absent" ? "absent" : ReadingsVal($name,"state","")}
   webCmd     volume:channel:shutdown:reboot:an:aus



Zitat von: fred_feuerstein am 25 April 2018, 18:33:57Ausserdem ist in neutrino eine Funktion enthalten, die nach x Zeit im standby automatisch komplett runterfährt.
Das habe ich doch auch so eingestellt und auch erwähnt.
Zitat von: jw1hal am 25 April 2018, 17:37:19Also hätte ich das gern so, dass man sie, wie vorher auch, in den Standby schaltet und sie sich von selbst nach einer Stunde ausschaltet.


Zitat von: fred_feuerstein am 25 April 2018, 18:33:57Du könntest dann über die standby Funktion entsprechend den TV mit schalten, bzw. wenn die Box ganz aus ist, die schaltbare Steckdose kurz aus und einschalten, damit die Box wieder hochfährt.
Auch das hatte ich erwähnt.
Zitat von: jw1hal am 25 April 2018, 17:37:19Wenn sie ganz aus ist, müsste Fhem die Brennenstuhlsteckdose, an der die Box hängt, kurz aus und wieder einschalten. Damit fährt die Box ganz normal hoch.


Mein Problem ist nun, dass ich das weder mit Notify, noch mit DOIF hinbekomme, weil ich vermutlich etwas oder alles falsch mache, den falschen Denkansatz habe oder die einzelnen Befehle nicht richtig verstehe. Genau dort brächte ich etwas Hilfe.

In meinem Testbeispiel bekomme ich es noch nicht mal hin, über DOIF einen Dummy zu schalten, wenn ich einen anderen Dummy schalte. Vielleicht geht das so gar nicht. Ich weiß es nicht. Hab da schon verschiedene Varianten, die ich durch viel Lesen aufgeschnappt habe, probiert.
Raspberry Pi 3 Model B Rev 1.2; Linux 4.9.59-v7+; Raspbian GNU/Linux 9 (stretch); CUL433 (VTS 0.29 CSM868); CUL 868 (VTS 0.29 CSM868); 6x BrennenstuhlRCR1000N; 8x ZAP; 3x EmilLux; 10x Sonoff Basic (Tasmota 5.10.0f); 5x HM-CC-RT-DN; 9x HM-SEC-SCo; 8x HM-SEC-SCo, 7x HM-LC-Sw1PBU-FM; Fritz!Box 7362 SL

fred_feuerstein

Hehe. Das kommt davon wenn man nur den Anfang liest (da am Handy...)

Ich lese es mir nochmal in Ruhe durch. :)



Gesendet von meinem ONEPLUS A3003 mit Tapatalk

Gruß, Fred

NEU: FHEM auf Raspberry PI 5, OS: Bookworm, mit Z-Wave RaZberry-Modul, 868CUL (WMBUS), LaCrosseCUL (Temp) und knapp 300 Devices aller Art
ALT: FHEM auf Raspberry PI 3B+ im 7Zoll TouchDisplay Gehäuse, OS: Bullseye, mit Z-Wave RaZberry-Modul, 868CUL (WMBUS), LaCrosseCUL (Temp)

jw1hal

Raspberry Pi 3 Model B Rev 1.2; Linux 4.9.59-v7+; Raspbian GNU/Linux 9 (stretch); CUL433 (VTS 0.29 CSM868); CUL 868 (VTS 0.29 CSM868); 6x BrennenstuhlRCR1000N; 8x ZAP; 3x EmilLux; 10x Sonoff Basic (Tasmota 5.10.0f); 5x HM-CC-RT-DN; 9x HM-SEC-SCo; 8x HM-SEC-SCo, 7x HM-LC-Sw1PBU-FM; Fritz!Box 7362 SL

fred_feuerstein

Klingt gut.

Ansonsten würde ich erstmal die Alexa aussen vor lassen und schauen, dass es so klappt.

Dummys oder notifys brauchst du da normalerweise nicht (evtl. nur für Alexa), sondern fragst im DOIF / DOELSEIF .. die jeweiligen Stati der Dbox ab: presence (absent/present) und power (on/off).
Das einfach mit entsprechenden und/oder Konstellation im DOIF.
present und on => Betrieb der Box
present und off => Standby
absent und off => Deepstandby der Box
Damit kannst du auf jeden Fall den TV (bzw. dessen Steckdose) immer korrekt mit ein/ausschalten. ggfs über das Attribut wait mit ein wenig Zeitverzögerung, falls man auf der FB ausversehen mal den Powerknopf drückt, dass der TV nicht sofort ausgeht.

Einzig für den Fall wenn die Dbox im Deepstandby ist und du sie nicht mehr per FHEM erreichen kannst, müsste man etwas basteln, dass den Strom der Dbox kurz trennt damit die Box hochfahren kann.

Dass die Box nach X Zeit im Standby komplett runterfährt stellst du ja wie gesagt im Menü der Box ein. Den Strom würde ich da nicht trennen, im Deepstandby braucht sie wirklich nicht mehr viel Strom.
Das hätte den Vorteil, dass sie immer über FB erreichbar wäre.


Gruß, Fred

NEU: FHEM auf Raspberry PI 5, OS: Bookworm, mit Z-Wave RaZberry-Modul, 868CUL (WMBUS), LaCrosseCUL (Temp) und knapp 300 Devices aller Art
ALT: FHEM auf Raspberry PI 3B+ im 7Zoll TouchDisplay Gehäuse, OS: Bullseye, mit Z-Wave RaZberry-Modul, 868CUL (WMBUS), LaCrosseCUL (Temp)

jw1hal

Hallo,

danke für die Antwort.

Probleme hatte ich mit der Schreibweise, ob man nun [Toshiba:state] oder [Toshiba:STATE] oder [Toshiba:state:"an"] oder [Toshiba:"an"] oder [Toshiba] "on" oder [Toshiba] eq "on" schrieben muss. Da habe ich eben solange "herumprobiert", bis es passte.

Dann wusste ich nicht, ob man das "DOIF" am Anfang schreiben muss. Einmal hatte ich ne Meldung, dass "DOIF" oder "DOELSEIF" oder "DOELSE" da hin muss. Also habe ich das "DOIF" am Anfang gesetzt. Aber damit ging es nicht. Nun hab ich es weg gelassen.

Ob ich nun am Ende das "DOELSE" schreiben muss, ist mir auch nicht so richtig klar. das trifft ja glaube nur zu, wenn keine von den vorher genannten Bedingungen stimmt, soll er das machen, was unter "DOELSE" steht und das Ding beenden. Da wüsste ich aber jetzt nicht, was er da sinnvollen machen solle. Für mich also für den Moment nicht nötig. Also weg.

Dann habe ich nach LANGEN lesen und durch Zufall festgestellt, dass er anders wie in Fhem sonst, keine Alias nimmt. Also die Steckdosen dann doch umbenannt und es ging auch damit.

Es waren auch noch paar Flüchtigkeitsfehler drin (Klammern zu viel oder zu wenig).

Ich habe mich dann entschieden, aus zwei DOIF´s einen zu machen.

Später habe ich mich noch dazu entschieden, den Umweg über einen Dummy für die DBox nicht zu gehen, weil ich mich zu sehr auf den Dummy als Ausgangspunkt konzentrierte und dann aber Probleme hatte, wenn ich auch mal den Toshiba oder die DBox direkt schalten möchte. So spare ich nun den Dummy und nehme nun den Toshiba als Ausgangspunkt. Allerdings möchte ich auch von der DBox direkt schalten., was noch nicht geht. Aber dazu später.

Den Dummy für die DBox hatte ich deswegen, weil die DBox selbst, dann noch Lautstärke und Sender anzeigte, was dann in der Ansicht in meinen Lampen, die ja nur an und aus haben nicht so passte und eben alles etwas verschoben war und breiter machte. Vom Prinzip kann ich dies aber nun auf An und aus reduzieren, damit es zu den Lampen passt und wenn ich etwas anderes machen will, gehe ich direkt ins Devise rein. So ist das eben am Anfang, wenn man erst seinen Weg finden möchte und eben erst die ersten Schritte mit Column, Dasboard und TabletUI macht und bisher eben alles ganz normal mit Räumen und Gruppen hatte bzw. auch noch hat.

So habe ich es nun. Die Devices von Box und TV:Internals:
   CHANGED   
   DEF        192.168.52.233
   INTERVAL   45
   NAME       DBOX2
   NR         256
   STATE      standby
   TYPE       NEUTRINO
   READINGS:
     2018-04-26 16:09:40   ber                0
     2018-04-23 08:33:47   bouquetnr       5
     2018-04-25 11:36:30   channel_id      4530001445e
     2018-04-25 11:36:30   channel_url     http://192.168.52.233:31339/0,0x0062,0x02ff,0x0300
     2018-04-23 08:33:47   image_creator   Markham_i.m.o._Worschter
     2018-04-23 08:33:47   image_homepage  http://www.keywelt-board.com
     2018-04-23 08:33:47   image_imagename Keywelt_Jun2015
     2018-04-23 08:33:47   image_version   0320201507262203
     2018-04-23 08:33:47   input           tv
     2018-04-23 08:33:48   model           Neutrino
     2018-04-23 08:33:47   mute            off
     2018-04-26 16:21:39   power           off
     2018-04-26 15:58:27   presence        present
     2018-04-26 07:52:25   recordmode      off
     2018-04-26 16:09:40   sig               91
     2018-04-26 16:17:45   snr               87
     2018-04-26 16:21:39   state           standby
     2018-04-26 16:17:45   time_now        Thu Apr 26 16:17:45 2018
     2018-04-26 16:17:45   time_raw_now    1524752265
     2018-04-23 08:33:47   timer0          -
     2018-04-23 08:33:47   timer0announceTime -
     2018-04-23 08:33:47   timer0name      -
     2018-04-23 08:33:47   timer0number    -
     2018-04-23 08:33:47   timer0repcount  -
     2018-04-23 08:33:47   timer0repeat    -
     2018-04-23 08:33:47   timer0startTime -
     2018-04-23 08:33:47   timer0stopTime  -
     2018-04-23 08:33:47   timer0typ       -
     2018-04-23 08:33:47   timer_count     0
     2018-04-26 05:12:08   volume          17
   helper:
     ADDRESS    192.168.52.233
     FIRSTSTART 1
     PORT       80
     RUNNING_REQUEST 0
     CMD_QUEUE:
     channels:
       tv:
         SAT.1
         RTL_Television
         RTL2
         SUPER_RTL
         RTLNITRO
         ProSieben
         kabel_eins
         VOX
         TELE_5
         DAS_VIERTE
         NICK/COMEDY
         DMAX
         ANIXE_SD
         SIXX
         ServusTV_Deutschland
         DAF_Neu
         RiC
         HOLIDAY
         SIXX
Attributes:
   alexaName  Box
   alexaRoom  Schlafzimmer
   devStateIcon an:rc_GREEN:aus standby:rc_YELLOW:an aus:rc_RED:an absent:rc_BLUE:aus
   event-on-change-reading .*
   eventMap   on:an off:aus
   group      03_Schlafzimmer
   icon       dreambox
   room       00_Diabeck,03_Schlafzimmer,99_DBox2,99_TV,Alexa
   stateFormat {ReadingsVal($name,"presence","") eq "absent" ? "absent" : ReadingsVal($name,"state","")}
   webCmd     an:aus
Internals:
   00         f0
   DEF        0FFFFFF0FF 0F F0
   IODev      CUL_433
   NAME       Toshiba
   NR         29
   STATE      aus
   TYPE       IT
   XMIT       0ffffff0ff
   XMITdimdown 00
   XMITdimup  00
   XMITon     0f
   CODE:
     1          0ffffff0ff
   READINGS:
     2017-12-25 19:20:44   protocol        V1
     2018-04-26 16:21:25   state           off
Attributes:
   IODev      CUL_433
   alexaName  Toshiba
   alexaRoom  Schlafzimmer
   alias      Toshiba
   devStateIcon an:rc_GREEN:off aus:rc_RED:on Offline:rc_BLUE:off
   event-on-change-reading .*
   eventMap   on:an off:aus
   fp_Diabeck 300,470,1,Toshiba
   fp_Schlafzimmer 23,469,1,Toshiba
   genericDeviceType switch
   group      03_Schlafzimmer
   icon       it_television
   room       00_Diabeck,03_Schlafzimmer,99_Brennenstuhl,99_IT,99_TV,99_Toshiba,Alexa
   stateFormat {ReadingsVal($name,"presence","") eq "Offline" ? "Offline" : ReadingsVal($name,"state","")}
   webCmd     an:aus


Nun die Steckdose für die Box:Internals:
   00         f0
   DEF        F0FFF0FFFF 0F F0
   IODev      CUL_868
   NAME       DBox2_Strom
   NR         34
   STATE      an
   TYPE       IT
   XMIT       f0fff0ffff
   XMITdimdown 00
   XMITdimup  00
   XMITon     0f
   CODE:
     1          f0fff0ffff
   READINGS:
     2017-12-25 20:46:42   protocol        V1
     2018-04-26 15:56:47   state           on
Attributes:
   IODev      CUL_868
   devStateIcon an:rc_GREEN:off aus:rc_RED:on Offline:rc_BLUE:off
   event-on-change-reading .*
   eventMap   on:an off:aus
   icon       hue_filled_outlet
   room       99_Brennenstuhl,99_DBox2,99_IT,99_TV


Und das DOIF:Internals:
   DEF        ([Toshiba] eq "an" and [DBOX2] eq "absent" and [DBox2_Strom] eq "an")
(set DBox2_Strom aus)
(set DBox2_Strom an)
DOELSEIF ([Toshiba] eq "an" and [DBOX2] eq "absent" and [DBox2_Strom] eq "aus")
(set DBox2_Strom an)
DOELSEIF ([Toshiba] eq "an" and [DBOX2] eq "standby")
(set DBOX2 an)
DOELSEIF ([Toshiba] eq "aus" and [DBOX2] eq "an")
(set DBOX2 aus)

##DOELSEIF (([DBOX2] eq "absent" or [DBOX2] eq "standby" or [DBOX2] eq "aus") and [Toshiba] eq "an")
## (set Toshiba aus)
##DOELSEIF ([DBOX2] eq "an")## and [Toshiba] eq "aus")
## (set Toshiba an)
##DOELSE ()
   MODEL      FHEM
   NAME       DOIF_Toshiba
   NR         265
   NTFY_ORDER 50-DOIF_Toshiba
   STATE      initialized
   TYPE       DOIF
   READINGS:
     2018-04-26 16:33:07   cmd             0
     2018-04-26 16:33:07   mode            enabled
     2018-04-26 16:33:07   state           initialized
   Regex:
   condition:
     0          InternalDoIf($hash,'Toshiba','STATE') eq "an" and InternalDoIf($hash,'DBOX2','STATE') eq "absent" and InternalDoIf($hash,'DBox2_Strom','STATE') eq "an"
     1          InternalDoIf($hash,'Toshiba','STATE') eq "an" and InternalDoIf($hash,'DBOX2','STATE') eq "absent" and InternalDoIf($hash,'DBox2_Strom','STATE') eq "aus"
     2          InternalDoIf($hash,'Toshiba','STATE') eq "an" and InternalDoIf($hash,'DBOX2','STATE') eq "standby"
     3          InternalDoIf($hash,'Toshiba','STATE') eq "aus" and InternalDoIf($hash,'DBOX2','STATE') eq "an"
   devices:
     0           Toshiba DBOX2 DBox2_Strom
     1           Toshiba DBOX2 DBox2_Strom
     2           Toshiba DBOX2
     3           Toshiba DBOX2
     all         Toshiba DBOX2 DBox2_Strom
   do:
     0:
       0          set DBox2_Strom aus
       1          set DBox2_Strom an
     1:
       0          set DBox2_Strom an
     2:
       0          set DBOX2 an
     3:
       0          set DBOX2 aus
     4:
   helper:
     DOIF_Readings_events
     DOIF_eventas
     globalinit 1
     last_timer 0
     sleeptimer -1
   internals:
     0           Toshiba:STATE DBOX2:STATE DBox2_Strom:STATE
     1           Toshiba:STATE DBOX2:STATE DBox2_Strom:STATE
     2           Toshiba:STATE DBOX2:STATE
     3           Toshiba:STATE DBOX2:STATE
     all         Toshiba:STATE DBOX2:STATE DBox2_Strom:STATE
   itimer:
   uiState:
   uiTable:
Attributes:
   icon       helper_doif
   room       99_DBox2,99_DOIF,99_TV,99_Toshiba
   wait       1,1,1



Hier funktioniert es, wenn ich am Toshiba an und aus schalte. Auch wenn die Box heruntergefahren ist, schaltet sie sich, wie gewünscht an.

Nun hätte ich es aber auch gerne so, dass dies auch umgekehrt funktioniert, ich also auch die DBox direkt, also über Fhem, die echte Fernbedienung und Alexa, schalten kann und der Thoshiba jeweils mit an oder aus geht. Aber egal, was ich mir da einfallen lasse funktioniert nicht, weil die Bedingungen irgendwie s´dann schon umgekehrt vorhanden sind und er dann immer genau das Gegenteil macht.

Das Vorhaben insgesamt wäre, dass ich mehrere Möglichkeiten zum Schalten habe.
1. In Alexa sollen beide Geräte aufrufbar sein, also die DBox und der Toshiba.
2. Somit ist es auch beides über Fhem schaltbar.
3. Somit wäre das auch mit der echten Fernbedienung der DBox schaltbar.

Ich habe mir gerade überlegt, was ich noch machen könnte, wenn dies doch nicht geht. Ich könnte die DBox direkt als Schalter verwenden. Vielleicht ist es dann noch einfacher. Damit könnte ich die DBox direkt schalten, über Fhem, Alexa und auch mit der echten Fernbedienung. Und das ich zusätzlich die Möglichkeit habe, Alexa zu sagen, dass sie auch den Toshiba an- oder ausschalten soll, muss ich mir noch was einfallen lassen. Vielleicht ein Dummy für den Toshiba, der dann nur die Box schaltet oder so. Vielleicht lasse ich es auch weg ...
Raspberry Pi 3 Model B Rev 1.2; Linux 4.9.59-v7+; Raspbian GNU/Linux 9 (stretch); CUL433 (VTS 0.29 CSM868); CUL 868 (VTS 0.29 CSM868); 6x BrennenstuhlRCR1000N; 8x ZAP; 3x EmilLux; 10x Sonoff Basic (Tasmota 5.10.0f); 5x HM-CC-RT-DN; 9x HM-SEC-SCo; 8x HM-SEC-SCo, 7x HM-LC-Sw1PBU-FM; Fritz!Box 7362 SL

fred_feuerstein

Hängt an dem Toshiba noch mehr als die Dbox? Weil, warum willst du den Toshiba noch direkt schalten.
Es reicht doch, wenn über die Dbox die korrekten Stati ermittelt werden und darüber dann der Toshiba gesteuert wird.

Gruß, Fred

NEU: FHEM auf Raspberry PI 5, OS: Bookworm, mit Z-Wave RaZberry-Modul, 868CUL (WMBUS), LaCrosseCUL (Temp) und knapp 300 Devices aller Art
ALT: FHEM auf Raspberry PI 3B+ im 7Zoll TouchDisplay Gehäuse, OS: Bullseye, mit Z-Wave RaZberry-Modul, 868CUL (WMBUS), LaCrosseCUL (Temp)

jw1hal

Nöö, im Schafzimmer ist nur der Toshiba und eine meiner alten D-Boxen. Heute Morgen habe ich es dann aber doch noch so hin bekommen, wie ich es haben wollte, nachdem ich mir noch 3 Dummy´s und 6 Notify´s angelegt habe, die ich dann aber wieder entfernen konnte. Die Geräte sind vom Prinzip geblieben. Hier das DOIF:Internals:
   DEF        ([Toshiba] eq "an" and [DBox2] eq "absent" and [DBox2_Strom] eq "an")
(set DBox2_Strom aus)
(set DBox2_Strom an)
DOELSEIF ([Toshiba] eq "an" and [DBox2] eq "absent" and [DBox2_Strom] eq "aus")
(set DBox2_Strom an)
DOELSEIF ([Toshiba] eq "an")
(set DBox2 an)
DOELSEIF ([Toshiba] eq "aus")
(set DBox2 aus)
DOELSEIF ([DBox2] eq "an")
(set Toshiba an)
DOELSEIF ([DBox2] eq "standby")
(set Toshiba aus)
   MODEL      FHEM
   NAME       Toshiba_DBox2
   NR         260
   NTFY_ORDER 50-Toshiba_DBox2
   STATE      cmd_6
   TYPE       DOIF
   READINGS:
     2018-04-27 12:35:22   Device          DBox2
     2018-04-27 11:32:20   cmd             6
     2018-04-27 11:32:20   cmd_event       DBox2
     2018-04-27 11:32:20   cmd_nr          6
     2018-04-27 12:35:22   e_DBox2_STATE   absent
     2018-04-27 09:14:08   e_Toshiba_STATE an
     2018-04-27 09:01:41   mode            enabled
     2018-04-27 11:32:20   state           cmd_6
     2018-04-27 09:03:42   wait_timer      no timer
   Regex:
   condition:
     0          InternalDoIf($hash,'Toshiba','STATE') eq "an" and InternalDoIf($hash,'DBox2','STATE') eq "absent" and InternalDoIf($hash,'DBox2_Strom','STATE') eq "an"
     1          InternalDoIf($hash,'Toshiba','STATE') eq "an" and InternalDoIf($hash,'DBox2','STATE') eq "absent" and InternalDoIf($hash,'DBox2_Strom','STATE') eq "aus"
     2          InternalDoIf($hash,'Toshiba','STATE') eq "an"
     3          InternalDoIf($hash,'Toshiba','STATE') eq "aus"
     4          InternalDoIf($hash,'DBox2','STATE') eq "an"
     5          InternalDoIf($hash,'DBox2','STATE') eq "standby"
   devices:
     0           Toshiba DBox2 DBox2_Strom
     1           Toshiba DBox2 DBox2_Strom
     2           Toshiba
     3           Toshiba
     4           DBox2
     5           DBox2
     all         Toshiba DBox2 DBox2_Strom
   do:
     0:
       0          set DBox2_Strom aus
       1          set DBox2_Strom an
     1:
       0          set DBox2_Strom an
     2:
       0          set DBox2 an
     3:
       0          set DBox2 aus
     4:
       0          set Toshiba an
     5:
       0          set Toshiba aus
     6:
   helper:
     DOIF_Readings_events
     DOIF_eventas
     event      aus,presence: absent
     globalinit 1
     last_timer 0
     sleeptimer -1
     timerdev   DBox2
     timerevent power: aus,standby
     triggerDev DBox2
     timerevents:
       power: aus
       standby
     timereventsState:
       power: aus
       state: standby
     triggerEvents:
       aus
       presence: absent
     triggerEventsState:
       state: off
       presence: absent
   internals:
     0           Toshiba:STATE DBox2:STATE DBox2_Strom:STATE
     1           Toshiba:STATE DBox2:STATE DBox2_Strom:STATE
     2           Toshiba:STATE
     3           Toshiba:STATE
     4           DBox2:STATE
     5           DBox2:STATE
     all         Toshiba:STATE DBox2:STATE DBox2_Strom:STATE
   itimer:
   perlblock:
   readings:
   trigger:
   uiState:
   uiTable:
Attributes:
   icon       helper_doif
   room       99_DBox2,99_DOIF,99_TV,99_Toshiba
   wait       1,1,1


Damit kann ich nun in Fhem die D-Box und auch den Thoshiba an- und ausschalten und das jeweils andere gerät geht mit an und aus. Demzufolge kann ich auch wahlweise über Alexa beide Geräte dementsprechend ansprechen und jeweils den Befehl zum an- und ausschalten geben. Und obendrein kann ich auch mit der echten Fernbedienung der D-Box, die D-Box steuern, womit der Toshiba dann auch jeweils mit an oder aus geht.

Danke für die Antworten. Eigentlich hätte ich mir das hier sparen können. Aber nachdem ich 2-3 Tage an dem Problem saß und irgendwie nicht mehr weiter wusste, entschied ich mich eben dazu, hier zu fragen. Ist aber auch nicht schlimm, so hat die Nachwelt auch was davon, wenn mal jemand exakt das gleiche Problem hat.
Raspberry Pi 3 Model B Rev 1.2; Linux 4.9.59-v7+; Raspbian GNU/Linux 9 (stretch); CUL433 (VTS 0.29 CSM868); CUL 868 (VTS 0.29 CSM868); 6x BrennenstuhlRCR1000N; 8x ZAP; 3x EmilLux; 10x Sonoff Basic (Tasmota 5.10.0f); 5x HM-CC-RT-DN; 9x HM-SEC-SCo; 8x HM-SEC-SCo, 7x HM-LC-Sw1PBU-FM; Fritz!Box 7362 SL