Wenn dies dein erster Besuch hier ist, lies bitte zuerst die Hilfe - Häufig gestellte Fragen durch. Du musst dich vermutlich registrieren, bevor du Beiträge verfassen kannst. Klicke oben auf 'Registrieren', um den Registrierungsprozess zu starten. Du kannst auch jetzt schon Beiträge lesen. Suche dir einfach das Forum aus, das dich am meisten interessiert.
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.
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.
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
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.
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.
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.
Wir verarbeiten personenbezogene Daten über die Nutzer unserer Website mithilfe von Cookies und anderen Technologien, um unsere Dienste bereitzustellen. Weitere Informationen findest Du in unserer Datenschutzerklärung.
Indem Du unten auf "ICH stimme zu" klickst, stimmst Du unserer Datenschutzerklärung und unseren persönlichen Datenverarbeitungs- und Cookie-Praktiken zu, wie darin beschrieben. Du erkennst außerdem an, dass dieses Forum möglicherweise außerhalb Deines Landes gehostet wird und bist damit einverstanden, dass Deine Daten in dem Land, in dem dieses Forum gehostet wird, gesammelt, gespeichert und verarbeitet werden.
Einen Kommentar schreiben: