Autor Thema: [closed] Neues Feature - bitte lesen  (Gelesen 2934 mal)

Offline Andi291

  • Developer
  • Hero Member
  • ****
  • Beiträge: 1125
[closed] Neues Feature - bitte lesen
« am: 11 Januar 2016, 21:13:56 »
Hallo Gemeinde,

die letzte Zeit sind hier ja einige Anfragen hinsichtlich Werte synchronisieren / umkopieren, etc. rumgegangen. Ein Post von Wolfgang hat mich ich Grübeln gebracht...

Ich selbst arbeite viel mit Sperren und Zwangsobjekten - bedeutet in der Visu habe ich heute fast ausschließlich Dummies, welche sich dann per Notify, etc. auf die ehcten Nachrichten synchronisieren...Das macht meine fhem.cfg RIESIG (aktuell mehr als 4000 Zeilen) und auch nicht gerade wartungsfreundlich.

Das, und die Tatsache, dass doch einige User einige Werte nachbehandeln müssen, um sie weiterverarbeiten zu können, haben mich bewogen zwei neue Attribute einzuführen: EIBreadingRegex und EIBwritingRegex.

Beiden kann eine Liste von regex / string -Paaren mitgegeben werden. Getrennt werden die Pärchen mit einem Slash. Das nächste Pärchen kann nach einem Leerzeichen folgen.

EIBreadingRegex:
Im Modul wird ein String mit der Syntax getG[no. der Gruppenadresse]:[state] gebildet. Es werden nacheinander alle Pärchen durchlaufen und Ersetzungen vorgenommen. Das Resultat wird in state geschrieben. Die anderen Readings werden NICHT beeinflusst.

EIBwritingRegex:
Nach dem Senden des Wertes wird im Modul wird ein String mit der Syntax setG1:[state] gebildet. Es werden nacheinander alle Pärchen durchlaufen und Ersetzungen vorgenommen. Das Resultat wird in state geschrieben. Die Buskommunikation wird NICHT beeinflusst.

Im Anhang eine Beta-Version.

Bitte lasst mich wissen, was Ihr davon haltet...

Grüße, Andi

P.S.:

define myLamp EIB 0/1/1 0/1/2 0/1/2
attr myLamp EIBreadingRegex getG[1]:/steuern: getG[2]:/status: getG[3]:/sperre:
attr myLamp EIBreadingRegex devStateIcon status.on:general_an status.off:general_aus sperre.on:lock

define myLockObject EIB 0/1/1
attr myLamp EIBwritingRegex setG1:on/LOCKED setG1:/UNLOCKED
« Letzte Änderung: 23 Januar 2016, 09:47:17 von Andi291 »

Offline ZeitlerW

  • Full Member
  • ***
  • Beiträge: 155
Antw:Neues Feature - bitte lesen
« Antwort #1 am: 12 Januar 2016, 08:39:36 »
Hallo Andi,

ich finde die Idee ziemlich cool! Das ermöglicht wirklich neue Ansätze sowohl bei der VISU - Gestaltung als auch bei Logiken.

Zum Thema Event - Handling:
Soweit ich verstanden habe müßte aber trotzem das Attribut event-on-change/update-reading gesetzt werden um nur bei Rückmeldeobjeten einen Event zu triggern. Allerdings würde nun das Prüfen des state das richtige Ergebnis bringen.

Ich bin diese Woche unterwegs. Ich schau' mal ob ich zum Testen komme!

lG
Wolfgang

Offline Jensmaier2

  • Jr. Member
  • **
  • Beiträge: 99
Antw:Neues Feature - bitte lesen
« Antwort #2 am: 12 Januar 2016, 10:45:55 »
Super danke

Ich werde mal schauen ob ich damit was gebacken bekomme.

Gruß

Offline Andi291

  • Developer
  • Hero Member
  • ****
  • Beiträge: 1125
Antw:Neues Feature - bitte lesen
« Antwort #3 am: 12 Januar 2016, 12:36:38 »
Hallo Wolfgang,

korrekt - am Handling habe ich nichts geändert, lediglich ein je search/replace bei getG und setG reingefummelt (wobei die Notwendigkeit bei setG mal dahin gestellt sei - aber ich mags symmetrisch :-)).

Grüße, Andi

Offline Jensmaier2

  • Jr. Member
  • **
  • Beiträge: 99
Antw:Neues Feature - bitte lesen
« Antwort #4 am: 15 Januar 2016, 09:17:14 »
Hallo Andi

