Millheat local API development questions

I know, but it’s usually hard to figure out the syntax. I’ve ended up picking up bits of into here and there, and I certainly don’t remember it when I need is, so I’ll have to look through my existing Items for something similar to what I need. I have working Items that look like this:

Number:Temperature <Item name>    "Termostat"                    (gToiletHeating) ["Setpoint", "Temperature"] {
	channel="zwave:device:<UUID>:node20:thermostat_setpoint_heating",
	listWidget="oh-stepper-item"[
		fill=true,
		max=35.0,
		min=15.0,
		raised=true,
		round=true,
		small=false,
		step=0.5
	],
	widget="oh-stepper-card"[
		fill=true,
		max=35.0,
		min=15.0,
		raised=true,
		round=true,
		small=false,
		step=0.5
	]
}

Unfortunately for some maybe, I see that as the main benefit of using file-based definitions. I can’t “screw it up” by mistake in the UI, or when the UI crashes/bugs.

But, as I understand it, Item metadata still have database storage as well - so you can still add additional metadata that isn’t defined in the .items file for that Item, right? That makes the Item’s metadata somewhat of a mix of write protected and not, and I think that’s quite useful because I can use the UI to “experiment” and when I get it like I want it, I move them to the .items file. But, it can probably be confusing for people too.

Usefull for getting the syntax right, but I would never use this poductive.

I have .items files with most of the standards which I use to import into the UI.
Productive, I only use managed configs.
And if for whatever reason something gets screwed up, the UI has backups of the configs which can be used to get it back working. You can define, how many backups you would like to have…

The base syntax is relatively simple.

<namespace>="<value>"[<config1>=<value1>, <config2>=<value2>]

<namespace> is required and is the unique identifier for the metadata within the Item. The <value> can be blank but the surrounding "" are required. The configuration is an array [ ] of name/value pairs. Configuration is optional and values can be simple porimitives or something conmplex like a dict or JSON string or the like.

That’s the extent of the overall syntax.

There are some well known metadata which specify what should go in the value and what should go in the config, but it’s always going to folow that overall structure.

In the UI, the namespace will be the alst part of the URL when you bring up the metadata in MainUI, and the YAML you see will be:

value: <value>
config:
  <config1>:<value1>
  <config2>:<value2>

Given

	widget="oh-stepper-card"[
		fill=true,
		max=35.0,
		min=15.0,
		raised=true,
		round=true,
		small=false,
		step=0.5
	]
  • <namespace> is “widget”
  • <value> is “oh-stepper-card”
  • <config1> is “fill”
  • <value1> is “true”
  • and so on for the rest of the config values
1 Like

There are many roads to Rome :wink:

I like the flexibility of having the choice, and I think what one lands on ultimately depends on a number of factors, which also includes “personal preference”. For me for example, it can be many months between occasions where I modify the OH config, and what I can remember is also a factor. I know how to handle files, how to back them up (I commit them all to a git repo which is then backed up to tape). I know exactly when I make the commit and thus, when the “backup” is taken. If I configure OH to make backups, I don’t have the same level of control and I have to remember how all this works from time to time.

This adds up to making file-based definitions my preference, but others have different priorities and “personal preferences”.

I did not want to convince you to use managed configs. This is completely up to you.
Just wanted to mention that it is a bad idea to mix file based config with managed config.

You can do this with the JSONDB too. I commit all my OH configs to git and use a 100% managed config. I’m not saying you should too, but it’s a perpetual battle against the impression that one cannot use source control with managed configs.

OH makes backups of the JSONDB on a change. So every time you make a change to something (e.g. add metadata), it will create a backup of that JSONDB file before writing a new one. It’s not really intended to be a long term backup nor a full hisory like you get with source control. It’s more of a safety net in case you mess up somewhere and need to quickly recover when using a managed config or when something goes wrong and your JSONDB becomes corrupted for some reason.

1 Like

I didn’t interpret it so either, I was just explaining why I think it’s natural and fine that people end up preferring different things. And, I don’t mix except for when “trying out something”, and I then delete the managed metadata when I’m done testing.

I know, I commit the JSON DB to git as well. I just still feel that I have “more control” over the files. Most of my Things are managed though. When it comes to Items, I think they are all file-based.

I think the familiarity with general files (that I use for “everything” all the time) and the fact that I know that I don’t have to remember anything about how OH works internally, or that things potentially change in a version upgrade etc. is a major factor for me.

edit: Just to clarify before it is misunderstood: I’m not saying that the .items file syntax can’t change during a version upgrade, I’m saying that the “backup system” that I would rely on for managed Items might change behavior during an upgrade, and I could potentially miss that.

One thing I’m missing in OH is some form of concurrency annotations, like those from net.jcip.annotations or javax.annotation.concurrent. They might be old, but I find them very helpful, both as pure documentation and as help when checking with spotbugs. Are there similar annotations that I just haven’t found? I’m thinking of these or similar: @GuardedBy, @Immutable, @NotThreadSafe and @ThreadSafe.

You are now asking questions you’d better ask on github (openhab-core) as some of our core developers are not so active in the community.

Ok - I’m kind of feeling that GitHub issues are more for bug reports and feature requests than such general questions, but if that’s the way you do it, I guess I can try that.

No, you can also ask questions. You can keep asking here, but sometimes might take a bit longer to get the answer you expect. :wink:

1 Like

I have another, probably equally unsuited, question that I’ll at least try here first.

The framework uses some kind of identifiers when messages are sent throughout the system. Some of those are URIs, and I’m struggling to understand exactly how these are built. I’ve debugged core quite a lot to find it, but I haven’t managed to. I end up in the XML parser classes and a lot of what I think is autogenerated “model” code, and I lose the trail.

The reason I need to understand how they are build is that I’m implementing a ConfigDescriptionProvider. When the framework wants a configuration description, it will query all providers, so I’ll have to filter out which ones I should answer and not. To do that, I’ll have to compare the “identifying URI” with values I’ve determined that applies to the Things I should handle. I’m sure these can take many forms, but here are examples some of those that are relevant to my implementation: thing:millheatlocal:panel-heater:1099ae79b8, thing-type:millheatlocal:panel-heater.

First of all, I don’t even know if I should answer the thing-type requests, as I don’t quite understand what good these descriptions would do. As far as I understand, ThingType is a kind of template that is used before the Thing itself is created, and I’m not sure how relevant it would be for me to answer these. It might be relevant for other providers though. It seems to work if I only reply to the thing requests.

Second, and the most important, is that since I cannot find where these “identifying URIs” are created, I can’t be sure how they are build. It seems to me like they are just a concatenation of either thing: + ThingUID or thing-type: + ThingTypeUID, but that’s just a “reverse engineering assumption” and I don’t know if that will always be the case. That’s why I’ve been trying to find where they are originally created, to make sure that I use the exact same logic.

Does anybody here know where these originate, and how I can be “sure” that the “filters” I create for what to respond to are accurate?

Yet another question: I’m working on implementing Actions for the binding, and I don’t quite see how I can make the Actions “dynamic”. By that I mean, that not all devices support all Actions, and I need a way to only make the supported ones available for a given Thing. The annotations used doesn’t really give that possibility, I can’t really provide one “Actions implementation” for every combination of available Actions.

Any ideas - or a hint about a binding that does just this that I can peek at?

I’m afraid I have no recommendations for this question. I can’t think of any bindging that would need to implement Actions in that way.

1 Like

“Worst case” is that I leave all Actions available, and then they will just fail with “404 - Not found” if executed on devices that don’t support them. But, that’s not exactly elegant, and I’d want to only show the supported ones.

There’s a possibility to turn off “cloud communication” from the local API in these devices. I was logging all related traffic in my firewall while testing this out (only to see that it still contacts several Amazon servers despite this being turned off), and I noticed that it sent some multicast messages on port 5353. I recognized the port as mDNS, and started to investigate - and lo and behold: It does broadcast its presence with mDNS, it’s just completely undocumented.

Following this, I’ve implemented automatic discovery, and it works well for the devices I have - but since it’s undocumented, I have no way to know how to recognize the different device types. I guess that will have to be done through feedback from other users if anybody is going to use this binding with one of the other device types.

But, my problem/question is this: I use the MAC address as representation property to avoid multiple “discoveries” of the same device. I can’t find any other piece of info that can be used to uniquely identify them. But, I don’t store the MAC address in the configuration. This means that the device must be queried before the MAC address is known when OH is started. While testing, this seems to work out most of the time, but from time to time, a device is discovered before the devices has been polled and the MAC address registered. This leads to the already defined device being “discovered”, ending up in the inbox.

Is there any way to avoid this? Can I somehow tell the discovery to “hold off” a bit so that the device has the time to get initialized and its properties populated? Or is there some other way to handle this - I can’t imagine that this situation is unique for this binding?

Can you please post a few mDNS announcements.

From where? Do you mean by enabling mDNS logging somehow and posting that part of the log? I used an Android app to actually figure out what it announced, since none of the Windows mDNS “browsers” etc. I tried showed anything.

Just so you understand, there’s no problem with the discovery itself, except when I start OH. I’m pretty sure it’s because the discovery “discovers” the device before the MAC address has been read from the device by the binding and stored as the representation property. And this isn’t consistent - most times I start OH it doesn’t “rediscover”, but sometimes it does.

