App ideas / feature requests

Forum about forum-provided applications on Toon

Moderators: marcelr, TheHogNL, Toonz

EchoNL
Starting Member
Starting Member
Posts: 24
Joined: Sun Jan 10, 2021 1:06 pm

Re: App ideas / feature requests

Post by EchoNL »

Maybe a idea to make a app to see the bitcoin price and other cryptocurrency prices? No need to login only a app to see the prices refreshed at certain time.
oepi-loepi
Advanced Member
Advanced Member
Posts: 628
Joined: Sat Feb 09, 2019 7:18 pm

Re: App ideas / feature requests

Post by oepi-loepi »

EchoNL wrote:Maybe a idea to make a app to see the bitcoin price and other cryptocurrency prices? No need to login only a app to see the prices refreshed at certain time.
Dat is goed te doen. Kun jij een url geven met waar die dat kan worden opgehaald een beschrijvinkje met wat jij denkt zichtbaar te willen hebben op de tegel?
TerrorSource
Administrator
Administrator
Posts: 494
Joined: Thu May 04, 2017 9:28 pm

Re: App ideas / feature requests

Post by TerrorSource »

oepi-loepi wrote:
EchoNL wrote:Maybe a idea to make a app to see the bitcoin price and other cryptocurrency prices? No need to login only a app to see the prices refreshed at certain time.
Dat is goed te doen. Kun jij een url geven met waar die dat kan worden opgehaald een beschrijvinkje met wat jij denkt zichtbaar te willen hebben op de tegel?
oepi-loepi wrote:
EchoNL wrote:Maybe a idea to make a app to see the bitcoin price and other cryptocurrency prices? No need to login only a app to see the prices refreshed at certain time.
Dat is goed te doen. Kun jij een url geven met waar die dat kan worden opgehaald een beschrijvinkje met wat jij denkt zichtbaar te willen hebben op de tegel?
https://coinmarketcap.com/
is volgens mij 1 van de bekendste.
aabre
Starting Member
Starting Member
Posts: 42
Joined: Sun Nov 05, 2017 1:26 pm
Location: Schiedam

Re: App ideas / feature requests

Post by aabre »

Hoi ik heb hier een voorzetje voor een crypto clock (app op de plaats van de clock)

Code: Select all

import QtQuick 2.1
import qb.components 1.0
import qb.base 1.0;
import FileIO 1.0


