Hi,
as I mentioned earlier please restart only ComfoAirQ-Homie. Not the whole system. During system restarting this known bug is revealed. You can restart it by invoking systemctl restart comfoairq_homie.service
Or You can use also reload feature of ComfoAirQ-Homie by publishing true to `homie/zehnderq450gateway/controls/reload/set’ topic.
Please use for example MQTT explorer or any other MQTT client and connect to MQTT broker to see all devices and sensors. You will see 2 Homie devices one zehnder450 and other zehnder450gateway. zehnder450 is the main device which is responsible for publishing sensors values and controlling ventilation unit. zehnder450gateway is an administrative device which can be used to for example to disconnect from ComfoConnect LAN C gateway without stopping ComfoAirQ-Homie. It is impossible to use mobile app and ComfoAirQ-Homie in the same time so this switch deactivates connection.
i am completely new to the Zehnder Q350 and openhab.
Recently (a week ago) I installed my Zehnder in a house in restoration state (at the moment nobody lives there).
I also installed the Comfoconnect LAN C and I am able to control it via the App (Phone and tablet) from everywere via VPN.
Because an app is not my final suggested solution, I prefer a webinterface which I can call from every device (even a PC) i searched the web and foud the solutions here via openhab.
Completely new to this topic yesterday I setup a VM (ubuntu 18.4) and set up openhab, mosquitto and even Klaudiusz scripts / brokers / items and what all
My first goal was to read values from the device. Cause Paper UI is annoying I set up basic UI, items and a sitemap. WOW, I can read the values
Now my goal is to set values and here are the questions:
The away Mode is read in seconds. The app asks for a end date. Will there be a good and comfortable way to set it up to transmit an end-date? With some switches I now set up Buttons like “+1 Week” “+1 day” “+1 Month”. With a rule it works
The bypass is controllable manually but the standard time is ever set to 60 minutes and the value is not changeable. In the app I can set 1-24h. Is it correct, that writing this time is actually not working? Or did someone got it managed?
Thank you for all that work, so my Comfoconnect LAN c is more usable
The away Mode is read in seconds. The app asks for a end date. Will there be a good and comfortable way to set it up to transmit an end-date? With some switches I now set up Buttons like “+1 Week” “+1 day” “+1 Month”. With a rule it works
The easiest solution is to use setpoint in the sitemap. You don’t need to use rules but in one element You can have only one time period ( i.g. 1h, 1day, 1week). There is no simple date time picker in OpenHAB. Custom widget is needed. Maybe You can search the forum to find suitable solution.
The bypass is controllable manually but the standard time is ever set to 60 minutes and the value is not changeable. In the app I can set 1-24h. Is it correct, that writing this time is actually not working? Or did someone got it managed?
Check new version in the repo. I implemented this feature adding two additional controls. There is also an example of the sitemap.
All items should be auto discovered but You can also use Items definitions from my repo for example to import them in WebUI from textual definiton.
Early OH2.5 versions had issues with Homie devices so I hope with OH3 it will be more stable. I started migration to OH3 a couple days ago. For now i have not noticed any issues.
If I had your skills I would start :-S for me probably too diddicult.
I thought maybe a java version of the existing stuff would be feasible.
so if its easier to leave the MQTT binding would be ok.
But instead of PHP stuff just 1 binding that connects to the Lanconnect and puts it on mqtt without the other manual steps php + homie etc.
But I am following this thread so long now and there were people like bitweasel that actually had it already up and running that I at some point just implement any solution that works at all.
Recently I installed this ComfoAirQ-Homie tool from @klaudiusz223 on OH 2.5.11 for my Zehnder Q350. Most part is working fine, I did make some small changes to the mqtt publish code, and some DateTime code (.calendar.timeInMillis to .zonedDateTime.toInstant.toEpochMilli), plus added some NULL checks.
I also had this error:
2021-01-19 18:31:03.913 [ERROR] [ansport.mqtt.internal.ClientCallback] - MQTT message received. MqttMessageSubscriber#processMessage() implementation failure
java.lang.IllegalArgumentException: Value must be between 0 and 100
at org.eclipse.smarthome.core.library.types.PercentType.validateValue(PercentType.java:57) ~[?:?]
at org.eclipse.smarthome.core.library.types.PercentType.<init>(PercentType.java:52) ~[?:?]
at org.eclipse.smarthome.core.library.types.DecimalType.as(DecimalType.java:152) ~[?:?]
at org.eclipse.smarthome.core.internal.items.ItemStateConverterImpl.convertToAcceptedState(ItemStateConverterImpl.java:64) ~[?:?]
at org.eclipse.smarthome.core.thing.internal.profiles.ProfileCallbackImpl.sendUpdate(ProfileCallbackImpl.java:134) ~[?:?]
at org.eclipse.smarthome.core.thing.internal.profiles.SystemDefaultProfile.onStateUpdateFromHandler(SystemDefaultProfile.java:53) ~[?:?]
at org.eclipse.smarthome.core.thing.internal.CommunicationManager.lambda$9(CommunicationManager.java:467) ~[?:?]
at org.eclipse.smarthome.core.thing.internal.CommunicationManager.lambda$11(CommunicationManager.java:487) ~[?:?]
at java.lang.Iterable.forEach(Iterable.java:75) ~[?:1.8.0_275]
at org.eclipse.smarthome.core.thing.internal.CommunicationManager.handleCallFromHandler(CommunicationManager.java:483) ~[?:?]
at org.eclipse.smarthome.core.thing.internal.CommunicationManager.stateUpdated(CommunicationManager.java:465) ~[?:?]
at org.eclipse.smarthome.core.thing.internal.ThingManagerImpl$1.stateUpdated(ThingManagerImpl.java:168) ~[?:?]
at org.eclipse.smarthome.core.thing.binding.BaseThingHandler.updateState(BaseThingHandler.java:245) ~[?:?]
at org.openhab.binding.mqtt.generic.AbstractMQTTThingHandler.updateChannelState(AbstractMQTTThingHandler.java:274) ~[?:?]
at org.openhab.binding.mqtt.generic.ChannelState.processMessage(ChannelState.java:204) ~[?:?]
at org.eclipse.smarthome.io.transport.mqtt.internal.ClientCallback.lambda$3(ClientCallback.java:96) ~[?:?]
at java.util.ArrayList.forEach(ArrayList.java:1259) ~[?:1.8.0_275]
at org.eclipse.smarthome.io.transport.mqtt.internal.ClientCallback.messageArrived(ClientCallback.java:96) ~[?:?]
at org.eclipse.smarthome.io.transport.mqtt.internal.ClientCallback.messageArrived(ClientCallback.java:71) ~[?:?]
at com.hivemq.client.internal.mqtt.mqtt3.Mqtt3AsyncClientView.lambda$callbackView$1(Mqtt3AsyncClientView.java:73) ~[bundleFile:?]
at com.hivemq.client.internal.mqtt.MqttAsyncClient$CallbackSubscriber.onNext(MqttAsyncClient.java:227) [bundleFile:?]
at com.hivemq.client.internal.mqtt.MqttAsyncClient$CallbackSubscriber.onNext(MqttAsyncClient.java:212) [bundleFile:?]
at com.hivemq.client.rx.FlowableWithSingle$SingleFutureSubscriber.onNext(FlowableWithSingle.java:377) [bundleFile:?]
at com.hivemq.client.internal.rx.operators.FlowableWithSingleCombine$SplitSubscriber$Default.tryOnNextActual(FlowableWithSingleCombine.java:206) [bundleFile:?]
at com.hivemq.client.internal.rx.operators.FlowableWithSingleCombine$SplitSubscriber.tryOnNext(FlowableWithSingleCombine.java:171) [bundleFile:?]
at io.reactivex.internal.operators.flowable.FlowableObserveOn$ObserveOnConditionalSubscriber.runAsync(FlowableObserveOn.java:649) [bundleFile:?]
at io.reactivex.internal.operators.flowable.FlowableObserveOn$BaseObserveOnSubscriber.run(FlowableObserveOn.java:176) [bundleFile:?]
at io.reactivex.internal.schedulers.ScheduledRunnable.run(ScheduledRunnable.java:66) [bundleFile:?]
at io.reactivex.internal.schedulers.ScheduledRunnable.call(ScheduledRunnable.java:57) [bundleFile:?]
at java.util.concurrent.FutureTask.run(FutureTask.java:266) [?:1.8.0_275]
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(ScheduledThreadPoolExecutor.java:180) [?:1.8.0_275]
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:293) [?:1.8.0_275]
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) [?:1.8.0_275]
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) [?:1.8.0_275]
at java.lang.Thread.run(Thread.java:748) [?:1.8.0_275]
After some trail and error it seems to be caused by the dimmer items (eg. EQ_Ventilation_Supply_Duty). For now I have changed them to Number:Dimensionless and everything seems to work fine. I hope it can help others who are trying to set this up.
hey since there is now this python and jython stuff available as part of openhab scripting is there a way to actually get this “closer” to openhab standards?
Zehnder offered to give 1:1 Session to Talk about the API and openhab Integration.
Somebody want to Join? Possibly in German as My Mails with Them were in German. @klaudiusz223@stfn82@michaelarnauts
Interested?
I’m also interested. But as @stfn82 I have also very little coding experience. By the way Zehnder shows they have integration with OH. Is it only plans or they already have something?
Hi. Also Interesses with very little coding expertise as well.
Some questions on the way Zender shows it in their video with “OH support” ? What exactly are they claiming to provide ?
RoL