I’m not quite sure what you’re after, but I’ve turned on jmDNS logging and here is a part of what that shows. It’s the one that ends with address 212 that is the actual device here.

07:15:09.989 [DEBUG] [javax.jmdns.impl.JmDNSImpl          ] - JmDNS instance created
07:15:10.010 [DEBUG] [javax.jmdns.impl.JmDNSImpl          ] - JmDNS instance created
07:15:10.035 [DEBUG] [javax.jmdns.impl.JmDNSImpl          ] - Xxxxo-mshome-net.local.-collector: 
	Type: _mill._tcp.local.
	No services collected.
	No event queued.
07:15:10.035 [DEBUG] [javax.jmdns.impl.JmDNSImpl          ] - Xxxxo-mshome-net.local.-collector: 
	Type: _mill._tcp.local.
	No services collected.
	No event queued.
07:15:10.260 [DEBUG] [.impl.tasks.resolver.DNSResolverTask] - ServiceResolver(Xxxxo-mshome-net.local.).run() JmDNS querying service
07:15:10.260 [DEBUG] [.impl.tasks.resolver.DNSResolverTask] - ServiceResolver(10-xx-xx-94.local.).run() JmDNS querying service
07:15:10.266 [DEBUG] [.impl.tasks.resolver.DNSResolverTask] - ServiceResolver(10-xx-xx-94.local.).run() JmDNS querying service
07:15:10.266 [DEBUG] [.impl.tasks.resolver.DNSResolverTask] - ServiceResolver(Xxxxo-mshome-net.local.).run() JmDNS querying service
07:15:10.266 [DEBUG] [.impl.tasks.resolver.DNSResolverTask] - ServiceResolver(10-xx-xx-94.local.).run() JmDNS querying service
07:15:10.266 [DEBUG] [.impl.tasks.resolver.DNSResolverTask] - ServiceResolver(Xxxxo-mshome-net.local.).run() JmDNS querying service
07:15:10.268 [DEBUG] [javax.jmdns.impl.DNSIncoming        ] - DNSIncoming() questions:1 answers:0 authorities:0 additionals:0
07:15:10.268 [DEBUG] [javax.jmdns.impl.DNSIncoming        ] - DNSIncoming() questions:1 answers:0 authorities:0 additionals:0
07:15:10.271 [DEBUG] [javax.jmdns.impl.JmDNSImpl          ] - 10-xx-xx-94.local. handle query: dns[query,10.xx.xx.94:5353, length=34, id=0x0, questions=1
questions:
	[Pointer@1699396260 type: TYPE_PTR index 12, class: CLASS_IN index 1, name: _mill._tcp.local.]]
07:15:10.271 [DEBUG] [javax.jmdns.impl.JmDNSImpl          ] - Xxxxo-mshome-net.local. handle query: dns[query,172.20.160.1:5353, length=34, id=0x0, questions=1
questions:
	[Pointer@810071977 type: TYPE_PTR index 12, class: CLASS_IN index 1, name: _mill._tcp.local.]]
07:15:10.271 [DEBUG] [javax.jmdns.impl.DNSIncoming        ] - DNSIncoming() questions:1 answers:0 authorities:0 additionals:0
07:15:10.271 [DEBUG] [javax.jmdns.impl.DNSIncoming        ] - DNSIncoming() questions:1 answers:0 authorities:0 additionals:0
07:15:10.272 [DEBUG] [javax.jmdns.impl.JmDNSImpl          ] - 10-xx-xx-94.local. handle query: dns[query,10.xx.xx.94:5353, length=34, id=0x0, questions=1
questions:
	[Pointer@1710986724 type: TYPE_PTR index 12, class: CLASS_IN index 1, name: _mill._tcp.local.]]
07:15:10.272 [DEBUG] [javax.jmdns.impl.JmDNSImpl          ] - Xxxxo-mshome-net.local. handle query: dns[query,172.20.160.1:5353, length=34, id=0x0, questions=1
questions:
	[Pointer@588507844 type: TYPE_PTR index 12, class: CLASS_IN index 1, name: _mill._tcp.local.]]
07:15:10.272 [DEBUG] [javax.jmdns.impl.DNSIncoming        ] - DNSIncoming() questions:1 answers:0 authorities:0 additionals:0
07:15:10.272 [DEBUG] [javax.jmdns.impl.DNSIncoming        ] - DNSIncoming() questions:1 answers:0 authorities:0 additionals:0
07:15:10.272 [DEBUG] [javax.jmdns.impl.JmDNSImpl          ] - 10-xx-xx-94.local. handle query: dns[query,10.xx.xx.94:5353, length=34, id=0x0, questions=1
questions:
	[Pointer@1439997029 type: TYPE_PTR index 12, class: CLASS_IN index 1, name: _mill._tcp.local.]]
07:15:10.272 [DEBUG] [javax.jmdns.impl.JmDNSImpl          ] - Xxxxo-mshome-net.local. handle query: dns[query,172.20.160.1:5353, length=34, id=0x0, questions=1
questions:
	[Pointer@262078506 type: TYPE_PTR index 12, class: CLASS_IN index 1, name: _mill._tcp.local.]]
07:15:10.332 [DEBUG] [javax.jmdns.impl.DNSIncoming        ] - DNSIncoming() questions:1 answers:2 authorities:0 additionals:0
07:15:10.333 [DEBUG] [javax.jmdns.impl.JmDNSImpl          ] - 10-xx-xx-94.local. handle query: dns[query,10.xx.xx.24:5353, length=112, id=0x0, questions=1, answers=2
questions:
	[Pointer@2005720043 type: TYPE_PTR index 12, class: CLASS_IN index 1, name: _tcp.local.]
answers:
	[Pointer@113919691 type: TYPE_PTR index 12, class: CLASS_IN index 1, name: _openhab-server._tcp.local. ttl: '3599/3600' alias: 'openhab._openhab-server._tcp.local.']
	[Pointer@26748581 type: TYPE_PTR index 12, class: CLASS_IN index 1, name: _openhab-server-ssl._tcp.local. ttl: '3600/3600' alias: 'openhab-ssl._openhab-server-ssl._tcp.local.']]
07:15:10.333 [DEBUG] [javax.jmdns.impl.JmDNSImpl          ] - 10-xx-xx-94.local. handle response: [Pointer@113919691 type: TYPE_PTR index 12, class: CLASS_IN index 1, name: _openhab-server._tcp.local. ttl: '3599/3600' alias: 'openhab._openhab-server._tcp.local.']
07:15:10.333 [DEBUG] [javax.jmdns.impl.JmDNSImpl          ] - 10-xx-xx-94.local. handle response cached record: null
07:15:10.334 [DEBUG] [javax.jmdns.impl.JmDNSImpl          ] - 10-xx-xx-94.local. registering service type: _openhab-server._tcp.local. as: _openhab-server._tcp.local.
07:15:10.337 [DEBUG] [javax.jmdns.impl.JmDNSImpl          ] - 10-xx-xx-94.local. handle response: [Pointer@26748581 type: TYPE_PTR index 12, class: CLASS_IN index 1, name: _openhab-server-ssl._tcp.local. ttl: '3599/3600' alias: 'openhab-ssl._openhab-server-ssl._tcp.local.']
07:15:10.337 [DEBUG] [javax.jmdns.impl.JmDNSImpl          ] - 10-xx-xx-94.local. handle response cached record: null
07:15:10.337 [DEBUG] [javax.jmdns.impl.JmDNSImpl          ] - 10-xx-xx-94.local. registering service type: _openhab-server-ssl._tcp.local. as: _openhab-server-ssl._tcp.local.
07:15:10.485 [DEBUG] [.impl.tasks.resolver.DNSResolverTask] - ServiceResolver(10-xx-xx-94.local.).run() JmDNS querying service
07:15:10.485 [DEBUG] [.impl.tasks.resolver.DNSResolverTask] - ServiceResolver(Xxxxo-mshome-net.local.).run() JmDNS querying service
07:15:10.486 [DEBUG] [javax.jmdns.impl.DNSIncoming        ] - DNSIncoming() questions:1 answers:0 authorities:0 additionals:0
07:15:10.486 [DEBUG] [javax.jmdns.impl.DNSIncoming        ] - DNSIncoming() questions:1 answers:0 authorities:0 additionals:0
07:15:10.487 [DEBUG] [javax.jmdns.impl.JmDNSImpl          ] - Xxxxo-mshome-net.local. handle query: dns[query,172.20.160.1:5353, length=34, id=0x0, questions=1
questions:
	[Pointer@40913101 type: TYPE_PTR index 12, class: CLASS_IN index 1, name: _mill._tcp.local.]]
07:15:10.487 [DEBUG] [javax.jmdns.impl.JmDNSImpl          ] - 10-xx-xx-94.local. handle query: dns[query,10.xx.xx.94:5353, length=34, id=0x0, questions=1
questions:
	[Pointer@894719954 type: TYPE_PTR index 12, class: CLASS_IN index 1, name: _mill._tcp.local.]]
