Ankündigung

Einklappen
Keine Ankündigung bisher.

Eintrag im Log

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

    Eintrag im Log

    Hallo zusammen,

    ich weiß mal wieder nicht, was mir dieser Log-Eintrag sagen will, der wird seit 2 Tagen bei jedem Aufruf der Regel gemeldet:

    Code:
    2013-01-31 19:51:20.690 WARN  o.o.c.i.e.EventPublisherImpl[:100]- given new state is NULL, couldn't post update for 'Feuchte_Rel_Keller_HV_Scaled'
    Er tritt bei folgender Zeile in einer Regel auf:

    Code:
    if(Feuchte_Rel_Keller_HV.state     instanceof DecimalType) { postUpdate(Feuchte_Rel_Keller_HV_Scaled, 		(Feuchte_Rel_Keller_HV.state     as DecimalType) * 25) }
    In der Art skaliere ich hier mehrere Werte, nur bei diesem kommt es zum Fehler. Beide Items existieren natürlich (hat auch mal funktioniert) und Feuchte_Rel_Keller_HV liegt laut Visu aktuell bei 49%...

    Wenn ich im Quellcode schaue, dann wird die Meldung ausgelöst wenn newState == 0, aber warum ist er das denn?

    Danke schon mal für die Hilfe!

    Viele Grüße,
    Jockel

    #2
    Ich kann noch ergänzen, dass die Meldung seit einem Neustart von openHAB heute morgen nicht mehr aufgetreten ist.

    Kommentar


      #3
      die Meldung bedeutet, dass der zweite Parameter der Methode "postUpdate" NULL (im Unterschied zu "0") ist, also keine Instanz vorliegt. In Deinem Fall wäre das der State des Items "Feuchte_Rel_Keller_HV".

      Um herauszufinden, ob das wirklich stimmt, kannst Du in der osgi-console (das Ding auf der Kommandzeile, wo dann "osgi>" am Anfang der Zeile erscheint) einfach mal eintippen:

      Code:
      openhab status Feuchte_Rel_Keller_HV
      Was kommt da raus?

      Gruß,

      Thomas E.-E.
      Visualisierung, Rule/Logic-Engine, Integrationsplattform mit openhab (Supportforum)

      Kommentar


        #4
        Mit dem Test muss ich warten bis der Fehler wieder auftritt, nach dem Neustart ist im Moment alles OK.

        Allerdings habe ich, als der Fehler aufgetreten ist, auf der Visu geschaut und dort wurde für diese Feuchtigkeit ein aktueller Wert angezeigt. Dann konnte er ja eigentlich nicht NULL sein...

        Kommentar


          #5
          Zitat von Jockel Beitrag anzeigen
          Allerdings habe ich, als der Fehler aufgetreten ist, auf der Visu geschaut und dort wurde für diese Feuchtigkeit ein aktueller Wert angezeigt. Dann konnte er ja eigentlich nicht NULL sein...
          nein, eigentlich nicht ... EIGENTLICH :-)

          Warten wir das Auftreten ab und sehen dann weiter.

          Gruß,

          Thomas E.-E.
          Visualisierung, Rule/Logic-Engine, Integrationsplattform mit openhab (Supportforum)

          Kommentar


            #6
            Um herauszufinden, ob das wirklich stimmt, kannst Du in der osgi-console (das Ding auf der Kommandzeile, wo dann "osgi>" am Anfang der Zeile erscheint) einfach mal eintippen:
            Dazu noch eine Frage, damit ich beim nächsten Auftreten gewappnet bin. Ich starte openHAB ja als über den Lauch Daemon im Hintergrund, so dass ich die Kommandozeile nicht zu sehen bekomme. Komme ich da auch per Telnet o.ä. dran? Sonst muss ich den Start zum Debuggen noch mal ändern.

            Kommentar


              #7
              In der gleichen Regel hab ich jetzt noch eine andere Merkwürdigkeit:

              Code:
               ERROR o.o.c.s.ScriptExecutionThread[:70]- Error during the execution of rule 'Notify when humidity is to low': Could not invoke method: org.eclipse.xtext.xbase.lib.BooleanExtensions.operator_not(boolean) on instance: null
              Wird regelmäßig gemeldet.

              Hier der Code dazu:

              Code:
              import org.openhab.core.library.types.*
              
              var Boolean SendToday=false
              
              rule "Notify when humidity is to low"
              when
              	Item Feuchte_Rel_Arbeiten_EG received update or
              	Item Feuchte_Rel_Technikraum received update
              		
              then
              	var Number Feuchte_Technik  = 0
              	var Number Feuchte_Arbeiten = 0
              	
              	if(Feuchte_Rel_Technikraum.state instanceof DecimalType) Feuchte_Technik  = Feuchte_Rel_Technikraum.state as DecimalType
              	if(Feuchte_Rel_Arbeiten_EG.state instanceof DecimalType) Feuchte_Arbeiten = Feuchte_Rel_Arbeiten_EG.state as DecimalType 
              	
              	Could not invoke method: org.eclipse.xtext.xbase.lib.BooleanExtensions.operator_not(boolean) on instance:
              	if (!SendToday)
              	{
              		if( (Feuchte_Arbeiten >0) && (Feuchte_Technik > 0) && ((Feuchte_Arbeiten <50) ||  (Feuchte_Technik < 50)) )
              		{
              			logWarn("Notify.rules", "Feuchte zu niedrig. ArbeitenEG: " + Feuchte_Arbeiten +" Technik: " + Feuchte_Technik)
              			sendMail("abc@def.de",   "Feuchte zu niedrig", "Gemessene Feuchte zu niedrig\nArbeitenEG: "+Feuchte_Arbeiten + "\nTechnikraum: " + Feuchte_Technik)
              			sendMail("ghi@jkl.de",   "Feuchte zu niedrig", "Gemessene Feuchte zu niedrig\nArbeitenEG: "+Feuchte_Arbeiten + "\nTechnikraum: " + Feuchte_Technik)
              			
              			SendToday=true					
              		}	
              	}
              
              end
              
              
              rule "Reset send mail flag"
              when
              	Time is midnight
              then
              	logInfo("Notify.rules", "Reset send mail flag")
              	SendToday=false
              end
              Offensichtlich muss sich der Fehler ja auf "if (!SendToday)" beziehen, an anderer Stelle wird die Methode ja nicht aufgerufen. Aber was bitte störet daran, die Variable ist ja im Kopf der Regel definiert.

              Vielleicht auch ein Bug im XBase?

              Kommentar


                #8
                Hier hat jemand eine ähnliche Fehlermeldung und eine Lösung dazu, ich kann aber nicht sagen, ob es etwas mit dem von mir beobachteten Problem zu tun hat: Klick

                Kommentar


                  #9
                  Code:
                  	Could not invoke method: org.eclipse.xtext.xbase.lib.BooleanExtensions.operator_not(boolean) on instance:
                  	if (!SendToday)
                  Das steht da aber hoffentlich nicht so in Deiner Regel drin...?

                  Habe leider auch keine gute Idee, warum das bei der Ausführung null wird. Müsste man mal ganz tief mit den Debugger rein

                  Grüße,
                  Kai

                  Kommentar


                    #10
                    Sorry, nein, das ist beim Posten hineingerutscht, steht so natürlich nicht in der Regel, die übrigens auch tut was sie soll...

                    Kommentar

                    Lädt...
                    X