Auswertungen rund um YNAB (Reporting)

Fortsetzung der Diskussion von Der: Wir stellen uns vor Thread:

So wie es aussieht, ist es JSON, also sollte es für einen Informatiker nicht all zu schwer sein oder?

Hier mal ein Demo Budget von mir

"budgetMetaData": {
	"dateLocale": "de_DE",
	"entityVersion": "A-0",
	"strictBudget": "TRUE",
	"currencyLocale": "de_DE",
	"budgetType": "Personal",
	"entityId": "A2",
	"entityType": "budgetMetaData",
	"currencyISOSymbol": null
},
"fileMetaData": {
	"entityType": "fileMetaData",
	"currentKnowledge": "A-98,C-24",
	"budgetDataVersion": "4.2"
},
"accounts": [
	{
		"hidden": false,
		"onBudget": true,
		"accountName": "Girokonto",
		"entityVersion": "A-64",
		"lastEnteredCheckNumber": -1,
		"entityId": "71FDA99C-21F5-320E-09C7-7A2C3280FF4F",
		"entityType": "account",
		"lastReconciledDate": null,
		"sortableIndex": 0,
		"lastReconciledBalance": 0,
		"accountType": "Checking"
	}
],
"masterCategories": [
	{
		"name": "Hidden Categories",
		"expanded": true,
		"deleteable": false,
		"subCategories": [],
		"entityVersion": "A-1",
		"entityId": "MasterCategory/__Hidden__",
		"entityType": "masterCategory",
		"sortableIndex": -1073741824,
		"type": "OUTFLOW"
	},
	{
		"name": "Jährlich",
		"expanded": true,
		"deleteable": true,
		"subCategories": [
			{
				"masterCategoryId": "A4",
				"name": "Autoversicherung",
				"cachedBalance": 0,
				"entityVersion": "A-71",
				"entityId": "A5",
				"entityType": "category",
				"sortableIndex": 0,
				"type": "OUTFLOW"
			},
			{
				"masterCategoryId": "A4",
				"name": "Haftpflichtversicherung",
				"cachedBalance": 0,
				"entityVersion": "A-72",
				"entityId": "A6",
				"entityType": "category",
				"sortableIndex": 1073741823,
				"type": "OUTFLOW"
			}
		],
		"entityVersion": "A-68",
		"entityId": "A4",
		"entityType": "masterCategory",
		"sortableIndex": 1879048191,
		"type": "OUTFLOW"
	},
	{
		"name": "Monatlich",
		"expanded": true,
		"deleteable": true,
		"subCategories": [
			{
				"masterCategoryId": "A7",
				"name": "Miete",
				"cachedBalance": 0,
				"entityVersion": "A-73",
				"entityId": "A8",
				"entityType": "category",
				"sortableIndex": 0,
				"type": "OUTFLOW"
			},
			{
				"masterCategoryId": "A7",
				"name": "Telefon",
				"cachedBalance": 0,
				"entityVersion": "A-74",
				"entityId": "A9",
				"entityType": "category",
				"sortableIndex": 1073741823,
				"type": "OUTFLOW"
			},
			{
				"masterCategoryId": "A7",
				"name": "Internet",
				"cachedBalance": 0,
				"entityVersion": "A-8",
				"entityId": "A10",
				"entityType": "category",
				"sortableIndex": 1610612735,
				"type": "OUTFLOW"
			},
			{
				"masterCategoryId": "A7",
				"name": "Strom",
				"cachedBalance": 0,
				"entityVersion": "A-76",
				"entityId": "A11",
				"entityType": "category",
				"sortableIndex": 1879048191,
				"type": "OUTFLOW"
			},
			{
				"masterCategoryId": "A7",
				"name": "Gas",
				"cachedBalance": 0,
				"entityVersion": "A-78",
				"entityId": "A12",
				"entityType": "category",
				"sortableIndex": 2013265919,
				"type": "OUTFLOW"
			},
			{
				"masterCategoryId": "A7",
				"name": "Wasser",
				"cachedBalance": 0,
				"entityVersion": "A-79",
				"entityId": "A13",
				"entityType": "category",
				"sortableIndex": 2080374783,
				"type": "OUTFLOW"
			},
			{
				"masterCategoryId": "A7",
				"name": "Natural Gas/Propane/Oil",
				"cachedBalance": 0,
				"isTombstone": true,
				"entityVersion": "A-80",
				"entityId": "A14",
				"entityType": "category",
				"sortableIndex": 2113929215,
				"type": "OUTFLOW"
			}
		],
		"entityVersion": "A-69",
		"entityId": "A7",
		"entityType": "masterCategory",
		"sortableIndex": 2013265919,
		"type": "OUTFLOW"
	},
	{
		"name": "Täglich",
		"expanded": true,
		"deleteable": true,
		"subCategories": [
			{
				"masterCategoryId": "A15",
				"name": "Einkäufe",
				"cachedBalance": 0,
				"entityVersion": "A-81",
				"entityId": "A16",
				"entityType": "category",
				"sortableIndex": 0,
				"type": "OUTFLOW"
			},
			{
				"masterCategoryId": "A15",
				"name": "Tanken",
				"cachedBalance": 0,
				"entityVersion": "A-82",
				"entityId": "A17",
				"entityType": "category",
				"sortableIndex": 1073741823,
				"type": "OUTFLOW"
			},
			{
				"masterCategoryId": "A15",
				"name": "Spending Money",
				"cachedBalance": 0,
				"isTombstone": true,
				"entityVersion": "A-83",
				"entityId": "A18",
				"entityType": "category",
				"sortableIndex": 1610612735,
				"type": "OUTFLOW"
			},
			{
				"masterCategoryId": "A15",
				"name": "Restaurants",
				"cachedBalance": 0,
				"entityVersion": "A-17",
				"entityId": "A19",
				"entityType": "category",
				"sortableIndex": 1879048191,
				"type": "OUTFLOW"
			},
			{
				"masterCategoryId": "A15",
				"name": "Medizin",
				"cachedBalance": 0,
				"entityVersion": "A-84",
				"entityId": "A20",
				"entityType": "category",
				"sortableIndex": 2013265919,
				"type": "OUTFLOW"
			},
			{
				"masterCategoryId": "A15",
				"name": "Kleidung",
				"cachedBalance": 0,
				"entityVersion": "A-85",
				"entityId": "A21",
				"entityType": "category",
				"sortableIndex": 2080374783,
				"type": "OUTFLOW"
			},
			{
				"masterCategoryId": "A15",
				"name": "Haushaltsgegenstände",
				"cachedBalance": 0,
				"entityVersion": "A-86",
				"entityId": "A22",
				"entityType": "category",
				"sortableIndex": 2113929215,
				"type": "OUTFLOW"
			}
		],
		"entityVersion": "A-70",
		"entityId": "A15",
		"entityType": "masterCategory",
		"sortableIndex": 2080374783,
		"type": "OUTFLOW"
	},
	{
		"name": "Schlechte Zeiten",
		"expanded": true,
		"deleteable": true,
		"subCategories": [
			{
				"masterCategoryId": "A23",
				"name": "Notfallpuffer",
				"cachedBalance": 0,
				"entityVersion": "A-88",
				"entityId": "A24",
				"entityType": "category",
				"sortableIndex": 0,
				"type": "OUTFLOW"
			},
			{
				"masterCategoryId": "A23",
				"name": "Auto Reparatur",
				"cachedBalance": 0,
				"entityVersion": "A-89",
				"entityId": "A25",
				"entityType": "category",
				"sortableIndex": 1073741823,
				"type": "OUTFLOW"
			},
			{
				"masterCategoryId": "A23",
				"name": "Instandsetzung Haushalt",
				"cachedBalance": 0,
				"entityVersion": "A-90",
				"entityId": "A26",
				"entityType": "category",
				"sortableIndex": 1610612735,
				"type": "OUTFLOW"
			},
			{
				"masterCategoryId": "A23",
				"name": "Car Insurance",
				"cachedBalance": 0,
				"isTombstone": true,
				"entityVersion": "A-91",
				"entityId": "A27",
				"entityType": "category",
				"sortableIndex": 1879048191,
				"type": "OUTFLOW"
			},
			{
				"masterCategoryId": "A23",
				"name": "Life Insurance",
				"cachedBalance": 0,
				"isTombstone": true,
				"entityVersion": "A-92",
				"entityId": "A28",
				"entityType": "category",
				"sortableIndex": 2013265919,
				"type": "OUTFLOW"
			},
			{
				"masterCategoryId": "A23",
				"name": "Health Insurance",
				"cachedBalance": 0,
				"isTombstone": true,
				"entityVersion": "A-93",
				"entityId": "A29",
				"entityType": "category",
				"sortableIndex": 2080374783,
				"type": "OUTFLOW"
			},
			{
				"masterCategoryId": "A23",
				"name": "Geburtstage",
				"cachedBalance": 0,
				"entityVersion": "A-94",
				"entityId": "A30",
				"entityType": "category",
				"sortableIndex": 2113929215,
				"type": "OUTFLOW"
			},
			{
				"masterCategoryId": "A23",
				"name": "Weihnachten",
				"cachedBalance": 0,
				"entityVersion": "A-95",
				"entityId": "A31",
				"entityType": "category",
				"sortableIndex": 2130706431,
				"type": "OUTFLOW"
			}
		],
		"entityVersion": "A-87",
		"entityId": "A23",
		"entityType": "masterCategory",
		"sortableIndex": 2113929215,
		"type": "OUTFLOW"
	},
	{
		"name": "Sparziele",
		"expanded": true,
		"deleteable": true,
		"subCategories": [
			{
				"masterCategoryId": "A32",
				"name": "Neues Auto",
				"cachedBalance": 0,
				"entityVersion": "A-96",
				"entityId": "A33",
				"entityType": "category",
				"sortableIndex": 0,
				"type": "OUTFLOW"
			},
			{
				"masterCategoryId": "A32",
				"name": "Urlaub",
				"cachedBalance": 0,
				"entityVersion": "A-97",
				"entityId": "A34",
				"entityType": "category",
				"sortableIndex": 1073741823,
				"type": "OUTFLOW"
			}
		],
		"entityVersion": "A-98",
		"entityId": "A32",
		"entityType": "masterCategory",
		"sortableIndex": 2130706431,
		"type": "OUTFLOW"
	},
	{
		"name": "Debt",
		"expanded": true,
		"deleteable": true,
		"subCategories": [
			{
				"masterCategoryId": "A35",
				"name": "Car Payment",
				"cachedBalance": 0,
				"entityVersion": "A-34",
				"entityId": "A36",
				"entityType": "category",
				"sortableIndex": 0,
				"type": "OUTFLOW"
			},
			{
				"masterCategoryId": "A35",
				"name": "Student Loan Payment",
				"cachedBalance": 0,
				"entityVersion": "A-35",
				"entityId": "A37",
				"entityType": "category",
				"sortableIndex": 1073741823,
				"type": "OUTFLOW"
			},
			{
				"masterCategoryId": "A35",
				"name": "Personal Loan Payment",
				"cachedBalance": 0,
				"entityVersion": "A-36",
				"entityId": "A38",
				"entityType": "category",
				"sortableIndex": 1610612735,
				"type": "OUTFLOW"
			}
		],
		"entityVersion": "A-33",
		"entityId": "A35",
		"entityType": "masterCategory",
		"sortableIndex": 2139095039,
		"type": "OUTFLOW"
	}
],
"payees": [
	{
		"locations": null,
		"name": "Transfer : Girokonto",
		"autoFillCategoryId": null,
		"entityVersion": "A-65",
		"enabled": true,
		"autoFillMemo": null,
		"autoFillAmount": 0,
		"entityId": "Payee/Transfer:71FDA99C-21F5-320E-09C7-7A2C3280FF4F",
		"entityType": "payee",
		"targetAccountId": "71FDA99C-21F5-320E-09C7-7A2C3280FF4F",
		"renameConditions": null
	},
	{
		"locations": null,
		"name": "Starting Balance",
		"autoFillCategoryId": null,
		"entityVersion": "A-67",
		"enabled": false,
		"autoFillMemo": null,
		"autoFillAmount": 0,
		"entityId": "B06867B4-0720-DFA1-C578-7A2C32956A2B",
		"entityType": "payee",
		"renameConditions": null
	},
	{
		"locations": null,
		"name": "Miete",
		"autoFillCategoryId": "A8",
		"entityVersion": "C-19",
		"enabled": true,
		"autoFillMemo": "",
		"autoFillAmount": -500,
		"entityId": "4144739F-5A3E-3E54-90F4-7E5DF40D1691",
		"entityType": "payee",
		"renameConditions": null
	}
],
"scheduledTransactions": [],
"transactions": [
	{
		"date": "2015-02-02",
		"entityId": "C7221C13-A0D5-108B-4845-7A2C328C3E25",
		"categoryId": "Category/__ImmediateIncome__",
		"entityType": "transaction",
		"payeeId": "B06867B4-0720-DFA1-C578-7A2C32956A2B",
		"entityVersion": "C-24",
		"amount": 1000,
		"accepted": true,
		"accountId": "71FDA99C-21F5-320E-09C7-7A2C3280FF4F",
		"cleared": "Cleared"
	},
	{
		"date": "2015-01-31",
		"entityId": "764DED86-064D-B015-DD94-7E5DD70B7F1B",
		"categoryId": "A8",
		"entityType": "transaction",
		"payeeId": "4144739F-5A3E-3E54-90F4-7E5DF40D1691",
		"entityVersion": "C-23",
		"amount": -500,
		"accepted": true,
		"accountId": "71FDA99C-21F5-320E-09C7-7A2C3280FF4F",
		"cleared": "Cleared"
	}
],
"monthlyBudgets": [
	{
		"entityVersion": "A-37",
		"monthlySubCategoryBudgets": [
			{
				"budgeted": 500,
				"overspendingHandling": null,
				"entityVersion": "C-1",
				"parentMonthlyBudgetId": "MB/2015-02",
				"entityId": "MCB/2015-02/A8",
				"entityType": "monthlyCategoryBudget",
				"categoryId": "A8"
			},
			{
				"budgeted": 50,
				"overspendingHandling": null,
				"entityVersion": "C-2",
				"parentMonthlyBudgetId": "MB/2015-02",
				"entityId": "MCB/2015-02/A9",
				"entityType": "monthlyCategoryBudget",
				"categoryId": "A9"
			},
			{
				"budgeted": 50,
				"overspendingHandling": null,
				"entityVersion": "C-3",
				"parentMonthlyBudgetId": "MB/2015-02",
				"entityId": "MCB/2015-02/A10",
				"entityType": "monthlyCategoryBudget",
				"categoryId": "A10"
			},
			{
				"budgeted": 75,
				"overspendingHandling": null,
				"entityVersion": "C-4",
				"parentMonthlyBudgetId": "MB/2015-02",
				"entityId": "MCB/2015-02/A11",
				"entityType": "monthlyCategoryBudget",
				"categoryId": "A11"
			},
			{
				"budgeted": 75,
				"overspendingHandling": null,
				"entityVersion": "C-5",
				"parentMonthlyBudgetId": "MB/2015-02",
				"entityId": "MCB/2015-02/A12",
				"entityType": "monthlyCategoryBudget",
				"categoryId": "A12"
			},
			{
				"budgeted": 30,
				"overspendingHandling": null,
				"entityVersion": "C-6",
				"parentMonthlyBudgetId": "MB/2015-02",
				"entityId": "MCB/2015-02/A13",
				"entityType": "monthlyCategoryBudget",
				"categoryId": "A13"
			}
		],
		"month": "2015-02-01",
		"entityId": "MB/2015-02",
		"entityType": "monthlyBudget"
	},
	{
		"entityVersion": "A-38",
		"monthlySubCategoryBudgets": [],
		"month": "2015-01-01",
		"entityId": "MB/2015-01",
		"entityType": "monthlyBudget"
	},
	{
		"entityVersion": "A-39",
		"monthlySubCategoryBudgets": [],
		"month": "2014-12-01",
		"entityId": "MB/2014-12",
		"entityType": "monthlyBudget"
	},
	{
		"entityVersion": "A-40",
		"monthlySubCategoryBudgets": [],
		"month": "2014-11-01",
		"entityId": "MB/2014-11",
		"entityType": "monthlyBudget"
	},
	{
		"entityVersion": "A-41",
		"monthlySubCategoryBudgets": [],
		"month": "2014-10-01",
		"entityId": "MB/2014-10",
		"entityType": "monthlyBudget"
	},
	{
		"entityVersion": "A-42",
		"monthlySubCategoryBudgets": [],
		"month": "2014-09-01",
		"entityId": "MB/2014-09",
		"entityType": "monthlyBudget"
	},
	{
		"entityVersion": "A-43",
		"monthlySubCategoryBudgets": [],
		"month": "2014-08-01",
		"entityId": "MB/2014-08",
		"entityType": "monthlyBudget"
	},
	{
		"entityVersion": "A-44",
		"monthlySubCategoryBudgets": [],
		"month": "2014-07-01",
		"entityId": "MB/2014-07",
		"entityType": "monthlyBudget"
	},
	{
		"entityVersion": "A-45",
		"monthlySubCategoryBudgets": [],
		"month": "2014-06-01",
		"entityId": "MB/2014-06",
		"entityType": "monthlyBudget"
	},
	{
		"entityVersion": "A-46",
		"monthlySubCategoryBudgets": [],
		"month": "2014-05-01",
		"entityId": "MB/2014-05",
		"entityType": "monthlyBudget"
	},
	{
		"entityVersion": "A-47",
		"monthlySubCategoryBudgets": [],
		"month": "2014-04-01",
		"entityId": "MB/2014-04",
		"entityType": "monthlyBudget"
	},
	{
		"entityVersion": "A-48",
		"monthlySubCategoryBudgets": [],
		"month": "2014-03-01",
		"entityId": "MB/2014-03",
		"entityType": "monthlyBudget"
	},
	{
		"entityVersion": "A-49",
		"monthlySubCategoryBudgets": [],
		"month": "2014-02-01",
		"entityId": "MB/2014-02",
		"entityType": "monthlyBudget"
	},
	{
		"entityVersion": "A-50",
		"monthlySubCategoryBudgets": [],
		"month": "2014-01-01",
		"entityId": "MB/2014-01",
		"entityType": "monthlyBudget"
	},
	{
		"entityVersion": "A-51",
		"monthlySubCategoryBudgets": [
			{
				"budgeted": 0,
				"overspendingHandling": null,
				"entityVersion": "C-13",
				"parentMonthlyBudgetId": "MB/2015-03",
				"entityId": "MCB/2015-03/A8",
				"entityType": "monthlyCategoryBudget",
				"categoryId": "A8"
			},
			{
				"budgeted": 0,
				"overspendingHandling": null,
				"entityVersion": "C-14",
				"parentMonthlyBudgetId": "MB/2015-03",
				"entityId": "MCB/2015-03/A9",
				"entityType": "monthlyCategoryBudget",
				"categoryId": "A9"
			},
			{
				"budgeted": 0,
				"overspendingHandling": null,
				"entityVersion": "C-15",
				"parentMonthlyBudgetId": "MB/2015-03",
				"entityId": "MCB/2015-03/A10",
				"entityType": "monthlyCategoryBudget",
				"categoryId": "A10"
			},
			{
				"budgeted": 0,
				"overspendingHandling": null,
				"entityVersion": "C-16",
				"parentMonthlyBudgetId": "MB/2015-03",
				"entityId": "MCB/2015-03/A11",
				"entityType": "monthlyCategoryBudget",
				"categoryId": "A11"
			},
			{
				"budgeted": 0,
				"overspendingHandling": null,
				"entityVersion": "C-17",
				"parentMonthlyBudgetId": "MB/2015-03",
				"entityId": "MCB/2015-03/A12",
				"entityType": "monthlyCategoryBudget",
				"categoryId": "A12"
			},
			{
				"budgeted": 0,
				"overspendingHandling": null,
				"entityVersion": "C-18",
				"parentMonthlyBudgetId": "MB/2015-03",
				"entityId": "MCB/2015-03/A13",
				"entityType": "monthlyCategoryBudget",
				"categoryId": "A13"
			}
		],
		"month": "2015-03-01",
		"entityId": "MB/2015-03",
		"entityType": "monthlyBudget"
	},
	{
		"entityVersion": "A-52",
		"monthlySubCategoryBudgets": [],
		"month": "2015-04-01",
		"entityId": "MB/2015-04",
		"entityType": "monthlyBudget"
	},
	{
		"entityVersion": "A-53",
		"monthlySubCategoryBudgets": [],
		"month": "2015-05-01",
		"entityId": "MB/2015-05",
		"entityType": "monthlyBudget"
	},
	{
		"entityVersion": "A-54",
		"monthlySubCategoryBudgets": [],
		"month": "2015-06-01",
		"entityId": "MB/2015-06",
		"entityType": "monthlyBudget"
	},
	{
		"entityVersion": "A-55",
		"monthlySubCategoryBudgets": [],
		"month": "2015-07-01",
		"entityId": "MB/2015-07",
		"entityType": "monthlyBudget"
	},
	{
		"entityVersion": "A-56",
		"monthlySubCategoryBudgets": [],
		"month": "2015-08-01",
		"entityId": "MB/2015-08",
		"entityType": "monthlyBudget"
	},
	{
		"entityVersion": "A-57",
		"monthlySubCategoryBudgets": [],
		"month": "2015-09-01",
		"entityId": "MB/2015-09",
		"entityType": "monthlyBudget"
	},
	{
		"entityVersion": "A-58",
		"monthlySubCategoryBudgets": [],
		"month": "2015-10-01",
		"entityId": "MB/2015-10",
		"entityType": "monthlyBudget"
	},
	{
		"entityVersion": "A-59",
		"monthlySubCategoryBudgets": [],
		"month": "2015-11-01",
		"entityId": "MB/2015-11",
		"entityType": "monthlyBudget"
	},
	{
		"entityVersion": "A-60",
		"monthlySubCategoryBudgets": [],
		"month": "2015-12-01",
		"entityId": "MB/2015-12",
		"entityType": "monthlyBudget"
	},
	{
		"entityVersion": "A-61",
		"monthlySubCategoryBudgets": [],
		"month": "2016-01-01",
		"entityId": "MB/2016-01",
		"entityType": "monthlyBudget"
	},
	{
		"entityVersion": "A-62",
		"monthlySubCategoryBudgets": [],
		"month": "2016-02-01",
		"entityId": "MB/2016-02",
		"entityType": "monthlyBudget"
	},
	{
		"entityVersion": "A-63",
		"monthlySubCategoryBudgets": [],
		"month": "2016-03-01",
		"entityId": "MB/2016-03",
		"entityType": "monthlyBudget"
	}
],
"accountMappings": []

}