07:15:10.490 [DEBUG] [.impl.tasks.resolver.DNSResolverTask] - ServiceResolver(10-xx-xx-94.local.).run() JmDNS querying service
07:15:10.490 [DEBUG] [javax.jmdns.impl.DNSIncoming        ] - DNSIncoming() questions:1 answers:0 authorities:0 additionals:0
07:15:10.490 [DEBUG] [javax.jmdns.impl.JmDNSImpl          ] - 10-xx-xx-94.local. handle query: dns[query,10.xx.xx.94:5353, length=34, id=0x0, questions=1
questions:
	[Pointer@2092639142 type: TYPE_PTR index 12, class: CLASS_IN index 1, name: _mill._tcp.local.]]
07:15:10.491 [DEBUG] [.impl.tasks.resolver.DNSResolverTask] - ServiceResolver(Xxxxo-mshome-net.local.).run() JmDNS querying service
07:15:10.491 [DEBUG] [.impl.tasks.resolver.DNSResolverTask] - ServiceResolver(Xxxxo-mshome-net.local.).run() JmDNS querying service
07:15:10.491 [DEBUG] [javax.jmdns.impl.DNSIncoming        ] - DNSIncoming() questions:1 answers:0 authorities:0 additionals:0
07:15:10.491 [DEBUG] [javax.jmdns.impl.JmDNSImpl          ] - Xxxxo-mshome-net.local. handle query: dns[query,172.20.160.1:5353, length=34, id=0x0, questions=1
questions:
	[Pointer@1274602409 type: TYPE_PTR index 12, class: CLASS_IN index 1, name: _mill._tcp.local.]]
07:15:10.492 [DEBUG] [javax.jmdns.impl.DNSIncoming        ] - DNSIncoming() questions:1 answers:0 authorities:0 additionals:0
07:15:10.492 [DEBUG] [.impl.tasks.resolver.DNSResolverTask] - ServiceResolver(10-xx-xx-94.local.).run() JmDNS querying service
07:15:10.492 [DEBUG] [javax.jmdns.impl.JmDNSImpl          ] - Xxxxo-mshome-net.local. handle query: dns[query,172.20.160.1:5353, length=34, id=0x0, questions=1
questions:
	[Pointer@1996584408 type: TYPE_PTR index 12, class: CLASS_IN index 1, name: _mill._tcp.local.]]
07:15:10.492 [DEBUG] [javax.jmdns.impl.DNSIncoming        ] - DNSIncoming() questions:1 answers:0 authorities:0 additionals:0
07:15:10.492 [DEBUG] [javax.jmdns.impl.JmDNSImpl          ] - 10-xx-xx-94.local. handle query: dns[query,10.xx.xx.94:5353, length=34, id=0x0, questions=1
questions:
	[Pointer@829905663 type: TYPE_PTR index 12, class: CLASS_IN index 1, name: _mill._tcp.local.]]
07:15:10.639 [DEBUG] [javax.jmdns.impl.DNSIncoming        ] - DNSIncoming() questions:0 answers:3 authorities:0 additionals:1
07:15:10.641 [DEBUG] [javax.jmdns.impl.JmDNSImpl          ] - 10-xx-xx-94.local. handle response: [Pointer@599142596 type: TYPE_PTR index 12, class: CLASS_IN index 1, name: _mill._tcp.local. ttl: '4499/4500' alias: 'mill_modular_68B6B34D7434._mill._tcp.local.']
07:15:10.641 [DEBUG] [javax.jmdns.impl.JmDNSImpl          ] - 10-xx-xx-94.local. handle response cached record: null
07:15:10.641 [DEBUG] [javax.jmdns.impl.JmDNSImpl          ] - 10-xx-xx-94.local. registering service type: _mill._tcp.local. as: _mill._tcp.local.
07:15:10.642 [DEBUG] [javax.jmdns.impl.JmDNSImpl          ] - 10-xx-xx-94.local. registering service type: _mill._tcp.local. as: _mill._tcp.local.
07:15:10.644 [DEBUG] [javax.jmdns.impl.JmDNSImpl          ] - 10-xx-xx-94.local. handle response: [Service@877374336 type: TYPE_SRV index 33, class: CLASS_IN index 1-unique, name: mill_modular_68B6B34D7434._mill._tcp.local. ttl: '119/120' server: 'mill_modular_68B6B34D7434.local.:80']
07:15:10.645 [DEBUG] [javax.jmdns.impl.JmDNSImpl          ] - 10-xx-xx-94.local. handle response cached record: null
07:15:10.646 [DEBUG] [javax.jmdns.impl.JmDNSImpl          ] - 10-xx-xx-94.local. handle response: [Text@1831907714 type: TYPE_TXT index 16, class: CLASS_IN index 1-unique, name: mill_modular_68B6B34D7434._mill._tcp.local. ttl: '4499/4500' text: 'name=Panel Heate...']
07:15:10.646 [DEBUG] [javax.jmdns.impl.JmDNSImpl          ] - 10-xx-xx-94.local. handle response cached record: null
07:15:10.646 [DEBUG] [javax.jmdns.impl.JmDNSImpl          ] - 10-xx-xx-94.local. handle response: [IPv4Address@864274358 type: TYPE_A index 1, class: CLASS_IN index 1-unique, name: mill_modular_68B6B34D7434.local. ttl: '119/120' address: '10.xx.xx.212']
07:15:10.646 [DEBUG] [javax.jmdns.impl.JmDNSImpl          ] - 10-xx-xx-94.local. handle response cached record: null
07:15:10.648 [DEBUG] [javax.jmdns.impl.DNSIncoming        ] - DNSIncoming() questions:0 answers:3 authorities:0 additionals:1
07:15:10.648 [DEBUG] [javax.jmdns.impl.JmDNSImpl          ] - 10-xx-xx-94.local. handle response: [Pointer@352234902 type: TYPE_PTR index 12, class: CLASS_IN index 1, name: _mill._tcp.local. ttl: '4500/4500' alias: 'mill_modular_68B6B34D7434._mill._tcp.local.']
07:15:10.648 [DEBUG] [javax.jmdns.impl.JmDNSImpl          ] - 10-xx-xx-94.local. handle response cached record: [Pointer@599142596 type: TYPE_PTR index 12, class: CLASS_IN index 1, name: _mill._tcp.local. ttl: '4499/4500' alias: 'mill_modular_68B6B34D7434._mill._tcp.local.']
07:15:10.648 [DEBUG] [javax.jmdns.impl.JmDNSImpl          ] - 10-xx-xx-94.local. registering service type: _mill._tcp.local. as: _mill._tcp.local.
07:15:10.648 [DEBUG] [javax.jmdns.impl.JmDNSImpl          ] - 10-xx-xx-94.local. handle response: [Service@842047331 type: TYPE_SRV index 33, class: CLASS_IN index 1-unique, name: mill_modular_68B6B34D7434._mill._tcp.local. ttl: '120/120' server: 'mill_modular_68B6B34D7434.local.:80']
07:15:10.649 [DEBUG] [javax.jmdns.impl.JmDNSImpl          ] - 10-xx-xx-94.local. handle response cached record: [Service@877374336 type: TYPE_SRV index 33, class: CLASS_IN index 1-unique, name: mill_modular_68B6B34D7434._mill._tcp.local. ttl: '119/120' server: 'mill_modular_68B6B34D7434.local.:80']
07:15:10.649 [DEBUG] [javax.jmdns.impl.JmDNSImpl          ] - 10-xx-xx-94.local. handle response: [Text@1544174340 type: TYPE_TXT index 16, class: CLASS_IN index 1-unique, name: mill_modular_68B6B34D7434._mill._tcp.local. ttl: '4499/4500' text: 'name=Panel Heate...']
07:15:10.649 [DEBUG] [javax.jmdns.impl.JmDNSImpl          ] - 10-xx-xx-94.local. handle response cached record: [Text@1831907714 type: TYPE_TXT index 16, class: CLASS_IN index 1-unique, name: mill_modular_68B6B34D7434._mill._tcp.local. ttl: '4499/4500' text: 'name=Panel Heate...']
07:15:10.649 [DEBUG] [javax.jmdns.impl.JmDNSImpl          ] - 10-xx-xx-94.local. handle response: [IPv4Address@107556329 type: TYPE_A index 1, class: CLASS_IN index 1-unique, name: mill_modular_68B6B34D7434.local. ttl: '119/120' address: '10.xx.xx.212']
07:15:10.649 [DEBUG] [javax.jmdns.impl.JmDNSImpl          ] - 10-xx-xx-94.local. handle response cached record: [IPv4Address@864274358 type: TYPE_A index 1, class: CLASS_IN index 1-unique, name: mill_modular_68B6B34D7434.local. ttl: '119/120' address: '10.xx.xx.212']
07:15:10.649 [DEBUG] [javax.jmdns.impl.DNSIncoming        ] - DNSIncoming() questions:0 answers:3 authorities:0 additionals:1
07:15:10.650 [DEBUG] [javax.jmdns.impl.JmDNSImpl          ] - 10-xx-xx-94.local. handle response: [Pointer@1729798831 type: TYPE_PTR index 12, class: CLASS_IN index 1, name: _mill._tcp.local. ttl: '4500/4500' alias: 'mill_modular_68B6B34D7434._mill._tcp.local.']
07:15:10.650 [DEBUG] [javax.jmdns.impl.JmDNSImpl          ] - 10-xx-xx-94.local. handle response cached record: [Pointer@599142596 type: TYPE_PTR index 12, class: CLASS_IN index 1, name: _mill._tcp.local. ttl: '4499/4500' alias: 'mill_modular_68B6B34D7434._mill._tcp.local.']
07:15:10.650 [DEBUG] [javax.jmdns.impl.JmDNSImpl          ] - 10-xx-xx-94.local. registering service type: _mill._tcp.local. as: _mill._tcp.local.
07:15:10.650 [DEBUG] [javax.jmdns.impl.JmDNSImpl          ] - 10-xx-xx-94.local. handle response: [Service@1374155432 type: TYPE_SRV index 33, class: CLASS_IN index 1-unique, name: mill_modular_68B6B34D7434._mill._tcp.local. ttl: '120/120' server: 'mill_modular_68B6B34D7434.local.:80']
07:15:10.650 [DEBUG] [javax.jmdns.impl.JmDNSImpl          ] - 10-xx-xx-94.local. handle response cached record: [Service@877374336 type: TYPE_SRV index 33, class: CLASS_IN index 1-unique, name: mill_modular_68B6B34D7434._mill._tcp.local. ttl: '119/120' server: 'mill_modular_68B6B34D7434.local.:80']
07:15:10.651 [DEBUG] [javax.jmdns.impl.JmDNSImpl          ] - 10-xx-xx-94.local. handle response: [Text@1547182475 type: TYPE_TXT index 16, class: CLASS_IN index 1-unique, name: mill_modular_68B6B34D7434._mill._tcp.local. ttl: '4499/4500' text: 'name=Panel Heate...']
07:15:10.651 [DEBUG] [javax.jmdns.impl.JmDNSImpl          ] - 10-xx-xx-94.local. handle response cached record: [Text@1831907714 type: TYPE_TXT index 16, class: CLASS_IN index 1-unique, name: mill_modular_68B6B34D7434._mill._tcp.local. ttl: '4499/4500' text: 'name=Panel Heate...']
07:15:10.651 [DEBUG] [javax.jmdns.impl.JmDNSImpl          ] - 10-xx-xx-94.local. handle response: [IPv4Address@326195584 type: TYPE_A index 1, class: CLASS_IN index 1-unique, name: mill_modular_68B6B34D7434.local. ttl: '119/120' address: '10.xx.xx.212']
07:15:10.651 [DEBUG] [javax.jmdns.impl.JmDNSImpl          ] - 10-xx-xx-94.local. handle response cached record: [IPv4Address@864274358 type: TYPE_A index 1, class: CLASS_IN index 1-unique, name: mill_modular_68B6B34D7434.local. ttl: '119/120' address: '10.xx.xx.212']
07:15:10.710 [DEBUG] [.impl.tasks.resolver.DNSResolverTask] - ServiceResolver(Xxxxo-mshome-net.local.).run() JmDNS querying service
07:15:10.710 [DEBUG] [javax.jmdns.impl.DNSIncoming        ] - DNSIncoming() questions:1 answers:0 authorities:0 additionals:0
07:15:10.711 [DEBUG] [javax.jmdns.impl.JmDNSImpl          ] - Xxxxo-mshome-net.local. handle query: dns[query,172.20.160.1:5353, length=34, id=0x0, questions=1
questions:
	[Pointer@6862146 type: TYPE_PTR index 12, class: CLASS_IN index 1, name: _mill._tcp.local.]]
