Änderungen an Config-XMLs mit Openzwave 1.6 -> Grundlage für FHEM XMLs

Begonnen von krikan, 06 Mai 2019, 11:51:41

Vorheriges Thema - Nächstes Thema

rudolfkoenig

Nicht falsch verstehen: das ist meine Meinung, und das heisst nicht, dass ich boese bin, wenn jemand eine Andere hat.

betateilchen

Keine Sorge, ich habe Dich schon richtig verstanden. Inzwischen "kennen" wir uns ja schon eine Weile :)
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

betateilchen

Kannst Du bitte trotzdem mal das hier testen:

Zitat von: betateilchen am 20 Juli 2019, 12:31:42
Kann bitte jemand von Euch mit der aktualisierten 98_fheminfo.pm und den aktuellen xml-Daten testen, ob da nun immer noch sinnvolle Ergebnisse entstehen?

Bitte testen mit "fheminfo send debug" und die JSON Ausgabe zu zwave hier posten. Da ich selbst keine zwave Komponenten habe, kann ich nicht selbst testen.
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

krikan

Zitat von: betateilchen am 20 Juli 2019, 16:58:24
Kannst Du bitte trotzdem mal das hier testen:

fheminfo send debug-Auszug zu ZWave mit dem derzeiigen svn-Stand:
"ZWave":{"0086-0002-0064":1,"0086-0003-0062":1,"0086-0004-0050":1,"0108-0002-000e":3,"0109-2021-2101":1,"010f-0203-1000":1,"010f-0301-1001":4,"010f-0402-1002":1,"010f-0403-1000":2,"010f-0600-1000":1,"010f-0701-1001":1,"010f-0800-1001":2,"010f-0b01-1002":1,"010f-1d01-1000":1,"0115-0100-0102":1,"013c-0001-0012":1,"013c-0002-000c":1,"013c-0009-0022":1,"0148-0003-0001":1,"0154-0004-0002":2,"0154-0004-0004":2,"0159-0002-0052":1,"019a-0003-0003":2}

Funktioniert mit dem derzeitigen Stand des svn noch nicht, da ich die openzwave_manufacturer_specific.xml noch nicht auf das neue Format umgestellt habe. Schaffe es heute auch nicht mehr mit dem Check-In.

Nach Format-Umstellung würde es aber wohl funktionieren:

fheminfo send debug-Auszug zu ZWave mit einer openzwave_manufacturer_specific.xml im neuen Format (meine Testversion)
"ZWave":{"AEON Labs ZW080 Siren Gen5":1,"AEON Labs ZW098 LED Bulb":1,"AEON Labs ZW100 MultiSensor 6":1,"D-Link Corporation DCH-Z110 Door/Window 3 in 1 sensor":3,"EUROtronic EUR_SPIRITZ Wall Radiator Thermostat":1,"FIBARO System FGFS101 Zwave+ Flood Sensor":1,"FIBARO System FGK10x Door Opening Sensor":1,"FIBARO System FGMS001 Motion Sensor":2,"FIBARO System FGRM222 Roller Shutter Controller 2":4,"FIBARO System FGS212 Switch 3kW":1,"FIBARO System FGS213 Switch":2,"FIBARO System FGS223 Double Relay":1,"FIBARO System FGWPE/F Wall Plug":1,"FIBARO System FGWR111 Walli Roller Shutter":1,"Philio Technology Corp PAN04-1 Double Relay Switch 2x1.5kW with Power Measurement":1,"Philio Technology Corp PSR04 Smart Color Button":1,"Philio Technology Corp PST02-A 4 in 1 Multi-Sensor":1,"Popp & Co 009402 10-Year Smoke Detector":2,"Popp & Co Solar Powered Outdoor Siren":2,"Qubino (Goap) ZMNHADx Flush 1 Relay":1,"Sensative Strips":2,"Vision Security ZP3111 Multisensor 4in1":1,"Z-Wave.Me ZME_KFOB-S 4 Button Key Fob":1}

Rudi hat es in 10_ZWave.pm eine Variante gewählt die sowohl altes als auch neues Format unterstützt.

betateilchen

Danke fürs Testen.
Falls Du Zeit & Lust hast, kannst Du mit der eben eingecheckten Variante von 98_fheminfo.pm nochmal das alte und neue Format testen, darin habe ich nun die Variante umgesetzt, die Rudi auch verwendet.
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

krikan

Beim alten Format gibt es in 10_ZWave.pm und 98_fheminfo.pm noch Probleme. Es wird nur der Herstellername statt "Herstellername+Modellbezeichnung" genutzt:


"ZWave":{"Aeotec ":3,"D-Link Corporation ":3,"EUROtronic ":1,"FIBARO System ":14,"Philio Technology Corporation ":3,"Popp ":4,"Qubino ":1,"Sensative ":2,"Vision ":1,"Z-Wave.Me ":1}


