Code Monkey home page Code Monkey logo

hmcon's Introduction

Hmcon

Hinweis: dieses Projekt wurde seit geraumer Zeit nicht mehr weiterentwickelt, ich rate davon ab es zu nutzen. Mögliche Alternativen siehe hier: https://github.com/hobbyquaker/awesome-homematic#ccu-alternatives

Homematic Funk-/Wired-Schnittstellen-Software

architecture

Hmcon dient als Schnittstelle zwischen Smart Home Software (wie z.B. hm2mqtt/mqtt-smarthome, ioBroker oder IP-Symcon) und Homematic Funk- und Wired-Geräten. Hierfür kommen die Schnittstellenprozesse "rfd" und "hs485d" zum Einsatz, die eQ-3 als Teil der OCCU in Binärform unter der "HMSL" Lizenz zur Verfügung stellt. Auf die Logikschicht "ReGa" und das HomeMatic WebUI wird bewusst verzichtet, Hmcon nutzt den Homematic Manager als Weboberfläche zur Verwaltung von Geräten und Direktverknüpfungen.

Installation

Voraussetzungen

Bisher auf folgenden Betriebssystemen getestet:

  • Debian Wheezy (armhf)
  • Debian Jessie (armhf)
  • Ubuntu 14.04 (amd64)

Um Hmcon auf einem 64Bit Betriebssystem auszuführen siehe https://www.thomas-krenn.com/de/wiki/Debian_7_32bit_Libraries oder http://askubuntu.com/questions/454253/how-to-run-32-bit-app-in-ubuntu-64-bit.

Hmcon benötigt (falls man den Homematic Manager nutzen will) eine Nodejs Installation: Empfohlene Vorgehensweise:

  • Auf aktuellen Raspberrys (Pi2/3) und auf x86/amd64 Plattformen kann das offizielle Repository von nodesource.com genutzt werden:
curl -sL https://deb.nodesource.com/setup_4.x | sudo -E bash -
sudo apt-get install -y nodejs build-essential
wget http://node-arm.herokuapp.com/node_latest_armhf.deb
sudo dpkg -i node_latest_armhf.deb
  • Ein weiterer komfortabler Weg Nodejs zu installieren ist auch das Tool n - besonders zu empfehlen wenn man (gleichzeitig) mit unterschiedlichen Nodejs Versionen arbeiten muss.

Installation von Hmcon

Hmcon wird mit einem interaktiven Shell-Script installiert, dass die benötigten Software-Komponenten herunterlädt sowie Konfigurationsdateien und Startscripte anlegt.

wget https://raw.githubusercontent.com/hobbyquaker/hmcon/master/hmcon-setup.sh -O hmcon-setup.sh
sudo chmod a+x hmcon-setup.sh
sudo ./hmcon-setup.sh

Updates können ebenfalls mit hmcon-setup.sh durchgeführt werden.

Migration von einer CCU2

Ein Tool um CCU2-Backups in Hmcon einzuspielen steht hier zur Verfügung: https://github.com/hobbyquaker/hmcon-restore

Lizenzen

hmcon-setup.sh

MIT

Homematic Manager

Copyright (c) 2014, 2015 Anli, Hobbyquaker

CC BY-NC-SA 4.0

OCCU

eQ-3 HMSL

hmcon's People

Contributors

hobbyquaker avatar homoran avatar pgollor avatar ploebb avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

hmcon's Issues

hs485d support

config erzeugen, erzeugung hm-manager config anpassen und startscript anlegen.

Bestimmte OCCU Version

hmcon sollte eine bestimmte OCCU Version nutzen (bzw ein bestimmten Commit aus dem OCCU Repo). Wenn OCCU update erfolgt muss dann neue hmcon-Version erstellt werden.

Git package needed

Habe es größenwahnsinnig mit anderer Distro (gentoo auf bananapi) getestet.
Da muss noch git installiert werden

da gibt es außerdem kein apt-get.

alle anderen issues ebenfalls

Zugriff auf gpio funktioniert nicht bei rfd start bei boot

wenn rfd beim booten gestartet wird meldet er
<Error> CCU2CommController::init(): Init failed. Cannot reset coprocessor. (Hint: Cannot write reset)
nach /etc/init.d/rfd restart funktioniert es dann. Vermute mal der startet zu früh (=vor udev?)

hm-es-pmsw1-pl wird nicht erkannt

Das oben genannte Gerät wird nicht erkannt bzw es wird immer noch einem geänderten AES Key gefragt (hm-konfigurator) obwohl keiner gesetzt ist. Ich benutze einen hm-cfg-usb2 der mit hmcon wunderbar funktioniert. Schliesse ich diesen direkt an meinen normalen rechner an wird der Aktor einwandfrei erkannt. Wenn Logs oder Andere weitere angaben benötigt werden bitte anschreiben.

