Dasticz only working on laptop, not on tablet Topic is solved

Dashticz, alternative dashboard based on HTML, CSS, jQuery

Moderators: leecollings, htilburgs, robgeerts

Post Reply
Boattailman
Posts: 14
Joined: Thursday 05 March 2020 23:04
Target OS: Raspberry Pi / ODroid
Domoticz version: 2020.2
Contact:

Dasticz only working on laptop, not on tablet

Post by Boattailman »

Installed dasticz on my pi a couple of days ago. So far so good but after two days of hard work on my laptop I wanted to see how it looked on my phone and ipad, well nothing. The ipad(chrome and safari) and my phone(chrome) both give an error. Tried my wife's ipad, also nothing while on her laptop everything showed up fine. The domoticz log shows an incoming connection so that's ok. My son get's on chrome on his phone an error, connection refused. I'm stuck here, someone with a brilliant idea?
Spoiler: show

Code: Select all

var config = {}
config['domoticz_ip'] = 'https://192.168.0.124:443';
config['login_timeout'] = '60';
config['user_name'] = '0';
config['pass_word'] = '0';
config['app_title'] = 'Dashticz';
config['room_plan'] = 0;
config['domoticz_refresh'] = '5';
config['dashticz_refresh'] = '60';
config['default_news_url'] = 'http://www.nu.nl/rss/algemeen';
config['news_scroll_after'] = '7';
config['default_cors_url'] = 0;
config['dashticz_php_path'] = './vendor/dashticz/';
config['standby_call_url'] = 0;
config['standby_call_url_on_end'] = 0;
config['theme'] = 'default';
config['background_image'] = 'img/bg2.jpg';
config['standby_after'] = 0;
config['start_page'] = 1;
config['enable_swiper'] = '2';
config['vertical_scroll'] = '2';
config['auto_swipe_back_to'] = 1;
config['auto_swipe_back_after'] = '10';
config['auto_slide_pages'] = 0;
config['slide_effect'] = 'slide';
config['standard_graph'] = 'hours';
config['blink_color'] = '255, 255, 255, 1';
config['language'] = 'nl_NL';
config['timeformat'] = 'DD-MM-YY HH:mm';
config['calendarformat'] = 'dd DD.MM HH:mm';
config['calendarlanguage'] = 'en_US';
config['calendarurl'] = 0;
config['boss_stationclock'] = 'RedBoss';
config['gm_api'] = 0;
config['gm_zoomlevel'] = 0;
config['gm_latitude'] = 0;
config['gm_longitude'] = 0;
config['speak_lang'] = 'en-US';
config['wu_api'] = 'f0df90d835cb4e0c9f90d835cb8e0cd6';
config['wu_city'] = '0';
config['wu_name'] = '0;
config['wu_country'] = 'NL';
config['owm_api'] = 0;
config['owm_city'] = 'Mainaschaff';
config['owm_name'] = 0;
config['owm_country'] = 'de';
config['owm_lang'] = 0;
config['owm_cnt'] = '4';
config['idx_moonpicture'] = 0;
config['longfonds_zipcode'] = 0;
config['longfonds_housenumber'] = 0;
config['switch_horizon'] = 0;
config['host_nzbget'] = 0;
config['spot_clientid'] = 0;
config['sonarr_url'] = 0;
config['sonarr_apikey'] = 0;
config['sonarr_maxitems'] = 0;
config['garbage_company'] = 'mijnafvalwijzer';
config['garbage_icalurl'] = 0;
config['google_api_key'] = 0;
config['garbage_calendar_id'] = 0;
config['garbage_zipcode'] = '0';
config['garbage_street'] = '0';
config['garbage_housenumber'] = '0';
config['garbage_housenumberadd'] = 0;
config['garbage_maxitems'] = '2';
config['garbage_width'] = 0;
config['setpoint_min'] = '5';
config['setpoint_max'] = '40';
config['evohome_status'] = 'Auto';
config['evohome_boost_zone'] = '60';
config['evohome_boost_hw'] = '15';
config['loginEnabled'] = 0;
config['disable_update_check'] = 0;
config['enable_websocket'] = 1;
config['no_rgb'] = 1;
config['auto_positioning'] = 0;
config['use_favorites'] = 0;
config['disable_googleanalytics'] = 0;
config['last_update'] = 1;
config['hide_topbar'] = 0;
config['security_button_icons'] = 0;
config['edit_mode'] = 0;
config['hide_seconds'] = 0;
config['hide_seconds_stationclock'] = 0;
config['owm_days'] = 0;
config['owm_min'] = 0;
config['use_fahrenheit'] = 0;
config['use_beaufort'] = 0;
config['translate_windspeed'] = 1;
config['static_weathericons'] = 0;
config['hide_mediaplayer'] = 0;
config['garbage_hideicon'] = 0;
config['garbage_icon_use_colors'] = 1;
config['garbage_use_colors'] = 0;
config['garbage_use_names'] = 0;
config['garbage_use_cors_prefix'] = 1;

var blocks = {}

//var frames = {}
//frames.buienradar = {width:4,frameurl:"https://api.buienradar.nl/image/1.0/RadarMapNL?w=215&h=155"}

//Scenes
blocks[85] = {}
blocks[85]['width'] = 6;
blocks[85]['title'] = 'Eettafel';
blocks[85]['last_update'] = false;
blocks[85]['hide_data'] = true;

blocks[91] = {}
blocks[91]['width'] = 6;
blocks[91]['title'] = 'Schakelaar TVKamer';
blocks[91]['last_update'] = false;
blocks[91]['hide_data'] = true;

blocks[133] = {}
blocks[133]['width'] = 6;
blocks[133]['title'] = 'Schakelaar Tuin';
blocks[133]['last_update'] = false;
blocks[133]['hide_data'] = true;

//blocks[137] = {}
//blocks[137]['title'] = 'TVKamer Avond Scene';
//blocks[137]['last_update'] = false;
//blocks[137]['hide_data'] = true;

blocks[42] = {}
blocks[42]['width'] = 6;
blocks[42]['title'] = 'Schakelaar Keuken';
blocks[42]['last_update'] = false;

//Lampen
blocks[1] = {}
blocks[1]['width'] = 4;
blocks[1]['title'] = 'Plafond';
blocks[1]['last_update'] = false;

blocks[8] = {}
blocks[8]['width'] = 4;
blocks[8]['title'] = 'Keuken';
blocks[8]['last_update'] = false;

