Ankündigung

Einklappen
Keine Ankündigung bisher.

formatting undefined value - Weather Binding 1.14.0

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

    formatting undefined value - Weather Binding 1.14.0

    Hallo

    Ich bin gerade dabei mich mit OpenHAB 2.5 auseinanderzusetzen und arbeite mich darum sukzzesive durch Marianne Spillers Buch "Smart Home mit openHAB 2". Der Grund warum ich mich an eben diesem oH1 Binding aufhalte ist weil es genutzt wird um die ganzen Funktionsweisen von OH1er Bindings und allem was dazu gehört zu erklären.

    Aktuell läuft bei mir openHABian v2.5 auf einem Pi 4 4GB.

    Leider sind einige Vorlagen aus dem aktuellsten Buch schon jetzt veraltet und nicht mehr 1:1 umsetzbar, bisher konnte ich jedoch alles mit ein bisschen Googeln lösen.

    Mein Problem liegt beim Weather Binding 1.14.0.
    In Ihrem Buch richtet sie dies mit Yahoo ein, das habe ich auch versucht aber der Dienst wurde, so wie ich das verstanden habe, eingestellt.
    Darum habe ich es mal mit OpenWeatherMap versucht.

    Eingerichtet ist soweit alles und der apikey ist längst aktiviert.
    Da auch hier wieder Teilschritte veraltet waren habe ich mir die Seite des Devs angesehen und versucht mein Problem mit ihrer Hilfe zu lösen.

    Leider bekomme ich in meiner Sitemap keinen Wert angezeigt und einen Fehler bezüglich des Datenformats:

    Code:
    2020-01-13 06:30:16.343 [DEBUG] [basic.internal.servlet.WebAppServlet] - Servlet request received!
    
    2020-01-13 06:30:16.345 [DEBUG] [basic.internal.servlet.WebAppServlet] - reading sitemap demohaus_administrativ
    
    2020-01-13 06:30:19.275 [DEBUG] [basic.internal.servlet.WebAppServlet] - Servlet request received!
    
    2020-01-13 06:30:19.278 [DEBUG] [basic.internal.servlet.WebAppServlet] - reading sitemap demohaus_administrativ
    
    2020-01-13 06:30:19.292 [WARN ] [ui.internal.items.ItemUIRegistryImpl] - Exception while formatting undefined value [sourcePattern=d%, targetPattern=d%, exceptionMessage=Conversion = '%']
    
    2020-01-13 06:30:19.295 [WARN ] [ui.internal.items.ItemUIRegistryImpl] - Exception while formatting undefined value [sourcePattern=d%, targetPattern=d%, exceptionMessage=Conversion = '%']
    
    2020-01-13 06:30:23.716 [DEBUG] [basic.internal.servlet.WebAppServlet] - Servlet request received!
    
    2020-01-13 06:30:23.718 [DEBUG] [basic.internal.servlet.WebAppServlet] - reading sitemap demohaus_administrativ

    Hier die Einträge in meiner service-

    Code:
    Group gWetter "Wetterbericht" <sun_clouds> (Home, GF_Balcony)
    
    Number Aussentemperatur "Außentemperatur [%.2f °C]" <temperature> (gWetter)
    
    {weather="locationId=Haus_7, type=temperature, property=current"}
    und itemsdatei:

    Code:
    # Note: Hamweather requires two apikeys: client_id=apikey, client_secret=apikey2
    #apikey.ForecastIo=
    apikey.OpenWeatherMap=Hier-könnte-Ihre-Werbung-stehen-;)
    #apikey.WorldWeatherOnline=
    #apikey.Wunderground=
    #apikey.Hamweather=
    #apikey2.Hamweather=
    #apikey.Meteoblue=
    
    # location configuration, you can specify multiple locations
    location.<Haus_7>.name=Haus_Nr.7
    location.<Haus_7>.latitude=6.XXXXXX
    location.<Haus_7>.longitude=49.XXXXXX
    Habe es außerdem mal im Browser getestet aber dort bekomme ich das korrekte JSON angezeigt…


    Gerade eben hab ich alles noch mal mit ForecastIo getestet, selber Fehler, hab aber diesmal etwas mehr debug log angehangen:

    Code:
    apikey.ForecastIo=XXX
    #apikey.OpenWeatherMap=XXX
    #apikey.WorldWeatherOnline=
    #apikey.Wunderground=
    #apikey.Hamweather=
    #apikey2.Hamweather=
    #apikey.Meteoblue=
    
    # location configuration, you can specify multiple locations
    location.<Haus_7>.name=Haus_Nr.7
    location.<Haus_7>.latitude=6.X
    location.<Haus_7>.longitude=49.X
    location.<Haus_7>.provider=ForecastIo
    location.<Haus_7>.language=de
    location.<Haus_7>.updateInterval=15
    location.<Haus_7>.units=si
    Code:
    Group gWetter "Wetterbericht" <sun_clouds> (Home, GF_Balcony)
    
    Number Aussentemperatur "Außentemperatur [%.2f °C]" <temperature> (gWetter)
    
    {weather="locationId=Haus_7, type=temperature, property=current"}
    Code:
    ==> /var/log/openhab2/openhab.log <==
    
    2020-01-13 16:01:58.014 [DEBUG] [core.karaf.internal.FeatureInstaller] - Running scheduled sync job
    
    2020-01-13 16:01:58.045 [DEBUG] [core.karaf.internal.FeatureInstaller] - Failed uninstalling 'openhab-ui-dashboard': Feature named 'openhab-ui-dashboard/0' is not installed
    
    2020-01-13 16:02:19.704 [DEBUG] [basic.internal.servlet.WebAppServlet] - Servlet request received!
    
    2020-01-13 16:02:20.542 [DEBUG] [basic.internal.servlet.WebAppServlet] - Servlet request received!
    
    2020-01-13 16:02:20.544 [DEBUG] [basic.internal.servlet.WebAppServlet] - reading sitemap demohaus_administrativ
    
    2020-01-13 16:02:20.558 [WARN ] [ui.internal.items.ItemUIRegistryImpl] - Exception while formatting undefined value [sourcePattern=d%, targetPattern=d%, exceptionMessage=Conversion = '%']
    
    2020-01-13 16:02:20.562 [WARN ] [ui.internal.items.ItemUIRegistryImpl] - Exception while formatting undefined value [sourcePattern=d%, targetPattern=d%, exceptionMessage=Conversion = '%']
    
    ==> /var/log/openhab2/events.log <==
    
    2020-01-13 16:02:20.262 [vent.ItemStateChangedEvent] - systeminfo_computer_6137ec71_sensors_cpuTemp changed from 32.6 to 33.1
    
    ==> /var/log/openhab2/openhab.log <==
    
    2020-01-13 16:02:21.780 [DEBUG] [basic.internal.servlet.WebAppServlet] - Servlet request received!
    
    2020-01-13 16:02:21.783 [DEBUG] [basic.internal.servlet.WebAppServlet] - reading sitemap demohaus_administrativ
    
    2020-01-13 16:02:23.073 [DEBUG] [basic.internal.servlet.WebAppServlet] - Servlet request received!
    
    2020-01-13 16:02:23.076 [DEBUG] [basic.internal.servlet.WebAppServlet] - reading sitemap demohaus_administrativ
    
    2020-01-13 16:02:23.102 [WARN ] [ui.internal.items.ItemUIRegistryImpl] - Exception while formatting undefined value [sourcePattern=d%, targetPattern=d%, exceptionMessage=Conversion = '%']
    
    2020-01-13 16:02:23.106 [WARN ] [ui.internal.items.ItemUIRegistryImpl] - Exception while formatting undefined value [sourcePattern=d%, targetPattern=d%, exceptionMessage=Conversion = '%']
    
    2020-01-13 16:02:24.167 [DEBUG] [basic.internal.servlet.WebAppServlet] - Servlet request received!
    
    2020-01-13 16:02:24.169 [DEBUG] [basic.internal.servlet.WebAppServlet] - reading sitemap demohaus_administrativ

    OffTopic:
    Gibts andere kostenlose Dienste die ggf besser geeignet sind? Hab mal die aus dem Buch verglichen und diesen fand ich am umfangreichsten bzw er bot die meisten Abfragen pro Tag... Später wenn mal alles fertig ist hab ich eine Wetterstation :mrgreen:

    #2
    [klugscheiß] openHABian ist aktuell Version 1.5. damit kannst Du dann ein openHAB 2.5 installieren [/klugscheiß]

    Wie Du schon richtig erkannt hast, hat YahooWeather seinen Dienst eingestellt. Allgemein ist das Weather Binding nicht so gut geeignet, sich mit den Unterschieden zwischen V1 und V2 vertraut zu machen. Dein Problem ist aber sicher, dass Du spitze Klammern in der weather.cfg verwendest. Lösche bitte jeweils die <> um den Begriff Haus_7, für ForecastIO sollte es also so aussehen:
    Code:
    apikey.ForecastIo=XXX
    
    # location configuration, you can specify multiple locations
    location.Haus_7.name=Haus_Nr.7
    location.Haus_7.latitude=6.X
    location.Haus_7.longitude=49.X
    location.Haus_7.provider=ForecastIo
    location.Haus_7.language=de
    location.Haus_7.updateInterval=15
    location.Haus_7.units=si
    Ich bin mir allerdings nicht sicher, ob openHAB den Unterstrich in der ID mag, also vielleicht lieber Haus7 oder noch besser haus7 schreiben. Funktioniert ForecastIO überhaupt noch?

    Kommentar


      #3
      Vielen dank dir erstmal für die ganzen Tipps!

      Habe es zwischenzeitlich schon runter geschmissen.
      Installiere es nachher noch mal und werde die Formatierung bzw Namensgebung anpassen wie du es vorgeschlagen hast.

      Gibts irgendwo eine Liste mit do/donts was die namensgebung angeht?
      Bei den Spitzenklammern erschließt sich mir das noch aber ich wusste nicht das der unterstrich/großbuchstabe problematisch ist.
      Hatte schon ein mal Probleme mit einem Dateinamen, dies aber nur durch Zufall raus gefudnen als ich die Datei umbenannt habe und es auf einmal alles ging

      Habe es damals auch mit OpenWeatherMap getetstet (mit dem selben Ergebnis aber auch den von dir genannten Fehlern)

      Zitat von udo1toni Beitrag anzeigen
      Allgemein ist das Weather Binding nicht so gut geeignet, sich mit den Unterschieden zwischen V1 und V2 vertraut zu machen.
      Immer her mit der Alternative !
      vorallem ein UMFANGREICHES Tutorial wie bei Frau Spillers Buch dazu wäre klasse

      Kommentar


        #4
        Was die Namensgebung betrifft, so ist das nur eine Vermutung.
        Es gibt eine Regel für Items, Itemnamen müssen mit einem Buchstaben beginnen und dürfen nur A-Z,a-z,0-9 und _ enthalten (kein minus!) Große und kleine Buchstaben zählen als unterschiedliche Zeichen.
        Mindestens diese Regeln sollten allgemein für alle Namen gelten.
        Weiterhin sollte selbstverständlich sein, dass Schlüsselworte nicht verwendet werden dürfen (natürlich sind diese als Teilstring erlaubt).

        Jedes V1 Binding ist je nach dahinterliegender Technologie unterschiedlich zu konfigurieren. Es ist meiner Meinung nicht sinnvoll, zu Studienzwecken die Unterschiede zwischen ienem V1 und einem V2 Binding anzuschauen, man hat schlicht nichts davon. Es ist auch nicht sinnvoll, V1 Bindings einzusetzen, wwenn es ein V2 Binding gibt. Ausnahme: das V1 Binding wurde schon immer benutzt, das V2 Binding ist neu und man will nach dem Upgrade schnell wieder mit der alten Konfiguration weiterarbeiten. Man sollte sich dann aber intensiv mit dem V2 Binding auseinandersetzen und nach Möglichkeit auf das neue Binding umstellen. Einer der Gründe ist natürlich, dass die modernere Version gewöhnlich mehr Möglichkeiten bietet, aber es gibt einen noch wichtigeren Grund: In der nächsten Hauptversion (openHAB3) werden OH1 Bindings nicht mehr nativ laufen. Da sich bisher niemand gefunden hat, der bereit wäre, eine entsprechende Zwischenschicht zu programmieren (wie schon für openHAB2 notwendig... wird aber unter openHAB3 komplett geändert werden müssen), wird die einzige Möglichkeit dann sein, eine OH2 (oder OH1) Version parallel zur neuen Version laufen zu lassen. Beide Installationen werden dann z.B. mit MQTT gekoppelt. Das sollte aber nur als Notlösung gesehen werden, denn der Verwaltungsaufwand steigt dadurch enorm.

        Kommentar


          #5
          Hallo zusammen,

          ich kann als Alternative das OWM (OpenWeatherMap Binding) empfehlen. Läuft bei mir ohne Probleme.

          Wie man das ganze dann sehr schön im HABPanel darstellen kann ist hier erklärt https://community.openhab.org/t/open...habpanel/65027

          VG
          Frank

          Kommentar

          Lädt...
          X