Dimmersteuerung per openHAB
- oberp
- Autor
- Offline
- Senior Boarder
- Beiträge: 48
- Dank erhalten: 2
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:
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.
- simonjo
- Offline
- Gold Boarder
- Beiträge: 148
- Dank erhalten: 55
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
Bitte Anmelden oder Registrieren um der Konversation beizutreten.
- oberp
- Autor
- Offline
- Senior Boarder
- Beiträge: 48
- Dank erhalten: 2
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.
- oberp
- Autor
- Offline
- Senior Boarder
- Beiträge: 48
- Dank erhalten: 2
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.
- oberp
- Autor
- Offline
- Senior Boarder
- Beiträge: 48
- Dank erhalten: 2
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)
[xwrc]
adminkey=0x12345678
httpport=8080
[xicontrol.0]
remaddr=192.168.1.2
remport=6680
remmode=1
Ich starte xwrc von Hand:
xwrc.raspi -inifile ./xwrc.ini
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:
http://192.168.1.5:8080/
Hab' ich einen Denkfehler?
Gruß Torsten
Bitte Anmelden oder Registrieren um der Konversation beizutreten.
- simonjo
- Offline
- Gold Boarder
- Beiträge: 148
- Dank erhalten: 55
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.
- oberp
- Autor
- Offline
- Senior Boarder
- Beiträge: 48
- Dank erhalten: 2
givessudo iptables -L
[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 (
) undsudo service openhab stop
), bekomme ich im Firefox beisudo service lighttpd stop
als auch beihttp://192.168.1.5:8080
trotzdem ein "Verbindung fehlgeschlagen"http://192.168.1.5
Frage zu Funktion: xWRC hat einen Web-Server integriert, welcher die eingehenden Befehle konvertiert und zum STM schickt?
Schreibe ich in der ini
, bekomme ich im Browser einhttpport=8443
angezeigt...�P
Schalte ich das Debugging an (
), wird trotzdem nichts angezeigt...loglevel=0xFFFFFFFF
Vielen Dank für deine Hilfe...
Gruß Torsten
PS.:
zeigtnmap -sT 192.168.1.5
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.
- oberp
- Autor
- Offline
- Senior Boarder
- Beiträge: 48
- Dank erhalten: 2
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:
// 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
Bitte Anmelden oder Registrieren um der Konversation beizutreten.
- oberp
- Autor
- Offline
- Senior Boarder
- Beiträge: 48
- Dank erhalten: 2
Bei der Problemlösung über den internen Bus komme ich nicht weiter...
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
Laut meiner "iServer XML-RPC-API.pdf"-Anleitung müsste der Aufruf aberI, 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.!
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:
<?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");
?>
Bitte Anmelden oder Registrieren um der Konversation beizutreten.
- simonjo
- Offline
- Gold Boarder
- Beiträge: 148
- Dank erhalten: 55
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.
- oberp
- Autor
- Offline
- Senior Boarder
- Beiträge: 48
- Dank erhalten: 2
ok, I will try again
- 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
touch ~/xwrc/log/xwrc.log
sudo chmod 777 ~/xwrc/log/xwrc.log
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
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)
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
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
- sudo netstat -lptn|grep xwrc
gives no output
- edit xwrc.ini:
remark line "httpport= 8678"
- 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
- 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
Bitte Anmelden oder Registrieren um der Konversation beizutreten.
- Aktuelle Seite:
- Startseite
- Forum
- PHC-Forum
- Visualisierung
- Dimmersteuerung per openHAB