App {
	id: cryptoApp
	property url tileUrl : "CryptoTile.qml"
	//property url screenUrl : "CryptoScreen.qml"

	property variant cryptoJSON : {}
	property bool cryptoDataRead: false
	//property CryptoScreen cryptoScreen
	property string tileKop :  "0000.00 $"
	property string tileKop2 : "Bitcoin (BTC)"
	property string tileKop3 : ""
	property string tileKop4 : ""
	property string tileKop5 : ""
	property real lowValue : 0.00
	property real highValue : 0.00
	property real volumeValue : 0.00
	property string colourBTC : "yellow"
	property real lastPrice : 0
	property real newPrice : 0
	property var locale: Qt.locale()
	property date currentTime: new Date()
	property date currentDate: new Date()
	property string timeString
	property int cryptoSwitch : 1
	property string dateString


	FileIO {
		id: cryptoSettingsFile
		source: "file:///mnt/data/tsc/crypto.userSettings.json"
 	}

	function init()	{
			const args = {
				thumbCategory: "general",
				thumbLabel: "Crypto",
				thumbIcon: "qrc:/apps/clock/drawables/clock.svg",
				thumbIconVAlignment: "center",
				thumbWeight: 30
				}
			registry.registerWidget("tile", tileUrl, this, null, args);
			//registry.registerWidget("screen", screenUrl, this, "cryptoScreen");
			}
	

	function parseCryptoinfo(cryptoTxt) {
		cryptoJSON = JSON.parse(cryptoTxt); 
		cryptoDataRead = true;
		newPrice = cryptoJSON["last"]
		tileKop		=newPrice  + " $"
		lowValue		= cryptoJSON["low"]
		highValue		= cryptoJSON["high"]
		volumeValue	=cryptoJSON["high"]
		tileKop3 		= "Low: "+Math.round(lowValue)+ " $"
		tileKop4 		= "High: "+Math.round(highValue)+ " $"
		tileKop5 		= "Volume 24h: "+volumeValue
	}

// {"high": "8286.00000000", "last": "8126.76", "timestamp": "1578836370", "bid": "8131.69", "vwap": "8110.84", "volume": "2901.76940281", "low": "7960.00000000", "ask": "8137.11", "open": 8008.10}

	function getcryptokoers() {

		var xmlhttp = new XMLHttpRequest();
		xmlhttp.onreadystatechange=function() {
			if (xmlhttp.readyState == 4) {
				if (xmlhttp.status == 200) {
					 parseCryptoinfo(xmlhttp.responseText);
				}
			}
		}
		

		switch (cryptoSwitch) {
        			case 1: {
				xmlhttp.open("GET", "https://www.bitstamp.net/api/ticker", true);
               			 	break;
             			}
         			case 2: {
				xmlhttp.open("GET", "https://www.bitstamp.net/api/v2/ticker/xrpusd/", true);
                			 	break;
            			 }
         			case 3: {
				xmlhttp.open("GET", "https://www.bitstamp.net/api/v2/ticker/ethusd/", true);
		                 		break;
			 }
         			case 4: {
				xmlhttp.open("GET", "https://www.bitstamp.net/api/v2/ticker/ltcusd/", true);
                 				break;
             			}
         			case 5: {
 				xmlhttp.open("GET", "https://www.bitstamp.net/api/v2/ticker/bchusd/", true);
                 				break;
             			}
         			default: {
                 				break;
             			}
         		}

			//Supported values : btcusd, btceur, eurusd, xrpusd, xrpeur, xrpbtc, ltcusd, ltceur, ltcbtc, ethusd, etheur, ethbtc, bchusd, bcheur, bchbtc 


		
		xmlhttp.send();
		colourBTC = "yellow"
		if (newPrice > lastPrice){
			colourBTC = "green"
			lastPrice = newPrice
		}
		if (newPrice < lastPrice){
			colourBTC = "red"
			lastPrice = newPrice
		}
		currentTime = new Date();
		currentDate = new Date();
		timeString = currentTime.toLocaleTimeString(locale, "hh:mm");
		dateString = currentDate.toLocaleDateString(locale, "d MMMM yyyy");
		
	}


	Component.onCompleted: {
		datetimeTimerFiles.running = true;
	}

	Timer {
		id: datetimeTimerFiles
		interval: 15000			//update every 15 sec
		triggeredOnStart: true
		running: false
		repeat: true
		onTriggered:  getcryptokoers();
	}
}

Code: Select all

