Bring Einkaufsliste

Offiziell ja, aber dank den Jungs hier die Programmieren können, kannste das mit IPS wieder automatisieren.

Dann fehlt mir irgendwo ein Puzzleteil. Ich habe

  • Modul Echo Remote 2 installiert
  • Echo Remote Instanzen angelegt für Echo dots und Sonos Boxen
  • „Variable für eine Aufgabenliste anlegen“ in der Instanz aktiviert
  • habe im Skript auch ECHOREMOTE_GetToDos(ID, ‚SHOPPING_ITEM‘, false) ausgeführt

Wie kann ich aber die Liste laden?

Habs hinbekommen.

  • Ich lese die EinkaufsListe aus
  • finde Änderungen heraus
  • sollten Ergänzungen vorgenommen worden sein, werden diese selektiert und eine pushover nachricht an alle gesendet (der Punkt mit 33839)
  • stündlich wird die Liste geprüft

Hier der Skript:


// alte Liste holen
$liste_alt = GetValue(25457);

//neue Liste erstellen
$liste_neu = ECHOREMOTE_GetToDos(35191, 'SHOPPING_ITEM', false);


// Array zum Speichern aller 'value'-Werte
$valuesArray = [];

// Durchlaufen jedes Elements im Haupt-Array
foreach ($liste_neu as $item) {
    // Überprüfen, ob 'value' im aktuellen Element existiert
    if (isset($item['value'])) {
        // Fügen Sie den 'value'-Wert dem Array hinzu
        $valuesArray[] = $item['value'];
    }
}

// Erstellen eines Strings aus dem Array mit Kommas
$valuesList = implode(", ", $valuesArray);

$liste_neu = $valuesList;

// Strings in Arrays umwandeln
$array_neu = explode(", ", $liste_neu);
$array_alt = explode(", ", $liste_alt);

// Finde Unterschiede: Werte in $liste_neu, die nicht in $liste_alt sind
$unterschiede_neu = array_diff($array_neu, $array_alt);

// Erstelle einen kommagetrennten String aus den Unterschieden
$unterschiede_string = implode(", ", $unterschiede_neu);

// Ausgabe der Unterschiede als String
SetValue(35438, $unterschiede_string);

// Überprüfen, ob die Variable leer ist
if (empty($unterschiede_string)) {
    echo "Die Variable \$neu ist leer.";
} else {
    IPS_RunScript(33839);
    SetValue(25457, $liste_neu);
}

echo $unterschiede_string;

Grüße