Autor Thema: Neues major release zum Test  (Gelesen 657 mal)

Offline Andi291

  • Developer
  • Sr. Member
  • ****
  • Beiträge: 981
Neues major release zum Test
« am: 14 April 2018, 00:23:42 »
Hallo Gemeinde!

Anbei ein neues Major-Release zum Test.

Es sind einige Bugfixes und die Feature-Requests aus dem Thread "Schnittstellenänderung" eingeflossen. Weiterhin habe ich die internen Datenstrukturen umgebaut, um das Modul übersichtlicher und performanter zu gestalten.
Zu den Kernänderungen gehört auch die Umgebaute Set-Syntax. Hierbei gilt, dass die Gruppenadressen nun grundsätzlich über Namen angesprochen werden. Die Qualifier (Value, ...) entfallen ersatzlos. Keine Sorge, der alte Pfad ist und bleibt noch drin.

Folgende Attribute sind deprecated - bitte dazu die Commandref und die darin enthaltenen Beispiele konsultieren: listenonly, readonly, slider, useSetExtensions.

Bitte testet fleißig und gebt mir Rückmeldung.

@Admins: kann man den Thread bitte oben anpinnen?

Danke!


« Letzte Änderung: 19 April 2018, 22:10:01 von Andi291 »
Gefällt mir Gefällt mir x 1 Liste anzeigen

Offline JoeALLb

  • Hero Member
  • *****
  • Beiträge: 1265
Antw:Neues major release zum Test
« Antwort #1 am: 16 April 2018, 08:03:21 »
Danke!

Die neue Prüfung:
configfile: GAD 3/5/20 may be supplied only once per device.hat gleich erfolgreich zugeschlagen und mir einen Fehler in meiner Konfiguration aufgedeckt.
FHEM-Server auf IntelAtom+Debian (8.1 Watt), KNX,
RasPi-2 Sonos-FHEM per FHEM2FHEM,RasPi-3 Versuchs-RasPi für WLAN-Tests
Gateways: DuoFern Stick, CUL866 PCA301, CUL HM, HMLan, JeeLink, LaCrosse,VCO2
Synology. Ardurino UNO für 1-Wire Tests, FB7270

Offline EIB-Fan

  • Full Member
  • ***
  • Beiträge: 126
Antw:Neues major release zum Test
« Antwort #2 am: 16 April 2018, 11:20:01 »
Hallo Andi,

danke an dich für die Weiterentwicklung des Modules!  :)

Ich habe am Wochenende auf die neue KNX-Version umgestellt. Natürlich waren in der Konfiguration einige Änderungen notwendig ... 8)

Mir ist ein Punkt aufgefallen. Das Senden des Datums bricht immer wieder mit Fehler "invalid value: time" ab
set timedev date now
Werde natürlich weiter testen und Feedback geben.

Gruß Jens

Offline JoeALLb

  • Hero Member
  • *****
  • Beiträge: 1265
Antw:Neues major release zum Test
« Antwort #3 am: 16 April 2018, 14:55:21 »
Allgemeiner Hinweis:
Da ich zum Anzeigen immer wieder entscheiden muss, welche Werte (-put -get oder -set) ich nutze,
verzichte ich mittlerweile in meiner ganzen Installation auf die Nutzung von -get,-put,-set.
Dies hat auch den riesen Vorteil, dass bei Set-Befehlen gleich der aktuelle Wert als Vorauswahl angezeigt wird.

Rudi hat mir dankenswerter Weise in fhem.pl eine Erweiterung eingearbeitet, die das Umschreibend avon in userReadings
relativ einfach macht. (Achtung, das geht nur in ganz aktuellen Versionen!)
Statt drei einzelnen Aufrufen ist nun folgendes möglich, um alle drei Arten auf ein Reading "zusammenzukopieren".

measured-temp:measured-temp-.* {   
  $eventValue;
},