Heute versuche ich meinen code für die Rauchmelder zu verschlanken.
Ich würde gern den on off Status unterscheiden können, komme jedoch nicht auf den Syntax.
Ich benötige die verschiedenen stati da ich in der Email die versendet wird das EVENT benutze.

Versucht habe ich folgendes:

define read_hwr_rauchalarm EIB 6/0/0 6/1/0 6/2/0 #6/0/* Rauchalarm 6/1/* Batteriealarm 6/2/* Messkammeralarm
attr read_hwr_rauchalarm IODev KNX
attr read_hwr_rauchalarm EIBreadingRegex getG[1]:on.rauachalarm:ALARM off.rauchalarm:beendet  getG[2]:on.Batteriealarm:BATTERIESTAND off.batteriealarm:OK getG[3]:on.Messkammerfehler:MESSKAMMERFEHLER off.Messkammerfehler:OK
attr read_hwr_rauchalarm group Rauchmelder
attr read_hwr_rauchalarm room 99 System

Auch nicht zum Erfolg führte:
attr read_hwr_rauchalarm EIBreadingRegex getG[1]:on.*:RAUCHALARMALARM off.*:beendet  getG[2]:on.*:Batteriestand off.*:OK getG[3]:on.*:OK off.*Messkammerfehler
Gruß
Michael
« Letzte Änderung: 15 Januar 2016, 09:25:11 von Jensmaier2 »

Offline Andi291

  • Developer
  • Hero Member
  • ****
  • Beiträge: 1125
Antw:Neues Feature - bitte lesen
« Antwort #5 am: 15 Januar 2016, 10:05:37 »
Morgen!

Probier mal:

attr read_hwr_rauchalarm EIBreadingRegex getG[1]:on.*/RAUCHALARMALARM getG1[1]:off.*/beendet  getG[2]:on.*/Batteriestand getG[2]:off.*/OK getG[3]:on.*/OK getG[3]:off.*/Messkammerfehler
Müsste auch so gehen:

attr read_hwr_rauchalarm EIBreadingRegex getG[1]:on/RAUCHALARMALARM getG1[1]:off/beendet  getG[2]:on/Batteriestand getG[2]:off/OK getG[3]:on/OK getG[3]:off/Messkammerfehler

Genau für diesen Zweck hab ich es gebaut. Yes - es gibt noch andere Anwender :-P

Grüße, Andi

Offline Jensmaier2

  • Jr. Member
  • **
  • Beiträge: 99
Antw:Neues Feature - bitte lesen
« Antwort #6 am: 15 Januar 2016, 10:35:43 »
Vielen Dank

da habe ich noch einige andere Anwendungen für, das wird mir einiges an Code sparen :)

Gruß

Offline Jensmaier2

  • Jr. Member
  • **
  • Beiträge: 99
Antw:Neues Feature - bitte lesen
« Antwort #7 am: 15 Januar 2016, 10:42:24 »
Funzt perfekt DANKE

Besteht nun eigentlich auch noch die Möglichkeit permanente userreadings aus allen Gruppenadressen zu machen?
Ich möchte nun noch mit einer readingsgroup die zustände aller Rauchmelder und Gruppenadressen auflisten.

Gruß

PS habe auch gestern deine neuen DPT 13.010 und DPT 13 benötigt. :)
« Letzte Änderung: 15 Januar 2016, 10:45:53 von Jensmaier2 »

Offline Andi291

  • Developer
  • Hero Member
  • ****
  • Beiträge: 1125
Antw:Neues Feature - bitte lesen
« Antwort #8 am: 15 Januar 2016, 11:17:09 »
RTFM  ;)

EIBReadingX macht aus jedem Telegram ein getG[n] bzw. SetG1. Aber Achtung: das wird alles mitgelogged!

Offline Andi291

  • Developer
  • Hero Member
  • ****
  • Beiträge: 1125
Antw:Neues Feature - bitte lesen
« Antwort #9 am: 16 Januar 2016, 12:14:57 »
Mahlzeit!

Anbei eine korrigierte Version - bei der ersten hab ich noch eine Debug-Leiche drin gehabt...

@Michael: Danke!!!

Grüße, Andi

Offline Andi291

  • Developer
  • Hero Member
  • ****
  • Beiträge: 1125
Antw:[closed] Neues Feature - bitte lesen
« Antwort #10 am: 23 Januar 2016, 09:47:28 »
...eingechecked...

 

decade-submarginal