07:15:10.711 [DEBUG] [.impl.tasks.resolver.DNSResolverTask] - ServiceResolver(10-xx-xx-94.local.).run() JmDNS querying service
07:15:10.711 [DEBUG] [javax.jmdns.impl.DNSIncoming        ] - DNSIncoming() questions:1 answers:0 authorities:0 additionals:0
07:15:10.712 [DEBUG] [javax.jmdns.impl.JmDNSImpl          ] - 10-xx-xx-94.local. handle query: dns[query,10.xx.xx.94:5353, length=34, id=0x0, questions=1
questions:
	[Pointer@558669467 type: TYPE_PTR index 12, class: CLASS_IN index 1, name: _mill._tcp.local.]]
07:15:10.716 [DEBUG] [.impl.tasks.resolver.DNSResolverTask] - ServiceResolver(Xxxxo-mshome-net.local.).run() JmDNS querying service
07:15:10.716 [DEBUG] [.impl.tasks.resolver.DNSResolverTask] - ServiceResolver(10-xx-xx-94.local.).run() JmDNS querying service
07:15:10.716 [DEBUG] [.impl.tasks.resolver.DNSResolverTask] - ServiceResolver(Xxxxo-mshome-net.local.).run() JmDNS querying service
07:15:10.716 [DEBUG] [javax.jmdns.impl.DNSIncoming        ] - DNSIncoming() questions:1 answers:0 authorities:0 additionals:0
07:15:10.716 [DEBUG] [javax.jmdns.impl.DNSIncoming        ] - DNSIncoming() questions:1 answers:0 authorities:0 additionals:0
07:15:10.716 [DEBUG] [javax.jmdns.impl.JmDNSImpl          ] - 10-xx-xx-94.local. handle query: dns[query,10.xx.xx.94:5353, length=34, id=0x0, questions=1
questions:
	[Pointer@1339050664 type: TYPE_PTR index 12, class: CLASS_IN index 1, name: _mill._tcp.local.]]
07:15:10.716 [DEBUG] [javax.jmdns.impl.JmDNSImpl          ] - Xxxxo-mshome-net.local. handle query: dns[query,172.20.160.1:5353, length=34, id=0x0, questions=1
questions:
	[Pointer@6206370 type: TYPE_PTR index 12, class: CLASS_IN index 1, name: _mill._tcp.local.]]
07:15:10.717 [DEBUG] [.impl.tasks.resolver.DNSResolverTask] - ServiceResolver(10-xx-xx-94.local.).run() JmDNS querying service
07:15:10.717 [DEBUG] [javax.jmdns.impl.DNSIncoming        ] - DNSIncoming() questions:1 answers:0 authorities:0 additionals:0
07:15:10.717 [DEBUG] [javax.jmdns.impl.JmDNSImpl          ] - Xxxxo-mshome-net.local. handle query: dns[query,172.20.160.1:5353, length=34, id=0x0, questions=1
questions:
	[Pointer@213380523 type: TYPE_PTR index 12, class: CLASS_IN index 1, name: _mill._tcp.local.]]
07:15:10.717 [DEBUG] [javax.jmdns.impl.DNSIncoming        ] - DNSIncoming() questions:1 answers:0 authorities:0 additionals:0
07:15:10.717 [DEBUG] [javax.jmdns.impl.JmDNSImpl          ] - 10-xx-xx-94.local. handle query: dns[query,10.xx.xx.94:5353, length=34, id=0x0, questions=1
questions:
	[Pointer@1392053920 type: TYPE_PTR index 12, class: CLASS_IN index 1, name: _mill._tcp.local.]]
