SlideShare ist ein Scribd-Unternehmen logo
1 von 33
¨             ¨
Ubersicht API Ubersicht Beispiel Umgebung Dokumentation Weitere Ideen Fazit




                      dSS JSON API und JavaScript
        Stromverbrauchsanzeige im Browser mit 5 Zeilen Javacript


                                       Andreas Stricker

                                            futureLAB AG


                                            2011-01-27
¨             ¨                                       ¨
Ubersicht API Ubersicht Beispiel Umgebung Dokumentation Weitere Ideen Fazit
                                                      Uber mich Inhalt

 ¨
 Ubersicht




     Zielpublikum
            Sie haben noch nicht mit der dSS JSON API gearbeitet
            Es sind nur geringe JavaScript Kenntnisse notwendig
            Einstieg zum Lernen und Entdecken der M¨ glichkeiten
                                                   o
¨             ¨                                       ¨
Ubersicht API Ubersicht Beispiel Umgebung Dokumentation Weitere Ideen Fazit
                                                      Uber mich Inhalt

 ¨
 Ubersicht




     Andreas Stricker
            Angestellt bei futureLAB AG
            Arbeitet nicht an digitalSTROM Projekten
            Letzter Kontakt mit dSS: vor einem Jahr
¨             ¨                                       ¨
Ubersicht API Ubersicht Beispiel Umgebung Dokumentation Weitere Ideen Fazit
                                                      Uber mich Inhalt

 ¨
 Ubersicht




     Andreas Stricker
            Angestellt bei futureLAB AG
            Arbeitet nicht an digitalSTROM Projekten
            Letzter Kontakt mit dSS: vor einem Jahr
¨             ¨                                       ¨
Ubersicht API Ubersicht Beispiel Umgebung Dokumentation Weitere Ideen Fazit
                                                      Uber mich Inhalt

 ¨
 Ubersicht




     Andreas Stricker
            Angestellt bei futureLAB AG
            Arbeitet nicht an digitalSTROM Projekten
            Letzter Kontakt mit dSS: vor einem Jahr
¨             ¨                                       ¨
Ubersicht API Ubersicht Beispiel Umgebung Dokumentation Weitere Ideen Fazit
                                                      Uber mich Inhalt

 Inhalt

     ¨
     Ubersicht
        ¨
       Uber mich
       Inhalt

     Das JSON API

     Beispiel
        HTML Rahmen
        Javascript

     Umgebung

     Dokumentation

     Weitere Ideen

     Fazit
¨             ¨
Ubersicht API Ubersicht Beispiel Umgebung Dokumentation Weitere Ideen Fazit

 Das JSON API


     dSS JSON API
            Basis URL: http://localhost:8080/json
            digitalSTROM Ressourcen
                  apartment
                  zone
                  device
                  circuit
            Weitere Ressourcen
                  property
                  event
                  metering
                  ...
¨             ¨
Ubersicht API Ubersicht Beispiel Umgebung Dokumentation Weitere Ideen Fazit

 Das JSON API


     dSS JSON API
            Basis URL: http://localhost:8080/json
            digitalSTROM Ressourcen
                  apartment
                  zone
                  device
                  circuit
            Weitere Ressourcen
                  property
                  event
                  metering
                  ...
¨             ¨
Ubersicht API Ubersicht Beispiel Umgebung Dokumentation Weitere Ideen Fazit

 Das JSON API


     dSS JSON API
            Basis URL: http://localhost:8080/json
            digitalSTROM Ressourcen
                  apartment
                  zone
                  device
                  circuit
            Weitere Ressourcen
                  property
                  event
                  metering
                  ...
¨             ¨
Ubersicht API Ubersicht Beispiel Umgebung Dokumentation Weitere Ideen Fazit

 Das JSON API




     RPC Interface
            Das letzte Element der URL ist ein Funktionsname
            Danach folgen die Parameter als normale URL Parameter
            Beispiel mit Devices:
            https://localhost:8080/json/device/getName?dsid=350...
            Funktionen werden auch uber HTTP GET aufgerufen
                                   ¨
¨             ¨
Ubersicht API Ubersicht Beispiel Umgebung Dokumentation Weitere Ideen Fazit

 Das JSON API




     RPC Interface
            Das letzte Element der URL ist ein Funktionsname
            Danach folgen die Parameter als normale URL Parameter
            Beispiel mit Devices:
            https://localhost:8080/json/device/getName?dsid=350...
            Funktionen werden auch uber HTTP GET aufgerufen
                                   ¨
¨             ¨
Ubersicht API Ubersicht Beispiel Umgebung Dokumentation Weitere Ideen Fazit

 Das JSON API




     RPC Interface
            Das letzte Element der URL ist ein Funktionsname
            Danach folgen die Parameter als normale URL Parameter
            Beispiel mit Devices:
            https://localhost:8080/json/device/getName?dsid=350...
            Funktionen werden auch uber HTTP GET aufgerufen
                                   ¨
¨             ¨
Ubersicht API Ubersicht Beispiel Umgebung Dokumentation Weitere Ideen Fazit

 Das JSON API




     RPC Interface
            Das letzte Element der URL ist ein Funktionsname
            Danach folgen die Parameter als normale URL Parameter
            Beispiel mit Devices:
            https://localhost:8080/json/device/getName?dsid=350...
            Funktionen werden auch uber HTTP GET aufgerufen
                                   ¨