HmIP Support

crRFD statt RFD, neue Config-Files, multimacd, tty-Treiber, jvm, hmipserver.jar, ...

Nicht-interaktiver Modus für Standard-Setup

Raspbian Jessie, HM-MOD-RPI-PCB, rfd, hm-manager, kein hs485d - das ist denke ich das am häufigsten anzutreffende Setup, sollte mit einer Command-Line Option ohne weitere Rückfragen installiert werden können.

Bei Update fliegt der GPIO-export-Teil aus dem Startscript von rfd

weil der String "SetupGPIO" nicht angelegt wird, wenn bei "Keep existing rfd.conf" mit Y (Standard) geantwortet wird.

Bei "Install Startscript for rfd" mit Y wird das Startscript erneut geschrieben, aber eben ohne den "SetupGPIO"-Teil.

Lösungsvorschlag: beim Startscript schreiben die rdf.conf auf HM-MOD-RPI-PCB prüfen und dort erst den "SetupGPIO"-String befüllen.

Bei Update wird die hm-manager PORT-Variable nicht befüllt

Wenn am Schluss HM-Manager gestartet wird steht der Port nicht in der Ausgabe "listening on ip:port"
(nur ne kosmetische Sache)

Lösung: entweder Port aus der conf lesen oder die Ausgabe weglassen.
Oder einfach so lassen ;-)
Oder die Ausgabe vom hm-manager-Start-script machen lassen?

rfd Dienst startet nicht (HM-LGW-O-TW-W-EU)

Mein rfd Dienst startet nicht richtig.
Wenn ich ihn starte dann bricht er nach knapp 1s ab.

In der Log steht nichts drinnen, auch wenn ich den Log Level auf 0 setze.

Das ist meine Config:

Listen Port = 2001
Log Destination = File
Log Filename = /opt/hmcon/var/log/rfd.log
Log Identifier = rfd
Log Level = 1
Persist Keys = 1
# PID File = /opt/hmcon/var/rfd/rfd.pid
# UDS File = /opt/hmcon/var/rfd/socket_rfd
Device Description Dir = /opt/hmcon/firmware/rftypes
Device Files Dir = /opt/hmcon/var/rfd/devices
Key File = /opt/hmcon/var/rfd/keys
Address File = /opt/hmcon/etc/rfd/ids
Firmware Dir = /opt/hmcon/firmware
User Firmware Dir = /opt/hmcon/var/firmware
XmlRpcHandlersFile = /opt/hmcon/var/RFD.handlers
Replacemap File = /opt/hmcon/firmware/rftypes/replaceMap/rfReplaceMap.xml
[Interface 0]
Type = HMLGW2
Description = HM-LGW-O-TW-W-EU
Serial Number = MEQadasdasd
Encryption Key = asdasdasd

Und das ist meine Log

2016/04/11 20:25:26.076 <Info> BidCoS-Service started
2016/04/11 20:25:26.079 <Info> XmlRpc Server is listening on TCP port 2001
2016/04/11 20:25:28.091 <Info> Found HomeMatic Lan Gateway with IP Address 10.0.50.67

Das wars, mehr sieht man da nicht.

backup/restore

Node.js Restore Script soll CCU2-Backups einspielen können und dabei die Regadom parsen und Geräte-/Kanalnamen setzen.

Group "gpio" doesn't exist -> rfd can't write reset-pin of HM-MOD-RPI-PCB

When I installed hmcon, adding the user hmcon to group "gpio" failed, because there is no such group on my Raspberry Pi (RPI2B, Raspbian jessie).
Therefore the init of rdf fails because it can't write to the gpio-value file (no permission).
Also: this file is owned by user root, group root, so adding hmcon to the group "gpio" wouldn't solve this.

Google only brought up the tool gpio-admin in regards to the gpio-group. Do I have to install it?
If so, it would be nice, to add it to the dependencies/install it with the install-script.

Or is there another explanation for this issue?

Thanks,
Jonas

SetInterfaceClock

Da mit der Zeit die Uhrzeit in den Thermostaten wegdriftet, sollte bei der Installation ein cronjob erzeugt werden, der regelmäßig eine Synchronisation mit der Systemzeit herstellt. Befehl:
/opt/hmcon/bin/SetInterfaceClock 127.0.0.1:2001
für den rfd.

How to use with OpenHAB

