Twinkly Binding

Hi @Pavion,

I have tested your Twinkly Binding with a 250 lights stripe. Works for me after reading this thread. :slight_smile:

I can also only activate the Twinkly with the rule you have written above.

Can you send more examples to configure the Twinkly (GitHub - Pavion/org.openhab.binding.twinklytree: TwinklyTree Binding (forked from @mvanhulsentop) - or can you expand your README with some examples)? I want to try the “effect” and “movie” settings. Also Alexa-Integration don’t work for me.

Thanks for your work,
Reinhard

Hi Reinhard,

if you follow the link above, you will find the full API.

As of now, only API calls listed as channels are supported, Alexa should work for the switch (or you might need to create a dummy switch if you need to send another mode):

Switch      TwinklyKuecheSwitch     "Twinkly KĂŒche"              { channel="twinklytree:twinkly:twinklyKuecheL:switch", alexa="PowerController.powerState" [friendlyNames="Twinkly KĂŒche"] }

You should be able to set the mode with mode channel. According to the API:

Hardware can operate in one of following modes:

off - turns off lights
color - shows a static color
demo - starts predefined sequence of effects that are changed after few seconds
movie - plays predefined or uploaded effect. If movie hasn’t been set (yet) code 1104 is returned.
rt - receive effect in real time
effect - plays effect with effect_id
playlist - plays a movie from a playlist. Since firmware version 2.5.6.

BR Pav

1 Like

Hi @Pavion I am successfully using the Twinkly Strip RGBW 400 LEDs on Openhab 4.1.0.M3.

The only thing that should be added is the possibility to set the color, once the “color” mode has been selected.

Thanks

Hi @edo88b

Please check my newest release on GitHub:

This release is compiled on OH4.1.0-SNAPSHOT and tested with OH4.0.4-STABLE.
Due to migration to OH4 some issues are possible, feedback is very appreciated!

BR
Pav

Hi Pav

How can I proceed to update it?

Thanks

To test it, you need to uninstall the marketplace version. Then download and copy the jar file into the addons folder of your Openhab nstallation. You will need to recreate your Thing to be able to use a new Color channel (Items can be kept and relinked again later).

Hi @Pavion,

thank you very much for this binding! Chances are pretty high that I can control my christmas tree this year through openHAB (and drive my wife crazy again :joy:).

Some feedback:

I am currently testing the latest jar with openHAB 4.0.1-STABLE. I have setup a thing in openHAB for my Twinkly Strings RGBW 600 (Model TWS600SPP, Firmware 2.8.18) with a refresh rate of 10. For testing purposes, I linked an item to every channel.

  • Setting Mode to “off” → Ok - does that mean the OnOff channel is not needed?
  • Setting Mode to “color” → Ok
    • Color setting through Color channel → Ok
  • Setting Mode to “movie” → Ok
    • Setting one of the effects from the main page of the App by sending numbers to the Movie channel → Ok
  • Setting Mode to “effect” → Ok
    • Sending some numbers to the Effect channel seems to have no effect. It always shows a rainbow effect/the first effect from the “demo” mode. Maybe I’ve tested the wrong effect numbers?
  • Setting Mode to “playlist” → Ok
  • Setting Mode to “demo” → Ok
  • Setting Mode to “rt” → Not tested, is this for the music add-on?

Changing the brightness channel had some “lags”, sometimes after a change it jumps back to the previous value. May be this has something to do with the refresh value?

When I change something through the Twinkly App on my Smartphone, the changes are not seen in openHAB. I thought that the current state of the twinkly device is updated at every refresh cycle.

May be not a problem of your binding, but I thought it’s worth to mention: When I change something through openHAB, the Twinkly App on my Smartphone seems to loose the connectivity for a short time. Also, it happened once that I needed to restart the Twinkly App. Also, the App doesn’t seem to recognize changes between “movie” and “playlist” mode made through openHAB.

Thank you again for this binding!

– Thorsten

Hi Thorsten and thank you for your comprehensive feedback!

  • Yes, OnOff-Channel is not needed, but provided as a shortcut. For API there is no “on” mode, so this channel sends mode: off for off and mode: movie for on (which fails for some models not supporting movie mode :confused: ).
  • I haven’t tested effects this year yet :wink: Normally you must send an integer to this channel to trigger an effect, which should be configured via App first. According to API it is either a current number (e.g. 5) or 15 for newer firmware (don’t know why, probably just +10). You should be able to obtain the current effect number: just start an effect from the App and write down the number from the effect Channel.
  • I’m unsure what the rt does and haven’t tested it. According to API:

rt: receive effect in real time

which is probably needed for the following API call:

Send Realtime Frame
Used by application during lights mapping.


 which I haven’t implemented. In this case, rt mode is useless now.

  • Yes, I’ve noticed some lags myself but I’ve hoped to get rid of them. It might as well have to do with refresh. If this is a breaking issue for you, I might take a look into it again.

  • I had some issues while using App and Binding at the same time myself. Normally I’d assume most in-App changes should be sent to Binding with the given refresh rate but the App might ignore or even try to overwrite the events from the Binding if active in the same time. Again, if you have any breaking issues, please contact me again.

  • playlist functionality is not fully implemented in this binding, I’m just sending mode: playlist. I’d assume, first movie from the last playlist should start to play.

If you wish, you can check the unofficial API here, most now missing features can be implemented quickly.

In any case, I hope you’ll enjoy your new fully automated tree and wish you happy holidays! :christmas_tree:

Pav

Hello @Pavion
Would you advice if this binding will works with Twinkly Curtain ?
Thank you

Hi there! I don’t have Curtain but I assume it should. Why don’t you just try it so we have it settled? :wink:

Hi @Pavion

Ive already tried to add twinkly curtain but constantly after add the thing i have information that status of the binding is unknown, (one more thing I have two curtain which are define as a one group)

sample of my config:

UID: twinklytree:twinkly:a35816e0ec
label: Twinkly
thingTypeUID: twinklytree:twinkly
configuration:
host: 192.168.X.Y
refresh: 60

trace logs shows following entries after the reload openhab service (trace mode), (openhab version 4.0.4 on rpi4)