¨             ¨
Ubersicht API Ubersicht Beispiel Umgebung Dokumentation Weitere Ideen Fazit

 Das JSON API



     Mit dem JSON API “spielen”
            ¨
            Uber die Kommandozeile mit curl oder wget
                  curl -k ’https://localhost:8080/json/apartment/getName’
                  wget -qO - --no-check-certificate ’https://localhost:8080/
                  json/apartment/getName’
                  M¨ glicherweise muss noch
                   o
            Im Browser API URLs aufrufen (z.B. Firefox mit JSONovich
            oder Firebug Plugin)
¨             ¨
Ubersicht API Ubersicht Beispiel Umgebung Dokumentation Weitere Ideen Fazit

 Das JSON API



     Mit dem JSON API “spielen”
            ¨
            Uber die Kommandozeile mit curl oder wget
                  curl -k ’https://localhost:8080/json/apartment/getName’
                  wget -qO - --no-check-certificate ’https://localhost:8080/
                  json/apartment/getName’
                  M¨ glicherweise muss noch
                   o
            Im Browser API URLs aufrufen (z.B. Firefox mit JSONovich
            oder Firebug Plugin)
¨             ¨
Ubersicht API Ubersicht Beispiel Umgebung Dokumentation Weitere Ideen Fazit

 Das JSON API



     Mit dem JSON API “spielen”
            ¨
            Uber die Kommandozeile mit curl oder wget
                  curl -k ’https://localhost:8080/json/apartment/getName’
                  wget -qO - --no-check-certificate ’https://localhost:8080/
                  json/apartment/getName’
                  M¨ glicherweise muss noch
                   o
            Im Browser API URLs aufrufen (z.B. Firefox mit JSONovich
            oder Firebug Plugin)
¨             ¨
Ubersicht API Ubersicht Beispiel Umgebung Dokumentation Weitere Ideen Fazit

 Das JSON API



     Mit dem JSON API “spielen”
            ¨
            Uber die Kommandozeile mit curl oder wget
                  curl -k ’https://localhost:8080/json/apartment/getName’
                  wget -qO - --no-check-certificate ’https://localhost:8080/
                  json/apartment/getName’
                  M¨ glicherweise muss noch
                   o
            Im Browser API URLs aufrufen (z.B. Firefox mit JSONovich
            oder Firebug Plugin)
¨             ¨
Ubersicht API Ubersicht Beispiel Umgebung Dokumentation Weitere Ideen Fazit

 Das JSON API



     Mit dem JSON API “spielen”
            ¨
            Uber die Kommandozeile mit curl oder wget
                  curl -k ’https://localhost:8080/json/apartment/getName’
                  wget -qO - --no-check-certificate ’https://localhost:8080/
                  json/apartment/getName’
                  M¨ glicherweise muss noch
                   o
            Im Browser API URLs aufrufen (z.B. Firefox mit JSONovich
            oder Firebug Plugin)
¨             ¨
Ubersicht API Ubersicht Beispiel Umgebung Dokumentation Weitere Ideen Fazit

 Das JSON API



     Mit dem JSON API “spielen”
            ¨
            Uber die Kommandozeile mit curl oder wget
                  curl -k ’https://localhost:8080/json/apartment/getName’
                  wget -qO - --no-check-certificate ’https://localhost:8080/
                  json/apartment/getName’
                  M¨ glicherweise muss noch
                   o
            Im Browser API URLs aufrufen (z.B. Firefox mit JSONovich
            oder Firebug Plugin)
¨             ¨
Ubersicht API Ubersicht Beispiel Umgebung Dokumentation Weitere Ideen Fazit
                                                      HTML Rahmen Javascript

 Beispiel




     Lesen des aktuellen Gesamtverbrauch.
¨             ¨
Ubersicht API Ubersicht Beispiel Umgebung Dokumentation Weitere Ideen Fazit
                                                      HTML Rahmen Javascript

 Beispiel

     HTML Rahmen f¨ r die Applikation
                  u
     <? xml version = " 1.0 " ? >
     < html xmlns = " http :// www . w3 . org /1999/ xhtml " xml : lang = " en " >
     < head > < title > dSS Metering Demo : Simple </ title > </ head >
     < body >
          < h1 > dSS Metering Demo : Simple </ h1 >
          < div id = " data " >
                 Power : < span class = " power - info " >0 W </ span >
          </ div >

          < script
               type = " text / javascript "
               src = " / js / extjs / adapter / ext / ext - base - debug . js " >
          </ script >
          < script type = " text / javascript "
                     src = " / js / extjs / ext - all - debug . js " > </ script >
          < script type = " text / javascript "
                     src = " / js / demo . js " > </ script >
     </ body >
     </ html >
¨             ¨
Ubersicht API Ubersicht Beispiel Umgebung Dokumentation Weitere Ideen Fazit
                                                      HTML Rahmen Javascript

 Beispiel


     Verwendung von ExtJS ist naheliegend, da beim dSS schon
     dabei
     Aktueller Verbrauch des Apartment lesen
     Ext . onReady ( function () {
           Ext . Ajax . request ({
                 url : ’/ json / apartment / getConsu mption ’ ,
                 success : function ( response ) {
                      console . debug ( " Received JSON : " , response .
                           responseText ) ;
                 }
           }) ;
     }) ;
¨             ¨
Ubersicht API Ubersicht Beispiel Umgebung Dokumentation Weitere Ideen Fazit
                                                      HTML Rahmen Javascript

 Beispiel




     Aktueller Verbrauch des Apartment lesen
     Ext . onReady ( function () {
           Ext . Ajax . request ({
                 url : ’/ json / apartment / getConsu mption ’ ,
                 success : function ( response ) {
                      console . debug ( " Received JSON : " , response .
                           responseText ) ;
                 }
           }) ;
     }) ;
