SvenskaEnglish

Ny mycket renare version

eventghost_webserver_optimization_3

Tyckte att den tidigare versionen var för slö trots att jag gjort vad jag kunnat för att optimera koden. Gjorde ett försök med att slänga ut jQuery Mobile och då gick det genast mycket bättre. I den nya versionen har jag tagit inspiration från Windows Phone 7. Jag har dock skippat allt med Metro och kör bara på en svart bakgrund och knappar med vit ram. Jag tycker att det ser bättre ut när det är minimalistiskt men det viktigaste är endå att den nya versionen är sjukt mycket snabbare än den gamla.

Gå till Demo

Koden får du från https://bitbucket.org/sebnil/eventghost-web-gui/get/tip.zip

Instruktioner för att sätta upp allt

Några förbättringar:

  1. Rensade bort all seg kod från jQuery Mobile. Less is more!
  2. Endast 4 http request per sidvisning. Toksnabba sidvisningar är resultatet.
  3. Ingen onödig javascript. Tog bort ganska mycket av min egen kod.
  4. Lättare html. jQuery Mobile gjorde många enkla saker svåra. I den nya versionen så borde en nybörjare inom html-programmering kunna lista ut hur man ska göra egna gränssnitt. Det är i alla fall min förhoppning.

Youtube-video:

