Ankündigung

Einklappen
Keine Ankündigung bisher.

Diskussionsthread EDOMI-Releases/Updates

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • gaert
    antwortet
    Das Problem scheint seitens MDT eingegrenzt zu sein und ist auf meine Liste gewandert - mehr ist noch nicht geschehen, kommt Zeit kommt Rat

    Einen Kommentar schreiben:


  • crewo
    antwortet
    gaert magst du was weitergeben zum Stand MDT-Router? Wirst du da was aus den Hinweisen machen?

    Einen Kommentar schreiben:


  • fisch3009
    antwortet
    Featurewunsch:
    Beim Visu- und Logikeditor ist es aktuell so, wenn man mit Shift+Klick ein Objekt markiert hat und danach ohne gedrückte Shift Taste ein anderes Objekt anklickt und z.B. verschiebt ist das 1. Objekt immer noch mit markiert.
    In fast aller Software die ich kenne, führt ein Klick ohne Shift Taste, wenn vorher etwas markiert war dazu, dass nur noch das neu angeklickte markiert.
    Das fände ich wesentlich besser, da konsistenter zu anderer Software.

    Einen Kommentar schreiben:


  • Bernator
    antwortet
    Hier formlos Punkte die mir aufgefallen sind:

    - Datenarchiv von einem beliebigen KO automatisch erstellen (rechtsklick auf KO -> Datenarchiv erstellen oder sowas)
    - im Logikeditor Ein/Ausgänge von Logikbausteinen ein/ausblendbar, würd manches übersichtlicher machen

    Edit (ergänzt):
    - im Logikeditor statt Anzeige der GA bzw. iKO ID an den Eingängen die Bezeichnung und als Tooltip die ID (also genau umgekehrt wie es derzeit ist)
    - Möglichkeit an den Ausgängen direkt GA/iKOs anzugeben, ohne Umweg über Ausgangsbox, analog zu den direkten Eingängen
    - Möglichkeit die Verbindungslinien als "Fahne/Referenz" darstellen
    Zuletzt geändert von Bernator; 12.06.2018, 19:42.

    Einen Kommentar schreiben:


  • Brick
    antwortet
    Kann ich damit dann auch bald mein TV-Programm aufnehmen ?
    (da bräucht ich dann aber schon so 24 FPS)

    Gruß Martin

    Einen Kommentar schreiben:


  • gaert
    antwortet
    Bald gibt's mal wieder etwas Neues - eine abgespeckte DVR-Funktion (Digitaler Videorekorder):

    EDOMI nimmt dann auf Wunsch kontinuierlich (und ggf. KO-gesteuert) Kamerabilder auf, z.B. jede Sekunde. Allerdings nur Einzelbilder (max. 1 Frame/s), also keine richtigen Videos.

    Dafür wird dies aber schnell und robust (ohne Datenbank, etc.) über das Dateisystem erledigt, gespeichert werden die Bilder in speziellen Dateien als JPG-Rohdaten. Über einen "Viewer" (den ich noch bauen muss) kann man dann fix durch die Einzelbilder browsen - es sollte sich in Etwa anfühlen wie ein Zeitraffer-Video.

    Gespeichert werden die Bilder unter einem frei wählbaren Pfad - ich nutze hierfür eine externe USB-Platte in meiner Test-VM. Die Dateien werden stundenweise verwaltet und werden nach einer frei definierbaren Zeit gelöscht, so dass man z.B. stets die letzten 24h vorhalten kann.

    Auf der Statusseite sieht's dann in Etwa so aus - mehr gibt es noch nicht zu sehen

    Bildschirmfoto 2018-06-08 um 21.40.24.png

    Das Ganze läuft schon sehr geschmeidig, auch mit 5 Kameras sind kaum CPU-Einbußen feststellbar (ca. 3..4% bei 1 Frame/s in meiner lahmen VM).

    Der Viewer wird auch das Fisheye-Dewarping erlauben - ich arbeite noch daran, den Kram in EDOMI einzubauen. Isoliert funktioniert das Dewarping schon wunderbar, nur die Unterbringung in die GUI/Visu/etc. ist noch nicht ansatzweise erledigt (kompliziert, das).

    Das Dewarping erfordert eine relativ komplexe Mathematik - Pixel für Pixel. Dies wäre natürlich zu langsam, insbesondere für Tablets (Visu). Daher verfolge ich eine andere Strategie: In der GUI stellt man seine "virtuelle Kamera" entsprechend ein und erhält quasi nur eine grobe Vorschau (je nach Leistung des PCs). Dann wird quasi eine Vorberechnung ausgeführt und das Ergebnis in einer Datei gespeichert. In der Visu/etc. wird dann nur noch diese "Matrix" angewendet, was mit ein paar Tricks sehr schnell funktioniert: Ein FullHD-Bild braucht satte 0,5 Millisekunden(!) auf meinem iMac 2007... Allerdings braucht Safari deutlich länger zur Skalierung im Canvas - warum auch immer.

    Ich vermute mal, dass das onboard-dewarping bei einigen Kameras ähnlich funktioniert, denn für komplexe Berechnungen dürften die CPUs wohl zu lahm sein.

    Ihr merkt's also vermutlich schon: Dauert noch ein wenig. Aber dafür erhält man ein relativ brauchbares "VMS" (oder eher Einzelbild-Managment-System) innerhalb von EDOMI

    Von Video-Aufzeichnungen halte ich übrigens nicht sooo viel. Abgesehen von der Komplexität (PHP!) bringt's m.E. wenig Vorteile gegenüber Einzelbildern im 1..5 Sekundentakt. Zwar ist der Wow-Effekt bei Videos größer, aber der Nutzen (im EFH) nicht unbedingt. Wenn doch nur mal jemand einbrechen würde... verdammt...
    Zuletzt geändert von gaert; 08.06.2018, 22:01.

    Einen Kommentar schreiben:


  • hx5
    antwortet
    Zitat von gaert Beitrag anzeigen
    Ich habe die Split-Funktion entsprechend abgewandelt - es wird nun "" anstelle von NULL zurückgegeben.
    Vielen dank gaert!

    Einen Kommentar schreiben:


  • gaert
    antwortet
    Sorry - habe gerade viel zu tun (in der echten Welt)

    Ich habe die Split-Funktion entsprechend abgewandelt - es wird nun "" anstelle von NULL zurückgegeben.

    Du kannst das auch jetzt schon testen - in der Datei www/shared/js/main.js ca. in Zeile 240:

    Code:
        function str_split(x,pos,sep) {                                                        //Splittet den String x mittels sep (optional) und liefert den Wert mit dem Array-Index pos zurück
            if (!sep) {sep="|";}
            var n=x.split(sep);
            if (pos<n.length) {
                return n[pos];
            } else {
                return null;
            }
        }
    
    abändern in
    
        function str_split(x,pos,sep) {                                                        //Splittet den String x mittels sep (optional) und liefert den Wert mit dem Array-Index pos zurück
            if (!sep) {sep="|";}
            var n=x.split(sep);
            if (pos<n.length) {
                return n[pos];
            } else {
                return "";
            }
        }

    Einen Kommentar schreiben:


  • hx5
    antwortet
    Hallo gaert,

    um meine Frage mal zu konkretisieren:
    • ist es möglich das im Beispiel
      Code:
      {str_replace(split(0)+split(1)+split(2)+split(3)+split(4),"null","")}
      in manchen Fällen das str_replace() vor dem split() ausgewertet wird?
    • Wenn ja, kann ich das beeinflussen?
    • Könnte die split()-Funktion nicht einfach "" anstatt "null" ausgeben wenn kein Inhalt da ist?


    Gruß Michael

    Einen Kommentar schreiben:


  • hx5
    antwortet
    Ich habe in letzter Zeit diverse Tests mit der Funktion str_replace in Kombination mit der Splitfunktion im Visueditor gemacht. Konkret habe ich da z.B.
    Code:
    {str_replace(split(0)+split(1)+split(2)+split(3)+split(4),"null","")}
    .
    Wenn der String nun leer ist oder nicht genug Elemente enthält soll die von der Splitfunktion zurückgegebene "null" gelöscht werden.

    In einer Edomi-Instanz funktioniert das zuverlässig in einer zweite aber gar nicht.

    Kann es sein das die Funktionen nicht immer zuverlässig von rechts nach links abgearbeitet werden?

    Und könnte die Splitfunktion nicht einfach nichts zurückgeben wenn nichts vorhanden ist (anstatt "null")?

    Gruß Michael

    Einen Kommentar schreiben:


  • gaert
    antwortet
    Beide Varianten hätten vermutlich Vor- und Nachteile. Ich fand meine Lösung aber irgendwie logischer im Gesamtkontext (Verhalten anderer LBS, etc.). Das Kleingedruckte ist Bestandteil der EDOMI-Lizenz - da kann ich nix machen

    Einen Kommentar schreiben:


  • Bernator
    antwortet
    Danke hab ich dann auch gelesen und mir was eigenes gebastelt.... immer dieses kleingedruckte

    Einen Kommentar schreiben:


  • gaert
    antwortet
    Die Hilfe zu diesem LBS sagt:
    ...
    Es werden stets nur die erforderlichen Ausgänge gesetzt (z.B. A1..A3, wenn E1="a;b;c") - alle anderen Ausgänge bleiben unverändert.
    ...

    Einen Kommentar schreiben:


  • Bernator
    antwortet
    Ist es eigentlich gewollt das beim LBS: String zerteilen 10-fach 1die "leeren" Ausgänge nicht aktualisiert werden?

    Bsp.:
    E1=Str1;Str2;Str3 --> A1=Str1 A2=Str2 A3=Str3
    danach
    E1=Str1Neu;Str2Neu --> A1=Str1Neu A2=Str2Neu A3=Str3

    Einen Kommentar schreiben:


  • crewo
    antwortet
    Sonnengruesser ja, gebe dir recht, aber leider hat man nicht immer eine fixe Skalierung

    Einen Kommentar schreiben:

Lädt...
X