07:15:10.868 [DEBUG] [.impl.tasks.resolver.DNSResolverTask] - ServiceInfoResolver(10-xx-xx-94.local.).run() JmDNS querying service info: mill_modular_68B6B34D7434._mill._tcp.local.
07:15:10.947 [DEBUG] [javax.jmdns.impl.DNSIncoming        ] - DNSIncoming() questions:0 answers:3 authorities:0 additionals:1
07:15:10.947 [DEBUG] [javax.jmdns.impl.JmDNSImpl          ] - 10-xx-xx-94.local. handle response: [Pointer@1264443430 type: TYPE_PTR index 12, class: CLASS_IN index 1, name: _mill._tcp.local. ttl: '4500/4500' alias: 'mill_modular_68B6B34D7434._mill._tcp.local.']
07:15:10.947 [DEBUG] [javax.jmdns.impl.JmDNSImpl          ] - 10-xx-xx-94.local. handle response cached record: [Pointer@599142596 type: TYPE_PTR index 12, class: CLASS_IN index 1, name: _mill._tcp.local. ttl: '4499/4500' alias: 'mill_modular_68B6B34D7434._mill._tcp.local.']
07:15:10.947 [DEBUG] [javax.jmdns.impl.JmDNSImpl          ] - 10-xx-xx-94.local. registering service type: _mill._tcp.local. as: _mill._tcp.local.
07:15:10.947 [DEBUG] [javax.jmdns.impl.JmDNSImpl          ] - 10-xx-xx-94.local. handle response: [Service@236984208 type: TYPE_SRV index 33, class: CLASS_IN index 1-unique, name: mill_modular_68B6B34D7434._mill._tcp.local. ttl: '120/120' server: 'mill_modular_68B6B34D7434.local.:80']
07:15:10.948 [DEBUG] [javax.jmdns.impl.JmDNSImpl          ] - 10-xx-xx-94.local. handle response cached record: [Service@877374336 type: TYPE_SRV index 33, class: CLASS_IN index 1-unique, name: mill_modular_68B6B34D7434._mill._tcp.local. ttl: '119/120' server: 'mill_modular_68B6B34D7434.local.:80']
07:15:10.948 [DEBUG] [javax.jmdns.impl.JmDNSImpl          ] - 10-xx-xx-94.local. handle response: [Text@1130924534 type: TYPE_TXT index 16, class: CLASS_IN index 1-unique, name: mill_modular_68B6B34D7434._mill._tcp.local. ttl: '4499/4500' text: 'name=Panel Heate...']
07:15:10.948 [DEBUG] [javax.jmdns.impl.JmDNSImpl          ] - 10-xx-xx-94.local. handle response cached record: [Text@1831907714 type: TYPE_TXT index 16, class: CLASS_IN index 1-unique, name: mill_modular_68B6B34D7434._mill._tcp.local. ttl: '4499/4500' text: 'name=Panel Heate...']
07:15:10.948 [DEBUG] [javax.jmdns.impl.JmDNSImpl          ] - 10-xx-xx-94.local. handle response: [IPv4Address@1501430581 type: TYPE_A index 1, class: CLASS_IN index 1-unique, name: mill_modular_68B6B34D7434.local. ttl: '119/120' address: '10.xx.xx.212']
07:15:10.948 [DEBUG] [javax.jmdns.impl.JmDNSImpl          ] - 10-xx-xx-94.local. handle response cached record: [IPv4Address@864274358 type: TYPE_A index 1, class: CLASS_IN index 1-unique, name: mill_modular_68B6B34D7434.local. ttl: '119/120' address: '10.xx.xx.212']
07:15:10.949 [DEBUG] [javax.jmdns.impl.DNSIncoming        ] - DNSIncoming() questions:0 answers:3 authorities:0 additionals:1
07:15:10.949 [DEBUG] [javax.jmdns.impl.JmDNSImpl          ] - 10-xx-xx-94.local. handle response: [Pointer@2105971948 type: TYPE_PTR index 12, class: CLASS_IN index 1, name: _mill._tcp.local. ttl: '4500/4500' alias: 'mill_modular_68B6B34D7434._mill._tcp.local.']
07:15:10.949 [DEBUG] [javax.jmdns.impl.JmDNSImpl          ] - 10-xx-xx-94.local. handle response cached record: [Pointer@599142596 type: TYPE_PTR index 12, class: CLASS_IN index 1, name: _mill._tcp.local. ttl: '4499/4500' alias: 'mill_modular_68B6B34D7434._mill._tcp.local.']
07:15:10.950 [DEBUG] [javax.jmdns.impl.JmDNSImpl          ] - 10-xx-xx-94.local. registering service type: _mill._tcp.local. as: _mill._tcp.local.
07:15:10.950 [DEBUG] [javax.jmdns.impl.JmDNSImpl          ] - 10-xx-xx-94.local. handle response: [Service@1939116123 type: TYPE_SRV index 33, class: CLASS_IN index 1-unique, name: mill_modular_68B6B34D7434._mill._tcp.local. ttl: '119/120' server: 'mill_modular_68B6B34D7434.local.:80']
07:15:10.950 [DEBUG] [javax.jmdns.impl.JmDNSImpl          ] - 10-xx-xx-94.local. handle response cached record: [Service@877374336 type: TYPE_SRV index 33, class: CLASS_IN index 1-unique, name: mill_modular_68B6B34D7434._mill._tcp.local. ttl: '119/120' server: 'mill_modular_68B6B34D7434.local.:80']
07:15:10.950 [DEBUG] [javax.jmdns.impl.JmDNSImpl          ] - 10-xx-xx-94.local. handle response: [Text@1957990630 type: TYPE_TXT index 16, class: CLASS_IN index 1-unique, name: mill_modular_68B6B34D7434._mill._tcp.local. ttl: '4499/4500' text: 'name=Panel Heate...']
07:15:10.950 [DEBUG] [javax.jmdns.impl.JmDNSImpl          ] - 10-xx-xx-94.local. handle response cached record: [Text@1831907714 type: TYPE_TXT index 16, class: CLASS_IN index 1-unique, name: mill_modular_68B6B34D7434._mill._tcp.local. ttl: '4499/4500' text: 'name=Panel Heate...']
07:15:10.950 [DEBUG] [javax.jmdns.impl.JmDNSImpl          ] - 10-xx-xx-94.local. handle response: [IPv4Address@1576682222 type: TYPE_A index 1, class: CLASS_IN index 1-unique, name: mill_modular_68B6B34D7434.local. ttl: '119/120' address: '10.xx.xx.212']
07:15:10.951 [DEBUG] [javax.jmdns.impl.JmDNSImpl          ] - 10-xx-xx-94.local. handle response cached record: [IPv4Address@864274358 type: TYPE_A index 1, class: CLASS_IN index 1-unique, name: mill_modular_68B6B34D7434.local. ttl: '119/120' address: '10.xx.xx.212']
07:15:10.951 [DEBUG] [javax.jmdns.impl.DNSIncoming        ] - DNSIncoming() questions:0 answers:3 authorities:0 additionals:1
07:15:10.951 [DEBUG] [javax.jmdns.impl.JmDNSImpl          ] - 10-xx-xx-94.local. handle response: [Pointer@345148489 type: TYPE_PTR index 12, class: CLASS_IN index 1, name: _mill._tcp.local. ttl: '4500/4500' alias: 'mill_modular_68B6B34D7434._mill._tcp.local.']
07:15:10.952 [DEBUG] [javax.jmdns.impl.JmDNSImpl          ] - 10-xx-xx-94.local. handle response cached record: [Pointer@599142596 type: TYPE_PTR index 12, class: CLASS_IN index 1, name: _mill._tcp.local. ttl: '4499/4500' alias: 'mill_modular_68B6B34D7434._mill._tcp.local.']
07:15:10.952 [DEBUG] [javax.jmdns.impl.JmDNSImpl          ] - 10-xx-xx-94.local. registering service type: _mill._tcp.local. as: _mill._tcp.local.
07:15:10.952 [DEBUG] [javax.jmdns.impl.JmDNSImpl          ] - 10-xx-xx-94.local. handle response: [Service@1137950920 type: TYPE_SRV index 33, class: CLASS_IN index 1-unique, name: mill_modular_68B6B34D7434._mill._tcp.local. ttl: '119/120' server: 'mill_modular_68B6B34D7434.local.:80']
07:15:10.952 [DEBUG] [javax.jmdns.impl.JmDNSImpl          ] - 10-xx-xx-94.local. handle response cached record: [Service@877374336 type: TYPE_SRV index 33, class: CLASS_IN index 1-unique, name: mill_modular_68B6B34D7434._mill._tcp.local. ttl: '119/120' server: 'mill_modular_68B6B34D7434.local.:80']
07:15:10.952 [DEBUG] [javax.jmdns.impl.JmDNSImpl          ] - 10-xx-xx-94.local. handle response: [Text@330320884 type: TYPE_TXT index 16, class: CLASS_IN index 1-unique, name: mill_modular_68B6B34D7434._mill._tcp.local. ttl: '4499/4500' text: 'name=Panel Heate...']
07:15:10.952 [DEBUG] [javax.jmdns.impl.JmDNSImpl          ] - 10-xx-xx-94.local. handle response cached record: [Text@1831907714 type: TYPE_TXT index 16, class: CLASS_IN index 1-unique, name: mill_modular_68B6B34D7434._mill._tcp.local. ttl: '4499/4500' text: 'name=Panel Heate...']
07:15:10.953 [DEBUG] [javax.jmdns.impl.JmDNSImpl          ] - 10-xx-xx-94.local. handle response: [IPv4Address@475170398 type: TYPE_A index 1, class: CLASS_IN index 1-unique, name: mill_modular_68B6B34D7434.local. ttl: '119/120' address: '10.xx.xx.212']
07:15:10.953 [DEBUG] [javax.jmdns.impl.JmDNSImpl          ] - 10-xx-xx-94.local. handle response cached record: [IPv4Address@864274358 type: TYPE_A index 1, class: CLASS_IN index 1-unique, name: mill_modular_68B6B34D7434.local. ttl: '119/120' address: '10.xx.xx.212']
07:15:11.011 [DEBUG] [.jmdns.impl.tasks.state.DNSStateTask] - Prober(Xxxxo-mshome-net.local.).run() JmDNS probing Xxxxo-mshome-net.local.
07:15:11.011 [DEBUG] [.jmdns.impl.tasks.state.DNSStateTask] - Prober(Xxxxo-mshome-net.local.).run() JmDNS probing #probing 1
07:15:11.012 [DEBUG] [javax.jmdns.impl.DNSIncoming        ] - DNSIncoming() questions:1 answers:0 authorities:1 additionals:0
07:15:11.013 [DEBUG] [javax.jmdns.impl.JmDNSImpl          ] - Xxxxo-mshome-net.local. handle query: dns[query,172.20.160.1:5353, length=56, id=0x0, questions=1, authorities=1
questions:
	[AllRecords@1885660752 type: TYPE_ANY index 255, class: CLASS_IN index 1, name: Xxxxo-mshome-net.local.]
authorities:
	[IPv4Address@895721403 type: TYPE_A index 1, class: CLASS_IN index 1, name: Xxxxo-mshome-net.local. ttl: '3598/3599' address: '172.20.160.1']]
