Ankündigung

Einklappen
Keine Ankündigung bisher.

Werte von der Kommandozeile auslesen?

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

    Werte von der Kommandozeile auslesen?

    Hallo,

    wie bekomme ich es hin das ich Items direkt aus der Kommandozeile abfragen kann ohne diese umständlich in ein File schreiben und dieses in die Logic einhängen zu müssen? Ganz zu schweigen vom ständigen Starten und Stoppen der sh.py.

    siehe post von henfri weiter oben:

    Code:
    >>> eval("sh.Daten.Keller_hum_abs()-[URL="http://redaktion.knx-user-forum.de/lexikon/sh/"]sh[/URL].Daten.Aussen_hum_abs()") 2.6337537869822132 >>> eval( "sh.Daten.AbstellKeller_hum_abs()-[URL="http://redaktion.knx-user-forum.de/lexikon/sh/"]sh[/URL].Daten.Aussen_hum_abs()") 0.63373369367699439

    #2
    Startparameter -i

    Gesendet von meinem LT26i mit Tapatalk 4

    Kommentar


      #3
      Hallo Mario,

      Zitat von bolzano Beitrag anzeigen
      wie bekomme ich es hin das ich Items direkt aus der Kommandozeile abfragen
      da kann ich Dir das CLI Plugin empfehlen.

      Bis bald

      Marcus

      P.S. Thread kapern ist blöd. Deswegen erzeuge ich einen eigenen Thread dafür.

      Kommentar


        #4
        Geht das auch als Einzeiler für ein bestimmtes item ? Geht doch bestimmt über socat oder ähnliches wenn CLI aktiv ist - oder? Da steh ich grad aufm Schlauch.
        Umgezogen? Ja! ... Fertig? Nein!
        Baustelle 2.0 !

        Kommentar


          #5
          socat nicht. Telnet scripten müsste klappen.

          Bis bald

          Marcus

          Kommentar


            #6
            Hi,

            Telnet habe ich mir schon angesehen. Aber da geht nicht alles oder?
            Konkret: Eine sqlite Abfrage im Stiele von outside.temperature.db('min', '1d')!?

            henfri:
            Startparameter -i
            für sh.py war ein Scherz oder? Zumindest gibt es den bei mir nicht.

            Kommentar


              #7
              Zitat von bolzano Beitrag anzeigen
              für sh.py war ein Scherz oder? Zumindest gibt es den bei mir nicht.
              den gibt es bisher nur in der aktuellen Entwicklerversion. Damit startet man eine Interaktive Session. Das ist an dieser Stelle aber nicht das richtige für Dich.

              Du kannst Dir ein Plugin schreiben das alle Anfragen über ein eval auflöst und das Resultat zurück schickt.

              Code:
              echo "sh.meinitem()" | netcat smarthome.local 2525
              Das ist aber aus Sicherheitssicht 'lustig'.

              Bis bald

              Marcus

              Kommentar


                #8
                Hallo Marcus,

                Kann man den interaktiven Modus irgendwie ins CLI einbauen?
                Umgezogen? Ja! ... Fertig? Nein!
                Baustelle 2.0 !

                Kommentar


                  #9
                  Hallo Mirko,

                  Zitat von JuMi2006 Beitrag anzeigen
                  Kann man den interaktiven Modus irgendwie ins CLI einbauen?
                  man könnte
                  eval sh.bla.blub()
                  hinschicken und das auswerten lassen. Das müsste man allerdings zeitlich entkoppeln bzw in einen eigenen Thread auslagern um den Netzwerkstack von SH.py nicht lahmlegen zu können.

                  Generell sehe ich in dem Bereich nicht so den Handlungsbedarf. Wenn man etwas debuggen möchte geht man besser über smarthome.py -i.
                  Wenn man Werte auslesen möchte über cli. z.B.

                  btw. gerade mal damit gespielt.

                  Code:
                  $ echo -e "ls technik.smarthome.memory\r\n" | netcat localhost 2323 
                  SmartHome.py v0.9-280-g513919d+
                  Enter 'help' for a list of available commands.
                  > Items:
                  ======
                  technik.smarthome.memory = 25436160
                  Bis bald

                  Marcus

                  Kommentar


                    #10
                    Hallo,

                    warum ist meine Antwort nicht richtig?

                    Ich verstehe nicht, welche Frage ihr beantwortet?!

                    Gruß,
                    Hendrik

                    Kommentar


                      #11
                      Hallo Hendrik,

                      Zitat von henfri Beitrag anzeigen
                      warum ist meine Antwort nicht richtig?
                      Deine Antwort ist richtig.
                      Um das zu nutzen muss allerdings die Shell-Session permanent offen sein (z.B. mit 'screen').
                      Ich denke nur es ist nicht das Richtige. Der TE wollte, meiner Meinung nach, mehr eine Kommandozeilen-API um Werte abzufragen. Das geht mit -i nicht so einfach.

                      Bis bald

                      Marcus

                      Kommentar


                        #12
                        @Marcus:
                        Mir hatten die \r\n gefehlt beim kurzen Test. So ein Plugin wäre noch was für meine Liste .

                        @henfri:
                        develop vs. master ?
                        Umgezogen? Ja! ... Fertig? Nein!
                        Baustelle 2.0 !

                        Kommentar


                          #13
                          Zitat von bolzano Beitrag anzeigen
                          Hallo,

                          wie bekomme ich es hin das ich Items direkt aus der Kommandozeile abfragen kann ohne diese umständlich in ein File schreiben und dieses in die Logic einhängen zu müssen?
                          Du könntest die Visu-Schnittstelle (websockets) nutzen. Das Protokoll ist zwar nicht dokumentiert, aber z.B. mit Firebug leicht zu ermitteln.
                          Das Protokoll dann in ein Shellskript verpacken, und fertig ist die Abfrage.

                          Alternativ kannst du auch dafür sorgen, dass alle interessierenden Werte auf dem Bus liegen und sie über die eibd-Tools (groupread) auslesen.

                          Max

                          Kommentar

                          Lädt...
                          X