2023-12-21 14:01:58.775 [DEBUG] [e.internal.TwinklyTreeHandlerFactory] - bundle org.openhab.binding.twinklytree:4.1.0.202311251704 (345)[org.openhab.binding.twinklytree.internal.TwinklyTreeHandlerFactory] : BundleComponentActivator : ComponentHolder created.
2023-12-21 14:01:58.778 [DEBUG] [e.internal.TwinklyTreeHandlerFactory] - bundle org.openhab.binding.twinklytree:4.1.0.202311251704 (345)[org.openhab.binding.twinklytree.internal.TwinklyTreeHandlerFactory] : Dependency Manager created osgi.ds.satisfying.conditioninterface=org.osgi.service.condition.Condition, filter=(osgi.condition.id=true), policy=dynamic, cardinality=1
1, bind=null, unbind=null, updated=null, field=null, field-option=null, collection-type=null, parameter=null
2023-12-21 14:01:58.780 [DEBUG] [e.internal.TwinklyTreeHandlerFactory] - bundle org.openhab.binding.twinklytree:4.1.0.202311251704 (345)[org.openhab.binding.twinklytree.internal.TwinklyTreeHandlerFactory] : Component created: DS=DS13, implementation=org.openhab.binding.twinklytree.internal.TwinklyTreeHandlerFactory, immediate=false, default-enabled=true, factory=null, configuration-policy=optional, activate=activate, deactivate=deactivate, modified=null configuration-pid=[binding.twinklytree]
2023-12-21 14:01:58.782 [DEBUG] [e.internal.TwinklyTreeHandlerFactory] - bundle org.openhab.binding.twinklytree:4.1.0.202311251704 (345)[org.openhab.binding.twinklytree.internal.TwinklyTreeHandlerFactory] : Component Services: scope=singleton, services=[org.openhab.core.thing.binding.ThingHandlerFactory]
2023-12-21 14:01:58.784 [DEBUG] [e.internal.TwinklyTreeHandlerFactory] - bundle org.openhab.binding.twinklytree:4.1.0.202311251704 (345)[org.openhab.binding.twinklytree.internal.TwinklyTreeHandlerFactory] : Component Properties: {osgi.ds.satisfying.condition.target=(osgi.condition.id=true)}
2023-12-21 14:01:58.785 [DEBUG] [e.internal.TwinklyTreeHandlerFactory] - bundle org.openhab.binding.twinklytree:4.1.0.202311251704 (345)[org.openhab.binding.twinklytree.internal.TwinklyTreeHandlerFactory] : Querying state disabled
2023-12-21 14:01:58.787 [DEBUG] [e.internal.TwinklyTreeHandlerFactory] - bundle org.openhab.binding.twinklytree:4.1.0.202311251704 (345)[org.openhab.binding.twinklytree.internal.TwinklyTreeHandlerFactory] : Querying state disabled
2023-12-21 14:01:58.788 [DEBUG] [e.internal.TwinklyTreeHandlerFactory] - bundle org.openhab.binding.twinklytree:4.1.0.202311251704 (345)[org.openhab.binding.twinklytree.internal.TwinklyTreeHandlerFactory] : Component can not be activated since it is in state disabled
2023-12-21 14:01:58.790 [DEBUG] [e.internal.TwinklyTreeHandlerFactory] - bundle org.openhab.binding.twinklytree:4.1.0.202311251704 (345)[org.openhab.binding.twinklytree.internal.TwinklyTreeHandlerFactory] : Querying state disabled
2023-12-21 14:01:58.791 [DEBUG] [e.internal.TwinklyTreeHandlerFactory] - bundle org.openhab.binding.twinklytree:4.1.0.202311251704 (345)[org.openhab.binding.twinklytree.internal.TwinklyTreeHandlerFactory(433)] : Updating target filters
2023-12-21 14:01:58.792 [DEBUG] [e.internal.TwinklyTreeHandlerFactory] - bundle org.openhab.binding.twinklytree:4.1.0.202311251704 (345)[org.openhab.binding.twinklytree.internal.TwinklyTreeHandlerFactory(433)] : No existing service listener to unregister for dependency osgi.ds.satisfying.condition
2023-12-21 14:01:58.794 [DEBUG] [e.internal.TwinklyTreeHandlerFactory] - bundle org.openhab.binding.twinklytree:4.1.0.202311251704 (345)[org.openhab.binding.twinklytree.internal.TwinklyTreeHandlerFactory(433)] : Setting target property for dependency osgi.ds.satisfying.condition to (osgi.condition.id=true)
2023-12-21 14:01:58.795 [DEBUG] [e.internal.TwinklyTreeHandlerFactory] - bundle org.openhab.binding.twinklytree:4.1.0.202311251704 (345)[org.openhab.binding.twinklytree.internal.TwinklyTreeHandlerFactory(433)] : New service tracker for osgi.ds.satisfying.condition, initial active: false, previous references: {}, classFilter: (objectClass=org.osgi.service.condition.Condition), initialReferenceFilter (&(objectClass=org.osgi.service.condition.Condition)(osgi.condition.id=true))
2023-12-21 14:01:58.797 [DEBUG] [e.internal.TwinklyTreeHandlerFactory] - bundle org.openhab.binding.twinklytree:4.1.0.202311251704 (345)[org.openhab.binding.twinklytree.internal.TwinklyTreeHandlerFactory(433)] : dm osgi.ds.satisfying.condition tracker reset (closed)
2023-12-21 14:01:58.798 [DEBUG] [e.internal.TwinklyTreeHandlerFactory] - bundle org.openhab.binding.twinklytree:4.1.0.202311251704 (345)[org.openhab.binding.twinklytree.internal.TwinklyTreeHandlerFactory(433)] : dm osgi.ds.satisfying.condition tracking 1 SingleDynamic added {org.osgi.service.condition.Condition}={service.id=6, service.bundleid=0, service.scope=singleton, service.pid=0.org.osgi.service.condition.ConditionImpl, osgi.condition.id=true} (enter)
2023-12-21 14:01:58.799 [DEBUG] [e.internal.TwinklyTreeHandlerFactory] - bundle org.openhab.binding.twinklytree:4.1.0.202311251704 (345)[org.openhab.binding.twinklytree.internal.TwinklyTreeHandlerFactory(433)] : dm osgi.ds.satisfying.condition tracking 1 SingleDynamic added {org.osgi.service.condition.Condition}={service.id=6, service.bundleid=0, service.scope=singleton, service.pid=0.org.osgi.service.condition.ConditionImpl, osgi.condition.id=true} (exit)
2023-12-21 14:01:58.801 [DEBUG] [e.internal.TwinklyTreeHandlerFactory] - bundle org.openhab.binding.twinklytree:4.1.0.202311251704 (345)[org.openhab.binding.twinklytree.internal.TwinklyTreeHandlerFactory(433)] : dm osgi.ds.satisfying.condition tracker opened
2023-12-21 14:01:58.802 [DEBUG] [e.internal.TwinklyTreeHandlerFactory] - bundle org.openhab.binding.twinklytree:4.1.0.202311251704 (345)[org.openhab.binding.twinklytree.internal.TwinklyTreeHandlerFactory(433)] : registering service listener for dependency osgi.ds.satisfying.condition
2023-12-21 14:01:58.803 [DEBUG] [e.internal.TwinklyTreeHandlerFactory] - bundle org.openhab.binding.twinklytree:4.1.0.202311251704 (345)[org.openhab.binding.twinklytree.internal.TwinklyTreeHandlerFactory(433)] : Changed state from disabled to unsatisfiedReference
2023-12-21 14:01:58.805 [DEBUG] [e.internal.TwinklyTreeHandlerFactory] - bundle org.openhab.binding.twinklytree:4.1.0.202311251704 (345)[org.openhab.binding.twinklytree.internal.TwinklyTreeHandlerFactory(433)] : Component enabled
2023-12-21 14:01:58.806 [DEBUG] [e.internal.TwinklyTreeHandlerFactory] - bundle org.openhab.binding.twinklytree:4.1.0.202311251704 (345)[org.openhab.binding.twinklytree.internal.TwinklyTreeHandlerFactory(433)] : ActivateInternal
2023-12-21 14:01:58.807 [DEBUG] [e.internal.TwinklyTreeHandlerFactory] - bundle org.openhab.binding.twinklytree:4.1.0.202311251704 (345)[org.openhab.binding.twinklytree.internal.TwinklyTreeHandlerFactory(433)] : Querying state unsatisfiedReference
2023-12-21 14:01:58.808 [DEBUG] [e.internal.TwinklyTreeHandlerFactory] - bundle org.openhab.binding.twinklytree:4.1.0.202311251704 (345)[org.openhab.binding.twinklytree.internal.TwinklyTreeHandlerFactory(433)] : Querying state unsatisfiedReference
2023-12-21 14:01:58.809 [DEBUG] [e.internal.TwinklyTreeHandlerFactory] - bundle org.openhab.binding.twinklytree:4.1.0.202311251704 (345)[org.openhab.binding.twinklytree.internal.TwinklyTreeHandlerFactory(433)] : Activating component from state unsatisfiedReference
2023-12-21 14:01:58.810 [DEBUG] [e.internal.TwinklyTreeHandlerFactory] - bundle org.openhab.binding.twinklytree:4.1.0.202311251704 (345)[org.openhab.binding.twinklytree.internal.TwinklyTreeHandlerFactory(433)] : Querying state unsatisfiedReference
2023-12-21 14:01:58.811 [DEBUG] [e.internal.TwinklyTreeHandlerFactory] - bundle org.openhab.binding.twinklytree:4.1.0.202311251704 (345)[org.openhab.binding.twinklytree.internal.TwinklyTreeHandlerFactory(433)] : Querying state unsatisfiedReference
2023-12-21 14:01:58.813 [DEBUG] [e.internal.TwinklyTreeHandlerFactory] - bundle org.openhab.binding.twinklytree:4.1.0.202311251704 (345)[org.openhab.binding.twinklytree.internal.TwinklyTreeHandlerFactory(433)] : Changed state from unsatisfiedReference to satisfied
2023-12-21 14:01:58.814 [DEBUG] [e.internal.TwinklyTreeHandlerFactory] - bundle org.openhab.binding.twinklytree:4.1.0.202311251704 (345)[org.openhab.binding.twinklytree.internal.TwinklyTreeHandlerFactory(433)] : registration change queue [registered]
2023-12-21 14:01:58.876 [DEBUG] [e.internal.TwinklyTreeHandlerFactory] - bundle org.openhab.binding.twinklytree:4.1.0.202311251704 (345)[org.openhab.binding.twinklytree.internal.TwinklyTreeHandlerFactory(433)] : Checking constructor public org.openhab.binding.twinklytree.internal.TwinklyTreeHandlerFactory()
2023-12-21 14:01:58.877 [DEBUG] [e.internal.TwinklyTreeHandlerFactory] - bundle org.openhab.binding.twinklytree:4.1.0.202311251704 (345)[org.openhab.binding.twinklytree.internal.TwinklyTreeHandlerFactory(433)] : Found constructor with 0 arguments : public org.openhab.binding.twinklytree.internal.TwinklyTreeHandlerFactory()
2023-12-21 14:01:58.878 [DEBUG] [e.internal.TwinklyTreeHandlerFactory] - bundle org.openhab.binding.twinklytree:4.1.0.202311251704 (345)[org.openhab.binding.twinklytree.internal.TwinklyTreeHandlerFactory(433)] : This thread collected dependencies
2023-12-21 14:01:58.879 [DEBUG] [e.internal.TwinklyTreeHandlerFactory] - bundle org.openhab.binding.twinklytree:4.1.0.202311251704 (345)[org.openhab.binding.twinklytree.internal.TwinklyTreeHandlerFactory(433)] : getService (single component manager) dependencies collected.
2023-12-21 14:01:58.880 [DEBUG] [e.internal.TwinklyTreeHandlerFactory] - bundle org.openhab.binding.twinklytree:4.1.0.202311251704 (345)[org.openhab.binding.twinklytree.internal.TwinklyTreeHandlerFactory(433)] : Querying state satisfied
2023-12-21 14:01:58.881 [DEBUG] [e.internal.TwinklyTreeHandlerFactory] - bundle org.openhab.binding.twinklytree:4.1.0.202311251704 (345)[org.openhab.binding.twinklytree.internal.TwinklyTreeHandlerFactory(433)] : Querying state satisfied
2023-12-21 14:01:58.883 [DEBUG] [e.internal.TwinklyTreeHandlerFactory] - bundle org.openhab.binding.twinklytree:4.1.0.202311251704 (345)[org.openhab.binding.twinklytree.internal.TwinklyTreeHandlerFactory(433)] : For dependency osgi.ds.satisfying.condition, optional: false; to bind: [[RefPair: ref: [{org.osgi.service.condition.Condition}={service.id=6, service.bundleid=0, service.scope=singleton, service.pid=0.org.osgi.service.condition.ConditionImpl, osgi.condition.id=true}] service: [null]]]
2023-12-21 14:01:59.334 [DEBUG] [e.internal.TwinklyTreeHandlerFactory] - bundle org.openhab.binding.twinklytree:4.1.0.202311251704 (345)[org.openhab.binding.twinklytree.internal.TwinklyTreeHandlerFactory(433)] : getting activate: activate
2023-12-21 14:01:59.335 [DEBUG] [e.internal.TwinklyTreeHandlerFactory] - bundle org.openhab.binding.twinklytree:4.1.0.202311251704 (345)[org.openhab.binding.twinklytree.internal.TwinklyTreeHandlerFactory(433)] : Locating method activate in class org.openhab.binding.twinklytree.internal.TwinklyTreeHandlerFactory
2023-12-21 14:01:59.337 [DEBUG] [e.internal.TwinklyTreeHandlerFactory] - bundle org.openhab.binding.twinklytree:4.1.0.202311251704 (345)[org.openhab.binding.twinklytree.internal.TwinklyTreeHandlerFactory(433)] : Declared Method org.openhab.binding.twinklytree.internal.TwinklyTreeHandlerFactory.activate([interface org.osgi.service.component.ComponentContext]) not found
2023-12-21 14:01:59.338 [DEBUG] [e.internal.TwinklyTreeHandlerFactory] - bundle org.openhab.binding.twinklytree:4.1.0.202311251704 (345)[org.openhab.binding.twinklytree.internal.TwinklyTreeHandlerFactory(433)] : Locating method activate in class org.openhab.core.thing.binding.BaseThingHandlerFactory
2023-12-21 14:01:59.339 [DEBUG] [e.internal.TwinklyTreeHandlerFactory] - bundle org.openhab.binding.twinklytree:4.1.0.202311251704 (345)[org.openhab.binding.twinklytree.internal.TwinklyTreeHandlerFactory(433)] : Found activate method: protected void org.openhab.core.thing.binding.BaseThingHandlerFactory.activate(org.osgi.service.component.ComponentContext)
2023-12-21 14:01:59.339 [DEBUG] [e.internal.TwinklyTreeHandlerFactory] - bundle org.openhab.binding.twinklytree:4.1.0.202311251704 (345)[org.openhab.binding.twinklytree.internal.TwinklyTreeHandlerFactory(433)] : invoking activate: activate: parameters [org.apache.felix.scr.impl.manager.ComponentContextImpl]
2023-12-21 14:01:59.341 [DEBUG] [e.internal.TwinklyTreeHandlerFactory] - bundle org.openhab.binding.twinklytree:4.1.0.202311251704 (345)[org.openhab.binding.twinklytree.internal.TwinklyTreeHandlerFactory(433)] : invoked activate: activate
2023-12-21 14:01:59.342 [DEBUG] [e.internal.TwinklyTreeHandlerFactory] - bundle org.openhab.binding.twinklytree:4.1.0.202311251704 (345)[org.openhab.binding.twinklytree.internal.TwinklyTreeHandlerFactory(433)] : Set implementation object for component
2023-12-21 14:01:59.343 [DEBUG] [e.internal.TwinklyTreeHandlerFactory] - bundle org.openhab.binding.twinklytree:4.1.0.202311251704 (345)[org.openhab.binding.twinklytree.internal.TwinklyTreeHandlerFactory(433)] : Changed state from satisfied to active