Kategori: Eventghost Web Gui
39 Comments »Ny mycket renare version
  1. Zupermik skriver:

    Mycket enkelt att genomföra. Stora Arbete och Thanx!!

    Så jag tänkte jag skulle beskriva hur jag förlängde utmärkt lösning lite mer med hjälp av en Tellstick Duo och en trådlös temperatursensor:

    1) Få Tellstick Dou (svårt att få tyvärr), och en kompatibel temperaturgivare
    (Listan över enheter som stöds i Telldus hemsida)

    2) Installera Telldus Duo plugin i Eventghost

    3) Ta ID temperaturgivaren i ”aktivitetslistan” inom Eventghost

    4) Skapa ett nytt makro baserad på händelsen (t ex. ”TellstickDuo.fineoffset.temeraturehumidity.213.Temperature:”)

    5) Lägg till ett Phytom Script till makrot med följande skript:

    ——
    p = eg.event.payload
    p = p.split("|')
    outtemp213 = p[0]
    eg.globals.outtemp213 = outtemp213
    # skriva ut outtemp213
    ——
    (sista raden är för felsökning,
    namnge vilka parametrar som 213 kommer att se till ha flera givare,
    inget fel hantering om givare försvinner ingår)

    6) i index.html – header-hgroup sektionen lägger:

    Min Street 1
    Utetemperatur: {{eg.globals.outtemp213}} °C

    7) njuta :-)

    8) Om du vill att sidan ska alltid vara uppdaterad överväga att använda:

    9) Och om du har flera sensorer för fukt och teperature etc. Du kan alltid göra en ”Fliken Väder” med alla värden.
    Jag kan dela en om någon behöver det för att få inspiration

    • Zupermik skriver:

      För att lägga till information om när temp uppdaterades överväga folloing uppdatering av phyton skriptet:

      importera datetime
      Nu = datetime.datetime.now()
      outtemp213time = now.strftime(”%Y-% m-% d% H:%M”)
      eg.globals.outtemp213time = outtemp213time

      och följande tillägg till html:

      ({{eg.globals.outtemp213time}})

      • Benjamin skriver:

        Får det inte riktigt att fungerar så det synkar mot eventghost har skrivit till det med texten:

        Street 1
        Utetemperatur: {{eg.globals.outtemp213}} °C

        Dock så kommer bara texten upp men inga faktiskt data.

        • Zupermik skriver:

          Hej!

          Glad att höra att någon använder koden :-)

          1) Kan du skicka din fullständiga phyton manus för evenemanget?
          2) Tills händelsen har utlösts, värdena är tom. Har du, i Eventghost, konstateras att Macro utlöstes?
          3) avlägsna # vid slutet av den phytonscript så står det:
          skriva ut outtemp213
          Detta kommer att visa värdet på den vänstra sidan av Eventghost varje gång den startas. Bra för felsökning.
          4) Lycka till! och gärna kommentera igen om det inte fungerar!

          • Benjamin skriver:

            Beklagar det sega svaret har haft fullt upp med andra saker.

            1. Hittar sensorn i Telldus center har id 230 och model 1A2D.

            2. I eventghost så updateras värden med jämna mellanrum, ibland ofta och ibland inte lika ofta det står. ”TellStickDuo.oregon.1A2D.230.Temperature: ’23.5|2012-10-15 22:44:03′”
            So far så good..

            3.Mitt Python script är följande:

            p = eg.event.payload
            p = p.split(‘|’)
            outtemp230 = p[0]
            eg.globals.outtemp230 = outtemp230
            skriva ut outtemp230
            importera datetime
            Nu = datetime.datetime.now()
            outtemp230time = now.strftime(“%Y-% m-% d% H:%M”)
            eg.globals.outtemp230time = outtemp230time

            4. När har skrivit sciptet och trycker och får jag upp varningen:

            Error compiling script.
            Traceback (most recent call last):
            SyntaxError: invalid syntax (10, line 2)

            5. Det är där det inte fungerar, har följt din guide och skulle jag kunna få upp detta på hemsidan så skulle det vara underbart att kunna övervaka inomhus tempen när man inte är hemma.

            6. Texten på hemsidan:

            Eventghost Web Gui
            hemskärm
            Min Street 1
            Utetemperatur:{{eg.globals.outtemp230}} °C

            Tacksam om du kan lösa detta!

  2. Zupermik skriver:

    Hur man lägger online-data från GöteborgEnergi:

    1) tillsätt timer insticksmodulen

    2) Set up TIMER
    inte utmärkt lösning:

    2en) Skapa Macro: Timern: Starta nytt eller kontroll körs timer
    Starta ny eller kontroll körs timer
    Ställ in den till: varje minut
    Name it: EveryMinuteTrigger

    2b) Manuellt starta makrot (Tyvärr)

    3) Skapa ett makro baserat på avtryckaren:
    Timer.EveryMinuteTrigger

    4) Lägg phyton skript Macro::

    Import urllib2
    från xml.dom.minidom import parseString
    file = urllib2.urlopen("Http://www.goteborgenergi.se / lib / Energi Visa / Rss.ashx?MeasureId = 2755&Skriv = Ström&Bilder = False ')
    data = file.read()
    file.close()
    dom = parseString(data som)
    xmlTag = dom.getElementsByTagName("Beskrivning")[1].toxml()
    xmlData = xmlTag.replace(”,”).ersätta(”,”)
    # skriva ut xmlTag
    # skriva ut xmlData
    eg.globals.GbgEnergiLight = xmlData

    5) Skapa en liknande makro baserad på varje minut avtryckaren och lägga phyton skript:

    Import urllib2
    från xml.dom.minidom import parseString
    file = urllib2.urlopen("Http://www.goteborgenergi.se / lib / Energi Visa / Rss.ashx?MeasureId = 2732&Skriv = Ström&Bilder = False ')
    data = file.read()
    file.close()
    dom = parseString(data som)
    xmlTag = dom.getElementsByTagName("Beskrivning")[1].toxml()
    xmlData = xmlTag.replace(”,”).ersätta(”,”)
    # skriva ut xmlTag
    # skriva ut xmlData
    eg.globals.GbgEnergiWind = xmlData

    6) Lägg till HTML:
    Ljusinstrålning: {{eg.globals.GbgEnergiLight}}
    Vindstyrka: {{eg.globals.GbgEnergiWind}}

  3. Kenneth skriver:

    Jag måste bara få säga att jag gillar verkligen detta :)
    Jag använder mig av ditt gui och jag är extremt nöjd.
    Sedan så passar jag på att tacka Zupermik för inlägget om att få in tempen på sidan, underbart.

  4. Zupermik skriver:

    Hej,

    Försöker lägga en annan lösning, men inlägget aldrig synlig på platsen. Förslag?

  5. Zupermik skriver:

    Part1::

    Hälsningar!

    Vill visa temperaturen mer grafiskt?

    Ladda ner RGraph från http://www.rgraph.net/
    Läs informationen osv regering användning.

    De extraherade filerna i en undermapp till jour Webroot (t.ex.. C:\WebServerRoot RGraph)

    I din html lägga koden nedan.

    Njut!

  6. Zupermik skriver:

    //
    //
    //
    //
    //
    //

  7. Zupermik skriver:

    Detta är bara ett enkelt test – kan raderas av moderator!
    == KOD ===

    <!DOCTYPE html>
    <html>
    <head>
    <script src="js/jquery-1.7.2.min.js">
    </script>

  8. Zupermik skriver:

    Del 2:

    {
    var gauge = new RGraph.Gauge('cvs', -20, 30, {{eg.globals.outtemp123}});

    gauge.Set('chart.colors.ranges', [[-20, 0, '#A0A0FF'], [0, 20, 'yellow'], [20, 30, '#FF8080']]);
    gauge.Set('chart.centerpin.color', '#666');
    gauge.Set('chart.title.top', 'Ute');
    gauge.Set('chart.title.top.size', '22');
    gauge.Set('chart.title.top.font', 'Impact');
    gauge.Set('chart.title.top.color', 'white');

    gauge.Set('chart.title.bottom.size', '14');
    gauge.Set('chart.title.bottom.font', 'Impact');
    gauge.Set('chart.title.bottom.color', '#ccc');
    gauge.Set('chart.title.bottom', '°C');
    gauge.Set('chart.title.bottom.pos', 0.4);
    gauge.Set('chart.background.color', 'black');
    gauge.Set('chart.background.gradient', true);
    gauge.Set('chart.centerpin.color', '#666');
    gauge.Set('chart.needle.colors', [RGraph.RadialGradient(gauge, 125, 125, 0, 125, 125, 25, 'transparent', 'white'),
    RGraph.RadialGradient(gauge, 125, 125, 0, 125, 125, 25, 'transparent', '#d66')]);
    gauge.Set('chart.needle.size', [null, 50]);
    gauge.Set('chart.text.color', 'white');
    gauge.Set('chart.tickmarks.big.color', 'white');
    gauge.Set('chart.tickmarks.medium.color', 'white');
    gauge.Set('chart.tickmarks.small.color', 'white');
    gauge.Set('chart.border.outer', '#666');
    gauge.Set('chart.border.inner', '#333');
    }
    </script>

  9. Zupermik skriver:

    Hur man lägger väder info längst ned på sidan…

    (Inspirerad av andra Sebastian Nilsson-projektet)

    Lägg till följande kod före sidfoten:

    Den sista br är att skapa utrymme för den mobila upplevelsen

    • Zupermik skriver:

      och koden: (nya försök)

      <center><img src=http://www.yr.no/sted/Your Country/Your Län/Your Town/avansert_meteogram.png></center>
      <center><br></center>
      <center><br></center>
      <center><br></center>
      <center><br></center>

      • Zupermik skriver:

        Hur man hittar url… Bläddra YR.No för din stad och
        ersätta
        ”time_for_time.html”
        till
        ”avansert_meteogram.png”
        vid slutet av URL

        • Kenneth skriver:

          Hej.

          Tack för dina instruktioner :-)
          Jag har nu testat detta, men det enda jag får fram är png bilden från YR :-(
          Jag är inte så jätte hemma på html, jag har nog testat allt.
          Inte finns det en möjlighet att du kan sätta ihop dina delar till en html kod som det ska se ut ?
          Sen så ska jag nog kunna trolla fram resten.
          Tack så mycket för din hjälp

          • Zupermik skriver:

            Hej Kenneth,

            Allt jag kan erbjuda är:
            skicka din kod, zippade, Denna zupermik (vid) gmail (punkt) med

            och jag ska försöka hjälpa dig (en gång erbjuder endast ;-) ) och jag kommer att jämföra det till mina grejer……

            Min kod innehåller en hel del andra saker som kommer vara förvirrande för dig om jag skickar det.

            Jag ska hjälpa dig på bästa möjliga sätt, inga garantier, och begränsad till min tillgänglighet…

            OK?

            Uppdatera här på din svara eftersom brevlådan inte övervakas.

            Notera: ingen kurva kan betyda att det inte finns någon information… förvirrande men sant… 1:st sak att kontrollera

        • sebnil skriver:

          Klistra in koden på http://pastebin.com/ Om det inte visar korrekt i kommentarerna. Du har också rätt att punga koden på github om det skulle vara lättare.

          Och tack för att förbättra koden :)

          • Zupermik skriver:

            Hej alla,

            såg att min kommentar översattes om du använder svenska (upptill). Använda engelska kommer att ge korrekta kommentarer.

            Hej,

            Såg att mina kommentarer blev fel om man satt svenska (inställning i toppen på denna sida). om ni väljer engelska kommer kommentarerna att vara med riktiga.

  10. Fredrik Östman skriver:

    Jag har satt upp en webbserver i EventGhost med hjälp av dina instruktioner och filer och har fått det att funka hyfsat. Skitkul verkligen! :) Jag kan nu tända och släcka lampor och visa temperatur i min Androidtelefon och i mina datorer i det lokala nätverket. Men det jag inte riktigt begriper är hur slidern för dimmern funkar. Hur skickar man ett argument (payload eller suffix, jag är inte helt säker på terminologin) till dimmern?

    Jag har gått en högskolekurs i C-programmering, men det är längesen… I Python är jag nybörjare. Html kan jag nästan inte alls. Tror du att du kan förklara så att en sådan som jag begriper? :)

  11. Zupermik skriver:

    @ Benjamin:
    I din kod jag läser:
    Nu = datetime.datetime.now()
    outtemp230time = now.strftime("% Y-% m-% d% H:%M ")

    Jag antar språk på webbplatsen pussel oss. Vänligen skicka din kod till ”zupermik (vid) gmail.com” och jag kommer att försöka hjälpa dig
    Nu i koden ska vara nu.

    Jag föreslår att du endast använder den första 5 rader kod och se om de fungerar. de sista raderna i skriptet är bara där om du vill ha en tidsstämpel av värdena.

  12. Surfan skriver:

    Hej
    Jag har förmodligen samma problem som Benjamin. Hur löste det sig? Kan någon hjälpa mej? Så här ser mitt script ut.

    p = eg.event.payload
    p = p.split("|')
    outtemp11 = p[0]
    eg.globals.outtemp11 = outtemp11
    print outtemp11

    aOch i eventghost får jag detta felet.

    Fel sammanställa skript.
    Traceback (senaste samtalet sist):
    SyntaxError: ogiltig syntax (142, linje 2)

1 Pings/Trackbacks for "Ny mycket renare version"
  1. [...] [Uppdaterad 2012-02-13. Ny version som är mycket enklare att konfigurera] [Uppdaterad 2012-04-01. Nytt gränssnitt är snabbare.] [...]

Kommentera

E-postadressen publiceras inte. Obligatoriska fält är märkta *

*

Följande HTML-taggar och attribut är tillåtna: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>