¨             ¨
Ubersicht API Ubersicht Beispiel Umgebung Dokumentation Weitere Ideen Fazit
                                                      HTML Rahmen Javascript

 Beispiel


     Aktueller Verbrauch im HTML DOM Baum aktualisieren
     function onDat aReceiv ed ( response ) {
         var data = Ext . decode ( response . responseText ) ,
               consumption = ( data &&
                                   data . result &&
                                   data . result . consumption ) || 0 ,
               el = Ext . get ( ’ data ’) . select ( ’. power - info ’) . first () ;
         el . update ( " " + Math . round ( consumption ) + " W " ) ;
     }

     Ext . onReady ( function () {
           Ext . Ajax . request ({
                 url : ’/ json / apartment / getConsu mption ’ ,
                 success : o nDataRec eived
           }) ;
     }) ;
¨             ¨
Ubersicht API Ubersicht Beispiel Umgebung Dokumentation Weitere Ideen Fazit
                                                      HTML Rahmen Javascript

 Beispiel

     Aktueller Verbrauch regelm¨ssig aktualisieren
                               a
     function onDat aReceiv ed ( response ) {
         var d = Ext . decode ( response . responseText ) ,
               consumption = ( data &&
                                   data . result &&
                                   data . result . consumption ) || 0 ,
               el = Ext . get ( ’ data ’) . select ( ’. power - info ’) . first () ;
         el . update ( " " + Math . round ( consumption ) + " W " ) ;
     }

     Ext . onReady ( function () {
           Ext . TaskMgr . start ({
                 interval : 3000 ,
                 run : function () {
                      Ext . Ajax . request ({
                            url : ’/ json / apartment / g etConsum ption ’ ,
                            success : o nDataRe ceived
                      }) ;
                 }
           }) ;
     }) ;
¨             ¨
Ubersicht API Ubersicht Beispiel Umgebung Dokumentation Weitere Ideen Fazit

 Umgebung




     Umgebung zum testen
            dSS mit echter Hardware
            oder dSS im Simulationsmodus
¨             ¨
Ubersicht API Ubersicht Beispiel Umgebung Dokumentation Weitere Ideen Fazit

 Umgebung




     Wohin mit den Dateien?
            Dateien nach data/webroot/ kopieren
            Danach sind sie unter https://localhost:8080/
            erreichbar
¨             ¨
Ubersicht API Ubersicht Beispiel Umgebung Dokumentation Weitere Ideen Fazit

 Dokumentation



     Notwendige Dokumentation und Hilfe
            Einstiegspunkt Dokumentations¨ bersicht im Wiki [digc]
                                         u
            JSON API Dokumentation, entweder Online [digb] oder
            dSS Build Verzeichnis (make doc gefolgt von xsltproc
            doc/json api.xslt build/doc/json api.xml >
            build/doc/json api.html)
            Wiki Seite zur Simulation [digd]
            dss-developer Mailingliste [diga]
¨             ¨
Ubersicht API Ubersicht Beispiel Umgebung Dokumentation Weitere Ideen Fazit

 Weitere Ideen




            Entdecken Sie den Property Tree
            Laden Sie sich Zeitreihen von der Metering Location und
            erstellen Sie sich daraus ein Diagramm
            Programmieren Sie sich ein Desktop Widget (Dashboard,
            Sidebar, etc)
            L¨ sen Sie Events aus
             o
¨             ¨
Ubersicht API Ubersicht Beispiel Umgebung Dokumentation Weitere Ideen Fazit

 Fazit




     Das JSON API ist einfach zu verstehen und zu benutzen.
¨             ¨
Ubersicht API Ubersicht Beispiel Umgebung Dokumentation Weitere Ideen Fazit

 Fazit




     Das API ist gut dokumentiert [digc].
References

References I


     digitalSTROM.org.
     dss developer mailinglist.
     http://forum.digitalstrom.org/cgi-bin/mailman/
     listinfo/dss-developer.
     digitalSTROM.org.
     dss json api dokumentation.
     http://developer.digitalstrom.org/releases/dss-0.
     8.0-doc/dss-0.8.0-json_api.html.
     digitalSTROM.org.
     dss wiki dokumentations¨ bersicht.
                            u
     http://developer.digitalstrom.org/redmine/
     projects/dss/wiki/Documentation.
References

References II




     digitalSTROM.org.
     dss wiki seite zur simulation.
     http://developer.digitalstrom.org/redmine/
     projects/dss/wiki/Simulation.

Weitere ähnliche Inhalte

Andere mochten auch

Statistik Veroeffentlichungen Jahrbuch 2009 Niedrig
Statistik Veroeffentlichungen Jahrbuch 2009 NiedrigStatistik Veroeffentlichungen Jahrbuch 2009 Niedrig
Statistik Veroeffentlichungen Jahrbuch 2009 Niedrig
greenpolarbear
 
INTERNET UND HISTORIOGRAFIE
INTERNET UND HISTORIOGRAFIEINTERNET UND HISTORIOGRAFIE
INTERNET UND HISTORIOGRAFIE
Slobodan Mandic
 
Sala de 5 "Los Delfines"
Sala de 5 "Los Delfines"Sala de 5 "Los Delfines"
Sala de 5 "Los Delfines"
martinyomar
 