07:15:11.033 [DEBUG] [.jmdns.impl.tasks.state.DNSStateTask] - Prober(10-xx-xx-94.local.).run() JmDNS probing 10-xx-xx-94.local.
07:15:11.033 [DEBUG] [.jmdns.impl.tasks.state.DNSStateTask] - Prober(10-xx-xx-94.local.).run() JmDNS probing #probing 1
07:15:11.034 [DEBUG] [javax.jmdns.impl.DNSIncoming        ] - DNSIncoming() questions:1 answers:0 authorities:1 additionals:0
07:15:11.034 [DEBUG] [javax.jmdns.impl.JmDNSImpl          ] - 10-xx-xx-94.local. handle query: dns[query,10.xx.xx.94:5353, length=51, id=0x0, questions=1, authorities=1
questions:
	[AllRecords@480420185 type: TYPE_ANY index 255, class: CLASS_IN index 1, name: 10-xx-xx-94.local.]
authorities:
	[IPv4Address@1093330821 type: TYPE_A index 1, class: CLASS_IN index 1, name: 10-xx-xx-94.local. ttl: '3600/3600' address: '10.xx.xx.94']]
07:15:11.093 [DEBUG] [.impl.tasks.resolver.DNSResolverTask] - ServiceInfoResolver(10-xx-xx-94.local.).run() JmDNS querying service info: mill_modular_68B6B34D7434._mill._tcp.local.
07:15:11.254 [DEBUG] [javax.jmdns.impl.DNSIncoming        ] - DNSIncoming() questions:0 answers:3 authorities:0 additionals:1
07:15:11.254 [DEBUG] [javax.jmdns.impl.JmDNSImpl          ] - 10-xx-xx-94.local. handle response: [Pointer@1356135359 type: TYPE_PTR index 12, class: CLASS_IN index 1, name: _mill._tcp.local. ttl: '4500/4500' alias: 'mill_modular_68B6B34D7434._mill._tcp.local.']
07:15:11.254 [DEBUG] [javax.jmdns.impl.JmDNSImpl          ] - 10-xx-xx-94.local. handle response cached record: [Pointer@599142596 type: TYPE_PTR index 12, class: CLASS_IN index 1, name: _mill._tcp.local. ttl: '4499/4500' alias: 'mill_modular_68B6B34D7434._mill._tcp.local.']
07:15:11.254 [DEBUG] [javax.jmdns.impl.JmDNSImpl          ] - 10-xx-xx-94.local. registering service type: _mill._tcp.local. as: _mill._tcp.local.
07:15:11.255 [DEBUG] [javax.jmdns.impl.JmDNSImpl          ] - 10-xx-xx-94.local. handle response: [Service@1488779149 type: TYPE_SRV index 33, class: CLASS_IN index 1-unique, name: mill_modular_68B6B34D7434._mill._tcp.local. ttl: '119/120' server: 'mill_modular_68B6B34D7434.local.:80']
07:15:11.255 [DEBUG] [javax.jmdns.impl.JmDNSImpl          ] - 10-xx-xx-94.local. handle response cached record: [Service@877374336 type: TYPE_SRV index 33, class: CLASS_IN index 1-unique, name: mill_modular_68B6B34D7434._mill._tcp.local. ttl: '119/120' server: 'mill_modular_68B6B34D7434.local.:80']
07:15:11.255 [DEBUG] [javax.jmdns.impl.JmDNSImpl          ] - 10-xx-xx-94.local. handle response: [Text@1369255338 type: TYPE_TXT index 16, class: CLASS_IN index 1-unique, name: mill_modular_68B6B34D7434._mill._tcp.local. ttl: '4499/4500' text: 'name=Panel Heate...']
07:15:11.255 [DEBUG] [javax.jmdns.impl.JmDNSImpl          ] - 10-xx-xx-94.local. handle response cached record: [Text@1831907714 type: TYPE_TXT index 16, class: CLASS_IN index 1-unique, name: mill_modular_68B6B34D7434._mill._tcp.local. ttl: '4499/4500' text: 'name=Panel Heate...']
07:15:11.255 [DEBUG] [javax.jmdns.impl.JmDNSImpl          ] - 10-xx-xx-94.local. handle response: [IPv4Address@1193148115 type: TYPE_A index 1, class: CLASS_IN index 1-unique, name: mill_modular_68B6B34D7434.local. ttl: '119/120' address: '10.xx.xx.212']
07:15:11.255 [DEBUG] [javax.jmdns.impl.JmDNSImpl          ] - 10-xx-xx-94.local. handle response cached record: [IPv4Address@864274358 type: TYPE_A index 1, class: CLASS_IN index 1-unique, name: mill_modular_68B6B34D7434.local. ttl: '119/120' address: '10.xx.xx.212']
07:15:11.256 [DEBUG] [javax.jmdns.impl.DNSIncoming        ] - DNSIncoming() questions:0 answers:3 authorities:0 additionals:1
07:15:11.256 [DEBUG] [javax.jmdns.impl.JmDNSImpl          ] - 10-xx-xx-94.local. handle response: [Pointer@811854988 type: TYPE_PTR index 12, class: CLASS_IN index 1, name: _mill._tcp.local. ttl: '4500/4500' alias: 'mill_modular_68B6B34D7434._mill._tcp.local.']
07:15:11.256 [DEBUG] [javax.jmdns.impl.JmDNSImpl          ] - 10-xx-xx-94.local. handle response cached record: [Pointer@599142596 type: TYPE_PTR index 12, class: CLASS_IN index 1, name: _mill._tcp.local. ttl: '4499/4500' alias: 'mill_modular_68B6B34D7434._mill._tcp.local.']
07:15:11.256 [DEBUG] [javax.jmdns.impl.JmDNSImpl          ] - 10-xx-xx-94.local. registering service type: _mill._tcp.local. as: _mill._tcp.local.
07:15:11.256 [DEBUG] [javax.jmdns.impl.JmDNSImpl          ] - 10-xx-xx-94.local. handle response: [Service@257713554 type: TYPE_SRV index 33, class: CLASS_IN index 1-unique, name: mill_modular_68B6B34D7434._mill._tcp.local. ttl: '120/120' server: 'mill_modular_68B6B34D7434.local.:80']
07:15:11.256 [DEBUG] [javax.jmdns.impl.JmDNSImpl          ] - 10-xx-xx-94.local. handle response cached record: [Service@877374336 type: TYPE_SRV index 33, class: CLASS_IN index 1-unique, name: mill_modular_68B6B34D7434._mill._tcp.local. ttl: '119/120' server: 'mill_modular_68B6B34D7434.local.:80']
07:15:11.257 [DEBUG] [javax.jmdns.impl.JmDNSImpl          ] - 10-xx-xx-94.local. handle response: [Text@924121518 type: TYPE_TXT index 16, class: CLASS_IN index 1-unique, name: mill_modular_68B6B34D7434._mill._tcp.local. ttl: '4500/4500' text: 'name=Panel Heate...']
07:15:11.257 [DEBUG] [javax.jmdns.impl.JmDNSImpl          ] - 10-xx-xx-94.local. handle response cached record: [Text@1831907714 type: TYPE_TXT index 16, class: CLASS_IN index 1-unique, name: mill_modular_68B6B34D7434._mill._tcp.local. ttl: '4499/4500' text: 'name=Panel Heate...']
07:15:11.257 [DEBUG] [javax.jmdns.impl.JmDNSImpl          ] - 10-xx-xx-94.local. handle response: [IPv4Address@534213369 type: TYPE_A index 1, class: CLASS_IN index 1-unique, name: mill_modular_68B6B34D7434.local. ttl: '119/120' address: '10.xx.xx.212']
07:15:11.257 [DEBUG] [javax.jmdns.impl.JmDNSImpl          ] - 10-xx-xx-94.local. handle response cached record: [IPv4Address@864274358 type: TYPE_A index 1, class: CLASS_IN index 1-unique, name: mill_modular_68B6B34D7434.local. ttl: '119/120' address: '10.xx.xx.212']
07:15:11.257 [DEBUG] [javax.jmdns.impl.DNSIncoming        ] - DNSIncoming() questions:0 answers:3 authorities:0 additionals:1
07:15:11.257 [DEBUG] [javax.jmdns.impl.JmDNSImpl          ] - 10-xx-xx-94.local. handle response: [Pointer@813693443 type: TYPE_PTR index 12, class: CLASS_IN index 1, name: _mill._tcp.local. ttl: '4500/4500' alias: 'mill_modular_68B6B34D7434._mill._tcp.local.']
07:15:11.258 [DEBUG] [javax.jmdns.impl.JmDNSImpl          ] - 10-xx-xx-94.local. handle response cached record: [Pointer@599142596 type: TYPE_PTR index 12, class: CLASS_IN index 1, name: _mill._tcp.local. ttl: '4499/4500' alias: 'mill_modular_68B6B34D7434._mill._tcp.local.']
07:15:11.258 [DEBUG] [javax.jmdns.impl.JmDNSImpl          ] - 10-xx-xx-94.local. registering service type: _mill._tcp.local. as: _mill._tcp.local.
07:15:11.258 [DEBUG] [javax.jmdns.impl.JmDNSImpl          ] - 10-xx-xx-94.local. handle response: [Service@1550018923 type: TYPE_SRV index 33, class: CLASS_IN index 1-unique, name: mill_modular_68B6B34D7434._mill._tcp.local. ttl: '119/120' server: 'mill_modular_68B6B34D7434.local.:80']
07:15:11.258 [DEBUG] [javax.jmdns.impl.JmDNSImpl          ] - 10-xx-xx-94.local. handle response cached record: [Service@877374336 type: TYPE_SRV index 33, class: CLASS_IN index 1-unique, name: mill_modular_68B6B34D7434._mill._tcp.local. ttl: '119/120' server: 'mill_modular_68B6B34D7434.local.:80']
07:15:11.258 [DEBUG] [javax.jmdns.impl.JmDNSImpl          ] - 10-xx-xx-94.local. handle response: [Text@1277829824 type: TYPE_TXT index 16, class: CLASS_IN index 1-unique, name: mill_modular_68B6B34D7434._mill._tcp.local. ttl: '4499/4500' text: 'name=Panel Heate...']
07:15:11.258 [DEBUG] [javax.jmdns.impl.JmDNSImpl          ] - 10-xx-xx-94.local. handle response cached record: [Text@1831907714 type: TYPE_TXT index 16, class: CLASS_IN index 1-unique, name: mill_modular_68B6B34D7434._mill._tcp.local. ttl: '4499/4500' text: 'name=Panel Heate...']
07:15:11.258 [DEBUG] [javax.jmdns.impl.JmDNSImpl          ] - 10-xx-xx-94.local. handle response: [IPv4Address@1758384390 type: TYPE_A index 1, class: CLASS_IN index 1-unique, name: mill_modular_68B6B34D7434.local. ttl: '119/120' address: '10.xx.xx.212']
07:15:11.259 [DEBUG] [javax.jmdns.impl.JmDNSImpl          ] - 10-xx-xx-94.local. handle response cached record: [IPv4Address@864274358 type: TYPE_A index 1, class: CLASS_IN index 1-unique, name: mill_modular_68B6B34D7434.local. ttl: '119/120' address: '10.xx.xx.212']
07:15:11.319 [DEBUG] [.impl.tasks.resolver.DNSResolverTask] - ServiceInfoResolver(10-xx-xx-94.local.).run() JmDNS querying service info: mill_modular_68B6B34D7434._mill._tcp.local.
07:15:12.012 [DEBUG] [.jmdns.impl.tasks.state.DNSStateTask] - Prober(Xxxxo-mshome-net.local.).run() JmDNS probing Xxxxo-mshome-net.local.
07:15:12.012 [DEBUG] [.jmdns.impl.tasks.state.DNSStateTask] - Prober(Xxxxo-mshome-net.local.).run() JmDNS probing #probing 2
07:15:12.012 [DEBUG] [javax.jmdns.impl.DNSIncoming        ] - DNSIncoming() questions:1 answers:0 authorities:1 additionals:0
07:15:12.013 [DEBUG] [javax.jmdns.impl.JmDNSImpl          ] - Xxxxo-mshome-net.local. handle query: dns[query,172.20.160.1:5353, length=56, id=0x0, questions=1, authorities=1
questions:
	[AllRecords@1087764758 type: TYPE_ANY index 255, class: CLASS_IN index 1, name: Xxxxo-mshome-net.local.]
authorities:
	[IPv4Address@1933352466 type: TYPE_A index 1, class: CLASS_IN index 1, name: Xxxxo-mshome-net.local. ttl: '3599/3600' address: '172.20.160.1']]