It seems that OpenHAB uses TclRegaScript for its RPC calls (see https://github.com/openhab/openhab/blob/master/bundles/binding/org.openhab.binding.homematic/src/main/java/org/openhab/binding/homematic/internal/communicator/client/CcuClient.java)

I'm using the Raspberry Pi module attached to GPIO. The HomeMatic web interface works, and I can control my devices with that.

There is some communication, because in the log I can see the Device ID of the Raspberry Pi CCU interface

2016-04-05 22:07:24.058 [INFO ] [.b.h.i.c.HomematicCommunicator] - Homematic ServerId[name=CCU,version=?,address=MEQ1...]
2016-04-05 22:07:24.071 [INFO ] [o.o.b.h.i.c.client.CcuClient  ] - Starting CcuClient
2016-04-05 22:07:24.204 [INFO ] [b.h.i.communicator.StateHolder] - Loading Homematic datapoints
2016-04-05 22:07:24.384 [ERROR] [.b.h.i.c.HomematicCommunicator] - Could not start Homematic communicator: Connection refused
org.openhab.binding.homematic.internal.communicator.client.HomematicClientException: Connection refused
    at org.openhab.binding.homematic.internal.communicator.client.CcuClient.sendScript(CcuClient.java:322) ~[bundlefile:na]
    at org.openhab.binding.homematic.internal.communicator.client.CcuClient.sendScriptByName(CcuClient.java:254) ~[bundlefile:na]
    at org.openhab.binding.homematic.internal.communicator.client.CcuClient.iterateAllDatapoints(CcuClient.java:126) ~[bundlefile:na]
    at org.openhab.binding.homematic.internal.communicator.StateHolder.loadDatapoints(StateHolder.java:84) ~[bundlefile:na]
    at org.openhab.binding.homematic.internal.communicator.HomematicCommunicator.start(HomematicCommunicator.java:93) ~[bundlefile:na]
    at org.openhab.binding.homematic.internal.bus.HomematicBinding.updated(HomematicBinding.java:95) [bundlefile:na]

Is there a way to make your installer work with OpenHAB and its HomeMatic binding?

rfd terminiert mit std::bad_alloc

hmcon auf RPI3/Jessie mit HM-CFG-LAN f/w 0.965,

rfd startet, funktioniert aber nicht (hmconfig hängt mit "lade Daten") und fällt immer nach ~ 1 Minute wieder aus.
Auch beim Start im Vordergrund gibt es reproduzierbar dieses Ausgabe:


root@raspberrypi:~# sudo -u hmcon /opt/hmcon/bin/rfd -c -f /opt/hmcon/etc/rfd.conf
2017/01/28 09:57:08.317 BidCoS-Service started
2017/01/28 09:57:08.318 XmlRpc Server is listening on TCP port 2001
2017/01/28 09:57:08.320 Default interface is now GEQ0208083
2017/01/28 09:57:08.320 Current AES key=0, previous AES key=0
2017/01/28 09:57:10.452 Connected to Lan Interface GEQ0208083 at 10.10.10.48
2017/01/28 09:57:10.452 Event: GEQ0208083.CONNECTED=true
2017/01/28 09:57:18.467 GEQ0208083 RX: HHM-LAN-IF,03C5,GEQ0208083,12FD7D,12FD7D,00013506,0000,00

2017/01/28 09:57:28.583 GEQ0208083 RX: HHM-LAN-IF,03C5,GEQ0208083,12FD7D,12FD7D,00015C8B,0000,00

2017/01/28 09:57:39.270 GEQ0208083 RX: HHM-LAN-IF,03C5,GEQ0208083,12FD7D,12FD7D,0001864C,0000,00

2017/01/28 09:57:49.805 GEQ0208083 RX: HHM-LAN-IF,03C5,GEQ0208083,12FD7D,12FD7D,0001AF74,0000,00

2017/01/28 09:58:00.589 GEQ0208083 RX: HHM-LAN-IF,03C5,GEQ0208083,12FD7D,12FD7D,0001D996,0000,00

2017/01/28 09:58:11.031 GEQ0208083 RX: HHM-LAN-IF,03C5,GEQ0208083,12FD7D,12FD7D,00020261,0000,00

2017/01/28 09:58:21.199 GEQ0208083 RX: HHM-LAN-IF,03C5,GEQ0208083,12FD7D,12FD7D,00022A1A,0000,00

terminate called after throwing an instance of 'std::bad_alloc'
what(): std::bad_alloc
root@raspberrypi:~#


Konfiguration:

root@raspberrypi:/opt/hmcon/etc# cat rfd.conf
Listen Port = 2001
Log Destination = File
Log Filename = /opt/hmcon/var/log/rfd.log
Log Identifier = rfd
Log Level = 1
Persist Keys = 1
Device Description Dir = /opt/hmcon/firmware/rftypes
Device Files Dir = /opt/hmcon/var/rfd/devices
Key File = /opt/hmcon/var/rfd/keys
Address File = /opt/hmcon/etc/rfd/ids
Firmware Dir = /opt/hmcon/firmware
User Firmware Dir = /opt/hmcon/var/firmware
XmlRpcHandlersFile = /opt/hmcon/var/RFD.handlers
Replacemap File = /opt/hmcon/firmware/rftypes/replaceMap/rfReplaceMap.xml
[Interface 0]
Type = Lan Interface
Serial Number = GEQ0208083
Encryption Key =

root@raspberrypi:/opt/hmcon/etc#

!!!!!!! NACHTRAG: rfd alloziert in der Tat ~670MB (!) Speicher und crashed dann, der core-Dump ist 670MB groß ... bad.alloc ist also richtig.
Aber - warum verbraucht der Prozess soviel Speicher?

Reboot

Falls Reboot erforderlich am Ende Hinweis und Frage ob Reboot durchgeführt werden soll

Fehler beim Anlegen des Autostarts

Ich bekomme bei der Installation folgende Fehlermeldung:

install startscript /etc/init.d/hm-manager (Y/n)?
update-rc.d: using dependency based boot sequencing
insserv: script hm-manager: service skeleton already provided!
insserv: exiting now!
update-rc.d: error: insserv rejected the script header

wieder die drei Fehlermeldungen
nach reboot läuft nichts

root@Test-Raspi2:~# sudo ./hmcon-setup.sh
sudo: ./hmcon-setup.sh: command not found
root@Test-Raspi2:~# chmod a+x hmcon-setup.sh
chmod: Zugriff auf „hmcon-setup.sh“ nicht möglich: Datei oder Verzeichnis nicht gefunden

HM-LGW-O-TW-W-EU-2

Hallo,
ich gabe einen MomeMatic Funk LAN Gateway und möchte ihn mit IOBroker verbinden.
Wie kann ich ihn installieren und wo finde ich ihn dann. Bin Neuling.
Bitte um Hilfe

Vielen Dank

Allgem. Frage zu hmcon

Hi Leute.
Schönes lightweight Projekt. Genau das was ich gesucht habe.
Nur habe ich mal eine Frage bezüglich dem Diensten rfd und hs485d.
Kann ich diese auch per XML::RPC ansprechen und mir die Daten bspw. per init schicken lassen, wie es bei der CCU ging?

Gruß Maik

eq3configcmd

script für firmwareupdate des funkmoduls (falls notwendig wenn HM-MOD-UART erhältlich ist).

Install-Skript bei kritischen Fehlern stoppen

z.B. wenn das git-repo nicht geladen werden kann oder zu wenig Speicherplatz ist.

Ich würde öfter mal ein || exit hinter wichtige commands setzen. Oder eine elegantere Lösung?

Mit set -e am Anfang des Skripts wird abgebrochen, wenn einer der commands fehlschlägt. Ist vielleicht ein bisschen krass (Problem z.B. beim user Anlegen wenn schon existiert?)

Installations Fehler

Hallo
Ich finde das Projekt hat einen super Ansatz!
Ich bin noch relativ neu auf dem Gebiet und versuche nun seit Tagen
das Hmcon auf dem Raspberry Pi 2 zumlaufen zu bringen.
Leider läuft der Homematic Manager nicht.
Während der Installation gibt es mir folgenden Fehler aus:

gyp WARN EACCES user "hmcon" does not have permission to access the dev dir "/root/.node-gyp/4.2.1"
gyp WARN EACCES attempting to reinstall using temporary dev dir "/opt/hmcon/node_modules/homematic-manager/node_modules/socket.io/node_modules/engine.io/node_modules/ws/node_modules/utf-8-validate/.node-gyp"
make: Entering directory '/opt/hmcon/node_modules/homematic-manager/node_modules/socket.io/node_modules/engine.io/node_modules/ws/node_modules/utf-8-validate/build'
CXX(target) Release/obj.target/validation/src/validation.o
SOLINK_MODULE(target) Release/obj.target/validation.node
COPY Release/validation.node
make: Leaving directory '/opt/hmcon/node_modules/homematic-manager/node_modules/socket.io/node_modules/engine.io/node_modules/ws/node_modules/utf-8-validate/build'

Die Fehlermeldung erscheint 4 mal während des HomematicManager install Prozess.
Eventuell mache ich auch einfach irgend etwsa total Falsch....

Danke für den Support!!

Beste Grüsse
Silvan

SVN an Stelle von GIT für Checkout

Hi

da das OCCU Repo recht groß ist und man unnötig viel runterladen muss, wäre es Sinnvoller zuerst die Architektur zu Prüfen und dann mit

svn export https://github.com/eq-3/occu/tree/master/arm-gnueabihf

die notwendigen Bereiche runterladen

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.