Ankündigung

Einklappen
Keine Ankündigung bisher.

Logik soll item aktualisieren

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

  • pbaumann
    antwortet
    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!

    Einen Kommentar schreiben:


  • Msinn
    antwortet
    Nachtrag: name ist ein ungültiger Item name.

    Das wird als Attribut name des Items ED interpretiert.

    Einen Kommentar schreiben:


  • Msinn
    antwortet
    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']

    Einen Kommentar schreiben:


  • pbaumann
    hat ein Thema erstellt Logik soll item aktualisieren.

    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
Lädt...
X