Planificaciones, de octubre y los 3 primeros aprendizajes del 2do bloque
Planificaciones, de octubre y los 3 primeros aprendizajes del 2do bloquePlanificaciones, de octubre y los 3 primeros aprendizajes del 2do bloque
Planificaciones, de octubre y los 3 primeros aprendizajes del 2do bloque
Aimee Herrera Velarde
 
M.K. Tel 24 Info
M.K. Tel 24 InfoM.K. Tel 24 Info
M.K. Tel 24 Info
M.K. Tel 24
 

Andere mochten auch (20)

Statistik Veroeffentlichungen Jahrbuch 2009 Niedrig
Statistik Veroeffentlichungen Jahrbuch 2009 NiedrigStatistik Veroeffentlichungen Jahrbuch 2009 Niedrig
Statistik Veroeffentlichungen Jahrbuch 2009 Niedrig
 
Mechanismen
MechanismenMechanismen
Mechanismen
 
INTERNET UND HISTORIOGRAFIE
INTERNET UND HISTORIOGRAFIEINTERNET UND HISTORIOGRAFIE
INTERNET UND HISTORIOGRAFIE
 
Führungskräfte verringern, begrenzen bzw. vermeiden psychische Belastungen
Führungskräfte verringern, begrenzen bzw. vermeiden psychische BelastungenFührungskräfte verringern, begrenzen bzw. vermeiden psychische Belastungen
Führungskräfte verringern, begrenzen bzw. vermeiden psychische Belastungen
 
Mer 506004 Manual
Mer 506004 ManualMer 506004 Manual
Mer 506004 Manual
 
Sala Delfines
Sala DelfinesSala Delfines
Sala Delfines
 
Sala de 5 "Los Delfines"
Sala de 5 "Los Delfines"Sala de 5 "Los Delfines"
Sala de 5 "Los Delfines"
 
Te Kiero
Te KieroTe Kiero
Te Kiero
 
calendario
calendariocalendario
calendario
 
Ben 10
Ben 10Ben 10
Ben 10
 
Scanner
Scanner Scanner
Scanner
 
“La banca tradicional no ha sabido adaptarse aún a la era digital”
“La banca tradicional no ha sabido adaptarse aún a la era digital”“La banca tradicional no ha sabido adaptarse aún a la era digital”
“La banca tradicional no ha sabido adaptarse aún a la era digital”
 
language coach institute
language coach institutelanguage coach institute
language coach institute
 
Druck
DruckDruck
Druck
 
Planificaciones, de octubre y los 3 primeros aprendizajes del 2do bloque
Planificaciones, de octubre y los 3 primeros aprendizajes del 2do bloquePlanificaciones, de octubre y los 3 primeros aprendizajes del 2do bloque
Planificaciones, de octubre y los 3 primeros aprendizajes del 2do bloque
 
Multiplikatoren der Online-PR
Multiplikatoren der Online-PRMultiplikatoren der Online-PR
Multiplikatoren der Online-PR
 
Das gesetz der energie.
Das gesetz der energie.Das gesetz der energie.
Das gesetz der energie.
 
M.K. Tel 24 Info
M.K. Tel 24 InfoM.K. Tel 24 Info
M.K. Tel 24 Info
 
Paises "viajemos por el mundo"
Paises "viajemos por el mundo"Paises "viajemos por el mundo"
Paises "viajemos por el mundo"
 
Grundlagen computergestützter Fertigungsverfahren
Grundlagen computergestützter FertigungsverfahrenGrundlagen computergestützter Fertigungsverfahren
Grundlagen computergestützter Fertigungsverfahren
 

Ähnlich wie digitalSTROM Developer Day 2011: digitalSTROM-Server-Apps

HTML5 und node.js Grundlagen
HTML5 und node.js GrundlagenHTML5 und node.js Grundlagen
HTML5 und node.js Grundlagen
Mayflower GmbH
 
Vorstellung Open Social Ipc 2009
Vorstellung Open Social Ipc 2009Vorstellung Open Social Ipc 2009
Vorstellung Open Social Ipc 2009
fruske
 
Schnittstellen und Webservices
Schnittstellen und WebservicesSchnittstellen und Webservices
Schnittstellen und Webservices
Jakob .
 

Ähnlich wie digitalSTROM Developer Day 2011: digitalSTROM-Server-Apps (20)

Api Platform: the ultimate API Platform
Api Platform: the ultimate API PlatformApi Platform: the ultimate API Platform
Api Platform: the ultimate API Platform
 
Django - The Web framework for perfectionists with deadlines
Django - The Web framework for perfectionists with deadlinesDjango - The Web framework for perfectionists with deadlines
Django - The Web framework for perfectionists with deadlines
 
Ist GraphQL das bessere REST
Ist GraphQL das bessere RESTIst GraphQL das bessere REST
Ist GraphQL das bessere REST
 
HTML5 und node.js Grundlagen
HTML5 und node.js GrundlagenHTML5 und node.js Grundlagen
HTML5 und node.js Grundlagen
 
OpenSocial und Apache Shindig
OpenSocial und Apache ShindigOpenSocial und Apache Shindig
OpenSocial und Apache Shindig
 
Vorstellung Open Social Ipc 2009
Vorstellung Open Social Ipc 2009Vorstellung Open Social Ipc 2009
Vorstellung Open Social Ipc 2009
 
Web-API-Design in Java
Web-API-Design in JavaWeb-API-Design in Java
Web-API-Design in Java
 
Schnittstellen und Webservices
Schnittstellen und WebservicesSchnittstellen und Webservices
Schnittstellen und Webservices
 
