Coder Social home page Coder Social logo

homegear-gateway's Introduction

Homegear

Homegear is a free and open source program to interface your home automation devices or services with your home automation software or scripts. Currently supported are the following device families/systems:

  • KNX
  • EnOcean
  • Beckhoff BK90x0
  • HomeMatic BidCoS
  • HomeMatic Wired
  • Insteon
  • Philips Hue
  • Sonos
  • MAX!
  • Intertechno
  • Kodi
  • IP cams
  • more to come...
  • New devices can be created with ease using XML and PHP.

Homegear features the following interfaces to control your devices - all with SSL support:

  • XML-RPC
  • Binary-RPC
  • JSON-RPC
  • MQTT
  • WebSockets with PHP session authentication
  • HTTP (GET and POST)

If needed new interfaces can easily be added to the source code. Homegear also features:

  • A built-in rich featured web server with PHP 7 and IP cam proxy support. Together with WebSockets and the script engine you can easily create web pages to bidirectionally interact with all devices known to Homegear.

  • A built-in script engine using PHP 7:

    • All devices and device functions are directly accessible.

    • All PHP modules can be used:

      • Thread support using the PHP module "pthreads".

      • Low level peripheral support:

        • Directly access serial devices, I²C devices and GPIOs.
        • You immediately get notified on new data and GPIO state changes. No polling is necessary.
        • Using threads you can implement bidirectional and event driven communication.
    • A base library to easily implement your own device families.

    • XML device description files with PHP script support to easily implement individual devices.

    • Support for customized licensing modules supporting module online activation, license verification and script encryption.

Homegear is written to make it as easy as possible to integrate new devices making them accessible through all the above interfaces.

For more information, please visit https://homegear.eu, https://doc.homegear.eu and https://ref.homegear.eu. Please post your questions in our forum on https://forum.homegear.eu.

homegear-gateway's People

Contributors

aromanro avatar duke- avatar flole998 avatar hfedcba avatar

Stargazers

 avatar  avatar

Watchers

 avatar  avatar  avatar

homegear-gateway's Issues

"Module MAX: Warning: Packet with wrong length byte received." with homegear-gateway

In https://github.com/Homegear/Homegear-MAX/blob/63456ffb39674b32c3cd6d449af8b767db65ac04/src/PhysicalInterfaces/TICC1100.cpp#L763 there is a

packetBytes[0] = firstByte;

this is not there in/after

std::vector<uint8_t> packetBytes = readRegisters(Registers::Enum::FIFO, firstByte + 1); //Read packet + RSSI

I understand that the first byte is indicating the length? Could this be the reason I am constantly getting

Module MAX: Warning: Packet with wrong length byte received.?

I do not understand why we overwrite packetBytes[0] at all there though.

Wrong parameter count for MaxCc1101

In

if(parameters->size() != 2 || parameters->at(1)->type != BaseLib::VariableType::tString || parameters->at(1)->stringValue.empty() || parameters->at(2)->type != BaseLib::VariableType::tBoolean) return BaseLib::Variable::createError(-1, "Invalid parameters.");
there is a check whether 2 parameters are passed or not, however in
https://github.com/Homegear/Homegear-MAX/blob/63456ffb39674b32c3cd6d449af8b767db65ac04/src/PhysicalInterfaces/HomegearGateway.cpp#L200
there are 3 parameters passed. Currently I am receiving a "Invalid Parameters." Message everytime I try to send something. For the CUL in
if(parameters->size() != 3 || parameters->at(1)->type != BaseLib::VariableType::tString || parameters->at(1)->stringValue.empty() || parameters->at(2)->type != BaseLib::VariableType::tBoolean) return BaseLib::Variable::createError(-1, "Invalid parameters.");
it is correct, so that should be copied over.

Homegear-Gateway starts and immediately crashes again

I'm running Homegear Gateway version 0.9.23032402-3651 and it isn't starting due to an invalid memory access:

==113645== Process terminating with default action of signal 11 (SIGSEGV)
==113645==  Access not within mapped region at address 0x4
==113645==    at 0x144414: load (atomic_base.h:426)
==113645==    by 0x144414: operator std::__atomic_base<int>::__int_type (atomic_base.h:289)
==113645==    by 0x144414: HomeMaticCc1101::mainThread() (HomeMaticCc1101.cpp:145)
==113645==    by 0x50A1CAB: ??? (in /usr/lib/aarch64-linux-gnu/libstdc++.so.6.0.28)
==113645==    by 0x486D647: start_thread (pthread_create.c:477)
==113645==    by 0x52A6C1B: thread_start (clone.S:78)

Looks like it could be _fileDescriptor that is NULL here.

Gateway on CC1101 not working

Hi everyone,

on my Raspberry PI3 I found out about behavior in Homegear-Gateway:


07/15/18 14:40:05.547 Error in file LowLevel/Gpio.cpp line 534 in function virtual void BaseLib::LowLevel::Gpio::setDirection(uint32_t, BaseLib::LowLevel::Gpio::GpioDirection::Enum): Failed to open direction file for GPIO with index 25: Unable to retrieve path.
07/15/18 14:40:05.548 Error in file LowLevel/Gpio.cpp line 569 in function virtual void BaseLib::LowLevel::Gpio::setEdge(uint32_t, BaseLib::LowLevel::Gpio::GpioEdge::Enum): Failed to open edge file for GPIO with index 25: Unable to retrieve path.
07/15/18 14:40:05.548 Error in file LowLevel/Gpio.cpp line 85 in function virtual void BaseLib::LowLevel::Gpio::openDevice(uint32_t, bool): Failed to open value file for GPIO with index 25: Unable to retrieve path.
07/15/18 14:40:05.548 Error: Couldn't listen to rf device, because the GPIO descriptor is not valid: /dev/spidev0.0
07/15/18 14:40:05.548 Connection to TI CC1101 closed unexpectedly... Trying to reconnect...

CC1101 was working before in HomeGear as local device, GPI1 = 25, Interrupt = 0. So I ran it again. It took place. I stopped Homegear 0.8.2270, restarted the HomeGear-Gateway service and ....

tada, it started working.

But after a reboot, I have to do the same again. Might there be some missing initialization?

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.