import QtQuick 2.1
import qb.components 1.0
Tile {
	onClicked: {
		app.cryptoSwitch = app.cryptoSwitch +1;
		if (app.cryptoSwitch > 5){ app.cryptoSwitch = 1};
		switch (app.cryptoSwitch) {
        			case 1: {
   		                 		app.tileKop2 = "Bitcoin (BTC)"
               			 	break;
             			}
         			case 2: {
		                		app.tileKop2 = "Ripple (XRP)"
                			 	break;
            			 }
         			case 3: {
   		                 		app.tileKop2 = "Ethereum (ETH)"
		                 		break;
			 }
         			case 4: {
			 	app.tileKop2 = "Litecoin (LTC)"
                 				break;
             			}
         			case 5: {
                 				app.tileKop2 = "Bitcoin Cash (BCH)"
                 				break;
             			}
         			default: {
                 				break;
             			}
         		}
		app.tileKop = "";
		app.tileKop3 = "Please";
		app.tileKop4 = "wait one";
		app.tileKop5 = "moment";
		app.lastPrice = "";
		app.newPrice = "";

	}

	Text {
		id: regelTile
		text: app.tileKop
		font {
			family: qfont.bold.name
			pointSize: isNxt ? 17 : 20
		}
		anchors {
			top: parent.top
			topMargin: isNxt ? 33 : 25
			horizontalCenter: parent.horizontalCenter
		}
		color: (typeof dimmableColors !== 'undefined') ? dimmableColors.clockTileColor : colors.clockTileColor
		visible: !dimState
	}

	Text {
		id: regelTile2
		text: app.tileKop2
		font {
			family: qfont.bold.name
			pointSize: isNxt ? 13 : 16
		}
		anchors {
			top: parent.top
			topMargin: 1
			horizontalCenter: parent.horizontalCenter
		}
		color: (typeof dimmableColors !== 'undefined') ? dimmableColors.clockTileColor : colors.clockTileColor
		visible: !dimState
	}

	Text {
		id: regelTile3
		text: app.tileKop3
		font {
			family: qfont.regular.name
			pointSize: isNxt ? 13 : 16
		}
		anchors {
			top: parent.top
			topMargin: isNxt ? 87 : 70
			horizontalCenter: parent.horizontalCenter
		}
		color: (typeof dimmableColors !== 'undefined') ? dimmableColors.clockTileColor : colors.clockTileColor
		visible: !dimState
	}

	Text {
		id: regelTile4
		text: app.tileKop4
		font {
			family: qfont.regular.name
			pointSize: isNxt ? 13 : 16
		}
		anchors {
			top: parent.top
			topMargin: isNxt ? 125 : 100
			horizontalCenter: parent.horizontalCenter
		}
		color: (typeof dimmableColors !== 'undefined') ? dimmableColors.clockTileColor : colors.clockTileColor
		visible: !dimState
	}


	Text {
		id: regelTile5
		text: app.tileKop5
		font {
			family: qfont.regular.name
			pointSize: isNxt ? 12 : 14
		}
		anchors {
			top: parent.top
			topMargin: isNxt ? 160 : 130
			horizontalCenter: parent.horizontalCenter
		}
		color: (typeof dimmableColors !== 'undefined') ? dimmableColors.clockTileColor : colors.clockTileColor
		visible: !dimState
	}



	// *********************   text in dimstate  *******************
	Text {
		text: app.tileKop2 //crypto naam
		font {
			family: qfont.bold.name
			pointSize: isNxt ? 10 : 16
		}
		anchors {
			top: parent.top
			topMargin: 2
			horizontalCenter: parent.horizontalCenter
		}
		color: (typeof dimmableColors !== 'undefined') ? dimmableColors.waTileTextColor : colors.waTileTextColor
		visible: dimState
	}
	Text {
		text: app.tileKop //Koers groot
		font {
			family: qfont.bold.name
			pointSize: isNxt ? 18 : 22
		}
		anchors {
			top: parent.top
			topMargin: isNxt ? 30 : 26
			horizontalCenter: parent.horizontalCenter
		}
		color: app.colourBTC
		visible: dimState
	}


	Text {
		text: app.timeString
		font {
			family: qfont.regular.name
			pointSize: isNxt ? 40 : 50
		}
		anchors {
			top: parent.top
			topMargin: isNxt ? 60 : 60
			horizontalCenter: parent.horizontalCenter
		}
		color: (typeof dimmableColors !== 'undefined') ? dimmableColors.waTileTextColor : colors.waTileTextColor
		visible: dimState
	}
	Text {
		text: app.dateString 
		font {
			family: qfont.regular.name
			pixelSize: isNxt ? 20 : 16
		}
		anchors {
			baseline: parent.bottom
			baselineOffset: 0
			horizontalCenter: parent.horizontalCenter
		}
		color: (typeof dimmableColors !== 'undefined') ? dimmableColors.waTileTextColor : colors.waTileTextColor
		visible: dimState
	}

}
Tebogo
Starting Member
Starting Member
Posts: 42
Joined: Wed Jan 20, 2021 10:12 am

Re: App ideas / feature requests

Post by Tebogo »

Hello,

Yesterday managed to root my Toon (without P1 sensors) bought on MP.
I already have Domoticz running, solar panels, Opentherm gateway, MQTT etc.
My Domoticz reads the P1 electra and gas meters, and via MQTT my watermeter

Now I hoped that it would be possible to display the sensors/meters on Toon, but I only could find the
Domoticz app in the Toon store, which provides switches.

Is there another way to get the Domoticz Sensors send the readings to the Toon, so that the Toon thinks it
is reading the Toon sensors?

Thank you!
TerrorSource
Administrator
Administrator
Posts: 494
Joined: Thu May 04, 2017 9:28 pm

Re: App ideas / feature requests

Post by TerrorSource »

Tebogo wrote:Hello,

Yesterday managed to root my Toon (without P1 sensors) bought on MP.
I already have Domoticz running, solar panels, Opentherm gateway, MQTT etc.
My Domoticz reads the P1 electra and gas meters, and via MQTT my watermeter

Now I hoped that it would be possible to display the sensors/meters on Toon, but I only could find the
Domoticz app in the Toon store, which provides switches.

Is there another way to get the Domoticz Sensors send the readings to the Toon, so that the Toon thinks it
is reading the Toon sensors?

Thank you!
Easiest solution is to split the P1-port into 2, 1 for Domoticz, 1 for Toon.
oepi-loepi
Advanced Member
Advanced Member
Posts: 628
Joined: Sat Feb 09, 2019 7:18 pm

Re: App ideas / feature requests

Post by oepi-loepi »

TerrorSource wrote:
Easiest solution is to split the P1-port into 2, 1 for Domoticz, 1 for Toon.
Agree. Buy a "meteradapter" at marktplaats (or TerrorSource could maybe sell one) and split your P1 meter signal. For the solarPanel you can use the new app SolarPanel with the Domoticz pluging.