FMK2019 FileMaker Data API mit Node.js nutzen by Adam Augustin
FMK2019 FileMaker Data API mit Node.js nutzen by Adam AugustinFMK2019 FileMaker Data API mit Node.js nutzen by Adam Augustin
FMK2019 FileMaker Data API mit Node.js nutzen by Adam Augustin
 
2017 08-12 ar vr and 360exp in web - barcamp kiel
2017 08-12 ar vr and 360exp in web - barcamp kiel2017 08-12 ar vr and 360exp in web - barcamp kiel
2017 08-12 ar vr and 360exp in web - barcamp kiel
 
IPC 2017 - Alexa Skills für Amazon Echo mit PHP entwickeln
IPC 2017 - Alexa Skills für Amazon Echo mit PHP entwickelnIPC 2017 - Alexa Skills für Amazon Echo mit PHP entwickeln
IPC 2017 - Alexa Skills für Amazon Echo mit PHP entwickeln
 
Ajax hands on - Refactoring Google Suggest
Ajax hands on - Refactoring Google SuggestAjax hands on - Refactoring Google Suggest
Ajax hands on - Refactoring Google Suggest
 
digitalSTROM Developer Day 2011: digitalSTROM bindet auch externe Komponenten...
digitalSTROM Developer Day 2011: digitalSTROM bindet auch externe Komponenten...digitalSTROM Developer Day 2011: digitalSTROM bindet auch externe Komponenten...
digitalSTROM Developer Day 2011: digitalSTROM bindet auch externe Komponenten...
 
FMK2017 - Wordpress und FileMaker by Karsten Risseeuw
FMK2017 - Wordpress und FileMaker by Karsten RisseeuwFMK2017 - Wordpress und FileMaker by Karsten Risseeuw
FMK2017 - Wordpress und FileMaker by Karsten Risseeuw
 
Yes zu NoSQL mit MongoDB für .NET-Entwickler
Yes zu NoSQL mit MongoDB für .NET-EntwicklerYes zu NoSQL mit MongoDB für .NET-Entwickler
Yes zu NoSQL mit MongoDB für .NET-Entwickler
 
Automatisierung mit grunt
Automatisierung mit gruntAutomatisierung mit grunt
Automatisierung mit grunt
 
Swagger - Rest APIs im Griff
Swagger - Rest APIs im GriffSwagger - Rest APIs im Griff
Swagger - Rest APIs im Griff
 
Creasoft-Akademie - Mobile Multiplattform Apps
Creasoft-Akademie - Mobile Multiplattform AppsCreasoft-Akademie - Mobile Multiplattform Apps
Creasoft-Akademie - Mobile Multiplattform Apps
 
Schnittstellen und Webservices
Schnittstellen und WebservicesSchnittstellen und Webservices
Schnittstellen und Webservices
 
Hybride Schönheit - Das Java/JavaScript Webframeworks Echo
Hybride Schönheit - Das Java/JavaScript Webframeworks EchoHybride Schönheit - Das Java/JavaScript Webframeworks Echo
Hybride Schönheit - Das Java/JavaScript Webframeworks Echo
 

Mehr von digitalSTROM.org

digitalSTROM Developer Day 2011: Wie digitalSTROM auf das iPhone kommt II
digitalSTROM Developer Day 2011: Wie digitalSTROM auf das iPhone kommt IIdigitalSTROM Developer Day 2011: Wie digitalSTROM auf das iPhone kommt II
digitalSTROM Developer Day 2011: Wie digitalSTROM auf das iPhone kommt II
digitalSTROM.org
 
digitalSTROM Developer Day 2011: Wie digitalSTROM auf das iPhone kommt I
digitalSTROM Developer Day 2011: Wie digitalSTROM auf das iPhone kommt IdigitalSTROM Developer Day 2011: Wie digitalSTROM auf das iPhone kommt I
digitalSTROM Developer Day 2011: Wie digitalSTROM auf das iPhone kommt I
digitalSTROM.org
 
digitalSTROM Developer Day 2011: digitalSTROM-Server-Apps
digitalSTROM Developer Day 2011: digitalSTROM-Server-AppsdigitalSTROM Developer Day 2011: digitalSTROM-Server-Apps
digitalSTROM Developer Day 2011: digitalSTROM-Server-Apps
digitalSTROM.org
 
digitalSTROM Developer Day 2011: Referat Ludger Hovestadt
digitalSTROM Developer Day 2011: Referat Ludger HovestadtdigitalSTROM Developer Day 2011: Referat Ludger Hovestadt
digitalSTROM Developer Day 2011: Referat Ludger Hovestadt
digitalSTROM.org
 

Mehr von digitalSTROM.org (11)

digitalSTROM Developer Day 2011: Wie digitalSTROM auf das iPhone kommt II
digitalSTROM Developer Day 2011: Wie digitalSTROM auf das iPhone kommt IIdigitalSTROM Developer Day 2011: Wie digitalSTROM auf das iPhone kommt II
digitalSTROM Developer Day 2011: Wie digitalSTROM auf das iPhone kommt II
 
digitalSTROM Developer Day 2011: Wie digitalSTROM auf das iPhone kommt I
digitalSTROM Developer Day 2011: Wie digitalSTROM auf das iPhone kommt IdigitalSTROM Developer Day 2011: Wie digitalSTROM auf das iPhone kommt I
digitalSTROM Developer Day 2011: Wie digitalSTROM auf das iPhone kommt I
 
