Code Monkey home page Code Monkey logo

home-assistant-eltako's Introduction

Generic badge Generic badge Generic badge Generic badge Generic badge Generic badge

Eltako Bus Integration (RS485 - EnOcean) for Home Assistant

This repo contains an Home Assistant Integration for Eltako Baureihe 14. This integration allows you to get all information of the Eltako 14 Bus and it allows you to control all the devices via Home Assistant. (See supported devices.) You can also react on sensors like weather station, rocker switches, window contacts ... with automations in Home Assistant.

For more details check out the provided docs and links listed at the end. Check out the example configuration. (It gets verifided by an unit test and should not be outdated.)

Supported EEPs and devices

The following EnOcean Equipment Profiles (EEPs) and devices are currently supported. In general, this is not limited to Eltako devices, mainly to the EnOcean standard. Elatko devices are exemplarily mentioned. You can find here a nice overview about which EEPs are provided/required by which Eltako devices.

Supported sensor EEPs

  • Binary sensor
    • A5-07-01 (Occupancy sensor)
    • A5-30-01, A5-30-03 (Digital Input - used for water sensor FSM60B)
    • F6-02-01 (Rocker switch, FTS14EM)
    • F6-02-02 (Rocker switch)
    • F6-10-00 (Window handle, classic switches or contacs via FTS14EM, window and door contacts like FTKE, supported states: open, closed)
    • D5-00-01 (Contact sensor, FTS14EM) incl. signal inverter
  • Sensor
    • A5-04-01 (Temperature and Humidity Sensor)
    • A5-04-02 (Temperature and Humidity Sensor e.g.: FLGTF, FLT58, FFT60)
    • A5-04-03 (Temperature and Humidity Sensor e.g.: FFT60)
    • A5-06-01 (Light - Twilight and daylight in one sensor value)
    • A5-07-01 (Occupancy sensor)
    • A5-08-01 (Light-, Temperature-, Occupancy Sensor e.g.: FABH65S, FBH65, FBH65S, FBH65TF)
    • A5-09-0C (Air Quality / VOC⁠ (Volatile Organic Compounds) e.g. FLGTF)
    • A5-10-06 (Temperature Sensor and Controller e.g. FUTH)
    • A5-10-12 (Temperature Sensor and Controller and Humidity Sensor e.g. FUTH)
    • A5-12-01 (Automated meter reading - electricity, FSDG14)
    • A5-12-02 (Automated meter reading - gas, F3Z14D)
    • A5-12-03 (Automated meter reading - water, F3Z14D)
    • A5-13-01 (Weather station, FWG14)
    • F6-10-00 (Window handle, classic switches or contacs via FTS14EM, window and door contacts like FTKE, supported states: open, closed, tilt)
  • Light
    • A5-38-08 (Dimmable Light: Central command - gateway, FUD14)
    • M5-38-08 (Switchable Light: Eltako relay, FSR14)
  • Switch
    • M5-38-08 (Eltako relay, FSR14)
    • F6-02-01 and F6-02-02
  • Cover
    • G5-3F-7F (Eltako cover, FSB14)

Supported sender EEPs

  • Light
    • A5-38-08 (Central command - gateway, FUD14) PREFERRED!!!
    • F6-02-01 and F6-02-02 (Rocker switch - function 02 'direct pushbutton top on' default left) / (only as switch not for dimmable lights.)
  • Switch
    • A5-38-08 (Central command) PREFERRED!!!
    • F6-02-01 and F6-02-02 (Rocker switch - function 02 'direct pushbutton top on' default left)
  • Cover
    • H5-3F-7F (Eltako cover, FSB14)
  • Climate (Experimental Feedback is welcome.)
    • A5-10-06 (Eltako FAE14, FHK14, F4HK14, F2L14, FHK61, FME14)
  • Teach-In Buttons
    • A5-10-06, A5-10-12 (climate/thermostats)
    • A5-38-08 (light and switch)
    • H5-3F-7F (cover)
  • Send Message Service Sends any EnOcean Message. Can be used for automatinos in Home Assistant so that none-EnOcean and EnOcean deviecs can be combined.
    • Not supported EEPs: A5-09-0C (Air Quality), A5-38-08 (Central Command)

Gateway (See also how to use gateways and multiple gateway support)

Installation and Configuration

While this is not integrated into home assistant's repositories. You need to install first Home Assistant Commuinty Sore (HACS) in order to install custom components. After that you need to do the following steps:

  1. Install repo via HACS:

    Click on the button below to automatically navigate to the repository within HACS, add and download it.

    Open your Home Assistant instance and open a repository inside the Home Assistant Community Store.

    Alternative1: Simply enter the URL of this repo. It will then be listed in HACS and also shows when new updates are available. Detailed Docs in HACS Custom Repositories

    Alternative 2: Copying directory eltako** from this repository into your home assistant's /config/custom_components directory. For easy installation just clone this repository git clone https://github.com/grimmpp/home-assistant-eltako.git and execute the installation script of this repo ./install_custom_component_eltako.sh.

  2. Before you add the integration you have to provide a list of gateways and devices you want to use. Here is a minimum example you need to put into /config/configuration.yaml to start with. The configuration can be change and adapt at any point in time.

eltako:
  gateway:
  - id: 1
    base_id: FF-AA-80-00
    device_type: fgw14usb
  1. To enable this component, go to your integrations, press the "add" button and select "Eltako". In the presented sheet just select the detected USB gateway.
  2. Update Home Assistant configuration /config/configuration.yaml and add all devices and sensors you want to integrate. See How to update Home Assistant Configuration to see how the configuration should look like. In order to automatically generate the configuration and managing your devices you can use Enocean Device Manager (eo_man).

Important

