Comments (2)
Yes the current network configuration is a bit of a mess and not consistently used probably also because of its limitations.
It is probably best to be able to select the default network interfaces and have the possibility to override the default values when necessary at add-on or Thing level.
I am not clear on the onlyUseOneAddress yet, although the purpose is similar, limiting the range used.
The reason for this option is explained in eclipse-archived/smarthome#6005
from openhab-core.
You can not run away from making "network" an API citizen, especially if you ever consider making better support for containers which multiply network interfaces even in most basic setups.
I've published some network api concepts 9 months ago; which actually stayed in my drawer for couple months. You can see org.connectorio.addons.network, org.connectorio.addons.network.ip and org.connectorio.addons.network.jvm.internal, primarily to see if it can be used to centralized management of network access from bindings. Usage of network api can be observed in AmsAdsInterfaceDiscoveryService.
Diving more (actually speculating), thanks to osgi ServiceFactory
concept you can provide a multiplexed NetworkRegistry
instance which will filter its entries based on bundles which make use of it. With this engineering trick your binding might still rely on enumerated networks, while control over access to them them is shifted somewhere else. This is essential to provide a unified way to make network access management possible, otherwise it will spread across many edges of bridges/things, probably beyond user oversight. Maybe OH is not a network router, but it does act as a hub, and depending on setup, framework role might be to interconnect incompatible networks.
I've purposely not made IpNetwork
a concrete type because it can be supplied through JVM (read only). Under Linux there are ways to manage network level settings from userspace over dbus (using systemd-network
or NetworkManager
namespaces).
I also made one step further by not assuming IP to be only one kind of network, because i.e. RS485 or CAN interface can be used to launch network as well (hence there is NetworkInterfaceType
). If you think of it even more, ZWave and many other radio standards, rely on network node concepts which are flattened to thing instances. In case of matter you might even have an overlay network which span from zigbee radio to ip layer.
I know all above is over-engineered, especially for my own needs, but its not about me, but platform view. ;-)
from openhab-core.
Related Issues (20)
- Allow offset for "at the time specified in an item's state" trigger HOT 7
- customTags.yaml not loading after reboot HOT 6
- Thing File based configuration not loaded correctly after changing HOT 33
- Attempting to send a state update of an item which doesn't exist: __v_isRef HOT 7
- Default statedescription pattern for NumberItem HOT 4
- Error during logger activation HOT 4
- Snapshot 4069: failed to install bundles at startup HOT 39
- Missmatch between system:start-level and openhab.event.StartlevelEvent HOT 5
- OpenHAB 4.1.2 - Karaf cannot start HOT 4
- Add SDDP service to core HOT 4
- Sitemap widget grid
- [ephemeris] Calls to `isBankHoliday` failing with exception HOT 6
- Local build failing in config.core due to violation in schema\config-description-1.0.0.xsd HOT 2
- Thing file loading issue HOT 12
- Persisted group items with base type Number:Dimension not restored correctly in persistence extensions HOT 3
- What to do with my 'fake' device code
- Possible Startup loop HOT 2
- Skipping setup causes issues due to locale not being set HOT 2
- File-configured item profile is not updated in Admin UI (only after reboot) HOT 25
- SLF4J(W) console output when logging into Karaf console HOT 2
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
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.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from openhab-core.