digitalSTROM Developer Day 2011: digitalSTROM-Server-Apps
digitalSTROM Developer Day 2011: digitalSTROM-Server-AppsdigitalSTROM Developer Day 2011: digitalSTROM-Server-Apps
digitalSTROM Developer Day 2011: digitalSTROM-Server-Apps
 
digitalSTROM Developer Day 2011: Wie Heimelektronik und digitalSTROM zusammen...
digitalSTROM Developer Day 2011: Wie Heimelektronik und digitalSTROM zusammen...digitalSTROM Developer Day 2011: Wie Heimelektronik und digitalSTROM zusammen...
digitalSTROM Developer Day 2011: Wie Heimelektronik und digitalSTROM zusammen...
 
digitalSTROM Developer Day 2011: Jump Start in die digitalSTROM-Server Entwic...
digitalSTROM Developer Day 2011: Jump Start in die digitalSTROM-Server Entwic...digitalSTROM Developer Day 2011: Jump Start in die digitalSTROM-Server Entwic...
digitalSTROM Developer Day 2011: Jump Start in die digitalSTROM-Server Entwic...
 
digitalSTROM Developer Day 2011: Neue Möglichkeiten mit dem digitalSTROM-Server
digitalSTROM Developer Day 2011: Neue Möglichkeiten mit dem digitalSTROM-ServerdigitalSTROM Developer Day 2011: Neue Möglichkeiten mit dem digitalSTROM-Server
digitalSTROM Developer Day 2011: Neue Möglichkeiten mit dem digitalSTROM-Server
 
digitalSTROM Developer Day 2011: Referat Ludger Hovestadt
digitalSTROM Developer Day 2011: Referat Ludger HovestadtdigitalSTROM Developer Day 2011: Referat Ludger Hovestadt
digitalSTROM Developer Day 2011: Referat Ludger Hovestadt
 
digitalSTROM Interaction Design Concepts
digitalSTROM Interaction Design ConceptsdigitalSTROM Interaction Design Concepts
digitalSTROM Interaction Design Concepts
 
digitalSTROM Server Development
digitalSTROM Server DevelopmentdigitalSTROM Server Development
digitalSTROM Server Development
 
dSS API by example
dSS API by exampledSS API by example
dSS API by example
 
Contributing to dSS development
Contributing to dSS developmentContributing to dSS development
Contributing to dSS development
 

