Dimmersteuerung per openHAB

Mehr
08 Okt. 2018 13:58 #1 von oberp
Dimmersteuerung per openHAB wurde erstellt von oberp
Hallo an alle

Nochmals die Anfrage an alle openHAB-Progger:
Hat es jemand per OpenHAB in irgendeiner Form geschafft, die Dimmermodule zu steuern?
Und zwar egal, ob per rule, HTML, MQTT oder Exec.

Ein- und Ausschalten per Action-URL funktioniert:
Code:
http://192.168.0.5:80/postEvent.html?action=input&stm=0&mod=16&cha=0&evt=3

Aber wie kann ich einen Dimmerausgang auf einen bestimmten Dimmwert setzen?
In der Sitemap wird ein Slider angezeigt, aber wie kann ich den Dimmwert an die STM senden?

Items-, Sitemaps- oder rules-Beispiele wären toll.
Gruß Torsten

Bitte Anmelden oder Registrieren um der Konversation beizutreten.

Mehr
17 Dez. 2018 22:24 #2 von simonjo
simonjo antwortete auf Dimmersteuerung per openHAB
Hallo Torsten,

You could use xWRC to communicate with the STMv3, so you can use the structured HTTP commandinterface of xWRC to send commands to your dimmer like below:

http://<ip-address-of-xwrc>/?ccmd=dim.0.out0.set.<level>.<runtime>&terse

Where <level> = 0-255 and <runtime> = 1-160

I.e. setting your dimmer to level 60 in 2 seconds use these values:
http://<ip-address-of-xwrc>/?ccmd=dim.0.out0.set.60.2&terse
Folgende Benutzer bedankten sich: ansgar75

Bitte Anmelden oder Registrieren um der Konversation beizutreten.

Mehr
17 Dez. 2018 23:03 #3 von oberp
oberp antwortete auf Dimmersteuerung per openHAB
Hallo Jo
Danke für den Tipp. Ich werde am Wochenende die Kommunikation über xWRC versuchen, ich melde mich, soweit ich mehr weiß... :-)
Danke und Grüße, Torsten

Bitte Anmelden oder Registrieren um der Konversation beizutreten.

Mehr
07 Jan. 2019 17:00 #4 von oberp
oberp antwortete auf Dimmersteuerung per openHAB
mmmhhh...
Bin immer noch mit dem OpenHAB-Update 2.4 (MQTT-Binding) beschäftigt, xWRC muss noch etwas warten :-)

Bitte Anmelden oder Registrieren um der Konversation beizutreten.

Mehr
09 Jan. 2019 16:43 #5 von oberp
oberp antwortete auf Dimmersteuerung per openHAB
Hallo Jo

Heute hab' ich etwas mit xWRC experimentiert :-)
Leider ohne Erfolg...

Meine STM ist eine V3, IP-Adresse ist 192.168.1.2
xwrc ist auf einem raspi installiert, IP-Adresse ist 192.168.1.5

Die ini-Datei sieht so aus (gekürzt)
Code:
[xwrc] adminkey=0x12345678 httpport=8080 [xicontrol.0] remaddr=192.168.1.2 remport=6680 remmode=1

Ich starte xwrc von Hand:
Code:
xwrc.raspi -inifile ./xwrc.ini
folgende Ausgabe:
Code:
xWRC (Linux/RbPI) -- v3.3.1.0 -- Sep 18 2016 ----------- webInterface for PHC - =============================================================================== Running in demo mode Press CTRL+C to terminate xWRC

Wenn ich im Browser die folgende Zeile eingebe:
Code:
http://192.168.1.5:8080/
gibt es aber nur ein "Keine Verbindung zum Server"

Hab' ich einen Denkfehler?
Gruß Torsten

Bitte Anmelden oder Registrieren um der Konversation beizutreten.

Mehr
09 Jan. 2019 20:46 #6 von simonjo
simonjo antwortete auf Dimmersteuerung per openHAB
Thorsten,

Did you configure your firewall? this might be the reason.

