Hauptmenü

GELÖST : DOIF Fehler

Begonnen von rasti, 04 März 2018, 23:59:00

Vorheriges Thema - Nächstes Thema

rasti

Hallo,

ich habe einen Panasonic Viera, das ich mit dem Viera-Modul steuere.
IP ist 192.168.178.9
Das Modul kann den Fernseher aber nicht einschalten.
Dazu dient neuerdings ein IR-WLAN-Gateway mit IP 192.168.178.21
Funktioniert alles soweit.

Um das ganze über Tablet UI zu schalten habe ich den Dummy TV_Schalter definiert.

<li data-row="5" data-col="1" data-sizex="1" data-sizey="1" class="semitransparent">
<header>TV an/aus</header><div data-type="switch" data-device="TV_Schalter" class="cell" data-icon="fa-tv"></div>
         <div data-type="label" class="cell">TV an/aus</div>

         
</li>

Wenn TV-Schalter auf on geht, wird über den DOIF TV_Schalter_on der Fernseher über
das IR-WLAN-Gateway eingeschaltet. Das funktioniert auch.

Was nicht geht : Ich will in Tablet UI sehen, wann der Fernseher an oder aus ist. Das geht aber nur, wenn ich über
FHEM / Tablet UI schalte. Mache ich den TV über die Fernbedienung aus, ändert sich der Zustand von TV_Schalter
(sichtbar in Tablet UI) natürlich nicht. Deswegen wollte ich mit dem DOIF TV_Schalterflag_off den Zustand von TV_Schalter
auf off setzen damit dies im Tablet UI Icon auch angezeigt wird. Das geht aus irgendeinem Grund aber nicht.
Was ist an dem Code ( DOIF TV_Schalterflag_off )  falsch ?

Viele Grüße

Ralf



define _____TV_Wohnzimmer VIERA 192.168.178.9

define TV_Schalter dummy
attr TV_Schalter setList on off

define TV_Schalter_on DOIF ([TV_Schalter] eq "on") ({GetHttpFile("192.168.178.21","/json?plain=[{'data':'0100BCBD','address':'16388','type':'PANASONIC','length':48,'pulse':10,'pdelay':1}]")})
attr TV_Schalter_on do always

define TV_Schalter_off cmdalias set TV_Schalter off AS ;; set _____TV_Wohnzimmer off

define TV_Schalterflag_off DOIF ([_____TV_Wohnzimmer] eq "absent") (set TV_Schalter off)
attr TV_Schalterflag_off do always


Amenophis86

Mal abgesehen, dass ich Namen mit vielen _ am Anfang für sehr unschön und störend halte, ist die Frage ob überhaupt der Zustand absent getriggert wird. Helfen könnten da, wie so oft gefordert, lists der entsprechenden Device.
Aktuell dabei unser neues Haus mit KNX am einrichten. Im nächsten Schritt dann KNX mit FHEM verbinden. Allein zwei Dinge sind dabei selten: Zeit und Geld...

Ellert

Zitat von: rasti am 04 März 2018, 23:59:00
Hallo,

ich habe einen Panasonic Viera, das ich mit dem Viera-Modul steuere.
IP ist 192.168.178.9
Das Modul kann den Fernseher aber nicht einschalten.
Dazu dient neuerdings ein IR-WLAN-Gateway mit IP 192.168.178.21
Funktioniert alles soweit.

Um das ganze über Tablet UI zu schalten habe ich den Dummy TV_Schalter definiert.

<li data-row="5" data-col="1" data-sizex="1" data-sizey="1" class="semitransparent">
<header>TV an/aus</header><div data-type="switch" data-device="TV_Schalter" class="cell" data-icon="fa-tv"></div>
         <div data-type="label" class="cell">TV an/aus</div>

         
</li>

Wenn TV-Schalter auf on geht, wird über den DOIF TV_Schalter_on der Fernseher über
das IR-WLAN-Gateway eingeschaltet. Das funktioniert auch.

Was nicht geht : Ich will in Tablet UI sehen, wann der Fernseher an oder aus ist. Das geht aber nur, wenn ich über
FHEM / Tablet UI schalte. Mache ich den TV über die Fernbedienung aus, ändert sich der Zustand von TV_Schalter
(sichtbar in Tablet UI) natürlich nicht. Deswegen wollte ich mit dem DOIF TV_Schalterflag_off den Zustand von TV_Schalter
auf off setzen damit dies im Tablet UI Icon auch angezeigt wird. Das geht aus irgendeinem Grund aber nicht.
Was ist an dem Code ( DOIF TV_Schalterflag_off )  falsch ?