blocks[16] = {}
blocks[16]['width'] = 4;
blocks[16]['title'] = 'Eettafel';
blocks[16]['last_update'] = false;

blocks[17] = {}
blocks[17]['width'] = 4;
blocks[17]['title'] = 'Eettafel_2';
blocks[17]['last_update'] = false;

blocks[18] = {}
blocks[18]['width'] = 4;
blocks[18]['title'] = 'Eettafel_3';
blocks[18]['last_update'] = false;

blocks[19] = {}
blocks[19]['width'] = 4;
blocks[19]['title'] = 'Eettafel_4';
blocks[19]['last_update'] = false;

blocks[20] = {}
blocks[20]['width'] = 4;
blocks[20]['title'] = 'Eettafel_5';
blocks[20]['last_update'] = false;

blocks[26] = {}
blocks[26]['width'] = 4;
blocks[26]['title'] = 'Lamp Voor Buiten';
blocks[26]['last_update'] = false;

blocks[24] = {}
blocks[24]['width'] = 4;
blocks[24]['title'] = 'Aqua CO2';
blocks[24]['last_update'] = false;

blocks[14] = {}
blocks[14]['width'] = 6;
blocks[14]['title'] = 'Hue Mink';
blocks[14]['last_update'] = false;

blocks[2] = {}
blocks[2]['width'] = 6;
blocks[2]['title'] = 'Hal';
blocks[2]['last_update'] = false;

blocks[13] = {}
blocks[13]['width'] = 4;
blocks[13]['title'] = 'Hue Kachel';
blocks[13]['last_update'] = false;

blocks[12] = {}
blocks[12]['width'] = 4;
blocks[12]['title'] = 'Hue Strip Buiten';
blocks[12]['last_update'] = false;

blocks[23] = {}
blocks[23]['width'] = 4;
blocks[23]['title'] = 'Hue White Kast';
blocks[23]['last_update'] = false;

blocks['blocktitle_1'] = {}
blocks['blocktitle_1']['type'] = 'blocktitle';
blocks['blocktitle_1']['title'] = 'Schakelaars Lampen';

blocks['blocktitle_2'] = {}
blocks['blocktitle_2']['type'] = 'blocktitle';
blocks['blocktitle_2']['title'] = 'Zonnepanelen';

blocks['blocktitle_3'] = {}
blocks['blocktitle_3']['type'] = 'blocktitle';
blocks['blocktitle_3']['title'] = 'Overig';

blocks['blocktitle_4'] = {}
blocks['blocktitle_4']['type'] = 'blocktitle';
blocks['blocktitle_4']['title'] = 'Weer';

blocks['blocktitle_5'] = {}
blocks['blocktitle_5']['type'] = 'blocktitle';
blocks['blocktitle_5']['title'] = 'Schakelaars Overig';

blocks['blocktitle_6'] = {}
blocks['blocktitle_6']['type'] = 'blocktitle';
blocks['blocktitle_6']['title'] = 'Overig';

blocks['blocktitle_7'] = {}
blocks['blocktitle_7']['type'] = 'blocktitle';
blocks['blocktitle_7']['title'] = 'Monitoring';

//Weer
blocks[28] = {}
blocks[28]['title'] = 'Voordeur Temp:';

blocks['35_1'] = {}
blocks['35_1']['title'] = 'Tuin Temp:';


blocks[38] = {}
blocks[38]['title'] = 'Tuin Regen:';


blocks['graph_46_2'] = { devices: ['46'],
title: 'Zonnepanelen',graph: 'bar',datasetColors: ['yellow']}


blocks[180] = {}
blocks[180]['title'] = 'Keukenraam Screen';
blocks[180]['last_update'] = false;
blocks[180]['width'] = 7;

//PI
blocks[79] = {}
blocks[79]['width'] = 4;
blocks[79]['title'] = 'PI CPU Usage';
blocks[79]['last_update'] = false;

blocks[80] = {}
blocks[80]['width'] = 4;
blocks[80]['title'] = 'PI Temp';
blocks[80]['last_update'] = false;

blocks[81] = {}
blocks[81]['width'] = 4;
blocks[81]['title'] = 'PI Memory Usage';
blocks[81]['last_update'] = false;

//columns defenition
var columns = {}

columns[1] = {}
columns[1]['blocks'] = ['blocktitle_1', 2, 14, 91, 85, 133, 42,'blocktitle_5', 24, 180]
columns[1]['width'] = 3;

columns[2] = {}
columns[2]['blocks'] = ['blocktitle_2', 'graph_46_2', 'blocktitle_4', 28, '35_1', 38, 'sunrise']
columns[2]['width'] = 5;

columns[3] = {}
columns[3]['blocks'] = ['blocktitle_7', 'garbage', 79, 80, 81, 'log']
columns[3]['width'] = 4;


screens = {}
screens[1] = {
  columns: [1,2,3]
}
Version of dashtics is V3.4.0 beta.
freijn
Posts: 536
Joined: Friday 23 December 2016 16:40
Target OS: Raspberry Pi / ODroid
Domoticz version: Stable
Location: Netherlands Purmerend
Contact:

Re: Dasticz only working on laptop, not on tablet

Post by freijn »

Its worth showing the exact error as it can be anything.

Starting with the basics. Is the "normal" Domoticz page still reachable?
Lokonli
Posts: 2291
Joined: Monday 29 August 2016 22:40
Target OS: Raspberry Pi / ODroid
Domoticz version:
Contact:

Re: Dasticz only working on laptop, not on tablet

Post by Lokonli »

Boattailman wrote: Thursday 12 March 2020 19:03 Installed dasticz on my pi a couple of days ago. So far so good but after two days of hard work on my laptop I wanted to see how it looked on my phone and ipad, well nothing. The ipad(chrome and safari) and my phone(chrome) both give an error. Tried my wife's ipad, also nothing while on her laptop everything showed up fine. The domoticz log shows an incoming connection so that's ok. My son get's on chrome on his phone an error, connection refused. I'm stuck here, someone with a brilliant idea?
Spoiler: show

Code: Select all