Jetzt habe ichs mir natürlich auch mal angucken müssen :slight_smile: - Sieht schön benutzbar aus!

Als nächstes muss ich/man mal gucken, womit man das anpacken will, und in welcher Form man das benutzt (Plugin für irgendwas, Standalone?) :smile: . ich glaube niemand will sein Budget in eine Webapp kippen, oder? (Ich hoste auch - kostenlos!)

1 „Gefällt mir“

Es gibt, so wie ich das sehen konnte, noch Diff Dateien, wo nur noch Änderungen drin gespeichert werden.
Es wäre also wichtig, diese Änderungen natürlich noch mitzunehmen.

Ich glaube folgendes ist noch wichtig:

  • Multiplattform (Mac, Windows)
  • Ich glaube auch lokal, Webapp’s sind zwar bequem, aber Datenschutz und Vertrauen sind da so ne Sache
  • Klickibunti wär schön

Vielleicht gibt es hier die ein oder andere Anregung: 6 Great Interactive Data Visualization

http://www.highcharts.com/demo/ habe ich auf anderen Weg auch schon gefunden. Zudem habe ich ein paar Frameworks gefunden, mit denen mal python/php/ruby via HTML/CSS/JS in eine DesktopApp gießen kann. Eventuell bietet sich das ja an, wenn jetzt niemand ein Bahnbrechend einfaches Cross-Plattform Framework kennt, wo man auch als nicht-Informatiker schon mal schnell ein Plugin zusammen bekommt. Schnelles Suchen hat mich zu TideSDK und Kivy geführt - kennt jemand noch andere?.
Da ich ja was lernen will, wenn ich schon was mit Sinn bastle, würde ich persönlich Python (nie ernsthaft eingesetzt) und Highcharts (nie mit großen JS-Libs neben etwas jQuery und Bootstrap gearbeitet) verbinden wollen. Hat sonst jemand Interesse und Vorlieben?

Mal sehen was das Wochenende bringt - das ist unerwartet frei :smiley:.

Habe ich auch gesehen, aber es gibt auch eine Datei mit dem vollen aktuellen Bestand, die angibt bis zu welchem Diff (Nummer) sie gefüllt ist. Initial könnte man dann die Vollinformation einlesen und dann später alternativ zum neu laden nur die DIffs nachpflegen, um das Programm dann später zu optimieren :smile:. (Es ist immer gut die Aussichten schon zu kennen, bevor man das eigentliche Projekt startet :wink: )

Wie wäre es mit QT?
Das läuft Multiplatform und kann JSON

http://qjson.sourceforge.net/


http://doc.qt.io/qt-5/json.html
http://qjson.sourceforge.net/docs/

Hier im Podcast wurde noch über Datenvisualisierung gesprochen.

FS141 Braunkohle essen und Benzin trinken

Da wurde auch noch matplotlib besprochen.