Seite 1 von 3

#1 Openhab und Domiq läuft wunderbar

Verfasst: Do 2. Apr 2015, 13:56
von koboldo
Moin,
ich wollte Euch mal kurz ein paar Screenshot´s von meiner Openhab Visu zeigen :lol:
Das ist die erste Seite in der App, dort habe ich eine kleine Übersicht und bereits hier werden Summen gebildet und ich kann z.B. sehen ob irgendwo Licht an ist oder nicht...
Bild

Ich habe auch meine Squeezeboxen und meinen Denon Verstärker eingebunden und kann durch die Rules in Openhab z.B. die Squezzebox die mit dem Verstärker verbunden ist ausschalten, sobald ich am Verstärker z.B. von dem Eingang Mediaplayer auf TV wechsle....:thumbup:

Bild

Hier lasse ich mir anzeigen wann der Handtuchheizkörper morgens anspringt (Wecker), diesen stelle automatisch in dem ich den Gentle Alarm auf meinem Handy benutze...
Bild

Mit Openhab kann man auch die Daten Historisch speichern und solche kleinen Grafiken sind leicht erstellt :scared:
Bild

Hier noch mal eine kleine Raumübersicht vom Bad...(ups das lasse ich das Licht noch gar nicht anzeigen :blush: )
Bild

#2 RE: Openhab und Domiq läuft wunderbar

Verfasst: Do 2. Apr 2015, 14:12
von koboldo
Falls Interresse besteht wie man die Verbindung herstellt, einfach melden ;)
Bei mir läuft Openhab auf meinem NAS mit Openmediavault...

#3 RE: Openhab und Domiq läuft wunderbar

Verfasst: Do 2. Apr 2015, 14:25
von Penrose
Wow, das ist ja cool!!! :thumbup: Ich war schon immer an einem LCN-Binding für openHAB interessiert. Aktuell habe ich über die LinHK immerhin IRTrans, Dreambox, meine Denon-Receiver und was die LinHK mehr oder weniger out of the box anbietet eingebunden. Aber die Möglichkeit, derart viele verschiedene Systeme über die Rule-Engine intelligent zu koppeln, ist schon sehr reizvoll. Wirst du das Binding offiziell zur Verfügung stellen? Sehe ich das richtig, dass es sich um ein TCP-Binding handelt?

Thomas

#4 RE: Openhab und Domiq läuft wunderbar

Verfasst: Do 2. Apr 2015, 14:33
von koboldo
Moin Thomas,
es ist kein eigenes Binding, ich habe das vorhandene tcp-binding benutzt, hat nur ein wenig gedauert, das ich die richtigen Einstellungen dafür gefunden habe...