var config = {}
config['domoticz_ip'] = 'https://192.168.0.124:443';
config['login_timeout'] = '60';
config['user_name'] = '0';
config['pass_word'] = '0';
config['app_title'] = 'Dashticz';
config['room_plan'] = 0;
config['domoticz_refresh'] = '5';
config['dashticz_refresh'] = '60';
config['default_news_url'] = 'http://www.nu.nl/rss/algemeen';
config['news_scroll_after'] = '7';
config['default_cors_url'] = 0;
config['dashticz_php_path'] = './vendor/dashticz/';
config['standby_call_url'] = 0;
config['standby_call_url_on_end'] = 0;
config['theme'] = 'default';
config['background_image'] = 'img/bg2.jpg';
config['standby_after'] = 0;
config['start_page'] = 1;
config['enable_swiper'] = '2';
config['vertical_scroll'] = '2';
config['auto_swipe_back_to'] = 1;
config['auto_swipe_back_after'] = '10';
config['auto_slide_pages'] = 0;
config['slide_effect'] = 'slide';
config['standard_graph'] = 'hours';
config['blink_color'] = '255, 255, 255, 1';
config['language'] = 'nl_NL';
config['timeformat'] = 'DD-MM-YY HH:mm';
config['calendarformat'] = 'dd DD.MM HH:mm';
config['calendarlanguage'] = 'en_US';
config['calendarurl'] = 0;
config['boss_stationclock'] = 'RedBoss';
config['gm_api'] = 0;
config['gm_zoomlevel'] = 0;
config['gm_latitude'] = 0;
config['gm_longitude'] = 0;
config['speak_lang'] = 'en-US';
config['wu_api'] = 'f0df90d835cb4e0c9f90d835cb8e0cd6';
config['wu_city'] = '0';
config['wu_name'] = '0;
config['wu_country'] = 'NL';
config['owm_api'] = 0;
config['owm_city'] = 'Mainaschaff';
config['owm_name'] = 0;
config['owm_country'] = 'de';
config['owm_lang'] = 0;
config['owm_cnt'] = '4';
config['idx_moonpicture'] = 0;
config['longfonds_zipcode'] = 0;
config['longfonds_housenumber'] = 0;
config['switch_horizon'] = 0;
config['host_nzbget'] = 0;
config['spot_clientid'] = 0;
config['sonarr_url'] = 0;
config['sonarr_apikey'] = 0;
config['sonarr_maxitems'] = 0;
config['garbage_company'] = 'mijnafvalwijzer';
config['garbage_icalurl'] = 0;
config['google_api_key'] = 0;
config['garbage_calendar_id'] = 0;
config['garbage_zipcode'] = '0';
config['garbage_street'] = '0';
config['garbage_housenumber'] = '0';
config['garbage_housenumberadd'] = 0;
config['garbage_maxitems'] = '2';
config['garbage_width'] = 0;
config['setpoint_min'] = '5';
config['setpoint_max'] = '40';
config['evohome_status'] = 'Auto';
config['evohome_boost_zone'] = '60';
config['evohome_boost_hw'] = '15';
config['loginEnabled'] = 0;
config['disable_update_check'] = 0;
config['enable_websocket'] = 1;
config['no_rgb'] = 1;
config['auto_positioning'] = 0;
config['use_favorites'] = 0;
config['disable_googleanalytics'] = 0;
config['last_update'] = 1;
config['hide_topbar'] = 0;
config['security_button_icons'] = 0;
config['edit_mode'] = 0;
config['hide_seconds'] = 0;
config['hide_seconds_stationclock'] = 0;
config['owm_days'] = 0;
config['owm_min'] = 0;
config['use_fahrenheit'] = 0;
config['use_beaufort'] = 0;
config['translate_windspeed'] = 1;
config['static_weathericons'] = 0;
config['hide_mediaplayer'] = 0;
config['garbage_hideicon'] = 0;
config['garbage_icon_use_colors'] = 1;
config['garbage_use_colors'] = 0;
config['garbage_use_names'] = 0;
config['garbage_use_cors_prefix'] = 1;

var blocks = {}

//var frames = {}
//frames.buienradar = {width:4,frameurl:"https://api.buienradar.nl/image/1.0/RadarMapNL?w=215&h=155"}

//Scenes
blocks[85] = {}
blocks[85]['width'] = 6;
blocks[85]['title'] = 'Eettafel';
blocks[85]['last_update'] = false;
blocks[85]['hide_data'] = true;

blocks[91] = {}
blocks[91]['width'] = 6;
blocks[91]['title'] = 'Schakelaar TVKamer';
blocks[91]['last_update'] = false;
blocks[91]['hide_data'] = true;

blocks[133] = {}
blocks[133]['width'] = 6;
blocks[133]['title'] = 'Schakelaar Tuin';
blocks[133]['last_update'] = false;
blocks[133]['hide_data'] = true;

//blocks[137] = {}
//blocks[137]['title'] = 'TVKamer Avond Scene';
//blocks[137]['last_update'] = false;
//blocks[137]['hide_data'] = true;

blocks[42] = {}
blocks[42]['width'] = 6;
blocks[42]['title'] = 'Schakelaar Keuken';
blocks[42]['last_update'] = false;

//Lampen
blocks[1] = {}
blocks[1]['width'] = 4;
blocks[1]['title'] = 'Plafond';
blocks[1]['last_update'] = false;

blocks[8] = {}
blocks[8]['width'] = 4;
blocks[8]['title'] = 'Keuken';
blocks[8]['last_update'] = false;

blocks[16] = {}
blocks[16]['width'] = 4;
blocks[16]['title'] = 'Eettafel';
blocks[16]['last_update'] = false;

blocks[17] = {}
blocks[17]['width'] = 4;
blocks[17]['title'] = 'Eettafel_2';
blocks[17]['last_update'] = false;

blocks[18] = {}
blocks[18]['width'] = 4;
blocks[18]['title'] = 'Eettafel_3';
blocks[18]['last_update'] = false;

blocks[19] = {}
blocks[19]['width'] = 4;
blocks[19]['title'] = 'Eettafel_4';
blocks[19]['last_update'] = false;

blocks[20] = {}
blocks[20]['width'] = 4;
blocks[20]['title'] = 'Eettafel_5';
blocks[20]['last_update'] = false;

blocks[26] = {}
blocks[26]['width'] = 4;
blocks[26]['title'] = 'Lamp Voor Buiten';
blocks[26]['last_update'] = false;

blocks[24] = {}
blocks[24]['width'] = 4;
blocks[24]['title'] = 'Aqua CO2';
blocks[24]['last_update'] = false;

blocks[14] = {}
blocks[14]['width'] = 6;
blocks[14]['title'] = 'Hue Mink';
blocks[14]['last_update'] = false;

