{"action":"created","issue":{"url":"https://api.github.com/repos/merbanan/rtl_433/issues/78","labels_url":"https://api.github.com/repos/merbanan/rtl_433/issues/78/labels{/name}","comments_url":"https://api.github.com/repos/merbanan/rtl_433/issues/78/comments","events_url":"https://api.github.com/repos/merbanan/rtl_433/issues/78/events","html_url":"https://github.com/merbanan/rtl_433/issues/78","id":54675665,"number":78,"title":"Add plugin support for device types","user":{"login":"Batilan","id":7621188,"avatar_url":"https://avatars.githubusercontent.com/u/7621188?v=3","gravatar_id":"","url":"https://api.github.com/users/Batilan","html_url":"https://github.com/Batilan","followers_url":"https://api.github.com/users/Batilan/followers","following_url":"https://api.github.com/users/Batilan/following{/other_user}","gists_url":"https://api.github.com/users/Batilan/gists{/gist_id}","starred_url":"https://api.github.com/users/Batilan/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Batilan/subscriptions","organizations_url":"https://api.github.com/users/Batilan/orgs","repos_url":"https://api.github.com/users/Batilan/repos","events_url":"https://api.github.com/users/Batilan/events{/privacy}","received_events_url":"https://api.github.com/users/Batilan/received_events","type":"User","site_admin":false},"labels":[],"state":"closed","locked":false,"assignee":null,"milestone":null,"comments":11,"created_at":"2015-01-17T21:19:17Z","updated_at":"2015-01-26T22:51:45Z","closed_at":"2015-01-26T22:51:45Z","body":"@merbanan: good to see you back and active again. Thanks for this great piece of software!\r\n\r\nLately I have been working on a plugin infrastructure for rtl_433 so that device types can be added at runtime by simply adding or removing a library file per device type. This has been implemented and seems to be working  OK. See my branch plugins at https://github.com/Batilan/rtl_433/tree/plugins.\r\n\r\nBesides the device callbacks I'm also thinking about implementing the PWM decoders as plugins. This would allow for  easier development of alternative (PWM) decoders. Currently the PWM decoders are called by all devices with different time settings for each received message. I think this can probably be made more efficient. \r\n\r\nI think for low end devices (like Raspberry) this construct together with calling all all availabale device callbacks as is done now stresses some of these devices quite heavily already and is not really scalable if we want to add more and more devices. The factoring out of the device callbacks by @helgew is quite an improvement and makes adding devices and avoiding conflicts easier (I needed to to the same for the plugin module).\r\n\r\nThe reason I have not yet submitted a pull request is that I would like to improve the plugin interface so that it is usable in a more generic way. Also the plugin module needs some adaptions to make it work for Windows environments (is this software actually compiled and used by Windows users?). I have tested it only for different Linux environments like Raspberry and x86 distributions.\r\n\r\nI would like to exchange some idea's and prevent duplicating of work, however a Github  issue is probably not the best communication medium for this?. Lately I have also been exchanging ideas with @rct who has also been doing some nice improvements on rtl_433. I'm motivated  to share idea's with any other developer that has idea's about improving the great rtl_433 software. I understand @merbanan  also has idea's about improving the software but has limited time, I would like to help with structural improvements making the rtl_433 more scalable so we can remove the line \"This software is mostly useable for developers right now.\"\r\n\r\nLooking forward for any responses."},"comment":{"url":"https://api.github.com/repos/merbanan/rtl_433/issues/comments/71555710","html_url":"https://github.com/merbanan/rtl_433/issues/78#issuecomment-71555710","issue_url":"https://api.github.com/repos/merbanan/rtl_433/issues/78","id":71555710,"user":{"login":"merbanan","id":124883,"avatar_url":"https://avatars.githubusercontent.com/u/124883?v=3","gravatar_id":"","url":"https://api.github.com/users/merbanan","html_url":"https://github.com/merbanan","followers_url":"https://api.github.com/users/merbanan/followers","following_url":"https://api.github.com/users/merbanan/following{/other_user}","gists_url":"https://api.github.com/users/merbanan/gists{/gist_id}","starred_url":"https://api.github.com/users/merbanan/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/merbanan/subscriptions","organizations_url":"https://api.github.com/users/merbanan/orgs","repos_url":"https://api.github.com/users/merbanan/repos","events_url":"https://api.github.com/users/merbanan/events{/privacy}","received_events_url":"https://api.github.com/users/merbanan/received_events","type":"User","site_admin":false},"created_at":"2015-01-26T22:51:45Z","updated_at":"2015-01-26T22:51:45Z","body":"I will close this issue. Reopen if needed."}}