Homematic-Kommandos

Begonnen von Tomato, 22 Januar 2016, 22:03:28

Vorheriges Thema - Nächstes Thema

Tomato

Hallo allerseits. Bitte tötet mich nicht gleich beim ersten Post, aber ich bräuchte mal Hilfe, wie ich FHEM "loswerde"... :)

Zu meinem Setup: Ich habe den USB-Stick (V2) an meine Synology gehängt und nach Anleitung den virtuellen Treiber installiert. Darauf gehe ich nun (Port 1234) von meinem Raspberry. Klappt alles soweit, in FHEM wird alles korrekt angezeigt und ich kann auch schalten.

Nun habe ich FHEM aber eigentlich nur installiert um möglichst einfach mal zu checken, ob die Konfiguration so funktioniert.

"Eigentlich" habe ich meine bisherigen Sachen (Webcamsteuerung, etc.) per Shell-Scripte selbst programmiert und mir eine HTML-Oberfläche exakt für meine Bedürfnisse erstellt.
Man kann nun einwerfen, dass das mit FHEM alles viel einfacher ist, und hat damit dann wohl auch Recht. Aber ich wills nun mal selber proggen :)

Nun würde ich die Homematic also auch gerne direkt von der Shell aus fernsteuern. Nur leider finde ich nirgends Infos, welche Kommandos es gibt, die ich abschicken könnte.

Gibt es irgendwo eine Beschreibung dazu? Kann man diese Info evtl. aus FHEM irgendwo rausziehen?

Danke schon mal

farion

Hi,

du willst FHEM Befehle geben oder die Befehle direkt selbst machen ohne FHEM.

Ersteres ist recht simple.

$ perl /opt/fhem/fhem.pl localhost:7072 "{cmd}"

Also z.B.

Lampe anschalten:
$ perl /opt/fhem/fhem.pl localhost:7072 "set WZ.Licht on"

Lampenstatus lesen:
$ perl /opt/fhem/fhem.pl localhost:7072 "get WZ.LichtSw1 param state"
on


Dazu musst du die Geräte etc. natürlich alle in FHEM angelegt haben.

Das verwende ich für meine Türanlage. Die kann HTTP-Request schicken, die bei mir ein Apache entgegennimmt und für die Anlage die korrekte Antwort generiert. Dann wird das Ganze in einen solchen Perl-Befehle umwandelt. Damit setzte ich dann ein dummy in FHEM und kann die Info weiterverarbeiten. Funktioniert wunderbar.

Eine andere Idee wäre vllt sowas hier: https://github.com/knowthelist/fhem-tablet-ui (Übrigens ein hervorragendes GUI-Projekt - wäre evtl. was für dich, da sehr gut anpassbar). Da werden die HTTP-Requests der FHEM web gui benutzt. Das könntest du in deinem Interface auch tun.

Falls du FHEM komplett ersetzten und nicht nur verstecken willst wird es kompliziert. Da musst du die Nachrichten alle selbst schicken und empfangen.
Ein Startpunkt wäre vllt. zu beobachten was passiert: http://www.fhemwiki.de/wiki/Homematic_Nachrichten_sniffen.
Eine andere Idee hier zu schauen FHEM/10_CUL_HM.pm

Das ist aber auf jeden Fall ein grösseres Projekt. An FHEM wird ja auch schon ne Weile gearbeitet :).

Gruss Farion
Fhem5.8@Raspi3|~70xHomematic|KM271|1Wire|DoorPi mit DoorPiBoard|GarageDoorSingleButton|Graphite

Tomato

Die erste Variante scheint mir sehr vielversprechend. Ob mein Script nun wget, telnet oder eben ein Perl-Script aufruft ist mir am Ende eigentlich wurscht ;)

Danke schon mal

farion

#3
Ich muss dazu sagen, dass es gefühlt ne Ecke länger dauert als die FHEM-Web-GUI Befehle zu verwenden wie es die Tablet UI tut.

Bei mir ist es so dass ich den Apache habe, der per PHP-exec das perl aufruft, was dann per lokalem Netzwerk FHEM was erzählt. Und davor ist noch der HTTP-Request von der Türanlage. Also bisschen von hinten durch die Brust ins Augen. Für meinen Anwendungsfall reicht das, aber wenn du alles darüber machen willst solltest du schauen dass du nicht so viel performance verlierst.

Wie gesagt, direkt aus HTML die FHEM-Befehle per JS an die WEB-GUI absetzten ist sauberer und deutlich schneller.

Ich kann das nur nicht machen weil meine Türanlage die HTTP-Antwort von FHEM nicht verträgt.
Fhem5.8@Raspi3|~70xHomematic|KM271|1Wire|DoorPi mit DoorPiBoard|GarageDoorSingleButton|Graphite

zap

#4
Natürlich kann man Homematic Befehle auch ohne FHEM einfach per CURL / WGET absetzen. Kann später mal ein Beispiel posten. Wenn es dringend ist, google mal nach Homematic, Script, do.exe, GetObject.

Oder auch nach Homematic, Script, tclrega.exe.

Do.exe funktioniert per HTtP-Get für einzelne Befehle, tclrega.exe kannst Du per HTTP-Post ein ganzes HM Script übergeben.

Voraussetzung ist allerdings, dass Du eine CCU hast !
2xCCU3 mit ca. 100 Aktoren, Sensoren
Entwicklung: FHEM auf Proxmox Debian VM
Produktiv inzwischen auf Home Assistant gewechselt.
Maintainer: HMCCU, (Fully, AndroidDB)

Tomato

Ich habs jetzt über FHEM per Get-request hinbekommen. Musste allerdings vorher CORS aktivieren, da meine Oberfläche auf einer anderen Maschine läuft als FHEM

Sieht auch ganz schick aus mit den Google Charts

https://goo.gl/photos/SoRD8dJtPGRidjBT8

@zap
Ich bin beim Googlen nach Homematic + Script immer bei FHEM gelandet :)

Wenn ich das richtig sehe, brauchen die verlinkten Beispiele immer zwingend ein CCU? Oder gegen die auch mit dem LANAdapter/USB-Stick?

Ok. Ausgerechnet den fetten Satz überlesen :)