First check existing rules by using: sudo iptables -L

This might show an empty ruleset like below.
>>>
Chain INPUT (policy ACCEPT)
target prot opt source destination

Chain FORWARD (policy ACCEPT)
target prot opt source destination

Chain OUTPUT (policy ACCEPT)
target prot opt source destination
<<<

In this case you need to allow tcp port 8080 in the firewall using: sudo iptables -A INPUT -p tcp --dport 8080 -j ACCEPT

Then try again


Jo

Bitte Anmelden oder Registrieren um der Konversation beizutreten.

Mehr
10 Jan. 2019 08:52 #7 von oberp
oberp antwortete auf Dimmersteuerung per openHAB
Hallo Jo

sudo iptables -L

gives

[sudo] Passwort für openhabian:
Chain INPUT (policy ACCEPT)
target prot opt source destination

Chain FORWARD (policy ACCEPT)
target prot opt source destination

Chain OUTPUT (policy ACCEPT)
target prot opt source destination


after

sudo iptables -A INPUT -p tcp --dport 8080 -j ACCEPT


i get

Chain INPUT (policy ACCEPT)
target prot opt source destination
ACCEPT tcp -- anywhere anywhere tcp dpt:http-alt

Chain FORWARD (policy ACCEPT)
target prot opt source destination

Chain OUTPUT (policy ACCEPT)
target prot opt source destination


aber es funktioniert nicht.... :-(
Dazu muss ich vielleicht sagen, dass auf dem raspi OpenHAB und Lighttp installiert sind. Wenn ich beides abschalte (

sudo service openhab stop

) und

sudo service lighttpd stop

), bekomme ich im Firefox bei

http://192.168.1.5:8080

als auch bei

http://192.168.1.5

trotzdem ein "Verbindung fehlgeschlagen"

Frage zu Funktion: xWRC hat einen Web-Server integriert, welcher die eingehenden Befehle konvertiert und zum STM schickt?
Schreibe ich in der ini

httpport=8443

, bekomme ich im Browser ein

�P

angezeigt... :-)
Schalte ich das Debugging an (

loglevel=0xFFFFFFFF

), wird trotzdem nichts angezeigt...

Vielen Dank für deine Hilfe... :-)
Gruß Torsten

PS.:

nmap -sT 192.168.1.5

zeigt

PORT STATE SERVICE
22/tcp open ssh
80/tcp open http
139/tcp open netbios-ssn
445/tcp open microsoft-ds
2001/tcp open dc
2002/tcp open globe
3306/tcp open mysql
8080/tcp open http-proxy
8443/tcp open https-alt
9001/tcp open tor-orport

Bitte Anmelden oder Registrieren um der Konversation beizutreten.

Mehr
14 März 2019 08:49 - 14 März 2019 08:53 #8 von oberp
oberp antwortete auf Dimmersteuerung per openHAB
Hallo PHC-ler

Bezgl. meiner Dimmersteuerung komme ich nicht wirklich weiter. Zur Zeit versuche ich, die Dimmer direkt anzusteuern. Hilfreich ist hier (dachte ich) das PHC-Protokoll: wiki.phc-forum.de/index.php/PHC-Protokoll_des_internen_Bus . Die Umsetzung nach PHP einschl. CRC-Berechnung hat auch soweit geklappt. Was aber fehlt ist die Art und Weise, wie ich den erzeugten Hex-Code zur STM übermitteln kann:
Code:
// beispiel-daten aus dem Wiki $arr[0]= 0x1d; // adresse des moduls $arr[1]= 0x01; // toggle-Bit und message-länge $arr[2]= 0x32; // channel und cmd // CRC berechnen (hier: 0x6fb7) $crc= phc_crc($arr, sizeof($arr)); $arr[3]= ($crc & 0xff); $arr[4]= (($crc & 0xff00) >> 8); // url erzeugen (STM v3) $server = "192.168.1.2"; $port = "6680"; $url= "http://" . $server . ":" . $port . "?"; // Hex-Code erzeugen (hier: 1d01326fb7) for($i= 0; $i < sizeof($arr); $i++) $url= $url . sprintf("%02x", $arr[$i]); // url per curl zur STM schicken $ch= curl_init(); curl_setopt($ch, CURLOPT_URL, $url); curl_exec($ch); curl_close($ch);