Devices that are later removed from the configuration are not deleted in HA. Although it is possible to delete the entity, it is currently not possible to delete the device via a button. The easiest and quickest way to clean up is to delete the Eltako HUB and create a new one. Don't worry, the automations, scenes, scripts, dashboard settings and historical data will not be lost. These are linked to the device ID and are reassigned after the Eltako HUB has been recreated.

image

Testing

Testing this integration via Home Assistant development container or updating it in a Home Assistant instance is quite time consuming. Therefore I've added some basic tests to ensure quickly a base quality.

Unit and component tests for this integration are located in the folder tests. There is already a vscode settings.json prepared to start them via vscode or you can just run the following command from the repo folder.

python -m unittest discover tests -v

Documentation

Dependencies

  • Eltako Software PCT14 for programming and configuring Eltako Baureihe 14 devices natively.
  • Home Assistant Community Store is needed to be able to install this repository. It allows you to install custom_components.
  • Eltako14Bus Python Library is used by Home Assistant Eltako Integration for serial communication for device Eltako FAM14 and FGW14-USB.
  • Python EnOcean is used by Home Assistant Eltako Integration for serial communication for device USB300.
  • esp2_gateway_adapter is an adapter so that ESP3 can be made compatible to the rest of the integration which works on ESP2.

Useful Home Assistant Addons

External Documentation

Contribution and Support to this Project

I'm really happy to provide a more and more growing Home Assistant Eltako Integration by this project. The size of this integration is getting much bigger than the use cases I've realized at home, the variety of supported devices is increasing and the stability of the integraiton is getting to a professional level. On the other side it is getting hard to keep this level of development speed and operational quality. I'm about to build up a professional development and testing environment so that the quality can even improved and futher features can still be delivered in a short time frame. You can support this activity in sending devices and/or money.

In general, you can contribute to this project by:

Credits

Thanks to chrysn and Johannes Bosecker who initiated and made the first version of this code publicly available on their Gitlab repos, and shared it in the Home Assistant community (Eltako “Baureihe 14 – RS485” (Enocean) Debugging).
This fork was decoupled because of many many fundamental changes to the original repository.
Big thanks as well to Cedric Van Labeke who provides a very good documentation and helped me to make my first steps into this world.
Thanks to LHBL2003 who is eagerly testing and pushing things to a good quality by creating Pull Requests and Issues.

home-assistant-eltako's People

Contributors

christophheich avatar grimmpp avatar jbosecker avatar lhbl2003 avatar michaelpiron 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  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

home-assistant-eltako's Issues

Sensors like FABH65 or FBH65TF only support motion but no brightness

Sensors using the A5-08-01 only show the motion entity in HA, the brightness value is missing. Could this be added somehow?
Also, it would be very nice to see the voltage value for these battery or solar operated sensors.
I could help with the telegram info of Eltako but I have no clue how to implement this here.

Funk-Telegramme nach EEP A5-08-01
(Exceptions by Eltako)
Helligkeitsbereich erweitert, kein Occupancy
Button im DB0_Bit0)
ORG = 0x07
Data_byte3 = Betriebsspannung 0..5,1 V
(0..255)
Data_byte2 = Helligkeit 0..510 lux (0..255)
Data_byte1 = -
Data_byte0 = 0x0D = Bewegung
0x0F = keine Bewegung
Lerntelegramm: 0x20080D85

PioTek FAM-USB 515 device_type

I just received a new PioTek FAM-USB 515 and am unsure which setting to use for device_type in the yaml-eltako: section. I already hjave a FGW14-USB configured and running successfully and want to use the FAM-USB 515 as a second gateway (mostly to teach the FUTH 230V thermostat devices).

For now I've tested it with device_type: "enocean-usb300" which seems to work. Maybe this could be mentioned in the docs.

Ganz dickes Lob übrigens! Echt gute Arbeit!

Allow specifying serial device path manually

Is it possible to add the option to manually specify the serial device path? Would this allow serial devices to be connected via ser2net?