Dies kann noch und folgendes ergänzt werden, wenn man zB nur bei Änderungen das Reading aktualisieren möchte und wenn man
zusätzlich noch nur den nummerischen Wert ohne "Unit" übernehmen möchte:

measured-temp:measured-temp-.* {   
  return  $eventValue ne ReadingsVal($name,$eventName,-10) ? ($eventValue =~ /(-?\d+(\.\d+)?)/)[0] : undef;
},

Vielleicht mag das einer in dem Zusammenhang mit nutzen...

sG
Joe
FHEM-Server auf IntelAtom+Debian (8.1 Watt), KNX,
RasPi-2 Sonos-FHEM per FHEM2FHEM,RasPi-3 Versuchs-RasPi für WLAN-Tests
Gateways: DuoFern Stick, CUL866 PCA301, CUL HM, HMLan, JeeLink, LaCrosse,VCO2
Synology. Ardurino UNO für 1-Wire Tests, FB7270

Offline JoeALLb

  • Hero Member
  • *****
  • Beiträge: 1265
Antw:Neues major release zum Test
« Antwort #4 am: 16 April 2018, 15:29:52 »
bei diesem Device bekomme ich
defmod knx.Test1 KNX 0/5/6:dpt9.001:measured-temp
attr knx.Test1 verbose 5
attr knx.Test1 webCmd :

diese Fehlermeldung im Log:
2018.04.16 15:26:26 5: parse: process message, device-name: knx.Test1, rd-name: , gadCode: 0050a, model:
2018.04.16 15:26:26 5: decode value: 00, gadName:
2018.04.16 15:26:26 5: decode model: , code: , value: 00
2018.04.16 15:26:26 2: decode model: , no valid model defined
2018.04.16 15:26:26 1: readingsUpdate(knx.Test1,last-sender,1/1/10) missed to call readingsBeginUpdate first.
2018.04.16 15:26:26 1: stacktrace:
2018.04.16 15:26:26 1:     main::readingsBulkUpdate            called by ./FHEM/10_KNX.pm (1128)
2018.04.16 15:26:26 1:     main::KNX_Parse                     called by fhem.pl (3746)
2018.04.16 15:26:26 1:     main::Dispatch                      called by ./FHEM/00_TUL.pm (289)
2018.04.16 15:26:26 1:     main::TUL_Parse                     called by ./FHEM/00_TUL.pm (270)
2018.04.16 15:26:26 1:     main::TUL_Read                      called by fhem.pl (3550)
2018.04.16 15:26:26 1:     main::CallFn                        called by fhem.pl (708)
2018.04.16 15:26:26 2: parse device hash (wpi): HASH(0x562abf1cb260) name: knx.Test1, message could not be decoded - see log for details

sG
Joe
FHEM-Server auf IntelAtom+Debian (8.1 Watt), KNX,
RasPi-2 Sonos-FHEM per FHEM2FHEM,RasPi-3 Versuchs-RasPi für WLAN-Tests
Gateways: DuoFern Stick, CUL866 PCA301, CUL HM, HMLan, JeeLink, LaCrosse,VCO2
Synology. Ardurino UNO für 1-Wire Tests, FB7270

Offline Andi291

  • Developer
  • Sr. Member
  • ****
  • Beiträge: 981
Antw:Neues major release zum Test
« Antwort #5 am: 16 April 2018, 21:12:42 »
Moin!

@Jens: In der Doku korrigiert.
@Joe: Kann ich nicht nachvollziehen. Die Definition läuft 1a durch. Wann wird die Fehlermeldung ausgegeben?

Ich pinne die Version am ersten Post an...

Grüße, Andi

EDIT:
Kann es sein, dass bei Dir noch ein Autocreate-Device mit der Adresse 0/5/10 rumliegt? Das ist nämlich die Adresse der geparsten Nachricht.
« Letzte Änderung: 16 April 2018, 21:29:05 von Andi291 »

Offline JoeALLb

  • Hero Member
  • *****
  • Beiträge: 1265
