Ankündigung

Einklappen
Keine Ankündigung bisher.

Neues Database Plugin

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

  • lexxmm
    antwortet
    Hallo

    habe auch ein kleines Problem. Ich möchte die 1W Werte auch in der Datenbank, wenn es keine Änderung gibt. Dafür habe ich enforce_update = yes gesetzt. Blöderweise gibt es dann immer einen 0 Eintrag in der Datenbank. Auch cycle = 60 funktioniert aber gibt immer mal eine 0 in der Datenbank

    Warum ist das so ?

    Gruss, Micha

    Einen Kommentar schreiben:


  • Onkelandy
    antwortet
    Ohaaaa... ich werd mal die smai Variante probieren.. der Fehler kam auch nur 1 Mal bisher. Gerade beim Monatswechsel...

    Einen Kommentar schreiben:


  • smai
    antwortet
    Ich verstehe ebenfalls nicht, weshalb dein eval nicht funktioniert. Aber die doppelte DB-Abfrage ist eh etwas unglücklich, versuch doch folgendes:
    Code:
    eval: (sh.garten.ventile.ventil_2.SA.db('on', '1w') or 0) * 10080

    Einen Kommentar schreiben:


  • Onkelandy
    antwortet
    sh.garten.ventile.ventil_2.SA.db('on', '1w') ist ziemlich sicher None, ja. Aber im eval steht ja, dass das Item 0 sein soll, falls db Abfrage None ist. Ein int würde imho das gleiche Problem bringen. Cant convert NoneType to int oder so?

    Einen Kommentar schreiben:


  • Tom Bombadil
    antwortet
    Stimmt, Martin hat natürlich recht, hab den ´*´ in der Fehlermeldung überlesen (war noch vor dem ersten Kaffee). Evtl explizit nach int() konvertieren?
    /tom

    Einen Kommentar schreiben:


  • Msinn
    antwortet
    Ich würde aus der Meldung schließen, dass für '*' (also Multiplikartion) ein Operand vom Type NoneType und ein Operand vom Type int angegeben wurden. Und nun weiss Python nicht, wie man die beiden Typen miteinander multipliziren soll.

    Einen Kommentar schreiben:


  • Tom Bombadil
    antwortet
    Ich nehme an, ´is 0´ statt ´is None´ hast Du schon probiert?
    /tom

    Einen Kommentar schreiben:


  • Onkelandy
    antwortet
    Hätt jemand eine Erklärung, warum ich diesen eval Fehler bekomme?
    WARNING lib.item Item garten.ventile.ventil_2.laufzeit_1w: problem evaluating 0 if sh.garten.ventile.ventil_2.SA.db('on', '1w') is None else sh.garten.ventile.ventil_2.SA.db('on', '1w')*10080: unsupported operand type(s) for *: 'NoneType' and 'int'

    Einen Kommentar schreiben:


  • smai
    antwortet
    Könnte es sein, dass in deinem Original die Einrückung nicht stimmt und das Database-Attribut damit zum oberen Item gerutscht ist (z.B. könnte eines der Leerzeichen ein Non-Breaking Space anstelle eines normalen Leerschlags sein, den du irgendwo mitkopiert hast).

    Einen Kommentar schreiben:


  • psilo
    antwortet
    Ist das Database-Attribut nach Itemdetails im Backend Plugin auch nur bei Temperatur gesetzt? Die Tiefe hat keinen Einfluss, da alle Items durchgegangen werden. Ich vermute ich hätte das gleiche Problem, wenn es wirklich ein Bug im Plugin wäre.. Ich habe Items auf 5ter Ebene wie knx.gf.office.temperature.plan, etc. Check das bitte im Backend.

    Und: Welche Versionen + welcher DB Treiber?
    Zuletzt geändert von psilo; 19.04.2018, 12:27.

    Einen Kommentar schreiben:


  • fanta2k
    antwortet
    ich glaube ich hab noch einen kleinen bug gefunden

    in meiner config hatte ich

    Code:
    Allgemein:
     Wetterstation:
      Temperatur:
        Norden:
         type: num
         knx_dpt: 9
         eval: "round(value,2)"
         knx_init: 6/1/19
         knx_cache: 6/1/19
         database@mysqldb: init
        Sueden:
         type: num
         knx_dpt: 9
         eval: "round(value,2)"
         knx_init: 6/1/4
         knx_cache: 6/1/4
         database@mysqldb: init
    In der db wurde dann aber unter items nur ein value von Allgemein.Wetterstation.Temperatur gespeichert (das norden viel weg).

    gibt es hier noch eine begrenzung bzgl tiefe ? da ich in dem fall mehrere sensoren habe (Norden / Sueden)

    Einen Kommentar schreiben:


  • psilo
    antwortet
    stoeren wirst du in der hinsicht objektiv gesagt technisch immer, weil du mehr last erzeugst. auf entsprechend schnellen maschinen sollte das aber nicht ins gewicht fallen und komplett unproblematisch sein.

    sonst sehe ich das wie smai . ich gehe ja mit phpmyadmin auch parallel drauf.

    antworten wird dir keiner koennen da es noch keiner probiert hat. probiers doch einfach selber und teile die erfahrungen hier. ist das nicht der sinn von open source?
    Zuletzt geändert von psilo; 13.03.2018, 06:22.

    Einen Kommentar schreiben:


  • smai
    antwortet
    Zu 1) kann ich zwar nichts direkt zu SHNG sagen, aber grundsätzlich ist MariaDB ein RDBMS und regelt damit parallele Zugriffe über Transactions.

    Einen Kommentar schreiben:


  • Sisamiwe
    antwortet
    Ich antworte mir mal (zumindest teilweise selbst).

    2) heute errechne ich ab, indem ich vom letzten Wert in der DB den Wert von den aktuellen Minuten seit Mitternacht abziehe

    3) Es wird immer die Zeit vom Abfragezeitpunkt aus verwendet, d.h. 1d bedeutet 1 Tag vom Abfragezeitpunkt zurück.

    Was noch offen ist, war meine Frage 1:
    1) Zugriff auf DB von einer zweiten shNG Instanz
    Ich habe eine MariaDB meinen produktiven shNG RPi3 laufen. Darin werden die entsprechenden Events mitgelogged.
    Kann man auch von einer zweiten shNG Instanz (Testumgebung) auf diese DB lesend zugreifen, ohne die erste Instanz zu stören?

    Kann dazu jemand was sagen?

    Einen Kommentar schreiben:


  • Sisamiwe
    antwortet
    Hallo,
    ich habe noch 3 Fragen zur Nutzung des DB-Plugins:

    1) Zugriff auf DB von einer zweiten shNG Instanz
    Ich habe eine MariaDB meinen produktiven shNG RPi3 laufen. Darin werden die entsprechenden Events mitgelogged.
    Kann man auch von einer zweiten shNG Instanz (Testumgebung) auf diese DB lesend zugreifen, ohne die erste Instanz zu stören?

    2) Abfrage von heute, gestern bspw bei Betriebsstunden
    Wie habt ihr die Abfragen von heute, gestern etc bspw. für Betriebsstunden gelöst? Es wurde ja das diff:max implementiert. Wie nutzt ihr das?

    3) Bedeutung von i, h, d, w
    In der Doku zum Plugin steht.
    Code:
    sh.outside.temperature.db('min', '1d') # returns the minimum temperature within the last day
    Bedeudet 1d, dass die min Temp von gestern also zwischen 0 und 24 Uhr ausgegeben wird oder im Zeitraum von 24h vom Abfragezeitpunkt rückwärts gerechnet?

    Danke für die Rückmeldungen.

    Michael
    Zuletzt geändert von Sisamiwe; 02.03.2018, 20:17.

    Einen Kommentar schreiben:

Lädt...
X