Hier noch mal die Hue Steuerung und die normalen Lichter (schön ist auch das ich damit meine LED (GU10) Lampen ordentlich dimmen kann, denn eigentlich dimmen diese nur in einem Bereich von 0-20%, aber in Openhab konnte ich den Slider anpassen :w00t:

Bild

Bild

#5 RE: Openhab und Domiq läuft wunderbar

Verfasst: Do 2. Apr 2015, 14:48
von Penrose

Code: Alles auswählen

es ist kein eigenes Binding, ich habe das vorhandene tcp-binding benutzt, hat nur ein wenig gedauert, das ich die richtigen Einstellungen dafür gefunden habe...

Aha, das dachte ich mir. Ich wäre sehr daran interessiert. Wirst du es irgendwo zur Verfügung stellen oder kannst du es mir zusenden?

Thomas

#6 RE: Openhab und Domiq läuft wunderbar

Verfasst: Sa 4. Apr 2015, 10:36
von mr_claus
Du hast dann quasi alle Dinge die Du abbilden möchtest einzeln eingetragen?

#7 RE: Openhab und Domiq läuft wunderbar

Verfasst: Di 7. Apr 2015, 10:42
von koboldo
Also, hier nun wie versprochen.....:w00t:

openhab.cfg

Code: Alles auswählen

################################# TCP - UDP Binding ###################################
#
# all parameters can be applied to both the TCP and UDP binding unless
# specified otherwise
 
# Port to listen for incoming connections
tcp:port=3000
 
# Cron-like string to reconnect remote ends, e.g for unstable connection or remote ends
tcp:reconnectron=0 0 0 * *
 
# Interval between reconnection attempts when recovering from a communication error,
# in seconds
tcp:retryinterval=5
 
# Queue data whilst recovering from a connection problem (TCP only)
tcp:queue=true
 
# Maximum buffer size whilst reading incoming data
tcp:buffersize=1024
 
# Share connections within the Item binding configurations
#tcp:itemsharedconnections=true
 
# Share connections between Item binding configurations
#tcp:bindingsharedconnections=true
 
# Share connections between inbound and outbound connections
#tcp:directionssharedconnections=true
 
# Allow masks in ip:port addressing, e.g. 192.168.0.1:* etc
tcp:addressmask=true
 
# Pre-amble that will be put in front of data being sent
#tcp:preamble=''
 
# Post-amble that will be appended to data being sent
#tcp:postamble=''
 
# Perform all write/read (send/receive) operations in a blocking mode, e.g. the binding
# will wait for a reply from the remote end after data has been sent
tcp:blocking=true
 
# timeout, in milliseconds, to wait for a reply when initiating a blocking write/read
# operation
tcp:timeout=3000
 
# Update the status of Items using the response received from the remote end (if the
# remote end sends replies to commands)
tcp:updatewithresponse=true
 
# Timeout - or 'refresh interval', in milliseconds, of the worker thread
tcp:refreshinterval=250
 
# Timeout, in milliseconds, to wait when "Selecting" IO channels ready for communication
#tcp:selecttimeout=1000
 
# Used character set
#tcp:charset=ASCII
 


Hier mal einige Items Einträge als Beispiel

domiq.items

Code: Alles auswählen

String domiq { tcp=">[[b][i]IP-DOMIQ[/i][/b]:4224:'REGEX((.*))']" }
Contact s_sofafenster "Wozi Fenster [%S]"  (g_fenster,g_mysql)
Dimmer l_wozi "Wozi"  (g_mysql,g_l_dg)
Rollershutter r_wozi "Wozi [%S]"  (g_rolladen,g_rolladeneg,g_mysql)
Number lux "Helligkeit [%.1f Lux]"  (gwettertemp,gwetter,g_mysql)
Number t_wozi "Wohnzimmer [%.1f °C]"  (g_mysql,g_wozi,gwettertemp,gtemp,g_t_wozi)
String t_wozi_min "- Min. Temp [%s]"
String t_wozi_max "- Max. Temp [%s]"


Dann benötigt man noch Rules zum einen um die Daten von der Domiq zu verarbeiten:

domiq.rules

Code: Alles auswählen

import org.openhab.core.library.types.*
import org.openhab.model.script.actions.*
import java.lang.*
 
rule "domiqs"
when
Item domiq received update
then
var txt = domiq.state.toString
var Integer anzahl = txt.split("\\s+").size
var String[] txtleer
txtleer = txt.split("\\s+")
var String[] txt_ergeb
 
for (i: 0 .. (anzahl - 1))
{
txt_ergeb = txtleer.get(i).split("=")
if (txt_ergeb.get(1) != ("?")) {
if (txt_ergeb.get(0) == ("LCN.value.0.9.r2")) t_wozi.postUpdate((new Double(txt_ergeb.get(1)) - 1000)/10) else
if (txt_ergeb.get(0) == ("VAR.KOBELKA.event.lux")) lux.postUpdate(txt_ergeb.get(1)) else
if (txtleer.get(i) == ("LCN.sensor.0.21.3=1")) s_sofafenster.postUpdate(CLOSED) else
if (txtleer.get(i) == ("LCN.sensor.0.21.3=0")) s_sofafenster.postUpdate(OPEN) else
if (txt_ergeb.get(0) == ("VAR.roll_position_rel.21.2")) r_sofafenster.postUpdate(txt_ergeb.get(1)) else
if (txt_ergeb.get(0) == ("LCN.output.0.55.1")) { var leddimm = new Integer(txt_ergeb.get(1)) * 5 l_wozi.postUpdate(leddimm) } else

if (txtleer.get(i) == ("VAR.hue.event.hue=1")) {
cSofaecke.sendCommand("80,100,57")
} else

if (txtleer.get(i) == ("VAR.hue.event.hue=0")) {
Sofaecke.sendCommand(OFF)
} else
 
end
 


Und zum anderen um Befehle an die Domiq zu senden:

domiqsenden.rules

Code: Alles auswählen

import org.openhab.core.library.types.*
import org.openhab.model.script.actions.*
import java.lang.*
 
rule "Dimmed Light FlurEG"
when
Item l_flureg received command
then
var Number percent = 0
var Number percentd = 0
if(l_flureg.state instanceof DecimalType){
percent = l_flureg.state as DecimalType
percentd = (l_flureg.state as DecimalType) / 5
percentd = Math::round(percentd.intValue())
}
if(receivedCommand==INCREASE) percent = percent + 2
if(receivedCommand==DECREASE) percent = percent - 2
if(receivedCommand==ON) percent = 100
if(receivedCommand==OFF) percent = 0
if(percent100) percent = 100
postUpdate(l_flureg, percent);
if (percent>0 && percent<100) {
sendCommand(domiq, "LCN.output.0.16.2=" + percentd + "\n")
sendCommand(domiq, "LCN.output.0.10.1=" + percentd + "\n")
}else{
sendCommand(domiq, "LCN.output.0.16.2=" + percent + "\n")
sendCommand(domiq, "LCN.output.0.10.1=" + percent + "\n")
}
end
 
rule "l_esstisch an"
when
Item l_esstisch received command ON
then
sendCommand(domiq, "LCN.output.0.9.1=100\n")
end
 
rule "l_esstisch aus"
when
Item l_esstisch received command OFF
then
sendCommand(domiq, "LCN.output.0.9.1=0\n")
end

rule "rolladen sofafenster"
when
Item r_sofafenster received command DOWN
then
sendCommand(domiq, "rolladen.wozi.klein=down\n")
end
 
rule "rolladen sofafenster hoch"
when
Item r_sofafenster received command UP
then
sendCommand(domiq, "rolladen.wozi.klein=up\n")
end
rule "rolladen sofafenster stop"
when
Item r_sofafenster received command STOP
then
sendCommand(domiq, "rolladen.wozi.klein=stop\n")
end

 rule "Min- and Max values Wozi"
when
Item t_wozi received update
then
var Number Min
var Number Max
var String tmp
var SimpleDateFormat df = new SimpleDateFormat( "HH:mm" )
 
if (t_wozi.state instanceof DecimalType) {
Min = (t_wozi.minimumSince(now.toDateMidnight, "mysql").state as DecimalType)
tmp = (Math::round(Min.floatValue*10.0)/10.0) + " °C (" + df.format(t_wozi.minimumSince(now.toDateMidnight, "mysql").timestamp) + " )"
postUpdate(t_wozi_min, tmp)
 
Max = t_wozi.maximumSince(now.toDateMidnight, "mysql").state as DecimalType
df = new SimpleDateFormat( "HH:mm" )
tmp = (Math::round(Max.floatValue*10.0)/10.0) + " °C (" + df.format(t_wozi.maximumSince(now.toDateMidnight, "mysql").timestamp) + ")"
postUpdate(t_wozi_max, tmp)
}
end


An der Domiq muss man nichts ändern, die plappert vor sich hin und teilt alles mit Openhab. Somit kann ich z.B. in der Domiq einfach eine Variable erfinden
und diese z.B. durch einen Taster setzen lassen, z.B. VAR.hue.event.hue=1 Da Openhab das mitbekommt kann ich darauf eine Rule anwenden und somit z.B.
eine Hue Lampe schalten s.o. oder den Denon AVR und die Squeezebox anschalten etc....

#8 RE: Openhab und Domiq läuft wunderbar

Verfasst: Di 7. Apr 2015, 10:44
von koboldo
mr_claus hat geschrieben:Du hast dann quasi alle Dinge die Du abbilden möchtest einzeln eingetragen?


Ja, man muss alles einzeln eintragen... aber das ist ja nur einmalig ;)

#9 RE: Openhab und Domiq läuft wunderbar

Verfasst: Di 7. Apr 2015, 11:06
von Beleuchtfix
Sieht schon stark aus. Zwischenfrage, gibt es bei Openhub auch Grundrisse / Bilder mit Steuerelementen?

Gruß
Florian

#10 RE: Openhab und Domiq läuft wunderbar

Verfasst: Di 7. Apr 2015, 11:25
von koboldo
Moin Florian,
habe ich mich noch nicht mit beschäftigt, aber man kann das wohl mit CometVisu machen:

Siehe: https://github.com/openhab/openhab/wiki/CometVisu
und http://knx-user-forum.de/forum/supportforen/openhab/36634-floorplan-darstellung?p=601301#post601301