blocks[2] = {}
blocks[2]['width'] = 6;
blocks[2]['title'] = 'Hal';
blocks[2]['last_update'] = false;

blocks[13] = {}
blocks[13]['width'] = 4;
blocks[13]['title'] = 'Hue Kachel';
blocks[13]['last_update'] = false;

blocks[12] = {}
blocks[12]['width'] = 4;
blocks[12]['title'] = 'Hue Strip Buiten';
blocks[12]['last_update'] = false;

blocks[23] = {}
blocks[23]['width'] = 4;
blocks[23]['title'] = 'Hue White Kast';
blocks[23]['last_update'] = false;

blocks['blocktitle_1'] = {}
blocks['blocktitle_1']['type'] = 'blocktitle';
blocks['blocktitle_1']['title'] = 'Schakelaars Lampen';

blocks['blocktitle_2'] = {}
blocks['blocktitle_2']['type'] = 'blocktitle';
blocks['blocktitle_2']['title'] = 'Zonnepanelen';

blocks['blocktitle_3'] = {}
blocks['blocktitle_3']['type'] = 'blocktitle';
blocks['blocktitle_3']['title'] = 'Overig';

blocks['blocktitle_4'] = {}
blocks['blocktitle_4']['type'] = 'blocktitle';
blocks['blocktitle_4']['title'] = 'Weer';

blocks['blocktitle_5'] = {}
blocks['blocktitle_5']['type'] = 'blocktitle';
blocks['blocktitle_5']['title'] = 'Schakelaars Overig';

blocks['blocktitle_6'] = {}
blocks['blocktitle_6']['type'] = 'blocktitle';
blocks['blocktitle_6']['title'] = 'Overig';

blocks['blocktitle_7'] = {}
blocks['blocktitle_7']['type'] = 'blocktitle';
blocks['blocktitle_7']['title'] = 'Monitoring';

//Weer
blocks[28] = {}
blocks[28]['title'] = 'Voordeur Temp:';

blocks['35_1'] = {}
blocks['35_1']['title'] = 'Tuin Temp:';


blocks[38] = {}
blocks[38]['title'] = 'Tuin Regen:';


blocks['graph_46_2'] = { devices: ['46'],
title: 'Zonnepanelen',graph: 'bar',datasetColors: ['yellow']}


blocks[180] = {}
blocks[180]['title'] = 'Keukenraam Screen';
blocks[180]['last_update'] = false;
blocks[180]['width'] = 7;

//PI
blocks[79] = {}
blocks[79]['width'] = 4;
blocks[79]['title'] = 'PI CPU Usage';
blocks[79]['last_update'] = false;

blocks[80] = {}
blocks[80]['width'] = 4;
blocks[80]['title'] = 'PI Temp';
blocks[80]['last_update'] = false;

blocks[81] = {}
blocks[81]['width'] = 4;
blocks[81]['title'] = 'PI Memory Usage';
blocks[81]['last_update'] = false;

//columns defenition
var columns = {}

columns[1] = {}
columns[1]['blocks'] = ['blocktitle_1', 2, 14, 91, 85, 133, 42,'blocktitle_5', 24, 180]
columns[1]['width'] = 3;

columns[2] = {}
columns[2]['blocks'] = ['blocktitle_2', 'graph_46_2', 'blocktitle_4', 28, '35_1', 38, 'sunrise']
columns[2]['width'] = 5;

columns[3] = {}
columns[3]['blocks'] = ['blocktitle_7', 'garbage', 79, 80, 81, 'log']
columns[3]['width'] = 4;


screens = {}
screens[1] = {
  columns: [1,2,3]
}
Version of dashtics is V3.4.0 beta.
How did you install Dashticz? Did you use the manual install method or the automatic install (and using the Docker image)? See the installation instructions at https://dashticz.readthedocs.io/

If you have installed Dashticz in the Domoticz www folder, then you only have access after login to Domoticz from the same client (which is not convenient ...)

Did you configure user authentication in Domoticz? Set it to basic-auth, or allow access for the local network, or temporarily disable authentication completely.

If you followed the installation instructions, and you are using Domoticz development branch, then try to add the following to your CONFIG.js:

Try with http instead of https for the Domoticz connection.

Code: Select all

config['enable_websocket'] = 0;
or switch to master, via (in the Dashticz folder:)

Code: Select all

git checkout master
Boattailman
Posts: 14
Joined: Thursday 05 March 2020 23:04
Target OS: Raspberry Pi / ODroid
Domoticz version: 2020.2
Contact:

Re: Dasticz only working on laptop, not on tablet

Post by Boattailman »

Lokonli wrote: Thursday 12 March 2020 21:04
Boattailman wrote: Thursday 12 March 2020 19:03 Installed dasticz on my pi a couple of days ago. So far so good but after two days of hard work on my laptop I wanted to see how it looked on my phone and ipad, well nothing. The ipad(chrome and safari) and my phone(chrome) both give an error. Tried my wife's ipad, also nothing while on her laptop everything showed up fine. The domoticz log shows an incoming connection so that's ok. My son get's on chrome on his phone an error, connection refused. I'm stuck here, someone with a brilliant idea?
Spoiler: show

Code: Select all

