Ankündigung

Einklappen
Keine Ankündigung bisher.

python-Probleme bei Plugin. Logic und Items

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

    python-Probleme bei Plugin. Logic und Items

    Scheib ein Plugin in fünf Minuten..

    Ich habe es gewagt eine MariaDB-SQL-Anwendung in ein Plugin einzubinden.
    Nach vielen 5 Minuten läuft jetzt das Plugin problemlos.
    Es wird eine Datenbank eingerichtet, die Rechte vergeben, eine Tabelle angelegt und mit Daten aus einer Datei gefüllt. Über einen cicle
    hole ich mir aus den Netz Werte für eine permanente Aktualisierung. Läuft seit 14 Tagen stabil.

    Jetzt will ich die aktuellen Daten noch in ein ITEM überfühten und scheitere mit meinen python Kenntnissen. Per Logik rufe ich einen Datensatz in dem Plugin auf.
    Die Daten werden im Plugin bereits gelesen. Leider bringe ich diese aber nicht in die /ITEM/xx.conf.- Felder

    Hintergrund: Datenanpassungen, Änderungen usw.

    Es gibt eine Variable in smarthome mit dem ITEM-Pfad, finde diese aber nicht.

    Anbei ein Codeschnipsel zur Hilfe.

    Wer kann mir bitte den Weg aufzeichnen die Daten aus dem Plugin in das x.conf in ITEMS zu bringen. Evtl. ein Tipp auf eine Lösung in einem vorhandenem Modul !
    im PLUGIN
    def leserecord(self,par1,par2,par3):
    self.loggerInfo("leserecord erreicht")
    dbconn = self.connect_db()
    cursor = dbconn.cursor()
    cursor.execute("use `" + self._db + "`")
    strSQL = "select _index, _par1,....
    if self._tracetest>0:
    self.logger.info("Connected to mariadb: {0}".format(self._db))
    self.logger.info("Selecting tables in destination database: {0}".format(self._table))
    self.logger.info("zwPAR1 : {0}".format(par1))
    self.logger.info("zwPAR2 : {0}".format(par2))
    self.logger.info("zwPAR3 : {0}".format(par3))

    cursor.execute("select _index, _par1, _par2, _par3, .....

    for _index, _par1, _par2, _par3, ....in cursor:

    Alle Daten gelesen, getestet per logger!!

    Jetzt sollen die Daten in die Felder einer .conf übertagen werden. Leider bisher erfolglos:

    self._sh.+ "???" + pftest.index = _index
    self._sh.+ "??" + pftest.par1 = _par1
    self._sh.+ "??" + pftest.par2 = _par2
    self._sh.+ "??" + pftest.par3 = _par3
    [pftest]
    ..... [[index)) (ohne Punkte!)
    ..
    ...... [[par1]]
    ..
    .... [[par2]]
    ...
    [[par3]]

    Dank für jede Hilfestellung!

    LG
    Wolfgang

    #2
    In welche config? Willst du neue dateien erstellen oder vorhandenen items aus einer config werte zuweisen?
    items weisst man den wert mit itemname(wert) zu. besser wäre es den Code vom gesamten plugin mal zu veröffentlichen, das man auch den zusammenhang versteht.
    Zuletzt geändert von Bonze; 19.05.2017, 02:47.

    Kommentar


      #3
      Sowas hast Du schon probiert:
      Code:
      self._sh.pftest.index(_index)
      self._sh.pftest.par1(_par1)
      self._sh.pftest.par2(_par2)
      self._sh.pftest.par3(_par3)
      ?

      Kommentar


        #4
        also generell, musst du den itempfad in deinem array/dict mit speichern, z,.B. so
        items{[bla, sh.item.bla], [blub, sh.item.blub]}
        ..
        dann musst du dieses mit einer schleife durchgehen und mit sowas hier
        ...
        for item_array in items:
        itemsarray[1] = zugewiesener wert
        ....

        Kommentar


          #5
          bmx

          Hallo Bernd,

          danke für Deinen Tipp, genau das war es.
          self._sh. und der Wert in den Klammern brachte die Lösung!

          Dank auch an alle weiteren Helfer!

          Kommentar

          Lädt...
          X