QT websockets
Moderators: marcelr, TheHogNL, Toonz
QT websockets
From firmware 5.0.4 the original Toon resources also include libraries for QT5 websockets!
To use the libraries install them when having the VPN running with "opkg install libqt5websockets5" (I will probably add an option to the update-script to install this for you soon).
After this you can use the library in your qml code with "import QtWebSockets 1.0"
From there just use the docs at https://doc.qt.io/qt-5/qtwebsockets-qmlmodule.html and the examples at https://doc.qt.io/qt-5/qtwebsockets-examples.html
Using websockets in your qml code would allow your Toon to be externally controlled. Much more possibilities then the current ones using the /happ_thermstat (and other) urls which only supports a few commands.
For example, the use case where a forum members wants to put a doorbell-camera picture on the Toon when someone is ringing the phone could now be implemented easily. Much more ideas are welcome!
To use the libraries install them when having the VPN running with "opkg install libqt5websockets5" (I will probably add an option to the update-script to install this for you soon).
After this you can use the library in your qml code with "import QtWebSockets 1.0"
From there just use the docs at https://doc.qt.io/qt-5/qtwebsockets-qmlmodule.html and the examples at https://doc.qt.io/qt-5/qtwebsockets-examples.html
Using websockets in your qml code would allow your Toon to be externally controlled. Much more possibilities then the current ones using the /happ_thermstat (and other) urls which only supports a few commands.
For example, the use case where a forum members wants to put a doorbell-camera picture on the Toon when someone is ringing the phone could now be implemented easily. Much more ideas are welcome!
Member of the Toon Software Collective
Re: QT websockets
I can now finally have a realtime status on Toon of the status of the klikaan/klikuit lights in the bedrooms (controlled via domoticz on a raspberry Pi)
No need for sending http requests to domoticz anymore every 5 seconds to query the status of the lights.
No need for sending http requests to domoticz anymore every 5 seconds to query the status of the lights.
member of the Toon Software Collective
Re: QT websockets
It is also a perfect solution for someone to write a comprehensive mobile app to control the Toon remotely (using a companion app on Toon itself).
Basically everything is possible now, far beyond the options of the official mobile app from Quby
Develop our own API?
Basically everything is possible now, far beyond the options of the official mobile app from Quby
Develop our own API?
member of the Toon Software Collective
Re: QT websockets
Works like a charm. And it avoids my web server logs from filling up with all those poll requests!
Schelte
Re: QT websockets
great stuff. By any change, did they also complie an UdpSocket class?
handy for sending discovery packets
handy for sending discovery packets
member of the Toon Software Collective
-
- Member
- Posts: 76
- Joined: Wed Nov 07, 2018 1:53 pm
Re: QT websockets
Me and RoadXY are trying to make use of QT websockets for the app we're currently working on. Any help is welcome!Toonz wrote:It is also a perfect solution for someone to write a comprehensive mobile app to control the Toon remotely (using a companion app on Toon itself).
Basically everything is possible now, far beyond the options of the official mobile app from Quby
Develop our own API?
Re: QT websockets
Yes, any help is appreciated
Re: QT websockets
a lot you can find in the QT documentation : https://doc.qt.io/qt-5/qml-qtwebsockets-websocket.html including sample code.
The WebSockets allow you to receive/send from/to a Toon QML app directly without making user of the lighttpd webserver.
Do you have already ideas about functionality you want to build?
Exactly what type of help is requested?
The WebSockets allow you to receive/send from/to a Toon QML app directly without making user of the lighttpd webserver.
Do you have already ideas about functionality you want to build?
Exactly what type of help is requested?
member of the Toon Software Collective
-
- Member
- Posts: 76
- Joined: Wed Nov 07, 2018 1:53 pm
Re: QT websockets
At this point we're looking for a possibility to change/add programs from the app. Eventually we want to do everything with websockets in the app. So, also changing the temperature, fetching information etc.. This is currently done by using HTTP requests. But, changing/adding programs, doesn't seem to be able by using HTTP post/requests.
It would be helpful if someone can assist us with setting up a new QML app/module for the Toon, so that we have a base to lean on. We've got no experience with developing apps for the Toon itself.
It would be helpful if someone can assist us with setting up a new QML app/module for the Toon, so that we have a base to lean on. We've got no experience with developing apps for the Toon itself.
Re: QT websockets
By programs we mean the heating schedule
Re: QT websockets
That is not so straight forward. We can also look into modifying the quby schedule programming app for this (use websockets there)
member of the Toon Software Collective
-
- Advanced Member
- Posts: 636
- Joined: Sat Feb 09, 2019 7:18 pm
Re: QT websockets
Did you manage to use the Websockets for this and could you share the Toon and Domoticz code? I now have the doorbell camera, my Onkyo receiver control, washing dryer status and waching machine status on the Toon but all by pulling Domoticz status. Websockets will be much neater.Toonz wrote:I can now finally have a realtime status on Toon of the status of the klikaan/klikuit lights in the bedrooms (controlled via domoticz on a raspberry Pi)
No need for sending http requests to domoticz anymore every 5 seconds to query the status of the lights.
Re: QT websockets
Ha, good call, I completely forgot about this. Current domoticzboard app is not using it.oepi-loepi wrote:Did you manage to use the Websockets for this and could you share the Toon and Domoticz code? I now have the doorbell camera, my Onkyo receiver control, washing dryer status and waching machine status on the Toon but all by pulling Domoticz status. Websockets will be much neater.
I will have a look at it after I finished the new Fileinfo app (is almost finished on a Toon 2 but I still have to check the gui elements and performance on a Toon 1).
member of the Toon Software Collective
-
- Advanced Member
- Posts: 636
- Joined: Sat Feb 09, 2019 7:18 pm
Re: QT websockets
Well it seems it should be integrated in the newest beta of Domoticz https://github.com/domoticz/domoticz/co ... 34ca617dc0. However i have newer worked with it so a good example would be very nice. Maybe some other forum member has tried?Toonz wrote:Ha, good call, I completely forgot about this. Current domoticzboard app is not using it.
I will have a look at it after I finished the new Fileinfo app (is almost finished on a Toon 2 but I still have to check the gui elements and performance on a Toon 1).
-
- Advanced Member
- Posts: 636
- Joined: Sat Feb 09, 2019 7:18 pm
Re: QT websockets
if i run opkg list-installed then libqt5websockets5 is not in the list and when i run "opkg install libqt5websockets5" it throws an error. Even when i open the VPN (in inittab and then init q)TheHogNL wrote:From firmware 5.0.4 the original Toon resources also include libraries for QT5 websockets!
To use the libraries install them when having the VPN running with "opkg install libqt5websockets5" (I will probably add an option to the update-script to install this for you soon).
Code: Select all
Installing libqt5websockets5 (5.11.2+git0+e71467cb56-r0) on root.
Downloading http://feed.hae.int/feeds/nxt/oe/angelica-1.7.0-master-kernel-4.9.88/cortexa9hf-vfp-neon/libqt5websockets5_5.11.2+git0+e71467cb56-r0_cortexa9hf-vfp-neon.ipk.
Collected errors:
* opkg_download: Failed to download http://feed.hae.int/feeds/nxt/oe/angelica-1.7.0-master-kernel-4.9.88/cortexa9hf-vfp-neon/libqt5websockets5_5.11.2+git0+e71467cb56-r0_cortexa9hf-vfp-neon.ipk: Couldn't connect to server.
* opkg_install_pkg: Failed to download libqt5websockets5. Perhaps you need to run 'opkg update'?