+ Antworten
Seite 2 von 14 ErsteErste 1 2 3 4 12 ... LetzteLetzte
Ergebnis 11 bis 20 von 136
  1. #11
    Registriert seit
    Jun 2012
    Ort
    House of Dragons @ Lübeck
    Beiträge
    9,325

    Wirklich sinnvoll für User ist es doch nicht, wenn es nachher fünf verschiedene Implementierungen gibt.

    Man müsste jetzt das alte Modul und auch alle Instanzen löschen, womit alle Archiv-Daten verloren gehen, nur um zu wechseln

    Es ist bestimmt auch möglich mit mehreren Personen an einem Modul zu arbeiten oder einen eigenen Fork davon zu entwickeln.
    Dann wären die Instanzen mit GUIDs kompatible und ein Wechsel wäre für den User einfacher.
    Den Autor vom ursprünglichen Modul mal angeschrieben? Vielleicht hat er einfach keine Zeit und hätte sich auch über eine Weiterentwicklung gefreut.

    So der so, folgendes solltest du nie in Modulen machen:
    - Namen ändern ! (Der User hat bei der Namensgebung die Allmacht)
    - Daten in IPS-Variablen puffern (->GetIDForIdent('Data'))
    - Ein IPS_Applychanges auf sich selbst aufrufen.
    - HTML-Tabellen sind schön, aber wenn weder abschalten oder das Style anpassen kann; verärgert es nur User wo das Design nicht passt oder welche mit Variablen sparen müssen.

    Man merkt dem Code an, es war mal ein Script. Ein Modul ist es eher nicht.
    Dafür ist es nicht modular genug.

    Betatest mit anderen versierten IPS-Usern durchgeführt ?
    Dann wären einige Punkte davon schon im Vorfeld aufgefallen.

    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

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

    Zitat Zitat von Fonzo Beitrag anzeigen
    Ich würde vorschlagen:

    • falls die Geräte grundsätzlich unterschiedlich kommunizieren bei unterschiedlichen Geräten dann auch eine eigene Instanz pro Gerätetyp zur Verfügung zu stellen, also mit eigener GUID
    • Wenn die Geräte sehr ähnlich sind und sich z.B. in den Variablen unterschieden, dann macht es Sinn eine Auswahl des Gerätetyps durch den Nutzer vornehmen zu lassen mit einem dynamischen Konfiguationsformular und GetConfigurationForm, dadurch besteht dann die Möglichkeit pro Gerät eine Instanz anzulegen und bei der Instanz dann aber auch nur die Variablen und Variablenprofile anlegen zu lassen die von dem Nutzer für den Gerätetyp verwendet werden.
    • so was wie Modulbezogende Zusatzdaten würde ich dann auch nur zur Auswahl stellen wenn der passende Gerätetyp gewählt worden ist
    Braucht man alles nicht und macht es nur komplizierter. Zumal ich mit 'Modulbezogende Zusatzdaten' nichts anfangen kann.
    Eine Adresse ? Ein GeräteTyp ? So etwas kann man als Info mit SetSummary in der Console darstellen. Brauchen als Nutzwert für eine IPS-Variable ? Eher nicht.

    Die Dinger heißen Module weil man etwas modular aufbaut.
    Also ein Modul für die Sensoren.
    Wenn dann somit ein Sensor eine Instanz ist, was ich jetzt mal voraussetze; so ist der Typ des Gerätes / Sensors doch egal.
    Die Daten welche man vom Dienst erhält geben doch Aufschluss ob es sich z.B. um Temperatur, Luftdruck, Wingeschwindigkeit usw. handelt.
    Warum sollte ich das Konfigurieren wollen als User ?!

    Statusvariablen einfach dynamisch anlegen sobald es dieses Datenfeld gibt, und mit festen eindeutigen Ident wie z.B. 'Temperatur', 'Humidity', 'WindSpeed' usw. anlegen. Der Name entspricht in der Regel dem Ident, bzw wird noch mit Translate übersetzt.

    Beispiel wie so etwas funktioniert ist z.B.
    Xiaomi-Smart-Home/module.php at eed2e800eb0258b119877d8264b23aa42ef1d1ff · MiniBlister/Xiaomi-Smart-Home · GitHub
    Dort werden die Statusvariablen mit SetValue erstmalig erzeugt.

    Um die API zu schonen und nicht die Zugangsdaten zig mal einzugeben, macht es dann Sinn einen eigenen IO zu bauen.
    Dieser holt die Daten im definierten Intervall ab und verteilt die an die Geräte-Instanzen.

    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. #13
    Registriert seit
    Oct 2011
    Ort
    Hattersheim (Hessen)
    Beiträge
    6,591

    Zitat Zitat von Nall-chan Beitrag anzeigen
    - HTML-Tabellen sind schön, aber wenn weder abschalten oder das Style anpassen kann; verärgert es nur User wo das Design nicht passt oder welche mit Variablen sparen müssen.
    Hier wäre es schön z.B. erstens eine Option im Form anzubieten ob man das braucht oder nicht, desweiteren wäre es gut man hat bestimmte Einstellungsmöglichkeiten im Konfigurationsform um so z.B. als Nutzer Schriftfarbe, Schriftgröße, Hintergrund farbe und ähliches anpassen zu können. Der CSS wird also über das Form vom Nutzer definiert.

    Zitat Zitat von Nall-chan Beitrag anzeigen
    Man merkt dem Code an, es war mal ein Script. Ein Modul ist es eher nicht.
    Dafür ist es nicht modular genug.
    Vieles wird von oben nach unten abgearbeitet, das ist aber zunächst völlig normal, so ging mir das auch, weil man zunächst ein Skript einfach überträgt bevor man sich an Methoden gewöhnt hat. Es ist auf den ersten Blick gewöhnungsbedürftig modular und objektorientiert in PHP zu arbeiten. Das macht den Code aber später schlanker und auch besser pflegbar. Zum Beispiel rufst Du mehrmals hintereinander Curl auf. Hier würde es reichen den Curl Aufruf dann in eine Methode zu stecken. Dann musst Du an den passenden Stellen nur noch die Methode aufrufen, dadurch müssen Änderungen dann auch nur noch an einer Stelle vorgenommen werden und der Code wird insgesamt kürzer und wenn man das dann gewohnt ist auch übersichtlicher.

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

    Zitat Zitat von Fonzo Beitrag anzeigen
    Zum Beispiel rufst Du mehrmals hintereinander Curl auf.
    Nein, er ruft ihn einmal auf wenn der Token bekannt ist und Wunderground-Upload deaktiv ist.
    Aber ja, es gibt ihn mehrmals im Code.
    Zitat Zitat von Fonzo Beitrag anzeigen
    Hier würde es reichen den Curl Aufruf dann in eine Methode zu stecken. Dann musst Du an den passenden Stellen nur noch die Methode aufrufen, dadurch müssen Änderungen dann auch nur noch an einer Stelle vorgenommen werden und der Code wird insgesamt kürzer und wenn man das dann gewohnt ist auch übersichtlicher.
    Das stimmt allerdings.

    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. #15
    Registriert seit
    Jan 2008
    Beiträge
    195

    Hallo demel,

    lieben Dank für das Modul. Funktioniert alles ohne Probleme. Einen Wunsch hätte ich noch. Kannst Du die maximale Windgeschwindigkeit / Tag noch ausgeben? Diese gibt es in der in der App, fehlt aber noch in IPS. Eventuell gleich mit der Uhrzeit. Wenn möglich eventuell auch gleich die max. Windböen pro Tag.

    LG Tom

  6. #16
    Registriert seit
    Feb 2018
    Ort
    Bochum
    Beiträge
    689

    Zitat Zitat von timloe Beitrag anzeigen
    lieben Dank für das Modul. Funktioniert alles ohne Probleme.
    freut mich zu hören

    Zitat Zitat von timloe Beitrag anzeigen
    Kannst Du die maximale Windgeschwindigkeit / Tag noch ausgeben?
    Ich habe mal auf die scbhelle in den Datensatz geschaut. Ich habe max. Windgeschwindigkeit und -richtung sowie den Zeitpunkt gefunden.
    Baue ich in den nächsten Tagen ein.

    Zitat Zitat von timloe Beitrag anzeigen
    Wenn möglich eventuell auch gleich die max. Windböen pro Tag.
    Das habe ich in den Daten nicht gefunden. Finde ich allerdings auch in der App (iPhone und iPad) nicht.

  7. #17
    Registriert seit
    Jan 2008
    Beiträge
    195

    Zitat Zitat von demel42 Beitrag anzeigen
    Baue ich in den nächsten Tagen ein.
    Danke!

    Zitat Zitat von demel42 Beitrag anzeigen
    Das habe ich in den Daten nicht gefunden. Finde ich allerdings auch in der App (iPhone und iPad) nicht.
    War nur eine Idee. An die Daten komme ich auch per Logging der Variable ran, also kein Problem.

    LG Tom

  8. #18
    Registriert seit
    Feb 2018
    Ort
    Bochum
    Beiträge
    689

    Zitat Zitat von timloe Beitrag anzeigen
    War nur eine Idee. An die Daten komme ich auch per Logging der Variable ran, also kein Problem.
    so, habe ich eingebaut.

    Es gibt in den betroffenen Instanzen neue Schalter
    'with_trend': Trend von Luftdruck und Temperatur
    'with_minmax': Min/Max von Temperatur und Max von Wind.
    die entsprechenden Variablen werden entsprechender der Schalter erzeugt (-> siehe README.md)

    Ob "WindMaxSpeed" sich auf die Windgeschwindigkeit oder doch auf die Geschwindigkeit der Böen bezieht, ist etwas unklar. In der API-Doku steht nichts, in der Anwender-Doku der App steht, das es sich auf Böen bezieht aber die Variable deuten auf den Wind hin.
    Ich bin kein meteorologischer Fachmann, von daher ... habe ich es einfach "Wind" genannt.
    Die Werte beziehen sich immer auf "heute", also am Mitternacht.

    In diesem Zusammenhang habe ich die Benennung der Variable "Rain_24" von "Regen 24h" auf "Regen heute" - das ist eindeutiger und lt. Netatmo-Anwender-Doku auch richtig.
    Ist nur ein Hinweis, die Bezeichnung wird natürlich bei angelegten Variablen vom Modul nicht mehr geändert.

    Die Benennung der Variablen ist bei Netatmo nicht wirklich konsistent und die API-Doku diesbezüglich auch nicht auf aktuellem Stand.

    Aber egal, bei mir funktionieren die Änderungen soweit.
    Geändert von demel42 (05.05.18 um 09:02 Uhr)

  9. #19
    Registriert seit
    Jan 2008
    Beiträge
    195

    Zitat Zitat von demel42 Beitrag anzeigen
    so, habe ich eingebaut.
    Danke. Update ging ohne Problem und die Variablen sind da.

    Zitat Zitat von demel42 Beitrag anzeigen
    Ob "WindMaxSpeed" sich auf die Windgeschwindigkeit oder doch auf die Geschwindigkeit der Böen bezieht, ist etwas unklar.
    Ich habe die Werte der letzten Tage mal verglichen, es handelt sich beim Max-Wert um die Böen.

    LG Tom

  10. #20
    Registriert seit
    Feb 2018
    Ort
    Bochum
    Beiträge
    689

    Zitat Zitat von timloe Beitrag anzeigen
    Ich habe die Werte der letzten Tage mal verglichen, es handelt sich beim Max-Wert um die Böen.
    Hmm, dann wäre es ja konsequent, die Variablen entsprechend umzubenennen, also Variablen-ID statt "WindMax*" in ""GustMax*" und die Bezeichnung analog.
    Dann müsstest Du nur die zwei/drei Variablen nach meiner Änderung (geht natürlich ziemlich fix) vor dem Update einmal löschen.

    Wäre das ok für Dich?

    Gruß
    Christian