Ankündigung

Einklappen
Keine Ankündigung bisher.

Logik soll item aktualisieren

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

    Logik soll item aktualisieren

    Hallo,

    ich stehe auf dem Schlauch und verstehe nicht warum eine ausgelöste Logik einen definierten Itemwert nicht aktualisieren kann.

    Die Logik

    Code:
    import csv
    _ids = ['e1a15081-24d2-9107-e040-0b0a3dfe563c','6eb4966d-d214-43d8-933f-50b58aed670d','b4906c15-a2cc-4ef4-a382-697587e6f215','5e76f40a-ee81-4037-b524-675828f916d0','bb41fabb-41aa-47b0-90a3-ec2064f76bb2','78de9a85-ad8a-4c42-bb7d-937468d878db','e996cf97-36be-43e8-8322-7f852b99e224','f68b6d37-ba7f-4565-bfe4-968893af61ba','851dc16c-3254-4398-9ced-a086404b89c2','851dc16c-3254-4398-9ced-a086404b89c2','54f3db7e-cef5-4a99-ad84-a897d207db85']
    
    with open('/var/www/smartVISU/temp/petrol_stations.csv', 'w') as csvfile:
      fieldnames = ['place', 'brand', 'houseNumber', 'street', 'id', 'lng', 'name', 'lat', 'price', 'dist', 'isOpen', 'postCode']
      writer = csv.DictWriter(csvfile, fieldnames=fieldnames)
      writer.writeheader()
      petrol_stations = sh.tankerkoenig.get_petrol_stations(sh._lat, sh._lon, 'diesel', 'price', rad='20')
      if not petrol_stations is None:
        for element in petrol_stations:
          if element['id'] in _ids:
            writer.writerow(element)
            #logger.warning("Name: %s \t Preis: %s"%(element['place'],element['price']))
            if element['id']=='e1a15081-24d2-9107-e040-0b0a3dfe563c':
              sh.tankstellen.HEM.diesel=element['price']
              sh.tankstellen.HEM.name=element['place']
            if element['id']=='6eb4966d-d214-43d8-933f-50b58aed670d':
              sh.tankstellen.ED.diesel=element['price']
              sh.tankstellen.ED.name=element['place']
    und die Itemkonfiguration:


    Code:
    %YAML 1.1
    ---
    
    tankstellen:
        HEM:
            tankerkoenig_id: e1a15081-24d2-9107-e040-0b0a3dfe563c
            diesel:
                type: num
                visu_acl: ro
                database: true
    
            name:
                type: str
                visu_acl: ro
        ED:
            tankerkoenig_id: 6eb4966d-d214-43d8-933f-50b58aed670d
            diesel:
                type: num
                visu_acl: ro
                database: true
            name:
              type: str
              visu_acl: ro
    Nach dem Lauf bleibt der Wert tankstellen.HEM.diesel leider bei 0

    Ich habe auch schon versucht den Wert element['price'] explizit als float zu konvertieren.

    Mach ich dies über das CLI plugin funktioniert dies:

    Code:
    CLI > up tankstellen.HEM.diesel = 1.299
    CLI > if tankstellen.HEM.diesel
    Items:
    ======
    tankstellen.HEM.diesel = 1.299
    LG

    #2
    Falscher Syntax:

    statt
    Code:
    sh.tankstellen.ED.name=element['place']
    Code:
    sh.tankstellen.ED.name(element['place'])
    Falls name ein Item Attribut ist:
    Code:
    sh.tankstellen.ED.property.name=element['place']
    Viele Grüße
    Martin

    There is no cloud. It's only someone else's computer.

    Kommentar


      #3
      Nachtrag: name ist ein ungültiger Item name.

      Das wird als Attribut name des Items ED interpretiert.
      Viele Grüße
      Martin

      There is no cloud. It's only someone else's computer.

      Kommentar


        #4
        Zitat von Msinn Beitrag anzeigen
        Nachtrag: name ist ein ungültiger Item name.

        Das wird als Attribut name des Items ED interpretiert.

        Danke!
        * Habe die Itemkonfiguration von name --> ort geändert
        * Habe die Logik angepasst das der Wert ein Übergabeparameter statt einer Zuweisung ist

        et voila, funktioniert wie erwartet:

        Vielen lieben Dank!

        Kommentar

        Lädt...
        X