digitalSTROM Developer Day 2011: digitalSTROM-Server-Apps

  • 1. ¨ ¨ Ubersicht API Ubersicht Beispiel Umgebung Dokumentation Weitere Ideen Fazit dSS JSON API und JavaScript Stromverbrauchsanzeige im Browser mit 5 Zeilen Javacript Andreas Stricker futureLAB AG 2011-01-27
  • 2. ¨ ¨ ¨ Ubersicht API Ubersicht Beispiel Umgebung Dokumentation Weitere Ideen Fazit Uber mich Inhalt ¨ Ubersicht Zielpublikum Sie haben noch nicht mit der dSS JSON API gearbeitet Es sind nur geringe JavaScript Kenntnisse notwendig Einstieg zum Lernen und Entdecken der M¨ glichkeiten o
  • 3. ¨ ¨ ¨ Ubersicht API Ubersicht Beispiel Umgebung Dokumentation Weitere Ideen Fazit Uber mich Inhalt ¨ Ubersicht Andreas Stricker Angestellt bei futureLAB AG Arbeitet nicht an digitalSTROM Projekten Letzter Kontakt mit dSS: vor einem Jahr
  • 4. ¨ ¨ ¨ Ubersicht API Ubersicht Beispiel Umgebung Dokumentation Weitere Ideen Fazit Uber mich Inhalt ¨ Ubersicht Andreas Stricker Angestellt bei futureLAB AG Arbeitet nicht an digitalSTROM Projekten Letzter Kontakt mit dSS: vor einem Jahr
  • 5. ¨ ¨ ¨ Ubersicht API Ubersicht Beispiel Umgebung Dokumentation Weitere Ideen Fazit Uber mich Inhalt ¨ Ubersicht Andreas Stricker Angestellt bei futureLAB AG Arbeitet nicht an digitalSTROM Projekten Letzter Kontakt mit dSS: vor einem Jahr
  • 6. ¨ ¨ ¨ Ubersicht API Ubersicht Beispiel Umgebung Dokumentation Weitere Ideen Fazit Uber mich Inhalt Inhalt ¨ Ubersicht ¨ Uber mich Inhalt Das JSON API Beispiel HTML Rahmen Javascript Umgebung Dokumentation Weitere Ideen Fazit
  • 7. ¨ ¨ Ubersicht API Ubersicht Beispiel Umgebung Dokumentation Weitere Ideen Fazit Das JSON API dSS JSON API Basis URL: http://localhost:8080/json digitalSTROM Ressourcen apartment zone device circuit Weitere Ressourcen property event metering ...
  • 8. ¨ ¨ Ubersicht API Ubersicht Beispiel Umgebung Dokumentation Weitere Ideen Fazit Das JSON API dSS JSON API Basis URL: http://localhost:8080/json digitalSTROM Ressourcen apartment zone device circuit Weitere Ressourcen property event metering ...
  • 9. ¨ ¨ Ubersicht API Ubersicht Beispiel Umgebung Dokumentation Weitere Ideen Fazit Das JSON API dSS JSON API Basis URL: http://localhost:8080/json digitalSTROM Ressourcen apartment zone device circuit Weitere Ressourcen property event metering ...
  • 10. ¨ ¨ Ubersicht API Ubersicht Beispiel Umgebung Dokumentation Weitere Ideen Fazit Das JSON API RPC Interface Das letzte Element der URL ist ein Funktionsname Danach folgen die Parameter als normale URL Parameter Beispiel mit Devices: https://localhost:8080/json/device/getName?dsid=350... Funktionen werden auch uber HTTP GET aufgerufen ¨
  • 11. ¨ ¨ Ubersicht API Ubersicht Beispiel Umgebung Dokumentation Weitere Ideen Fazit Das JSON API RPC Interface Das letzte Element der URL ist ein Funktionsname Danach folgen die Parameter als normale URL Parameter Beispiel mit Devices: https://localhost:8080/json/device/getName?dsid=350... Funktionen werden auch uber HTTP GET aufgerufen ¨
  • 12. ¨ ¨ Ubersicht API Ubersicht Beispiel Umgebung Dokumentation Weitere Ideen Fazit Das JSON API RPC Interface Das letzte Element der URL ist ein Funktionsname Danach folgen die Parameter als normale URL Parameter Beispiel mit Devices: https://localhost:8080/json/device/getName?dsid=350... Funktionen werden auch uber HTTP GET aufgerufen ¨
  • 13. ¨ ¨ Ubersicht API Ubersicht Beispiel Umgebung Dokumentation Weitere Ideen Fazit Das JSON API RPC Interface Das letzte Element der URL ist ein Funktionsname Danach folgen die Parameter als normale URL Parameter Beispiel mit Devices: https://localhost:8080/json/device/getName?dsid=350... Funktionen werden auch uber HTTP GET aufgerufen ¨
  • 14. ¨ ¨ Ubersicht API Ubersicht Beispiel Umgebung Dokumentation Weitere Ideen Fazit Das JSON API Mit dem JSON API “spielen” ¨ Uber die Kommandozeile mit curl oder wget curl -k ’https://localhost:8080/json/apartment/getName’ wget -qO - --no-check-certificate ’https://localhost:8080/ json/apartment/getName’ M¨ glicherweise muss noch o Im Browser API URLs aufrufen (z.B. Firefox mit JSONovich oder Firebug Plugin)
  • 15. ¨ ¨ Ubersicht API Ubersicht Beispiel Umgebung Dokumentation Weitere Ideen Fazit Das JSON API Mit dem JSON API “spielen” ¨ Uber die Kommandozeile mit curl oder wget curl -k ’https://localhost:8080/json/apartment/getName’ wget -qO - --no-check-certificate ’https://localhost:8080/ json/apartment/getName’ M¨ glicherweise muss noch o Im Browser API URLs aufrufen (z.B. Firefox mit JSONovich oder Firebug Plugin)
  • 16. ¨ ¨ Ubersicht API Ubersicht Beispiel Umgebung Dokumentation Weitere Ideen Fazit Das JSON API Mit dem JSON API “spielen” ¨ Uber die Kommandozeile mit curl oder wget curl -k ’https://localhost:8080/json/apartment/getName’ wget -qO - --no-check-certificate ’https://localhost:8080/ json/apartment/getName’ M¨ glicherweise muss noch o Im Browser API URLs aufrufen (z.B. Firefox mit JSONovich oder Firebug Plugin)
  • 17. ¨ ¨ Ubersicht API Ubersicht Beispiel Umgebung Dokumentation Weitere Ideen Fazit Das JSON API Mit dem JSON API “spielen” ¨ Uber die Kommandozeile mit curl oder wget curl -k ’https://localhost:8080/json/apartment/getName’ wget -qO - --no-check-certificate ’https://localhost:8080/ json/apartment/getName’ M¨ glicherweise muss noch o Im Browser API URLs aufrufen (z.B. Firefox mit JSONovich oder Firebug Plugin)
  • 18. ¨ ¨ Ubersicht API Ubersicht Beispiel Umgebung Dokumentation Weitere Ideen Fazit Das JSON API Mit dem JSON API “spielen” ¨ Uber die Kommandozeile mit curl oder wget curl -k ’https://localhost:8080/json/apartment/getName’ wget -qO - --no-check-certificate ’https://localhost:8080/ json/apartment/getName’ M¨ glicherweise muss noch o Im Browser API URLs aufrufen (z.B. Firefox mit JSONovich oder Firebug Plugin)
  • 19. ¨ ¨ Ubersicht API Ubersicht Beispiel Umgebung Dokumentation Weitere Ideen Fazit Das JSON API Mit dem JSON API “spielen” ¨ Uber die Kommandozeile mit curl oder wget curl -k ’https://localhost:8080/json/apartment/getName’ wget -qO - --no-check-certificate ’https://localhost:8080/ json/apartment/getName’ M¨ glicherweise muss noch o Im Browser API URLs aufrufen (z.B. Firefox mit JSONovich oder Firebug Plugin)
  • 20. ¨ ¨ Ubersicht API Ubersicht Beispiel Umgebung Dokumentation Weitere Ideen Fazit HTML Rahmen Javascript Beispiel Lesen des aktuellen Gesamtverbrauch.
  • 21. ¨ ¨ Ubersicht API Ubersicht Beispiel Umgebung Dokumentation Weitere Ideen Fazit HTML Rahmen Javascript Beispiel HTML Rahmen f¨ r die Applikation u <? xml version = " 1.0 " ? > < html xmlns = " http :// www . w3 . org /1999/ xhtml " xml : lang = " en " > < head > < title > dSS Metering Demo : Simple </ title > </ head > < body > < h1 > dSS Metering Demo : Simple </ h1 > < div id = " data " > Power : < span class = " power - info " >0 W </ span > </ div > < script type = " text / javascript " src = " / js / extjs / adapter / ext / ext - base - debug . js " > </ script > < script type = " text / javascript " src = " / js / extjs / ext - all - debug . js " > </ script > < script type = " text / javascript " src = " / js / demo . js " > </ script > </ body > </ html >
  • 22. ¨ ¨ Ubersicht API Ubersicht Beispiel Umgebung Dokumentation Weitere Ideen Fazit HTML Rahmen Javascript Beispiel Verwendung von ExtJS ist naheliegend, da beim dSS schon dabei Aktueller Verbrauch des Apartment lesen Ext . onReady ( function () { Ext . Ajax . request ({ url : ’/ json / apartment / getConsu mption ’ , success : function ( response ) { console . debug ( " Received JSON : " , response . responseText ) ; } }) ; }) ;
  • 23. ¨ ¨ Ubersicht API Ubersicht Beispiel Umgebung Dokumentation Weitere Ideen Fazit HTML Rahmen Javascript Beispiel Aktueller Verbrauch des Apartment lesen Ext . onReady ( function () { Ext . Ajax . request ({ url : ’/ json / apartment / getConsu mption ’ , success : function ( response ) { console . debug ( " Received JSON : " , response . responseText ) ; } }) ; }) ;
  • 24. ¨ ¨ Ubersicht API Ubersicht Beispiel Umgebung Dokumentation Weitere Ideen Fazit HTML Rahmen Javascript Beispiel Aktueller Verbrauch im HTML DOM Baum aktualisieren function onDat aReceiv ed ( response ) { var data = Ext . decode ( response . responseText ) , consumption = ( data && data . result && data . result . consumption ) || 0 , el = Ext . get ( ’ data ’) . select ( ’. power - info ’) . first () ; el . update ( " " + Math . round ( consumption ) + " W " ) ; } Ext . onReady ( function () { Ext . Ajax . request ({ url : ’/ json / apartment / getConsu mption ’ , success : o nDataRec eived }) ; }) ;
  • 25. ¨ ¨ Ubersicht API Ubersicht Beispiel Umgebung Dokumentation Weitere Ideen Fazit HTML Rahmen Javascript Beispiel Aktueller Verbrauch regelm¨ssig aktualisieren a function onDat aReceiv ed ( response ) { var d = Ext . decode ( response . responseText ) , consumption = ( data && data . result && data . result . consumption ) || 0 , el = Ext . get ( ’ data ’) . select ( ’. power - info ’) . first () ; el . update ( " " + Math . round ( consumption ) + " W " ) ; } Ext . onReady ( function () { Ext . TaskMgr . start ({ interval : 3000 , run : function () { Ext . Ajax . request ({ url : ’/ json / apartment / g etConsum ption ’ , success : o nDataRe ceived }) ; } }) ; }) ;
  • 26. ¨ ¨ Ubersicht API Ubersicht Beispiel Umgebung Dokumentation Weitere Ideen Fazit Umgebung Umgebung zum testen dSS mit echter Hardware oder dSS im Simulationsmodus
  • 27. ¨ ¨ Ubersicht API Ubersicht Beispiel Umgebung Dokumentation Weitere Ideen Fazit Umgebung Wohin mit den Dateien? Dateien nach data/webroot/ kopieren Danach sind sie unter https://localhost:8080/ erreichbar
  • 28. ¨ ¨ Ubersicht API Ubersicht Beispiel Umgebung Dokumentation Weitere Ideen Fazit Dokumentation Notwendige Dokumentation und Hilfe Einstiegspunkt Dokumentations¨ bersicht im Wiki [digc] u JSON API Dokumentation, entweder Online [digb] oder dSS Build Verzeichnis (make doc gefolgt von xsltproc doc/json api.xslt build/doc/json api.xml > build/doc/json api.html) Wiki Seite zur Simulation [digd] dss-developer Mailingliste [diga]
  • 29. ¨ ¨ Ubersicht API Ubersicht Beispiel Umgebung Dokumentation Weitere Ideen Fazit Weitere Ideen Entdecken Sie den Property Tree Laden Sie sich Zeitreihen von der Metering Location und erstellen Sie sich daraus ein Diagramm Programmieren Sie sich ein Desktop Widget (Dashboard, Sidebar, etc) L¨ sen Sie Events aus o
  • 30. ¨ ¨ Ubersicht API Ubersicht Beispiel Umgebung Dokumentation Weitere Ideen Fazit Fazit Das JSON API ist einfach zu verstehen und zu benutzen.
  • 31. ¨ ¨ Ubersicht API Ubersicht Beispiel Umgebung Dokumentation Weitere Ideen Fazit Fazit Das API ist gut dokumentiert [digc].
  • 32. References References I digitalSTROM.org. dss developer mailinglist. http://forum.digitalstrom.org/cgi-bin/mailman/ listinfo/dss-developer. digitalSTROM.org. dss json api dokumentation. http://developer.digitalstrom.org/releases/dss-0. 8.0-doc/dss-0.8.0-json_api.html. digitalSTROM.org. dss wiki dokumentations¨ bersicht. u http://developer.digitalstrom.org/redmine/ projects/dss/wiki/Documentation.
  • 33. References References II digitalSTROM.org. dss wiki seite zur simulation. http://developer.digitalstrom.org/redmine/ projects/dss/wiki/Simulation.