Viele Grüße

Ralf



define _____TV_Wohnzimmer VIERA 192.168.178.9

define TV_Schalter dummy
attr TV_Schalter setList on off

define TV_Schalter_on DOIF ([TV_Schalter] eq "on") ({GetHttpFile("192.168.178.21","/json?plain=[{'data':'0100BCBD','address':'16388','type':'PANASONIC','length':48,'pulse':10,'pdelay':1}]")})
attr TV_Schalter_on do always

define TV_Schalter_off cmdalias set TV_Schalter off AS ;; set _____TV_Wohnzimmer off

define TV_Schalterflag_off DOIF ([_____TV_Wohnzimmer] eq "absent") (set TV_Schalter off)
attr TV_Schalterflag_off do always


Es könnte an den führenden Unterstrichen liegen.

Die Konstellation ist recht kompliziert, im Grunde reicht ein DOIF, kein Dummy, kein cmdalias

define TV_Schalter DOIF(1) ({GetHttpFile...)
DOELSEIF (2) (set _____TV_Wohnzimmer off)
DOELSEIF ([_____TV_Wohnzimmer] eq "absent")


und die Attribute
cmdState on|off|off
do always
setList on,off


In FTUI schaltet set TV_Schalter on ein und set TV_Schalter off aus.
Die Bedingung sollte den Status des DOIF auf off setzen, falls die führenden Unterstriche funktionieren sonst _____TV_Wohnzimmer umbenennen.
Das Thema Event wurde ja schon erwähnt.

TWART016

Ich überprüfe per presence (lan-ping) ob der TV an ist, und stelle das in FTUI dar.

rasti

Hallo Ellert,

ich habe deinen Code (den ich dummerweise auch nicht verstehe) einfach mal verwendet.



define TV_Schalter DOIF (1) ({GetHttpFile("192.168.178.21","/json?plain=[{'data':'0100BCBD','address':'16388','type':'PANASONIC','length':48,'pulse':10,'pdelay':1}]")}) DOELSEIF (2) (set _____TV_Wohnzimmer off) DOELSEIF ([_____TV_Wohnzimmer] eq "absent")

attr TV_Schalter cmdState on|off|off
attr TV_Schalter do always
attr TV_Schalter setList on,off


Ich bekomme aber schon bei der Definition die Meldung 0 TV_Schalter DOIF: no trigger in condition: 1


Was ist da nicht richtig ?

Viele Grüße

Ralf

Ellert

#5
DOIF Version aktuell?
DOIF verstehen Stichworte set-Befehle, Attribut cmdState

Das DOIF verhält sich so, wie Du es von Deinem Dummy erwartest.

rasti

Zitat von: Ellert am 06 März 2018, 19:46:45
DOIF Version aktuell?

Hallo,

es war eine DOIF-Version von 2016 drin, habe ein Einzelmodulupdate gemacht.
Nun habe ich 98_DOIF.pm               16182 2018-02-14 21:36:04Z Damian

Es kommt aber dieselbe Fehlermeldung

Viele Grüße

Ralf

Ellert

Solange Du
define TV_Schalter DOIF (1)
nicht fehlerfrei definieren kannst, ist das Update nicht erfolgreich gewesen.
Einzelmodulupdates erhöhen die Wahrscheinlichkeit, dass es zu Inkonsistenz im System kommt.

rasti


Hallo,

Komplettupdate habe ich mich nicht getraut :=)

So geht's jetzt :

define TV_Schalter dummy
attr TV_Schalter setList on off

define TV_Schalter_on DOIF ([TV_Schalter] eq "on") ({GetHttpFile("192.168.178.21","/json?plain=[{'data':'0100BCBD','address':'16388','type':'PANASONIC','length':48,'pulse':10,'pdelay':1}]")})
attr TV_Schalter_on do always

define TV_Schalter_off DOIF ([TV_Schalter] eq "off") (set _____TV_Wohnzimmer off)
attr TV_Schalter_off do always


define TV_Schalterflag_off DOIF ([_____TV_Wohnzimmer] eq "absent") (set TV_Schalter off)
attr TV_Schalterflag_off do always

define TV_Schalterflag_on DOIF ([_____TV_Wohnzimmer] eq "on") (set TV_Schalter on)
attr TV_Schalterflag_on do always


KernSani

Dann bitte noch [Gelöst] vor das Subject des ersten Post schreiben :-)
RasPi: RFXTRX, HM, zigbee2mqtt, mySensors, JeeLink, miLight, squeezbox, Alexa, Siri, ...