erste beta - fronthem, smartVISU (closed, Bitte die Anschlussthreads benutzen)

Begonnen von herrmannj, 23 Dezember 2014, 22:36:44

Vorheriges Thema - Nächstes Thema

fhainz

Bei mir öffnet sich nicht mal das popup :D

Zitat von: HCS am 21 März 2015, 14:00:05
Ich veröffentliche meine aktuelle Version dieses Wochenende, versprochen  ;)
Sehr fein, danke! :)

HCS

Zitat von: fhainz am 21 März 2015, 14:10:53
Bei mir öffnet sich nicht mal das popup :D
Das könnte genau der bug sein, den ich gefunden habe.
Was sagte die Konsole vom Browers, nachdem Du die Uhr geklickt hast?

fhainz

Hmmm... Jetzt öffnet sich plötzlich das Popup, aber ohne Daten.

Vielleicht hängt das mit meinem heutigen UZSU Update auf v2.4 zusammen? Ich bin mir fast sicher das sich das Popup letztens nicht geöffnet hat. In der Konsole kommt keine Meldung.

HCS

Also, das Problem in der visu.js vom uzsu ist Folgendes:

// bei designType '0' und '2' wird rrule nach wochentagen
  // umgewandelt und ein festes format vogegegebn
  // hier sollte nichts versehentlich überschrieben werden
  if ((designType == '0') || (designType == '2')) {
    var numberOfEntries = response.list.length;
    for (var numberOfRow = 0; numberOfRow < numberOfEntries; numberOfRow++) {
      // test, ob die RRULE fehlerhaft ist
      if ((response.list[numberOfRow].rrule.indexOf('FREQ=WEEKLY;BYDAY=') !== 0) && (response.list[numberOfRow].rrule.length > 0)) {
        if (!Confirm('Fehler: Parameter designType ist "0", aber gespeicherte RRULE String in UZSU "' + response.list[numberOfRow].rrule + '" entspricht nicht default Format FREQ=WEEKLY;BYDAY=MO... bei Item ' + item + '. Soll dieser Eintrag überschrieben werden ?')) {
          // direkter abbruch bei der entscheidung !
          numberOfRow = numberOfEntries;
          popupOk = false;
        }
      }
    }
  }


Falls dieser Fall eintritt (was üblicherweise nicht passieren sollte), dann möchte das Widget eine Sicherheitsabfrage anzeigen.
Das Problem ist aber der Confirm, der müsste vorne ein kleines c haben. Es gibt Window.confirm(... aber halt mit kleinem c.
Das führt zum crash und es kommt kein Popup hoch.
Da habe ich auch 'ne Runde gegrübelt, warum schlicht nichts passiert, wenn ich auf die Uhr klicke.
Aber wie gesagt, das Problem hat nichts mit dem Problem zu tun, dass keine Listeneinträge kommen (mit der letzten Treiber Version).

fhainz

#1954
Hab gerade deinen Issuse Post in github gesehen und das versucht. Hilft bei mir leider nicht, das popup öffnet sich nicht nur ohne Daten. In der Konsole keine Meldungen.

HCS

#1955
Mit dem Domotiga auch nicht?

Nachtrag: mit dieser Definnition habe ich getestet:
{{ uzsu.uzsu_icon("uzsuTest", "uzsu_dummy", "Wann an und wan tan", "0") }}

Ich habe den Eindruck, dass das uzsu bei seltsamen Definitionen auch nicht so arg fehlertolerant ist.

fhainz

Blödsinn. Natürlich öffnet sich das Popup nur ohne Daten. Sry für die Verwirrung  ;D

Mit einem älteren FHEM Treiber (~14.02.15) und dem Domotiga funktionierts problemlos.

HCS

Zitat von: fhainz am 21 März 2015, 14:31:04
Blödsinn. Natürlich öffnet sich das Popup nur ohne Daten. Sry für die Verwirrung  ;D

Mit einem älteren FHEM Treiber (~14.02.15) und dem Domotiga funktionierts problemlos.
Na dann ist ja gut, oder zumindest fast gut  :)

HCS

Wem es wie mir keinen Spaß macht, die ganzen JS Schnipsel der Widegts in der visu.js zu verwalten sondern sie lieber als einzelne Files haben will, dass man ein Aktualisierung einfach drüber kopieren kann, für den hätte ich da was:

Die JSs der Widgets werden im Page-Verzeichnis unter den gleichen Namen wie die html abgelegt.
Beispiel: widget_uzsu.html und widget_uzsu.js, widget_chart.html und widget_chart.js

