Ankündigung

Einklappen
Keine Ankündigung bisher.

Support Thread für das Webservices Plugin

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

    Support Thread für das Webservices Plugin

    Hier schonmal der Supportthread für das Webservices (REST) Plugin, das mit 1.4 kommt.

    Man findet es bereits im DEV unter https://github.com/smarthomeNG/plugi...op/webservices

    Es gibt ein REST "compliant" Interface mit GET und PUT, aber auch ein "Simple" Interface, wo man die Parameter einfach über die URL setzen kann.

    Also letzteres bspw. so:
    http://192.168.178.100:1234/ws/items...office.light/1

    Das Plugin benötigt zwingend die 1.4 und ist ein Beispiel, wie man die neue generische service bzw. webif Schnittstelle (Konfiguration via modules.yaml) nutzen kann.
    Basic Auth konfiguriert man ebenfalls via modules.yaml. Standardmäßig bietet das Plugin alle Items zugreifbar an, man kann dies aber auch auf sog. Item-Sets einschränken. Ein Item kann zu mehreren Sets gehören.
    Zudem kann man einstellen, ob bei einem Item alle Metadaten oder nur der Pfad und sein Wert zurückgegeben werden. Letzteres ist v.A. bei der Nutzung durch Wearables sinnvoll. Ein Beispiel hierzu werde ich in der nächsten Zeit noch unter https://knx-user-forum.de/forum/supp...in-fenix-uhren weiter ausführen.,

    Es gibt auch eine kleine Webseite, auf der alle verfügbaren Services (ergo zugreifbaren Items) gelistet sind:
    ff.PNG
    Wer bereits auf dem DEV unterwegs ist wäre hiermit aufgerufen, das Ganze mal zu testen. Alle anderen bitte noch etwas Geduld bis zum nächsten Release.

    Falls jemand Features vermisst gerne auch kommentieren.
    Zuletzt geändert von psilo; 02.12.2017, 07:52.

    #2
    Sieht beim ersten Test schon mal sehr gut aus..
    Was mir aufgefallen ist:
    - In der ersten Übersichtsseite wäre vielleicht noch nett, auch die Itemsets gelistet zu bekommen
    - Der Ordner items ist in der Mehrzahl, der Ordner itemset aber nicht.

    Mir ist übrigens der Unterschied beim http Module zwischen port und serviceport noch nicht ganz klar. Auf der Webseite kommt das auch nicht wirklich rüber..
    http://smarthomeng.de/v1_3/user/konf...dule_http.html

    Kommentar


      #3
      port = gui, services = maschinelle schnittstelle. ist was für die doku Msinn
      Zuletzt geändert von psilo; 02.12.2017, 11:03.

      Kommentar


        #4
        Klar, die Änderungen am http Modul von gestern habe ich in der Doku noch nicht nachvollzogen.
        Viele Grüße
        Martin

        Kommentar


          #5
          Msinn darum geht es nicht. einfach noch den unterschied zw. service und webif erklären. glaube das ist der hinweis von Onkelandy

          Kommentar


            #6
            Jup, in der Doku steht halt bei beiden Ports genau die gleiche Zeile drin.

            Kommentar


              #7
              Die WebGUI zeigt nun zuerst alle Sets + Link auf den das Set zurückliefernden Service und dann nochmal eine Liste aller Items aus allen Sets.. Wenn mir mal langweilig ist baue ich das noch mit Tabs, so reicht es mir erstmal fürs Release.

              Kommentar


                #9
                wie sind deine sets definiert, sind die string itdentifier in anführungszeichen?

                ich kann das problem nachstellen, wenn der string NICHT in anführungszeichen ist.. prüfe ich..


                Problem sollte jetzt gefixt sein. Auch wenn ich mir unsicher bin, ob der identifier ohne "" korrekt ist.. prüfe jetzt explizit ob ich in dem set attribut ein array oder einen string habe..
                Zuletzt geändert von psilo; 03.12.2017, 06:50.

                Kommentar


                  #10
                  Ich hatte es 1:1 aus deinem Beispiel übernommen, also mit ''
                  Aber jetzt funzt es, supi!

                  Kommentar


                    #11
                    Onkelandy seltsam.. naja offenbar hat mein code manchmal den string in einzelne chars zerlegt. das sollte jetzt def. weg sein.

                    Kommentar


                      #12
                      Hallo,
                      ich habe mit einen solchen Feinstaubsensor gebaut.
                      Laut Beschreibung kann man die Daten wie folgt abgreifen:
                      Vom Sensor selbst können die Daten als JSON über die Adresse http://{ip-des-sensors}/data.json bzw. http://feinstaubsensor-{nodemcu-id}.local abgerufen werden. Die IP ist die IP des Sensors im lokalen Netz, nicht die 192.168.4.1, welche für die Erstkonfiguration genutzt wird. Die 2. Variante sollte unter Linux und MacOS normalerweise funktionieren. Für Windows muss evtl. noch eine Software installiert werden. Siehe dazu den Punkt ‚Zugriff auf den Sensor‘.
                      Das sieht dann so aus:
                      {"software_version": "NRZ-2017-100", "age":"5", "sensordatavalues":[{"value_type":"SDS_P1","value":"31.60"},{"value _ty pe":"SDS_P2","value":"10.43"},{"value_type":"sam pl es","value":"607825"},{"value_type":"min_micro", "v alue":"235"},{"value_type":"max_micro","value":"26 593"},{"value_type":"signal","value":"-57"}]}
                      In der Konfiguration der Firmware lässt sich dazu noch folgendes Einstellen:
                      Unbenannt.JPG

                      Lässt sich dies über die Webservices in shNG einlesen?
                      Danke für Eure Rückmeldung.
                      Michael

                      Kommentar


                        #13
                        Glaube nicht, aber mit ner logik auf jedenfall, da du ja nur den json zerlegen und deinen items zuweisen musst

                        Kommentar


                          #14
                          OK.
                          den Zugriff auf die Daten mit den Network Plugin?

                          Kommentar


                            #15
                            die webservices geben itemwerte zurueck und lassen diese setzen. man kann sie auch zu sets guppieren.mehr nicht.
                            damit kann man shng bspw sehr schoen von einer android app oder einer garmin uhr anbinden.

                            Irgendwelche externen json basierten apis kannst du mit dem requests modul anbinden. so wie ich das in zig plugins tue. bspw tankerkoenig oder odlinfo

                            das network plugin hilft dir da uebrigens auch nichts..

                            https://pypi.python.org/pypi/requests
                            Zuletzt geändert von psilo; 10.03.2018, 20:45.

                            Kommentar

                            Lädt...
                            X