var config = {}
config['domoticz_ip'] = 'https://192.168.0.124:443';
config['login_timeout'] = '60';
config['user_name'] = '0';
config['pass_word'] = '0';
config['app_title'] = 'Dashticz';
config['room_plan'] = 0;
config['domoticz_refresh'] = '5';
config['dashticz_refresh'] = '60';
config['default_news_url'] = 'http://www.nu.nl/rss/algemeen';
config['news_scroll_after'] = '7';
config['default_cors_url'] = 0;
config['dashticz_php_path'] = './vendor/dashticz/';
config['standby_call_url'] = 0;
config['standby_call_url_on_end'] = 0;
config['theme'] = 'default';
config['background_image'] = 'img/bg2.jpg';
config['standby_after'] = 0;
config['start_page'] = 1;
config['enable_swiper'] = '2';
config['vertical_scroll'] = '2';
config['auto_swipe_back_to'] = 1;
config['auto_swipe_back_after'] = '10';
config['auto_slide_pages'] = 0;
config['slide_effect'] = 'slide';
config['standard_graph'] = 'hours';
config['blink_color'] = '255, 255, 255, 1';
config['language'] = 'nl_NL';
config['timeformat'] = 'DD-MM-YY HH:mm';
config['calendarformat'] = 'dd DD.MM HH:mm';
config['calendarlanguage'] = 'en_US';
config['calendarurl'] = 0;
config['boss_stationclock'] = 'RedBoss';
config['gm_api'] = 0;
config['gm_zoomlevel'] = 0;
config['gm_latitude'] = 0;
config['gm_longitude'] = 0;
config['speak_lang'] = 'en-US';
config['wu_api'] = 'f0df90d835cb4e0c9f90d835cb8e0cd6';
config['wu_city'] = '0';
config['wu_name'] = '0;
config['wu_country'] = 'NL';
config['owm_api'] = 0;
config['owm_city'] = 'Mainaschaff';
config['owm_name'] = 0;
config['owm_country'] = 'de';
config['owm_lang'] = 0;
config['owm_cnt'] = '4';
config['idx_moonpicture'] = 0;
config['longfonds_zipcode'] = 0;
config['longfonds_housenumber'] = 0;
config['switch_horizon'] = 0;
config['host_nzbget'] = 0;
config['spot_clientid'] = 0;
config['sonarr_url'] = 0;
config['sonarr_apikey'] = 0;
config['sonarr_maxitems'] = 0;
config['garbage_company'] = 'mijnafvalwijzer';
config['garbage_icalurl'] = 0;
config['google_api_key'] = 0;
config['garbage_calendar_id'] = 0;
config['garbage_zipcode'] = '0';
config['garbage_street'] = '0';
config['garbage_housenumber'] = '0';
config['garbage_housenumberadd'] = 0;
config['garbage_maxitems'] = '2';
config['garbage_width'] = 0;
config['setpoint_min'] = '5';
config['setpoint_max'] = '40';
config['evohome_status'] = 'Auto';
config['evohome_boost_zone'] = '60';
config['evohome_boost_hw'] = '15';
config['loginEnabled'] = 0;
config['disable_update_check'] = 0;
config['enable_websocket'] = 1;
config['no_rgb'] = 1;
config['auto_positioning'] = 0;
config['use_favorites'] = 0;
config['disable_googleanalytics'] = 0;
config['last_update'] = 1;
config['hide_topbar'] = 0;
config['security_button_icons'] = 0;
config['edit_mode'] = 0;
config['hide_seconds'] = 0;
config['hide_seconds_stationclock'] = 0;
config['owm_days'] = 0;
config['owm_min'] = 0;
config['use_fahrenheit'] = 0;
config['use_beaufort'] = 0;
config['translate_windspeed'] = 1;
config['static_weathericons'] = 0;
config['hide_mediaplayer'] = 0;
config['garbage_hideicon'] = 0;
config['garbage_icon_use_colors'] = 1;
config['garbage_use_colors'] = 0;
config['garbage_use_names'] = 0;
config['garbage_use_cors_prefix'] = 1;

var blocks = {}

//var frames = {}
//frames.buienradar = {width:4,frameurl:"https://api.buienradar.nl/image/1.0/RadarMapNL?w=215&h=155"}

//Scenes
blocks[85] = {}
blocks[85]['width'] = 6;
blocks[85]['title'] = 'Eettafel';
blocks[85]['last_update'] = false;
blocks[85]['hide_data'] = true;

blocks[91] = {}
blocks[91]['width'] = 6;
blocks[91]['title'] = 'Schakelaar TVKamer';
blocks[91]['last_update'] = false;
blocks[91]['hide_data'] = true;

blocks[133] = {}
blocks[133]['width'] = 6;
blocks[133]['title'] = 'Schakelaar Tuin';
blocks[133]['last_update'] = false;
blocks[133]['hide_data'] = true;

//blocks[137] = {}
//blocks[137]['title'] = 'TVKamer Avond Scene';
//blocks[137]['last_update'] = false;
//blocks[137]['hide_data'] = true;

blocks[42] = {}
blocks[42]['width'] = 6;
blocks[42]['title'] = 'Schakelaar Keuken';
blocks[42]['last_update'] = false;

//Lampen
blocks[1] = {}
blocks[1]['width'] = 4;
blocks[1]['title'] = 'Plafond';
blocks[1]['last_update'] = false;

blocks[8] = {}
blocks[8]['width'] = 4;
blocks[8]['title'] = 'Keuken';
blocks[8]['last_update'] = false;

blocks[16] = {}
blocks[16]['width'] = 4;
blocks[16]['title'] = 'Eettafel';
blocks[16]['last_update'] = false;

blocks[17] = {}
blocks[17]['width'] = 4;
blocks[17]['title'] = 'Eettafel_2';
blocks[17]['last_update'] = false;

blocks[18] = {}
blocks[18]['width'] = 4;
blocks[18]['title'] = 'Eettafel_3';
blocks[18]['last_update'] = false;

blocks[19] = {}
blocks[19]['width'] = 4;
blocks[19]['title'] = 'Eettafel_4';
blocks[19]['last_update'] = false;

blocks[20] = {}
blocks[20]['width'] = 4;
blocks[20]['title'] = 'Eettafel_5';
blocks[20]['last_update'] = false;

blocks[26] = {}
blocks[26]['width'] = 4;
blocks[26]['title'] = 'Lamp Voor Buiten';
blocks[26]['last_update'] = false;

blocks[24] = {}
blocks[24]['width'] = 4;
blocks[24]['title'] = 'Aqua CO2';
blocks[24]['last_update'] = false;

blocks[14] = {}
blocks[14]['width'] = 6;
blocks[14]['title'] = 'Hue Mink';
blocks[14]['last_update'] = false;

blocks[2] = {}
blocks[2]['width'] = 6;
blocks[2]['title'] = 'Hal';
blocks[2]['last_update'] = false;

blocks[13] = {}
blocks[13]['width'] = 4;
blocks[13]['title'] = 'Hue Kachel';
blocks[13]['last_update'] = false;

blocks[12] = {}
blocks[12]['width'] = 4;
blocks[12]['title'] = 'Hue Strip Buiten';
blocks[12]['last_update'] = false;

blocks[23] = {}
blocks[23]['width'] = 4;
blocks[23]['title'] = 'Hue White Kast';
blocks[23]['last_update'] = false;

blocks['blocktitle_1'] = {}
blocks['blocktitle_1']['type'] = 'blocktitle';
blocks['blocktitle_1']['title'] = 'Schakelaars Lampen';

