[FTUI] Updates überschneiden sich

Begonnen von Loredo, 17 Januar 2016, 13:13:29

Vorheriges Thema - Nächstes Thema

Loredo

Hallo,


ich hatte verstanden, dass man die beiden Quellen additiv benutzen kann/soll:


https://raw.githubusercontent.com/knowthelist/fhem-tablet-ui/master/controls_fhemtabletui.txt
https://raw.githubusercontent.com/nesges/Widgets-for-fhem-tablet-ui/master/controls_widgets-for-fhem-tablet-ui.txt


Nun scheinen aber beide Quellen gleichzeitig die selbe Datei zu liefern und deshalb taucht die gleiche Datei immer wieder erneut im Update auf:

Zitat
2016-01-17 13:08:52 Global global fhemtabletui
2016-01-17 13:08:52 Global global UPD www/tablet/js/widget_button.js
2016-01-17 13:08:52 Global global
2016-01-17 13:08:52 Global global New entries in the CHANGED file:
2016-01-17 13:08:52 Global global FHEM tablet UI last change:
2016-01-17 13:08:52 Global global 2016-01-16
2016-01-17 13:08:52 Global global  - Updated thermostat
2016-01-17 13:08:52 Global global
2016-01-17 13:08:52 Global global
2016-01-17 13:08:52 Global global widgets-for-fhem-tablet-ui
2016-01-17 13:08:53 Global global UPD www/tablet/js/widget_button.js


Hier streiten sich also zwei Quellen um die selbe Datei. Das sollte doch besser irgendwie aufgelöst werden, oder?
Hat meine Arbeit dir geholfen? ⟹ https://paypal.me/pools/c/8gDLrIWrG9

Maintainer:
FHEM-Docker Image, https://github.com/fhem, Astro(Co-Maintainer), ENIGMA2, GEOFANCY, GUEST, HP1000, Installer, LaMetric2, MSG, msgConfig, npmjs, PET, PHTV, Pushover, RESIDENTS, ROOMMATE, search, THINKINGCLEANER

Aladin222

Zitat von: nesges am 18 April 2015, 17:36:07
Gute Idee! Das control-File hat ja schon die benötigten Infos, das müsste man nur prüfen und mit den lokalen Files vergleichen. Kann man mit HTTPMOD machen, man braucht nur eine Prüffunktion, die man irgendwo in eine 99_myUtils.pm legt:

sub controlfile_updatecheck($) {
    use Date::Parse;
    my $raw = shift;

    my $response='';
    my @lines = split "\n", $raw;
    foreach my $line (@lines) {
        my @remote= split " ", $line;
        if(@remote>3 && $remote[0] eq "UPD") {
            Log 3, $line;
            $remote[1]=~s/_/ /;
           
            my @local = stat($remote[3]);
            if($local[7] != $remote[2] || $local[9] < str2time($remote[1])) {
                $response .= $remote[0]." ".$remote[3]."\n";
            }
        }
    }
    return $response;
}


Eine Funktion um das Update durchzuführen und die Readings zu aktualisieren:

sub controlfile_update($) {
    my $device = shift;
    my $url = InternalVal($device, 'url', '');
    my $def = InternalVal($device, 'DEF', '');
   
    fhem("setreading $device available updated");
    fhem("setreading $device files -");
    fhem("define at_recheck_$device at +00:05:00 modify $device $def");
    fhem("update all $url");
}


Und in die fhem.cfg kommen dann diese Definitionen:

define UPDATE_FTUI HTTPMOD https://raw.githubusercontent.com/knowthelist/fhem-tablet-ui/master/controls_fhemtabletui.txt 14400
attr UPDATE_FTUI alias Fhem Tablet UI
attr UPDATE_FTUI userattr timeout reading01Name reading01Regex reading02Name reading02Regex
attr UPDATE_FTUI event-on-change-reading available,files
attr UPDATE_FTUI reading01Name files
attr UPDATE_FTUI reading01Regex (?s)(UPD.*)
attr UPDATE_FTUI reading01Expr $val=controlfile_updatecheck($val);;$val
attr UPDATE_FTUI reading02Name available
attr UPDATE_FTUI reading02Regex (?s)(UPD.*)
attr UPDATE_FTUI reading02Expr $val=controlfile_updatecheck($val) ne ''?'yes':'no';;$val
attr UPDATE_FTUI room hidden