Die erzeugte URL sieht dann so aus: "http://192.168.1.2:6680?1d01326fb7", wobei der Hex-Code dem Wiki-Beispiel entspricht. Wenn ich die Daten (Moduladresse, Kanal und Befehl usw.) meiner PHC-Installation anpasse und mittels "curl" zur Ausführung an die STM schicke, passiert aber nichts. Wahrscheinlich stimmt das Format der erzeugten URL nicht, oder?

Wer hat Erfahrung mit der direkten Ansteuerung der Ausgangs- bzw. Dimmermodule?
Gruß Torsten
Letzte Änderung: 14 März 2019 08:53 von oberp.

Bitte Anmelden oder Registrieren um der Konversation beizutreten.

Mehr
18 Juni 2019 12:05 - 18 Juni 2019 14:29 #9 von oberp
oberp antwortete auf Dimmersteuerung per openHAB
Hallo
Bei der Problemlösung über den internen Bus komme ich nicht weiter... :unsure:

Jetzt versuche ich, mittels RPC die STM zu steuern. Aber auch per RPC
komme ich nicht weiter... Ich habe zwei verschiedene PHP-Libraries ausprobiert
(xmlrpc.inc und xmlrpcclientclass.php).
Wenn ich versuche, die Methode "getVersion()" in der STM aufzurufen, bekomme ich
nur eine Fehlermeldung. Im Log-File der STM steht dann

I, 18.06.2019 11:45:02, XML-RPC, Processing function: getVersion
E, 18.06.2019 11:45:02, XML RPC SW TCP Server: getVersion failed!
E, 18.06.2019 11:45:02, XML RPC Request failed. Fault response: Function getVersion not found in class service.stm.!

Laut meiner "iServer XML-RPC-API.pdf"-Anleitung müsste der Aufruf aber
funktionieren. Ausprobiert habe ich die Ports 6679, 6680 und 6681.

Wer hat schonmal per RPC die STM gesteuert?
Gruß Torsten

Tante Edith:
Das "PHP-Programm" zum Nachvollziehen:
Code:
<?php include("./xmlrpcclient.class.php"); $client= new XMLRPCClient("http://192.168.1.2:6680"); print("client opened\n"); $rslt= $client->getVersion(); print(" result= {$rslt}\n"); $client->close(); print("client closed\n"); ?>
Letzte Änderung: 18 Juni 2019 14:29 von oberp.

Bitte Anmelden oder Registrieren um der Konversation beizutreten.

Mehr
19 Juni 2019 13:13 #10 von simonjo
simonjo antwortete auf Dimmersteuerung per openHAB
Thorsten,

1) the PHP libraries may fail because the STMv3 does not send correct HTTP responses, most libs fail when parsing that.

2) look again at xWRC as this uses XMLRPC to talk with STMv3. you need to make sure that the HTTP server side listens on a free port (i.e. 80, 8000, 8080) using the --locport parm. choose a free port, so not in use by another application, for you 8000 would be good

then select --remmode 1 and set --remaddr 192.168.1.2

start xwrc with --loglevel 0xffffffff so it will generate a logfile that can be analysed in case of problems

Bitte Anmelden oder Registrieren um der Konversation beizutreten.

Mehr
19 Juni 2019 19:29 - 19 Juni 2019 19:31 #11 von oberp
oberp antwortete auf Dimmersteuerung per openHAB
Hallo Jo,

ok, I will try again :)
Code:
- edit ini-File: httpport=8000 loglevel=0xFFFFFFFF logpfx=/home/openhabian/xwrc/log/xwrc.log remaddr=192.168.1.2 remport=6680 remmode=1

