Utilizzo della logica OR in contesti per Tasker


23

Diciamo che voglio creare un contesto in cui l'SSID di una connessione WiFi sia 'ABC' o 'XYZ'.

Posso vedere dove sono in grado di creare 2 contesti, ma sembra rafforzare la logica AND tra i due, quindi per poter dire le parole devo trovarmi in prossimità di "ABC" e "XYZ".

Come rendere il contesto sia uno, non entrambi?

Risposte:



20

O probabilmente puoi usare le condizioni "Invertite" per fare un compito opposto ?, ad es

Se si desidera eseguire un'attività quando il WiFi è collegato OPPURE quando il profilo: A è inattivo, è possibile invece impostare contesti per "WiFi è disconnesso" E "Profilo: A è attivo" entrambi con la casella di controllo "invertita" selezionata e impostare un compito che fa il contrario, se ciò è possibile.

Questo funziona fondamentalmente a causa di:

(A OR B) = NOT((NOT A) AND (NOT B))


3
Questa risposta è carina perché è più generale. Cioè, funziona con tipi di contesto diversi da "Wifi Connected". Ad esempio, volevo creare un profilo per mettere il mio telefono in modalità silenziosa ogni volta che è collegato o collegato al mio orologio Pebble. Il modo più semplice per farlo era creare un profilo "non connesso a Pebble e non ancorato" che disabilita la modalità silenziosa all'entrata e abilita la modalità silenziosa all'uscita. Le leggi di DeMorgan FTW.
Laurence Gonsalves il

4

Puoi fare in modo che la tua azione dipenda da una variabile "% condition = true" e quindi creare due diversi profili:

  • profilo a: imposta la condizione su "vero"
  • profilo b: imposta la condizione su "vero"

il tuo profilo: se la variabile "condition" = true, allora ... e lì va il tuo compito di uscita

Ma sarebbe bello se gli autori migliorassero il tasker per questo ... :)


2
Questo metodo causa problemi quando la condizione può essere impostata su true o false da entrambi i profili aeb contemporaneamente. Ad esempio, volevo attivare il bluetooth durante una chiamata o nell'app Contatti. Ho impostato% BluetoothNeeded = 1 in entrambi i casi e deselezionato quando uno dei due casi viene chiuso. Mentre sono in una chiamata, l'app Contatti diventa in background e di solito viene sospesa per risparmiare memoria, il che cancella% Bluetooth Necessario, quindi il Bluetooth si spegne, tagliando l'auricolare Bluetooth durante la chiamata.
Chris Dragon,

4

pubblicando la mia soluzione a questo problema se qualcuno viene mai qui:

creare un profilo per ogni condizione nell'istruzione o in immettere% Reason + = 1 all'uscita% Reason - = 1

creare un profilo con condizione% motivi> 0 e le attività di entrata e uscita richieste

Saluti!


2

Dovrai creare un profilo singolo per ogni contesto e associarlo all'azione individualmente.


3
Questo significa che non sarò davvero in grado di avere un compito di uscita?
Zombi,

2

Per supportare le mie cuffie bluetooth, il mio desiderio era di attivare il bluetooth quando sono nell'app Contatti o durante una chiamata. Potrei farlo solo durante una chiamata, ma non posso assicurarmi che l'auricolare sia collegato prima che l'interlocutore risponda.

Nessuna delle soluzioni già pubblicate avrebbe funzionato. Impostando% BluetoothNeeded su quando in Contacts o in call significa che quando inizia una chiamata, imposta% BlueToothNeeded on ma poi quando Contatti diventa sfondo per essere in chiamata, imposta% BlueToothNeeded e il bluetooth si spegne. Usando l'operazione inversa, disattiva il bluetooth quando NON è in Contatti E NON in chiamata, ma attiva il bluetooth mentre un'attività di uscita quasi funziona, ma a quanto pare Tasker nota il breve periodo in cui Contatti perde lo stato di primo piano e la chiamata non è ancora iniziata e gira il bluetooth off.

Quindi, ecco cosa ha funzionato per me, basato su questo blog :

  1. Crea un'attività chiamata Dummycon un'azione diTasks > Wait > 1ms
  2. Crea un profilo chiamato stateInCallcon una condizione di State > Phone > Call > Type: Any. Collegalo Dummyall'attività.
  3. Crea un profilo chiamato stateInContactscon una condizione di State > Application > Contacts. Collegalo Dummyall'attività.
  4. Crea un profilo chiamato Bluetooth Neededcon una condizione di State > Variable > Variable Value. Impostare Nome su %PACTIVE, Op su Matchese Valore su *,stateInCall,*|*,stateInContacts,*. Secondo i documenti Tasker,% PACTIVE contiene un elenco separato da virgole di profili attivi in ​​cui l'elenco inizia e termina con una virgola per facilitare la corrispondenza. Collega questo profilo a un'attività chiamata Bluetooth Onche attiva il Bluetooth usando l' Net > Bluetooth > Set: OnAzione.
  5. Creare un'attività chiamata Conditional Bluetooth Offcon le seguenti azioni:
    1. Attività> Attendi> 10 secondi
    2. Attività> Se> %PACTIVEnon corrisponde*,stateInCall,*|*,stateInContacts,*
    3. Rete> Bluetooth> Imposta: Disattivo
    4. Attività> Termina se
  6. Premi a lungo sul Bluetooth Neededprofilo, quindi scegli Properties. Deseleziona Restore Settings.
  7. Premi rapidamente il Bluetooth Neededprofilo fino a quando l' Bluetooth Onattività non appare sotto di esso, nella colonna di destra. Premi a lungo Bluetooth One scegli Add Exit Task, quindi scegli Conditional Bluetooth Off.

Conditional Bluetooth Offsarà attendere 10 secondi prima di doppio controllo che né stateInCallstateInContactssono vere, a quel punto si accende il Bluetooth. Altrimenti, lascia il bluetooth acceso e quando entrambi stateInCalle stateInContactsusciranno più tardi, farà i suoi 10 secondi di attesa e controllerà di nuovo.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.