The app will read your solarpanels from Domoticz.
Tebogo
Starting Member
Starting Member
Posts: 42
Joined: Wed Jan 20, 2021 10:12 am

Re: App ideas / feature requests

Post by Tebogo »

For the solarPanel you can use the new app SolarPanel with the Domoticz pluging.

The app will read your solarpanels from Domoticz.
I was hoping/looking for a solution like the app for the solarpanels. It works great. :P
So no go? :|

Thanks for the quick response.
MICHELVW
Starting Member
Starting Member
Posts: 2
Joined: Wed Jan 20, 2021 12:13 pm

Re: App ideas / feature requests

Post by MICHELVW »

Hi everyone,

I was looking if an app existed (which it doesn't seem to) for an "openhaard stand, or fireplace mode".

Other thermostats (like the remeha one that came with my central heating boiler, have such a mode); The idea is that the toon keeps running moderate (maybe configurable) temperature water through the radiators whilst the actual set temperature is already reached. In this way all rooms in the house can be kept at some level of comfort, instead of becoming freezing cold when the fireplace is heating the living room where the toon is also installed.

Would this be possible? I do have some experience in programming but none with toon apps (yet). Maybe we can co-create something?!?

BR,
Michel
TheHogNL
Forum Moderator
Forum Moderator
Posts: 2125
Joined: Sun Aug 20, 2017 8:53 pm

Re: App ideas / feature requests

Post by TheHogNL »

MICHELVW wrote:Hi everyone,

I was looking if an app existed (which it doesn't seem to) for an "openhaard stand, or fireplace mode".

Other thermostats (like the remeha one that came with my central heating boiler, have such a mode); The idea is that the toon keeps running moderate (maybe configurable) temperature water through the radiators whilst the actual set temperature is already reached. In this way all rooms in the house can be kept at some level of comfort, instead of becoming freezing cold when the fireplace is heating the living room where the toon is also installed.

Would this be possible? I do have some experience in programming but none with toon apps (yet). Maybe we can co-create something?!?

BR,
Michel
Fireplaces should be banned... don't understand why people use them in urban areas. But that is another topic.

This would require to increase the setpoint 0.5c above the current temperature. You can do it with these options:
- external domotica system which updates the setpoint using the well known toon API url interfaces (for example, just use node red for it) For insparation look into the domoticz scripts to control the toon.
- bash script on the Toon doing the same but then using localhost so it always works even when wifi is down
- Toon App in QML language using BXT commands (just like when you hit the GUI button yourself). This requires you to create a QML app and research into how these apps talk to the internal thermostat using the BXT commands

To lower the water temperature (temporary) you must have Opentherm and use BXT commands for it. This is not possible from external point of view so only on toon itself.
Member of the Toon Software Collective
oepi-loepi
Advanced Member
Advanced Member
Posts: 628
Joined: Sat Feb 09, 2019 7:18 pm

Re: App ideas / feature requests

Post by oepi-loepi »

Tebogo wrote:
For the solarPanel you can use the new app SolarPanel with the Domoticz pluging.

The app will read your solarpanels from Domoticz.
I was hoping/looking for a solution like the app for the solarpanels. It works great. :P
So no go? :|

Thanks for the quick response.
The Domoticz Plugin will be available in the next update. To test the plugin, please send me a PM.
MICHELVW
Starting Member
Starting Member
Posts: 2
Joined: Wed Jan 20, 2021 12:13 pm

Re: App ideas / feature requests

Post by MICHELVW »

TheHogNL wrote:
MICHELVW wrote:Hi everyone,

I was looking if an app existed (which it doesn't seem to) for an "openhaard stand, or fireplace mode".

Other thermostats (like the remeha one that came with my central heating boiler, have such a mode); The idea is that the toon keeps running moderate (maybe configurable) temperature water through the radiators whilst the actual set temperature is already reached. In this way all rooms in the house can be kept at some level of comfort, instead of becoming freezing cold when the fireplace is heating the living room where the toon is also installed.

Would this be possible? I do have some experience in programming but none with toon apps (yet). Maybe we can co-create something?!?

BR,
Michel
Fireplaces should be banned... don't understand why people use them in urban areas. But that is another topic.

This would require to increase the setpoint 0.5c above the current temperature. You can do it with these options:
- external domotica system which updates the setpoint using the well known toon API url interfaces (for example, just use node red for it) For insparation look into the domoticz scripts to control the toon.
- bash script on the Toon doing the same but then using localhost so it always works even when wifi is down
- Toon App in QML language using BXT commands (just like when you hit the GUI button yourself). This requires you to create a QML app and research into how these apps talk to the internal thermostat using the BXT commands

To lower the water temperature (temporary) you must have Opentherm and use BXT commands for it. This is not possible from external point of view so only on toon itself.
Who says im in an urban area. :wink: But point taken.
I want to go the "toon itself" route. Can somebody point me into the right direction or to documentation on available BXT commands? I've been scanning the repo's on the TSC, but can't seem to find any examples where opentherm is controlled. Boilerstatus gives some insight how to get data from opentherm, but not how to control it. Thanks in advance.
TheHogNL
Forum Moderator
Forum Moderator
Posts: 2125
Joined: Sun Aug 20, 2017 8:53 pm

Re: App ideas / feature requests

Post by TheHogNL »

MICHELVW wrote:
TheHogNL wrote:
MICHELVW wrote:Hi everyone,

I was looking if an app existed (which it doesn't seem to) for an "openhaard stand, or fireplace mode".

Other thermostats (like the remeha one that came with my central heating boiler, have such a mode); The idea is that the toon keeps running moderate (maybe configurable) temperature water through the radiators whilst the actual set temperature is already reached. In this way all rooms in the house can be kept at some level of comfort, instead of becoming freezing cold when the fireplace is heating the living room where the toon is also installed.

Would this be possible? I do have some experience in programming but none with toon apps (yet). Maybe we can co-create something?!?

BR,
Michel
Fireplaces should be banned... don't understand why people use them in urban areas. But that is another topic.

This would require to increase the setpoint 0.5c above the current temperature. You can do it with these options:
- external domotica system which updates the setpoint using the well known toon API url interfaces (for example, just use node red for it) For insparation look into the domoticz scripts to control the toon.
- bash script on the Toon doing the same but then using localhost so it always works even when wifi is down
- Toon App in QML language using BXT commands (just like when you hit the GUI button yourself). This requires you to create a QML app and research into how these apps talk to the internal thermostat using the BXT commands

To lower the water temperature (temporary) you must have Opentherm and use BXT commands for it. This is not possible from external point of view so only on toon itself.
Who says im in an urban area. :wink: But point taken.
I want to go the "toon itself" route. Can somebody point me into the right direction or to documentation on available BXT commands? I've been scanning the repo's on the TSC, but can't seem to find any examples where opentherm is controlled. Boilerstatus gives some insight how to get data from opentherm, but not how to control it. Thanks in advance.
If you take the resource rcc (in /qmf/qml) file from your toon and upload it here http://qutility.nl/upload.html you will get a zip file containing the unpacked qml code from the official toon software. From there you probably can find your way to the thermostat app of the toon and find it there. If you need more guidance let me know.
Member of the Toon Software Collective
bsnel
Starting Member
Starting Member
Posts: 1
Joined: Fri Jan 22, 2021 1:33 pm

Re: App ideas / feature requests

Post by bsnel »

I have some ideas that I would love to see on my Toon 2 rooted:
- MyNetatmo Weather. Would love a temperature, rain, wind etc logger for my weather stations. They have an API https://my.netatmo.com/app/weather
- Tesla car battery status. Simple readout of % battery of Tesla car.
- Stocks - Just like the new Bitcoin / Crypto app - a stock app. Pull data from Google Finance.
- Smart Plug energy consumption. I thought this was working but it is not - want to log consumption of Fibaro smart plugs. Ideally in the default energy graph
- Moon phases - https://www.timeanddate.com/moon/phases/
- Sunrise / Sunset
- Can I wear shorts today - https://www.isitshortsweathertoday.com/
- Biggest - Homey Plugin - with a connection to Homey we can set standard on/off toggle for devices and scenes (like lights, curtains, etc)
EchoNL
Starting Member
Starting Member
Posts: 24
Joined: Sun Jan 10, 2021 1:06 pm

Re: App ideas / feature requests

Post by EchoNL »

oepi-loepi wrote:
EchoNL wrote:Maybe a idea to make a app to see the bitcoin price and other cryptocurrency prices? No need to login only a app to see the prices refreshed at certain time.
Dat is goed te doen. Kun jij een url geven met waar die dat kan worden opgehaald een beschrijvinkje met wat jij denkt zichtbaar te willen hebben op de tegel?
Sorry for my late reaction. Coinmarketcap.com is a good one. I see the app already in the Toonstore, many thanks for that! Is it possible to see the prices in Euro? The text in dim mode is not visible due to the black font.
Post Reply

Return to “Toon Apps”