07:15:12.034 [DEBUG] [.jmdns.impl.tasks.state.DNSStateTask] - Prober(10-xx-xx-94.local.).run() JmDNS probing 10-xx-xx-94.local.
07:15:12.034 [DEBUG] [.jmdns.impl.tasks.state.DNSStateTask] - Prober(10-xx-xx-94.local.).run() JmDNS probing #probing 2
07:15:12.034 [DEBUG] [javax.jmdns.impl.DNSIncoming        ] - DNSIncoming() questions:1 answers:0 authorities:1 additionals:0
07:15:12.035 [DEBUG] [javax.jmdns.impl.JmDNSImpl          ] - 10-xx-xx-94.local. handle query: dns[query,10.xx.xx.94:5353, length=51, id=0x0, questions=1, authorities=1
questions:
	[AllRecords@657359358 type: TYPE_ANY index 255, class: CLASS_IN index 1, name: 10-xx-xx-94.local.]
authorities:
	[IPv4Address@1623297089 type: TYPE_A index 1, class: CLASS_IN index 1, name: 10-xx-xx-94.local. ttl: '3600/3600' address: '10.xx.xx.94']]
07:15:13.013 [DEBUG] [.jmdns.impl.tasks.state.DNSStateTask] - Prober(Xxxxo-mshome-net.local.).run() JmDNS probing Xxxxo-mshome-net.local.
07:15:13.013 [DEBUG] [.jmdns.impl.tasks.state.DNSStateTask] - Prober(Xxxxo-mshome-net.local.).run() JmDNS probing #probing 3
07:15:13.013 [DEBUG] [javax.jmdns.impl.DNSIncoming        ] - DNSIncoming() questions:1 answers:0 authorities:1 additionals:0
07:15:13.014 [DEBUG] [javax.jmdns.impl.JmDNSImpl          ] - Xxxxo-mshome-net.local. handle query: dns[query,172.20.160.1:5353, length=56, id=0x0, questions=1, authorities=1
questions:
	[AllRecords@616407107 type: TYPE_ANY index 255, class: CLASS_IN index 1, name: Xxxxo-mshome-net.local.]
authorities:
	[IPv4Address@218787112 type: TYPE_A index 1, class: CLASS_IN index 1, name: Xxxxo-mshome-net.local. ttl: '3600/3600' address: '172.20.160.1']]
07:15:13.035 [DEBUG] [.jmdns.impl.tasks.state.DNSStateTask] - Prober(10-xx-xx-94.local.).run() JmDNS probing 10-xx-xx-94.local.
07:15:13.035 [DEBUG] [.jmdns.impl.tasks.state.DNSStateTask] - Prober(10-xx-xx-94.local.).run() JmDNS probing #probing 3
07:15:13.035 [DEBUG] [javax.jmdns.impl.DNSIncoming        ] - DNSIncoming() questions:1 answers:0 authorities:1 additionals:0
07:15:13.036 [DEBUG] [javax.jmdns.impl.JmDNSImpl          ] - 10-xx-xx-94.local. handle query: dns[query,10.xx.xx.94:5353, length=51, id=0x0, questions=1, authorities=1
questions:
	[AllRecords@2111872699 type: TYPE_ANY index 255, class: CLASS_IN index 1, name: 10-xx-xx-94.local.]
authorities:
	[IPv4Address@1664628448 type: TYPE_A index 1, class: CLASS_IN index 1, name: 10-xx-xx-94.local. ttl: '3600/3600' address: '10.xx.xx.94']]