Und dann das hier (natürlich angepasst, welche widgets man hat) in die visu.js, und zwar ganz oben:

var scriptFolder = (function() {
  var result = document.currentScript.getAttribute("src", 2);
  return result.substring(0, result.lastIndexOf("/") +1);
}());

function include(script) {
  script = scriptFolder + script;
  $.ajax({
    url: script,
    dataType: "script",
    async: false,
    error: function () {
      alert("Could not load '" + script + "'");
    }
  });
}

// -----------------------------------------------------------------------------
// W I D G E T S
// -----------------------------------------------------------------------------
include("widget_chart.js");
include("widget_led.js");
include("widget_fhem.js");
include("widget_uzsu.js");


Und nun kann man geänderte widgets einfach drüberkopieren, ohne in der visu.js basteln zu müssen.

Paraktisch wäre, wenn die files im herrmannj/smartvisu-widgets repository so benannt würden, anstatt visu.js, dann müsste man sie nichtmal umbenennen, wenn man sie auf diese Weise einbindet.

fhainz

Danke! Sowas suche ich schon lange  ;D Funktioniert perfekt!

bgewehr

Zitat von: HCS am 21 März 2015, 17:26:15


var scriptFolder = (function() {
  var result = document.currentScript.getAttribute("src", 2);
  return "./widgets/"
//result.substring(0, result.lastIndexOf("/") +1);
}());


Paraktisch wäre, wenn die files im herrmannj/smartvisu-widgets repository so benannt würden, anstatt visu.js, dann müsste man sie nichtmal umbenennen, wenn man sie auf diese Weise einbindet.

Ich habe inzwischen von dem Ansatz von Jörg Gebrauch gemacht und nutze dieselben Widgets in mehreren Pages-Foldern mit unterschiedlichen Seiten. Daher habe ich mich entschieden, die Widgets und deren Scripte alle im widgets folder statt im pages folder abzulegen und nutze daher die grandiose Idee von HCS etwas anders (s. o.)

Wenn wir uns alle dazu entscheiden könnten, kann man sicher auch im GIT die Files nach diesem Schema umbenennen... Vielleicht sollten wir die visu.js im SV-cleaninstall so anpassen, dass sie das im Standard tut?

btw: Hat das nicht auch schon wieder performance Nachteile, wenn man scripted mehrere Files nachlädt?
FritzBox 7590, Synology DS216+II mit Docker
Docker: FHEM mit hmlan, Homebridge, node-red, mosquitto, ems-collector für Buderus EMS mit AVR Net-IO
Gartenwasser über MQTT auf R/Pi A+
Volkszaehler.org auf R/Pi 2B mit Pi_Erweiterung
Raspberrymatic auf R/Pi 4B mit RPI-RF-MOD u. CUL868

HCS

Zitat von: bgewehr am 21 März 2015, 18:37:34
Wenn wir uns alle dazu entscheiden könnten, kann man sicher auch im GIT die Files nach diesem Schema umbenennen
Ich glaube wie müssen uns gar nicht alle entscheiden. Ob man den Code aus einer visu.js oder einer widget_chart.js sich holt und in seine visu.js reinbastelt, macht ja keinen Unterschied, wenn man bei der alten Variante bleibt.
Für die Neue hat man umbenannt aber einen Vorteil.

Zitat von: bgewehr am 21 März 2015, 18:37:34
btw: Hat das nicht auch schon wieder performance Nachteile, wenn man scripted mehrere Files nachlädt?
Theoretisch ja, aber es passiert nur bei einem page reload und wenn man sich im Profiler mal anschaut, was da alles nachgeladen wird, kommt es auf die paar mini Files auch nicht an.
Pro eingebundenem widget sind das bei mir ca. 4ms

herrmannj

... die js bleiben ja auch im cache.

HCS


bgewehr

soll ich's im widget git ändern? Ich nehme dann auch den stabilen Stand der UZSU 2.0 mit auf...


Gesendet von meinem iPad mit Tapatalk
FritzBox 7590, Synology DS216+II mit Docker
Docker: FHEM mit hmlan, Homebridge, node-red, mosquitto, ems-collector für Buderus EMS mit AVR Net-IO
Gartenwasser über MQTT auf R/Pi A+
Volkszaehler.org auf R/Pi 2B mit Pi_Erweiterung
Raspberrymatic auf R/Pi 4B mit RPI-RF-MOD u. CUL868