define UPDATE_WIDGETS HTTPMOD https://raw.githubusercontent.com/nesges/Widgets-for-fhem-tablet-ui/master/controls_widgets-for-fhem-tablet-ui.txt 14400
attr UPDATE_WIDGETS alias Widgets for Fhem Tablet UI
attr UPDATE_WIDGETS userattr timeout reading01Name reading01Regex reading02Name reading02Regex
attr UPDATE_WIDGETS event-on-change-reading available,files
attr UPDATE_WIDGETS reading01Name files
attr UPDATE_WIDGETS reading01Regex (?s)(UPD.*)
attr UPDATE_WIDGETS reading01Expr $val=controlfile_updatecheck($val);;$val
attr UPDATE_WIDGETS reading02Name available
attr UPDATE_WIDGETS reading02Regex (?s)(UPD.*)
attr UPDATE_WIDGETS reading02Expr $val=controlfile_updatecheck($val) ne ''?'yes':'no';;$val
attr UPDATE_WIDGETS room hidden

define UPDATES readingsGroup UPDATE_FTUI:available,files UPDATE_WIDGETS:available,files
attr UPDATES valueFormat { ($READING eq 'files' && $VALUE !~ /^-?$/)?'<a href="?cmd={controlfile_update(\'$DEVICE\')}">[Start Update]</a>':$VALUE }
attr UPDATES alias 3d Party Updates
attr UPDATES room System


In der readingsGroup wird ein Link mit dem Text "[Start Update]" angezeigt, sobald ein Update verfügbar ist. Die readingsGroup kann man sicher noch schöner machen, aber da kenn ich mich nicht aus und überlasse das euch :)

PS: Habe ein paar Stellen verändert, am besten komplett neu übernehmen.


Sorry ,entweder ich habe da was falsch verstanden , oder es hakt bei mir irgendwo :
- o.g. Erstellt einen Raum System, in dem eine Möglichkeit ist ,wenn ein Update vorhanden ist ,ein Update für das Tablet UI bzw die Widgets anzustoßen .
Soweit sieht das bei mir auch gut aus !
Es wird ein Update beides angezeigt !
Das erste Update lasse ich laufen ... Restart ... Nur noch Update für Widget da :-)
Lasse ich dieses Update laufen ... Restart .... Erscheint wieder ein Update für Tablet UI ...usw.
Da das ja eigentlich nicht sein kann , habe ich es mal händisch versucht und dachte ich bin nun UP to Date .
Hmmmm, mache ich den updatecheck , so wird mir aber immer noch das gleiche Update zu Verfügung gestellt ....grummel
Was mach ich denn da falsch ?

Loredo

Das korreliert leider damit, dass man jetzt gerne die von Rudi jüngst eingebauten neuen Funktionen in update nutzen möchte ("update add <URL>") und alle Updatequellen darüber zentral steuern und verwalten möchte ("update list" etc).


Davon einmal abgesehen gab es den Konflikt vorher auch schon.
Hat meine Arbeit dir geholfen? ⟹ https://paypal.me/pools/c/8gDLrIWrG9

Maintainer:
FHEM-Docker Image, https://github.com/fhem, Astro(Co-Maintainer), ENIGMA2, GEOFANCY, GUEST, HP1000, Installer, LaMetric2, MSG, msgConfig, npmjs, PET, PHTV, Pushover, RESIDENTS, ROOMMATE, search, THINKINGCLEANER

Aladin222

hmmmm, ja hat bei mir nie funktioniert bzw. zeigte nach einem Update vom Tablet UI direkt wieder verfügbare bei Widget´s an ...

Trotz allem stellt sich mir nun die Frage , wie mache ich ein Update für das Tablet UI und wie für die Widget´s ?
Denn auch wenn ich es von Hand mache ( lt Wiki ) - kommt niemals für beide das nothing to do ...

Loredo

Eben.


Weil die beiden Maintainer da Dateien doppelt in ihren Repositories anbieten und die dazu noch unterschiedlich sind.
Dies sollte aufgelöst werden, damit dieses Problem dann nicht mehr existiert.
Hat meine Arbeit dir geholfen? ⟹ https://paypal.me/pools/c/8gDLrIWrG9

Maintainer:
FHEM-Docker Image, https://github.com/fhem, Astro(Co-Maintainer), ENIGMA2, GEOFANCY, GUEST, HP1000, Installer, LaMetric2, MSG, msgConfig, npmjs, PET, PHTV, Pushover, RESIDENTS, ROOMMATE, search, THINKINGCLEANER

FHEm2005

Ich kann nicht anders, aber ich muss mich den beiden "Vorpostern" anschließen. Die Kraft, die zwei getrennt laufenden Entwicklungen kosten, sollte IMHO lieber auf die Aktualisierung der ersten Seite verwendet werden. So ist in beiden Teillisten das Widget "multistatebutton" nicht zu finden. 

