Ankündigung

Einklappen
Keine Ankündigung bisher.

zwei bzw 3 Addieren

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

    zwei bzw 3 Addieren

    Hallo zusammen
    eigentlich hört es sich einfach an aber irgendwie klappt es nicht!
    Ich würde gerne zwei number Items Addieren und ,in einem 3 wieder ausgeben

    Das auszugeben Item sieht so aus


    Number WB_Gesamtleistung "Gesamtleistung Wallbox" ( Goe_Wallbox )

    Number:Power GoEChargerPowerL1 "Power l1" ( Goe_Wallbox , gchart ) {channel="goecharger:goe:garageowerL1"}
    Number:Power GoEChargerPowerL2 "Power l2" ( Goe_Wallbox ) {channel="goecharger:goe:garageowerL2"}

    keine ahnung warum hier die lustigen mächen kommen soll Powerl1 heissen


    Die rule sieht so aus

    Code:
    rule "Gesamtleistung"
    when
        Item GoEChargerPowerL1 changed
    then
     if ( GoEChargerPowerL1.state as DecimalType &&  GoEChargerPowerL2.state as DecimalType) {
        WB_Gesamtleistung.postUpdate (( GoEChargerPowerL1.state as DecimalType) + ( GoEChargerPowerL2.state as DecimalType))
      }
    end
    vielleicht kann mir ja jemand auf die sprünge helfen

    im log kommt
    Code:
    2021-05-14 20:57:05.197 [ERROR] [ntime.internal.engine.RuleEngineImpl] - Rule 'Gesamtleistung': Could not cast 700 W to org.eclipse.smarthome.core.library.types.DecimalType; line 141, column 7, length 38
    Zuletzt geändert von Gerhard75; 14.05.2021, 20:07.

    #2
    geht vielleicht 'as Number' anstelle von 'DecimalType'? (siehe auch https://community.openhab.org/t/as-n...imaltype/22209)

    Kommentar


      #3
      Hey habs getestet


      leider auch nix --meine rule

      rule "Gesamtleistung"
      when
      Item GoEChargerPowerL1 changed
      then
      if ( GoEChargerPowerL1.state as Number && GoEChargerPowerL2.state as Number) {
      WB_Gesamtleistung.postUpdate (( GoEChargerPowerL1.state as Number) + ( GoEChargerPowerL2.state as Number))
      }
      end
      die fehlermeldung



      Rule 'Gesamtleistung': Unknown variable or command '&&'; line 141, column 7, length 71
      muss ich vielleicht erst 2 variablen draus machen um zu rechnen?
      Zuletzt geändert von Gerhard75; 14.05.2021, 22:18.

      Kommentar


        #4
        Hey so ich habe es gelöstrule "Gesamtleistung"


        Items

        Code:
        Number:Energy              WB_Gesamtleistung                     "Gesamtleistung Wallbox [%.0f Watt]"                      ( Goe_Wallbox )
        DIe Rule

        Code:
        rule "Gesamtleistung"
        when
            Item GoEChargerPowerL1 changed or
            Item GoEChargerPowerL2 changed or
            Item GoEChargerAllowCharging changed    
        then 
        
        Thread::sleep(2000)
        WB_Gesamtleistung.postUpdate(( GoEChargerPowerL1.state as Number) + ( GoEChargerPowerL2.state as Number))
        
        end

        Kommentar


          #5
          Nur so als Ergänzung... Du hast den Code nicht als Code markiert, sondern als Zitat. Die Forensoftware nimmt automatische Änderungen am Text vor, um eben z.B. den Doppelpunkt mit nachfolgendem p durch ein zungestreckendes Smilie zu ersetzen.
          Code:
          :p
          Merke: Alles, was irgendwo in openHAB als Text verwendet wird, sollte als Code gekennzeichnet werden, wenn es im Forum gepostet wird (ob nun Konfig-Dateien, Rules, oder auch Logs, alles viel besser lesbar, wenn als Code eingefügt).

          Das konkrete Problem hast Du ja bereits selbst gelöst, hier kommt zum Tragen, dass der Operator as gegenüber dem Oprator + nachrangig ist (obwohl das vollkommener Quatsch ist...) Entsprechend muss das Casting in Klammern gesetzt werden, schon funktioniert's.

          Wozu soll das Thread::sleep(2000) gut sein?

          Kommentar


            #6
            Das Thread::sleep(2000 ) habe ich eingefügt weil er sonst machmal nur die Leistung von einer Phase angezeigt hat irgend was ging da wohl zu schnell..

            Kommentar

            Lädt...
            X