+ Antworten
Seite 1 von 7 1 2 3 ... LetzteLetzte
Ergebnis 1 bis 10 von 64
  1. #1
    Registriert seit
    Apr 2007
    Ort
    Lüneburg
    Beiträge
    3,580

    Standard Neue Funktion: Module

    Hallo Paresy,

    die neue Funktion eigene Module zu erstellen ist ja - wenn ich es richtig verstanden habe - der Hammer!
    Deswegen dazu ein paar Fragen bzw. Gedanken:
    Bisher habe ich alle Zugangsdaten (z.B. IP, Port, Benutzernamen, Passwort usw.) in einem zentralen Skript mit dem Namen "Konstanten" gesichert, mit dem Hintergrund das eine Änderung nur an einem Ort durchgeführt werden muss. In jedem Skript das diese Daten benötigte wurde dieses dann per "Include" eingebunden. Zusätzlich habe ich mir angewöhnt, alles was sinnvoll erscheint in eigene Skripte als Funktionen zu hinterlegen, auch diese Funktionsblöcke (z.B. TV, Sat-Receiver, 1-Wire, IP-Cam, GPS usw.) konnte ich dann per "Include" dort einbinden wo es sinnvoll erschien, falls Änderungen erforderlich waren, musste auch hier nur an ener Stelle etwas korrigiert bzw. erweitert werden.

    Mit dieser neuen Möglichkeit, kann ich dieses wohl gerne aufgeben, die Struktur im IPS wird damit wieder ein Stück übersichtlicher und die Weitergabe sollte damit ja wieder ein ganzes Stück einfacher werden!

    - Welche Steuerelemente kann ich auf dem Formular nutzen?
    - Wie definiere ich die Instanz-ID?
    - Wie muss ich es anstellen, die drei erforderlichen Modul-Dateien (form.json, module.json, module.php) zu Testzwecken zu erstellen?

    Joachim
    IP-Symcon seit 12/2009, iPhoneApp seit 01/2011, IPSView seit 12/2014!
    3xSiemensLOGO0BA7+DM16, 1xInstar 3010PoE, 1xInstar 2905PoE, 1x1-WireHub mit DS2450 von Eservice-online, 15xDS1820, 1xDS2423, 1xDS2408

  2. #2
    Registriert seit
    Jun 2012
    Ort
    House of Dragons @ Lübeck
    Beiträge
    9,891

    Ich bin zwar nicht Paresy, klinke mich aber auch mal ein.
    Zitat Zitat von JPaeper Beitrag anzeigen
    Hallo Paresy,
    - Welche Steuerelemente kann ich auf dem Formular nutzen?
    Auf eine vollständige Doku / Auflistung würde ich mich auch freuen
    Ich könnte nur eine unvollständige Liste liefern von den Elementen welche ich schon verwendet (gefunden) habe.
    Hierzu auch einfach mal in den forms-Ordner schauen (/etc/symcon/forms).
    Zitat Zitat von JPaeper Beitrag anzeigen
    - Wie definiere ich die Instanz-ID?
    Die erzeugt IPS für dich, in den Modul kannst du mit $this->InstanceID darauf zugreifen.
    Zitat Zitat von JPaeper Beitrag anzeigen
    - Wie muss ich es anstellen, die drei erforderlichen Modul-Dateien (form.json, module.json, module.php) zu Testzwecken zu erstellen?
    Ich habe mir einfach eine Kopie von Paresys Modul gezogen in mein GIT geworfen (mit neuen GUIDs) und im Module Control eingetragen.
    Es sind aber 4 Dateien. Die library.json beschreibt das 'ganze' Modul (aka Library), die anderen drei Dateien in dem Unterordner beschreiben ein 'Gerät' innerhalb der Library.
    Sieht bei mir aktuell so aus:
    Name:  ModuleBaum.png