Ich suche bei z.B einen Fehler im multistatebuton bei mir und frage mich ob ich etwas übersehen habe. Das verunsichert unnötig.
Meine Kritik berührt nicht die Tatsache, dass hier ein UI geschaffen wurde, das nicht umsonst sich dieser hohen Beliebtheit erfreut. Dafür meinen besonderen Dank.

Macht allen Nutzern die Freude und schließt euch zusammen mit einem einzigen Repository und einem Update.

Viele Grüße
Eberhard
Raspi3: FHEM, CULV3 (V1.61), EnOcean Pi 868, nanoCUL433, HUE-Bridge; Raspi4: Node-red, MQTT, Gaszähler auslesen mit ESP32-CAM, BSB-LAN

Loredo

Es können ja auch gerne mehrere Repos sein, aber die Dateien dürfen sich dabei dann nicht überschneiden.
Hat meine Arbeit dir geholfen? ⟹ https://paypal.me/pools/c/8gDLrIWrG9

Maintainer:
FHEM-Docker Image, https://github.com/fhem, Astro(Co-Maintainer), ENIGMA2, GEOFANCY, GUEST, HP1000, Installer, LaMetric2, MSG, msgConfig, npmjs, PET, PHTV, Pushover, RESIDENTS, ROOMMATE, search, THINKINGCLEANER

setstate

Zu dem unschönen Schritt musste ich gehen, weil es zu viele Fragen zum nicht funktionierenden Button-Widget gab. Die nesges Version passte einfach nicht mehr.

Das Update für Widgets-for-fhem-tablet-ui braucht ihr aber auch nicht mehr aufrufen, solange dort nix neues liegt. Die letzte Aktivität war vor 4 Monaten.

Loredo

Bezogen auf dieses eine Widget: Ok, liegen denn dafür zumindest alle notwendigen Daten im "offiziellen" Repo? Kann man nicht einfach alle Widgets von dort (und von sonst wo noch?) übernehmen? Normal ist es in Github ja nun wirklich kein Problem jedem Entwickler Zugriff aufs Repo zu geben oder eben mit Pull-Requests zu arbeiten (dafür lieben wir ja alle Github und ich trauere immer, dass wir das für FHEM nicht haben)... ansonsten kann man für die getrennte Pflege sicherlich auch eine Art "include" von anderen Repos bauen, so dass man als "User" nur ein einziges Repo in FHEM eintragen muss und die weiteren Repos zentral gepflegt werden können. Ich könnte mir vorstellen, dass Rudi da bei einem schlüssigen Konzept der letzte ist, der das nicht unterstützte (vermutlich würde ein direkter Patch noch mehr helfen ;-)).


Ich möchte eigentlich nicht bei einer Neuinstallation Dateien von zig Quellen ziehen, dann manuell gucken wer vereinzelt eine neuere Version hat, dann ggf. einige Quellen wieder entfernen und anschließend noch stetig manuell im Blick behalten wenn es weitere Änderungen gibt. Dafür ist eigentlich der zentrale Update Befehl da.
Hat meine Arbeit dir geholfen? ⟹ https://paypal.me/pools/c/8gDLrIWrG9

Maintainer:
FHEM-Docker Image, https://github.com/fhem, Astro(Co-Maintainer), ENIGMA2, GEOFANCY, GUEST, HP1000, Installer, LaMetric2, MSG, msgConfig, npmjs, PET, PHTV, Pushover, RESIDENTS, ROOMMATE, search, THINKINGCLEANER

gloob

Gibt es denn eine Möglichkeit das Update add wieder rückgängig zu machen?
Raspberry Pi 3 | miniCUL 433MHz | nanoCUL 868 MHz | nanoCUL 433 MHz | MySensors WLAN Gateway | LaCrosse WLAN Gateway | SignalESP 433 MHz | SignalESP 868 MHz | HM-MOD-UART WLAN Gateway | IR - 360 Grad WLAN Gateway

Thorsten Pferdekaemper

Zitat von: gloob am 09 Februar 2016, 10:52:43
Gibt es denn eine Möglichkeit das Update add wieder rückgängig zu machen?
Ja, "update delete".
Gruss,
   Thorsten
FUIP

gloob

Vielen Dank. Hätte natürlich auch in die CommandRef gucken können.
Raspberry Pi 3 | miniCUL 433MHz | nanoCUL 868 MHz | nanoCUL 433 MHz | MySensors WLAN Gateway | LaCrosse WLAN Gateway | SignalESP 433 MHz | SignalESP 868 MHz | HM-MOD-UART WLAN Gateway | IR - 360 Grad WLAN Gateway