07:15:14.014 [DEBUG] [.jmdns.impl.tasks.state.DNSStateTask] - Announcer(Xxxxo-mshome-net.local.).run() JmDNS announcing Xxxxo-mshome-net.local.
07:15:14.015 [DEBUG] [.jmdns.impl.tasks.state.DNSStateTask] - Announcer(Xxxxo-mshome-net.local.).run() JmDNS announcing #announcing 1
07:15:14.015 [DEBUG] [javax.jmdns.impl.DNSIncoming        ] - DNSIncoming() questions:0 answers:1 authorities:0 additionals:0
07:15:14.015 [DEBUG] [javax.jmdns.impl.JmDNSImpl          ] - Xxxxo-mshome-net.local. handle response: [IPv4Address@1660430550 type: TYPE_A index 1, class: CLASS_IN index 1-unique, name: Xxxxo-mshome-net.local. ttl: '3600/3600' address: '172.20.160.1']
07:15:14.015 [DEBUG] [javax.jmdns.impl.JmDNSImpl          ] - Xxxxo-mshome-net.local. handle response cached record: null
07:15:14.035 [DEBUG] [.jmdns.impl.tasks.state.DNSStateTask] - Announcer(10-xx-xx-94.local.).run() JmDNS announcing 10-xx-xx-94.local.
07:15:14.035 [DEBUG] [.jmdns.impl.tasks.state.DNSStateTask] - Announcer(10-xx-xx-94.local.).run() JmDNS announcing #announcing 1
07:15:14.035 [DEBUG] [javax.jmdns.impl.DNSIncoming        ] - DNSIncoming() questions:0 answers:1 authorities:0 additionals:0
07:15:14.036 [DEBUG] [javax.jmdns.impl.JmDNSImpl          ] - 10-xx-xx-94.local. handle response: [IPv4Address@818575880 type: TYPE_A index 1, class: CLASS_IN index 1-unique, name: 10-xx-xx-94.local. ttl: '3600/3600' address: '10.xx.xx.94']
07:15:14.036 [DEBUG] [javax.jmdns.impl.JmDNSImpl          ] - 10-xx-xx-94.local. handle response cached record: null
07:15:15.014 [DEBUG] [.jmdns.impl.tasks.state.DNSStateTask] - Announcer(Xxxxo-mshome-net.local.).run() JmDNS announcing Xxxxo-mshome-net.local.
07:15:15.014 [DEBUG] [.jmdns.impl.tasks.state.DNSStateTask] - Announcer(Xxxxo-mshome-net.local.).run() JmDNS announcing #announcing 2
07:15:15.014 [DEBUG] [javax.jmdns.impl.DNSIncoming        ] - DNSIncoming() questions:0 answers:1 authorities:0 additionals:0
07:15:15.015 [DEBUG] [javax.jmdns.impl.JmDNSImpl          ] - Xxxxo-mshome-net.local. handle response: [IPv4Address@1973675669 type: TYPE_A index 1, class: CLASS_IN index 1-unique, name: Xxxxo-mshome-net.local. ttl: '3599/3600' address: '172.20.160.1']
07:15:15.015 [DEBUG] [javax.jmdns.impl.JmDNSImpl          ] - Xxxxo-mshome-net.local. handle response cached record: [IPv4Address@1660430550 type: TYPE_A index 1, class: CLASS_IN index 1-unique, name: Xxxxo-mshome-net.local. ttl: '3599/3600' address: '172.20.160.1']
07:15:15.037 [DEBUG] [.jmdns.impl.tasks.state.DNSStateTask] - Announcer(10-xx-xx-94.local.).run() JmDNS announcing 10-xx-xx-94.local.
07:15:15.037 [DEBUG] [.jmdns.impl.tasks.state.DNSStateTask] - Announcer(10-xx-xx-94.local.).run() JmDNS announcing #announcing 2
07:15:15.037 [DEBUG] [javax.jmdns.impl.DNSIncoming        ] - DNSIncoming() questions:0 answers:1 authorities:0 additionals:0
07:15:15.038 [DEBUG] [javax.jmdns.impl.JmDNSImpl          ] - 10-xx-xx-94.local. handle response: [IPv4Address@1543855060 type: TYPE_A index 1, class: CLASS_IN index 1-unique, name: 10-xx-xx-94.local. ttl: '3600/3600' address: '10.xx.xx.94']
07:15:15.038 [DEBUG] [javax.jmdns.impl.JmDNSImpl          ] - 10-xx-xx-94.local. handle response cached record: [IPv4Address@818575880 type: TYPE_A index 1, class: CLASS_IN index 1-unique, name: 10-xx-xx-94.local. ttl: '3598/3600' address: '10.xx.xx.94']
07:15:16.050 [DEBUG] [javax.jmdns.impl.JmDNSImpl          ] - 10-xx-xx-94.local.-collector: 
	Type: _mill._tcp.local.
	Services
		Service: mill_modular_68B6B34D7434: [ServiceInfoImpl@2026938743 name: 'mill_modular_68B6B34D7434._mill._tcp.local.' address: '/10.xx.xx.212:80 ' status: 'NO DNS state: probing 1 task: null' is persistent, has data
	name: Panel Heater Modular
	id: mill_modular_68B6B34D7434]
	No event queued.
07:15:16.061 [DEBUG] [javax.jmdns.impl.JmDNSImpl          ] - 10-xx-xx-94.local.-collector: 
	Type: _mill._tcp.local.
	Services
		Service: mill_modular_68B6B34D7434: [ServiceInfoImpl@2026938743 name: 'mill_modular_68B6B34D7434._mill._tcp.local.' address: '/10.xx.xx.212:80 ' status: 'NO DNS state: probing 1 task: null' is persistent, has data
	name: Panel Heater Modular
	id: mill_modular_68B6B34D7434]
	No event queued.
07:15:19.856 [DEBUG] [javax.jmdns.impl.DNSIncoming        ] - DNSIncoming() questions:1 answers:2 authorities:0 additionals:0
07:15:19.857 [DEBUG] [javax.jmdns.impl.JmDNSImpl          ] - 10-xx-xx-94.local. handle query: dns[query,10.xx.xx.24:5353, length=118, id=0x0, questions=1, answers=2
questions:
	[Pointer@627639209 type: TYPE_PTR index 12, class: CLASS_IN index 1, name: _http._tcp.local.]
answers:
	[Pointer@130334418 type: TYPE_PTR index 12, class: CLASS_IN index 1, name: _openhab-server._tcp.local. ttl: '3600/3600' alias: 'openhab._openhab-server._tcp.local.']
	[Pointer@1690148376 type: TYPE_PTR index 12, class: CLASS_IN index 1, name: _openhab-server-ssl._tcp.local. ttl: '3600/3600' alias: 'openhab-ssl._openhab-server-ssl._tcp.local.']]
07:15:19.857 [DEBUG] [javax.jmdns.impl.JmDNSImpl          ] - 10-xx-xx-94.local. handle response: [Pointer@130334418 type: TYPE_PTR index 12, class: CLASS_IN index 1, name: _openhab-server._tcp.local. ttl: '3600/3600' alias: 'openhab._openhab-server._tcp.local.']
07:15:19.857 [DEBUG] [javax.jmdns.impl.JmDNSImpl          ] - 10-xx-xx-94.local. handle response cached record: [Pointer@113919691 type: TYPE_PTR index 12, class: CLASS_IN index 1, name: _openhab-server._tcp.local. ttl: '3590/3600' alias: 'openhab._openhab-server._tcp.local.']
07:15:19.857 [DEBUG] [javax.jmdns.impl.JmDNSImpl          ] - 10-xx-xx-94.local. registering service type: _openhab-server._tcp.local. as: _openhab-server._tcp.local.
07:15:19.857 [DEBUG] [javax.jmdns.impl.JmDNSImpl          ] - 10-xx-xx-94.local. handle response: [Pointer@1690148376 type: TYPE_PTR index 12, class: CLASS_IN index 1, name: _openhab-server-ssl._tcp.local. ttl: '3600/3600' alias: 'openhab-ssl._openhab-server-ssl._tcp.local.']
07:15:19.857 [DEBUG] [javax.jmdns.impl.JmDNSImpl          ] - 10-xx-xx-94.local. handle response cached record: [Pointer@26748581 type: TYPE_PTR index 12, class: CLASS_IN index 1, name: _openhab-server-ssl._tcp.local. ttl: '3590/3600' alias: 'openhab-ssl._openhab-server-ssl._tcp.local.']
07:15:19.858 [DEBUG] [javax.jmdns.impl.JmDNSImpl          ] - 10-xx-xx-94.local. registering service type: _openhab-server-ssl._tcp.local. as: _openhab-server-ssl._tcp.local.
07:15:19.858 [DEBUG] [javax.jmdns.impl.DNSIncoming        ] - DNSIncoming() questions:0 answers:2 authorities:0 additionals:8
07:15:19.858 [DEBUG] [javax.jmdns.impl.DNSIncoming        ] - DNSIncoming() unknown type: TYPE_NSEC index 47
07:15:19.858 [DEBUG] [javax.jmdns.impl.DNSIncoming        ] - DNSIncoming() unknown type: TYPE_NSEC index 47
07:15:19.858 [DEBUG] [javax.jmdns.impl.DNSIncoming        ] - DNSIncoming() unknown type: TYPE_NSEC index 47
07:15:19.858 [DEBUG] [javax.jmdns.impl.JmDNSImpl          ] - 10-xx-xx-94.local. handle response: [Pointer@303084192 type: TYPE_PTR index 12, class: CLASS_IN index 1, name: _http._tcp.local. ttl: '4500/4500' alias: 'HP LaserJet CP1525nw (32E134)._http._tcp.local.']
07:15:19.859 [DEBUG] [javax.jmdns.impl.JmDNSImpl          ] - 10-xx-xx-94.local. handle response cached record: null
07:15:19.859 [DEBUG] [javax.jmdns.impl.JmDNSImpl          ] - 10-xx-xx-94.local. registering service type: _http._tcp.local. as: _http._tcp.local.
07:15:19.859 [DEBUG] [javax.jmdns.impl.JmDNSImpl          ] - 10-xx-xx-94.local. handle response: [Pointer@2131332864 type: TYPE_PTR index 12, class: CLASS_IN index 1, name: _printer._tcp.local. ttl: '4499/4500' alias: 'HP LaserJet CP1525nw (32E134)._printer._tcp.local.']
07:15:19.859 [DEBUG] [javax.jmdns.impl.JmDNSImpl          ] - 10-xx-xx-94.local. handle response cached record: null
07:15:19.859 [DEBUG] [javax.jmdns.impl.JmDNSImpl          ] - 10-xx-xx-94.local. registering service type: _printer._tcp.local. as: _printer._tcp.local.
07:15:19.859 [DEBUG] [javax.jmdns.impl.JmDNSImpl          ] - 10-xx-xx-94.local. handle response: [Service@1561959453 type: TYPE_SRV index 33, class: CLASS_IN index 1-unique, name: HP LaserJet CP1525nw (32E134)._http._tcp.local. ttl: '119/120' server: 'HPLaserCP1525.local.:80']
07:15:19.859 [DEBUG] [javax.jmdns.impl.JmDNSImpl          ] - 10-xx-xx-94.local. handle response cached record: null
07:15:19.859 [DEBUG] [javax.jmdns.impl.JmDNSImpl          ] - 10-xx-xx-94.local. handle response: [Text@1440515320 type: TYPE_TXT index 16, class: CLASS_IN index 1-unique, name: HP LaserJet CP1525nw (32E134)._http._tcp.local. ttl: '4499/4500' text: '