blocks['blocktitle_2'] = {}
blocks['blocktitle_2']['type'] = 'blocktitle';
blocks['blocktitle_2']['title'] = 'Zonnepanelen';

blocks['blocktitle_3'] = {}
blocks['blocktitle_3']['type'] = 'blocktitle';
blocks['blocktitle_3']['title'] = 'Overig';

blocks['blocktitle_4'] = {}
blocks['blocktitle_4']['type'] = 'blocktitle';
blocks['blocktitle_4']['title'] = 'Weer';

blocks['blocktitle_5'] = {}
blocks['blocktitle_5']['type'] = 'blocktitle';
blocks['blocktitle_5']['title'] = 'Schakelaars Overig';

blocks['blocktitle_6'] = {}
blocks['blocktitle_6']['type'] = 'blocktitle';
blocks['blocktitle_6']['title'] = 'Overig';

blocks['blocktitle_7'] = {}
blocks['blocktitle_7']['type'] = 'blocktitle';
blocks['blocktitle_7']['title'] = 'Monitoring';

//Weer
blocks[28] = {}
blocks[28]['title'] = 'Voordeur Temp:';

blocks['35_1'] = {}
blocks['35_1']['title'] = 'Tuin Temp:';


blocks[38] = {}
blocks[38]['title'] = 'Tuin Regen:';


blocks['graph_46_2'] = { devices: ['46'],
title: 'Zonnepanelen',graph: 'bar',datasetColors: ['yellow']}


blocks[180] = {}
blocks[180]['title'] = 'Keukenraam Screen';
blocks[180]['last_update'] = false;
blocks[180]['width'] = 7;

//PI
blocks[79] = {}
blocks[79]['width'] = 4;
blocks[79]['title'] = 'PI CPU Usage';
blocks[79]['last_update'] = false;

blocks[80] = {}
blocks[80]['width'] = 4;
blocks[80]['title'] = 'PI Temp';
blocks[80]['last_update'] = false;

blocks[81] = {}
blocks[81]['width'] = 4;
blocks[81]['title'] = 'PI Memory Usage';
blocks[81]['last_update'] = false;

//columns defenition
var columns = {}

columns[1] = {}
columns[1]['blocks'] = ['blocktitle_1', 2, 14, 91, 85, 133, 42,'blocktitle_5', 24, 180]
columns[1]['width'] = 3;

columns[2] = {}
columns[2]['blocks'] = ['blocktitle_2', 'graph_46_2', 'blocktitle_4', 28, '35_1', 38, 'sunrise']
columns[2]['width'] = 5;

columns[3] = {}
columns[3]['blocks'] = ['blocktitle_7', 'garbage', 79, 80, 81, 'log']
columns[3]['width'] = 4;


screens = {}
screens[1] = {
  columns: [1,2,3]
}
Version of dashtics is V3.4.0 beta.
How did you install Dashticz? Did you use the manual install method or the automatic install (and using the Docker image)? See the installation instructions at https://dashticz.readthedocs.io/
Auto install

If you have installed Dashticz in the Domoticz www folder, then you only have access after login to Domoticz from the same client (which is not convenient ...)
Nope

Did you configure user authentication in Domoticz? Set it to basic-auth, or allow access for the local network, or temporarily disable authentication completely.
All done

If you followed the installation instructions, and you are using Domoticz development branch, then try to add the following to your CONFIG.js:

Try with http instead of https for the Domoticz connection.

Code: Select all

config['enable_websocket'] = 0;
Done, no change

