fruggy83 / openocean

27 stars 11 forks source link

Support for EEP F6-05-02 (smoke detector, Afriso ASD 20) #71

Closed benderl closed 4 years ago

benderl commented 4 years ago

I am searching for a smoke detector and found the ASD from Afriso (https://www.afriso.com/de/PM/Haustechnik/AFRISO-Smart-Home/Funk-Rauchwarnmelder-ASD). The variant ASD 20 uses EEP F6-05-02, which seems to be a standard for smoke detectors.

Can you please support or tell me how I can help you to support this EEP?

fruggy83 commented 4 years ago

Hi @benderl,

no big deal. Can you trigger the alarm in some way for testing? What channels do you expect this thing to have? A switch channel representing fire/smoke detected yes/no and another string channel representing the three different states alarm off/on/low battery? What do you think?

Best regards Daniel

benderl commented 4 years ago

The smoke detector arrived just today. I will try to test it till sunday. What is the best log setting so you get all the details you need?

The switch channel for smoke detected yes/no is ok, but I would seperate the battery status into an own channel "low battery" yes/no. So it is easier (at least for me) to trigger a rule.

Your string cannel would be perfect for displaying the current status on a panel.

benderl commented 4 years ago

These are the log entries from the learn procedure:

2019-09-19 13:34:24.868 [INFO ] [covery.EnOceanDeviceDiscoveryService] - Starting EnOcean discovery and accepting teach in requests
2019-09-19 13:34:27.293 [TRACE] [ernal.transceiver.EnOceanTransceiver] - Received Sync Byte
2019-09-19 13:34:27.297 [TRACE] [ernal.transceiver.EnOceanTransceiver] - >> Received header, data length 7 optional length 7 packet type 1
2019-09-19 13:34:27.310 [DEBUG] [ernal.transceiver.EnOceanTransceiver] - RADIO_ERP1 with RORG RPS for 05173837 payload F610051738370001FFFFFFFF4700 received
2019-09-19 13:34:27.314 [INFO ] [ernal.transceiver.EnOceanTransceiver] - Received teach in message from 05173837
2019-09-19 13:34:27.318 [INFO ] [covery.EnOceanDeviceDiscoveryService] - EnOcean Package discovered, RORG RPS, payload F6100517383700, additional 01FFFFFFFF4700
2019-09-19 13:34:27.331 [INFO ] [g.discovery.internal.PersistentInbox] - Added new thing 'enocean:pushButton:ANZ214GH:05173837' to inbox.
2019-09-19 13:34:27.900 [TRACE] [ernal.transceiver.EnOceanTransceiver] - Received Sync Byte
2019-09-19 13:34:27.903 [TRACE] [ernal.transceiver.EnOceanTransceiver] - >> Received header, data length 7 optional length 7 packet type 1
2019-09-19 13:34:27.907 [DEBUG] [ernal.transceiver.EnOceanTransceiver] - RADIO_ERP1 with RORG RPS for 05173837 payload F600051738370001FFFFFFFF4700 received
2019-09-19 13:34:27.909 [INFO ] [ernal.transceiver.EnOceanTransceiver] - Received teach in message from 05173837
2019-09-19 13:34:27.911 [INFO ] [covery.EnOceanDeviceDiscoveryService] - EnOcean Package discovered, RORG RPS, payload F6000517383700, additional 01FFFFFFFF4700
2019-09-19 13:34:28.491 [TRACE] [ernal.transceiver.EnOceanTransceiver] - Received Sync Byte
2019-09-19 13:34:28.496 [TRACE] [ernal.transceiver.EnOceanTransceiver] - >> Received header, data length 7 optional length 7 packet type 1
2019-09-19 13:34:28.509 [DEBUG] [ernal.transceiver.EnOceanTransceiver] - RADIO_ERP1 with RORG RPS for 05173837 payload F600051738370001FFFFFFFF4700 received
2019-09-19 13:34:28.513 [INFO ] [ernal.transceiver.EnOceanTransceiver] - Received teach in message from 05173837
2019-09-19 13:34:28.517 [INFO ] [covery.EnOceanDeviceDiscoveryService] - EnOcean Package discovered, RORG RPS, payload F6000517383700, additional 01FFFFFFFF4700
2019-09-19 13:35:24.867 [INFO ] [covery.EnOceanDeviceDiscoveryService] - Stopping EnOcean discovery scan

When I insert the smoke detector part into the socket the following telegram is send:

2019-09-19 13:46:19.145 [TRACE] [ernal.transceiver.EnOceanTransceiver] - Received Sync Byte
2019-09-19 13:46:19.152 [TRACE] [ernal.transceiver.EnOceanTransceiver] - >> Received header, data length 7 optional length 7 packet type 1
2019-09-19 13:46:19.161 [DEBUG] [ernal.transceiver.EnOceanTransceiver] - RADIO_ERP1 with RORG RPS for 05173837 payload F600051738370001FFFFFFFF3A00 received

Pushing the test button results in the following messages:

2019-09-19 13:48:10.149 [TRACE] [ernal.transceiver.EnOceanTransceiver] - Received Sync Byte
2019-09-19 13:48:10.156 [TRACE] [ernal.transceiver.EnOceanTransceiver] - >> Received header, data length 7 optional length 7 packet type 1
2019-09-19 13:48:10.167 [DEBUG] [ernal.transceiver.EnOceanTransceiver] - RADIO_ERP1 with RORG RPS for 05173837 payload F610051738370001FFFFFFFF4900 received
2019-09-19 13:48:10.469 [TRACE] [ernal.transceiver.EnOceanTransceiver] - Received Sync Byte
2019-09-19 13:48:10.473 [TRACE] [ernal.transceiver.EnOceanTransceiver] - >> Received header, data length 7 optional length 7 packet type 1
2019-09-19 13:48:10.479 [DEBUG] [ernal.transceiver.EnOceanTransceiver] - RADIO_ERP1 with RORG RPS for 05173837 payload F600051738370001FFFFFFFF4900 received
2019-09-19 13:48:11.492 [TRACE] [ernal.transceiver.EnOceanTransceiver] - Received Sync Byte
2019-09-19 13:48:11.497 [TRACE] [ernal.transceiver.EnOceanTransceiver] - >> Received header, data length 7 optional length 7 packet type 1
2019-09-19 13:48:11.505 [DEBUG] [ernal.transceiver.EnOceanTransceiver] - RADIO_ERP1 with RORG RPS for 05173837 payload F600051738370001FFFFFFFF4900 received

Is there anything else you need?

benderl commented 4 years ago

Hi Daniel @fruggy83 I do not want to bother you, but can you estimate when you will add a commit for this device? Thanks, Lutz

fruggy83 commented 4 years ago

Hi Lutz @benderl,

work is already finished. I just wanted to wait for #73 as this issues handles smoke detectors, too. However you find attached a fresh version with support for EEP F6-05-02 (Multi Function Sensor). As this sensor uses an EEP without teach in capability, you have to add it manually. Please share your testing experience with me for an official PR.

Best regards Daniel org.openhab.binding.openocean-2.5.0-SNAPSHOT.jar.zip

benderl commented 4 years ago

Hi Daniel @fruggy83 I just tested it and at least the status and test alarm work as expected. I cannot test the low battery warning, as I do not have an adjustable power source. So this will take some time (months, maybe years?). Thank you for the support!

fruggy83 commented 4 years ago

Hi Lutz @benderl,

thanks a lot for your testing. Sounds good 👍 Battery level testing is indeed hardly possible. We must hope that it works when it is neccessary 🤞 After finishing #73 I will create a PR for the official binding. Maybe you have to change the name of ThingType when you use the official binding. You can follow the discussion regarding the name in #73

Best regards Daniel

benderl commented 4 years ago

Sorry, but there seems to be a problem with this snapshot. All devices are online and receuve updates, but I cannot control any actuator anymore. I will send you a detailed log in the nexr days as I am quite busy right now.

fruggy83 commented 4 years ago

Hi Lutz @benderl,

strange. I do not have such problems. I am using this version even in my productive system.Waiting for your logs. Best regards Daniel

benderl commented 4 years ago

Replacing 2.5.0.2 with the snapshot you linked here produces the following error:

2019-10-18 11:35:28.419 [ome.event.ItemCommandEvent] - Item 'EsszimmerDimmaktorDeckenlampe' received command 100.0
==> /var/log/openhab2/openhab.log <==
2019-10-18 11:35:28.427 [ERROR] [nal.common.AbstractInvocationHandler] - An error occurred while calling method 'ThingHandler.handleCommand()' on 'org.openhab.binding.enocean.internal.handler.EnOceanBaseActuatorHandler@c91c53': org.eclipse.smarthome.core.thing.Thing.getChannel(Lorg/eclipse/smarthome/core/thing/ChannelUID;)Lorg/eclipse/smarthome/core/thing/Channel;
java.lang.NoSuchMethodError: org.eclipse.smarthome.core.thing.Thing.getChannel(Lorg/eclipse/smarthome/core/thing/ChannelUID;)Lorg/eclipse/smarthome/core/thing/Channel;
    at org.openhab.binding.enocean.internal.handler.EnOceanBaseActuatorHandler.handleCommand(EnOceanBaseActuatorHandler.java:210) ~[?:?]
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:?]
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[?:?]
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:?]
    at java.lang.reflect.Method.invoke(Method.java:498) ~[?:?]
    at org.eclipse.smarthome.core.internal.common.AbstractInvocationHandler.invokeDirect(AbstractInvocationHandler.java:153) [102:org.eclipse.smarthome.core:0.10.0.oh240]
    at org.eclipse.smarthome.core.internal.common.InvocationHandlerSync.invoke(InvocationHandlerSync.java:59) [102:org.eclipse.smarthome.core:0.10.0.oh240]
    at com.sun.proxy.$Proxy167.handleCommand(Unknown Source) [279:org.openhab.binding.openocean:2.5.0.201910110826]
    at org.eclipse.smarthome.core.thing.internal.profiles.ProfileCallbackImpl.handleCommand(ProfileCallbackImpl.java:75) [109:org.eclipse.smarthome.core.thing:0.10.0.oh240]
    at org.eclipse.smarthome.core.thing.internal.profiles.SystemDefaultProfile.onCommandFromItem(SystemDefaultProfile.java:49) [109:org.eclipse.smarthome.core.thing:0.10.0.oh240]
    at sun.reflect.GeneratedMethodAccessor39.invoke(Unknown Source) ~[?:?]
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:?]
    at java.lang.reflect.Method.invoke(Method.java:498) ~[?:?]
    at org.eclipse.smarthome.core.internal.common.AbstractInvocationHandler.invokeDirect(AbstractInvocationHandler.java:153) [102:org.eclipse.smarthome.core:0.10.0.oh240]
    at org.eclipse.smarthome.core.internal.common.Invocation.call(Invocation.java:53) [102:org.eclipse.smarthome.core:0.10.0.oh240]
    at java.util.concurrent.FutureTask.run(FutureTask.java:266) [?:?]
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) [?:?]
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) [?:?]
    at java.lang.Thread.run(Thread.java:748) [?:?]

Do I have to delete and readd the things?

fruggy83 commented 4 years ago

Hi Lutz @benderl ,

java.lang.NoSuchMethodError: org.eclipse.smarthome.core.thing.Thing.getChannel

You have to be on the latest openhab snapshot to be able to use the linked version. I am using a new openhab API which got introduced in one of the last version. I am not sure from which version on this can be used, but I guess something after M3. I had the same errors when I put my binding in my 2.5 M1 openhab productive system.

Best regards Daniel

benderl commented 4 years ago

Ok, got it. But I will wait for the official 2.5 release as I do not have a development environment.

fruggy83 commented 4 years ago

PR in official binding missing

fruggy83 commented 4 years ago

PR in official repo created. Hence issue can be closed

fruggy83 commented 4 years ago

Hi Lutz @benderl, I created the PR for the smoke detectors for the official binding. Best regards Daniel