Ankündigung

Einklappen
Keine Ankündigung bisher.

Fragen zu picture()

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

    [EibStudio] Fragen zu picture()

    Derzeit stelle ich auf einer Webseite der Visu mit folgendem Code eine Grafik einer Wetteranzeige dar:

    [highlight=epc]
    [WebServer]
    picture(15)[DOUBLE,ZOOMGRAF]($Wetter$,$http://www.wetteronline.de/?pid=p_city_local&sid=Pictogram&diagram=true&fcdat str=20140127&daytime=day&iid=NRW$)
    [/highlight]

    Folgende Fragen hierzu:

    a) Wird diese Grafik nur dann angezeigt bzw. aktualisiert, wenn ich die Webseite der Visu aufrufe wo diese Grafik eingebunden ist oder bei jedem Durchlauf des Codes?

    b) Wenn ich das DOUBLE durch z.B. 10 ersetze (derzeit laut Handbuch nicht vorgesehen), bekomme ich keinerlei Fehlermeldung beim kompilieren. Die Grafik wird dann auch nicht angzeigt. Bug oder Feature?

    c) Ist geplant, die Höhe des picture() Elementes noch zu erweitern, z.B. auf TRIPLE o.ä. oder kann man die Grafik noch irgendwie manuell in der Größe anpassen?

    d) Da der o.g. Code ja fest ist (siehe 20140127), möchte ich diesen gerne variabel machen, d.h. die obige Zahl z.B. durch year()+month()+date() oder so ähnlich zu ersetzen. Leider fehlt mir da der richtige Ansatz die URL "korrekt" zu zerlegen und für den Aufruf mit picture() wieder lesbar zu machen. Wie gehe ich da am besten vor?
    Danke & Liebe Grüße

    #2
    Zitat von Hell Beitrag anzeigen
    d) Da der o.g. Code ja fest ist (siehe 20140127), möchte ich diesen gerne variabel machen, d.h. die obige Zahl z.B. durch year()+month()+date() oder so ähnlich zu ersetzen. Leider fehlt mir da der richtige Ansatz die URL "korrekt" zu zerlegen und für den Aufruf mit picture() wieder lesbar zu machen. Wie gehe ich da am besten vor?

    WetterDatum = Jahr + Monat + Tag

    WetterURL = $http://www.wetteronline.de/?pid=p_city_local&sid=Pictogram&diagram=true&fcdat str=$ + WetterDatum + $&daytime=day&iid=NRW$

    picture(15)[DOUBLE,ZOOMGRAF]($Wetter$, WetterURL)

    Jetzt mußt Du nur noch die Variablen Jahr, Monat und Tag automatisiert über setdate() mit Daten füllen.

    Kommentar


      #3
      Zitat von Hell Beitrag anzeigen
      a) Wird diese Grafik nur dann angezeigt bzw. aktualisiert, wenn ich die Webseite der Visu aufrufe wo diese Grafik eingebunden ist oder bei jedem Durchlauf des Codes?
      Nein, die Grafik wird im (im EibStudio) eingestellten Intervall "Webserverseitenrefreshzeit" vom entfernten Server zyklisch neu angefragt und bei Änderung aktualisiert.

      Zitat von Hell Beitrag anzeigen
      b) Wenn ich das DOUBLE durch z.B. 10 ersetze (derzeit laut Handbuch nicht vorgesehen), bekomme ich keinerlei Fehlermeldung beim kompilieren. Die Grafik wird dann auch nicht angzeigt. Bug oder Feature?
      Das soll eigentlich einen Compilerfehler schmeissen. Wird notiert.

      Zitat von Hell Beitrag anzeigen
      c) Ist geplant, die Höhe des picture() Elementes noch zu erweitern, z.B. auf TRIPLE o.ä. oder kann man die Grafik noch irgendwie manuell in der Größe anpassen?
      In der Richtung ist momentan noch nichts geplant.
      Firma: Enertex Bayern GmbH, Ebermannstädter Straße 8, 91301 Forchheim
      Amazon: KNXnet/IP Router
      , KNXnet/IP Interface

      Kommentar


        #4
        Zitat von Jambala Beitrag anzeigen
        WetterDatum = Jahr + Monat + Tag

        WetterURL = $http://www.wetteronline.de/?pid=p_city_local&sid=Pictogram&diagram=true&fcdat str=$ + WetterDatum + $&daytime=day&iid=NRW$

        picture(15)[DOUBLE,ZOOMGRAF]($Wetter$, WetterURL)

        Jetzt mußt Du nur noch die Variablen Jahr, Monat und Tag automatisiert über setdate() mit Daten füllen.
        Funktioniert leider nicht:

        [highlight=epc]
        [EibPC]
        WetterDatumheute=Jahr+Monat+Tag
        WetterheuteURL=$http://www.wetteronline.de/?pid=p_city_local&sid=Pictogram&diagram=true&fcdat str=$+WetterDatumheute+$&daytime=day&iid=NRW$
        Jahr=split(convert(setdate(),$$), 6u16, 10u16)
        Monat=split(convert(setdate(),$$), 3u16, 4u16)
        Tag=split(convert(setdate(),$$), 0u16, 1u16)
        [WebSever]
        picture(15)[DOUBLE,ZOOMGRAF]($Wetter$,WetterheuteURL)
        [/highlight]
        Dies liefert folgenden Kompilierungsfehler:

        Syntaxfehler [Webserver]
        >picture(15)[DOUBLE,ZOOMGRAF]($Wetter$,WetterheuteURL)
        Gültig bis Spaltenposition: {0} STOP--> picture(15)[DOUBLE,ZOOMGRAF]($Wetter$,WetterheuteURL)
        ID:4
        EibParser wurde mit Fehler beendet.

        Muss ich da noch irgendetwas umformatieren?

        Zitat von enermax
        Nein, die Grafik wird im (im EibStudio) eingestellten Intervall "Webserverseitenrefreshzeit" vom entfernten Server zyklisch neu angefragt und bei Änderung aktualisiert.
        Besteht irgendwie die Möglichkeit, dass nur dann das Bild (neu) geladen wird, wenn die Webseite, wo die Grafik eingebunden ist, aufgerufen wird (und natürlich auch dann, wenn sich die Grafik ändert)?
        Danke & Liebe Grüße

        Kommentar


          #5
          Hmm,

          ich tüftele hier jetzt schon seit fast vier Tagen dran und scheitere schon bei den offenbar einfachsten Dingen :-(

          Folgender Code funktioniert:

          [highlight=epc]
          [WebServer]
          picture(15)[DOUBLE,ZOOMGRAF]($Wetter$,$http://www.wetteronline.de/?pid=p_city_local&sid=Pictogram&diagram=true&fcdat str=20140201&daytime=day&iid=NRW$) none picture(16)[DOUBLE,ZOOMGRAF]($Niederschlagsprognose für die nächsten Stunden$,$http://www.wetteronline.de/?pid=p_radar_forecast&ireq=true&src=radar/vermarktung/p_radar_map_forecast/forecastLoop/NRW/latestForecastLoop.gif$) none
          line $Wettervorhersage für morgen$
          picture(17)[DOUBLE,ZOOMGRAF]($Wetter morgen$,$http://www.wetteronline.de/?pid=p_city_local&sid=Pictogram&diagram=true&fcdat str=20140202&daytime=day&iid=NRW$)
          [/highlight]


          Wenn ich jetzt folgenden Code (von Jambala) nehme (damit ich die beiden URLs vorher besser zerlegen kann (um die Daten automatisiert anpassen zu können), dann bekomme ich einen Kompilierungsfehler:


          [highlight=epc]
          [EibPC]
          URLWetterheute=$http://www.wetteronline.de/?pid=p_city_local&sid=Pictogram&diagram=true&fcdat str=20140201&daytime=day&iid=NRW$
          URLWettermorgen=$http://www.wetteronline.de/?pid=p_city_local&sid=Pictogram&diagram=true&fcdat str=20140202&daytime=day&iid=NRW$

          [WebServer]
          picture(15)[DOUBLE,ZOOMGRAF]($Wetter$,URLWetterheute) none picture(16)[DOUBLE,ZOOMGRAF]($Niederschlagsprognose für die nächsten Stunden$,$http://www.wetteronline.de/?pid=p_radar_forecast&ireq=true&src=radar/vermarktung/p_radar_map_forecast/forecastLoop/NRW/latestForecastLoop.gif$) none
          line $Wettervorhersage für morgen$
          picture(17)[DOUBLE,ZOOMGRAF]($Wetter morgen$,URLWettermorgen)
          [/highlight]



          Mit der nächsten Variante (adaptiert von hier) bekomme ich zwar die richtige URL für das erste Bild (15) auf der Webseite angezeigt, allerdings wird die zugehörige Grafik nicht angezeigt:


          [highlight=epc]
          [EibPC]
          URLWetterheute=$http://www.wetteronline.de/?pid=p_city_local&sid=Pictogram&diagram=true&fcdat str=$ + Jahr + Monat + Tag + $&daytime=day&iid=NRW$

          if change(URLWetterheute) then pdisplay(15,URLWetterheute,INFO,INACTIVE,GREEN,Tes tbrettPageWetterID) endif

          Jahr=split(convert(setdate(),$$), 6u16, 9u16)
          Monat=split(convert(setdate(),$$), 3u16, 4u16)
          Tag=split(convert(setdate(),$$), 0u16, 1u16)

          [WebServer]
          picture(15)[DOUBLE,ZOOMGRAF]($Wetter$,$http://www.wetteronline.de/?pid=p_city_local&sid=Pictogram&diagram=true&fcdat str=20140201&daytime=day&iid=NRW$) none picture(16)[DOUBLE,ZOOMGRAF]($Niederschlagsprognose für die nächsten Stunden$,$http://www.wetteronline.de/?pid=p_radar_forecast&ireq=true&src=radar/vermarktung/p_radar_map_forecast/forecastLoop/NRW/latestForecastLoop.gif$) none
          line $Wettervorhersage für morgen$
          picture(17)[DOUBLE,ZOOMGRAF]($Wetter morgen$,$http://www.wetteronline.de/?pid=p_city_local&sid=Pictogram&diagram=true&fcdat str=20140202&daytime=day&iid=NRW$)

          [/highlight]

          Was mache ich falsch? Muss ich eventuell eine andere Funktion hierfür nuzten?
          Danke & Liebe Grüße

          Kommentar


            #6
            ohne mir das jetzt genau angesehen zu haben.. ich habs bei mir so:

            [highlight=epc]
            if cycle (01,00) then {
            Weatherhour=convert(hour()-2,$$);
            if size(Weatherhour) == 1u16 then Weatherhour = $0$+Weatherhour endif;
            } endif

            if mtime(15,01) then picturestring=$http://www.wetteronline.de/?pid=p_radar_map&ireq=true&src=radar/vermarktung/p_radar_map/wom/$ + convert(Jahr,$$) + $/$ + convert(Monat,$$) + $/$ + convert(Tag,$$) + $/Intensity/BAY/grey_flat/$ + convert(Jahr,$$) + convert(Monat,$$) + convert(Tag,$$) + Weatherhour + $15_BAY_Intensity.gif$ endif
            if mtime(30,01)then picturestring=$http://www.wetteronline.de/?pid=p_radar_map&ireq=true&src=radar/vermarktung/p_radar_map/wom/$ + convert(Jahr,$$) + $/$ + convert(Monat,$$) + $/$ + convert(Tag,$$) + $/Intensity/BAY/grey_flat/$ + convert(Jahr,$$) + convert(Monat,$$) + convert(Tag,$$) + Weatherhour + $30_BAY_Intensity.gif$ endif
            if mtime(45,01)then picturestring=$http://www.wetteronline.de/?pid=p_radar_map&ireq=true&src=radar/vermarktung/p_radar_map/wom/$ + convert(Jahr,$$) + $/$ + convert(Monat,$$) + $/$ + convert(Tag,$$) + $/Intensity/BAY/grey_flat/$ + convert(Jahr,$$) + convert(Monat,$$) + convert(Tag,$$) + Weatherhour + $45_BAY_Intensity.gif$ endif
            if mtime(00,01) then picturestring=$http://www.wetteronline.de/?pid=p_radar_map&ireq=true&src=radar/vermarktung/p_radar_map/wom/$ + convert(Jahr,$$) + $/$ + convert(Monat,$$) + $/$ + convert(Tag,$$) + $/Intensity/BAY/grey_flat/$ + convert(Jahr,$$) + convert(Monat,$$) + convert(Tag,$$) + Weatherhour + $00_BAY_Intensity.gif$ endif


            if systemstart() or htime(00,00,00) then picturestring2 = $http://www.wetteronline.de/?pid=p_city_local&sid=Pictogram&diagram=true&fcdat str=$ + convert(Jahr,$$) + convert(Monat,$$) + convert(Tag,$$) + $&daytime=day&iid=BAY$ endif


            if change(picturestring) then {
            picture(13,$Regenradar$, WetterID, picturestring);
            picture(14,$Wetter heute$, WetterID, picturestring2);
            } endif
            [/highlight]

            in der Webserver Sektion hab ich einfach nur ein Picture mit einem
            "blank" Link angegeben.. der wird dann eh einfach überschrieben..
            Die Selbsthilfegruppe "UTF-8-Probleme" trifft sich diesmal abweichend im groüen Saal.

            Kommentar


              #7
              Hallo Brick,

              mit Zeilen 16 und 17 Deines letzten Beitrags habe ich mein Problem lösen können (alles andere hatte ich in etwas abgewandelter Form bereits schon bei mir im Code).

              Danke Dir :-)
              Danke & Liebe Grüße

              Kommentar


                #8
                Zitat von Hell Beitrag anzeigen
                mit Zeilen 16 und 17 Deines letzten Beitrags habe ich mein Problem lösen können
                Ich vermute, es war der Zugriff per picture-Funktion auf das picture-Element. (?)
                offizielles Supportforum für den Enertex® EibPC: https://knx-user-forum.de/eibpc/
                Enertex Produkte kaufen

                Kommentar


                  #9
                  Ich muss leider wieder zurückrudern.

                  Gestern ist mir noch die Grafik richtig angezeigt worden. Heute wird die Grafik gar nicht mehr angezeigt.

                  Mein Code sieht aktuell wie folgt aus:

                  [highlight=epc]
                  [EibPC]
                  TestbrettPageWetterID=2

                  URLWetterheute=$http:www.wetteronline.de/?pid=p_city_local&sid=Pictogram&diagram=true&fcdat str=$ + convert(Jahr,$$) + convert(Monat,$$) + convert(Tag,$$) + $&daytime=day&iid=NRW$

                  if systemstart() OR mtime(0,0) OR mtime(15,0) OR mtime(30,0) OR mtime(45,0) then picture(15,$Wetter$,TestbrettPageWetterID,URLWette rheute) endif

                  Jahr=split(convert(setdate(),$$), 6u16, 9u16)
                  Monat=split(convert(setdate(),$$), 3u16, 4u16)
                  Tag=split(convert(setdate(),$$), 0u16, 1u16)

                  [WebServer]
                  page(TestbrettPageWetterID)[$Testbrett$,$Wetter$]
                  header(0)
                  footer(0)
                  design $black$
                  picture(15)[DOUBLE,ZOOMGRAF]($Wetter$,$http://www.wetteronline.de/?pid=p_city_local&sid=Pictogram&diagram=true&fcdat str=20140101&daytime=day&iid=BAY$)
                  [/highlight]
                  Danke & Liebe Grüße

                  Kommentar

                  Lädt...
                  X