Antw:Neues major release zum Test
« Antwort #6 am: 17 April 2018, 11:55:37 »
@Joe: Kann ich nicht nachvollziehen. Die Definition läuft 1a durch. Wann wird die Fehlermeldung ausgegeben?

hm, wenn ich ein get measured-temp absetze,

Kann es sein, dass bei Dir noch ein Autocreate-Device mit der Adresse 0/5/10 rumliegt? Das ist nämlich die Adresse der geparsten Nachricht.
Nein, nicht per autocreate. das ist ein normale Windarlarm, definiert über 0/5/10:dpt1.


sG
Joe
FHEM-Server auf IntelAtom+Debian (8.1 Watt), KNX,
RasPi-2 Sonos-FHEM per FHEM2FHEM,RasPi-3 Versuchs-RasPi für WLAN-Tests
Gateways: DuoFern Stick, CUL866 PCA301, CUL HM, HMLan, JeeLink, LaCrosse,VCO2
Synology. Ardurino UNO für 1-Wire Tests, FB7270

Offline Andi291

  • Developer
  • Sr. Member
  • ****
  • Beiträge: 981
Antw:Neues major release zum Test
« Antwort #7 am: 17 April 2018, 19:35:18 »
Abend Joe!

Sorry, ich kann es nicht nachvollziehen:

2018.04.17 19:31:20 5: parse: process message, device-name: knx.Test1, rd-name: measured-temp, gadCode: 00506, model: dpt9.001
2018.04.17 19:31:20 5: received hash (r): HASH(0x3a2ee88) name: knx.Test1, GET
2018.04.17 19:33:24 5: enter get knx.Test1: hash: HASH(0x3a2ee88), attributes: knx.Test1, measured-temp
2018.04.17 19:33:24 5: get knx.Test1: request value for GAD: 0/5/6, GAD-NAME: measured-temp
2018.04.17 19:33:24 5: exit get
2018.04.17 19:33:25 5: parse: process message, device-name: knx.Test1, rd-name: measured-temp, gadCode: 00506, model: dpt9.001

Kann es sein, dass Du noch irgendein put-Cmd Fragment rumliegen hast, welches den value nullt?

Offline JoeALLb

  • Hero Member
  • *****
  • Beiträge: 1265
Antw:Neues major release zum Test
« Antwort #8 am: 17 April 2018, 20:18:00 »
Hallo Andi, meine Wetterstation antwortet auf die eine Anfrage mit mehreren verschiedenen antworten... Ich schau mir das gerade genauer an....
FHEM-Server auf IntelAtom+Debian (8.1 Watt), KNX,
RasPi-2 Sonos-FHEM per FHEM2FHEM,RasPi-3 Versuchs-RasPi für WLAN-Tests
Gateways: DuoFern Stick, CUL866 PCA301, CUL HM, HMLan, JeeLink, LaCrosse,VCO2
Synology. Ardurino UNO für 1-Wire Tests, FB7270

Offline JoeALLb

  • Hero Member
  • *****
  • Beiträge: 1265
Antw:Neues major release zum Test
« Antwort #9 am: 18 April 2018, 10:37:26 »
Hallo Andi, wie ist es gedacht, einer "funktion" mehrere GADs zuzuweisen?
Ich denke da im Moment an ein Sperrobjekt für Heizungsventile.

Jedes Ventil hat eine eigene SperrGAD, dann gibt es noch eine zentrale SperrGAD fürs ganze Haus.

Wie würdest Du das im Modul abbilden? 2 Unterschiedliche GADs und die Stati per funktion oder userreading "zusammenkopieren", oder
kann ich (vielleicht sogar jetzt schon?) 2 unterschiedliche GADs gleich benennen?