Since I've run into USB stability problems in conjunction with running HA on a Synology NAS (VM), I've migrated the zigbee radio to an old Raspberry Pi running a ser2net docker container and set the connection port in ZHA config (see https://community.home-assistant.io/t/connecting-to-a-remote-zigbee-coordinator-with-zha-using-ser2net/561762)

With e.g. ZHA it is possible to do:

grafik

grafik

How to add new EEP devices

Is it possible to install new EEPs?
For example, I have a motion sensor EEP A5-07-01 (Eltako FB65B) and a temperature/humidity EEP A5-04-01 (Nodon STPH-2-1-05)

How to connect the Light Switch

Hi,

I have eltako light switches that uses Enocean PTM215Z.

I managed to connect the switch via Zigbee2MQTT and it shows up in HA via the MQTT integration.

My question is how do I connect the switches to use this custom integration? Is Z2M the right way or is there a better way?

Thanks

Cover is driving all the way up or down until end position, if a small position correction is needed

I would like to suggest some modifications I have made to your integration and in more detail to the covers part. The goal of these changes is to prevent the covers from moving all the way up or down when only a small adjustment is needed.

I have adjusted the calculations in cover.py as follows:

Original:
time = min(int(((position - self._attr_current_cover_position) / 100.0) * self._time_opens), 255)

Changed to:
time = max(1, min(int((float(position - self._attr_current_cover_position) * float(self._time_opens) / 100.0)), 255))
and
Original:
time = min(int(((self._attr_current_cover_position - position) / 100.0) * self._time_closes), 255)

Changed to:
time = max(1, min(int((float(self._attr_current_cover_position - position) * float(self._time_closes) / 100.0)), 255))

Additionally, I modified lines 183 and 186 to ensure that the covers will move to the end position when 100 or 0 is set. This helps with calibration if the device is out of sync.

Original:

elif position == 100:
    direction = "up"
    time = self._time_opens + 1
elif position == 0:
    direction = "down"
    time = self._time_closes + 1

Changed to:

elif position == 100:
    direction = "up"
    time = 0  # self._time_opens + 1
elif position == 0:
    direction = "down"
    time = 0  # self._time_closes + 1

It would be great if you could incorporate these changes into your integration.
Thank you very much for your excellent work and great commitment.

Future Request: Restore last status after restarting HA.

After restarting HA, the correct status is not displayed.
Yes, the status could have been changed by a button during the restart. However, the probability is much lower than that everything is supposedly off. It would be good if the status before the restart is restored. It would be good if the status could be restored.

Before restart:
image

After restart
image

Problem with Enocean USB300 as Gateway device

Hello,

I followed the documentation and installed home-assistant-eltako via HACS and added the following lines to the configuration.yaml.

eltako:
  gateway:
  - id: 1
    base_id: FF-A6-DA-00        # baseId of USB300 gateway
    device_type: enocean-usb300

Unfortunatley the Eltako Integration cannot be startet, see following messages from the log:

Traceback (most recent call last):
  File "/usr/src/homeassistant/homeassistant/config_entries.py", line 604, in async_setup
    result = await component.async_setup_entry(hass, self)
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/config/custom_components/eltako/eltako_integration_init.py", line 140, in async_setup_entry
    usb_gateway = EnOceanGateway(general_settings, hass, gateway_id, gateway_device_type, gateway_serial_path, baud_rate, port, gateway_base_id, gateway_name, auto_reconnect, config_entry)
                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/config/custom_components/eltako/gateway.py", line 81, in __init__
    self._init_bus()
  File "/config/custom_components/eltako/gateway.py", line 145, in _init_bus
    from esp2_gateway_adapter.esp3_serial_com import ESP3SerialCommunicator
  File "/usr/local/lib/python3.12/site-packages/esp2_gateway_adapter/esp3_serial_com.py", line 13, in <module>
    from enocean.protocol.packet import Packet, RadioPacket, RORG, PACKET, UTETeachInPacket
ImportError: cannot import name 'UTETeachInPacket' from 'enocean.protocol.packet' (/usr/local/lib/python3.12/site-packages/enocean/protocol/packet.py)

A manual installation via the custom_components folder led to the same behavior. The import of UTETeachInPacket in the python packages esp2_gateway_adapter seems not to work.

Does anyone have any idea what the problem could be and how to fix it?

grafik

FTS14EM - Visu (Status remains unknown):

Hi,
 
I can currently control FSR14_4x via home-assistant-eltako.
Only for the FTS14EM I do not get the status displayed in HA.
I can do it in FHEM.
 
Upper rotary switch position: 10
Lower rotary switch position: UT 1
Port 5

 
Config

eltako:
  gateway:
    - id: 1
      base_id: FF-00-00-00
      device_type: fgw14usb
      devices:
        binary_sensor:
        - id: 00-00-10-15
          eep: F6-02-01
          name: FTS14EM - KG-S1 - Signal 5 (Frei)
          #device_class: presence 
          #invert_signal: False
 
logger:
  default: info
  logs:
    eltako: debug

 
EEP: F6-02-01 is also set up by default in FHEM when FHEM scans the Eltako bus. 

Logging Message (It looks as if the signal is detected by HA.):

2024-01-15 20:25:52.653 DEBUG (Thread-2) [eltako] [Gateway] [Id: 1] Received message: <RPSMessage from 00 00 10 15, db0 = 70, status = 0x30 (T2, N, 0 repetitions)>
2024-01-15 20:25:52.656 DEBUG (SyncWorker_12) [eltako] [Binary Sensor] Send event: eltako.gw_1.btn_pressed.sid_00-00-10-15, pressed_buttons: '["RT"]'
2024-01-15 20:25:52.657 DEBUG (SyncWorker_12) [eltako] [Binary Sensor] Send event: eltako.gw_1.btn_pressed.sid_00-00-10-15.d_RT, pressed_buttons: '["RT"]'
2024-01-15 20:25:56.784 DEBUG (Thread-2) [eltako] [Gateway] [Id: 1] Received message: <RPSMessage from 00 00 10 15, db0 = 00, status = 0x20 (T2, U, 0 repetitions)>
2024-01-15 20:25:56.786 DEBUG (SyncWorker_23) [eltako] [Binary Sensor] Send event: eltako.gw_1.btn_pressed.sid_00-00-10-15, pressed_buttons: '[]'
2024-01-15 20:25:56.787 DEBUG (SyncWorker_23) [eltako] [Binary Sensor] Send event: eltako.gw_1.btn_pressed.sid_00-00-10-15.d_, pressed_buttons: '[]'
Bildschirmfoto 2024-01-15 um 20 27 18

Visu (Status remains unknown):
Bildschirmfoto 2024-01-15 um 20 28 11

Do you have any idea what I should configure?

With eep: D5-00-01 it gets even worse.
Bildschirmfoto 2024-01-15 um 21 27 43

class 'custom_components.eltako.sensor.GatewayReceivedMessagesInActiveSession'> sets an invalid suggested_unit_of_measurement.

I followed the instructions of this protocol message in HA:

<class 'custom_components.eltako.sensor.GatewayReceivedMessagesInActiveSession'> sets an invalid suggested_unit_of_measurement. Please create a bug report at https://github.com/grimmpp/home-assistant-eltako/issues. This warning will become an error in Home Assistant Core 2024.5

I run a highe version of HA Core of 2024.5 so maybe this is why I can't connect to my LAN GW. (see also #113 )

CONSTANT_X was used from eltako, this is a deprecated constant which will be removed in HA Core 2025.1. Use CONSTANT_Y instead.

The log file reports a lot of early warnings like this:

2024-02-02 20:22:24.686 WARNING (MainThread) [homeassistant.const] DEVICE_CLASS_AQI was used from eltako, this is a deprecated constant which will be removed in HA Core 2025.1. Use SensorDeviceClass.AQI instead, please create a bug report at https://github.com/grimmpp/home-assistant-eltako/issues

home-assistant_Log_Constant_Warnings.txt

HA version used:
Version core-2024.1.6
Host operating system Home Assistant OS 11.4
Supervisor version supervisor-2023.12.1
Python version 3.11.6
Operating system version 6.1.63-haos-raspi

Allow overriding `delay_message` for gateway serial communication through setting

I have an automation that closes a lot of covers at once

2024-07-01 22:32:15.514 DEBUG (SyncWorker_39) [eltako] [Gateway] [Id: 1] Send message: <Regular4BSMessage from 00 00 b0 1a, data 00 1a 02 08, status = 0x00> - Serialized: a55a6b07001a02080000b01a0060
2024-07-01 22:32:15.514 DEBUG (SyncWorker_1) [eltako] [Gateway] [Id: 1] Send message: <Regular4BSMessage from 00 00 b0 23, data 00 0c 02 08, status = 0x00> - Serialized: a55a6b07000c02080000b023005b
2024-07-01 22:32:15.514 DEBUG (SyncWorker_2) [eltako] [Gateway] [Id: 1] Send message: <Regular4BSMessage from 00 00 b0 1e, data 00 21 02 08, status = 0x00> - Serialized: a55a6b07002102080000b01e006b
2024-07-01 22:32:15.515 DEBUG (SyncWorker_2) [eltako] [Gateway] [Id: 1] Send message: <Regular4BSMessage from 00 00 b0 2b, data 00 0c 02 08, status = 0x00> - Serialized: a55a6b07000c02080000b02b0063
2024-07-01 22:32:15.516 DEBUG (SyncWorker_41) [eltako] [Gateway] [Id: 1] Send message: <Regular4BSMessage from 00 00 b0 1b, data 00 14 02 08, status = 0x00> - Serialized: a55a6b07001402080000b01b005b
2024-07-01 22:32:15.516 DEBUG (SyncWorker_41) [eltako] [Gateway] [Id: 1] Send message: <Regular4BSMessage from 00 00 b0 27, data 00 0c 02 08, status = 0x00> - Serialized: a55a6b07000c02080000b027005f
2024-07-01 22:32:15.516 DEBUG (SyncWorker_41) [eltako] [Gateway] [Id: 1] Send message: <Regular4BSMessage from 00 00 b0 28, data 00 1a 02 08, status = 0x00> - Serialized: a55a6b07001a02080000b028006e
2024-07-01 22:32:15.516 DEBUG (SyncWorker_41) [eltako] [Gateway] [Id: 1] Send message: <Regular4BSMessage from 00 00 b0 19, data 00 19 02 08, status = 0x00> - Serialized: a55a6b07001902080000b019005e
2024-07-01 22:32:15.517 DEBUG (SyncWorker_42) [eltako] [Gateway] [Id: 1] Send message: <Regular4BSMessage from 00 00 b0 20, data 00 0c 02 08, status = 0x00> - Serialized: a55a6b07000c02080000b0200058
2024-07-01 22:32:15.517 DEBUG (SyncWorker_42) [eltako] [Gateway] [Id: 1] Send message: <Regular4BSMessage from 00 00 b0 29, data 00 22 02 08, status = 0x00> - Serialized: a55a6b07002202080000b0290077
2024-07-01 22:32:15.518 DEBUG (SyncWorker_43) [eltako] [Gateway] [Id: 1] Send message: <Regular4BSMessage from 00 00 b0 1c, data 00 3d 02 08, status = 0x00> - Serialized: a55a6b07003d02080000b01c0085
2024-07-01 22:32:15.518 DEBUG (SyncWorker_43) [eltako] [Gateway] [Id: 1] Send message: <Regular4BSMessage from 00 00 b0 24, data 00 1a 02 08, status = 0x00> - Serialized: a55a6b07001a02080000b024006a

Not all of them move reliably though. I don't understand the true root cause but would love to play around with delay_message to see if it helps.

Also as a small nit: It seems that the logger is not forwarded to the serial constructor (looked at esp2) and I suspect that's the reason why I dont see the serial messages themselves. Is that intentional?

Actuators show no status - ELTAKO ´14 Devices

Hi their,

I´m very happy about this repo because I´m trying to get my setup working for a very long time.

Unfortunately I´ve experienced a problem with it.
Within Homeassistant I can't see any status updates of control actuators. Is this behavior normal ?
beside this problem binary sensors are working perfectly.

My setup is eltako only ... fam, fsr, fgw, fud, fstem
in the moment some of those actuators are controlled with a Homee in parallel. the Homee can see all states of the actuators.

In homeassistant I see changes are somehow recognized, because every command via home or fst14em - the "last message received" - updates
Automatisierungen

but the FUD´s remain "grey"
Logbuch

as well as the state of the FSR 14 keeps of , while the light turns on be triggering it with ha
Aus

i´ll get some "fake" states of the actuators with this text in configuration.yaml
"general_settings:
fast_status_change: False # True: Changes status in HA immediately without waiting for actuator response. Default: False"

but that's not what I need

I´d love if someone can help me with any further advices.

Initial setup: No gateway configuration available. Enter gateway into '/homeassistant/configuration.yaml'.

I would like to switch from FHEM / ioBrocker to HomeAssistant. I am therefore currently checking my relevant integrations. I have successfully tested Alexa, Hue, Homatic, etc. Only with Eltako do I fail at the simplest step.

First of all: My Eltako enocean 14 system is running under FHEM on a Respbarry Pi 4. I have only repositioned the USB cable from the FGW14-USB to the HomeAssistant (Pi 5).
I have rebooted the HomeAssistant Pi to ensure that the USB interface is recognized.

I have integrated home-assistant-eltako via HACS.
I click on Add integration, select Eltako and immediately get this error message:
image

image

`
Logger: eltako
Source: custom_components/eltako/config_helpers.py:112
Integration: Eltako (documentation, issues)
First occurred: 12:28:06 (2 occurrences)
Last logged: 12:28:06

No eltako: key found in configuration.yaml.
`

I ignore the message and select the first or even the second entry and get this error message:
Whereby I believe that "usb-FTDI_FT232R_USB_UART_AK05EMVN-if00-port0" is surely the recommended entry? (Is both port 0)
(I have allegedly not filled in all mandatory fields.)
image

I then searched for a sample configuration and found this:
https://github.com/grimmpp/home-assistant-eltako/blob/main/docs/update_home_assistant_configuration.md

If I add this part to the configuration file "configuration.yaml" the YAML checkpoint is still ok, but I still can't set up the integration.

image

If I add at least the gateway entry, then I get problems with the YAML check.
Because I don't have any integration yet.

image

image

Am I doing something wrong or is this a bug during the initial setup on a new system?
Because I can't complete step 2 of 3 from the installation and configuration documentation

Can't create gateway after update

First, thanks a lot for your work.
I am trying to get rid of good old fhem at the moment, and your integration is a lagre and important jigsaw piece for that.
But today I run into a problem, where I need your help, I think.
I installed version 1.2.1 today. After Update and change the configuration, i was not able to get it to run. I alway got no base_id.
I tried to fix this several times.
Thats when I recognised a discrepancies in your config. - Your config has device first and then base id and in your docu its vice versa.
Fact is, none of both worked for me.
After several attempts to fix this, I deleted the config and tried to reintegrate your component. There I got a 500 Internal Error and a log, that looks like that:
2023-12-14 21:29:16.051 WARNING (MainThread) [py.warnings] /usr/local/lib/python3.11/site-packages/bs4/builder/init.py:545: XMLParsedAsHTMLWarning: It looks like you're parsing an XML document using an HTML parser. If this really is an HTML document (maybe it's XHTML?), you can ignore or filter this warning. If it's XML, you should know that using an XML parser will be more reliable. To parse this document as XML, make sure you have the lxml package installed, and pass the keyword argument features="xml" into the BeautifulSoup constructor.
warnings.warn(

2023-12-14 21:29:16.631 ERROR (MainThread) [aiohttp.server] Error handling request
Traceback (most recent call last):
File "/usr/local/lib/python3.11/site-packages/aiohttp/web_protocol.py", line 452, in _handle_request
resp = await request_handler(request)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.11/site-packages/aiohttp/web_app.py", line 543, in _handle
resp = await handler(request)
^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.11/site-packages/aiohttp/web_middlewares.py", line 114, in impl
return await handler(request)
^^^^^^^^^^^^^^^^^^^^^^
File "/usr/src/homeassistant/homeassistant/components/http/security_filter.py", line 85, in security_filter_middleware
return await handler(request)
^^^^^^^^^^^^^^^^^^^^^^
File "/usr/src/homeassistant/homeassistant/components/http/forwarded.py", line 100, in forwarded_middleware
return await handler(request)
^^^^^^^^^^^^^^^^^^^^^^
File "/usr/src/homeassistant/homeassistant/components/http/request_context.py", line 28, in request_context_middleware
return await handler(request)
^^^^^^^^^^^^^^^^^^^^^^
File "/usr/src/homeassistant/homeassistant/components/http/ban.py", line 80, in ban_middleware
return await handler(request)
^^^^^^^^^^^^^^^^^^^^^^
File "/usr/src/homeassistant/homeassistant/components/http/auth.py", line 233, in auth_middleware
return await handler(request)
^^^^^^^^^^^^^^^^^^^^^^
File "/usr/src/homeassistant/homeassistant/components/http/headers.py", line 31, in headers_middleware
response = await handler(request)
^^^^^^^^^^^^^^^^^^^^^^
File "/usr/src/homeassistant/homeassistant/components/http/view.py", line 149, in handle
result = await handler(request, **request.match_info)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/src/homeassistant/homeassistant/components/http/decorators.py", line 63, in with_admin
return await func(self, request, *args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/src/homeassistant/homeassistant/components/config/config_entries.py", line 147, in post
return await super().post(request)
^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/src/homeassistant/homeassistant/components/http/data_validator.py", line 72, in wrapper
result = await method(view, request, data, *args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/src/homeassistant/homeassistant/helpers/data_entry_flow.py", line 71, in post
result = await self._flow_mgr.async_init(
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/src/homeassistant/homeassistant/config_entries.py", line 880, in async_init
flow, result = await task
^^^^^^^^^^
File "/usr/src/homeassistant/homeassistant/config_entries.py", line 908, in _async_init
result = await self._async_handle_step(flow, flow.init_step, data)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/src/homeassistant/homeassistant/data_entry_flow.py", line 389, in _async_handle_step
result: FlowResult = await getattr(flow, method)(user_input)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/config/custom_components/eltako/config_flow.py", line 36, in async_step_user
return await self.async_step_detect()
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/config/custom_components/eltako/config_flow.py", line 40, in async_step_detect
return await self.manual_selection_routine(user_input)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/config/custom_components/eltako/config_flow.py", line 66, in manual_selection_routine
return await self.async_step_manual(user_input)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/config/custom_components/eltako/config_flow.py", line 44, in async_step_manual
return await self.manual_selection_routine(user_input, manual_setp=True)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/config/custom_components/eltako/config_flow.py", line 66, in manual_selection_routine
return await self.async_step_manual(user_input)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/config/custom_components/eltako/config_flow.py", line 44, in async_step_manual
return await self.manual_selection_routine(user_input, manual_setp=True)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/config/custom_components/eltako/config_flow.py", line 66, in manual_selection_routine
return await self.async_step_manual(user_input)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/config/custom_components/eltako/config_flow.py", line 44, in async_step_manual
return await self.manual_selection_routine(user_input, manual_setp=True)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/config/custom_components/eltako/config_flow.py", line 66, in manual_selection_routine
return await self.async_step_manual(user_input)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/config/custom_components/eltako/config_flow.py", line 44, in async_step_manual
return await self.manual_selection_routine(user_input, manual_setp=True)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/config/custom_components/eltako/config_flow.py", line 66, in manual_selection_routine
return await self.async_step_manual(user_input)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/config/custom_components/eltako/config_flow.py", line 44, in async_step_manual
return await self.manual_selection_routine(user_input, manual_setp=True)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/config/custom_components/eltako/config_flow.py", line 66, in manual_selection_routine
return await self.async_step_manual(user_input)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/config/custom_components/eltako/config_flow.py", line 44, in async_step_manual
return await self.manual_selection_routine(user_input, manual_setp=True)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/config/custom_components/eltako/config_flow.py", line 66, in manual_selection_routine
return await self.async_step_manual(user_input)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/config/custom_components/eltako/config_flow.py", line 44, in async_step_manual
return await self.manual_selection_routine(user_input, manual_setp=True)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/config/custom_components/eltako/config_flow.py", line 66, in manual_selection_routine
return await self.async_step_manual(user_input)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/config/custom_components/eltako/config_flow.py", line 44, in async_step_manual
return await self.manual_selection_routine(user_input, manual_setp=True)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/config/custom_components/eltako/config_flow.py", line 66, in manual_selection_routine
return await self.async_step_manual(user_input)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/config/custom_components/eltako/config_flow.py", line 44, in async_step_manual
return await self.manual_selection_routine(user_input, manual_setp=True)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/config/custom_components/eltako/config_flow.py", line 66, in manual_selection_routine
return await self.async_step_manual(user_input)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/config/custom_components/eltako/config_flow.py", line 44, in async_step_manual
return await self.manual_selection_routine(user_input, manual_setp=True)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/config/custom_components/eltako/config_flow.py", line 66, in manual_selection_routine
return await self.async_step_manual(user_input)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/config/custom_components/eltako/config_flow.py", line 44, in async_step_manual
return await self.manual_selection_routine(user_input, manual_setp=True)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/config/custom_components/eltako/config_flow.py", line 66, in manual_selection_routine
return await self.async_step_manual(user_inp

It goes on and on. The dialog to input gateway never opens

Any suggestions?

Shutters not working with USB300 (ESP3)

Sent by tden159 in HA Community.

after the release of v1.4. i tried out your solution with an USB300 as my gateway. I was able to integrate all my lights without any problems. However with my cover/shutter integration i have a problem which i cant solve on my own.

Logs:

2024-04-14 08:06:54.961 ERROR (Thread-5) [enocean.communicators.SerialCommunicator] Received ESP3 response with with return code WRONG_PARAM (3) - 0x02 ['0x3'] [] OrderedDict() 
2024-04-14 08:06:56.771 ERROR (Thread-5) [enocean.communicators.SerialCommunicator] Received ESP3 response with with return code WRONG_PARAM (3) - 0x02 ['0x3'] [] OrderedDict() 
2024-04-14 08:06:58.484 ERROR (Thread-5) [enocean.communicators.SerialCommunicator] Received ESP3 response with with return code WRONG_PARAM (3) - 0x02 ['0x3'] [] OrderedDict() 

My setup:
HA OS → USB300 → FAM14 → FSB14
Eltako v1.4.2

My config (abstract):

eltako:
  gateway:
  - id: 1
    base_id: FF-88-03-00
    device_type: enocean-usb300 
    devices: 

        light:
        - id: FF-8F-AB-01
          name: F4SR14_LED FF-8F-AB-01 (1/4)
          eep: M5-38-08
          sender: 
            id: FF-88-03-01
            eep: A5-38-08

        cover:
        - id: FF-8F-AB-96
          name: FSB14 FF-8F-AB-96 (1/2)
          eep: G5-3F-7F
          sender: 
            id: FF-88-03-40
            eep: H5-3F-7F
          device_class: shutter
          time_closes: 25
          time_opens: 25

Sender ID is in the PCT14 with function 31.

I tried to understand the Error Message, but couldnt figure if the problem is based on my config or some other problem with the integration.

97795e49bb280d7187afa36bcd357c2a9cbce2f7

better support for Home Assistant automation

to be able to define automations in Home Assistant it need to be possible to react on incoming and out-going messages.

Idea: serialization of ESP2 messages so that messages can be received and sent via Home Assistant automations.

Integration of window handle Eltako FHF

Hi @grimmpp,

besides the fact that I still have issues in getting the v.1.2.3 up and running, I started with the integration of the window handle Eltako FHF from Hoppe. I saw that the EEP F6-10-00 is supported and in my understanding, I have to set this as a sensor and not as a binary_sensor because the handle has three states OPEN, CLOSE, and TILT.

If I set the config up with the following code

  sensor:
    - id: "00-21-20-D1"
      name: "Küche Fenster rechts"
      eep: "F6-10-00"

the handle is shown as a sensor, but nothing happened, no state change. The debug logs show the following entries:

2023-12-30 16:35:00.825 DEBUG (MainThread) [eltako] Received message: <ESP2Message '0b 05 e0 00 00 00 00 21 20 d1 20'>
2023-12-30 16:35:00.829 ERROR (SyncWorker_7) [homeassistant.util.logging] Exception in _message_received_callback when dispatching 'eltako.receive_message': (<ESP2Message '0b 05 e0 00 00 00 00 21 20 d1 20'>,)
Traceback (most recent call last):
  File "/config/custom_components/eltako/device.py", line 69, in _message_received_callback
    self.value_changed(msg)
  File "/config/custom_components/eltako/sensor.py", line 406, in value_changed
    if decoded.learn_button != 1:
       ^^^^^^^^^^^^^^^^^^^^
AttributeError: 'F6_10_00' object has no attribute 'learn_button'

2023-12-30 16:35:01.211 DEBUG (MainThread) [eltako] Received message: <ESP2Message '0b 05 d0 00 00 00 00 21 20 d1 20'>
2023-12-30 16:35:01.216 ERROR (SyncWorker_9) [homeassistant.util.logging] Exception in _message_received_callback when dispatching 'eltako.receive_message': (<ESP2Message '0b 05 d0 00 00 00 00 21 20 d1 20'>,)
Traceback (most recent call last):
  File "/config/custom_components/eltako/device.py", line 69, in _message_received_callback
    self.value_changed(msg)
  File "/config/custom_components/eltako/sensor.py", line 406, in value_changed
    if decoded.learn_button != 1:
       ^^^^^^^^^^^^^^^^^^^^
AttributeError: 'F6_10_00' object has no attribute 'learn_button'

2023-12-30 16:35:01.705 DEBUG (MainThread) [eltako] Received message: <ESP2Message '0b 05 c0 00 00 00 00 21 20 d1 20'>
2023-12-30 16:35:01.710 ERROR (SyncWorker_3) [homeassistant.util.logging] Exception in _message_received_callback when dispatching 'eltako.receive_message': (<ESP2Message '0b 05 c0 00 00 00 00 21 20 d1 20'>,)
Traceback (most recent call last):
  File "/config/custom_components/eltako/device.py", line 69, in _message_received_callback
    self.value_changed(msg)
  File "/config/custom_components/eltako/sensor.py", line 406, in value_changed
    if decoded.learn_button != 1:
       ^^^^^^^^^^^^^^^^^^^^
AttributeError: 'F6_10_00' object has no attribute 'learn_button'

2023-12-30 16:35:01.991 DEBUG (MainThread) [eltako] Received message: <ESP2Message '0b 05 f0 00 00 00 00 21 20 d1 20'>
2023-12-30 16:35:01.996 ERROR (SyncWorker_6) [homeassistant.util.logging] Exception in _message_received_callback when dispatching 'eltako.receive_message': (<ESP2Message '0b 05 f0 00 00 00 00 21 20 d1 20'>,)
Traceback (most recent call last):
  File "/config/custom_components/eltako/device.py", line 69, in _message_received_callback
    self.value_changed(msg)
  File "/config/custom_components/eltako/sensor.py", line 406, in value_changed
    if decoded.learn_button != 1:
       ^^^^^^^^^^^^^^^^^^^^
AttributeError: 'F6_10_00' object has no attribute 'learn_button'

Can you help me with what I don't see and/or understand? Could bit be that this is also a result of the fact that I didn't get the new config running correctly? I appreciate your support in this...

Thx and cheers
Lutz

Device cannot be deleted. Link / Button to delete is missing.

Problem:

A single device cannot be deleted. The entire integration must be deleted to remove a device. However, the deletion of individual devices is supported by Google Case TV, for example.


Change request

Please create a delete button for the individual devices.

image

To recreate the problem:

  • Create a Dummy in Eltako Config
          #----------------------------------------------------------------------
          #Dummy
          - id: FE-00-00-50
            eep: M5-38-08
            name: DUMMY
            sender:
              id: FD-00-00-50
              eep: F6-02-01
image
  • Check HA Config and Restart
  • The dummy is available
image
  • Remove or Deactivate Dummy in Config and Restart HA
image
  • Go to the entity and delete it (It is possible to delete the entity for the device.)
image image
  • Try to delete the device
image

Support TF-4PT (4-fold push-button radio)

I have a 4-gang push-button TF-4PT. With the following code, I can recognize the "on" and "off" signal. However, I do not know which of the 4 buttons was pressed.

Is it possible to specify this, or does this require further development?

        binary_sensor:
          - id: 00-2C-FE-E2
            eep: F6-02-01
            name: TF-4PT - Signal

Press Top Left

2024-01-25 20:09:57.340 DEBUG (Thread-2) [eltako] [Gateway] [Id: 1] Received message: <RPSMessage from 00 2c fe e2, db0 = 30, status = 0x30 (T2, N, 0 repetitions)>

Press Top Right

2024-01-25 20:12:57.786 DEBUG (Thread-2) [eltako] [Gateway] [Id: 1] Received message: <RPSMessage from 00 2c fe e2, db0 = 70, status = 0x30 (T2, N, 0 repetitions)>

Press Bottom Left

2024-01-25 20:16:02.938 DEBUG (Thread-2) [eltako] [Gateway] [Id: 1] Received message: <RPSMessage from 00 2c fe e2, db0 = 10, status = 0x30 (T2, N, 0 repetitions)>

Press Bottom Right

2024-01-25 20:17:15.952 DEBUG (Thread-2) [eltako] [Gateway] [Id: 1] Received message: <RPSMessage from 00 2c fe e2, db0 = 50, status = 0x30 (T2, N, 0 repetitions)>

Letting go

2024-01-25 20:09:57.734 DEBUG (Thread-2) [eltako] [Gateway] [Id: 1] Received message: <RPSMessage from 00 2c fe e2, db0 = 00, status = 0x20 (T2, U, 0 repetitions)>

From ELTAKO Doku:

https://www.eltako.com/fileadmin/downloads/de/Gesamtkatalog/Eltako_Gesamtkatalog_KapT_low_res.pdf
F4T65, F4T65B, F4FT65, F4FT65B, F4PT, FT4F, F4T55E, F4T55EB,
F4PT55, FHS4, FMH4, FMH4S, FF8, FMH8 (EEP F6-02-01)

ORG = 0x05
Data_byte3 =

  • oben rechts drücken = 0x70,
  • unten rechts drücken = 0x50,
  • oben links drücken = 0x30,
  • unten links drücken = 0x10,
  • Loslassen = 0x00

Integration not started after update

After Update following log attemps

Logger: homeassistant.setup
Quelle: setup.py:296
Erstmals aufgetreten: 17:31:50 (1 Vorkommnisse)
Zuletzt protokolliert: 17:31:50

Setup failed for custom integration 'eltako': Unable to import component: cannot import name 'UTETeachInPacket' from 'enocean.protocol.packet' (/usr/local/lib/python3.12/site-packages/enocean/protocol/packet.py)
Traceback (most recent call last):
File "/usr/src/homeassistant/homeassistant/setup.py", line 296, in _async_setup_component
component = await integration.async_get_component()
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/src/homeassistant/homeassistant/loader.py", line 894, in async_get_component
comp = self.get_component()
^^^^^^^^^^^^^^^^^^^^
File "/usr/src/homeassistant/homeassistant/loader.py", line 921, in get_component
ComponentProtocol, importlib.import_module(self.pkg_path)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/importlib/init.py", line 90, in import_module
return _bootstrap._gcd_import(name[level:], package, level)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "", line 1387, in _gcd_import
File "", line 1360, in _find_and_load
File "", line 1331, in _find_and_load_unlocked
File "", line 935, in _load_unlocked
File "", line 995, in exec_module
File "", line 488, in _call_with_frames_removed
File "/config/custom_components/eltako/init.py", line 6, in
from .eltako_integration_init import *
File "/config/custom_components/eltako/eltako_integration_init.py", line 10, in
from .schema import CONFIG_SCHEMA
File "/config/custom_components/eltako/schema.py", line 12, in
from .gateway import GatewayDeviceType
File "/config/custom_components/eltako/gateway.py", line 29, in
from .esp3_serial_com import ESP3SerialCommunicator
File "/config/custom_components/eltako/esp3_serial_com.py", line 13, in
from enocean.protocol.packet import Packet, RadioPacket, RORG, PACKET, UTETeachInPacket
ImportError: cannot import name 'UTETeachInPacket' from 'enocean.protocol.packet' (/usr/local/lib/python3.12/site-packages/enocean/protocol/packet.py)

Problems with the new version of Home Assistant Core 2024.5.0

After upgrading to 2024.5.0 I encountered an issue with your integration. The integration crashed on first use after a reboot of HA.
I think the problem has something to do with the topic described here: https://developers.home-assistant.io/blog/2024/03/09/import_executor_default/
If Home Assistant is running and I reload your integration, it works again.

Error Log is:
Uncaught thread exception
Traceback (most recent call last):
File "/usr/local/lib/python3.12/threading.py", line 1073, in _bootstrap_inner
self.run()
File "/usr/local/lib/python3.12/site-packages/eltakobus/serial.py", line 176, in run
self.__callback(parsed_msg)
File "/config/custom_components/eltako/gateway.py", line 300, in _callback_receive_message_from_serial_bus
self._fire_last_message_received_event()
File "/config/custom_components/eltako/gateway.py", line 107, in _fire_last_message_received_event
self.hass.async_create_task(
File "/usr/src/homeassistant/homeassistant/core.py", line 816, in async_create_task
self.verify_event_loop_thread("async_create_task")
File "/usr/src/homeassistant/homeassistant/core.py", line 440, in verify_event_loop_thread
frame.report(
File "/usr/src/homeassistant/homeassistant/helpers/frame.py", line 162, in report
_report_integration(what, integration_frame, level, error_if_integration)
File "/usr/src/homeassistant/homeassistant/helpers/frame.py", line 203, in _report_integration
raise RuntimeError(
RuntimeError: Detected that custom integration 'eltako' calls async_create_task from a thread at custom_components/eltako/gateway.py, line 107: self.hass.async_create_task(. Please report it to the author of the 'eltako' custom integration.

If fixed it localy by a try: execpt: block around the async_create_task calles on gateway.py. A change to the manifest as mentioned in the link, didn't help so far.

port and auto_reconnect option not accepted in YAML

port and auto_reconnect option not accepted in YAML with the result of the Integration not loading.

grafik

YAML:

  gateway:
...
  - id: 2
    base_id: FF-9F-5E-80 # PioTek FAM-USB 515 # /dev/serial/by-id/usb-FTDI_FT232R_USB_UART_AB0P4TMI-if00-port0
    #device_type: "enocean-usb300"
    serial_path: "192.168.2.7"
    device_type: "mgw-lan"
    address: 192.168.2.7
    port: 5100
    auto_reconnect: False
    devices:
...

grafik

Reference: #121

problems with connection to mgw-lan

I followed the documentation but I do not know how to connect to my LAN Gateway. The doc says:

`eltako:
gateway:

  • id: 1
    device_type: mgw-lan
    base_id: FF-80-80-00 # baseId of LAN gateway`

How do I find the base-id ?
the ID from my FAM14 is it not because it seems not to connect to it.

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.