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
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.
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.
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
Ich glaube, ich habe es hinbekommen. Erklärung folgt ....
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.
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 ...
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.
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.