Sorry to hear it, but I can’t see anything wrong here.
Upon adding a Thing, it might stay unknown until the first refresh.
The log you’ve provided shows nothing from the binding. Have you used

log:set DEBUG org.openhab.binding.twinklytree 

If you have any additional information, I could look into it tomorrow.

Hi there here is input from debug mode,let me know if you need something more?

[18:20:18] root@openhab:~# cat /var/log/openhab/openhab.log|grep -i twi
2023-12-27 17:56:51.329 [DEBUG] [e.internal.TwinklyTreeHandlerFactory] - bundle org.openhab.binding.twinklytree:4.1.0.202311251704 (243)[org.openhab.binding.twinklytree.internal.TwinklyTreeHandlerFactory] : BundleComponentActivator : ComponentHolder created.
2023-12-27 17:56:51.332 [DEBUG] [e.internal.TwinklyTreeHandlerFactory] - bundle org.openhab.binding.twinklytree:4.1.0.202311251704 (243)[org.openhab.binding.twinklytree.internal.TwinklyTreeHandlerFactory] : Dependency Manager created osgi.ds.satisfying.conditioninterface=org.osgi.service.condition.Condition, filter=(osgi.condition.id=true), policy=dynamic, cardinality=1
1, bind=null, unbind=null, updated=null, field=null, field-option=null, collection-type=null, parameter=null
2023-12-27 17:56:51.334 [DEBUG] [e.internal.TwinklyTreeHandlerFactory] - bundle org.openhab.binding.twinklytree:4.1.0.202311251704 (243)[org.openhab.binding.twinklytree.internal.TwinklyTreeHandlerFactory] : Component created: DS=DS13, implementation=org.openhab.binding.twinklytree.internal.TwinklyTreeHandlerFactory, immediate=false, default-enabled=true, factory=null, configuration-policy=optional, activate=activate, deactivate=deactivate, modified=null configuration-pid=[binding.twinklytree]
2023-12-27 17:56:51.336 [DEBUG] [e.internal.TwinklyTreeHandlerFactory] - bundle org.openhab.binding.twinklytree:4.1.0.202311251704 (243)[org.openhab.binding.twinklytree.internal.TwinklyTreeHandlerFactory] : Component Services: scope=singleton, services=[org.openhab.core.thing.binding.ThingHandlerFactory]
2023-12-27 17:56:51.337 [DEBUG] [e.internal.TwinklyTreeHandlerFactory] - bundle org.openhab.binding.twinklytree:4.1.0.202311251704 (243)[org.openhab.binding.twinklytree.internal.TwinklyTreeHandlerFactory] : Component Properties: {osgi.ds.satisfying.condition.target=(osgi.condition.id=true)}
2023-12-27 17:56:51.338 [DEBUG] [e.internal.TwinklyTreeHandlerFactory] - bundle org.openhab.binding.twinklytree:4.1.0.202311251704 (243)[org.openhab.binding.twinklytree.internal.TwinklyTreeHandlerFactory] : Querying state disabled
2023-12-27 17:56:51.340 [DEBUG] [e.internal.TwinklyTreeHandlerFactory] - bundle org.openhab.binding.twinklytree:4.1.0.202311251704 (243)[org.openhab.binding.twinklytree.internal.TwinklyTreeHandlerFactory] : Querying state disabled
2023-12-27 17:56:51.341 [DEBUG] [e.internal.TwinklyTreeHandlerFactory] - bundle org.openhab.binding.twinklytree:4.1.0.202311251704 (243)[org.openhab.binding.twinklytree.internal.TwinklyTreeHandlerFactory] : Component can not be activated since it is in state disabled
2023-12-27 17:56:51.343 [DEBUG] [e.internal.TwinklyTreeHandlerFactory] - bundle org.openhab.binding.twinklytree:4.1.0.202311251704 (243)[org.openhab.binding.twinklytree.internal.TwinklyTreeHandlerFactory] : Querying state disabled
2023-12-27 17:56:51.344 [DEBUG] [e.internal.TwinklyTreeHandlerFactory] - bundle org.openhab.binding.twinklytree:4.1.0.202311251704 (243)[org.openhab.binding.twinklytree.internal.TwinklyTreeHandlerFactory(448)] : Updating target filters
2023-12-27 17:56:51.346 [DEBUG] [e.internal.TwinklyTreeHandlerFactory] - bundle org.openhab.binding.twinklytree:4.1.0.202311251704 (243)[org.openhab.binding.twinklytree.internal.TwinklyTreeHandlerFactory(448)] : No existing service listener to unregister for dependency osgi.ds.satisfying.condition
2023-12-27 17:56:51.347 [DEBUG] [e.internal.TwinklyTreeHandlerFactory] - bundle org.openhab.binding.twinklytree:4.1.0.202311251704 (243)[org.openhab.binding.twinklytree.internal.TwinklyTreeHandlerFactory(448)] : Setting target property for dependency osgi.ds.satisfying.condition to (osgi.condition.id=true)
2023-12-27 17:56:51.348 [DEBUG] [e.internal.TwinklyTreeHandlerFactory] - bundle org.openhab.binding.twinklytree:4.1.0.202311251704 (243)[org.openhab.binding.twinklytree.internal.TwinklyTreeHandlerFactory(448)] : New service tracker for osgi.ds.satisfying.condition, initial active: false, previous references: {}, classFilter: (objectClass=org.osgi.service.condition.Condition), initialReferenceFilter (&(objectClass=org.osgi.service.condition.Condition)(osgi.condition.id=true))
2023-12-27 17:56:51.350 [DEBUG] [e.internal.TwinklyTreeHandlerFactory] - bundle org.openhab.binding.twinklytree:4.1.0.202311251704 (243)[org.openhab.binding.twinklytree.internal.TwinklyTreeHandlerFactory(448)] : dm osgi.ds.satisfying.condition tracker reset (closed)
2023-12-27 17:56:51.352 [DEBUG] [e.internal.TwinklyTreeHandlerFactory] - bundle org.openhab.binding.twinklytree:4.1.0.202311251704 (243)[org.openhab.binding.twinklytree.internal.TwinklyTreeHandlerFactory(448)] : dm osgi.ds.satisfying.condition tracking 1 SingleDynamic added {org.osgi.service.condition.Condition}={service.id=6, service.bundleid=0, service.scope=singleton, service.pid=0.org.osgi.service.condition.ConditionImpl, osgi.condition.id=true} (enter)
2023-12-27 17:56:51.354 [DEBUG] [e.internal.TwinklyTreeHandlerFactory] - bundle org.openhab.binding.twinklytree:4.1.0.202311251704 (243)[org.openhab.binding.twinklytree.internal.TwinklyTreeHandlerFactory(448)] : dm osgi.ds.satisfying.condition tracking 1 SingleDynamic added {org.osgi.service.condition.Condition}={service.id=6, service.bundleid=0, service.scope=singleton, service.pid=0.org.osgi.service.condition.ConditionImpl, osgi.condition.id=true} (exit)
2023-12-27 17:56:51.355 [DEBUG] [e.internal.TwinklyTreeHandlerFactory] - bundle org.openhab.binding.twinklytree:4.1.0.202311251704 (243)[org.openhab.binding.twinklytree.internal.TwinklyTreeHandlerFactory(448)] : dm osgi.ds.satisfying.condition tracker opened
2023-12-27 17:56:51.356 [DEBUG] [e.internal.TwinklyTreeHandlerFactory] - bundle org.openhab.binding.twinklytree:4.1.0.202311251704 (243)[org.openhab.binding.twinklytree.internal.TwinklyTreeHandlerFactory(448)] : registering service listener for dependency osgi.ds.satisfying.condition
2023-12-27 17:56:51.358 [DEBUG] [e.internal.TwinklyTreeHandlerFactory] - bundle org.openhab.binding.twinklytree:4.1.0.202311251704 (243)[org.openhab.binding.twinklytree.internal.TwinklyTreeHandlerFactory(448)] : Changed state from disabled to unsatisfiedReference
2023-12-27 17:56:51.359 [DEBUG] [e.internal.TwinklyTreeHandlerFactory] - bundle org.openhab.binding.twinklytree:4.1.0.202311251704 (243)[org.openhab.binding.twinklytree.internal.TwinklyTreeHandlerFactory(448)] : Component enabled
2023-12-27 17:56:51.360 [DEBUG] [e.internal.TwinklyTreeHandlerFactory] - bundle org.openhab.binding.twinklytree:4.1.0.202311251704 (243)[org.openhab.binding.twinklytree.internal.TwinklyTreeHandlerFactory(448)] : ActivateInternal
2023-12-27 17:56:51.362 [DEBUG] [e.internal.TwinklyTreeHandlerFactory] - bundle org.openhab.binding.twinklytree:4.1.0.202311251704 (243)[org.openhab.binding.twinklytree.internal.TwinklyTreeHandlerFactory(448)] : Querying state unsatisfiedReference
2023-12-27 17:56:51.363 [DEBUG] [e.internal.TwinklyTreeHandlerFactory] - bundle org.openhab.binding.twinklytree:4.1.0.202311251704 (243)[org.openhab.binding.twinklytree.internal.TwinklyTreeHandlerFactory(448)] : Querying state unsatisfiedReference
2023-12-27 17:56:51.364 [DEBUG] [e.internal.TwinklyTreeHandlerFactory] - bundle org.openhab.binding.twinklytree:4.1.0.202311251704 (243)[org.openhab.binding.twinklytree.internal.TwinklyTreeHandlerFactory(448)] : Activating component from state unsatisfiedReference
2023-12-27 17:56:51.366 [DEBUG] [e.internal.TwinklyTreeHandlerFactory] - bundle org.openhab.binding.twinklytree:4.1.0.202311251704 (243)[org.openhab.binding.twinklytree.internal.TwinklyTreeHandlerFactory(448)] : Querying state unsatisfiedReference
2023-12-27 17:56:51.367 [DEBUG] [e.internal.TwinklyTreeHandlerFactory] - bundle org.openhab.binding.twinklytree:4.1.0.202311251704 (243)[org.openhab.binding.twinklytree.internal.TwinklyTreeHandlerFactory(448)] : Querying state unsatisfiedReference
2023-12-27 17:56:51.368 [DEBUG] [e.internal.TwinklyTreeHandlerFactory] - bundle org.openhab.binding.twinklytree:4.1.0.202311251704 (243)[org.openhab.binding.twinklytree.internal.TwinklyTreeHandlerFactory(448)] : Changed state from unsatisfiedReference to satisfied
2023-12-27 17:56:51.370 [DEBUG] [e.internal.TwinklyTreeHandlerFactory] - bundle org.openhab.binding.twinklytree:4.1.0.202311251704 (243)[org.openhab.binding.twinklytree.internal.TwinklyTreeHandlerFactory(448)] : registration change queue [registered]
2023-12-27 17:56:51.374 [DEBUG] [e.internal.TwinklyTreeHandlerFactory] - bundle org.openhab.binding.twinklytree:4.1.0.202311251704 (243)[org.openhab.binding.twinklytree.internal.TwinklyTreeHandlerFactory(448)] : Checking constructor public org.openhab.binding.twinklytree.internal.TwinklyTreeHandlerFactory()
2023-12-27 17:56:51.376 [DEBUG] [e.internal.TwinklyTreeHandlerFactory] - bundle org.openhab.binding.twinklytree:4.1.0.202311251704 (243)[org.openhab.binding.twinklytree.internal.TwinklyTreeHandlerFactory(448)] : Found constructor with 0 arguments : public org.openhab.binding.twinklytree.internal.TwinklyTreeHandlerFactory()
2023-12-27 17:56:51.377 [DEBUG] [e.internal.TwinklyTreeHandlerFactory] - bundle org.openhab.binding.twinklytree:4.1.0.202311251704 (243)[org.openhab.binding.twinklytree.internal.TwinklyTreeHandlerFactory(448)] : This thread collected dependencies
2023-12-27 17:56:51.379 [DEBUG] [e.internal.TwinklyTreeHandlerFactory] - bundle org.openhab.binding.twinklytree:4.1.0.202311251704 (243)[org.openhab.binding.twinklytree.internal.TwinklyTreeHandlerFactory(448)] : getService (single component manager) dependencies collected.
2023-12-27 17:56:51.380 [DEBUG] [e.internal.TwinklyTreeHandlerFactory] - bundle org.openhab.binding.twinklytree:4.1.0.202311251704 (243)[org.openhab.binding.twinklytree.internal.TwinklyTreeHandlerFactory(448)] : Querying state satisfied
2023-12-27 17:56:51.382 [DEBUG] [e.internal.TwinklyTreeHandlerFactory] - bundle org.openhab.binding.twinklytree:4.1.0.202311251704 (243)[org.openhab.binding.twinklytree.internal.TwinklyTreeHandlerFactory(448)] : Querying state satisfied
2023-12-27 17:56:51.384 [DEBUG] [e.internal.TwinklyTreeHandlerFactory] - bundle org.openhab.binding.twinklytree:4.1.0.202311251704 (243)[org.openhab.binding.twinklytree.internal.TwinklyTreeHandlerFactory(448)] : For dependency osgi.ds.satisfying.condition, optional: false; to bind: [[RefPair: ref: [{org.osgi.service.condition.Condition}={service.id=6, service.bundleid=0, service.scope=singleton, service.pid=0.org.osgi.service.condition.ConditionImpl, osgi.condition.id=true}] service: [null]]]
2023-12-27 17:56:51.387 [DEBUG] [e.internal.TwinklyTreeHandlerFactory] - bundle org.openhab.binding.twinklytree:4.1.0.202311251704 (243)[org.openhab.binding.twinklytree.internal.TwinklyTreeHandlerFactory(448)] : getting activate: activate
2023-12-27 17:56:51.388 [DEBUG] [e.internal.TwinklyTreeHandlerFactory] - bundle org.openhab.binding.twinklytree:4.1.0.202311251704 (243)[org.openhab.binding.twinklytree.internal.TwinklyTreeHandlerFactory(448)] : Locating method activate in class org.openhab.binding.twinklytree.internal.TwinklyTreeHandlerFactory
2023-12-27 17:56:51.390 [DEBUG] [e.internal.TwinklyTreeHandlerFactory] - bundle org.openhab.binding.twinklytree:4.1.0.202311251704 (243)[org.openhab.binding.twinklytree.internal.TwinklyTreeHandlerFactory(448)] : Declared Method org.openhab.binding.twinklytree.internal.TwinklyTreeHandlerFactory.activate([interface org.osgi.service.component.ComponentContext]) not found
2023-12-27 17:56:51.392 [DEBUG] [e.internal.TwinklyTreeHandlerFactory] - bundle org.openhab.binding.twinklytree:4.1.0.202311251704 (243)[org.openhab.binding.twinklytree.internal.TwinklyTreeHandlerFactory(448)] : Locating method activate in class org.openhab.core.thing.binding.BaseThingHandlerFactory
2023-12-27 17:56:51.393 [DEBUG] [e.internal.TwinklyTreeHandlerFactory] - bundle org.openhab.binding.twinklytree:4.1.0.202311251704 (243)[org.openhab.binding.twinklytree.internal.TwinklyTreeHandlerFactory(448)] : Found activate method: protected void org.openhab.core.thing.binding.BaseThingHandlerFactory.activate(org.osgi.service.component.ComponentContext)
2023-12-27 17:56:51.395 [DEBUG] [e.internal.TwinklyTreeHandlerFactory] - bundle org.openhab.binding.twinklytree:4.1.0.202311251704 (243)[org.openhab.binding.twinklytree.internal.TwinklyTreeHandlerFactory(448)] : invoking activate: activate: parameters [org.apache.felix.scr.impl.manager.ComponentContextImpl]
2023-12-27 17:56:51.397 [DEBUG] [e.internal.TwinklyTreeHandlerFactory] - bundle org.openhab.binding.twinklytree:4.1.0.202311251704 (243)[org.openhab.binding.twinklytree.internal.TwinklyTreeHandlerFactory(448)] : invoked activate: activate
2023-12-27 17:56:51.398 [DEBUG] [e.internal.TwinklyTreeHandlerFactory] - bundle org.openhab.binding.twinklytree:4.1.0.202311251704 (243)[org.openhab.binding.twinklytree.internal.TwinklyTreeHandlerFactory(448)] : Set implementation object for component
2023-12-27 17:56:51.400 [DEBUG] [e.internal.TwinklyTreeHandlerFactory] - bundle org.openhab.binding.twinklytree:4.1.0.202311251704 (243)[org.openhab.binding.twinklytree.internal.TwinklyTreeHandlerFactory(448)] : Changed state from satisfied to active
2023-12-27 18:16:11.077 [INFO ] [st.core.internal.thing.ThingResource] - Received HTTP PUT request for update configuration at ‘things/twinklytree:twinkly:ca293d3e21/config’ for an uninitialized thing ‘twinklytree:twinkly:ca293d3e21’.
2023-12-27 18:16:12.840 [INFO ] [st.core.internal.thing.ThingResource] - Received HTTP PUT request for update configuration at ‘things/twinklytree:twinkly:ca293d3e21/config’ for an uninitialized thing ‘twinklytree:twinkly:ca293d3e21’.
2023-12-27 18:19:20.572 [DEBUG] [org.eclipse.jetty.io.ChannelEndPoint] - filled 1550 HeapByteBuffer@43255[p=0,l=1550,c=8192,r=1550]={<<<PUT /rest/things/twinklyt
-AUTH-HEADER=1\r\n\r\nfalse>>>X-OPENHAB
\x00\x00\x00\x00\x00\x00\x00}
2023-12-27 18:19:20.573 [DEBUG] [.eclipse.jetty.server.HttpConnection] - HttpConnection@1e53330::SocketChannelEndPoint@173bf2f{l=/127.0.0.1:8080,r=/127.0.0.1:55648,OPEN,fill=-,flush=-,to=1/30000}{io=0/0,kio=0,kro=1}->HttpConnection@1e53330[p=HttpParser{s=START,0 of -1},g=HttpGenerator@161d916{s=START}]=>HttpChannelOverHttp@1176bb2{s=HttpChannelState@4a1b30{s=IDLE rs=BLOCKING os=OPEN is=IDLE awp=false se=false i=true al=0},r=0,c=false/false,a=IDLE,uri=null,age=0} filled 1550 HeapByteBuffer@43255[p=0,l=1550,c=8192,r=1550]={<<<PUT /rest/things/twinklyt
-AUTH-HEADER=1\r\n\r\nfalse>>>X-OPENHAB
\x00\x00\x00\x00\x00\x00\x00}
2023-12-27 18:19:20.575 [DEBUG] [.eclipse.jetty.server.HttpConnection] - HttpConnection@1e53330::SocketChannelEndPoint@173bf2f{l=/127.0.0.1:8080,r=/127.0.0.1:55648,OPEN,fill=-,flush=-,to=2/30000}{io=0/0,kio=0,kro=1}->HttpConnection@1e53330[p=HttpParser{s=START,0 of -1},g=HttpGenerator@161d916{s=START}]=>HttpChannelOverHttp@1176bb2{s=HttpChannelState@4a1b30{s=IDLE rs=BLOCKING os=OPEN is=IDLE awp=false se=false i=true al=0},r=0,c=false/false,a=IDLE,uri=null,age=0} parse HeapByteBuffer@43255[p=0,l=1550,c=8192,r=1550]={<<<PUT /rest/things/twinklyt
-AUTH-HEADER=1\r\n\r\nfalse>>>X-OPENHAB
\x00\x00\x00\x00\x00\x00\x00} null
2023-12-27 18:19:20.576 [DEBUG] [org.eclipse.jetty.http.HttpParser ] - parseNext s=START HeapByteBuffer@43255[p=0,l=1550,c=8192,r=1550]={<<<PUT /rest/things/twinklyt
-AUTH-HEADER=1\r\n\r\nfalse>>>X-OPENHAB
\x00\x00\x00\x00\x00\x00\x00}
2023-12-27 18:19:20.624 [DEBUG] [org.eclipse.jetty.server.HttpChannel] - REQUEST for //home.XXXXXXXXXXXX/rest/things/twinklytree:twinkly:ca293d3e21/enable on HttpChannelOverHttp@1176bb2{s=HttpChannelState@4a1b30{s=IDLE rs=BLOCKING os=OPEN is=IDLE awp=false se=false i=true al=0},r=1,c=false/false,a=IDLE,uri=//home.XXXXXXXXXXXX/rest/things/twinklytree:twinkly:ca293d3e21/enable,age=0}
PUT //home.XXXXXXXXXXXX/rest/things/twinklytree:twinkly:ca293d3e21/enable HTTP/1.0
Referer: https://home.XXXXXXXXXXXX/settings/things/twinklytree:twinkly:ca293d3e21
2023-12-27 18:19:20.626 [DEBUG] [.eclipse.jetty.server.HttpConnection] - HttpConnection@1e53330::SocketChannelEndPoint@173bf2f{l=/127.0.0.1:8080,r=/127.0.0.1:55648,OPEN,fill=-,flush=-,to=53/30000}{io=0/0,kio=0,kro=1}->HttpConnection@1e53330[p=HttpParser{s=CONTENT,0 of 5},g=HttpGenerator@161d916{s=START}]=>HttpChannelOverHttp@1176bb2{s=HttpChannelState@4a1b30{s=IDLE rs=BLOCKING os=OPEN is=IDLE awp=false se=false i=true al=0},r=1,c=false/false,a=IDLE,uri=//home.XXXXXXXXXXXX/rest/things/twinklytree:twinkly:ca293d3e21/enable,age=2} parsed true HttpParser{s=CONTENT,0 of 5}
2023-12-27 18:19:20.627 [DEBUG] [org.eclipse.jetty.server.HttpChannel] - handle //home.XXXXXXXXXXXX/rest/things/twinklytree:twinkly:ca293d3e21/enable HttpChannelOverHttp@1176bb2{s=HttpChannelState@4a1b30{s=IDLE rs=BLOCKING os=OPEN is=IDLE awp=false se=false i=true al=0},r=1,c=false/false,a=IDLE,uri=//home.XXXXXXXXXXXX/rest/things/twinklytree:twinkly:ca293d3e21/enable,age=3}
2023-12-27 18:19:20.629 [DEBUG] [org.eclipse.jetty.server.HttpChannel] - action DISPATCH HttpChannelOverHttp@1176bb2{s=HttpChannelState@4a1b30{s=HANDLING rs=BLOCKING os=OPEN is=IDLE awp=false se=false i=true al=0},r=1,c=false/false,a=HANDLING,uri=//home.XXXXXXXXXXXX/rest/things/twinklytree:twinkly:ca293d3e21/enable,age=5}
2023-12-27 18:19:20.630 [DEBUG] [org.eclipse.jetty.server.Server ] - REQUEST PUT /rest/things/twinklytree:twinkly:ca293d3e21/enable on HttpChannelOverHttp@1176bb2{s=HttpChannelState@4a1b30{s=HANDLING rs=BLOCKING os=OPEN is=IDLE awp=false se=false i=true al=0},r=1,c=false/false,a=HANDLING,uri=//home.XXXXXXXXXXXX/rest/things/twinklytree:twinkly:ca293d3e21/enable,age=6}
2023-12-27 18:19:20.631 [DEBUG] [etty.server.handler.gzip.GzipHandler] - GzipHandler@1ec40f{STARTED,min=1024,inflate=-1} handle Request(PUT //home.XXXXXXXXXXXX/rest/things/twinklytree:twinkly:ca293d3e21/enable)@68bcc3 in null
2023-12-27 18:19:20.632 [DEBUG] [etty.server.handler.gzip.GzipHandler] - GzipHandler@1ec40f{STARTED,min=1024,inflate=-1} excluded by method Request(PUT //home.XXXXXXXXXXXX/rest/things/twinklytree:twinkly:ca293d3e21/enable)@68bcc3
2023-12-27 18:19:20.633 [DEBUG] [.jetty.server.handler.ContextHandler] - scope null||/rest/things/twinklytree:twinkly:ca293d3e21/enable @ o.o.p.w.s.j.i.PaxWebServletContextHandler@1f3d042{/rest,null,AVAILABLE}
2023-12-27 18:19:20.634 [DEBUG] [.jetty.server.handler.ContextHandler] - context=/rest||/things/twinklytree:twinkly:ca293d3e21/enable @ o.o.p.w.s.j.i.PaxWebServletContextHandler@1f3d042{/rest,null,AVAILABLE}
2023-12-27 18:19:20.637 [DEBUG] [eclipse.jetty.servlet.ServletHandler] - servlet /rest||/things/twinklytree:twinkly:ca293d3e21/enable → cxf-servlet==javax.servlet.Servlet@e2fb1709{jsp=null,order=-1,inst=true,async=true,src=EMBEDDED:null,STARTED}
2023-12-27 18:19:20.648 [DEBUG] [.eclipse.jetty.server.HttpConnection] - HttpConnection@1e53330::SocketChannelEndPoint@173bf2f{l=/127.0.0.1:8080,r=/127.0.0.1:55648,OPEN,fill=-,flush=-,to=75/30000}{io=0/0,kio=0,kro=1}->HttpConnection@1e53330[p=HttpParser{s=CONTENT,0 of 5},g=HttpGenerator@161d916{s=START}]=>HttpChannelOverHttp@1176bb2{s=HttpChannelState@4a1b30{s=HANDLING rs=BLOCKING os=OPEN is=IDLE awp=false se=false i=true al=0},r=1,c=false/false,a=HANDLING,uri=//home.XXXXXXXXXXXX/rest/things/twinklytree:twinkly:ca293d3e21/enable,age=24} parse HeapByteBuffer@43255[p=1545,l=1550,c=8192,r=5]={PUT /rest
R=1\r\n\r\n<<>>X-OPENHAB
\x00\x00\x00\x00\x00\x00\x00} null
2023-12-27 18:19:20.649 [DEBUG] [org.eclipse.jetty.server.HttpChannel] - onContent HttpChannelOverHttp@1176bb2{s=HttpChannelState@4a1b30{s=HANDLING rs=BLOCKING os=OPEN is=IDLE awp=false se=false i=true al=0},r=1,c=false/false,a=HANDLING,uri=//home.XXXXXXXXXXXX/rest/things/twinklytree:twinkly:ca293d3e21/enable,age=25} Content@1c9c486{HeapByteBufferR@1501941[p=1545,l=1550,c=8192,r=5]={PUT /rest
R=1\r\n\r\n<<>>X-OPENHAB
\x00\x00\x00\x00\x00\x00\x00}}
2023-12-27 18:19:20.652 [DEBUG] [org.eclipse.jetty.server.HttpChannel] - onContentComplete HttpChannelOverHttp@1176bb2{s=HttpChannelState@4a1b30{s=HANDLING rs=BLOCKING os=OPEN is=IDLE awp=false se=false i=true al=0},r=1,c=false/false,a=HANDLING,uri=//home.XXXXXXXXXXXX/rest/things/twinklytree:twinkly:ca293d3e21/enable,age=27}
2023-12-27 18:19:20.653 [DEBUG] [org.eclipse.jetty.server.HttpChannel] - onRequestComplete HttpChannelOverHttp@1176bb2{s=HttpChannelState@4a1b30{s=HANDLING rs=BLOCKING os=OPEN is=IDLE awp=false se=false i=true al=0},r=1,c=false/false,a=HANDLING,uri=//home.XXXXXXXXXXXX/rest/things/twinklytree:twinkly:ca293d3e21/enable,age=28}
2023-12-27 18:19:20.654 [DEBUG] [.eclipse.jetty.server.HttpConnection] - HttpConnection@1e53330::SocketChannelEndPoint@173bf2f{l=/127.0.0.1:8080,r=/127.0.0.1:55648,OPEN,fill=-,flush=-,to=81/30000}{io=0/0,kio=0,kro=1}->HttpConnection@1e53330[p=HttpParser{s=END,5 of 5},g=HttpGenerator@161d916{s=START}]=>HttpChannelOverHttp@1176bb2{s=HttpChannelState@4a1b30{s=HANDLING rs=BLOCKING os=OPEN is=IDLE awp=false se=false i=true al=0},r=1,c=false/false,a=HANDLING,uri=//home.XXXXXXXXXXXX/rest/things/twinklytree:twinkly:ca293d3e21/enable,age=30} parsed false HttpParser{s=END,5 of 5}
2023-12-27 18:19:20.656 [DEBUG] [.eclipse.jetty.server.HttpConnection] - releaseRequestBuffer HttpConnection@1e53330::SocketChannelEndPoint@173bf2f{l=/127.0.0.1:8080,r=/127.0.0.1:55648,OPEN,fill=-,flush=-,to=83/30000}{io=0/0,kio=0,kro=1}->HttpConnection@1e53330[p=HttpParser{s=END,5 of 5},g=HttpGenerator@161d916{s=START}]=>HttpChannelOverHttp@1176bb2{s=HttpChannelState@4a1b30{s=HANDLING rs=BLOCKING os=OPEN is=IDLE awp=false se=false i=true al=0},r=1,c=false/false,a=HANDLING,uri=//home.XXXXXXXXXXXX/rest/things/twinklytree:twinkly:ca293d3e21/enable,age=31}
2023-12-27 18:19:20.675 [DEBUG] [org.eclipse.jetty.server.HttpOutput ] - write(array HeapByteBuffer@889a4d[p=0,l=857,c=8192,r=857]={<<<de",“defaultTags”:,“pro
:“twinklytree:twinkly”}>>>id”:"curr
\x00\x00\x00\x00\x00\x00\x00})
2023-12-27 18:19:20.676 [DEBUG] [org.eclipse.jetty.server.HttpOutput ] - write(array) s=OPEN,api=BLOCKING,sc=false,e=null aggregated !flush DirectByteBuffer@1e7f78e[p=0,l=1881,c=32768,r=1881]={<<<{“channels”:[{“linkedItem
:“twinklytree:twinkly”}>>>st”:"192
\x00\x00\x00\x00\x00\x00\x00}
2023-12-27 18:19:20.676 [DEBUG] [org.eclipse.jetty.server.HttpChannel] - sendResponse info=null content=DirectByteBuffer@1e7f78e[p=0,l=1881,c=32768,r=1881]={<<<{“channels”:[{“linkedItem
:“twinklytree:twinkly”}>>>st”:"192
\x00\x00\x00\x00\x00\x00\x00} complete=false committing=true callback=Blocker@22e595{null}
2023-12-27 18:19:20.677 [DEBUG] [org.eclipse.jetty.server.HttpChannel] - COMMIT for /rest/things/twinklytree:twinkly:ca293d3e21/enable on HttpChannelOverHttp@1176bb2{s=HttpChannelState@4a1b30{s=HANDLING rs=BLOCKING os=COMMITTED is=READY awp=false se=false i=true al=0},r=1,c=false/false,a=HANDLING,uri=//home.XXXXXXXXXXXX/rest/things/twinklytree:twinkly:ca293d3e21/enable,age=53}
2023-12-27 18:19:20.678 [DEBUG] [org.eclipse.jetty.http.HttpGenerator] - generateHeaders HTTP/1.0{s=200,h=2,cl=-1} last=false content=DirectByteBuffer@1e7f78e[p=0,l=1881,c=32768,r=1881]={<<<{“channels”:[{“linkedItem
:“twinklytree:twinkly”}>>>st”:“192
\x00\x00\x00\x00\x00\x00\x00}
2023-12-27 18:19:20.680 [DEBUG] [org.eclipse.jetty.io.ChannelEndPoint] - flushed 2002 SocketChannelEndPoint@173bf2f{l=/127.0.0.1:8080,r=/127.0.0.1:55648,OPEN,fill=-,flush=W,to=108/30000}{io=0/0,kio=0,kro=1}->HttpConnection@1e53330[p=HttpParser{s=END,5 of 5},g=HttpGenerator@161d916{s=COMMITTED}]=>HttpChannelOverHttp@1176bb2{s=HttpChannelState@4a1b30{s=HANDLING rs=BLOCKING os=COMMITTED is=READY awp=false se=false i=true al=0},r=1,c=false/false,a=HANDLING,uri=//home.XXXXXXXXXXXX/rest/things/twinklytree:twinkly:ca293d3e21/enable,age=56}
2023-12-27 18:19:20.685 [DEBUG] [rg.eclipse.jetty.io.AbstractEndPoint] - shutdownOutput SocketChannelEndPoint@173bf2f{l=/127.0.0.1:8080,r=/127.0.0.1:55648,OPEN,fill=-,flush=-,to=3/30000}{io=0/0,kio=0,kro=1}->HttpConnection@1e53330[p=HttpParser{s=END,5 of 5},g=HttpGenerator@161d916{s=END}]=>HttpChannelOverHttp@1176bb2{s=HttpChannelState@4a1b30{s=HANDLING rs=BLOCKING os=COMPLETED is=READY awp=false se=false i=true al=0},r=1,c=false/true,a=HANDLING,uri=//home.XXXXXXXXXXXX/rest/things/twinklytree:twinkly:ca293d3e21/enable,age=61}
2023-12-27 18:19:20.687 [DEBUG] [org.eclipse.jetty.server.Server ] - handled=true async=false committed=true on HttpChannelOverHttp@1176bb2{s=HttpChannelState@4a1b30{s=HANDLING rs=BLOCKING os=COMPLETED is=READY awp=false se=false i=true al=0},r=1,c=false/true,a=HANDLING,uri=//home.XXXXXXXXXXXX/rest/things/twinklytree:twinkly:ca293d3e21/enable,age=63}
2023-12-27 18:19:20.688 [DEBUG] [org.eclipse.jetty.server.HttpChannel] - action COMPLETE HttpChannelOverHttp@1176bb2{s=HttpChannelState@4a1b30{s=HANDLING rs=COMPLETING os=COMPLETED is=READY awp=false se=false i=false al=0},r=1,c=false/true,a=HANDLING,uri=//home.XXXXXXXXXXXX/rest/things/twinklytree:twinkly:ca293d3e21/enable,age=64}
2023-12-27 18:19:20.690 [DEBUG] [org.eclipse.jetty.server.HttpChannel] - action TERMINATED HttpChannelOverHttp@1176bb2{s=HttpChannelState@4a1b30{s=IDLE rs=COMPLETED os=COMPLETED is=READY awp=false se=false i=false al=0},r=1,c=true/true,a=IDLE,uri=//home.XXXXXXXXXXXX/rest/things/twinklytree:twinkly:ca293d3e21/enable,age=66}
2023-12-27 18:19:20.691 [DEBUG] [org.eclipse.jetty.server.HttpChannel] - onCompleted for /rest/things/twinklytree:twinkly:ca293d3e21/enable written=1881
2023-12-27 18:19:24.374 [DEBUG] [org.eclipse.jetty.io.ChannelEndPoint] - filled 1549 HeapByteBuffer@1f1ac20[p=0,l=1549,c=8192,r=1549]={<<<PUT /rest/things/twinklyt
B-AUTH-HEADER=1\r\n\r\ntrue>>> X-OPENHA
\x00\x00\x00\x00\x00\x00\x00}
2023-12-27 18:19:24.375 [DEBUG] [.eclipse.jetty.server.HttpConnection] - HttpConnection@3181a6::SocketChannelEndPoint@1f41ba2{l=/127.0.0.1:8080,r=/127.0.0.1:47634,OPEN,fill=-,flush=-,to=0/30000}{io=0/0,kio=0,kro=1}->HttpConnection@3181a6[p=HttpParser{s=START,0 of -1},g=HttpGenerator@13edb1e{s=START}]=>HttpChannelOverHttp@62d9a3{s=HttpChannelState@1aba9e1{s=IDLE rs=BLOCKING os=OPEN is=IDLE awp=false se=false i=true al=0},r=0,c=false/false,a=IDLE,uri=null,age=0} filled 1549 HeapByteBuffer@1f1ac20[p=0,l=1549,c=8192,r=1549]={<<<PUT /rest/things/twinklyt
B-AUTH-HEADER=1\r\n\r\ntrue>>> X-OPENHA
\x00\x00\x00\x00\x00\x00\x00}
2023-12-27 18:19:24.375 [DEBUG] [.eclipse.jetty.server.HttpConnection] - HttpConnection@3181a6::SocketChannelEndPoint@1f41ba2{l=/127.0.0.1:8080,r=/127.0.0.1:47634,OPEN,fill=-,flush=-,to=1/30000}{io=0/0,kio=0,kro=1}->HttpConnection@3181a6[p=HttpParser{s=START,0 of -1},g=HttpGenerator@13edb1e{s=START}]=>HttpChannelOverHttp@62d9a3{s=HttpChannelState@1aba9e1{s=IDLE rs=BLOCKING os=OPEN is=IDLE awp=false se=false i=true al=0},r=0,c=false/false,a=IDLE,uri=null,age=0} parse HeapByteBuffer@1f1ac20[p=0,l=1549,c=8192,r=1549]={<<<PUT /rest/things/twinklyt
B-AUTH-HEADER=1\r\n\r\ntrue>>> X-OPENHA
\x00\x00\x00\x00\x00\x00\x00} null
2023-12-27 18:19:24.376 [DEBUG] [org.eclipse.jetty.http.HttpParser ] - parseNext s=START HeapByteBuffer@1f1ac20[p=0,l=1549,c=8192,r=1549]={<<<PUT /rest/things/twinklyt
B-AUTH-HEADER=1\r\n\r\ntrue>>> X-OPENHA
\x00\x00\x00\x00\x00\x00\x00}
2023-12-27 18:19:24.413 [DEBUG] [org.eclipse.jetty.server.HttpChannel] - REQUEST for //home.XXXXXXXXXXXX/rest/things/twinklytree:twinkly:ca293d3e21/enable on HttpChannelOverHttp@62d9a3{s=HttpChannelState@1aba9e1{s=IDLE rs=BLOCKING os=OPEN is=IDLE awp=false se=false i=true al=0},r=1,c=false/false,a=IDLE,uri=//home.XXXXXXXXXXXX/rest/things/twinklytree:twinkly:ca293d3e21/enable,age=0}
PUT //home.XXXXXXXXXXXX/rest/things/twinklytree:twinkly:ca293d3e21/enable HTTP/1.0
Referer: https://home.XXXXXXXXXXXX/settings/things/twinklytree:twinkly:ca293d3e21
2023-12-27 18:19:24.413 [DEBUG] [.eclipse.jetty.server.HttpConnection] - HttpConnection@3181a6::SocketChannelEndPoint@1f41ba2{l=/127.0.0.1:8080,r=/127.0.0.1:47634,OPEN,fill=-,flush=-,to=38/30000}{io=0/0,kio=0,kro=1}->HttpConnection@3181a6[p=HttpParser{s=CONTENT,0 of 4},g=HttpGenerator@13edb1e{s=START}]=>HttpChannelOverHttp@62d9a3{s=HttpChannelState@1aba9e1{s=IDLE rs=BLOCKING os=OPEN is=IDLE awp=false se=false i=true al=0},r=1,c=false/false,a=IDLE,uri=//home.XXXXXXXXXXXX/rest/things/twinklytree:twinkly:ca293d3e21/enable,age=1} parsed true HttpParser{s=CONTENT,0 of 4}
2023-12-27 18:19:24.414 [DEBUG] [org.eclipse.jetty.server.HttpChannel] - handle //home.XXXXXXXXXXXX/rest/things/twinklytree:twinkly:ca293d3e21/enable HttpChannelOverHttp@62d9a3{s=HttpChannelState@1aba9e1{s=IDLE rs=BLOCKING os=OPEN is=IDLE awp=false se=false i=true al=0},r=1,c=false/false,a=IDLE,uri=//home.XXXXXXXXXXXX/rest/things/twinklytree:twinkly:ca293d3e21/enable,age=2}
2023-12-27 18:19:24.415 [DEBUG] [org.eclipse.jetty.server.HttpChannel] - action DISPATCH HttpChannelOverHttp@62d9a3{s=HttpChannelState@1aba9e1{s=HANDLING rs=BLOCKING os=OPEN is=IDLE awp=false se=false i=true al=0},r=1,c=false/false,a=HANDLING,uri=//home.XXXXXXXXXXXX/rest/things/twinklytree:twinkly:ca293d3e21/enable,age=3}
2023-12-27 18:19:24.415 [DEBUG] [org.eclipse.jetty.server.Server ] - REQUEST PUT /rest/things/twinklytree:twinkly:ca293d3e21/enable on HttpChannelOverHttp@62d9a3{s=HttpChannelState@1aba9e1{s=HANDLING rs=BLOCKING os=OPEN is=IDLE awp=false se=false i=true al=0},r=1,c=false/false,a=HANDLING,uri=//home.XXXXXXXXXXXX/rest/things/twinklytree:twinkly:ca293d3e21/enable,age=3}
2023-12-27 18:19:24.416 [DEBUG] [etty.server.handler.gzip.GzipHandler] - GzipHandler@1ec40f{STARTED,min=1024,inflate=-1} handle Request(PUT //home.XXXXXXXXXXXX/rest/things/twinklytree:twinkly:ca293d3e21/enable)@4c1490 in null
2023-12-27 18:19:24.416 [DEBUG] [etty.server.handler.gzip.GzipHandler] - GzipHandler@1ec40f{STARTED,min=1024,inflate=-1} excluded by method Request(PUT //home.XXXXXXXXXXXX/rest/things/twinklytree:twinkly:ca293d3e21/enable)@4c1490
2023-12-27 18:19:24.417 [DEBUG] [.jetty.server.handler.ContextHandler] - scope null||/rest/things/twinklytree:twinkly:ca293d3e21/enable @ o.o.p.w.s.j.i.PaxWebServletContextHandler@1f3d042{/rest,null,AVAILABLE}
2023-12-27 18:19:24.418 [DEBUG] [.jetty.server.handler.ContextHandler] - context=/rest||/things/twinklytree:twinkly:ca293d3e21/enable @ o.o.p.w.s.j.i.PaxWebServletContextHandler@1f3d042{/rest,null,AVAILABLE}
2023-12-27 18:19:24.419 [DEBUG] [eclipse.jetty.servlet.ServletHandler] - servlet /rest||/things/twinklytree:twinkly:ca293d3e21/enable → cxf-servlet==javax.servlet.Servlet@e2fb1709{jsp=null,order=-1,inst=true,async=true,src=EMBEDDED:null,STARTED}
2023-12-27 18:19:24.426 [DEBUG] [.eclipse.jetty.server.HttpConnection] - HttpConnection@3181a6::SocketChannelEndPoint@1f41ba2{l=/127.0.0.1:8080,r=/127.0.0.1:47634,OPEN,fill=-,flush=-,to=51/30000}{io=0/0,kio=0,kro=1}->HttpConnection@3181a6[p=HttpParser{s=CONTENT,0 of 4},g=HttpGenerator@13edb1e{s=START}]=>HttpChannelOverHttp@62d9a3{s=HttpChannelState@1aba9e1{s=HANDLING rs=BLOCKING os=OPEN is=IDLE awp=false se=false i=true al=0},r=1,c=false/false,a=HANDLING,uri=//home.XXXXXXXXXXXX/rest/things/twinklytree:twinkly:ca293d3e21/enable,age=14} parse HeapByteBuffer@1f1ac20[p=1545,l=1549,c=8192,r=4]={PUT /rest
R=1\r\n\r\n<<>> X-OPENHA
\x00\x00\x00\x00\x00\x00\x00} null
2023-12-27 18:19:24.427 [DEBUG] [org.eclipse.jetty.server.HttpChannel] - onContent HttpChannelOverHttp@62d9a3{s=HttpChannelState@1aba9e1{s=HANDLING rs=BLOCKING os=OPEN is=IDLE awp=false se=false i=true al=0},r=1,c=false/false,a=HANDLING,uri=//home.XXXXXXXXXXXX/rest/things/twinklytree:twinkly:ca293d3e21/enable,age=15} Content@1843510{HeapByteBufferR@1116c30[p=1545,l=1549,c=8192,r=4]={PUT /rest
R=1\r\n\r\n<<>> X-OPENHA
\x00\x00\x00\x00\x00\x00\x00}}
2023-12-27 18:19:24.429 [DEBUG] [org.eclipse.jetty.server.HttpChannel] - onContentComplete HttpChannelOverHttp@62d9a3{s=HttpChannelState@1aba9e1{s=HANDLING rs=BLOCKING os=OPEN is=IDLE awp=false se=false i=true al=0},r=1,c=false/false,a=HANDLING,uri=//home.XXXXXXXXXXXX/rest/things/twinklytree:twinkly:ca293d3e21/enable,age=17}
2023-12-27 18:19:24.430 [DEBUG] [org.eclipse.jetty.server.HttpChannel] - onRequestComplete HttpChannelOverHttp@62d9a3{s=HttpChannelState@1aba9e1{s=HANDLING rs=BLOCKING os=OPEN is=IDLE awp=false se=false i=true al=0},r=1,c=false/false,a=HANDLING,uri=//home.XXXXXXXXXXXX/rest/things/twinklytree:twinkly:ca293d3e21/enable,age=18}
2023-12-27 18:19:24.431 [DEBUG] [.eclipse.jetty.server.HttpConnection] - HttpConnection@3181a6::SocketChannelEndPoint@1f41ba2{l=/127.0.0.1:8080,r=/127.0.0.1:47634,OPEN,fill=-,flush=-,to=57/30000}{io=0/0,kio=0,kro=1}->HttpConnection@3181a6[p=HttpParser{s=END,4 of 4},g=HttpGenerator@13edb1e{s=START}]=>HttpChannelOverHttp@62d9a3{s=HttpChannelState@1aba9e1{s=HANDLING rs=BLOCKING os=OPEN is=IDLE awp=false se=false i=true al=0},r=1,c=false/false,a=HANDLING,uri=//home.XXXXXXXXXXXX/rest/things/twinklytree:twinkly:ca293d3e21/enable,age=19} parsed false HttpParser{s=END,4 of 4}
2023-12-27 18:19:24.433 [DEBUG] [.eclipse.jetty.server.HttpConnection] - releaseRequestBuffer HttpConnection@3181a6::SocketChannelEndPoint@1f41ba2{l=/127.0.0.1:8080,r=/127.0.0.1:47634,OPEN,fill=-,flush=-,to=58/30000}{io=0/0,kio=0,kro=1}->HttpConnection@3181a6[p=HttpParser{s=END,4 of 4},g=HttpGenerator@13edb1e{s=START}]=>HttpChannelOverHttp@62d9a3{s=HttpChannelState@1aba9e1{s=HANDLING rs=BLOCKING os=OPEN is=IDLE awp=false se=false i=true al=0},r=1,c=false/false,a=HANDLING,uri=//home.XXXXXXXXXXXX/rest/things/twinklytree:twinkly:ca293d3e21/enable,age=21}
2023-12-27 18:19:24.458 [DEBUG] [org.eclipse.jetty.server.HttpOutput ] - write(array HeapByteBuffer@85294f[p=0,l=847,c=8192,r=847]={<<<de”,“defaultTags”:,“pro
:“twinklytree:twinkly”}>>>teffect”,
\x00\x00\x00\x00\x00\x00\x00})
2023-12-27 18:19:24.459 [DEBUG] [org.eclipse.jetty.server.HttpOutput ] - write(array) s=OPEN,api=BLOCKING,sc=false,e=null aggregated !flush DirectByteBuffer@1e7f78e[p=0,l=1871,c=32768,r=1871]={<<<{“channels”:[{“linkedItem
:“twinklytree:twinkly”}>>>:twinkly”
\x00\x00\x00\x00\x00\x00\x00}
2023-12-27 18:19:24.459 [DEBUG] [org.eclipse.jetty.server.HttpChannel] - sendResponse info=null content=DirectByteBuffer@1e7f78e[p=0,l=1871,c=32768,r=1871]={<<<{“channels”:[{“linkedItem
:“twinklytree:twinkly”}>>>:twinkly”
\x00\x00\x00\x00\x00\x00\x00} complete=false committing=true callback=Blocker@980500{null}
2023-12-27 18:19:24.460 [DEBUG] [org.eclipse.jetty.server.HttpChannel] - COMMIT for /rest/things/twinklytree:twinkly:ca293d3e21/enable on HttpChannelOverHttp@62d9a3{s=HttpChannelState@1aba9e1{s=HANDLING rs=BLOCKING os=COMMITTED is=READY awp=false se=false i=true al=0},r=1,c=false/false,a=HANDLING,uri=//home.XXXXXXXXXXXX/rest/things/twinklytree:twinkly:ca293d3e21/enable,age=48}
2023-12-27 18:19:24.462 [DEBUG] [org.eclipse.jetty.http.HttpGenerator] - generateHeaders HTTP/1.0{s=200,h=2,cl=-1} last=false content=DirectByteBuffer@1e7f78e[p=0,l=1871,c=32768,r=1871]={<<<{“channels”:[{“linkedItem
:“twinklytree:twinkly”}>>>:twinkly”
\x00\x00\x00\x00\x00\x00\x00}
2023-12-27 18:19:24.465 [DEBUG] [org.eclipse.jetty.io.ChannelEndPoint] - flushed 1992 SocketChannelEndPoint@1f41ba2{l=/127.0.0.1:8080,r=/127.0.0.1:47634,OPEN,fill=-,flush=W,to=90/30000}{io=0/0,kio=0,kro=1}->HttpConnection@3181a6[p=HttpParser{s=END,4 of 4},g=HttpGenerator@13edb1e{s=COMMITTED}]=>HttpChannelOverHttp@62d9a3{s=HttpChannelState@1aba9e1{s=HANDLING rs=BLOCKING os=COMMITTED is=READY awp=false se=false i=true al=0},r=1,c=false/false,a=HANDLING,uri=//home.XXXXXXXXXXXX/rest/things/twinklytree:twinkly:ca293d3e21/enable,age=53}
2023-12-27 18:19:24.472 [DEBUG] [rg.eclipse.jetty.io.AbstractEndPoint] - shutdownOutput SocketChannelEndPoint@1f41ba2{l=/127.0.0.1:8080,r=/127.0.0.1:47634,OPEN,fill=-,flush=-,to=6/30000}{io=0/0,kio=0,kro=1}->HttpConnection@3181a6[p=HttpParser{s=END,4 of 4},g=HttpGenerator@13edb1e{s=END}]=>HttpChannelOverHttp@62d9a3{s=HttpChannelState@1aba9e1{s=HANDLING rs=BLOCKING os=COMPLETED is=READY awp=false se=false i=true al=0},r=1,c=false/true,a=HANDLING,uri=//home.XXXXXXXXXXXX/rest/things/twinklytree:twinkly:ca293d3e21/enable,age=60}
2023-12-27 18:19:24.475 [DEBUG] [org.eclipse.jetty.server.Server ] - handled=true async=false committed=true on HttpChannelOverHttp@62d9a3{s=HttpChannelState@1aba9e1{s=HANDLING rs=BLOCKING os=COMPLETED is=READY awp=false se=false i=true al=0},r=1,c=false/true,a=HANDLING,uri=//home.XXXXXXXXXXXX/rest/things/twinklytree:twinkly:ca293d3e21/enable,age=63}
2023-12-27 18:19:24.477 [DEBUG] [org.eclipse.jetty.server.HttpChannel] - action COMPLETE HttpChannelOverHttp@62d9a3{s=HttpChannelState@1aba9e1{s=HANDLING rs=COMPLETING os=COMPLETED is=READY awp=false se=false i=false al=0},r=1,c=false/true,a=HANDLING,uri=//home.XXXXXXXXXXXX/rest/things/twinklytree:twinkly:ca293d3e21/enable,age=65}
2023-12-27 18:19:24.480 [DEBUG] [org.eclipse.jetty.server.HttpChannel] - action TERMINATED HttpChannelOverHttp@62d9a3{s=HttpChannelState@1aba9e1{s=IDLE rs=COMPLETED os=COMPLETED is=READY awp=false se=false i=false al=0},r=1,c=true/true,a=IDLE,uri=//home.XXXXXXXXXXXX/rest/things/twinklytree:twinkly:ca293d3e21/enable,age=68}
2023-12-27 18:19:24.480 [DEBUG] [org.eclipse.jetty.server.HttpChannel] - onCompleted for /rest/things/twinklytree:twinkly:ca293d3e21/enable written=1871

That’s too much debug I admit :slight_smile:
It looks like you’ve activated the global debug mode by using log:set DEBUG, I can’t see any related information here. You should consider to set it back to ERROR to avoid log cluttering.
Anyway this binding don’t have much debug itself, as it’s a very primitive API call.

If you can access
http://TwinklyIP/xled/v1/login
and get back this answer:
{"code":1000}
the binding should work without any feedback.
On my clean 4.1.0 setup:

  • install Twinkly Binding from Marketplace
  • create new Thing with my Twinkly IP (e.g. 10.140.1.101, please check for any white spaces around the IP!) and 10 seconds refresh
  • link a new Switch to the OnOff-Channel

The new Thing stays UNKNOWN until the first refresh, after 10 seconds it works as intended
I actually should have seen some debug info, but I haven’t, so perhaps a little bug here

Seems that to make Twinkly binding active i need to define Switch, after that everything works according to expectations,

One more query, would you advice if this Twinkly Binding allows to add things directly with using text file with the things definition, just asking because if i trying use this way Ive got something like this ?

2023-12-29 17:07:46.146 [INFO ] [.thing.internal.GenericThingProvider] - No ThingHandlerFactory found for thing twinklyCurtain1:twinkly:twinklyCurtain1 (thing-type is twinklyCurtain1:twinkly). Deferring initialization.



Anyway thank you so much for your support,
Cheers

1 Like

Sure:

Thing twinklytree:twinkly:twinklyTree "Twinkly Tree" @ "MyRoom" [ host="192.168.0.2", refresh="60" ]

It’s not twinklyCurtain1:twinkly, check your syntax :wink:

1 Like

Ok thanks, after correct the things definition, everything works according to expectation ,
so Happy New Year :slight_smile:

1 Like

Hi,

I have the same config here (2 curtains as one group). I defined them as things and added the onoff_switch - one switch for both at the moment. But I can’t switch them one with this switch.
I just can switch them off.
Does is work for you? Do you have 2 switches (one for each)?

EDIT: Ok, now it works like it should. Except that I have two things for the two curtains in the group. If I control the first curtain, the group is reacting, if I control the second curatin, only the second curtain reacts :slight_smile:
It’s a weird behaviour but with the knowledge to control the group just with the “first switch” its fine.