Könnt ihr das bitte noch mal gegenchecken. Bin unterwegs und habe keine optimalen Testbedingungen....

rudolfkoenig

Danke fuer den Hinweis, habs gefixt und eingecheckt.
Ich habe wohl nicht alle 3 moeglichen Aufrufversionen der Funktion durchgetestet, das habe ich jetzt nachgeholt.

betateilchen

-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

krikan

Zitat von: betateilchen am 21 Juli 2019, 15:13:34
Die Änderung habe ich auch in fheminfo nachgezogen.
Danke.

Konvertierte openzwave_manufacturer_specific.xml im neuen Format habe ich gestern abend eingecheckt und funktioniert problemlos mit fheminfo. Alle weiteren Themen im Zusammenhang mit dem neuen XML-Format betreffen nicht openzwave_manufacturer_specific.xml, sondern die anderen XML-Dateien und haben damit mMn keine Auswirkungen auf fheminfo mehr.

krikan

@Rudi:
Auf den aktuellen Stand gebrachte openzwave_deviceconfig.xml.gz habe ich nun bereit zum Einchecken, ABER habe gerade mit Erschrecken die Dateigröße bemerkt: 525 kb. Für FHEM brauchen wir aus den XMLs derzeit nur einen geringen Teil. Verzichten könnten wir mMn aus den akuellen XMLs auf alles was zwischen <MetaData> </MetaData> an Text steht  (siehe bspw. https://github.com/OpenZWave/open-zwave/blob/master/config/fibaro/fgwr111.xml ); es sei denn Du hast vor das irgendwie als Hilfe einzubinden. So einchecken oder optimieren/kürzen?

Edit: Nach Löschen der Texte von <MetaData> ist die Datei noch ca. 300kb groß.

rudolfkoenig

Ich schlage vor die kompletten Daten einzuchecken: Du hast weniger Aufwand, und ich habe einen Anreiz, die Daten anzuzeigen.
Doku zu haben ist gut, wir sollten es nicht unnoetig wegwerfen.

krikan

Sind eingecheckt.

Musste "zwave_configconvert.pl" ein wenig anpassen, damit das Ergebnis (halbwegs) passt. Die Zeilenumbrüche insbesondere innerhalb von Kommentaren sind bei ozw momentan noch (?) etwas unglücklich. Mit der Codeänderung hatte ich nur noch 2 manuelle Anpassungen vorzunehmen und das war für mich einfacher als einen komplexeren Parser zu erstellen, der alles abdeckt. Keine Ahnung, ob Du den Patch einchecken willst.

Index: zwave_configconvert.pl
===================================================================
--- zwave_configconvert.pl      (Revision 19964)
+++ zwave_configconvert.pl      (Arbeitskopie)
@@ -43,7 +43,8 @@
   while(my $l = <FH>) {
     next if($l =~ m/^<\?xml/);
     chomp($l);
-    $l =~ s/^<Product.*xmlns.*/<Product sourceFile="$name">/;
+    $l =~ s/<!--.*-->//g;
+    $l =~ s/^(.*)<Product.*xmlns.*/$1<Product sourceFile="$name">/;
     $l =~ s/\r//g;
     $l =~ s/\t/  /g;
     #$l =~ s/^ *//g;
@@ -52,6 +53,14 @@
     if($l !~ m/>$/ || $l =~ m/^\s*<Help>\s*$/) { $buffer .= " ".$l; next; }
     if($buffer && $l =~ m/>$/) { $l = "$buffer $l"; $buffer=""; }
     $l =~ s/<!--.*-->//g;
+    # $l =~ s/<MetaData.*<\/MetaData>//g;
+    # $l =~ s/<MetaDataItem.*<\/MetaDataItem>//g;
+    # $l =~ s/<Entry.author.*<\/Entry>//g;
+    # $l =~ s/<ChangeLog.*<\/ChangeLog>//g;
+    # $l =~ s/<MetaData>//g;
+    # $l =~ s/<\/MetaData>//g;
+    # $l =~ s/<ChangeLog>//g;
+    # $l =~ s/<\/ChangeLog>//g;
     $l =~ s/ *$//g;
     print $l,"\n" if($l);
   }

rudolfkoenig

Danke fuer die Arbeit!

Habe dein Patch (ohne Nachdenken) eingecheckt, und ZWave.pm erweitert, um die MetaDataItems anzuzeigen.
Falls(!) fuer die aktuelle modelConfig <MetaDataItem> Eintraege gibt, dann wird unten rechts ein "Details:OZW" Link generiert, und beim Click der gesammelte Text eingeblendet, siehe Anhang.