Hits: 2289
Größe:  9.6 KB
    Michael
    on Win7VM (ESXi): I5, 24GB RAM, HW-RAID5, 3xSat | HW: CCU + 123 Geräte (506ch), EM1000, CUL, 1Wire, XBee, ELRO 433MHz, FritzBox Cable, Android Phone + Tablet, Samsung C-Serie TV +SamyGo-Ext, Onkyo NR| SW: IPS, Apache2(mod_ssl/PHP), MySQL, hMailServer, PRTG, Rising AV, Piwik, RoundCube, Wordpress, WinLIRC, WHS2011, MediaPortal, XBMC

  3. #3
    Registriert seit
    Apr 2007
    Ort
    Lüneburg
    Beiträge
    3,580

    Hallo Michael,

    vielen Dank erst einmal für Deine Antwort!

    Eine neue tolle Möglichkeit die sich da bietet. Ich werde mich auf jeden Fall mal daran versuchen. Weitere Tipps und Tricks sollten aber hier gerne noch gepostet werden...

    Joachim
    IP-Symcon seit 12/2009, iPhoneApp seit 01/2011, IPSView seit 12/2014!
    3xSiemensLOGO0BA7+DM16, 1xInstar 3010PoE, 1xInstar 2905PoE, 1x1-WireHub mit DS2450 von Eservice-online, 15xDS1820, 1xDS2423, 1xDS2408

  4. #4
    Registriert seit
    Jun 2012
    Ort
    House of Dragons @ Lübeck
    Beiträge
    9,891

    Ist ja nicht 'neu'. Vorher war es das Delphi-SDK
    Leider fehlt aber noch einiges, aber das wird wohl schon noch kommen.
    Ich habe jetzt nur ein Problem mit einem alten Modul wo ich nicht möchte dass das Protokoll öffentlich wird. Vorher war es eine Windows-DLL nun ist es Klartext... mal schauen.
    Michael
    on Win7VM (ESXi): I5, 24GB RAM, HW-RAID5, 3xSat | HW: CCU + 123 Geräte (506ch), EM1000, CUL, 1Wire, XBee, ELRO 433MHz, FritzBox Cable, Android Phone + Tablet, Samsung C-Serie TV +SamyGo-Ext, Onkyo NR| SW: IPS, Apache2(mod_ssl/PHP), MySQL, hMailServer, PRTG, Rising AV, Piwik, RoundCube, Wordpress, WinLIRC, WHS2011, MediaPortal, XBMC

  5. #5
    Registriert seit
    Feb 2005
    Ort
    Lübeck
    Beiträge
    22,546

    Ich habe leider noch keine Doku für die ganzen Möglichkeiten. Und wie Michael schon sagte, funktionieren zur Zeit nur ein paar Basics.

    Ich bin diese Woche dabei die wichtigen fehlenden Funktionen zu erstellen z.B. PHP-Funktionen, Timer, DataFlow ... (Michael hat mir schon eine ganze Liste geschickt was noch fehlt )

    Und danach würde ich zumindest etwas grundsätzliche Doku erstellen mit den Do's and Don't und wie die einzelnen Dateien aufgebaut sind.

    Ein paar Basics:
    a) Du solltest dir mein Repo mal klonen, ggf umbennen und dann in dein IP-Symcon laden.
    b) Dann am besten die LibraryID und ModuleIDs entsprechend verändern, damit du eigene Module mit eigenen IDs hast
    c) GUIDs müssen Uppercase sein. https://www.guidgenerator.com/
    d) Für die module.json (das "Formfile") kannst du dir alle unter /etc/symcon/forms abgucken
    e) unter /etc/symcon/scripts/__ipsmodule.inc.php findest du die Basisklasse und deren Hilfsfunktionen
    f) Wenn du etwas an den json Dateien änderst, musst du IP-Symcon zur Zeit neu starten, damit die Änderungen sichtbar werden
    g) Wenn du etwas an den Properties in der module.php änderst, musst du IP-Symcon neu starten oder die Instanz neu erstellen, damit die Änderungen übernommen werden
    h) Anderer PHP Code wird direkt ausgeführt und kann während der Laufzeit verändert werden
    i) Code im Constructor wird bei jeder Ausführung ausgeführt. Man sollte also nur simple Initialisierung dort hinzufügen. Lieber alles in ApplyChanges hinzufügen oder z.B. Variablen erst wenn sie benötigt werden erstellen.

    Ich bin dabei auch jeweils Beispiele in mein Repo zu packen, sodass für viele Gegebenheit ein Beispiel da ist, dass ihr einfach anpassen könnt

    paresy

  6. #6
    Registriert seit
    Aug 2009
    Ort
    Lippe
    Beiträge
    2,278

    Danke paresy,

    mein erstes Modul ist erzeugt für die iPhone Geofancy App.
    lg Thomas
    IPS Raspberry Pi2(3) mit LCN, HM, Sonoff+Shelly per MQTT, SONOS und viel Eigenbau + Pi2(3) mit Heizungssteuerung über GPIO per IPS

  7. #7
    Registriert seit
    Apr 2007
    Ort
    Lüneburg
    Beiträge
    3,580

    Hallo Paresy,

    ich versuche mich dann nun mal Step-by-Step an die (für mich neue) Funktionalität "heranzutasten".
    Vielen Dank erst einmal für die ersten Tipps und Tricks!

    - Ich habe mir zunächst einmal ein bei Github einen Account eingerichtet...
    - Mein erstes Projekt soll die Anbindung des Enigma2-Image-Receivers abbilden
    - Ich habe die notwendigen Dateien bei Dir "entliehen" und soweit es derzeit meiner Kenntnis entspricht gekürzt bzw. angepasst
    - Im IPS habe ich den Link in "Modules" eingerichtet, er wird als solches akzeptiert, Änderungen werden erkannt
    - Noch steckt keine echte Funktionalität in dem Modul

    Leider erscheint das neue Modul nicht wie bei Deinem Beispiel bei den Instanzen...

    Joachim
    IP-Symcon seit 12/2009, iPhoneApp seit 01/2011, IPSView seit 12/2014!
    3xSiemensLOGO0BA7+DM16, 1xInstar 3010PoE, 1xInstar 2905PoE, 1x1-WireHub mit DS2450 von Eservice-online, 15xDS1820, 1xDS2423, 1xDS2408

  8. #8
    Registriert seit
    Feb 2011
    Beiträge
    26

    @JPaeper

    Es fehlt die "library.json" Datei und jedes Module muss in einen Unterordner sein.

  9. #9
    Registriert seit
    Apr 2007
    Ort
    Lüneburg
    Beiträge
    3,580

    Hallo Charykun,

    vielen Dank für die Antwort.

    Ich habe den GitHub-Account jetzt neu strukturiert und die Library.json angepasst. Werde damit mal weiter testen...

    Joachim
    IP-Symcon seit 12/2009, iPhoneApp seit 01/2011, IPSView seit 12/2014!
    3xSiemensLOGO0BA7+DM16, 1xInstar 3010PoE, 1xInstar 2905PoE, 1x1-WireHub mit DS2450 von Eservice-online, 15xDS1820, 1xDS2423, 1xDS2408

  10. #10
    Registriert seit
    Apr 2007
    Ort
    Lüneburg
    Beiträge
    3,580

    Hallo Leute,

    hier nun mein aktualisiertes GitHub.

    Mein Präfix lautet "AV", ich habe nun versucht mit
    PHP-Code:
    AV_RequestInfo(44601  /*[Enigma2]*/); 
    diese Funktion auszuführen:
    PHP-Code:
      public function RequestInfo()
        {
            
    $IP $this->ReadPropertyString("IP");
            
            
    SetValue($this->GetIDForIdent("Status"), ENIGMA2_PowerstateStatus($IP));
        } 
    bekomme aber die Fehlermeldung:
    Code:
    Fatal error: Call to undefined function AV_RequestInfo() in /usr/share/symcon/scripts/41577.ips.php on line 3
    Was habe ich übersehen?

    Joachim
    IP-Symcon seit 12/2009, iPhoneApp seit 01/2011, IPSView seit 12/2014!
    3xSiemensLOGO0BA7+DM16, 1xInstar 3010PoE, 1xInstar 2905PoE, 1x1-WireHub mit DS2450 von Eservice-online, 15xDS1820, 1xDS2423, 1xDS2408

Ähnliche Themen

  1. Neue Module?
    Von Ranise im Forum IPSLibrary
    Antworten: 1
    Letzter Beitrag: 14.11.12, 20:45
  2. Neue Module
    Von Hinti im Forum Allgemeine Diskussion
    Antworten: 3
    Letzter Beitrag: 10.11.07, 18:22