- create log-file
Code:
touch ~/xwrc/log/xwrc.log sudo chmod 777 ~/xwrc/log/xwrc.log
- start xWRC.raspi
Code:
cd ~/xwrc ./bin/xwrc.raspi xWRC (Linux/RbPI) -- v3.3.0.9 -- Dec 8 2015 ----------- webInterface for PHC - =============================================================================== Running in demo mode Press CTRL+C to terminate xWRC
- check log-file:
Code:
tail -f -n200 ~/xwrc/log/xwrc.log (give me an empty log-file) ls -la ~/xwrc/log/xwrc.log (-rwxrwxrwx 1 openhabian openhabian 0 Jun 19 17:06 /home/openhabian/xwrc/log/xwrc.log)
- start firefox with url= "http://http://192.168.1.5:8000/default.html"
Code:
gives "Firefox kann keine Verbindung zu dem Server unter 192.168.1.5:8000 aufbauen." no entries in log-file

Infos:
- sudo nmap -sS -O 192.168.1.5
Code:
Starting Nmap 7.40 ( https://nmap.org ) at 2019-06-19 18:32 CEST Nmap scan report for openhab (192.168.1.5) Host is up (0.000068s latency). Not shown: 990 closed ports PORT STATE SERVICE 22/tcp open ssh 80/tcp open http 139/tcp open netbios-ssn 445/tcp open microsoft-ds 2001/tcp open dc 2002/tcp open globe 3306/tcp open mysql 8080/tcp open http-proxy 8443/tcp open https-alt 9001/tcp open tor-orport Device type: general purpose Running: Linux 3.X OS CPE: cpe:/o:linux:linux_kernel:3 OS details: Linux 3.7 - 3.10 Network Distance: 0 hops
Code:
- sudo netstat -lptn|grep xwrc gives no output
Code:
- edit xwrc.ini: remark line "httpport= 8678"
Code:
- start xwrc.raspi with parameter ~/xwrc/bin/xwrc.raspi -httpport 8678 Aktive Internetverbindungen (Nur Server) Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 642/sshd tcp 0 0 0.0.0.0:1883 0.0.0.0:* LISTEN 427/mosquitto tcp 0 0 0.0.0.0:445 0.0.0.0:* LISTEN 1010/smbd tcp 0 0 0.0.0.0:8678 0.0.0.0:* LISTEN 4632/./bin/xwrc.ras tcp 0 0 0.0.0.0:9001 0.0.0.0:* LISTEN 556/node tcp 0 0 0.0.0.0:3306 0.0.0.0:* LISTEN 725/mysqld tcp 0 0 0.0.0.0:139 0.0.0.0:* LISTEN 1010/smbd tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 730/lighttpd tcp6 0 0 :::2001 :::* LISTEN 752/homegear tcp6 0 0 :::2002 :::* LISTEN 752/homegear tcp6 0 0 :::22 :::* LISTEN 642/sshd tcp6 0 0 :::8443 :::* LISTEN 555/java tcp6 0 0 :::1883 :::* LISTEN 427/mosquitto tcp6 0 0 :::445 :::* LISTEN 1010/smbd tcp6 0 0 127.0.0.1:41507 :::* LISTEN 555/java tcp6 0 0 127.0.0.1:8101 :::* LISTEN 555/java tcp6 0 0 192.168.1.5:9126 :::* LISTEN 555/java tcp6 0 0 :::139 :::* LISTEN 1010/smbd tcp6 0 0 :::5007 :::* LISTEN 555/java tcp6 0 0 :::8080 :::* LISTEN 555/java tcp6 0 0 ::1:2000 :::* LISTEN 752/homegear tcp6 0 0 :::80 :::* LISTEN 730/lighttpd
Code:
- start firefox with url= "http://http://192.168.1.5:8678/default.html" gives "Access Error: Site or Page Not Found Cannot open URL" no entries in log-file

Thanks for you help
Torsten
Letzte Änderung: 19 Juni 2019 19:31 von oberp.

Bitte Anmelden oder Registrieren um der Konversation beizutreten.

Ladezeit der Seite: 0.650 Sekunden