Hauptmenü

Readings mappen

Begonnen von clacor, 22 Mai 2018, 12:39:40

Vorheriges Thema - Nächstes Thema

clacor

Hallo liebe fhem community ^^

Dank des Forums und Wikis habe ich schon viele meiner Anfängerprobleme lösen können. Nun bin ich aber an einen Punkt gelangt an dem ich selber nicht weiter komme und auch nicht die richtige Hilfe finde, weil ich vllt. gar nicht weiß wie der Vorgang heißt...

Mein Ziel: Ich nehme an einem kleinen Bundesligatippspiel teil. Um alle Daten auf für einen Spieltag im Blick zu haben, habe ich bereits per HTTPMOD mehrere Websites in fhem eingelesen. So auch den aktuellen Spieltag von https://www.openligadb.de/api/getmatchdata/bl1. Für jede Mannschaft habe ich von http://clubelo.com/GER ein ELO rating eingelesen. Ich möchte die Spiel- und ELO-Informationen gerne in einem (weiteren dummy-)Device kombinieren.

Mein Problem: Die Mannschaftsbezeichnungen sind je nach Website leicht unterschiedlich. Z.B. ist "FC Bayern" von openligadb "Bayern" bei clubelo.com. Ich weiß, dass ich mit userReadings ein neues Reading in einen Device erzeugen und mit setreading setzen kann. Jetzt ändert sich natürlich abhängig vom Spieltag die Mannschaften einer Partie. Mal ist die erste Partie "FC Bayern" gegen "VfB Stuttgart" (bei mir in den readings 01_heim und 01_gast) dann wieder "Borussia Dortmund" gegen "1. FSV Mainz 05".

Wie gehe ich am besten vor um das ELO Rating einer Mannschaft dynamisch auf das richtige userReading zu mappen? Im Beispiel wäre das das Reading mit dem Namen "Bayern" (aus Device 1BLelo) mit dem Wert "1943" nach 01_heim_elo (in Device 1BLspieltag) wenn 01_heim "FC Bayern".
Ich hatte schon über eine DOIF-Lösung nachgedacht:

define di_BLmapping DOIF ([WEB_1BLspieltag:01_heim] eq "FC Bayern") (setreading WEB_1BLspieltag 01_heim_elo [WEB_1BLelo:Bayern])

aber bei dieser Lösung explodiert die Menge an Code, da ja jede der 18 Mannschaften mit jedem der 18 möglichen Positionen im Spieltag verglichen werde müsste... Außerdem fände ich diese Lösung nicht besonders elegant, da die jeweiligen Mannschaftsnamen manuell gesetzt sind und bei jedem Saisonwechsel wieder nach gebastelt werden müsste.

Hier komme ich leider nicht weiter... Könnt ihr mir helfen?

Amenophis86

Ich würde das alles in eine sub in einer 99_myUtils.pm auslagern und dort berechnen lassen etc. Gerade für so "komplexe" Sachen ist das besser und einfach zu verstehen.
Aktuell dabei unser neues Haus mit KNX am einrichten. Im nächsten Schritt dann KNX mit FHEM verbinden. Allein zwei Dinge sind dabei selten: Zeit und Geld...