Edit:
Bin gerade über das Log aus zeile 647 gestossen, das bei jeder Ansicht des Devices angezeigt wird.
Da es "Unknown argument ..." heißt, bin ich von einem Fehler ausgegangen, wenn ich mir die Codekommentare ansehe, scheint es aber kein Fehler zu sein.
Kann/Sollte man hie rnicht den text ändern?
Zusätzlich musste ich mir den Devicenamen über folgendes mit anzeigen, um überhaupt zu sehen, welches Device denn diese Fehlermeldung überhaupt produziert.
"Unknown argument '$name : $arg1' [...]
sG
Joe
« Letzte Änderung: 18 April 2018, 11:33:40 von JoeALLb »
FHEM-Server auf IntelAtom+Debian (8.1 Watt), KNX,
RasPi-2 Sonos-FHEM per FHEM2FHEM,RasPi-3 Versuchs-RasPi für WLAN-Tests
Gateways: DuoFern Stick, CUL866 PCA301, CUL HM, HMLan, JeeLink, LaCrosse,VCO2
Synology. Ardurino UNO für 1-Wire Tests, FB7270

Offline Andi291

  • Developer
  • Sr. Member
  • ****
  • Beiträge: 981
Antw:Neues major release zum Test
« Antwort #10 am: 18 April 2018, 19:44:48 »
Servus Joe!

Hab ich bei mir sinngemäß so gelöst (alte Syntax):

Im state steht immer nur der eigentliche Aktorstatus - meist zu bekommen per stateCmd und Einlesen von Status-get:
define licht_terasse KNX 5/4/18:dpt1.001:status 5/4/16:dpt1.001:auto 5/4/17:dpt1.001:manuell
attr licht_terasse IODev knxd
attr licht_terasse alias Licht Terasse
attr licht_terasse devStateIcon (on)|([Ee]in):general_an:Aus (off)|([Aa]us):general_aus:Ein
attr licht_terasse eventMap /on g3:Ein/off g3:Aus/
attr licht_terasse group Beleuchtung
attr licht_terasse icon light_outdoor
attr licht_terasse room Au&szligen
attr licht_terasse stateCmd {sprintf("%s", ReadingsVal($name,"status-get",""))}
attr licht_terasse webCmd Ein:Aus

Wenn mich der Übergangszustand interessiert - z.B. wg. Icon - nutze ich folgenden Weg:
define nas KNX 11/0/1:dpt1.001:status 11/0/0:dpt1.001:steuern 11/0/2:dpt1.001:reboot
attr nas IODev knxd

Und ja: Zeile 647 is blöd - bitte auskommentieren.

Was ist aus Deiner Wetterstation geworden?
attr nas alias NAS
attr nas devStateIcon status-on:general_an:Reboot status-off:general_aus:Ein steuern-.*:hourglass reboot-.*:hourglass
attr nas eventMap /on g2:Ein/off g2:Aus/on g3:Reboot/
attr nas group IT
attr nas icon it_nas
attr nas room System,Startseite
attr nas stateRegex /steuern-[sg]et:/steuern-/ /status-[sg]et:/status-/ /reboot-[sg]et:/reboot-/
attr nas webCmd Ein:Aus:Reboot

EDIT: Probier die neue Version - damit müsste last-Sender nun auch in den autocreate-devices ohne DPT eingetragen werden.
« Letzte Änderung: 18 April 2018, 19:56:20 von Andi291 »

Offline JoeALLb

  • Hero Member
  • *****
  • Beiträge: 1265
Antw:Neues major release zum Test
« Antwort #11 am: 19 April 2018, 09:33:17 »
  Was ist aus Deiner Wetterstation geworden?
Beim Suchen danach bin ich eben über Zeile 647 gestolpert und hab mich nach der vermeindlichen Fehlersuche "verrannt".

Aber aktuell sieht es gut aus, obwohl ich noch seltsamkeiten bei DPT1 untersuchen möchte. DPT1.001 scheint dagegen zu funktionieren!
Aber ich bin noch nicht weiter, muss es nochmal prüfen.

