Hauptmenü

RegEx values in Tablet UI

Begonnen von nerothos, 18 Januar 2017, 18:14:49

Vorheriges Thema - Nächstes Thema

nerothos

Hallo zusammen,

folgendes Problem beim Widget Symbol des Tablet UI in Verbindung mit  RegEx values

Ich habe einen Sensor "Dachfenster" dessen reading ist "alarm" und das kann sein
   
AccessControl: Window/Door is open, arg 0000
oder
AccessControl: Window/Door is closed, arg 0000

Dazu habe ich im Tablet UI erstellt:

<div data-type="symbol" data-device="Dachfenster" data-get="alarm" data-get-on="/open/" data-get-off="/closed/" class="cell narrow"></div>

Aber das nimmt er irgendwie nicht ... mein HomeBridge Mapping ist folgendes, und das funktioniert ohne Probleme

ContactSensorState=alarm,values=/closed/:CONTACT_DETECTED;/open/:CONTACT_NOT_DETECTED

iregdnwie stehe ich auf dem Schlauch, ist doch genau das selbe eigentlich oder ?

PS: Habe Testweise das Widget auch mal auf einen Schalter umgestellt, da funktioniert es ohne Probleme, aber da habe ich auch nur sate on:off

Danke

nerothos

Hallo zusammen,

habe mittlerweile mit RegExp101 mal noch ein paar Sachen ausprobiert unter anderen kann das wohl so nicht direkt ausgelsen werden sondern muss data-get-on="\/open\/" wohl so aussehen damit er das richtig interpretieren kann, aber funktioniert auch nicht ... jemand eine Idee ?

Vielen Dank

nerothos

habs jetzt per dummy device und Notify gelöst, nicht schön aber selten ;)
notify liest das eigentliche device aus und wandelt Open/close in on/off und ich lese im Tablet Ui den State des dummys aus

misterziege

Hi nerothos,

Die Variante könnte für einen meiner Anwendungsfälle auch funktionieren.
Wärst Du so nett und postest die Befehle zum notify definieren und den Code, wie Du im Tablet UI den state ausliest?!
Danke,
misterziege.

nerothos

Hi,

ja klar :)

Z ist das Original Device
Für X und Y nimmst du namen wie du willst

1. Dummy anlegen
define X dummy

2. Notify anlegen
define Y notify Z:alarm:.* { if (("$EVENT") =~ /closed/) {fhem ("set X off");;} else { fhem ("set X on");;} }

readings musst du halt ggf. anpassen damit es bei dir passt :)
vg


misterziege

Hi nerothos,

Danke; jetzt trotzdem noch zum Verständnis:

Mit dem Notify sagst Du quasi, dass der dummy den state off bekommen soll, wenn Z alarm meldet, richtig? Ansonsten soll dummy state on sein, richtig?

Sieht dann dein Code in der Tablet UI auf deiner alten Basis:  <div data-type="symbol" data-device="Dachfenster" data-get="alarm" data-get-on="/open/" data-get-off="/closed/" class="cell narrow"></div>

dementsprechend so aus:
<div data-type="symbol" data-device="dummy x" data-get="alarm" data-get-on="/on/" data-get-off="/off/" class="cell narrow"></div>

Grüße,
misterziege.

nerothos

Hi,

das data-get muss dann auf state gesetzt werden und bei data-get-pn und off können die beiden // weg :)

Vg

misterziege

Super. Danke! Das funktioniert nun.

Jetzt hänge ich noch in einem anderen Anliegen:

Ich würde gerne aus einem Kalendereintrag in einem Calview überprüfen lassen, ob für die aktuelle Woche in einer ..._summary "Frühschicht" eingetragen ist. Wenn ja, dann soll der state eines dummys auf "ja" gesetzt werden. Andernfalls auf "nein".
Wäre das auch analog denkbar? In etwa so:

define Y notify Z:state:.* { if (("NAME_Calview:t_001_summary") =~ /Frühschicht/) {fhem ("set X ja");;} else { fhem ("set X nein");;} }

Ich weiß, dass das - sofern es überhaupt funktioniert, nur überprüfen würde, ob der nächste eingetragene Eintrag "Frühschicht" wäre; aber ich bin halt absoluter Anfänger und freue mich über jegliche Tipps und Hilfen...