or switch to master, via (in the Dashticz folder:)
Done, and now my solar panel graph is gone ;-(

Code: Select all

git checkout master


The error is just a simple error message, error, for more help visit dashticz etc.....
Domoticz is working fine, on laptop and on ipad/phone
Lokonli
Posts: 2291
Joined: Monday 29 August 2016 22:40
Target OS: Raspberry Pi / ODroid
Domoticz version:
Contact:

Re: Dasticz only working on laptop, not on tablet

Post by Lokonli »

Boattailman wrote: Thursday 12 March 2020 21:48
Lokonli wrote: Thursday 12 March 2020 21:04
Boattailman wrote: Thursday 12 March 2020 19:03 Installed dasticz on my pi a couple of days ago. So far so good but after two days of hard work on my laptop I wanted to see how it looked on my phone and ipad, well nothing. The ipad(chrome and safari) and my phone(chrome) both give an error. Tried my wife's ipad, also nothing while on her laptop everything showed up fine. The domoticz log shows an incoming connection so that's ok. My son get's on chrome on his phone an error, connection refused. I'm stuck here, someone with a brilliant idea?
Spoiler: show

Code: Select all

var config = {}
config['domoticz_ip'] = 'https://192.168.0.124:443';
config['login_timeout'] = '60';
config['user_name'] = '0';
config['pass_word'] = '0';
config['app_title'] = 'Dashticz';
config['room_plan'] = 0;
config['domoticz_refresh'] = '5';
config['dashticz_refresh'] = '60';
config['default_news_url'] = 'http://www.nu.nl/rss/algemeen';
config['news_scroll_after'] = '7';
config['default_cors_url'] = 0;
config['dashticz_php_path'] = './vendor/dashticz/';
config['standby_call_url'] = 0;
config['standby_call_url_on_end'] = 0;
config['theme'] = 'default';
config['background_image'] = 'img/bg2.jpg';
config['standby_after'] = 0;
config['start_page'] = 1;
config['enable_swiper'] = '2';
config['vertical_scroll'] = '2';
config['auto_swipe_back_to'] = 1;
config['auto_swipe_back_after'] = '10';
config['auto_slide_pages'] = 0;
config['slide_effect'] = 'slide';
config['standard_graph'] = 'hours';
config['blink_color'] = '255, 255, 255, 1';
config['language'] = 'nl_NL';
config['timeformat'] = 'DD-MM-YY HH:mm';
config['calendarformat'] = 'dd DD.MM HH:mm';
config['calendarlanguage'] = 'en_US';
config['calendarurl'] = 0;
config['boss_stationclock'] = 'RedBoss';
config['gm_api'] = 0;
config['gm_zoomlevel'] = 0;
config['gm_latitude'] = 0;
config['gm_longitude'] = 0;
config['speak_lang'] = 'en-US';
config['wu_api'] = 'f0df90d835cb4e0c9f90d835cb8e0cd6';
config['wu_city'] = '0';
config['wu_name'] = '0;
config['wu_country'] = 'NL';
config['owm_api'] = 0;
config['owm_city'] = 'Mainaschaff';
config['owm_name'] = 0;
config['owm_country'] = 'de';
config['owm_lang'] = 0;
config['owm_cnt'] = '4';
config['idx_moonpicture'] = 0;
config['longfonds_zipcode'] = 0;
config['longfonds_housenumber'] = 0;
config['switch_horizon'] = 0;
config['host_nzbget'] = 0;
config['spot_clientid'] = 0;
config['sonarr_url'] = 0;
config['sonarr_apikey'] = 0;
config['sonarr_maxitems'] = 0;
config['garbage_company'] = 'mijnafvalwijzer';
config['garbage_icalurl'] = 0;
config['google_api_key'] = 0;
config['garbage_calendar_id'] = 0;
config['garbage_zipcode'] = '0';
config['garbage_street'] = '0';
config['garbage_housenumber'] = '0';
config['garbage_housenumberadd'] = 0;
config['garbage_maxitems'] = '2';
config['garbage_width'] = 0;
config['setpoint_min'] = '5';
config['setpoint_max'] = '40';
config['evohome_status'] = 'Auto';
config['evohome_boost_zone'] = '60';
config['evohome_boost_hw'] = '15';
config['loginEnabled'] = 0;
config['disable_update_check'] = 0;
config['enable_websocket'] = 1;
config['no_rgb'] = 1;
config['auto_positioning'] = 0;
config['use_favorites'] = 0;
config['disable_googleanalytics'] = 0;
config['last_update'] = 1;
config['hide_topbar'] = 0;
config['security_button_icons'] = 0;
config['edit_mode'] = 0;
config['hide_seconds'] = 0;
config['hide_seconds_stationclock'] = 0;
config['owm_days'] = 0;
config['owm_min'] = 0;
config['use_fahrenheit'] = 0;
config['use_beaufort'] = 0;
config['translate_windspeed'] = 1;
config['static_weathericons'] = 0;
config['hide_mediaplayer'] = 0;
config['garbage_hideicon'] = 0;
config['garbage_icon_use_colors'] = 1;
config['garbage_use_colors'] = 0;
config['garbage_use_names'] = 0;
config['garbage_use_cors_prefix'] = 1;

var blocks = {}

//var frames = {}
//frames.buienradar = {width:4,frameurl:"https://api.buienradar.nl/image/1.0/RadarMapNL?w=215&h=155"}

//Scenes
blocks[85] = {}
blocks[85]['width'] = 6;
blocks[85]['title'] = 'Eettafel';
blocks[85]['last_update'] = false;
blocks[85]['hide_data'] = true;

blocks[91] = {}
blocks[91]['width'] = 6;
blocks[91]['title'] = 'Schakelaar TVKamer';
blocks[91]['last_update'] = false;
blocks[91]['hide_data'] = true;

blocks[133] = {}
blocks[133]['width'] = 6;
blocks[133]['title'] = 'Schakelaar Tuin';
blocks[133]['last_update'] = false;
blocks[133]['hide_data'] = true;

//blocks[137] = {}
//blocks[137]['title'] = 'TVKamer Avond Scene';
//blocks[137]['last_update'] = false;
//blocks[137]['hide_data'] = true;

blocks[42] = {}
blocks[42]['width'] = 6;
blocks[42]['title'] = 'Schakelaar Keuken';
blocks[42]['last_update'] = false;

//Lampen
blocks[1] = {}
blocks[1]['width'] = 4;
blocks[1]['title'] = 'Plafond';
blocks[1]['last_update'] = false;

blocks[8] = {}
blocks[8]['width'] = 4;
blocks[8]['title'] = 'Keuken';
blocks[8]['last_update'] = false;

blocks[16] = {}
blocks[16]['width'] = 4;
blocks[16]['title'] = 'Eettafel';
blocks[16]['last_update'] = false;

blocks[17] = {}
blocks[17]['width'] = 4;
blocks[17]['title'] = 'Eettafel_2';
blocks[17]['last_update'] = false;

blocks[18] = {}
blocks[18]['width'] = 4;
blocks[18]['title'] = 'Eettafel_3';
blocks[18]['last_update'] = false;

blocks[19] = {}
blocks[19]['width'] = 4;
blocks[19]['title'] = 'Eettafel_4';
blocks[19]['last_update'] = false;

blocks[20] = {}
blocks[20]['width'] = 4;
blocks[20]['title'] = 'Eettafel_5';
blocks[20]['last_update'] = false;

blocks[26] = {}
blocks[26]['width'] = 4;
blocks[26]['title'] = 'Lamp Voor Buiten';
blocks[26]['last_update'] = false;

blocks[24] = {}
blocks[24]['width'] = 4;
blocks[24]['title'] = 'Aqua CO2';
blocks[24]['last_update'] = false;

blocks[14] = {}
blocks[14]['width'] = 6;
blocks[14]['title'] = 'Hue Mink';
blocks[14]['last_update'] = false;

blocks[2] = {}
blocks[2]['width'] = 6;
blocks[2]['title'] = 'Hal';
blocks[2]['last_update'] = false;

blocks[13] = {}
blocks[13]['width'] = 4;
blocks[13]['title'] = 'Hue Kachel';
blocks[13]['last_update'] = false;

blocks[12] = {}
blocks[12]['width'] = 4;
blocks[12]['title'] = 'Hue Strip Buiten';
blocks[12]['last_update'] = false;

blocks[23] = {}
blocks[23]['width'] = 4;
blocks[23]['title'] = 'Hue White Kast';
blocks[23]['last_update'] = false;

blocks['blocktitle_1'] = {}
blocks['blocktitle_1']['type'] = 'blocktitle';
blocks['blocktitle_1']['title'] = 'Schakelaars Lampen';

blocks['blocktitle_2'] = {}
blocks['blocktitle_2']['type'] = 'blocktitle';
blocks['blocktitle_2']['title'] = 'Zonnepanelen';

blocks['blocktitle_3'] = {}
blocks['blocktitle_3']['type'] = 'blocktitle';
blocks['blocktitle_3']['title'] = 'Overig';

blocks['blocktitle_4'] = {}
blocks['blocktitle_4']['type'] = 'blocktitle';
blocks['blocktitle_4']['title'] = 'Weer';

blocks['blocktitle_5'] = {}
blocks['blocktitle_5']['type'] = 'blocktitle';
blocks['blocktitle_5']['title'] = 'Schakelaars Overig';

blocks['blocktitle_6'] = {}
blocks['blocktitle_6']['type'] = 'blocktitle';
blocks['blocktitle_6']['title'] = 'Overig';

blocks['blocktitle_7'] = {}
blocks['blocktitle_7']['type'] = 'blocktitle';
blocks['blocktitle_7']['title'] = 'Monitoring';

//Weer
blocks[28] = {}
blocks[28]['title'] = 'Voordeur Temp:';

blocks['35_1'] = {}
blocks['35_1']['title'] = 'Tuin Temp:';


blocks[38] = {}
blocks[38]['title'] = 'Tuin Regen:';


blocks['graph_46_2'] = { devices: ['46'],
title: 'Zonnepanelen',graph: 'bar',datasetColors: ['yellow']}


blocks[180] = {}
blocks[180]['title'] = 'Keukenraam Screen';
blocks[180]['last_update'] = false;
blocks[180]['width'] = 7;

//PI
blocks[79] = {}
blocks[79]['width'] = 4;
blocks[79]['title'] = 'PI CPU Usage';
blocks[79]['last_update'] = false;

blocks[80] = {}
blocks[80]['width'] = 4;
blocks[80]['title'] = 'PI Temp';
blocks[80]['last_update'] = false;

blocks[81] = {}
blocks[81]['width'] = 4;
blocks[81]['title'] = 'PI Memory Usage';
blocks[81]['last_update'] = false;

//columns defenition
var columns = {}

columns[1] = {}
columns[1]['blocks'] = ['blocktitle_1', 2, 14, 91, 85, 133, 42,'blocktitle_5', 24, 180]
columns[1]['width'] = 3;

columns[2] = {}
columns[2]['blocks'] = ['blocktitle_2', 'graph_46_2', 'blocktitle_4', 28, '35_1', 38, 'sunrise']
columns[2]['width'] = 5;

columns[3] = {}
columns[3]['blocks'] = ['blocktitle_7', 'garbage', 79, 80, 81, 'log']
columns[3]['width'] = 4;


screens = {}
screens[1] = {
  columns: [1,2,3]
}
Version of dashtics is V3.4.0 beta.
How did you install Dashticz? Did you use the manual install method or the automatic install (and using the Docker image)? See the installation instructions at https://dashticz.readthedocs.io/
Auto install

If you have installed Dashticz in the Domoticz www folder, then you only have access after login to Domoticz from the same client (which is not convenient ...)
Nope

Did you configure user authentication in Domoticz? Set it to basic-auth, or allow access for the local network, or temporarily disable authentication completely.
All done

If you followed the installation instructions, and you are using Domoticz development branch, then try to add the following to your CONFIG.js:

Try with http instead of https for the Domoticz connection.

Code: Select all

config['enable_websocket'] = 0;
Done, no change

or switch to master, via (in the Dashticz folder:)
Done, and now my solar panel graph is gone ;-(

Code: Select all

git checkout master


The error is just a simple error message, error, for more help visit dashticz etc.....
Domoticz is working fine, on laptop and on ipad/phone
Is the master version working ok on your ipad and phone? (excluding the graph)
Boattailman
Posts: 14
Joined: Thursday 05 March 2020 23:04
Target OS: Raspberry Pi / ODroid
Domoticz version: 2020.2
Contact:

Re: Dasticz only working on laptop, not on tablet

Post by Boattailman »

No, same error, perfect on windows laptop and mac but no go on ipad en phones.
Lokonli
Posts: 2291
Joined: Monday 29 August 2016 22:40
Target OS: Raspberry Pi / ODroid
Domoticz version:
Contact:

Re: Dasticz only working on laptop, not on tablet

Post by Lokonli »

Can you remove the next two lines from CONFIG.js and retest?

config['user_name'] = '0';
config['pass_word'] = '0';


Sent from my SM-A320FL using Tapatalk

Boattailman
Posts: 14
Joined: Thursday 05 March 2020 23:04
Target OS: Raspberry Pi / ODroid
Domoticz version: 2020.2
Contact:

Re: Dasticz only working on laptop, not on tablet

Post by Boattailman »

Done, but still error on my phone and ipad. Even tried firefox, same error.
User avatar
clinkadink
Posts: 417
Joined: Tuesday 31 December 2019 1:15
Target OS: Linux
Domoticz version: 2020.2
Location: Swindon, UK
Contact:

Re: Dasticz only working on laptop, not on tablet

Post by clinkadink »

There are errors in your config.js is:

Missing a closing apostrophe - change this ...

Code: Select all

config['wu_name'] = '0;
To this ...

Code: Select all

config['wu_name'] = '0';
Also, your graph block is incorrect, devices takes an array of integers, not strings - change this ...

Code: Select all

blocks['graph_46_2'] = { devices: ['46'],
title: 'Zonnepanelen',graph: 'bar',datasetColors: ['yellow']}
To this ....

Code: Select all

blocks['graph_46_2'] = { devices: [46],
title: 'Zonnepanelen',graph: 'bar',datasetColors: ['yellow']}
"UI is the saddle, the stirrups, & the reins. UX is the feeling you get being able to ride the horse."
Boattailman
Posts: 14
Joined: Thursday 05 March 2020 23:04
Target OS: Raspberry Pi / ODroid
Domoticz version: 2020.2
Contact:

Re: Dasticz only working on laptop, not on tablet

Post by Boattailman »

Ah, your right thx, corrected this.The wu name was already fixed, but the graph (stupid) mistake fixed the errors on my tablet. Strange why this affected dashticz on my phone and ipad and not laptops. Anyway, thx all for helping!
User avatar
clinkadink
Posts: 417
Joined: Tuesday 31 December 2019 1:15
Target OS: Linux
Domoticz version: 2020.2
Location: Swindon, UK
Contact:

Re: Dasticz only working on laptop, not on tablet

Post by clinkadink »

Boattailman wrote: Friday 13 March 2020 10:12 Ah, your right thx, corrected this.The wu name was already fixed, but the graph (stupid) mistake fixed the errors on my tablet. Strange why this affected dashticz on my phone and ipad and not laptops. Anyway, thx all for helping!
Glad this is has now resolved the issue. At the top of this topic, please can you 'Accept this answer' with the tick button, thanks ;)
"UI is the saddle, the stirrups, & the reins. UX is the feeling you get being able to ride the horse."
Post Reply

Who is online

Users browsing this forum: No registered users and 1 guest