Generell finde ich die Version toll, und einen Mega-Schritt gegenüber der bisherigen Version!
Besonders auch das angenäherte look and feel zu anderen typischen fhem-Modulen, besonders die Auflösung des eigenen Slider-Konzepts und das wegfallen des "value".
Schade finde ich leider wirklich, das Thema "-put,-get, -set",
denn dadurch lassen sich die neuen Gruppennamen nur "halbherzig" verwenden, Slider haben falsche Defaults beim Öffnen eines Devices, ...
Hier würde ich mir ein Attribut wünschen, um das zu deaktivieren.

Über folgenden simplen Patch habe ich das im Moment für mich gelöst, da ich die saubere Variante mit Attribut (und default bei nicht gesetztem Attribut auf (-put, -...) leider mit meinen Programmierkenntnissen nicht hinbekomme.

--- 10_KNX.org.pm Thu Apr 19 09:17:50 2018
+++ 10_KNX.pm Thu Apr 19 09:16:33 2018
@@ -71,7 +71,7 @@
 #pattern for group-no
 my $PAT_GNO = '[gG][1-9][0-9]?';
 #pattern for GAD-Options
-my $PAT_GAD_OPTIONS = '(get)|(set)|(listenonly)';
+my $PAT_GAD_OPTIONS = '(get)|(set)|(listenonly)|(suffix)';
 #pattern for forbidden GAD-Names
 #my $PAT_GAD_NONAME = '((on)|(off)|(value)|(raw)|' . $PAT_GAD_OPTIONS . ')$';
 #pattern for DPT
@@ -384,6 +384,12 @@
  $rdNameSet = $gadName . "-set";
  $rdNamePut = "";
  }
+ elsif ($gadOption =~ m/(suffix)/i)
+ {
+ $rdNameGet = $gadName . "";
+ $rdNameSet = $gadName . "";
+ $rdNamePut = $gadName . "";
+ }
  }
  else
  {

Übrigens: Der Klick in der englischen Commandref auf KNX funktioniert nicht. Ich muss immer auf das Modul darüber (KM273) klicken und dann runterscrollen.
Das entsteht wohl durch diesen Fehler:
/usr/bin/perl ./contrib/commandref_join.pl -noWarnings
*** EN KNX: nonempty line after =begin html ignored
und sorgt dafür,
dass diese Zeile
<p><a name="KNX"></a></p>nicht mit aufgenommen wird. Somit fehlt das Sprungziel.

Was ich mir noch wünschen würde wäre ein DPT1 der nur 0 und 1 kennt.

sG Joe
FHEM-Server auf IntelAtom+Debian (8.1 Watt), KNX,
RasPi-2 Sonos-FHEM per FHEM2FHEM,RasPi-3 Versuchs-RasPi für WLAN-Tests
Gateways: DuoFern Stick, CUL866 PCA301, CUL HM, HMLan, JeeLink, LaCrosse,VCO2
Synology. Ardurino UNO für 1-Wire Tests, FB7270

Offline Andi291

  • Developer
  • Sr. Member
  • ****
  • Beiträge: 981
Antw:Neues major release zum Test
« Antwort #12 am: 19 April 2018, 22:09:22 »
Abend!

Nervensäge :-)

Doku geht. Dein Flag heißt "nosuffix". Ich konnte mich durchringen, einen DPT außerhalb des KNX-Standard anzulegen. Er heißt 1.000 (für was auch immer Du den brauchst....).

Grüße, Andi

Offline JoeALLb

  • Hero Member
  • *****
  • Beiträge: 1265
Antw:Neues major release zum Test
« Antwort #13 am: Gestern um 06:56:07 »
 :D
Ich nehme das jetzt Mal als Kompliment...
Bin am testen!
FHEM-Server auf IntelAtom+Debian (8.1 Watt), KNX,
RasPi-2 Sonos-FHEM per FHEM2FHEM,RasPi-3 Versuchs-RasPi für WLAN-Tests
Gateways: DuoFern Stick, CUL866 PCA301, CUL HM, HMLan, JeeLink, LaCrosse,VCO2
Synology. Ardurino UNO für 1-Wire Tests, FB7270

 

decade-submarginal